예제 #1
0
        public long m_lngGetMedicinePreptype(System.Security.Principal.IPrincipal p_objPrincipal, string p_strDrugStoreId, out com.digitalwave.iCare.ValueObject.clsMEDICINEPREPTYPE_VO[] p_objMPVO)
        {
            p_objMPVO = null;
            long lngRes = 0;

            try
            {
                string strSQL = @"select medicinepreptype_chr, medicinepreptypename_vchr, flaga_int
  from t_aid_medicinepreptype a
 where a.medicinepreptype_chr in
       (select b.medicinepreptype_chr
          from t_bse_medicine b
         where b.medicinetypeid_chr in
               (select c.medicinetypeid_chr
                  from t_ds_medstoreset c
                 where c.medstoreid = ?))
 order by a.medicinepreptypename_vchr";

                clsHRPTableService objHRPServ  = new clsHRPTableService();
                IDataParameter[]   objParamArr = null;
                DataTable          dtbValue    = new DataTable();
                objHRPServ.CreateDatabaseParameter(1, out objParamArr);
                objParamArr[0].Value = p_strDrugStoreId;
                lngRes = objHRPServ.lngGetDataTableWithParameters(strSQL, ref dtbValue, objParamArr);

                objHRPServ.Dispose();
                objHRPServ = null;
                if (lngRes > 0 && dtbValue != null)
                {
                    int intRowsCount = dtbValue.Rows.Count;
                    if (intRowsCount == 0)
                    {
                        return(0);
                    }

                    p_objMPVO = new com.digitalwave.iCare.ValueObject.clsMEDICINEPREPTYPE_VO[intRowsCount];
                    DataRow drTemp = null;
                    for (int iRow = 0; iRow < intRowsCount; iRow++)
                    {
                        p_objMPVO[iRow] = new com.digitalwave.iCare.ValueObject.clsMEDICINEPREPTYPE_VO();
                        drTemp          = dtbValue.Rows[iRow];
                        p_objMPVO[iRow].m_strMEDICINEPREPTYPE_CHR      = drTemp["MEDICINEPREPTYPE_CHR"].ToString();
                        p_objMPVO[iRow].m_strMEDICINEPREPTYPENAME_VCHR = drTemp["MEDICINEPREPTYPENAME_VCHR"].ToString();
                        p_objMPVO[iRow].m_intFLAGA_INT = Convert.ToInt32(drTemp["FLAGA_INT"]);
                    }
                }
            }
            catch (Exception objEx)
            {
                com.digitalwave.Utility.clsLogText objLogger = new com.digitalwave.Utility.clsLogText();
                bool blnRes = objLogger.LogError(objEx);
            }
            return(lngRes);
        }
        /// <summary>
        /// 获取药品制剂类型
        /// </summary>
        internal void m_mthGetMedicinePreptype()
        {
            com.digitalwave.iCare.ValueObject.clsMEDICINEPREPTYPE_VO[] objMPVO = null;
            m_objDomain.m_lngGetMedicinePreptype(m_objViewer.m_strStorageID, out objMPVO);

            if (objMPVO != null && objMPVO.Length > 0)
            {
                m_objViewer.m_cboMediciePreptype.Items.Clear();
                com.digitalwave.iCare.ValueObject.clsMEDICINEPREPTYPE_VO objAll = new com.digitalwave.iCare.ValueObject.clsMEDICINEPREPTYPE_VO();
                objAll.m_intFLAGA_INT                 = 0;
                objAll.m_strMEDICINEPREPTYPE_CHR      = string.Empty;
                objAll.m_strMEDICINEPREPTYPENAME_VCHR = "全部";
                m_objViewer.m_cboMediciePreptype.Items.Add(objAll);
                m_objViewer.m_cboMediciePreptype.Items.AddRange(objMPVO);
            }
        }
        /// <summary>
        /// 检查漏盘药品

        /// </summary>
        internal void m_mthCheckMedicine()
        {
            m_objViewer.m_dtbMissMedicine.Rows.Clear();

            DataTable dtbStorageMedicine = null;
            long      lngRes             = 0;

            if (m_objViewer.m_rdbMedicineCode.Checked)
            {
                if (string.IsNullOrEmpty(m_objViewer.m_txtMedicineCode1.Text) || string.IsNullOrEmpty(m_objViewer.m_txtMedicineCode2.Text))
                {
                    MessageBox.Show("请先输入完整查询条件", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    m_objViewer.m_txtMedicineCode1.Focus();
                    return;
                }

                lngRes = m_objDomain.m_lngGetMedicineByMedicineCode(m_objViewer.m_txtMedicineCode1.Text, m_objViewer.m_txtMedicineCode2.Text, m_objViewer.m_strDeptID, m_objViewer.m_blnIsHospital, out dtbStorageMedicine);
            }
            else if (m_objViewer.m_rdbMedicinePreptype.Checked)
            {
                if (m_objViewer.m_cboMediciePreptype.SelectedIndex == -1 || m_objViewer.m_cboMediciePreptype.SelectedItem == null)
                {
                    MessageBox.Show("请先选择药品剂型", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    m_objViewer.m_cboMediciePreptype.Focus();
                    return;
                }

                com.digitalwave.iCare.ValueObject.clsMEDICINEPREPTYPE_VO objTypeVO = m_objViewer.m_cboMediciePreptype.SelectedItem as com.digitalwave.iCare.ValueObject.clsMEDICINEPREPTYPE_VO;
                lngRes = m_objDomain.m_lngGetMedicineByMedicinePreptype(objTypeVO.m_strMEDICINEPREPTYPE_CHR, m_objViewer.m_strDeptID, m_objViewer.m_blnIsHospital, out dtbStorageMedicine);
            }
            else if (m_objViewer.m_rdbMedicineType.Checked)
            {
                if (m_objViewer.m_cboMedicineType.SelectedIndex == -1 || m_objViewer.m_cboMedicineType.SelectedItem == null)
                {
                    MessageBox.Show("请先选择药品类型", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    m_objViewer.m_cboMedicineType.Focus();
                    return;
                }

                com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO objTypeVO = m_objViewer.m_cboMedicineType.SelectedItem as com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO;
                lngRes = m_objDomain.m_lngGetMedicineByMedicineType(objTypeVO.m_strMedicineTypeID_CHR, m_objViewer.m_strDeptID, m_objViewer.m_blnIsHospital, out dtbStorageMedicine);
            }
            else
            {
                MessageBox.Show("请先选择查询条件", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (dtbStorageMedicine == null || dtbStorageMedicine.Rows.Count == 0)
            {
                return;
            }
            //if (m_objViewer.m_intCheckMode == 1)
            //{
            DataTable m_dtResult        = null;
            DataTable m_dtbResultDetail = null;

            m_mthChangeToTotal(dtbStorageMedicine, out m_dtResult, out m_dtbResultDetail);
            if (m_objViewer.m_dtbMissDetail == null)
            {
                m_objViewer.m_dtbMissDetail = m_dtbResultDetail.Clone();
            }
            if (m_objViewer.m_dtbHasCheckMedicine == null || m_objViewer.m_dtbHasCheckMedicine.Rows.Count == 0)
            {
                m_objViewer.m_dtbMissMedicine.Merge(m_dtResult, true);
                m_objViewer.m_dtbMissDetail.Merge(m_dtbResultDetail, true);
                return;
            }
            DataTable m_dtbHasCheckCopy = m_objViewer.m_dtbHasCheckMedicineFixed.Copy();

            DataRow[] m_drNull = m_dtbHasCheckCopy.Select("medicineid_chr is null");
            if (m_drNull != null && m_drNull.Length > 0)
            {
                foreach (DataRow dr in m_drNull)
                {
                    m_dtbHasCheckCopy.Rows.Remove(dr);
                }
            }
            if (m_dtbHasCheckCopy.Rows.Count == 0)
            {
                m_objViewer.m_dtbMissMedicine.Merge(m_dtResult, true);
                m_objViewer.m_dtbMissDetail.Merge(m_dtbResultDetail, true);
                return;
            }

            m_dtbHasCheckCopy.PrimaryKey = new DataColumn[] { m_dtbHasCheckCopy.Columns["medicineid_chr"], m_dtbHasCheckCopy.Columns["opretailprice_int"] };
            DataRow drDelete       = null;
            DataRow drDeleteDetail = null;

            object[] objParamArr = new object[2];

            for (int i1 = 0; i1 < m_dtbHasCheckCopy.Rows.Count; i1++)
            {
                objParamArr[0] = m_dtbHasCheckCopy.Rows[i1]["medicineid_chr"];
                objParamArr[1] = m_dtbHasCheckCopy.Rows[i1]["opretailprice_int"];
                if (m_dtResult.Rows.Contains(objParamArr))
                {
                    drDelete = m_dtResult.Rows.Find(objParamArr);
                    m_dtResult.Rows.Remove(drDelete);
                    for (int i2 = 0; i2 < m_dtbResultDetail.Rows.Count; i2++)
                    {
                        drDeleteDetail = m_dtbResultDetail.Rows[i2];
                        if (drDeleteDetail["medicineid_chr"].ToString() == objParamArr[0].ToString() &&
                            Convert.ToDouble(drDeleteDetail["medicineid_chr"]).ToString("F4") == Convert.ToDouble(objParamArr[1]).ToString("F4"))
                        {
                            m_dtbResultDetail.Rows.Remove(drDeleteDetail);
                        }
                    }
                }
            }
            DataRow[] m_drNewArr = m_dtResult.Select("medicinename_vchr is not null");

            if (m_drNewArr != null && m_drNewArr.Length > 0)
            {
                DataRow m_drTemp   = null;
                DataRow m_drNewRow = null;
                m_objViewer.m_dtbMissMedicine.BeginLoadData();
                for (int iRow = 0; iRow < m_drNewArr.Length; iRow++)
                {
                    m_drTemp = m_drNewArr[iRow];
                    if (Convert.ToString(m_drTemp["retailprice_int"]) == string.Empty)
                    {
                        continue;
                    }
                    m_drNewRow = m_objViewer.m_dtbMissMedicine.NewRow();
                    m_drNewRow["checkmedicineorder_chr"] = m_drTemp["checkmedicineorder_chr"].ToString();
                    m_drNewRow["assistcode_chr"]         = m_drTemp["assistcode_chr"].ToString();
                    m_drNewRow["medicineid_chr"]         = m_drTemp["medicineid_chr"].ToString();
                    m_drNewRow["medicinename_vchr"]      = m_drTemp["medicinename_vchr"].ToString();
                    m_drNewRow["medspec_vchr"]           = m_drTemp["MEDSPEC_VCHR"].ToString();
                    m_drNewRow["unit_chr"]        = m_drTemp["unit_chr"].ToString();
                    m_drNewRow["opunit_chr"]      = m_drTemp["opunit_chr"].ToString();
                    m_drNewRow["ipunit_chr"]      = m_drTemp["ipunit_chr"].ToString();
                    m_drNewRow["packqty_dec"]     = Convert.ToDouble(m_drTemp["packqty_dec"]);
                    m_drNewRow["opchargeflg_int"] = Convert.ToDouble(m_drTemp["opchargeflg_int"]);
                    m_drNewRow["ipchargeflg_int"] = Convert.ToDouble(m_drTemp["ipchargeflg_int"]);
                    m_drNewRow["realgross_int"]   = m_drTemp["realgross_int"].ToString();
                    //m_drNewRow["callprice_int"] = m_drTemp["CALLPRICE_INT"].ToString();
                    //m_drNewRow["wholesaleprice_int"] = m_drTemp["WHOLESALEPRICE_INT"].ToString();
                    m_drNewRow["retailprice_int"]           = m_drTemp["RETAILPRICE_INT"].ToString();
                    m_drNewRow["lotno_vchr"]                = m_drTemp["lotno_vchr"].ToString();
                    m_drNewRow["indrugstoreid_vchr"]        = m_drTemp["indrugstoreid_vchr"].ToString();
                    m_drNewRow["validperiod_dat"]           = m_drTemp["validperiod_dat"].ToString();
                    m_drNewRow["productorid_chr"]           = m_drTemp["PRODUCTORID_CHR"].ToString();
                    m_drNewRow["medicinepreptype_chr"]      = m_drTemp["medicinepreptype_chr"].ToString();
                    m_drNewRow["medicinepreptypename_vchr"] = m_drTemp["medicinepreptypename_vchr"].ToString();
                    m_drNewRow["storagerackcode_vchr"]      = m_drTemp["storagerackcode_vchr"].ToString();
                    m_drNewRow["checkgross_int"]            = m_drTemp["checkgross_int"].ToString();
                    m_drNewRow["retailmoney"]               = m_drTemp["retailmoney"].ToString();
                    m_drNewRow["realmoney"]           = m_drTemp["retailmoney"].ToString();
                    m_drNewRow["iprealgross_int"]     = Convert.ToDouble(m_drTemp["iprealgross_int"]);
                    m_drNewRow["oprealgross_int"]     = Convert.ToDouble(m_drTemp["oprealgross_int"]);
                    m_drNewRow["ipretailprice_int"]   = Convert.ToDouble(m_drTemp["ipretailprice_int"]);
                    m_drNewRow["opretailprice_int"]   = Convert.ToDouble(m_drTemp["opretailprice_int"]);
                    m_drNewRow["ipcallprice_int"]     = Convert.ToDouble(m_drTemp["ipcallprice_int"]);
                    m_drNewRow["opcallprice_int"]     = Convert.ToDouble(m_drTemp["opcallprice_int"]);
                    m_drNewRow["dsinstoragedate_dat"] = Convert.ToDateTime(m_drTemp["dsinstoragedate_dat"]);
                    m_drNewRow["checkreason_vchr"]    = m_drTemp["checkreason_vchr"].ToString();
                    m_objViewer.m_dtbMissMedicine.LoadDataRow(m_drNewRow.ItemArray, true);
                }
                m_objViewer.m_dtbMissMedicine.EndLoadData();
            }
            DataRow[] m_drNewDetail = m_dtbResultDetail.Select("retailprice_int is not null");
            if (m_drNewDetail != null && m_drNewDetail.Length > 0)
            {
                m_objViewer.m_dtbMissDetail.BeginLoadData();
                for (int i3 = 0; i3 < m_drNewDetail.Length; i3++)
                {
                    m_objViewer.m_dtbMissDetail.LoadDataRow(m_drNewDetail[i3].ItemArray, true);
                }
                m_objViewer.m_dtbMissDetail.EndLoadData();
            }

            //}
            //}
            //else
            //{
            //    if (m_objViewer.m_dtbHasCheckMedicine == null || m_objViewer.m_dtbHasCheckMedicine.Rows.Count == 0)
            //    {
            //        m_objViewer.m_dtbMissMedicine.Merge(dtbStorageMedicine, true);
            //        for (int i1 = 1; i1 < m_objViewer.m_dtbMissMedicine.Rows.Count; i1++)
            //        {
            //            if (Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["opchargeflg_int"]) == 1)
            //            {
            //                m_objViewer.m_dtbMissMedicine.Rows[i1]["realgross_int"] = Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["realgross_int"]) * Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"]);
            //                //m_objViewer.m_dtbMissMedicine.Rows[i1]["callprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["CALLPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //                //m_objViewer.m_dtbMissMedicine.Rows[i1]["wholesaleprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["WHOLESALEPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //                m_objViewer.m_dtbMissMedicine.Rows[i1]["retailprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["RETAILPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //            }
            //        }
            //        return;
            //    }

            //    DataTable dtbHasCheckCopy = m_objViewer.m_dtbHasCheckMedicineFixed.Copy();
            //    DataRow[] drNull = dtbHasCheckCopy.Select("medicineid_chr is null");
            //    if (drNull != null && drNull.Length > 0)
            //    {
            //        foreach (DataRow dr in drNull)
            //        {
            //            dtbHasCheckCopy.Rows.Remove(dr);
            //        }
            //    }

            //    if (dtbHasCheckCopy.Rows.Count == 0)
            //    {
            //        m_objViewer.m_dtbMissMedicine.Merge(dtbStorageMedicine, true);
            //        for (int i1 = 1; i1 < m_objViewer.m_dtbMissMedicine.Rows.Count; i1++)
            //        {
            //            if (Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["opchargeflg_int"]) == 1)
            //            {
            //                m_objViewer.m_dtbMissMedicine.Rows[i1]["realgross_int"] = Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["realgross_int"]) * Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"]);
            //                //m_objViewer.m_dtbMissMedicine.Rows[i1]["callprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["CALLPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //                //m_objViewer.m_dtbMissMedicine.Rows[i1]["wholesaleprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["WHOLESALEPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //                m_objViewer.m_dtbMissMedicine.Rows[i1]["retailprice_int"] = Convert.ToDouble(Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["RETAILPRICE_INT"]) / Convert.ToDouble(m_objViewer.m_dtbMissMedicine.Rows[i1]["packqty_dec"])).ToString("F4");
            //            }
            //        }
            //        return;
            //    }

            //dtbHasCheckCopy.PrimaryKey = new DataColumn[] { dtbHasCheckCopy.Columns["medicineid_chr"], dtbHasCheckCopy.Columns["lotno_vchr"], dtbHasCheckCopy.Columns["indrugstoreid_vchr"] };

            //dtbHasCheckCopy.Merge(dtbStorageMedicine, true);

            //DataRow[] drNewArr = dtbHasCheckCopy.Select("medicinename_vchr is not null");

            //dtbHasCheckCopy = null;

            //if (drNewArr != null && drNewArr.Length > 0)
            //{
            //    DataRow drTemp = null;
            //    DataRow drNewRow = null;
            //    m_objViewer.m_dtbMissMedicine.BeginLoadData();
            //    for (int iRow = 0; iRow < drNewArr.Length; iRow++)
            //    {
            //        drTemp = drNewArr[iRow];
            //        if (Convert.ToString(drTemp["CALLPRICE_INT"]) == string.Empty)
            //            continue;
            //        drNewRow = m_objViewer.m_dtbMissMedicine.NewRow();
            //        drNewRow["checkmedicineorder_chr"] = drTemp["checkmedicineorder_chr"].ToString();
            //        drNewRow["assistcode_chr"] = drTemp["assistcode_chr"].ToString();
            //        drNewRow["medicineid_chr"] = drTemp["medicineid_chr"].ToString();
            //        drNewRow["medicinename_vchr"] = drTemp["medicinename_vchr"].ToString();
            //        drNewRow["medspec_vchr"] = drTemp["MEDSPEC_VCHR"].ToString();
            //        drNewRow["unit_chr"] = drTemp["unit_chr"].ToString();
            //        drNewRow["opunit_chr"] = drTemp["opunit_chr"].ToString();
            //        drNewRow["ipunit_chr"] = drTemp["ipunit_chr"].ToString();
            //        drNewRow["packqty_dec"] = Convert.ToDouble(drTemp["packqty_dec"]);
            //        drNewRow["opchargeflg_int"] = Convert.ToDouble(drTemp["opchargeflg_int"]);
            //        //if (Convert.ToDouble(drTemp["opchargeflg_int"]) == 1)//最小单位
            //        //{
            //        //    drNewRow["realgross_int"] = Convert.ToDouble(drTemp["realgross_int"]) * Convert.ToDouble(drTemp["packqty_dec"]);
            //        //    //drNewRow["callprice_int"] = Convert.ToDouble(Convert.ToDouble(drTemp["CALLPRICE_INT"]) / Convert.ToDouble(drTemp["packqty_dec"])).ToString("F4");
            //        //    //drNewRow["wholesaleprice_int"] = Convert.ToDouble(Convert.ToDouble(drTemp["WHOLESALEPRICE_INT"]) / Convert.ToDouble(drTemp["packqty_dec"])).ToString("F4");
            //        //    drNewRow["retailprice_int"] = Convert.ToDouble(Convert.ToDouble(drTemp["RETAILPRICE_INT"]) / Convert.ToDouble(drTemp["packqty_dec"])).ToString("F4");
            //        //}
            //        //else//基本单位
            //        //{
            //            drNewRow["realgross_int"] = drTemp["realgross_int"].ToString();
            //            //drNewRow["callprice_int"] = drTemp["CALLPRICE_INT"].ToString();
            //            //drNewRow["wholesaleprice_int"] = drTemp["WHOLESALEPRICE_INT"].ToString();
            //            drNewRow["retailprice_int"] = drTemp["RETAILPRICE_INT"].ToString();
            //        //}

            //        drNewRow["lotno_vchr"] = drTemp["lotno_vchr"].ToString();
            //        drNewRow["indrugstoreid_vchr"] = drTemp["indrugstoreid_vchr"].ToString();
            //        drNewRow["validperiod_dat"] = drTemp["validperiod_dat"].ToString();
            //        drNewRow["productorid_chr"] = drTemp["PRODUCTORID_CHR"].ToString();
            //        drNewRow["medicinepreptype_chr"] = drTemp["medicinepreptype_chr"].ToString();
            //        drNewRow["medicinepreptypename_vchr"] = drTemp["medicinepreptypename_vchr"].ToString();
            //        drNewRow["storagerackcode_vchr"] = drTemp["storagerackcode_vchr"].ToString();

            //        m_objViewer.m_dtbMissMedicine.LoadDataRow(drNewRow.ItemArray, true);
            //    }
            //    m_objViewer.m_dtbMissMedicine.EndLoadData();
            //}
        }