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); }
/// <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); } }
/// <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="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); } }