private string GetstrWhere(DateTime?Bdate, DateTime?Edate) { string strWhere = null; if (OP_ZYConfigSetting.GetConfigValue("003") == 0) { if (Bdate != null && Edate != null) { strWhere = " AND CHARGE_FLAG = 1 AND PRESDATE >= '" + Bdate.Value.ToString() + "' AND PRESDATE <= '" + Edate.Value.ToString() + "' "; } else { strWhere = " AND CHARGE_FLAG = 1 "; } } else { if (Bdate != null && Edate != null) { strWhere = " AND CHARGE_FLAG = 1 AND COSTDATE >= '" + Bdate.Value.ToString() + "' AND COSTDATE <= '" + Edate.Value.ToString() + "' "; } else { strWhere = " AND CHARGE_FLAG = 1 "; } } return(strWhere); }
//绑定数据 private void BindData() { Alldt = OP_ZYConfigSetting.GetConfigData(); _Alldt = Alldt.Copy(); this.dataGridViewEx1.AutoGenerateColumns = false; this.dataGridViewEx1.DataSource = Alldt; button1_Click(null, null); }
//使用默认设置 private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < _Alldt.Rows.Count; i++) { this.dataGridViewEx1[2, i].Value = _Alldt.Rows[i]["value"]; DataTable dt = OP_ZYConfigSetting.GetConfigText(Alldt, this.dataGridViewEx1[0, i].Value.ToString()); this.dataGridViewEx1[3, i].Value = (dt).Select("value=" + this.dataGridViewEx1[2, i].Value.ToString())[0]["Text"].ToString(); } }
/// <summary> /// 结算病人 /// </summary> /// <param name="zyCostM">结算主表</param> /// <param name="zyCostOList">结算汇总记录</param> /// <param name="zyPatL">病人类表对象</param> /// <returns></returns> public void CostPat(ZY_CostMaster zyCostM, List <ZY_CostOrder> zyCostOList, ZY_PatList zyPatL) { try { if (OP_ZYConfigSetting.GetConfigValue("005") == 0) { string perfCode = ""; string strticketno = InvoiceManager.InvoiceManager.GetBillNumber(Convert.ToInt32(zyCostM.ChargeCode), false, out perfCode); zyCostM.TicketCode = perfCode + strticketno; } oleDb.BeginTransaction(); //中结处理预交金(以前所有正常预交金全识为中结状态,新增一条新的预交金) //添加一条结算信息 BindEntity <ZY_CostMaster> .CreateInstanceDAL(oleDb).Add(zyCostM); //添加结算汇总表 for (int i = 0; i < zyCostOList.Count; i++) { zyCostOList[i].CostID = zyCostM.CostMasterID; BindEntity <ZY_CostOrder> .CreateInstanceDAL(oleDb).Add(zyCostOList[i]); } //更新所有处方记录的结算ID IpresDao ipD = DaoFactory.GetObject <IpresDao>(typeof(PresDao)); ipD.oleDb = oleDb; ipD.AlterCostID(zyCostM.PatListID, zyCostM.CostMasterID, zyCostM.Ntype); if (zyCostM.Ntype != 1)//add zenghao { //更改住院病人登记表病人类型为4,5 出院结算 出院欠费结算 BindEntity <ZY_PatList> .CreateInstanceDAL(oleDb).Update(zyPatL); } //一起更新标识 string strWhere = "DELETE_FLAG = 0 and PATLISTID =" + zyPatL.PatListID; //string str1 = Tables.zy_chargelist.RECORD_FLAG + oleDb.EuqalTo() + "3";//不修改记录状态 string str2 = "DELETE_FLAG =" + zyCostM.CostMasterID; BindEntity <ZY_ChargeList> .CreateInstanceDAL(oleDb).Update(strWhere, str2); oleDb.CommitTransaction(); } catch (System.Exception e) { oleDb.RollbackTransaction(); throw new Exception(e.Message); } }
//删除 private void btDel_Click(object sender, EventArgs e) { if (this.tbcoding.Text.Trim() == "") { MessageBox.Show("填写参数代码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); this.tbcoding.Focus(); return; } OP_ZYConfigSetting.DelData(this.tbcoding.Text.Trim()); BindData(); MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); }
//保存 private void btSave_Click(object sender, EventArgs e) { if (this.tbcoding.Text.Trim() == "") { MessageBox.Show("填写参数代码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); this.tbcoding.Focus(); return; } DataTable dt = (DataTable)this.dataGridViewEx2.DataSource; OP_ZYConfigSetting.SaveData(this.tbcoding.Text.Trim(), this.tbname.Text.Trim(), OP_ZYConfigSetting.JoinString(dt)); BindData(); MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); }
//单元格改变 private void dataGridViewEx1_CurrentCellChanged(object sender, EventArgs e) { if (this.dataGridViewEx1.CurrentCell != null) { int rowindex = this.dataGridViewEx1.CurrentCell.RowIndex; this.tbcoding.Text = this.dataGridViewEx1[0, rowindex].Value.ToString(); this.tbname.Text = this.dataGridViewEx1[1, rowindex].Value.ToString(); DataTable dt = OP_ZYConfigSetting.GetConfigText(Alldt, this.tbcoding.Text.Trim()); int[] cols = new int[dt.Rows.Count]; for (int i = 0; i < cols.Length; i++) { cols[i] = i; } this.Column2.DataSource = cols; this.comboBox1.SelectedIndex = dt.Rows.Count - 1; this.dataGridViewEx2.DataSource = dt; } }
/// <summary> /// 得到病人费用清单(已记账的),转科病人分开打 /// </summary> /// <param name="patlistid">病人ID</param> /// <param name="Bdate">开始日期</param> /// <param name="Edate">结束日期</param> /// <returns></returns> public DataTable GetPresDataTable(int patlistid, string presdeptcode, DateTime?Bdate, DateTime?Edate) { try { string strWhere = null; strWhere = "PATLISTID" + oleDb.EuqalTo() + patlistid + oleDb.And() + "PRESDEPTCODE" + oleDb.EuqalTo() + "'" + presdeptcode + "'" + oleDb.And() + "CHARGE_FLAG" + oleDb.EuqalTo() + "1 "; string date_1_3 = null; if (OP_ZYConfigSetting.GetConfigValue("003") == 0) { date_1_3 = oleDb.Date("PRESDATE"); } else { date_1_3 = oleDb.Date("COSTDATE"); } if (Bdate != null && Edate != null) { strWhere += oleDb.And() + date_1_3 + oleDb.GreaterThanAndEqualTo() + "'" + Bdate.Value.Date + "'" + oleDb.And() + date_1_3 + oleDb.LessThanAndEqualTo() + "'" + Edate.Value.Date + "' "; } strWhere += oleDb.OrderBy("COSTDATE"); List <ZY_PresOrder> zyPres = BindEntity <ZY_PresOrder> .CreateInstanceDAL(oleDb).GetListArray(strWhere); for (int i = 0; i < zyPres.Count; i++) { zyPres[i].LoadData(); } return(HIS.SYSTEM.PubicBaseClasses.ApiFunction.ObjToDataTable(zyPres)); } catch (System.Exception e) { throw new Exception(e.Message); } }
/// <summary> /// 得到住院发票数据 /// </summary> /// <param name="CostMasterID">结算ID</param> /// <returns>发票实体对象</returns> public Invoice_GD GetInvoiceInfo(int CostMasterID) { Invoice_GD invoice = new Invoice_GD();; try { GetInvoiceInfo(invoice, CostMasterID); //结算方式 if (zyCM.Money_Fee != 0) { invoice.结算方式 = "现金"; } if (zyCM.Pos_Fee != 0) { if (invoice.结算方式 != null) { invoice.结算方式 += "|POS"; } else { invoice.结算方式 = "POS"; } } if (zyCM.PatType == "01") { invoice.结算方式 += "|自费"; } else if (zyCM.PatType == "02") { invoice.结算方式 += "|农合"; } else if (zyCM.PatType == "03") { invoice.结算方式 += "|居民医保"; } else if (zyCM.PatType == "04") { invoice.结算方式 += "|职工医保"; } else if (zyCM.PatType == "05") { invoice.结算方式 += "|公费"; } else if (zyCM.PatType == "06") { invoice.结算方式 += "|其他"; } if (zyCM.WorkUnit_Fee > 0) { invoice.结算方式 += "|单位记账"; } // char[] ch = zyCM.Total_Fee.ToString("0.00").ToCharArray(); invoice.拾万 = ch.Length >= 9 ? NumToChar(ch[ch.Length - 9]) : "零"; invoice.万 = ch.Length >= 8 ? NumToChar(ch[ch.Length - 8]) : "零"; invoice.仟 = ch.Length >= 7 ? NumToChar(ch[ch.Length - 7]) : "零"; invoice.佰 = ch.Length >= 6 ? NumToChar(ch[ch.Length - 6]) : "零"; invoice.拾 = ch.Length >= 5 ? NumToChar(ch[ch.Length - 5]) : "零"; invoice.元 = ch.Length >= 4 ? NumToChar(ch[ch.Length - 4]) : "零"; invoice.角 = NumToChar(ch[ch.Length - 2]); invoice.分 = NumToChar(ch[ch.Length - 1]); invoice.记账金额 = (zyCM.Village_Fee - zyCM.WorkUnit_Fee).ToString("0.00"); invoice.优惠金额 = zyCM.Favor_Fee.ToString("0.00"); invoice.自付金额 = zyCM.Self_Fee.ToString("0.00"); invoice.单位金额 = zyCM.WorkUnit_Fee.ToString("0.00"); invoice.自费西药 = zyCM.SelfDrug_Fee.ToString("0.00");//add zenghao 091011 string strWhere = "costid" + oleDb.EuqalTo() + zyCM.CostMasterID + oleDb.And() + "BIGITEMCODE" + oleDb.In(OP_ZYConfigSetting.GetConfigText("007", 0)); invoice.CT = HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(BindEntity <ZY_CostOrder> .CreateInstanceDAL(oleDb).GetSum("TOTAL_FEE", strWhere), "").ToString(); strWhere = "costid" + oleDb.EuqalTo() + zyCM.CostMasterID + oleDb.And() + "BIGITEMCODE" + oleDb.In(OP_ZYConfigSetting.GetConfigText("007", 1)); invoice.MRI = HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(BindEntity <ZY_CostOrder> .CreateInstanceDAL(oleDb).GetSum("TOTAL_FEE", strWhere), "").ToString(); strWhere = "costid" + oleDb.EuqalTo() + zyCM.CostMasterID + oleDb.And() + "BIGITEMCODE" + oleDb.In(OP_ZYConfigSetting.GetConfigText("007", 2)); invoice.B超 = HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(BindEntity <ZY_CostOrder> .CreateInstanceDAL(oleDb).GetSum("TOTAL_FEE", strWhere), "").ToString(); strWhere = "costid" + oleDb.EuqalTo() + zyCM.CostMasterID + oleDb.And() + "BIGITEMCODE" + oleDb.In(OP_ZYConfigSetting.GetConfigText("007", 3)); invoice.X光 = HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(BindEntity <ZY_CostOrder> .CreateInstanceDAL(oleDb).GetSum("TOTAL_FEE", strWhere), "").ToString(); strWhere = "costid" + oleDb.EuqalTo() + zyCM.CostMasterID + oleDb.And() + "BIGITEMCODE" + oleDb.In(OP_ZYConfigSetting.GetConfigText("007", 4)); invoice.心脑电图 = HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(BindEntity <ZY_CostOrder> .CreateInstanceDAL(oleDb).GetSum("TOTAL_FEE", strWhere), "").ToString(); strWhere = "costid" + oleDb.EuqalTo() + zyCM.CostMasterID + oleDb.And() + "BIGITEMCODE" + oleDb.In(OP_ZYConfigSetting.GetConfigText("007", 5)); invoice.输血费 = HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(BindEntity <ZY_CostOrder> .CreateInstanceDAL(oleDb).GetSum("TOTAL_FEE", strWhere), "").ToString(); strWhere = "costid" + oleDb.EuqalTo() + zyCM.CostMasterID + oleDb.And() + "BIGITEMCODE" + oleDb.In(OP_ZYConfigSetting.GetConfigText("007", 6)); invoice.输养费 = HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(BindEntity <ZY_CostOrder> .CreateInstanceDAL(oleDb).GetSum("TOTAL_FEE", strWhere), "").ToString(); return(invoice); } catch (System.Exception e) { throw new Exception(e.Message); } }
/// <summary> /// 打印费用项目加入医保类型 /// </summary> /// <param name="dt"></param> /// <param name="sType">1.项目组合2.项目明细3.项目分组</param> /// <returns></returns> public DataTable GetFeeType(DataTable dtt, string sType, out decimal alldec, out decimal firstFee, out decimal secondFee, out decimal otherFee) { try { //DataView dv = dtt.DefaultView; //dv.Sort = "itemtypename Asc"; //dtt = dv.ToTable(); alldec = 0; firstFee = 0; secondFee = 0; otherFee = 0; IfeeBillManager ifbmD = DaoFactory.GetObject <IfeeBillManager>(typeof(FeeBillManagerDao)); ifbmD.oleDb = oleDb; DataTable drugData = ifbmD.GetBaseData(0); DataTable projectData = ifbmD.GetBaseData(1); DataTable projectGroupData = ifbmD.GetBaseData(2); DataTable projectGroupMXData = ifbmD.GetBaseData(3); DataTable dt = dtt.Clone(); if (dtt.Rows.Count == 0) { return(dtt); } dt.Columns["ITEMID"].DataType = typeof(string); for (int i = 0; i < dtt.Rows.Count; i++) { if (Convert.ToDecimal(dtt.Rows[i]["amount"]) == 0) { continue; } if (Convert.ToInt32(dtt.Rows[i]["PRESTYPE"]) == 4)//项目(基本项目) { #region 基本项目 DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } string itemid = dr["ITEMID"].ToString(); DataRow[] drs = projectData.Select("itemid=" + itemid); if (drs.Length != 0) { if (drs[0] != null) { dr["itemid"] = drs[0]["d_code"]; if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + dr["itemname"].ToString(); firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + dr["itemname"].ToString(); secondFee += Convert.ToDecimal(dr["tolal_fee"]); } } } dt.Rows.Add(dr); #endregion } else if (Convert.ToInt32(dtt.Rows[i]["PRESTYPE"]) == 5)//项目(组合项目) { if (OP_ZYConfigSetting.GetConfigValue("001") == 0) { #region 组合项目 DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } string itemid = dr["ITEMID"].ToString(); DataRow[] drs = projectGroupData.Select("itemid=" + itemid); if (drs.Length != 0) { if (drs[0] != null) { dr["itemid"] = drs[0]["d_code"]; if (XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + dr["itemname"].ToString(); firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + dr["itemname"].ToString(); secondFee += Convert.ToDecimal(dr["tolal_fee"]); } } } dt.Rows.Add(dr); #endregion } else { #region 组合项目明细 if (sType == "1")//项目组合 { #region 项目组合 string itemid = dtt.Rows[i]["ITEMID"].ToString(); DataRow[] drs = projectGroupMXData.Select("complex_id=" + itemid); if (drs.Length != 0) { for (int j = 0; j < drs.Length; j++) { DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } dr["itemid"] = drs[j]["STD_CODE"]; dr["prestype"] = '4'; if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + drs[j]["Item_name"]; firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + drs[j]["Item_name"]; secondFee += Convert.ToDecimal(dr["tolal_fee"]); } else { dr["itemname"] = drs[j]["Item_name"]; } dr["packunit"] = drs[j]["item_unit"]; dr["unit"] = drs[j]["item_unit"]; dr["sell_price"] = drs[j]["price"]; dr["amount"] = Convert.ToDecimal(drs[j]["num"]) * Convert.ToDecimal(dr["amount"]); dr["tolal_fee"] = Convert.ToString(Convert.ToDecimal(dr["sell_price"]) * Convert.ToDecimal(dr["amount"])); alldec += Convert.ToDecimal(dr["tolal_fee"]); dt.Rows.Add(dr); } alldec = alldec - Convert.ToDecimal(dtt.Rows[i]["tolal_fee"]); } #endregion } else if (sType == "2")//项目清单 { #region 项目清单 string itemid = dtt.Rows[i]["ITEMID"].ToString(); DataRow[] drs = projectGroupMXData.Select("complex_id=" + itemid); if (drs.Length != 0) { for (int j = 0; j < drs.Length; j++) { DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } //dr["itemid"] = drs[j]["STD_CODE"]; //dr["prestype"] = '4'; if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + drs[j]["Item_name"]; firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + drs[j]["Item_name"]; secondFee += Convert.ToDecimal(dr["tolal_fee"]); } else { dr["itemname"] = drs[j]["Item_name"]; } dr["packunit"] = drs[j]["item_unit"]; dr["unit"] = drs[j]["item_unit"]; dr["sell_price"] = drs[j]["price"]; dr["amount"] = Convert.ToDecimal(drs[j]["num"]) * Convert.ToDecimal(dr["amount"]); dr["tolal_fee"] = Convert.ToString(Convert.ToDecimal(dr["sell_price"]) * Convert.ToDecimal(dr["amount"])); alldec += Convert.ToDecimal(dr["tolal_fee"]); dt.Rows.Add(dr); } alldec = alldec - Convert.ToDecimal(dtt.Rows[i]["tolal_fee"]); } #endregion } else if (sType == "3")//项目分组 { #region 项目分组 string itemid = dtt.Rows[i]["ITEMID"].ToString(); DataRow[] drs = projectGroupMXData.Select("complex_id=" + itemid); if (drs.Length != 0) { for (int j = 0; j < drs.Length; j++) { DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } dr["itemid"] = drs[j]["STD_CODE"]; dr["prestype"] = '4'; if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + drs[j]["Item_name"]; firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (XcConvert.IsNull(drs[j]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + drs[j]["Item_name"]; secondFee += Convert.ToDecimal(dr["tolal_fee"]); } else { dr["itemname"] = drs[j]["Item_name"]; } dr["packunit"] = drs[j]["item_unit"]; dr["unit"] = drs[j]["item_unit"]; dr["sell_price"] = drs[j]["price"]; dr["amount"] = Convert.ToDecimal(drs[j]["num"]) * Convert.ToDecimal(dr["amount"]); dr["tolal_fee"] = Convert.ToString(Convert.ToDecimal(dr["sell_price"]) * Convert.ToDecimal(dr["amount"])); alldec += Convert.ToDecimal(dr["tolal_fee"]); dt.Rows.Add(dr); } alldec = alldec - Convert.ToDecimal(dtt.Rows[i]["tolal_fee"]); } #endregion } #endregion } } else//药品 { #region 药品 DataRow dr = dt.NewRow(); for (int k = 0; k < dt.Columns.Count; k++) { dr[k] = dtt.Rows[i][k]; } string itemid = dr["ITEMID"].ToString(); DataRow[] drs = drugData.Select("itemid=" + itemid); if (drs.Length != 0) { if (drs[0] != null) { dr["itemid"] = drs[0]["d_code"]; if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "甲") { dr["itemname"] = "★" + dr["itemname"].ToString(); firstFee += Convert.ToDecimal(dr["tolal_fee"]); } else if (HIS.SYSTEM.PubicBaseClasses.XcConvert.IsNull(drs[0]["insur_type"], "").ToString().Trim() == "乙") { dr["itemname"] = "☆" + dr["itemname"].ToString(); secondFee += Convert.ToDecimal(dr["tolal_fee"]); } } } dt.Rows.Add(dr); #endregion } } return(dt); } catch (Exception err) { throw new Exception(err.Message); } }
//保存当前设置 private void button2_Click(object sender, EventArgs e) { OP_ZYConfigSetting.SaveConfig(Alldt); MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); }