Ejemplo n.º 1
0
        public long m_lngGetStorageMedicineType(System.Security.Principal.IPrincipal p_objPrincipal, string p_strStorageID, out com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO[] p_objMTVO)
        {
            p_objMTVO = null;
            long lngRes = 0;

            try
            {
                string strSQL = @"select a.medicinetypeid_chr, a.medicinetypename_vchr
  from t_aid_medicinetype a, t_ms_medicinestoreroomset b
 where a.medicinetypeid_chr = b.medicinetypeid_chr
   and b.medicineroomid = ?";

                clsHRPTableService objHRPServ = new clsHRPTableService();
                DataTable          dtbValue   = null;
                IDataParameter[]   objDPArr   = null;
                objHRPServ.CreateDatabaseParameter(1, out objDPArr);
                objDPArr[0].Value = p_strStorageID;

                lngRes = objHRPServ.lngGetDataTableWithParameters(strSQL, ref dtbValue, objDPArr);

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

                    p_objMTVO = new com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO[intRowsCount];
                    DataRow drTemp = null;
                    for (int iRow = 0; iRow < intRowsCount; iRow++)
                    {
                        p_objMTVO[iRow] = new com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO();
                        drTemp          = dtbValue.Rows[iRow];
                        p_objMTVO[iRow].m_strMedicineTypeID_CHR    = drTemp["medicinetypeid_chr"].ToString();
                        p_objMTVO[iRow].m_strMedicineTypeName_VCHR = drTemp["medicinetypename_vchr"].ToString();
                    }
                }
            }
            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_mthGetMedicineType()
        {
            com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO[] objMTVO = null;
            clsDcl_Purchase objPDomain = new clsDcl_Purchase();
            long            lngRes     = objPDomain.m_lngGetStorageMedicineType(m_objViewer.m_strStorageID, out objMTVO);

            objPDomain = null;

            if (objMTVO != null && objMTVO.Length > 0)
            {
                m_objViewer.m_cboMedicineType.Items.Clear();
                com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO objAll = new com.digitalwave.iCare.ValueObject.clsMS_MedicineType_VO();
                objAll.m_strMedicineTypeID_CHR    = string.Empty;
                objAll.m_strMedicineTypeName_VCHR = "全部";
                m_objViewer.m_cboMedicineType.Items.Add(objAll);
                m_objViewer.m_cboMedicineType.Items.AddRange(objMTVO);
            }
        }
        /// <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_strStorageID, 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_strStorageID, 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_lngGetMedicineByMedicinePreptype(objTypeVO.m_strMedicineTypeID_CHR, m_objViewer.m_strStorageID, out dtbStorageMedicine);
            }
            else
            {
                MessageBox.Show("请先选择查询条件", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (dtbStorageMedicine == null || dtbStorageMedicine.Rows.Count == 0)
            {
                return;
            }

            if (m_objViewer.m_dtbHasCheckMedicine == null || m_objViewer.m_dtbHasCheckMedicine.Rows.Count == 0)
            {
                m_objViewer.m_dtbMissMedicine.Merge(dtbStorageMedicine, true);
                return;
            }

            DataTable dtbHasCheckCopy = m_objViewer.m_dtbHasCheckMedicine.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);
                return;
            }

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

            dtbHasCheckCopy.Merge(dtbStorageMedicine, true);

            DataRow[] drNewArr = dtbHasCheckCopy.Select("medicinename_vchr is not null");//盘点表字段名为MEDICINENAME_VCH,库存表为MEDICINENAME_VCHR

            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];
                    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["opunit_vchr"]               = drTemp["opunit_vchr"].ToString();
                    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["instorageid_vchr"]          = drTemp["instorageid_vchr"].ToString();
                    drNewRow["validperiod_dat"]           = drTemp["validperiod_dat"].ToString();
                    drNewRow["productorid_chr"]           = drTemp["PRODUCTORID_CHR"].ToString();
                    drNewRow["vendorid_chr"]              = drTemp["vendorid_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();
            }
        }