示例#1
0
 /// <summary>
 /// 新增
 /// </summary>
 /// <param name="sender">控件</param>
 /// <param name="e">参数</param>
 private void btnNew_Click(object sender, EventArgs e)
 {
     currConfig            = new Basic_SystemConfig();
     currConfig.SystemType = Convert.ToInt32(cbSysType.SelectedValue);
     CurrConfig            = currConfig;
     SetbtnState(OperType.新增);
 }
        public ServiceResponseData SaveBill()
        {
            string  belongSys = requestData.GetData <string>(0);
            string  busiType  = requestData.GetData <string>(1);
            IMwBill iProcess  = NewObject <MwBillFactory>().GetBillProcess(busiType);

            MWBillResult result = new MWBillResult();

            MW_InStoreHead          head    = requestData.GetData <MW_InStoreHead>(2);
            List <MW_InStoreDetail> details = requestData.GetData <List <MW_InStoreDetail> >(3);
            List <int> deleteDetails        = requestData.GetData <List <int> >(4);

            oleDb.BeginTransaction();
            try
            {
                foreach (int detailID in deleteDetails)
                {
                    NewObject <MW_InStoreDetail>().delete(detailID);
                }

                iProcess.SaveBill(head, details);
                Basic_SystemConfig config = NewObject <IMWDao>().GetDeptParameters(head.DeptID, "AutoAuditInstore");
                if (config != null)
                {
                    if (config.Value == "1")
                    {
                        result = iProcess.AuditBill(head.InHeadID, LoginUserInfo.EmpId, LoginUserInfo.EmpName);
                    }
                }

                if (result.Result == 0)
                {
                    oleDb.CommitTransaction();
                }
                else
                {
                    oleDb.RollbackTransaction();
                }

                responseData.AddData(result);
            }
            catch (Exception error)
            {
                oleDb.RollbackTransaction();
                result.Result = 1;
                result.ErrMsg = error.Message;
            }

            responseData.AddData(result);
            return(responseData);
        }
        /// <summary>
        /// 获取月结日
        /// </summary>
        /// <param name="deptId">月结库房ID</param>
        /// <returns>月结日</returns>
        public int GetAccountDay(int deptId)
        {
            Basic_SystemConfig sc = NewDao <IMWDao>().GetDeptParameters(deptId, "BalanceDay");

            if (sc != null && sc.Value != null)
            {
                int result;
                int.TryParse(sc.Value, out result);
                return(result);
            }
            else
            {
                return(0);
            }
        }
示例#4
0
        public ServiceResponseData SaveSystemConfig()
        {
            int workId = requestData.GetData <int>(0);
            Basic_SystemConfig config = requestData.GetData <Basic_SystemConfig>(1);

            //新增参数才验证
            if (config.ID == 0 && NewDao <IBasicDataParameterDao>().ExistSystemConfig(config.ParaID, workId, config.DeptID, config.SystemType) == true)
            {
                throw new Exception("同机构、同业务系统、同科室的系统参数不能相同!");
            }

            SetWorkId(workId);
            this.BindDb(config);
            config.save();

            responseData.AddData(true);
            return(responseData);
        }
示例#5
0
        /// <summary>
        /// 选中系统参数
        /// </summary>
        /// <param name="sender">控件</param>
        /// <param name="e">参数</param>
        private void gridSysConfig_CurrentCellChanged(object sender, EventArgs e)
        {
            if (gridConfig.CurrentCell != null)
            {
                DataTable dt = gridConfig.DataSource as DataTable;
                currConfig = EFWCoreLib.CoreFrame.Common.ConvertExtend.ToObject <Basic_SystemConfig>(dt, gridConfig.CurrentCell.RowIndex);
                CurrConfig = currConfig;
                if (currConfig.DelFlag == 1)
                {
                    btnDel.Text = "启用";
                }
                else
                {
                    btnDel.Text = "停用";
                }
            }
            else
            {
                frmFormConfig.Clear();
            }

            SetbtnState(OperType.默认);
        }
