/// <summary> /// 获取盘点药品 /// </summary> /// <param name="p_dtbMedicine"></param> /// <returns></returns> internal long m_dtbGetMedicine(out DataTable p_dtbMedicine) { long lngRes = 0; p_dtbMedicine = null; Control ctlCurrent = null;//当前正在查询的控件 if (m_objViewer.m_rdbCheckSortNum.Checked) { if (string.IsNullOrEmpty(m_objViewer.m_txtCheckSortNum1.Text) || string.IsNullOrEmpty(m_objViewer.m_txtCheckSortNum2.Text)) { MessageBox.Show("请先输入完整查询条件", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error); m_objViewer.m_txtCheckSortNum1.Focus(); return(-1); } ctlCurrent = m_objViewer.m_txtCheckSortNum1; lngRes = m_objDomain.m_lngGetMedicineBySortNum(m_objViewer.m_txtCheckSortNum1.Text, m_objViewer.m_txtCheckSortNum2.Text, m_objViewer.m_strStorageID, m_objViewer.m_blnIsHospital, out p_dtbMedicine); } else 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(-1); } ctlCurrent = m_objViewer.m_txtMedicineCode1; lngRes = m_objDomain.m_lngGetMedicineByMedicineCode(m_objViewer.m_txtMedicineCode1.Text, m_objViewer.m_txtMedicineCode2.Text, m_objViewer.m_strStorageID, m_objViewer.m_blnIsHospital, out p_dtbMedicine); } 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(-1); } ctlCurrent = m_objViewer.m_cboMediciePreptype; 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, m_objViewer.m_blnIsHospital, out p_dtbMedicine); } else if (m_objViewer.m_rdbRackNum.Checked) { if (string.IsNullOrEmpty(m_objViewer.m_txtRackNum1.Text) || string.IsNullOrEmpty(m_objViewer.m_txtRackNum2.Text)) { MessageBox.Show("请先输入完整查询条件", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error); m_objViewer.m_txtRackNum1.Focus(); return(-1); } ctlCurrent = m_objViewer.m_txtRackNum1; lngRes = m_objDomain.m_lngGetMedicineByMedicineRackNO(m_objViewer.m_txtRackNum1.Text, m_objViewer.m_txtRackNum2.Text, m_objViewer.m_strStorageID, m_objViewer.m_blnIsHospital, out p_dtbMedicine); } else if (m_objViewer.m_rdbSetType.Checked) { System.Collections.ArrayList arr = new System.Collections.ArrayList(); if (m_objViewer.lsvMedType.CheckedItems.Count > 0) { for (int i1 = 0; i1 < m_objViewer.lsvMedType.CheckedItems.Count; i1++) { arr.Add(this.m_objViewer.lsvMedType.CheckedItems[i1].Tag.ToString()); } lngRes = m_objDomain.m_lngGetMedicineByMedicineType(arr, m_objViewer.m_strStorageID, m_objViewer.m_blnIsHospital, out p_dtbMedicine); } else { MessageBox.Show("至少选择一种药品类型", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error); m_objViewer.lsvMedType.Focus(); return(-1); } } else if (m_objViewer.m_rdbAll.Checked) { lngRes = m_objDomain.m_lngGetAllMedicine(m_objViewer.m_strStorageID, m_objViewer.m_blnIsHospital, out p_dtbMedicine); } else { MessageBox.Show("请先选择筛选条件", "药品盘点", MessageBoxButtons.OK, MessageBoxIcon.Error); return(-1); } if (p_dtbMedicine == null || p_dtbMedicine.Rows.Count == 0) { DialogResult drResult = MessageBox.Show("未找到符合条件的药品信息,是否更改筛选条件继续查找?", "药品盘点", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (drResult == DialogResult.Yes) { if (ctlCurrent != null) { ctlCurrent.Focus(); } return(-1); } else { return(0); } } if (!m_objViewer.m_ckbIncludingZero.Checked) { p_dtbMedicine.DefaultView.RowFilter = " realgross_int <> 0 "; p_dtbMedicine = p_dtbMedicine.DefaultView.ToTable(); } return(1); }
/// <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(); //} }