示例#1
0
        /// <summary>
        /// 获取出库单头数据
        /// </summary>
        /// <returns>出库单头数据</returns>
        public MW_OutStoreHead GetHeadInfo()
        {
            MW_OutStoreHead inHead = new MW_OutStoreHead();

            frmCommon.GetValue <MW_OutStoreHead>(inHead);
            return(inHead);
        }
示例#2
0
        public ServiceResponseData GetEditBillHead()
        {
            string          belongSys = requestData.GetData <string>(0);
            int             billID    = requestData.GetData <int>(1);
            MW_OutStoreHead head      = (MW_OutStoreHead)NewObject <MW_OutStoreHead>().getmodel(billID);

            responseData.AddData(head);
            return(responseData);
        }
示例#3
0
 /// <summary>
 /// 绑定出库实体
 /// </summary>
 /// <typeparam name="THead">出库类型</typeparam>
 /// <param name="inHead">出库实体</param>
 public void BindOutHeadInfo <THead>(THead inHead)
 {
     if (inHead != null)
     {
         if (inHead as MW_OutStoreHead != null)
         {
             CurretOutStoreHead = inHead as MW_OutStoreHead;
         }
     }
 }
示例#4
0
        /// <summary>
        /// 写台帐
        /// </summary>
        /// <typeparam name="THead">单据头实体类</typeparam>
        /// <typeparam name="TDetail">单据明细实体类</typeparam>
        /// <param name="billHead">单据头</param>
        /// <param name="billDetails">单据明细</param>
        /// <param name="storeResult">库存结果信息</param>
        public void WriteAccount <THead, TDetail>(THead billHead, TDetail billDetails, MWStoreResult storeResult)
        {
            MW_OutStoreDetail detail = billDetails as MW_OutStoreDetail;
            MW_OutStoreHead   head   = billHead as MW_OutStoreHead;
            int    actYear;
            int    actMonth;
            string errMsg;

            if (!GetAccountTime(head.DeptID, out errMsg, out actYear, out actMonth))
            {
                throw new Exception(errMsg);
            }

            MW_Account account = NewObject <MW_Account>();

            account.BalanceYear  = actYear;
            account.BalanceMonth = actMonth;
            account.AccountType  = 0;
            account.BalanceFlag  = 0;
            account.BatchNO      = detail.BatchNO;
            account.BusiType     = head.BusiType;
            account.DeptID       = head.DeptID;
            account.DetailID     = detail.OutDetailID;
            account.MaterialID   = detail.MaterialID;
            account.UnitID       = detail.UnitID;
            account.UnitName     = detail.UnitName;
            account.BillNO       = detail.BillNO;
            account.RegTime      = DateTime.Now;
            if (head.BusiType == MWConstant.OP_MW_RETURNSTORE)
            {
                account.StockPrice     = storeResult.BatchAllot[0].StockPrice;
                account.RetailPrice    = storeResult.BatchAllot[0].RetailPrice;
                account.DebitAmount    = detail.Amount;
                account.DebitRetailFee = account.DebitAmount * account.RetailPrice;
                account.DebitStockFee  = account.DebitAmount * account.StockPrice;

                account.OverAmount    = storeResult.BatchAllot[0].StoreAmount;
                account.OverRetailFee = storeResult.BatchAllot[0].StoreAmount * account.RetailPrice;
                account.OverStockFee  = storeResult.BatchAllot[0].StoreAmount * account.StockPrice;
            }
            else
            {
                account.StockPrice     = detail.StockPrice;
                account.RetailPrice    = detail.RetailPrice;
                account.DebitAmount    = detail.Amount;
                account.DebitRetailFee = detail.RetailFee;
                account.DebitStockFee  = detail.StockFee;

                account.OverAmount    = storeResult.BatchAllot[0].StoreAmount;
                account.OverRetailFee = storeResult.BatchAllot[0].StoreAmount * account.RetailPrice;
                account.OverStockFee  = storeResult.BatchAllot[0].StoreAmount * account.StockPrice;
            }

            account.save();
        }
示例#5
0
 public void RefreshHead(string frmName)
 {
     if (billStatus == MWEnum.BillEditStatus.ADD_STATUS)
     {
         MW_OutStoreHead editHead = ifrmOutstoreDetail.GetHeadInfo();
         currentHead.BillTime = editHead.BillTime;
         currentHead.ToDeptID = editHead.ToDeptID;
         currentHead.Remark   = editHead.Remark;
         currentHead.BusiType = editHead.BusiType;
     }
 }