示例#6
0
        /// <summary>
        /// 取得物资参数
        /// </summary>
        /// <returns>参数实体列表</returns>
        private List <Basic_SystemConfig> GetDrugParameters()
        {
            int deptId = Convert.ToInt32(lstDrugRoom.SelectedItems[0].Tag);
            Basic_SystemConfig model = new Basic_SystemConfig();

            parameterList.Clear();
            //加载通用参数

            //物资材料利润百分比
            string pm016 = iip_wzcl.Text;

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 4, DeptID = 0, ParaID = "MWPricePercent", ParaName = "物资利润率", Value = pm016, DataType = 0, Prompt = string.Empty, Memo = "物资利润率(百分比)"
            });

            //加载部门参数
            //出库单自动审核
            string pm021 = "0";

            if (chk_out_chexk.Checked)
            {
                pm021 = "1";
            }
            else
            {
                pm021 = "0";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 4, DeptID = deptId, ParaID = "AutoAuditOutStore", ParaName = "出库单自动审核", Value = pm021, DataType = 0, Prompt = string.Empty, Memo = "出库单自动审核:0手动;1自动"
            });

            //入库单自动审核 chk_input_check
            string pm020 = "0";

            if (chk_input_check.Checked)
            {
                pm020 = "1";
            }
            else
            {
                pm020 = "0";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 4, DeptID = deptId, ParaID = "AutoAuditInstore", ParaName = "入库单自动审核", Value = pm020, DataType = 0, Prompt = string.Empty, Memo = "入库单自动审核:0手动;1自动"
            });

            //月结时间为每月 iip_banlance_day
            string pm008 = iip_banlance_day.Text;

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 4, DeptID = deptId, ParaID = "BalanceDay", ParaName = "默认月结时间", Value = pm008, DataType = 0, Prompt = string.Empty, Memo = "默认月结时间(每月多少号)"
            });
            //强制控制库存 chk_qzkc
            string pm010 = "0";

            if (chk_qzkc.Checked)
            {
                pm010 = "1";
            }
            else
            {
                pm010 = "0";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 4, DeptID = deptId, ParaID = "ControlStore", ParaName = "是否允许库存为负数", Value = pm010, DataType = 0, Prompt = string.Empty, Memo = "是否允许库存为负数:0不强制控制;1强制控制"
            });

            //允许强制平账 chk_qzpz
            string pm011 = "1";

            if (chk_qzpz.Checked)
            {
                pm011 = "1";
            }
            else
            {
                pm011 = "0";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 4, DeptID = deptId, ParaID = "AllowModifyAccount", ParaName = "允许强制平账", Value = pm011, DataType = 0, Prompt = string.Empty, Memo = "是否允许自动平账:0不允许;1允许"
            });

            //月结前必须对账 chk_dz
            string pm012 = "0";

            if (chk_dz.Checked)
            {
                pm012 = "1";
            }
            else
            {
                pm012 = "0";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 4, DeptID = deptId, ParaID = "CheckAccountWhenBalance", ParaName = "月结前必须对账", Value = pm012, DataType = 0, Prompt = string.Empty, Memo = "月结时是否对账:0不对账;1对账"
            });
            //对账误差范围 iip_wzfw
            string pm013 = iip_wzfw.Text;

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 4, DeptID = deptId, ParaID = "ErrorRange", ParaName = "对账误差范围", Value = pm013, DataType = 0, Prompt = string.Empty, Memo = "金额允许误差范围(0.1元为单位)"
            });
            return(parameterList);
        }
        /// <summary>
        /// 审核药库出库单
        /// </summary>
        /// <param name="headID">药库出库单表头ID</param>
        /// <param name="auditEmpID">审核人ID</param>
        /// <param name="auditEmpName">审核人姓名</param>
        /// <returns>单据处理结果</returns>
        public override DGBillResult AuditBill(int headID, int auditEmpID, string auditEmpName)
        {
            DW_OutStoreHead outHead = (DW_OutStoreHead)NewObject <DW_OutStoreHead>().getmodel(headID);

            outHead.AuditEmpID   = auditEmpID;
            outHead.AuditEmpName = auditEmpName;
            outHead.AuditTime    = System.DateTime.Now;
            outHead.AuditFlag    = 1;
            outHead.save();
            List <DW_OutStoreDetail> lstDetails = NewObject <DW_OutStoreDetail>().getlist <DW_OutStoreDetail>("OutHeadID=" + headID);
            DGBillResult             result     = new DGBillResult();

            foreach (var outDeatils in lstDetails)
            {
                StoreParam storeParam = new StoreParam();
                storeParam.Amount       = outDeatils.Amount;
                storeParam.BatchNO      = outDeatils.BatchNO;
                storeParam.DeptID       = outDeatils.DeptID;
                storeParam.DrugID       = outDeatils.DrugID;
                storeParam.RetailPrice  = outDeatils.RetailPrice;
                storeParam.StockPrice   = outDeatils.StockPrice;
                storeParam.UnitID       = outDeatils.UnitID;
                storeParam.UnitName     = outDeatils.UnitName;
                storeParam.ValidityTime = outDeatils.ValidityDate;
                DGStoreResult storeRtn = iStore.ReduceStore(storeParam);
                if (storeRtn.Result != 0)
                {
                    result.Result = 1;
                    if (storeRtn.Result == 1)
                    {
                        result.LstNotEnough = new List <DGNotEnough>();
                        DGNotEnough notEnough = new DGNotEnough();
                        notEnough.DeptID     = outHead.DeptID;
                        notEnough.DrugID     = outDeatils.DrugID;
                        notEnough.LackAmount = outDeatils.Amount - storeRtn.StoreAmount;
                        notEnough.DrugInfo   = "药品批次号:" + outDeatils.BatchNO;
                        result.LstNotEnough.Add(notEnough);
                        result.ErrMsg = "【" + notEnough.DrugInfo + "】库存不足";
                    }
                    else
                    {
                        result.ErrMsg = "药品更新库存出错";
                    }

                    return(result);
                }
                else
                {
                    WriteAccount(outHead, outDeatils, storeRtn);
                }
            }

            if (outHead.BusiType == DGConstant.OP_DW_CIRCULATEOUT || outHead.BusiType == DGConstant.OP_DW_RETURNSTORE)
            {
                //流通出库业务和退库业务
                var                     t         = outHead.BusiType == DGConstant.OP_DW_CIRCULATEOUT ? DGConstant.OP_DS_CIRCULATEIN:DGConstant.OP_DS_RETURNSOTRE;
                DS_InstoreHead          dshead    = NewObject <DGBillConverter>().ConvertInFromDWOutHead(outHead, auditEmpID, auditEmpName, t);
                IDGBill                 iProcess  = NewObject <DGBillFactory>().GetBillProcess(t);
                List <DS_InStoreDetail> dsInStore = NewObject <DGBillConverter>().ConvertInFromDwStoreDetail(headID);
                iProcess.SaveBill(dshead, dsInStore);//药房入库
                Basic_SystemConfig config = NewObject <IDGDao>().GetDeptParameters(dshead.DeptID, "AutoAuditInstore");
                if (config != null)
                {
                    //药房是否需要审核
                    if (config.Value == "1")
                    {
                        result = iProcess.AuditBill(dshead.InHeadID, auditEmpID, auditEmpName);
                    }
                }
            }

            return(result);
        }
        public ServiceResponseData SaveBillFromApply()
        {
            string                   belongSys     = requestData.GetData <string>(0);
            string                   busiType      = requestData.GetData <string>(1);
            IDGBill                  iProcess      = NewObject <DGBillFactory>().GetBillProcess(busiType);
            DGBillResult             result        = new DGBillResult();
            DW_OutStoreHead          head          = requestData.GetData <DW_OutStoreHead>(2);
            List <DW_OutStoreDetail> details       = requestData.GetData <List <DW_OutStoreDetail> >(3);
            List <int>               deleteDetails = requestData.GetData <List <int> >(4);

            oleDb.BeginTransaction();
            try
            {
                foreach (int detailID in deleteDetails)
                {
                    NewObject <DW_OutStoreDetail>().delete(detailID);
                }

                iProcess.SaveBill(head, details);
                DS_ApplyHead applyHead = (DS_ApplyHead)NewObject <DS_ApplyHead>().getmodel(head.ApplyHeadId);
                applyHead.OutStoreHeadID = head.OutStoreHeadID;
                applyHead.AuditFlag      = 1;
                applyHead.AuditEmpID     = LoginUserInfo.EmpId;
                applyHead.AuditEmpName   = LoginUserInfo.EmpName;
                applyHead.AuditTime      = DateTime.Now;
                applyHead.save();

                foreach (var s in details)
                {
                    DS_ApplyDetail detailApply = NewObject <DS_ApplyDetail>().getlist <DS_ApplyDetail>("ApplyHeadId = " + applyHead.ApplyHeadID + " and DrugID=" + s.DrugID + " and BatchNO= '" + s.BatchNO + " '").FirstOrDefault();
                    if (detailApply != null)
                    {
                        detailApply.FactAmount = s.Amount;
                        detailApply.save();
                    }
                }

                Basic_SystemConfig config = NewObject <IDGDao>().GetDeptParameters(head.DeptID, "AutoAuditOutStore");
                if (config != null)
                {
                    //是否配置需要审核
                    if (config.Value == "1")
                    {
                        result = iProcess.AuditBill(head.OutStoreHeadID, LoginUserInfo.EmpId, LoginUserInfo.EmpName, LoginUserInfo.WorkId);
                    }
                }

                if (result.Result == 0)
                {
                    oleDb.CommitTransaction();
                }
                else
                {
                    oleDb.RollbackTransaction();
                }

                responseData.AddData(result);
            }
            catch (Exception error)
            {
                oleDb.RollbackTransaction();
                responseData.AddData(false);
                responseData.AddData(error.Message);
            }

            return(responseData);
        }
        public ServiceResponseData SaveBill()
        {
            string       belongSys = requestData.GetData <string>(0);
            string       busiType  = requestData.GetData <string>(1);
            IDGBill      iProcess  = NewObject <DGBillFactory>().GetBillProcess(busiType);
            DGBillResult result    = new DGBillResult();

            if (belongSys == DGConstant.OP_DW_SYSTEM)
            {
                DW_OutStoreHead          head    = requestData.GetData <DW_OutStoreHead>(2);
                List <DW_OutStoreDetail> details = requestData.GetData <List <DW_OutStoreDetail> >(3);
                List <int> deleteDetails         = requestData.GetData <List <int> >(4);
                //oleDb.BeginTransaction();
                try
                {
                    foreach (int detailID in deleteDetails)
                    {
                        NewObject <DW_OutStoreDetail>().delete(detailID);
                    }

                    iProcess.SaveBill(head, details);
                    Basic_SystemConfig config = NewObject <IDGDao>().GetDeptParameters(head.DeptID, "AutoAuditOutStore");
                    if (config != null)
                    {
                        //是否配置需要审核
                        if (config.Value == "1")
                        {
                            result = iProcess.AuditBill(head.OutStoreHeadID, LoginUserInfo.EmpId, LoginUserInfo.EmpName, LoginUserInfo.WorkId);
                        }
                    }

                    /*if (result.Result == 0)
                     * {
                     *  oleDb.CommitTransaction();
                     * }
                     * else
                     * {
                     *  oleDb.RollbackTransaction();
                     * }*/

                    if (result.Result != 0)
                    {
                        throw new Exception(result.ErrMsg);
                    }

                    responseData.AddData(result);

                    //oleDb.CommitTransaction();
                    //responseData.AddData(true);
                }
                catch (Exception error)
                {
                    throw error;
                    //oleDb.RollbackTransaction();
                    //responseData.AddData(false);
                    //responseData.AddData(error.Message);
                }
            }
            else
            {
                //药房
                DS_OutStoreHead          head    = requestData.GetData <DS_OutStoreHead>(2);
                List <DS_OutStoreDetail> details = requestData.GetData <List <DS_OutStoreDetail> >(3);
                List <int> deleteDetails         = requestData.GetData <List <int> >(4);
                //oleDb.BeginTransaction();
                try
                {
                    foreach (int detailID in deleteDetails)
                    {
                        NewObject <DS_OutStoreDetail>().delete(detailID);
                    }

                    iProcess.SaveBill(head, details);
                    Basic_SystemConfig config = NewObject <IDGDao>().GetDeptParameters(head.DeptID, "AutoAuditOutStore");
                    if (config != null)
                    {
                        //是否需要审核
                        if (config.Value == "1")
                        {
                            result = iProcess.AuditBill(head.OutStoreHeadID, LoginUserInfo.EmpId, LoginUserInfo.EmpName, LoginUserInfo.WorkId);
                        }
                    }

                    /*if (result.Result == 0)
                     * {
                     *  oleDb.CommitTransaction();
                     * }
                     * else
                     * {
                     *  oleDb.RollbackTransaction();
                     * }*/

                    if (result.Result != 0)
                    {
                        throw new Exception(result.ErrMsg);
                    }

                    responseData.AddData(result);
                }
                catch (Exception error)
                {
                    throw error;
                    //oleDb.RollbackTransaction();
                    //responseData.AddData(false);
                    //responseData.AddData(error.Message);
                }
            }

            return(responseData);
        }
