Exemple #1
0
        /// <summary>
        /// 退药业务
        /// </summary>
        public void m_mthReturnMedicine()
        {
            frmReturnMedConfirm frmReturnMedConfirm = new frmReturnMedConfirm();

            frmReturnMedConfirm.objControllReturnMed = this;
            for (int i = 0; i < this.m_objViewer.m_dgvDetail.Rows.Count; i++)
            {
                if (this.m_objViewer.m_dgvDetail.Rows[i].Cells[0].Value.ToString() == "True")
                {
                    string strValue  = this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtReturnAmount"].Value.ToString();
                    double dblResult = 0d;
                    if (double.TryParse(strValue, out dblResult))
                    {
                        if (dblResult > Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtOrgAmount"].Value))
                        {
                            MessageBox.Show(string.Format("第{0}行输入的退药数量不能大于原始发药数量!", i + 1), "iCare系统提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                        else if (dblResult <= 0)
                        {
                            MessageBox.Show(string.Format("第{0}行输入的退药数量应大于零!", i + 1), "iCare系统提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                    }
                    else
                    {
                        MessageBox.Show(string.Format("第{0}行请输入正确的退药数量!", i + 1), "iCare系统提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }
            }
            if (frmReturnMedConfirm.ShowDialog() == DialogResult.OK)
            {
                clsReutrnMed clsMainVo = new clsReutrnMed();
                //收费单位类别
                string         m_strChargeType = "-1";
                List <DataRow> objDataRowList;
                //最小单位对应数量
                double m_dblTempAmout = 0d;
                List <clsReutrnMedEntry> m_objDetailList = new List <clsReutrnMedEntry>();
                clsReutrnMedEntry        m_objReturnMedEntry;
                clsMainVo.m_strDrugStoreid        = this.m_objViewer.m_dgvDetail.Rows[0].Cells["m_txtdrugstoreid_chr"].Value.ToString();
                clsMainVo.m_strDeptName           = this.m_strMedStoreName;
                clsMainVo.m_datCONFIRMTIME_DAT    = DateTime.Now;
                clsMainVo.m_strPatientCardid      = this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtPatientcardid"].Value.ToString();
                clsMainVo.m_strPatientName        = this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtPatientName"].Value.ToString();
                clsMainVo.m_strCONFIRMEMP_CHR     = frmReturnMedConfirm.m_strEmpid;
                clsMainVo.m_datOPERTIME_DAT       = DateTime.Now;
                clsMainVo.m_strOPEREMP_CHR        = this.m_objViewer.LoginInfo.m_strEmpID;
                clsMainVo.m_intSTATUS_INT         = 1;
                clsMainVo.m_strOUTPATRECIPEID_CHR = this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtOutpatientRecipeNo"].Value.ToString();
                clsMainVo.m_strInvoiceNo          = this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtInvoiceNo"].Value.ToString();
                clsMainVo.m_strPayTypeName        = this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtpaytypename_vchr"].Value.ToString();
                clsMainVo.m_dblTotalMoney         = Convert.ToDouble(this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txttotalsum_mny"].Value);
                if (this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int"].Value.ToString() == "0")
                {
                    clsMainVo.m_strInternalFlagName = "普通";
                }
                else if (this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int"].Value.ToString() == "1")
                {
                    clsMainVo.m_strInternalFlagName = "公费";
                }
                else if (this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int"].Value.ToString() == "2")
                {
                    clsMainVo.m_strInternalFlagName = "医保";
                }
                else if (this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int"].Value.ToString() == "3")
                {
                    clsMainVo.m_strInternalFlagName = "特困";
                }
                else if (this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int"].Value.ToString() == "4")
                {
                    clsMainVo.m_strInternalFlagName = "离休";
                }
                else if (this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int"].Value.ToString() == "5")
                {
                    clsMainVo.m_strInternalFlagName = "本院";
                }
                else if (this.m_objViewer.m_dgvSendMed.Rows[this.m_objViewer.m_dgvSendMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int"].Value.ToString() == "6")
                {
                    clsMainVo.m_strInternalFlagName = "门诊合作医疗";
                }
                for (int i = 0; i < this.m_objViewer.m_dgvDetail.Rows.Count; i++)
                {
                    if (this.m_objViewer.m_dgvDetail.Rows[i].Cells[0].Value.ToString() == "True")
                    {
                        objDataRowList  = this.m_objViewer.m_dgvDetail.Rows[i].Tag as List <DataRow>;
                        m_strChargeType = this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtchargeType"].Value.ToString();
                        if (m_strChargeType == "0")
                        {
                            m_dblTempAmout = Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtReturnAmount"].Value) * Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtpackqty_dec"].Value);
                        }
                        else if (m_strChargeType == "1")
                        {
                            m_dblTempAmout = Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtReturnAmount"].Value);
                        }
                        else
                        {
                            m_dblTempAmout = Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtReturnAmount"].Value) * Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtMidUnitPackage"].Value);
                        }

                        foreach (DataRow dr in objDataRowList)
                        {
                            m_objReturnMedEntry = new clsReutrnMedEntry();
                            m_objReturnMedEntry.m_strItemSpec        = this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtMedSpec"].Value.ToString();
                            m_objReturnMedEntry.BILLROWNO_INT        = Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtBillRowNo"].Value);
                            m_objReturnMedEntry.m_strITEMID_CHR      = this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtItemid"].Value.ToString();
                            m_objReturnMedEntry.m_strMEDICINEID_CHR  = this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtMedicineid"].Value.ToString();
                            m_objReturnMedEntry.m_strITEMNAME_VCHR   = this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtItemName"].Value.ToString();
                            m_objReturnMedEntry.m_strUnit_chr        = this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtUnit"].Value.ToString();
                            m_objReturnMedEntry.ORGAMOUT_DEC         = Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtOrgAmount"].Value);
                            m_objReturnMedEntry.PRICE_DEC            = Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtPrice"].Value);
                            m_objReturnMedEntry.RETAMOUT_DEC         = Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtReturnAmount"].Value);
                            m_objReturnMedEntry.m_dblPackage         = Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtpackqty_dec"].Value);
                            m_objReturnMedEntry.m_strDrugStoreid_chr = this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtdrugstoreid_chr"].Value.ToString();

                            m_objReturnMedEntry.m_intchargetype_int = Convert.ToInt32(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtchargeType"].Value);

                            m_objReturnMedEntry.m_dblReturnPrice = m_objReturnMedEntry.RETAMOUT_DEC * Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtPrice"].Value);
                            if (this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtMidUnitPackage"].Value != DBNull.Value)
                            {
                                m_objReturnMedEntry.m_dblunitscale_dec = Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtMidUnitPackage"].Value);
                            }

                            m_objReturnMedEntry.m_strOUTPATRECIPEID_CHR = clsMainVo.m_strOUTPATRECIPEID_CHR;
                            //判断退药哪一批号
                            if (Convert.ToDouble(dr["ipamount_dec"]) >= m_dblTempAmout)
                            {
                                m_objReturnMedEntry.m_strSerialno         = dr["medseriesid_int"].ToString();
                                m_objReturnMedEntry.m_dblLotsReturnAmount = m_dblTempAmout;
                                m_objReturnMedEntry.m_intAdded            = 1;
                                m_objDetailList.Add(m_objReturnMedEntry);

                                break;
                            }
                            else
                            {
                                m_objReturnMedEntry.m_strSerialno         = dr["medseriesid_int"].ToString();
                                m_objReturnMedEntry.m_dblLotsReturnAmount = Convert.ToDouble(dr["ipamount_dec"]);
                                m_dblTempAmout -= m_objReturnMedEntry.m_dblLotsReturnAmount;
                                m_objDetailList.Add(m_objReturnMedEntry);
                            }
                        }
                        clsMainVo.m_dblReturnMoney += Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtReturnAmount"].Value) * Convert.ToDouble(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_txtPrice"].Value);
                        clsMainVo.m_intTimes_int    = Convert.ToInt16(this.m_objViewer.m_dgvDetail.Rows[i].Cells["m_dgvtxttimes_int"].Value);
                    }
                    else
                    {
                        clsMainVo.m_intFLAG_INT = 1;
                    }
                }
                long lngRes = -1;
                lngRes = m_objDomain.m_lngAddReturnMedInfo(clsMainVo, m_objDetailList);
                if (lngRes > 0)
                {
                    MessageBox.Show("退药成功!");
                    try
                    {
                        if (MessageBox.Show("是否打印病者退款通知及收据?", "药房退药提示信息:", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) == DialogResult.OK)
                        {
                            DataStore ds = new DataStore();

                            ds.LibraryList      = Application.StartupPath + @"\pb_op.pbl";
                            ds.DataWindowObject = "d_op_patchmedince_report";
                            if (clsMainVo.m_intTimes_int > 0)
                            {
                                ds.Modify("t_46.text='" + clsMainVo.m_intTimes_int.ToString() + "'");
                                ds.Modify("t_strmedtype.text='草'");
                            }
                            ds.Modify("t_strname.text='" + clsMainVo.m_strPatientName + "'");
                            ds.Modify("t_strcardid.text='" + clsMainVo.m_strPatientCardid + "'");
                            ds.Modify("t_strpaytype.text='" + clsMainVo.m_strPayTypeName + "'");
                            ds.Modify("t_strtype.text='" + clsMainVo.m_strInternalFlagName + "'");
                            ds.Modify("t_strno.text='" + clsMainVo.m_strInvoiceNo + "'");
                            ds.Modify("t_strno2.text='" + clsMainVo.m_strOUTPATRECIPEID_CHR + "'");
                            ds.Modify("t_strpaymoney.text='" + clsMainVo.m_dblTotalMoney.ToString("0.0000") + "'");
                            ds.Modify("t_strpatchmoney.text='" + clsMainVo.m_dblReturnMoney.ToString("0.0000") + "'");
                            ds.Modify("t_strname2.text='" + clsMainVo.m_strPatientName + "'");
                            ds.Modify("t_strpatchmoney2.text='" + clsMainVo.m_dblReturnMoney.ToString("0.0000") + "'");
                            ds.Modify("t_strdept.text='" + clsMainVo.m_strDeptName + "'");
                            ds.Modify("t_strpatchmoney3.text='" + clsMainVo.m_dblReturnMoney.ToString("0.0000") + "'");
                            ds.Modify("t_35.text='" + clsMainVo.m_strInvoiceNo + "'");
                            ds.Modify("t_strpatchmoney4.text='" + clsMainVo.m_dblReturnMoney.ToString("0.0000") + "'");
                            for (int i = 0; i < m_objDetailList.Count; i++)
                            {
                                if (m_objDetailList[i].m_intAdded == 0)
                                {
                                    continue;
                                }
                                int iRow = ds.InsertRow(0);
                                ds.SetItemString(iRow, "medname", m_objDetailList[i].m_strITEMNAME_VCHR);
                                ds.SetItemString(iRow, "medspec", m_objDetailList[i].m_strItemSpec);
                                ds.SetItemString(iRow, "medunit", m_objDetailList[i].m_strUnit_chr);
                                ds.SetItemString(iRow, "amout", m_objDetailList[i].ORGAMOUT_DEC.ToString());
                                ds.SetItemString(iRow, "patchamout", m_objDetailList[i].RETAMOUT_DEC.ToString());
                                ds.SetItemString(iRow, "patchmoney", m_objDetailList[i].m_dblReturnPrice.ToString("0.0000"));
                            }
                            clsPublic.PrintDialog(ds);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                    m_mthGetReturnMedicine();
                }
                else
                {
                    MessageBox.Show("退药失败!");
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// 重打退药凭据
        /// </summary>
        public void m_mthRePrintBill()
        {
            clsReutrnMed             clsMainVo       = new clsReutrnMed();
            List <clsReutrnMedEntry> m_objDetailList = new List <clsReutrnMedEntry>();
            clsReutrnMedEntry        m_objReturnMedEntry;

            clsMainVo.m_strDeptName           = this.m_strMedStoreName;
            clsMainVo.m_strPatientCardid      = this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtPatientcardid1"].Value.ToString();
            clsMainVo.m_strPatientName        = this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtPatientName1"].Value.ToString();
            clsMainVo.m_strOUTPATRECIPEID_CHR = this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtReturnRecipeNo"].Value.ToString();
            clsMainVo.m_strInvoiceNo          = this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtInvoiceNo1"].Value.ToString();
            clsMainVo.m_strPayTypeName        = this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtpaytypename_vchr1"].Value.ToString();
            clsMainVo.m_dblTotalMoney         = Convert.ToDouble(this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txttotalsum_mny1"].Value);
            if (this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int1"].Value.ToString() == "0")
            {
                clsMainVo.m_strInternalFlagName = "普通";
            }
            else if (this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int1"].Value.ToString() == "1")
            {
                clsMainVo.m_strInternalFlagName = "公费";
            }
            else if (this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int1"].Value.ToString() == "2")
            {
                clsMainVo.m_strInternalFlagName = "医保";
            }
            else if (this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int1"].Value.ToString() == "3")
            {
                clsMainVo.m_strInternalFlagName = "特困";
            }
            else if (this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int"].Value.ToString() == "4")
            {
                clsMainVo.m_strInternalFlagName = "离休";
            }
            else if (this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int1"].Value.ToString() == "5")
            {
                clsMainVo.m_strInternalFlagName = "本院";
            }
            else if (this.m_objViewer.m_dgvReturnMed.Rows[this.m_objViewer.m_dgvReturnMed.CurrentCell.RowIndex].Cells["m_txtinternalflag_int1"].Value.ToString() == "6")
            {
                clsMainVo.m_strInternalFlagName = "门诊合作医疗";
            }
            for (int i = 0; i < this.m_objViewer.m_dgvReturnDetail.Rows.Count; i++)
            {
                m_objReturnMedEntry = new clsReutrnMedEntry();
                m_objReturnMedEntry.m_strITEMNAME_VCHR      = this.m_objViewer.m_dgvReturnDetail.Rows[i].Cells["m_dgvtxtItemName1"].Value.ToString();
                m_objReturnMedEntry.m_strOUTPATRECIPEID_CHR = clsMainVo.m_strOUTPATRECIPEID_CHR;
                m_objReturnMedEntry.m_strUnit_chr           = this.m_objViewer.m_dgvReturnDetail.Rows[i].Cells["m_txtUnit1"].Value.ToString();
                m_objReturnMedEntry.ORGAMOUT_DEC            = Convert.ToDouble(this.m_objViewer.m_dgvReturnDetail.Rows[i].Cells["m_txtOrgAmount1"].Value);
                m_objReturnMedEntry.PRICE_DEC    = Convert.ToDouble(this.m_objViewer.m_dgvReturnDetail.Rows[i].Cells["m_txtPrice1"].Value);
                m_objReturnMedEntry.RETAMOUT_DEC = Convert.ToDouble(this.m_objViewer.m_dgvReturnDetail.Rows[i].Cells["m_dgvtextReturnAmount"].Value);

                m_objReturnMedEntry.m_strItemSpec    = this.m_objViewer.m_dgvReturnDetail.Rows[i].Cells["m_txtMedSpec1"].Value.ToString();
                m_objReturnMedEntry.m_dblReturnPrice = m_objReturnMedEntry.RETAMOUT_DEC * Convert.ToDouble(this.m_objViewer.m_dgvReturnDetail.Rows[i].Cells["m_txtPrice1"].Value);
                clsMainVo.m_dblReturnMoney          += m_objReturnMedEntry.m_dblReturnPrice;
                //clsMainVo.m_intTimes_int = Convert.ToInt16(this.m_objViewer.m_dgvReturnDetail.Rows[i].Cells["m_dgvtxttimes_int1"].Value);
                m_objDetailList.Add(m_objReturnMedEntry);
            }
            DataStore ds = new DataStore();

            ds.LibraryList      = Application.StartupPath + @"\pb_op.pbl";
            ds.DataWindowObject = "d_op_patchmedince_report";
            if (clsMainVo.m_intTimes_int > 0)
            {
                ds.Modify("t_46.text='" + clsMainVo.m_intTimes_int.ToString() + "'");
                ds.Modify("t_strmedtype.text=草");
            }
            ds.Modify("t_strname.text='" + clsMainVo.m_strPatientName + "'");
            ds.Modify("t_strcardid.text='" + clsMainVo.m_strPatientCardid + "'");
            ds.Modify("t_strpaytype.text='" + clsMainVo.m_strPayTypeName + "'");
            ds.Modify("t_strtype.text='" + clsMainVo.m_strInternalFlagName + "'");
            ds.Modify("t_strno.text='" + clsMainVo.m_strInvoiceNo + "'");
            ds.Modify("t_strno2.text='" + clsMainVo.m_strOUTPATRECIPEID_CHR + "'");
            ds.Modify("t_strpaymoney.text='" + clsMainVo.m_dblTotalMoney.ToString("0.0000") + "'");
            ds.Modify("t_strpatchmoney.text='" + clsMainVo.m_dblReturnMoney.ToString("0.0000") + "'");
            ds.Modify("t_strname2.text='" + clsMainVo.m_strPatientName + "'");
            ds.Modify("t_strpatchmoney2.text='" + clsMainVo.m_dblReturnMoney.ToString("0.0000") + "'");
            ds.Modify("t_strdept.text='" + clsMainVo.m_strDeptName + "'");
            ds.Modify("t_strpatchmoney3.text='" + clsMainVo.m_dblReturnMoney.ToString("0.0000") + "'");
            ds.Modify("t_35.text='" + clsMainVo.m_strInvoiceNo + "'");
            ds.Modify("t_strpatchmoney4.text='" + clsMainVo.m_dblReturnMoney.ToString("0.0000") + "'");
            for (int i = 0; i < m_objDetailList.Count; i++)
            {
                int iRow = ds.InsertRow(0);
                ds.SetItemString(iRow, "medname", m_objDetailList[i].m_strITEMNAME_VCHR);
                ds.SetItemString(iRow, "medspec", m_objDetailList[i].m_strItemSpec);
                ds.SetItemString(iRow, "medunit", m_objDetailList[i].m_strUnit_chr);
                ds.SetItemString(iRow, "amout", m_objDetailList[i].ORGAMOUT_DEC.ToString());
                ds.SetItemString(iRow, "patchamout", m_objDetailList[i].RETAMOUT_DEC.ToString());
                ds.SetItemString(iRow, "patchmoney", m_objDetailList[i].m_dblReturnPrice.ToString("0.0000"));
            }
            clsPublic.PrintDialog(ds);
        }