Beispiel #1
0
        /// <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);
                }
            }
        }
Beispiel #2
0
        /// <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);
                }
            }
        }
Beispiel #3
0
        /// <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();
        }