示例#10
0
        /// <summary>
        /// 取得药品参数
        /// </summary>
        /// <returns>参数实体列表</returns>
        private List <Basic_SystemConfig> GetDrugParameters()
        {
            int deptId = Convert.ToInt32(lstDrugRoom.SelectedItems[0].Tag);
            Basic_SystemConfig model = new Basic_SystemConfig();

            parameterList.Clear();

            //加载通用参数
            //发药模式
            string pm014 = "0";

            if (rd_jgfy.Checked)
            {
                pm014 = "0";
            }

            if (rd_tlfy.Checked)
            {
                pm014 = "1";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = 0, ParaID = "DispModel", ParaName = "发药模式", Value = pm014, DataType = 0, Prompt = string.Empty, Memo = "发药模式:0经管发药(不含频次、用法等);1临床发药(含频次、用法等)"
            });

            //需要药房确认接收
            string pm009 = "0";

            if (ckb_receive.Checked)
            {
                pm009 = "1";
            }
            else
            {
                pm009 = "0";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = 0, ParaID = "NeedInstoreConfirm", ParaName = "是否需要药房确认接收", Value = pm009, DataType = 0, Prompt = string.Empty, Memo = "药品流通出库时是否需要药房确认接收。"
            });

            //西药利润百分比
            string pm015 = iip_xy.Text;

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = 0, ParaID = "WMPricePercent", ParaName = "西药利润率", Value = pm015, DataType = 0, Prompt = string.Empty, Memo = "西药利润率(百分比)"
            });

            //中成药利润百分比
            string pm016 = iip_zcy.Text;

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = 0, ParaID = "CPMPricePercent", ParaName = "中成药利润率", Value = pm016, DataType = 0, Prompt = string.Empty, Memo = "中成药利润率(百分比)"
            });

            //中药利润百分比
            string pm017 = iip_zcaoy.Text;

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = 0, ParaID = "TCMPricePercent", ParaName = "中药利润率(百分比)", Value = pm017, DataType = 0, Prompt = string.Empty, Memo = "中药利润率(百分比)"
            });

            //摆药单打印药品类型
            string pm018 = "1";

            if (rb_byqb.Checked)
            {
                pm018 = "0";
            }

            if (rb_kfy.Checked)
            {
                pm018 = "1";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = 0, ParaID = "PrintPutBillType", ParaName = "摆药单打印药品类型", Value = pm018, DataType = 0, Prompt = string.Empty, Memo = "摆药单打印药品类型:0全部类型;1口服药"
            });

            //统领单打印药品类型
            string pm019 = "1";

            if (rb_tl_all.Checked)
            {
                pm019 = "0";
            }

            if (rb_zj.Checked)
            {
                pm019 = "1";
            }

            if (rb_zjdsy.Checked)
            {
                pm019 = "2";
            }

            if (rb_dsy.Checked)
            {
                pm019 = "3";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = 0, ParaID = "PrintReceiveBillType", ParaName = "统领单打印药品类型", Value = pm019, DataType = 0, Prompt = string.Empty, Memo = "统领单打印药品类型:0全部;1针剂;2针剂+大输液;3仅打印大输液"
            });

            //加载部门参数
            //出库单自动审核
            string pm021 = "0";

            if (chk_out_chexk.Checked)
            {
                pm021 = "1";
            }
            else
            {
                pm021 = "0";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = deptId, ParaID = "AutoAuditOutStore", ParaName = "出库单自动审核", Value = pm021, DataType = 0, Prompt = string.Empty, Memo = "出库单自动审核:0手动;1自动"
            });

            //入库单自动审核 chk_input_check
            string pm020 = "0";

            if (chk_input_check.Checked)
            {
                pm020 = "1";
            }
            else
            {
                pm020 = "0";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = deptId, ParaID = "AutoAuditInstore", ParaName = "入库单自动审核", Value = pm020, DataType = 0, Prompt = string.Empty, Memo = "入库单自动审核:0手动;1自动"
            });

            //月结时间为每月 iip_banlance_day
            string pm008 = iip_banlance_day.Text;

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = deptId, ParaID = "BalanceDay", ParaName = "默认月结时间", Value = pm008, DataType = 0, Prompt = string.Empty, Memo = "默认月结时间(每月多少号)"
            });

            //强制控制库存 chk_qzkc
            string pm010 = "0";

            if (chk_qzkc.Checked)
            {
                pm010 = "1";
            }
            else
            {
                pm010 = "0";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = deptId, ParaID = "ControlStore", ParaName = "是否允许库存为负数", Value = pm010, DataType = 0, Prompt = string.Empty, Memo = "是否允许库存为负数:0不强制控制;1强制控制"
            });

            //允许强制平账 chk_qzpz
            string pm011 = "1";

            if (chk_qzpz.Checked)
            {
                pm011 = "1";
            }
            else
            {
                pm011 = "0";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = deptId, ParaID = "AllowModifyAccount", ParaName = "允许强制平账", Value = pm011, DataType = 0, Prompt = string.Empty, Memo = "是否允许自动平账:0不允许;1允许"
            });

            //月结前必须对账 chk_dz
            string pm012 = "0";

            if (chk_dz.Checked)
            {
                pm012 = "1";
            }
            else
            {
                pm012 = "0";
            }

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = deptId, ParaID = "CheckAccountWhenBalance", ParaName = "月结前必须对账", Value = pm012, DataType = 0, Prompt = string.Empty, Memo = "月结时是否对账:0不对账;1对账"
            });

            //对账误差范围 iip_wzfw
            string pm013 = iip_wzfw.Text;

            parameterList.Add(new Basic_SystemConfig()
            {
                SystemType = 3, DeptID = deptId, ParaID = "ErrorRange", ParaName = "对账误差范围", Value = pm013, DataType = 0, Prompt = string.Empty, Memo = "金额允许误差范围(0.1元为单位)"
            });
            return(parameterList);
        }