示例#6
0
        /// <summary>
        /// 删除单据
        /// </summary>
        /// <param name="id">出库头id</param>
        public void DeleteBill(int id)
        {
            MW_OutStoreHead inHead = (MW_OutStoreHead)NewObject <MW_OutStoreHead>().getmodel(id);

            if (inHead.AuditFlag == 1)
            {
                throw new Exception("当前单据已经审核,无法删除");
            }
            else
            {
                inHead.DelFlag = 1;
                inHead.save();
            }
        }
示例#7
0
        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_OutStoreHead          head          = requestData.GetData <MW_OutStoreHead>(2);
            List <MW_OutStoreDetail> details       = requestData.GetData <List <MW_OutStoreDetail> >(3);
            List <int>               deleteDetails = requestData.GetData <List <int> >(4);

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

                iProcess.SaveBill(head, details);

                Basic_SystemConfig config = NewObject <IMWDao>().GetDeptParameters(head.DeptID, "AutoAuditOutStore");

                if (config != null)
                {
                    if (config.Value == "1")
                    {
                        result = iProcess.AuditBill(head.OutStoreHeadID, LoginUserInfo.EmpId, LoginUserInfo.EmpName);
                    }
                }

                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);
        }
示例#8
0
        public bool InitBillHead(
            string frmName,
            MWEnum.BillEditStatus billEditStatus,
            int currentBillID)
        {
            if (LoginUserInfo.DeptId == 0)
            {
                MessageBoxShowSimple("用户没有选择登录科室");
                return(false);
            }

            billStatus = billEditStatus;
            if (billStatus == MWEnum.BillEditStatus.ADD_STATUS)
            {
                MW_OutStoreHead outHead = new MW_OutStoreHead();
                outHead.AuditFlag    = 0;
                outHead.AuditEmpID   = 0;
                outHead.AuditEmpName = string.Empty;
                outHead.Remark       = string.Empty;
                outHead.DeptID       = selectedDeptID;
                outHead.BusiType     = MWConstant.OP_MW_DEPTDRAW;//默认内耗流通出库
                outHead.BillTime     = System.DateTime.Now;
                outHead.RegTime      = System.DateTime.Now;
                outHead.RegEmpID     = GetUserInfo().EmpId;
                outHead.RegEmpName   = GetUserInfo().EmpName;
                currentHead          = outHead;
                ifrmOutstoreDetail.BindOutHeadInfo(currentHead);
            }
            else
            {
                Action <ClientRequestData> requestAction = ((ClientRequestData request) =>
                {
                    request.AddData(MWConstant.MW_Out_SYSTEM);
                    request.AddData(currentBillID);
                });

                ServiceResponseData retdata     = InvokeWcfService("DrugProject.Service", "MaterialOutStoreController", "GetEditBillHead", requestAction);
                MW_OutStoreHead     inStoreHead = retdata.GetData <MW_OutStoreHead>(0);
                currentHead = inStoreHead;
                ifrmOutstoreDetail.BindOutHeadInfo(currentHead);
            }

            ifrmOutstoreDetail.InitControStatus(billEditStatus);
            return(true);
        }
示例#9
0
        /// <summary>
        /// 保存单据
        /// </summary>
        /// <typeparam name="THead">头实体类</typeparam>
        /// <typeparam name="TDetail">明细实体类</typeparam>
        /// <param name="billHead">单据头</param>
        /// <param name="billDetails">单据明细列表</param>
        public void SaveBill <THead, TDetail>(THead billHead, List <TDetail> billDetails)
        {
            MW_OutStoreHead          head     = billHead as MW_OutStoreHead;
            List <MW_OutStoreDetail> inDetals = billDetails as List <MW_OutStoreDetail>;

            head.RegTime = System.DateTime.Now;
            string serialNO = NewObject <SerialNumberSource>().GetSerialNumber(SnType.物资, head.DeptID, head.BusiType);

            head.BillNO = Convert.ToInt64(serialNO);
            BindDb(head);
            head.save();
            if (head.OutStoreHeadID > 0)
            {
                foreach (MW_OutStoreDetail detail in inDetals)
                {
                    detail.OutHeadID = head.OutStoreHeadID;
                    detail.BillNO    = head.BillNO;
                    detail.DeptID    = head.DeptID;
                    BindDb(detail);
                    detail.save();
                }
            }
        }
