using AIMSBLL;
using AIMSExtension;
using AIMSModel;
using DrawGraph;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AIMS.OperationAfter.UI
{
public partial class frmOperationCharg : Form
{
public string FeeType = "麻醉";
public frmOperationCharg()
{
InitializeComponent();
}
private void frmOperationChargCheck2_Load(object sender, EventArgs e)
{
try
{
dgvYP.AutoGenerateColumns = false;
//DataGridViewSettingManager.GetInstance().AttachDataGridView(dgvtEMPOperationInfos);
//if (PublicMethod.Operator.RoleRef.Name != "系统管理员")
//{
// tsbSettingDGV.Visible = false;
// label2.Visible = false;
//}
this.txtPatName.TextChanged += new System.EventHandler(this.txtPatName_TextChanged);
this.txtPatName.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.dgvTextYP_PreviewKeyDownEvent);
this.txtPatCaseNO.TextChanged += new System.EventHandler(this.txtPatCaseNO_TextChanged);
this.txtPatCaseNO.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.dgvTextYP_PreviewKeyDownEvent);
//rdoZQ.Checked = true;
Role role = BRole.SelectSingle(PublicMethod.RoleId);
if (role.RoleName.Contains("麻") || role.Id == 1)
{
radioButton1.Checked = true;
}
else
{
radioButton1.Checked = false;
}
}
catch (Exception exp)
{
PublicMethod.WriteLog(exp);
}
}
private void btnOK_Click(object sender, EventArgs e)
{
if (txtPatCaseNO.Text != "" || txtPatName.Text != "")
{
DataTable dt = BOperationRecord.GetOpeIdByNoName(txtPatCaseNO.Text.Trim(), txtPatName.Text.Trim());
if (dt != null && dt.Rows.Count > 0)
{
int OpeID = int.Parse(dt.Rows[0]["id"].ToString());
dgvYP.Visible = false;
dgvtEMPOperationInfos.Rows.Clear();
lblName.Text = "";
lblInHospitalNo.Text = "";
label1.Text = "";
label4.Text = "";
lblName.Text = dt.Rows[0]["PatientName"].ToString();
lblInHospitalNo.Text = dt.Rows[0]["MdrecNo"].ToString();
if (dt.Rows[0]["OperationBeginTime"].ToString() != "")
{
label1.Text = dt.Rows[0]["OperationBeginTime"].ToString();
}
SetChargDetalie(OpeID.ToString());
SetChargDrugLbl();
}
}
}
private void LoadSelectDate(DataGridViewRow dr)
{
int OpeID = int.Parse(dr.Cells["id"].EditedFormattedValue.ToString());
dgvYP.Visible = false;
dgvtEMPOperationInfos.Rows.Clear();
lblName.Text = "";
lblInHospitalNo.Text = "";
label1.Text = "";
label4.Text = "";
lblName.Text = dr.Cells["DrugName"].EditedFormattedValue.ToString();
lblInHospitalNo.Text = dr.Cells["TypeName"].EditedFormattedValue.ToString();
label1.Text = dr.Cells["InRoomTime"].EditedFormattedValue.ToString();
SetChargDetalie(OpeID.ToString());
//if (FeeType == "麻醉")
//{
// OperationRecord _pauoperationRecord = BOperationRecord.SelectSingle(" ParentId=" + OpeID, null, RecursiveType.None, 0);
// if (_pauoperationRecord != null)
// {
// SetChargDetalie(_pauoperationRecord);
// }
//}
SetChargDrugLbl();
}
private void toolStripButton10_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 表格配置
///
///
///
private void tsbSettingDGV_Click(object sender, EventArgs e)
{
//DataGridViewSettingManager.GetInstance().ShowConfigUI(dgvtEMPOperationInfos);
//dgvtEMPOperationInfos.AllowUserToAddRows = false;
}
private void button1_Click(object sender, EventArgs e)
{
if (dgvtEMPOperationInfos.Rows.Count < 0 || dgvtEMPOperationInfos.Rows.Count < 1)
{
MessageBox.Show("没有记录,请查询到数据后再导出数据到Excel");
return;
}
//DataGridViewToExcel.DataToExcel(dgvtEMPOperationInfos);
}
private void SetChargDetalie(string _operationRecordId)
{
try
{
IList frees = BFeesRecord.Select("FeeType='" + FeeType + "' and OperationRecordId=" + _operationRecordId, null);
foreach (var item in frees)
{
int index = dgvtEMPOperationInfos.Rows.Add();
dgvtEMPOperationInfos.Rows[index].Cells["DId"].Value = item.Id;// 编号
dgvtEMPOperationInfos.Rows[index].Cells["code"].Value = item.BillCode;
dgvtEMPOperationInfos.Rows[index].Cells["type"].Value = item.FeeTypeId;
dgvtEMPOperationInfos.Rows[index].Cells["Doctor"].Value = item.BillingWork;
dgvtEMPOperationInfos.Rows[index].Cells["name"].Value = item.ChargName;
dgvtEMPOperationInfos.Rows[index].Cells["spec"].Value = item.ChargSpec;
dgvtEMPOperationInfos.Rows[index].Cells["unit"].Value = item.Unit;
dgvtEMPOperationInfos.Rows[index].Cells["qty"].Value = item.FeeNum;
dgvtEMPOperationInfos.Rows[index].Cells["price"].Value = item.UnitPrice;
dgvtEMPOperationInfos.Rows[index].Cells["pageno"].Value = item.ChargePrice;
dgvtEMPOperationInfos.Rows[index].Cells["ordersn"].Value = item.ExecWork;
dgvtEMPOperationInfos.Rows[index].Cells["coftime"].Value = item.ExecTime;
}
}
catch (Exception ex)
{
PublicMethod.WriteLog(ex);
}
}
private void SetChargDrugLbl()
{
int chargCount = 0;
double chargValue = 0;
foreach (DataGridViewRow item in dgvtEMPOperationInfos.Rows)
{
if (item.Cells["qty"].EditedFormattedValue.ToString() != "" && item.Cells["price"].EditedFormattedValue.ToString() != "" && item.Cells["name"].EditedFormattedValue.ToString() != "")
{
double res = 0;
if (double.TryParse(item.Cells["qty"].EditedFormattedValue.ToString(), out res))
{
double price = double.Parse(item.Cells["price"].Value.ToString());
chargCount++;
double rowprice = res * price;
chargValue += rowprice;
}
}
}
if (chargCount > 0)
{
label4.Text = string.Format(" {0}元 项目:{1}条", chargValue, chargCount);
}
else
{
label4.Text = "";
}
}
public int maxOrder = 0;
private void dgvtEMPOperationInfos_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
SolidBrush b = new SolidBrush(dgvtEMPOperationInfos.RowHeadersDefaultCellStyle.ForeColor);
e.Graphics.DrawString((maxOrder + e.RowIndex + 1).ToString(System.Globalization.CultureInfo.CurrentUICulture), this.dgvtEMPOperationInfos.DefaultCellStyle.Font, b, e.RowBounds.Location.X + 20, e.RowBounds.Location.Y + 4);
}
private void rdoZQ_CheckedChanged(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
FeeType = "麻醉";
}
else
{
FeeType = "护士";
}
}
private void txtPatCaseNO_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (dgvYP.Visible == false)
{
//btnOK_Click(null, null);
}
else
{
LoadSelectDate(dgvYP.Rows[0]);
txtPatCaseNO.Text = dgvYP.Rows[0].Cells[1].EditedFormattedValue.ToString();
dgvYP.Visible = false;
}
}
}
private void txtPatCaseNO_TextChanged(object sender, EventArgs e)
{
//显示并定位药品选择列表
if (dgvYP.Visible == false)
{
dgvYP.Visible = true;
}
//药品名称单元格为空时,隐藏选择药品列表,否则为选择药品列表加载数据
if (txtPatCaseNO.Text == "")
{
dgvYP.Visible = false;
}
else
{
string str = txtPatCaseNO.Text.Trim();
DataTable dt = BOperationRecord.GetOpesByNo(txtPatCaseNO.Text.Trim());
dgvYP.DataSource = dt;
}
}
private void txtPatName_TextChanged(object sender, EventArgs e)
{
//显示并定位药品选择列表
if (dgvYP.Visible == false)
{
dgvYP.Visible = true;
}
//药品名称单元格为空时,隐藏选择药品列表,否则为选择药品列表加载数据
if (txtPatName.Text == "")
{
dgvYP.Visible = false;
}
else
{
string str = txtPatName.Text.Trim();
DataTable dt = BOperationRecord.GetOpesByName(txtPatName.Text.Trim());
dgvYP.DataSource = dt;
}
}
///
/// 药品名称单元格按键事件(判断输入上下箭头并处理)
///
///
///
void dgvTextYP_PreviewKeyDownEvent(object sender, PreviewKeyDownEventArgs e)
{
//药品名称单元格为空时,返回
//显示并定位选择药品列表
if (dgvYP.Visible == false)
{
dgvYP.Visible = true;
}
//判断按下上下键时,选择药品列表获得焦点并定位光标
if (e.KeyCode == Keys.Up)
{
dgvYP.Focus();
dgvYP.Rows[dgvYP.Rows.Count - 1].Selected = true;
dgvYP.CurrentCell = dgvYP.Rows[dgvYP.Rows.Count - 1].Cells[2];
}
if (e.KeyCode == Keys.Down)
{
if (dgvYP.Rows.Count > 0)
{
dgvYP.Focus();
dgvYP.Rows[1].Selected = true;
dgvYP.CurrentCell = dgvYP.Rows[1].Cells[2];
}
}
}
//定位当前行索引
int index = 0;
///
/// 向药品表添加数据
///
///
private void SetYPContent(DataGridViewCellEventArgs e)
{
if (e != null)
{
index = e.RowIndex;
}
if (dgvYP.Rows[index].Cells["DrugName"].EditedFormattedValue.ToString() != "")
{
this.txtPatName.TextChanged -= new System.EventHandler(this.txtPatName_TextChanged);
this.txtPatName.PreviewKeyDown -= new System.Windows.Forms.PreviewKeyDownEventHandler(this.dgvTextYP_PreviewKeyDownEvent);
this.txtPatCaseNO.TextChanged -= new System.EventHandler(this.txtPatCaseNO_TextChanged);
this.txtPatCaseNO.PreviewKeyDown -= new System.Windows.Forms.PreviewKeyDownEventHandler(this.dgvTextYP_PreviewKeyDownEvent);
LoadSelectDate(dgvYP.Rows[index]);
txtPatCaseNO.Text = dgvYP.Rows[index].Cells[1].EditedFormattedValue.ToString();
dgvYP.Visible = false;
this.txtPatName.TextChanged += new System.EventHandler(this.txtPatName_TextChanged);
this.txtPatName.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.dgvTextYP_PreviewKeyDownEvent);
this.txtPatCaseNO.TextChanged += new System.EventHandler(this.txtPatCaseNO_TextChanged);
this.txtPatCaseNO.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.dgvTextYP_PreviewKeyDownEvent);
}
}
///
/// 鼠标点击选择药品列表时,向使用药品表添加数据
///
///
///
private void dgvYP_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
SetYPContent(e);
}
}
///
/// 选择药品列表上点击上下键定位并移动光标
///
///
///
private void dgvYP_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Down)
{
if (dgvYP.CurrentRow.Index == dgvYP.Rows.Count - 1)
{
e.Handled = true;
dgvYP.CurrentCell = dgvYP.Rows[0].Cells[3];
dgvYP.Rows[0].Selected = true;
}
}
if (e.KeyCode == Keys.Up)
{
if (dgvYP.CurrentRow.Index == 0)
{
e.Handled = true;
dgvYP.CurrentCell = dgvYP.Rows[dgvYP.Rows.Count - 1].Cells[3];
dgvYP.Rows[dgvYP.Rows.Count - 1].Selected = true;
}
}
}
///
/// 选择药品列表点击回车键向使用药品列表添加数据
///
///
///
private void dgvYP_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar.ToString() == "\r")
{
if (dgvYP.SelectedRows.Count > 0)
{
SetYPContent(null);
}
}
}
///
/// 选择药品列表点击回车时先定位当前行的索引
///
///
///
private void dgvYP_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
index = dgvYP.CurrentRow.Index;
}
}
private void txtPatCaseNO_Click(object sender, EventArgs e)
{
txtPatCaseNO.Text = "";
txtPatName.Text = "";
}
}
}