/// <summary> /// 获取费用发票分类 /// </summary> public void m_mthGetCheckType() { DataView dv = new DataView(ChargeDt); ChargeDtSelect = ChargeDt.Clone(); foreach (DataRowView drv in dv) { ChargeDtSelect.Rows.Add(drv.Row.ItemArray); } ChargeDtSelect.AcceptChanges(); if (this.m_objViewer.ucPatientInfo.BihPatient_VO.Status == 2 && ChargeDtSelect.Rows.Count == 0) { MessageBox.Show("没有费用。", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Stop); return; } //计算总金额、自付金额和记帐金额 decimal decTotalSum = 0; decimal decSbSum = 0; decimal decAcctSum = 0; //已清金额、待清金额、待结金额、待确认金额 decimal decCompleteSum = 0; decimal decWaitClearSum = 0; decimal decWaitChrgSum = 0; decimal decWaitConfSum = 0; // 总让利金额 decimal decDiffCostSum = 0; for (int i = 0; i < ChargeDt.Rows.Count; i++) { decimal d = clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["unitprice_dec"]) * clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["amount_dec"]); if (ChargeDt.Rows[i]["pstatus_int"].ToString() == "3" || ChargeDt.Rows[i]["pstatus_int"].ToString() == "4") { decTotalSum += clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["totalmoney_dec"]); d = clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["totalmoney_dec"]); decSbSum += clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["totalmoney_dec"]) - clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["acctmoney_dec"]); } else { decTotalSum += clsPublic.Round(d, 2); decSbSum += clsPublic.Round(d * clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["precent_dec"]) / 100, 2); decTotalSum += clsPublic.Round(clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["totaldiffcostmoney_dec"]), 2); decSbSum += clsPublic.Round(clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["totaldiffcostmoney_dec"]), 2); } //是否启用让利开关 if (this.intDiffCostOn == 1) { decDiffCostSum += clsPublic.Round(clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["totaldiffcostmoney_dec"]), 2); //decTotalSum += clsPublic.Round(clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["totaldiffcostmoney_dec"]), 2); //decSbSum += clsPublic.Round(clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["totaldiffcostmoney_dec"]), 2); d += clsPublic.Round(clsPublic.ConvertObjToDecimal(ChargeDt.Rows[i]["totaldiffcostmoney_dec"]), 2); } //费用状态 0 待确认 1 待结 2 待清 3 已清 4 直收 int status = int.Parse(ChargeDt.Rows[i]["pstatus_int"].ToString()); if (status == 0) { decWaitConfSum += clsPublic.Round(d, 2); } else if (status == 1) { decWaitChrgSum += clsPublic.Round(d, 2); } else if (status == 2) { decWaitClearSum += clsPublic.Round(d, 2); } else if (status == 3) { decCompleteSum += clsPublic.Round(d, 2); } } decAcctSum = decTotalSum - decSbSum; if (decTotalSum > 0) { this.m_objViewer.lblTotalSum.Text = decTotalSum.ToString("###,##0.00"); } else { this.m_objViewer.lblTotalSum.Text = ""; } if (decSbSum > 0) { this.m_objViewer.lblSbSum.Text = decSbSum.ToString("###,##0.00"); } else { this.m_objViewer.lblSbSum.Text = ""; } if (decAcctSum > 0) { this.m_objViewer.lblAcctSum.Text = decAcctSum.ToString("###,##0.00"); } else { this.m_objViewer.lblAcctSum.Text = ""; } if (decCompleteSum > 0) { this.m_objViewer.lblCompleteSum.Text = decCompleteSum.ToString("###,##0.00"); } else { this.m_objViewer.lblCompleteSum.Text = ""; } if (decWaitClearSum > 0) { this.m_objViewer.lblPay.Text = decWaitClearSum.ToString("###,##0.00"); } else { this.m_objViewer.lblPay.Text = ""; } if (decWaitChrgSum > 0) { this.m_objViewer.lblWaitCharge.Text = decWaitChrgSum.ToString("###,##0.00"); } else { this.m_objViewer.lblWaitCharge.Text = ""; } //计算发票分类 DataTable dtcat = new DataTable(); long l = this.objSvc.m_lngGetChargeItemCat(4, out dtcat); string strDiffCostName = string.Empty;//药品让利发票分类名称 if (l > 0 && dtcat.Rows.Count > 0) { ArrayList arrcat = new ArrayList(); DataView dvcat = new DataView(ChargeDt); for (int i = 0; i < dtcat.Rows.Count; i++) { string invocatid = dtcat.Rows[i]["typeid_chr"].ToString().Trim(); decimal invosum = 0; dvcat.RowFilter = "invcateid_chr = '" + invocatid + "'"; foreach (DataRowView drv in dvcat) { invosum += clsPublic.Round(clsPublic.ConvertObjToDecimal(drv["unitprice_dec"]) * clsPublic.ConvertObjToDecimal(drv["amount_dec"]), 2); } if (string.IsNullOrEmpty(strDiffCostName) && string.Compare("3026", invocatid) == 0) { strDiffCostName = dtcat.Rows[i]["typename_vchr"].ToString().Trim();//获取药品让利在字典中的名称 } if (invosum == 0) { continue; } clsInvoiceCat_VO invocat_vo = new clsInvoiceCat_VO(); invocat_vo.CatID = invocatid; invocat_vo.CatName = dtcat.Rows[i]["typename_vchr"].ToString().Trim(); invocat_vo.CatSum = invosum; arrcat.Add(invocat_vo); } //显示药品让利分类及值 if (this.intDiffCostOn == 1) { clsInvoiceCat_VO invocat_vo = new clsInvoiceCat_VO(); invocat_vo.CatID = "3026"; invocat_vo.CatName = strDiffCostName; invocat_vo.CatSum = clsPublic.Round(decDiffCostSum, 2);; arrcat.Add(invocat_vo); } this.m_objViewer.lvInvoiceCat.Items.Clear(); for (int j = 0; j < arrcat.Count; j++) { clsInvoiceCat_VO invocat_vo = (clsInvoiceCat_VO)arrcat[j]; ListViewItem lvitem = new ListViewItem(); lvitem.Text = invocat_vo.CatName + "\r\n" + invocat_vo.CatSum.ToString("0.00"); lvitem.ImageIndex = 11; lvitem.Tag = invocat_vo; this.m_objViewer.lvInvoiceCat.Items.Add(lvitem); } } }
/// <summary> /// 获取费用发票分类 /// </summary> /// <param name="type">结算分类 1 按帐期 2 按明细</param> public void m_mthGetCheckType(int type) { DataView dv = new DataView(ChargeDt); ChargeDtSelect = ChargeDt.Clone(); if (type == 1) { for (int i = 0; i < this.m_objViewer.dtgMain.Rows.Count; i++) { if (this.m_objViewer.dtgMain.Rows[i].Cells[0].Value.ToString().ToUpper() == "T") { DataRow dr = (DataRow)this.m_objViewer.dtgMain.Rows[i].Tag; string dayaccountid = dr["dayaccountid_chr"].ToString(); dv.RowFilter = "dayaccountid_chr = '" + dayaccountid + "' and pstatus_int = 2"; foreach (DataRowView drv in dv) { ChargeDtSelect.Rows.Add(drv.Row.ItemArray); } ChargeDtSelect.AcceptChanges(); } } } else if (type == 2) { for (int i = 0; i < this.m_objViewer.dtgDetail.Rows.Count; i++) { if (this.m_objViewer.dtgDetail.Rows[i].Cells[0].Value.ToString().ToUpper() == "T") { DataRowView drv = (DataRowView)this.m_objViewer.dtgDetail.Rows[i].Tag; string pchargeid = drv["pchargeid_chr"].ToString(); dv.RowFilter = "pchargeid_chr = '" + pchargeid + "' and pstatus_int = 2"; foreach (DataRowView drv2 in dv) { ChargeDtSelect.Rows.Add(drv2.Row.ItemArray); } ChargeDtSelect.AcceptChanges(); } } } if (ChargeDtSelect.Rows.Count == 0) { this.m_mthReset(); return; } //计算总金额、自付金额和记帐金额 decimal decTotalSum = 0; decimal decSbSum = 0; decimal decAcctSum = 0; for (int i = 0; i < ChargeDtSelect.Rows.Count; i++) { if (ChargeDtSelect.Rows[i]["pstatus_int"].ToString() == "3" || ChargeDtSelect.Rows[i]["pstatus_int"].ToString() == "4") { decTotalSum += clsPublic.ConvertObjToDecimal(ChargeDtSelect.Rows[i]["totalmoney_dec"]); decSbSum += clsPublic.ConvertObjToDecimal(ChargeDtSelect.Rows[i]["totalmoney_dec"]) - clsPublic.ConvertObjToDecimal(ChargeDtSelect.Rows[i]["acctmoney_dec"]); } else { decimal d = clsPublic.ConvertObjToDecimal(ChargeDtSelect.Rows[i]["unitprice_dec"]) * clsPublic.ConvertObjToDecimal(ChargeDtSelect.Rows[i]["amount_dec"]); decTotalSum += clsPublic.Round(d, 2); decSbSum += clsPublic.Round(d * clsPublic.ConvertObjToDecimal(ChargeDtSelect.Rows[i]["precent_dec"]) / 100, 2); } } decAcctSum = decTotalSum - decSbSum; if (decTotalSum > 0) { this.m_objViewer.lblTotalSum.Text = decTotalSum.ToString("###,##0.00"); } else { this.m_objViewer.lblTotalSum.Text = ""; } if (decSbSum > 0) { this.m_objViewer.lblSbSum.Text = decSbSum.ToString("###,##0.00"); } else { this.m_objViewer.lblSbSum.Text = ""; } if (decAcctSum > 0) { this.m_objViewer.lblAcctSum.Text = decAcctSum.ToString("###,##0.00"); } else { this.m_objViewer.lblAcctSum.Text = ""; } //计算发票分类 DataTable dtcat = new DataTable(); long l = this.objSvc.m_lngGetChargeItemCat(4, out dtcat); if (l > 0 && dtcat.Rows.Count > 0) { ArrayList arrcat = new ArrayList(); DataView dvcat = new DataView(ChargeDtSelect); for (int i = 0; i < dtcat.Rows.Count; i++) { string invocatid = dtcat.Rows[i]["typeid_chr"].ToString().Trim(); decimal invosum = 0; dvcat.RowFilter = "invcateid_chr = '" + invocatid + "'"; foreach (DataRowView drv in dvcat) { invosum += clsPublic.Round(clsPublic.ConvertObjToDecimal(drv["unitprice_dec"]) * clsPublic.ConvertObjToDecimal(drv["amount_dec"]), 2); } if (invosum == 0) { continue; } clsInvoiceCat_VO invocat_vo = new clsInvoiceCat_VO(); invocat_vo.CatID = invocatid; invocat_vo.CatName = dtcat.Rows[i]["typename_vchr"].ToString().Trim(); invocat_vo.CatSum = invosum; arrcat.Add(invocat_vo); } this.m_objViewer.lvInvoiceCat.Items.Clear(); for (int j = 0; j < arrcat.Count; j++) { clsInvoiceCat_VO invocat_vo = (clsInvoiceCat_VO)arrcat[j]; ListViewItem lvitem = new ListViewItem(); lvitem.Text = invocat_vo.CatName + "\r\n" + invocat_vo.CatSum.ToString("0.00"); lvitem.ImageIndex = 11; lvitem.Tag = invocat_vo; this.m_objViewer.lvInvoiceCat.Items.Add(lvitem); } } }
/// <summary> /// 自动检索待结费用 /// </summary> public void m_mthGetData() { if (this.m_objViewer.ChargeType == "1") { //this.m_objViewer.Cursor = Cursors.WaitCursor; //if (clsPublic.m_blnChargeContinueItem(this.m_objViewer.ucPatientInfo.RegisterID, this.m_objViewer.LoginInfo.m_strEmpID) == false) //{ // this.m_objViewer.Cursor = Cursors.Default; // MessageBox.Show("数据结算异常,结帐终止。", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information); // return; //} //this.m_objViewer.Cursor = Cursors.Default; } clsPublic.PlayAvi("findFILE.avi", "正在检索数据,请稍候..."); this.m_objViewer.lvInvoiceCat.Items.Clear(); this.m_objViewer.dtItem.Rows.Clear(); this.m_objViewer.lblInfo.Visible = false; this.m_objViewer.lblDays.Visible = false; dtSource = null; long l = this.objSvc.m_lngGetFeeItemByActiveType(this.m_objViewer.ucPatientInfo.RegisterID, 888, "1", null, null, null, out dtSource); if (l > 0) { #region 显示发票分类 //显示发票分类 if (dtCat.Rows.Count > 0) { ArrayList arrcat = new ArrayList(); DataView dvcat = new DataView(dtSource); for (int i = 0; i < dtCat.Rows.Count; i++) { string invocatid = dtCat.Rows[i]["typeid_chr"].ToString().Trim(); decimal invosum = 0; dvcat.RowFilter = "invcateid_chr = '" + invocatid + "'"; foreach (DataRowView drv in dvcat) { invosum += clsPublic.Round(clsPublic.ConvertObjToDecimal(drv["totalmony"]), 2); } if (invosum == 0) { continue; } clsInvoiceCat_VO invocat_vo = new clsInvoiceCat_VO(); invocat_vo.CatID = invocatid; invocat_vo.CatName = dtCat.Rows[i]["typename_vchr"].ToString().Trim(); invocat_vo.CatSum = invosum; arrcat.Add(invocat_vo); } for (int j = 0; j < arrcat.Count; j++) { clsInvoiceCat_VO invocat_vo = (clsInvoiceCat_VO)arrcat[j]; ListViewItem lvitem = new ListViewItem(); lvitem.Text = invocat_vo.CatName + "\r\n" + invocat_vo.CatSum.ToString("0.00"); lvitem.ImageIndex = 11; lvitem.Tag = invocat_vo; this.m_objViewer.lvInvoiceCat.Items.Add(lvitem); } } #endregion //填充数据 this.m_mthFillData(dtSource); } this.m_blnBatchCharge(true); if (this.m_objViewer.ucPatientInfo.FeeCheckStatus == 3) { this.m_objViewer.btnCheckStatus.Enabled = false; } else { this.m_objViewer.btnCheckStatus.Enabled = true; } clsPublic.CloseAvi(); }