public void SaveBill(string frmName)
        {
            Action <ClientRequestData> requestAction = null;
            ServiceResponseData        retdata       = null;
            List <DS_ApplyDetail>      lstDetails    = new List <DS_ApplyDetail>();

            RefreshHead(frmName);
            for (int index = 0; index < frmdeApplyDetails.CurrentDetail.Rows.Count; index++)
            {
                DS_ApplyDetail detail = ConvertExtend.ToObject <DS_ApplyDetail>(frmdeApplyDetails.CurrentDetail, index);
                lstDetails.Add(detail);
            }

            requestAction = ((ClientRequestData request) =>
            {
                request.AddData(DGConstant.OP_DS_APPLYPLAN);
                request.AddData(frmdeApplyDetails.CurrentApplyHead);
                request.AddData <List <DS_ApplyDetail> >(lstDetails);
                request.AddData <List <int> >(frmdeApplyDetails.GetDeleteDetails());
            });
            retdata = InvokeWcfService("DrugProject.Service", "ApplyStoreController", "SaveBill", requestAction);
            bool result = retdata.GetData <bool>(0);

            if (result)
            {
                MessageBoxShowSimple("领药申请单已经保存成功");
                if (frmdeApplyDetails.CurrentApplyHead.ApplyHeadID == 0)
                {
                    frmdeApplyDetails.NewBillClear();
                }
                else
                {
                    frmdeApplyDetails.CloseCurrentWindow();
                }
            }
            else
            {
                string rtnMsg = retdata.GetData <string>(1);
                MessageBoxShowSimple("领药申请单保存失败:" + rtnMsg);
            }
        }
Ejemplo n.º 2
0
        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);
        }