示例#10
0
        /// <summary>
        /// 审核单据
        /// </summary>
        /// <param name="headID">头id</param>
        /// <param name="auditEmpID">审核人id</param>
        /// <param name="auditEmpName">审核人名称</param>
        /// <returns>审核结果信息</returns>
        public MWBillResult AuditBill(int headID, int auditEmpID, string auditEmpName)
        {
            MW_OutStoreHead head   = (MW_OutStoreHead)NewObject <MW_OutStoreHead>().getmodel(headID);
            MWBillResult    result = new MWBillResult();

            if (!NewObject <MaterialDeptMgr>().IsDeptChecked(head.DeptID))
            {
                result.Result = 1;
                result.ErrMsg = "当前科室处于盘点状态或者没有设置科室的盘点状态 不能处理业务操作";
                return(result);
            }

            if (head.AuditFlag == 1)
            {
                result.Result = 1;
                result.ErrMsg = "物资已经被审核,请刷新数据";
                return(result);
            }

            if (head != null)
            {
                List <MW_OutStoreDetail> lstDetails = NewObject <MW_OutStoreDetail>().getlist <MW_OutStoreDetail>("OutHeadID=" + headID);
                head.AuditEmpID   = auditEmpID;
                head.AuditEmpName = auditEmpName;
                head.AuditTime    = System.DateTime.Now;
                head.AuditFlag    = 1;
                head.save();

                foreach (MW_OutStoreDetail detail in lstDetails)
                {
                    StoreParam storeParam = new StoreParam();

                    storeParam.BatchNO    = detail.BatchNO;
                    storeParam.DeptID     = head.DeptID;
                    storeParam.MaterialId = detail.MaterialID;

                    storeParam.RetailPrice  = detail.RetailPrice;
                    storeParam.StockPrice   = detail.StockPrice;
                    storeParam.UnitID       = detail.UnitID;
                    storeParam.UnitName     = detail.UnitName;
                    storeParam.ValidityTime = detail.ValidityDate;
                    storeParam.UnitAmount   = 1;

                    storeParam.Amount     = detail.Amount;
                    storeParam.PackAmount = 1;

                    storeParam.BussConstant = head.BusiType;
                    MWStoreResult storeRtn = NewObject <MwStore>().ReduceStore(storeParam);

                    if (storeRtn.Result != 0)
                    {
                        result.Result = 1;
                        if (storeRtn.Result == 1)
                        {
                            result.LstNotEnough = new List <MWNotEnoughInfo>();
                            MWNotEnoughInfo notEnough = new MWNotEnoughInfo();
                            notEnough.DeptID       = head.DeptID;
                            notEnough.MaterialId   = detail.MaterialID;
                            notEnough.LackAmount   = storeRtn.StoreAmount + detail.Amount;
                            notEnough.MaterialInfo = "药品编号" + detail.MaterialID + "批次号:" + detail.BatchNO;
                            result.LstNotEnough.Add(notEnough);
                            result.ErrMsg = "【" + notEnough.MaterialInfo + "】库存不足";
                        }
                        else
                        {
                            result.ErrMsg = "药品更新库存出错";
                        }

                        return(result);
                    }
                    else
                    {
                        WriteAccount(head, detail, storeRtn);
                    }
                }

                result.Result = 0;
                return(result);
            }

            return(result);
        }
