예제 #1
0
        /// <summary>
        /// 退审时获取当前库存、实际库存、可用库存

        /// </summary>
        /// <param name="objvalue_Param"></param>
        /// <param name="dtbResult"></param>
        /// <returns></returns>
        internal long m_lngDclGetMedicineGross(ref clsMs_MedicineWithdrawNumQueryCondition_VO objvalue_Param, ref DataTable dtbResult)
        {
            long lngRes = 0;

            com.digitalwave.iCare.middletier.MedicineStoreService.clsMiddletier_InStorageMedicineWithdrawSVC objSvc =
                (com.digitalwave.iCare.middletier.MedicineStoreService.clsMiddletier_InStorageMedicineWithdrawSVC)com.digitalwave.iCare.common.clsObjectGenerator.objCreatorObjectByType(typeof(com.digitalwave.iCare.middletier.MedicineStoreService.clsMiddletier_InStorageMedicineWithdrawSVC));
            lngRes = objSvc.m_lngGetMedicineGross(objPrincipal, ref objvalue_Param, ref dtbResult);
            return(lngRes);
        }
예제 #2
0
        private void m_mthGetInnerWithdrawNum(clsMs_MedicineWithdrawNumQueryCondition_VO p_objValueParam, ref DataTable Query_dtbResult)
        {
            DataTable m_dtbResult = new DataTable();

            decimal m_decNetAmount       = 0; //出库数量
            decimal m_decAvailAmount     = 0; //可退数量
            string  m_strOutStorageID    = string.Empty;
            decimal m_decReturnNum       = 0;
            decimal m_decReturnAmount    = 0;
            decimal m_decTmpReturnAmount = 0;
            string  m_strMedicineID      = string.Empty;
            string  m_strLotNo           = string.Empty;
            DataRow m_dtbQueryRow        = null;
            DataRow m_dtbResultRow       = null;

            m_objDomain.m_lngGetMedicineWithdrawSum(ref p_objValueParam, ref m_dtbResult);

            for (int i1 = 0; i1 < Query_dtbResult.Rows.Count; i1++)
            {
                m_dtbQueryRow     = Query_dtbResult.Rows[i1];
                m_strMedicineID   = m_dtbQueryRow["MEDICINEID_CHR"].ToString();
                m_strLotNo        = m_dtbQueryRow["LOTNO_VCHR"].ToString();
                m_strOutStorageID = m_dtbQueryRow["outstorageid_vchr"].ToString();
                decimal.TryParse(m_dtbQueryRow["NETAMOUNT_INT"].ToString(), out m_decNetAmount);

                m_decReturnNum    = 0;
                m_decReturnAmount = 0;
                for (int j1 = 0; j1 < m_dtbResult.Rows.Count; j1++)
                {
                    m_dtbResultRow = m_dtbResult.Rows[j1];
                    if ((m_dtbResultRow["MEDICINEID_CHR"].ToString().Trim() == m_strMedicineID) &&
                        (m_dtbResultRow["LOTNO_VCHR"].ToString().Trim() == m_strLotNo) &&
                        (m_dtbResultRow["outstorageid_vchr"].ToString().Trim() == m_strOutStorageID))
                    {
                        m_decReturnNum++;
                        decimal.TryParse(m_dtbResultRow["amount"].ToString(), out m_decTmpReturnAmount);
                        m_decReturnAmount += m_decTmpReturnAmount;
                    }
                }
                //已退数量
                m_dtbQueryRow["ReturnAmount"] = m_decReturnAmount;
                //可退数量
                m_dtbQueryRow["AvailAmount"] = m_decNetAmount - m_decReturnAmount;
                //退药数量

                m_dtbQueryRow["Amount"] = 0;
                //内退次数
                m_dtbQueryRow["ReturnNum"] = m_decReturnNum;
            }
        }
        /// <summary>
        /// 获取药品出库明细数据
        /// </summary>
        /// <param name="p_strStorageID"></param>
        /// <param name="dtbResult"></param>
        /// <returns></returns>
        public long m_mthGetOutStorageDetailData(ref clsMs_MedicineWithdrawOutStorageQueryCondition_VO objvalue_Param)
        {
            long    lngRes                   = 0;
            decimal m_decNetAmount           = 0; //出库数量
            int     m_intMedicineWithdrawNum = 0; //退药次数


            decimal m_decMedicineWithdrawSum = 0;//已退药数量


            decimal m_decAvailAmount = 0;//可退数量

            try
            {
                //调用Com+服务端


                DataTable Query_dtbResult = new DataTable();//数据库返回的结果集


                lngRes = m_objDomain.m_lngGetOutStorageDetailData_MakerBill(ref objvalue_Param, ref Query_dtbResult);
                if (lngRes > 0)
                {
                    DataColumn[] drColumns = new DataColumn[] {
                        new DataColumn("SortNum", typeof(int)),
                        new DataColumn("ReturnAmount", typeof(decimal)),
                        new DataColumn("AvailAmount", typeof(decimal)),
                        new DataColumn("AMOUNT", typeof(decimal)),
                        new DataColumn("AVAILAGROSS_INT", typeof(decimal)),
                        //new DataColumn("validperiod_dat") ,
                        new DataColumn("ReturnNum", typeof(int))
                    };
                    Query_dtbResult.Columns.AddRange(drColumns);
                    DataRow m_dtbResultRow       = null;
                    DataRow m_dtbCancelDetailRow = null;
                    m_objMedicineWithdrawNumCondition = new clsMs_MedicineWithdrawNumQueryCondition_VO();
                    for (int i1 = 0; i1 < Query_dtbResult.Rows.Count; i1++)
                    {
                        m_dtbResultRow            = Query_dtbResult.Rows[i1];
                        m_dtbResultRow["SortNum"] = i1 + 1;
                        m_objMedicineWithdrawNumCondition.m_strStorageID    = m_dtbResultRow["STORAGEID_CHR"].ToString();
                        m_objMedicineWithdrawNumCondition.m_strMedicineID   = m_dtbResultRow["MEDICINEID_CHR"].ToString();
                        m_objMedicineWithdrawNumCondition.m_strLotNo        = m_dtbResultRow["LOTNO_VCHR"].ToString();
                        m_objMedicineWithdrawNumCondition.m_strOutStorageID = m_dtbResultRow["OUTSTORAGEID_VCHR"].ToString();
                        m_objMedicineWithdrawNumCondition.m_strInStorageID  = string.Empty;

                        ////退药次数


                        //m_objDomain.m_lngGetMedicineWithdrawNum(ref m_objMedicineWithdrawNumCondition, out  m_intMedicineWithdrawNum);
                        //m_dtbResultRow["ReturnNum"] = m_intMedicineWithdrawNum;


                        //出库数量
                        decimal.TryParse(m_dtbResultRow["NETAMOUNT_INT"].ToString(), out m_decNetAmount);

                        //已退药数量

                        m_dtbResultRow["ReturnAmount"] = 0;
                        //可退数量
                        m_dtbResultRow["AvailAmount"] = m_decNetAmount;
                        //退药数量

                        m_dtbResultRow["Amount"] = 0;
                        //内退次数
                        m_dtbResultRow["ReturnNum"] = 0;


                        //药品当前库存
                        m_dtbResultRow["AVAILAGROSS_INT"] = m_dtbResultRow["realgross_int"];
                        //m_dtbResultRow["validperiod_dat"] = m_dtbResultRow["validperiod_dat"];


                        //m_decAvailAmount = 0;
                        //for (int j1 = 0; j1 < m_dtbMedicineCancelDetail.Rows.Count; j1++)
                        //{
                        //    m_dtbCancelDetailRow = m_dtbMedicineCancelDetail.Rows[j1];
                        //    if ((m_dtbCancelDetailRow["MEDICINEID_CHR"].ToString().Trim() == m_objMedicineWithdrawNumCondition.m_strMedicineID)
                        //       && (m_dtbCancelDetailRow["OUTSTORAGEID_VCHR"].ToString().Trim() == m_objMedicineWithdrawNumCondition.m_strOutStorageID)
                        //       && (m_dtbCancelDetailRow["LOTNO_VCHR"].ToString().Trim() == m_objMedicineWithdrawNumCondition.m_strLotNo))
                        //    {
                        //        decimal.TryParse(m_dtbCancelDetailRow["Amount"].ToString(), out m_decAvailAmount);
                        //        break;
                        //    }
                        //}
                    }
                    Query_dtbResult.AcceptChanges();
                    //已退药数量


                    m_objMedicineWithdrawNumCondition.m_strStorageID    = objvalue_Param.m_strStorageID;
                    m_objMedicineWithdrawNumCondition.m_strOutStorageID = objvalue_Param.m_strOutStorageID;
                    m_objMedicineWithdrawNumCondition.m_strInStorageID  = string.Empty;
                    m_mthGetInnerWithdrawNum(m_objMedicineWithdrawNumCondition, ref Query_dtbResult);

                    m_objViewer.m_dtbOutStorageDetail = Query_dtbResult;
                }
                else
                {
                    m_objViewer.m_dtbOutStorageDetail = null;
                }

                return(lngRes);
            }//try
            catch (Exception objEx)
            {
                string strTmp = objEx.Message;
                com.digitalwave.Utility.clsLogText objLogger = new com.digitalwave.Utility.clsLogText();
                bool blnRes = objLogger.LogError(objEx);
                MessageBox.Show("查询失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            m_objViewer.m_dtbOutStorageDetail = null;
            return(lngRes);
        }