/// <summary> /// 根据交款ID得到预交金交款表对象 /// </summary> /// <param name="rpt">预交金交款表对象</param> /// <param name="Accountid">交款ID</param> public void GetAccountRptInfo(AbstractChargeAccountRpt rpt, int Accountid) { ZY_Account zyAccount = new ZY_Account(); zyAccount = zyAccount.GetAccount(Accountid); rpt.交款人 = zyAccount.AccountName; rpt.交款时间 = zyAccount.AccountDate.ToString(); rpt.总金额 = zyAccount.Total_Fee.ToString(); rpt.总金额大写 = zyAccount.Total_Fee.ToString(); rpt.现金金额 = zyAccount.Cash_Fee.ToString(); rpt.POS金额 = zyAccount.POS_Fee.ToString(); rpt.收费金额 = zyAccount.WTicketFee.ToString(); rpt.收费张数 = zyAccount.WTicketNum.ToString(); rpt.退费金额 = zyAccount.BTicketFee.ToString(); rpt.退费张数 = zyAccount.BTicketNum.ToString(); rpt.次交款时间 = zyAccount.LastDate.ToString(); rpt.医院名称 = HIS.SYSTEM.BussinessLogicLayer.Classes.BaseData.WorkName; string[] AccountIDs = new string[1]; AccountIDs[0] = Accountid.ToString(); List <ZY_ChargeList> zy_Chargelist = zyAccount.GetChargeData(AccountIDs, -1); for (int i = 0; i < zy_Chargelist.Count; i++) { zy_Chargelist[i].ChargeType = zy_Chargelist[i].FeeType == 0 ? "现金" : "POS"; zy_Chargelist[i].PatName = HIS.SYSTEM.BussinessLogicLayer.Classes.BaseData.GetPatName(zy_Chargelist[i].PatID); } rpt.预交金记录 = HIS.SYSTEM.PubicBaseClasses.ApiFunction.ObjToDataTable(zy_Chargelist); }
/// 交款表打印 private void Print() { zyAccount = zyAccount.GetAccount(Accountid); Report = new grproLib.GridppReport(); if (zyAccount.AccountType == 0) { chargeRpt.GetAccountRptInfo(chargeRpt, Accountid); #region 预交金 Report.LoadFromFile(Constant.ApplicationDirectory + "\\report\\住院财务结帐预交金汇总.grf"); GWI_DesReport.HisReport.FillRecordToReport(Report, chargeRpt); Report.FetchRecord += new grproLib._IGridppReportEvents_FetchRecordEventHandler(Report_FetchRecord); #endregion #region OLD //Report.ParameterByName("AccountName").AsString = zyAccount.AccountName; //Report.ParameterByName("AccountDate").AsString = zyAccount.AccountDate.ToString(); //Report.ParameterByName("Total_Fee").AsString = zyAccount.Total_Fee.ToString(); //Report.ParameterByName("Total_FeeD").AsString = zyAccount.Total_Fee.ToString(); //Report.ParameterByName("YJ_M_FY").AsString = zyAccount.Cash_Fee.ToString(); //Report.ParameterByName("YJ_POS_FY").AsString = zyAccount.POS_Fee.ToString(); //Report.ParameterByName("WTICKETFEE").AsString = zyAccount.WTicketFee.ToString(); //Report.ParameterByName("WTICKETNUM").AsString = zyAccount.WTicketNum.ToString(); //Report.ParameterByName("BTICKETFEE").AsString = zyAccount.BTicketFee.ToString(); //Report.ParameterByName("BTICKETNUM").AsString = zyAccount.BTicketNum.ToString(); //Report.ParameterByName("LastDate").AsString = zyAccount.LastDate.ToString(); //Report.ParameterByName("WorkName").AsString = HIS.SYSTEM.BussinessLogicLayer.Classes.BaseData.WorkName; #endregion } else { #region 结算 Report.LoadFromFile(Constant.ApplicationDirectory + "\\report\\住院财务结帐结算汇总.grf"); costRpt.GetAccountRptInfo(costRpt, Accountid); GWI_DesReport.HisReport.FillRecordToReport(Report, costRpt); //Report.ParameterByName("医院名称").AsString = HIS.SYSTEM.BussinessLogicLayer.Classes.BaseData.WorkName + "住院每日缴款清单"; for (int i = 0; i < costRpt.发票项目.Rows.Count; i++) { try { Report.ParameterByName(costRpt.发票项目.Rows[i]["itemname"].ToString()).AsString = costRpt.发票项目.Rows[i]["Tolal_Fee"].ToString(); } catch (Exception err) { MessageBox.Show("发票打印传入参数:发票项目_" + costRpt.发票项目.Rows[i]["itemname"].ToString() + " 错误\r\n" + err.Message); continue; } } for (int i = 0; i < costRpt.记账内容.Length; i++) { try { Report.ParameterByName(costRpt.记账内容[i].TypeName + "_记账_张数").AsString = costRpt.记账内容[i].CostNum; Report.ParameterByName(costRpt.记账内容[i].TypeName + "_记账").AsString = costRpt.记账内容[i].CostFee; } catch (Exception err) { MessageBox.Show("发票打印传入参数:记账类型_" + costRpt.记账内容[i].TypeName + " 错误\r\n" + err.Message); continue; } } #endregion #region OLD //Report.ParameterByName("交款人").AsString = zyAccount.AccountName; //Report.ParameterByName("交款时间").AsString = zyAccount.AccountDate.ToString(); //DataTable dt = zyAccount.GetTicketTotle(Accountid); //decimal AllKMFee = 0; ////dt = null; //for (int i = 0; i < dt.Rows.Count; i++) //{ // for (int j = 1; j <= Report.Parameters.Count; j++) // { // if (dt.Rows[i]["itemname"].ToString().Trim() == Report.Parameters[j].Name) // { // Report.Parameters[j].Value = dt.Rows[i]["Tolal_Fee"].ToString(); // } // } // AllKMFee += Convert.ToDecimal(dt.Rows[i]["Tolal_Fee"]); //} //#endregion //Report.ParameterByName("发票科目合计").AsString = AllKMFee.ToString(); //List<ZY_CostMaster> zy_CML = zyAccount.GetCostData(Accountid); //if (zy_CML != null && zy_CML.Count > 0) //{ // #region 收费票据 // Report.ParameterByName("收费发票开始号").AsString = zy_CML[0].TicketCode; // Report.ParameterByName("收费发票结束号").AsString = zy_CML[zy_CML.Count - 1].TicketCode; // Report.ParameterByName("收费发票张数").AsString = zy_CML.Count.ToString(); // List<ZY_CostMaster> zy_CMLx = zy_CML.FindAll(delegate(ZY_CostMaster x) { return x.Record_Flag == 2; }); // Report.ParameterByName("收费退费张数").AsString = zy_CMLx.Count.ToString(); // Report.ParameterByName("收费退费金额").AsString = zy_CMLx.Sum(x => x.Total_Fee).ToString(); // Report.ParameterByName("废票张数").AsString = zyAccount.GetBadTicketCount(Accountid).ToString(); // #endregion // #region 记账部分 // //自费 // List<ZY_CostMaster> zy_CMLy1 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return (y.PatType.Trim() == "01" ); }); // //农合 // List<ZY_CostMaster> zy_CMLy2 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return (y.PatType.Trim() == "02"); }); // //居民医保 // List<ZY_CostMaster> zy_CMLy3 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return (y.PatType.Trim() == "03"); }); // //职工医保 // List<ZY_CostMaster> zy_CMLy4 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return (y.PatType.Trim() == "04" ); }); // //其他 // List<ZY_CostMaster> zy_CMLy6 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return (y.PatType.Trim() == "06"); }); // //单位 // List<ZY_CostMaster> zy_CMLy5 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return y.WorkUnit_Fee != 0; }); // Report.ParameterByName("居民医保_记账_张数").AsString = zy_CMLy3.Count.ToString(); // Report.ParameterByName("居民医保_记账").AsString = zy_CMLy3.Sum(y => y.NotWorkUnit_Fee).ToString(); // Report.ParameterByName("农合_记账_张数").AsString = zy_CMLy2.Count.ToString(); // Report.ParameterByName("农合_记账").AsString = zy_CMLy2.Sum(y => y.NotWorkUnit_Fee).ToString(); // Report.ParameterByName("职工医保_记账_张数").AsString = zy_CMLy4.Count.ToString(); // Report.ParameterByName("职工医保_记账").AsString = zy_CMLy4.Sum(y => y.NotWorkUnit_Fee).ToString(); // Report.ParameterByName("其他_记账_张数").AsString = zy_CMLy6.Count.ToString(); // Report.ParameterByName("其他_记账").AsString = zy_CMLy6.Sum(y => y.NotWorkUnit_Fee).ToString(); // Report.ParameterByName("自费_记账_张数").AsString = zy_CMLy1.Count.ToString(); // Report.ParameterByName("自费_记账").AsString = zy_CMLy1.Sum(y => y.NotWorkUnit_Fee).ToString(); // Report.ParameterByName("单位记账_张数").AsString = zy_CMLy5.Count.ToString(); // Report.ParameterByName("单位记账").AsString = zy_CMLy5.Sum(y => y.WorkUnit_Fee).ToString(); // Report.ParameterByName("记账合计张数").AsString = (zy_CMLy3.Count + zy_CMLy2.Count + zy_CMLy4.Count + zy_CMLy6.Count + zy_CMLy1.Count + zy_CMLy5.Count).ToString();//zy_CML.FindAll(delegate(ZY_CostMaster y) { return y.Village_Fee > 0; }).Count.ToString(); // Report.ParameterByName("记账合计").AsString = zy_CML.Sum(y => y.Village_Fee).ToString(); // #endregion // #region 收现金 // Report.ParameterByName("优惠金额").AsString = zy_CML.Sum(z => z.Favor_Fee).ToString(); // Report.ParameterByName("应收现金").AsString = zy_CML.Sum(z => z.Self_Fee).ToString(); // Report.ParameterByName("预收现金").AsString = zy_CML.Sum(z => z.Deptosit_Fee).ToString(); // decimal decR = zy_CML.Sum(z => z.Reality_Fee); // //补收 // List<ZY_CostMaster> zy_CML11 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return y.Reality_Fee > 0; }); // //补退 // List<ZY_CostMaster> zy_CML22 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return y.Reality_Fee < 0; }); // //欠费 // List<ZY_CostMaster> zy_CML33 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return y.Ntype ==3; }); // Report.ParameterByName("补收现金").AsString = zy_CML11.Sum(x => x.Reality_Fee).ToString("0.00"); // Report.ParameterByName("补退现金").AsString = (0 - zy_CML22.Sum(x => x.Reality_Fee)).ToString("0.00"); // Report.ParameterByName("实收现金").AsString = decR.ToString(); // Report.ParameterByName("小写合计").AsString = decR.ToString(); // Report.ParameterByName("大写合计").AsString = decR.ToString(); // try // { // List<ZY_ChargeList> zy_cl = zyAccount.GetChargeListData(Accountid); // //现金 // List<ZY_ChargeList> zy_cl0 = zy_cl.FindAll(x => x.FeeType == 0); // //POS // List<ZY_ChargeList> zy_cl1 = zy_cl.FindAll(x => x.FeeType == 1); // Report.ParameterByName("预交金现金").AsString = zy_cl0.Sum(x => x.Total_Fee).ToString(); // Report.ParameterByName("预交金POS").AsString = zy_cl1.Sum(x => x.Total_Fee).ToString(); // Report.ParameterByName("补收金额现金").AsString = zy_CML11.Sum(x => x.Money_Fee).ToString(); // Report.ParameterByName("补收金额POS").AsString = zy_CML11.Sum(x => x.Pos_Fee).ToString(); // Report.ParameterByName("欠费金额").AsString = zy_CML33.Sum(x => (x.Self_Fee - x.Deptosit_Fee)).ToString(); // } // catch { } #endregion } zyAccount.UpdatePrintNum(Accountid); if (this.PrintType.Checked == false) { Report.PrintPreview(false); } else { Report.PrintPreview(false); } }
/// <summary> /// 根据交款ID得到结算交款表对象 /// </summary> /// <param name="rpt">结算交款表对象</param> /// <param name="Accountid">交款ID</param> public void GetAccountRptInfo(AbstractCostAccountRpt rpt, int Accountid) { ZY_Account zyAccount = new ZY_Account(); zyAccount = zyAccount.GetAccount(Accountid); rpt.医院名称 = HIS.SYSTEM.BussinessLogicLayer.Classes.BaseData.WorkName + "住院每日缴款清单"; rpt.交款人 = zyAccount.AccountName; rpt.交款时间 = zyAccount.AccountDate.ToString(); #region 发票项目 DataTable dt = zyAccount.GetTicketTotle(Accountid); decimal AllKMFee = 0; //dt = null; for (int i = 0; i < dt.Rows.Count; i++) { AllKMFee += Convert.ToDecimal(dt.Rows[i]["Tolal_Fee"]); } #endregion rpt.发票项目 = dt; rpt.发票科目合计 = AllKMFee.ToString(); List <ZY_CostMaster> zy_CML = zyAccount.GetCostData(Accountid); if (zy_CML != null && zy_CML.Count > 0) { #region 收费票据 rpt.收费发票开始号 = zy_CML[0].TicketCode; rpt.收费发票结束号 = zy_CML[zy_CML.Count - 1].TicketCode; rpt.收费发票张数 = zy_CML.Count.ToString(); List <ZY_CostMaster> zy_CMLx = zy_CML.FindAll(delegate(ZY_CostMaster x) { return(x.Record_Flag == 2); }); rpt.收费退费张数 = zy_CMLx.Count.ToString(); rpt.收费退费金额 = zy_CMLx.Sum(x => x.Total_Fee).ToString(); rpt.废票张数 = zyAccount.GetBadTicketCount(Accountid).ToString(); #endregion #region 记账部分 DataTable dt1 = BaseDataFactory.GetData(baseDataType.病人类型); List <AccountPatType> apts = new List <AccountPatType>(); AccountPatType apt; int AllNum = 0; for (int i = 0; i < dt1.Rows.Count; i++) { List <ZY_CostMaster> zy_CMLy = zy_CML.FindAll(delegate(ZY_CostMaster y) { return(y.PatType.Trim() == dt1.Rows[i]["code"].ToString()); }); apt = new AccountPatType(); apt.TypeName = dt1.Rows[i]["name"].ToString(); apt.CostNum = zy_CMLy.Count.ToString(); apt.CostFee = zy_CMLy.Sum(x => x.NotWorkUnit_Fee).ToString(); apts.Add(apt); AllNum += zy_CMLy.Count; } apt = new AccountPatType(); //单位 List <ZY_CostMaster> zy_CMLy5 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return(y.WorkUnit_Fee != 0); }); apt.TypeName = "单位"; apt.CostNum = zy_CMLy5.Count.ToString(); apt.CostFee = zy_CMLy5.Sum(y => y.WorkUnit_Fee).ToString(); apts.Add(apt); //合计 apt = new AccountPatType(); apt.TypeName = "合计"; apt.CostNum = (AllNum + zy_CMLy5.Count).ToString(); apt.CostFee = zy_CML.Sum(y => y.Village_Fee).ToString(); apts.Add(apt); rpt.记账内容 = apts.ToArray(); #endregion #region 收现金 rpt.优惠金额 = zy_CML.Sum(z => z.Favor_Fee).ToString(); rpt.应收金额 = zy_CML.Sum(z => z.Self_Fee).ToString(); rpt.预收金额 = zy_CML.Sum(z => z.Deptosit_Fee).ToString(); decimal decR = zy_CML.Sum(z => z.Reality_Fee); //补收 List <ZY_CostMaster> zy_CML11 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return(y.Reality_Fee > 0); }); //补退 List <ZY_CostMaster> zy_CML22 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return(y.Reality_Fee < 0); }); //欠费 List <ZY_CostMaster> zy_CML33 = zy_CML.FindAll(delegate(ZY_CostMaster y) { return(y.Ntype == 3); }); rpt.补收金额 = zy_CML11.Sum(x => x.Reality_Fee).ToString("0.00"); rpt.补退金额 = (0 - zy_CML22.Sum(x => x.Reality_Fee)).ToString("0.00"); rpt.实收金额 = decR.ToString(); rpt.小写合计 = decR.ToString(); rpt.大写合计 = decR.ToString(); List <ZY_ChargeList> zy_cl = zyAccount.GetChargeListData(Accountid); //现金 List <ZY_ChargeList> zy_cl0 = zy_cl.FindAll(x => x.FeeType == 0); //POS List <ZY_ChargeList> zy_cl1 = zy_cl.FindAll(x => x.FeeType == 1); rpt.预交金现金 = zy_cl0.Sum(x => x.Total_Fee).ToString(); rpt.预交金POS = zy_cl1.Sum(x => x.Total_Fee).ToString(); rpt.补收金额现金 = zy_CML11.Sum(x => x.Money_Fee).ToString(); rpt.补收金额POS = zy_CML11.Sum(x => x.Pos_Fee).ToString(); rpt.费金额 = zy_CML33.Sum(x => (x.Self_Fee - x.Deptosit_Fee)).ToString(); #endregion } }