示例#11
0
        /// <summary>
        /// 获取头表信息
        /// </summary>
        /// <param name="opType">业务类型</param>
        /// <param name="deptId">科室Id</param>
        /// <param name="detailID">明细Id</param>
        /// <returns>头表信息</returns>
        public BillMasterShower GetBillHeadInfo(string opType, int deptId, int detailID)
        {
            BillMasterShower shower = new BillMasterShower();

            switch (opType)
            {
            case "211":    //采购入库
            case "212":    //期初入库
            case "213":    //物资库退货
                MW_InStoreDetail inStoreDetail = (MW_InStoreDetail)NewObject <MW_InStoreDetail>().getmodel(detailID);
                if (inStoreDetail != null)
                {
                    MW_InStoreHead instoreHead = (MW_InStoreHead)NewObject <MW_InStoreHead>().getmodel(inStoreDetail.InHeadID);
                    if (instoreHead != null)
                    {
                        shower.RegTime          = instoreHead.RegTime;
                        shower.AuditTime        = instoreHead.AuditTime;
                        shower.BillNo           = instoreHead.BillNo.ToString();
                        shower.RelationPeopleNo = instoreHead.OpEmpID.ToString();
                        shower.RelationPeople   = GetEmpName(instoreHead.OpEmpID);
                        shower.RelationUnit     = instoreHead.SupplierName;
                        shower.RetailFee        = instoreHead.RetailFee;
                        shower.StockFee         = instoreHead.StockFee;
                        shower.OpType           = GetBusiTypeName(opType);
                        shower.RegPeople        = instoreHead.RegEmpName;
                        shower.Remark           = instoreHead.Remark;
                    }
                }

                break;

            case "221":    //流通出库
            case "222":    //内耗出库
            case "223":    //物资库报损
            case "224":    //物资库退库
                MW_OutStoreDetail outStoreDetail = (MW_OutStoreDetail)NewObject <MW_OutStoreDetail>().getmodel(detailID);
                if (outStoreDetail != null)
                {
                    MW_OutStoreHead outStoreHead = (MW_OutStoreHead)NewObject <MW_OutStoreHead>().getmodel(outStoreDetail.OutHeadID);
                    if (outStoreHead != null)
                    {
                        shower.RegTime          = outStoreHead.RegTime;
                        shower.AuditTime        = outStoreHead.AuditTime;
                        shower.BillNo           = outStoreHead.BillNO.ToString();
                        shower.RelationPeopleNo = "暂无";
                        shower.RelationPeople   = "暂无";
                        shower.RelationUnit     = outStoreHead.ToDeptName;
                        shower.RetailFee        = outStoreHead.RetailFee;
                        shower.StockFee         = outStoreHead.StockFee;
                        shower.OpType           = GetBusiTypeName(opType);
                        shower.RegPeople        = outStoreHead.RegEmpName;
                        shower.Remark           = outStoreHead.Remark;
                    }
                }

                break;

            case "242":    //盘点审核
                MW_AuditDetail auditDetail = (MW_AuditDetail)NewObject <MW_AuditDetail>().getmodel(detailID);
                if (auditDetail != null)
                {
                    MW_AuditHead auditHead = (MW_AuditHead)NewObject <MW_AuditHead>().getmodel(auditDetail.AuditHeadID);
                    if (auditHead != null)
                    {
                        shower.RegTime          = auditHead.AuditTime;
                        shower.AuditTime        = auditHead.AuditTime;
                        shower.BillNo           = auditHead.BillNO.ToString();
                        shower.RelationPeopleNo = auditHead.EmpID.ToString();
                        shower.RelationPeople   = auditHead.EmpName;
                        shower.RelationUnit     = GetDeptName(auditHead.DeptID);
                        shower.RetailFee        = auditHead.CheckRetailFee;
                        shower.StockFee         = auditHead.CheckStockFee;
                        shower.OpType           = GetBusiTypeName(opType);
                        shower.RegPeople        = auditHead.EmpName;
                        shower.Remark           = string.Empty;
                    }
                }

                break;

            case "251":    //物资库调价
                DG_AdjDetail adjDetail = (DG_AdjDetail)NewObject <DG_AdjDetail>().getmodel(detailID);
                if (adjDetail != null)
                {
                    DG_AdjHead adjHead = (DG_AdjHead)NewObject <DG_AdjHead>().getmodel(adjDetail.AdjHeadID);
                    if (adjHead != null)
                    {
                        shower.RegTime          = adjHead.RegTime;
                        shower.AuditTime        = adjHead.ExecTime;
                        shower.BillNo           = adjHead.BillNO.ToString();
                        shower.RelationPeopleNo = adjHead.RegEmpID.ToString();
                        shower.RelationPeople   = GetEmpName(adjHead.RegEmpID);
                        shower.RelationUnit     = GetDeptName(adjHead.DeptID);
                        shower.RetailFee        = 0;
                        shower.StockFee         = 0;
                        shower.OpType           = GetBusiTypeName(opType);
                        shower.RegPeople        = GetEmpName(adjHead.RegEmpID);
                        shower.Remark           = adjHead.Remark;
                    }
                }

                break;
            }

            return(shower);
        }