コード例 #1
0
ファイル: NetPayAppService.cs プロジェクト: sanlonezhang/ql
        /// <summary>
        /// 批量审核网上支付记录
        /// </summary>
        /// <param name="netpaySysNoList">netpay系统编号列表</param>
        public virtual string BatchAudit(List <int> netpaySysNoList)
        {
            List <BatchActionItem <NetPayAuditInfo> > items = netpaySysNoList.Select(x => new BatchActionItem <NetPayAuditInfo>()
            {
                ID     = x.ToString()
                , Data = new NetPayAuditInfo {
                    AuditUserSysNo = ServiceContext.Current.UserSysNo, SysNo = x
                }
            }).ToList();

            NetPayProcessor netpayBL = ObjectFactory <NetPayProcessor> .Instance;
            var             result   = BatchActionManager.DoBatchAction(items, (info) =>
            {
                //审核和创建人不能相同 仅限页面
                //NetPayInfo netpayInfo = netpayBL.LoadBySysNo(info.SysNo.Value);

                //if (netpayInfo.InputUserSysNo == info.AuditUserSysNo)
                //{
                //    throw new BizException(string.Format(ResouceManager.GetMessageString(InvoiceConst.ResourceTitle.NetPay, "NetPay_InputAndAuditUserCannotSame"), info.SysNo));
                //}

                netpayBL.Audit(info.SysNo.Value);
            });

            return(result.PromptMessage);
        }
コード例 #2
0
        public string ClonePriceChange(List <int> sysNos)
        {
            List <BatchActionItem <int> > items = sysNos.Select(p => new BatchActionItem <int>
            {
                ID   = p.ToString(),
                Data = p
            }).ToList();

            var bp = ObjectFactory <PriceChangeProcessor> .Instance;

            BatchActionResult <int> resutl = BatchActionManager.DoBatchAction <int>(items, (sysno) =>
            {
                PriceChangeMaster item = GetPriceChangeBySysNo(sysno);

                if (item == null)
                {
                    //throw new BizException(string.Format("没有找到记录编号为{0}的记录", sysno));
                    throw new BizException(string.Format(ResouceManager.GetMessageString("Invoice.PriceChange", "PriceChange_NotFounTheRecord"), sysno));
                }

                if (item.Status != RequestPriceStatus.Finished && item.Status != RequestPriceStatus.Aborted)
                {
                    //throw new BizException(string.Format("记录编号为{0}的记录的状态不是终止状态或已完成状态", sysno));
                    throw new BizException(string.Format(ResouceManager.GetMessageString("Invoice.PriceChange", "PriceChange_NotStopOrFinshedStatus"), sysno));
                }

                item.Status = RequestPriceStatus.Auditting;
                bp.ClonePriceChange(item);
            });

            return(resutl.PromptMessage);
        }
コード例 #3
0
        /// <summary>
        /// 退回供应商
        /// </summary>
        /// <param name="sysNoList"></param>
        /// <param name="vpCancelReason"></param>
        /// <returns></returns>
        public string BatchVPCancel(List <int> sysNoList, string vpCancelReason)
        {
            var result = BatchActionManager.DoBatchAction(GetRequestItem(sysNoList), (sysNo) =>
            {
                processor.VPCancel(sysNo, vpCancelReason);
            });

            return(result.PromptMessage);
        }
コード例 #4
0
        /// <summary>
        /// 拒绝审核
        /// </summary>
        /// <param name="sysNoList"></param>
        /// <returns></returns>
        public string BatchRefuseAPInvoice(List <int> sysNoList)
        {
            var result = BatchActionManager.DoBatchAction(GetRequestItem(sysNoList), (sysNo) =>
            {
                processor.RefuseAudit(sysNo);
            });

            return(result.PromptMessage);
        }
コード例 #5
0
        public string BatchUnAbandonPOVendorInvoice(List <int> sysNoList)
        {
            var result = BatchActionManager.DoBatchAction(GetRequestItem(sysNoList), (sysNo) =>
            {
                processor.UnAbandon(sysNo);
            });

            return(result.PromptMessage);
        }
コード例 #6
0
        public virtual BatchActionResult <TrackingNumberInfo> BatchCreateTrackingNumber(List <TrackingNumberInfo> entityList)
        {
            List <BatchActionItem <TrackingNumberInfo> > request = entityList.Select(x => new BatchActionItem <TrackingNumberInfo>()
            {
                ID   = x.SysNo.ToString(),
                Data = x
            }).ToList();

            return(BatchActionManager.DoBatchAction(request, entity => ObjectFactory <InvoiceReportProcessor> .Instance.CreateTrackingNumber(entity)));
        }
コード例 #7
0
ファイル: PayableAppService.cs プロジェクト: sanlonezhang/ql
        /// <summary>
        /// 批量审核应付款信息
        /// </summary>
        /// <param name="entities"></param>
        /// <returns></returns>
        public virtual string BatchAudit(List <PayableInfo> entities)
        {
            var request = entities.Select(s => new BatchActionItem <PayableInfo>()
            {
                ID   = s.SysNo.ToString(),
                Data = s
            }).ToList();
            var result = BatchActionManager.DoBatchAction(request, entity => this.Audit(entity));

            return(result.PromptMessage);
        }
コード例 #8
0
        /// <summary>
        /// 批量创建付款单
        /// </summary>
        /// <param name="payItemList"></param>
        public void BatchCreatePayItem(List <PayItemInfo> payItemList)
        {
            var request = payItemList.Select(s => new BatchActionItem <PayItemInfo>()
            {
                ID   = s.SysNo.ToString(),
                Data = s
            }).ToList();

            var BL = ObjectFactory <PayItemProcessor> .Instance;

            BatchActionManager.DoBatchAction(request, payItem => BL.Create(payItem));
        }
コード例 #9
0
        /// <summary>
        /// 批量设置凭证号
        /// </summary>
        /// <param name="infos"></param>
        /// <returns></returns>
        public virtual string BatchMaintainReferenceID(List <OldChangeNewInfo> infos)
        {
            var request = infos.Select(s => new BatchActionItem <OldChangeNewInfo>()
            {
                ID   = s.SysNo.ToString(),
                Data = s
            }).ToList();

            var result = BatchActionManager.DoBatchAction(request, info => this.MaintainReferenceID(info));

            return(result.PromptMessage);
        }
コード例 #10
0
        /// <summary>
        /// 批量支付付款单
        /// </summary>
        /// <param name="payItemList"></param>
        /// <returns></returns>
        public virtual string BatchPay(List <PayItemInfo> payItemList)
        {
            var request = payItemList.Select(s => new BatchActionItem <PayItemInfo>()
            {
                ID   = s.SysNo.ToString(),
                Data = s
            }).ToList();

            var result = BatchActionManager.DoBatchAction(request, payItem => Pay(payItem, false));

            return(result.PromptMessage);
        }
コード例 #11
0
        /// <summary>
        /// 批量CS审核
        /// </summary>
        /// <param name="sysNoList"></param>
        /// <returns></returns>
        public virtual string BatchCSAudit(List <SOIncomeRefundInfo> entitys)
        {
            var request = entitys.Select(x => new BatchActionItem <SOIncomeRefundInfo>()
            {
                ID   = x.SysNo.ToString(),
                Data = x
            }).ToList();

            var refundBL = ObjectFactory <SOIncomeRefundProcessor> .Instance;
            var result   = BatchActionManager.DoBatchAction(request, entity =>
            {
                refundBL.CSAudit(entity);
            });

            return(result.PromptMessage);
        }
コード例 #12
0
        /// <summary>
        /// 批量确认电汇邮局收款单
        /// </summary>
        /// <param name="sysNoList"></param>
        /// <returns></returns>
        public virtual string BatchConfirm(List <int> sysNoList)
        {
            List <BatchActionItem <int> > items = sysNoList.Select(x => new BatchActionItem <int>()
            {
                ID   = x.ToString(),
                Data = x
            }).ToList();

            PostIncomeProcessor postIncomeBL = ObjectFactory <PostIncomeProcessor> .Instance;
            var result = BatchActionManager.DoBatchAction(items, (sysNo) =>
            {
                postIncomeBL.Confirm(sysNo);
            });

            return(result.PromptMessage);
        }
コード例 #13
0
ファイル: SOIncomeAppService.cs プロジェクト: sanlonezhang/ql
        /// <summary>
        /// 批量设置凭证号
        /// </summary>
        /// <param name="sysNo">收款单系统编号</param>
        /// <param name="referenceID">凭证号</param>
        public virtual string BatchSetReferenceID(List <int> sysNoList, string referenceID)
        {
            List <BatchActionItem <int> > Request = sysNoList.Select(x => new BatchActionItem <int>()
            {
                ID   = x.ToString(),
                Data = x
            }).ToList();

            var soIncomeBL = ObjectFactory <SOIncomeProcessor> .Instance;
            var result     = BatchActionManager.DoBatchAction(Request, sysNo =>
            {
                soIncomeBL.SetReferenceID(sysNo, referenceID);
            });

            return(result.PromptMessage);
        }
コード例 #14
0
        /// <summary>
        /// 批量提交报损
        /// </summary>
        /// <param name="sysNoList"></param>
        /// <returns></returns>
        public virtual string BatchSubmitTrackingInfo(List <int> sysNoList)
        {
            var request = sysNoList.Select(x => new BatchActionItem <int>()
            {
                ID   = x.ToString(),
                Data = x
            }).ToList();

            var trackingInfoBL = ObjectFactory <TrackingInfoProcessor> .Instance;
            var result         = BatchActionManager.DoBatchAction(request, sysNo =>
            {
                trackingInfoBL.SubmitTrackingInfo(sysNo);
            });

            return(result.PromptMessage);
        }
コード例 #15
0
        /// <summary>
        /// 批量取消审核
        /// </summary>
        /// <param name="sysNoList"></param>
        /// <returns></returns>
        public virtual string BatchCancelConfirm(List <int> sysNoList)
        {
            List <BatchActionItem <int> > items = sysNoList.Select(x => new BatchActionItem <int>()
            {
                ID   = x.ToString(),
                Data = x
            }).ToList();

            var BL     = ObjectFactory <BalanceRefundProcessor> .Instance;
            var result = BatchActionManager.DoBatchAction(items, sysNo =>
            {
                BL.CancelConfirm(sysNo);
            });

            return(result.PromptMessage);
        }
コード例 #16
0
        public string BatchAbandonResponsibleUser(List <int> sysNoList)
        {
            var Request = sysNoList.Select(s => new BatchActionItem <int>()
            {
                ID   = s.ToString(),
                Data = s
            }).ToList();

            var BL     = ObjectFactory <TrackingInfoProcessor> .Instance;
            var result = BatchActionManager.DoBatchAction(Request, sysNo =>
            {
                BL.AbandonResponsibleUser(sysNo);
            });

            return(result.PromptMessage);
        }
コード例 #17
0
        /// <summary>
        /// 批量创建跟踪单
        /// </summary>
        /// <param name="trackingInfoList"></param>
        /// <returns></returns>
        public virtual string BatchCreateTrackingInfo(List <TrackingInfo> trackingInfoList)
        {
            var request = trackingInfoList.Select(x => new BatchActionItem <TrackingInfo>()
            {
                ID   = x.OrderSysNo.ToString(),
                Data = x
            }).ToList();

            var trackingInfoBL = ObjectFactory <TrackingInfoProcessor> .Instance;
            var result         = BatchActionManager.DoBatchAction(request, trackingInfo =>
            {
                trackingInfoBL.CreateTrackingInfo(trackingInfo);
            });

            return(result.PromptMessage);
        }
コード例 #18
0
ファイル: SOIncomeAppService.cs プロジェクト: sanlonezhang/ql
        public string BatchForcesConfirm(List <int> sysNoList)
        {
            var request = sysNoList.Select(x => new BatchActionItem <int>()
            {
                ID   = x.ToString(),
                Data = x
            }).ToList();

            var soIncomeBL = ObjectFactory <SOIncomeProcessor> .Instance;
            var result     = BatchActionManager.DoBatchAction(request, sysNo =>
            {
                soIncomeBL.ForcesConfirm(sysNo);
            });

            return(result.PromptMessage);
        }
コード例 #19
0
ファイル: SOIncomeAppService.cs プロジェクト: sanlonezhang/ql
        /// <summary>
        /// 批量确认运费支出
        /// </summary>
        /// <param name="netpaySysNoList">系统编号列表</param>
        public string BatchRealFreightConfirm(List <int> sysNoList)
        {
            List <BatchActionItem <int> > items = sysNoList.Select(x => new BatchActionItem <int>()
            {
                ID   = x.ToString(),
                Data = x
            }).ToList();

            SOIncomeProcessor soIncomeBL = ObjectFactory <SOIncomeProcessor> .Instance;
            var result = BatchActionManager.DoBatchAction(items, (info) =>
            {
                soIncomeBL.RealFreightConfirm(info);
            });

            return(result.PromptMessage);
        }
コード例 #20
0
ファイル: SOIncomeAppService.cs プロジェクト: sanlonezhang/ql
        /// <summary>
        /// 批量手动网关退款
        /// </summary>
        /// <param name="batchActionData"></param>
        /// <returns></returns>
        public string BatchManualRefund(List <int> sysNoList)
        {
            List <BatchActionItem <int> > request = sysNoList.Select(x => new BatchActionItem <int>()
            {
                ID   = x.ToString(),
                Data = x
            }).ToList();

            var soIncomeBL = ObjectFactory <SOIncomeProcessor> .Instance;
            var result     = BatchActionManager.DoBatchAction(request, data =>
            {
                soIncomeBL.ManualBankRefund(data.ToString());
            });

            return(result.PromptMessage);
        }
コード例 #21
0
        /// <summary>
        /// 批量取消审核
        /// </summary>
        /// <returns></returns>
        public virtual string BatchCancelAudit(List <int> sysNoList)
        {
            var request = sysNoList.Select(x => new BatchActionItem <int>()
            {
                ID   = x.ToString(),
                Data = x
            }).ToList();

            var refundBL = ObjectFactory <SOIncomeRefundProcessor> .Instance;
            var result   = BatchActionManager.DoBatchAction(request, sysNo =>
            {
                refundBL.CancelAudit(sysNo);
            });

            return(result.PromptMessage);
        }
コード例 #22
0
        /// <summary>
        /// 批量财务审核
        /// </summary>
        /// <param name="sysNoList"></param>
        /// <returns></returns>
        public virtual string BatchFinConfirm(List <int> sysNoList)
        {
            List <BatchActionItem <BalanceRefundAuditInfo> > items = sysNoList.Select(x => new BatchActionItem <BalanceRefundAuditInfo>()
            {
                ID   = x.ToString(),
                Data = new BalanceRefundAuditInfo {
                    AuditUserSysNo = ServiceContext.Current.UserSysNo, SysNo = x
                }
            }).ToList();

            var BL     = ObjectFactory <BalanceRefundProcessor> .Instance;
            var result = BatchActionManager.DoBatchAction(items, (info) =>
            {
                BL.FinConfirm(info);
            });

            return(result.PromptMessage);
        }
コード例 #23
0
        public string BatchVoidPriceChange(List <int> sysNos)
        {
            List <BatchActionItem <PriceChangeMaster> > items = sysNos.Select(p => new BatchActionItem <PriceChangeMaster>
            {
                ID   = p.ToString(),
                Data = new PriceChangeMaster {
                    SysNo = p
                }
            }).ToList();

            var bl = ObjectFactory <PriceChangeProcessor> .Instance;

            BatchActionResult <PriceChangeMaster> resutl = BatchActionManager.DoBatchAction(items, (request) =>
            {
                bl.VoidPriceChange(request);
            });

            return(resutl.PromptMessage);
        }
コード例 #24
0
        /// <summary>
        /// Job中止变价单
        /// </summary>
        /// <returns></returns>
        public string BatchAbortedPriceChangeByJob()
        {
            List <PriceChangeMaster> infos = ObjectFactory <PriceChangeProcessor> .Instance.GetRunningProceChangeInfos();

            List <BatchActionItem <PriceChangeMaster> > items = infos.Select(p => new BatchActionItem <PriceChangeMaster>
            {
                ID   = p.SysNo.ToString(),
                Data = p
            }).ToList();

            var bl = ObjectFactory <PriceChangeProcessor> .Instance;

            BatchActionResult <PriceChangeMaster> result = BatchActionManager.DoBatchAction(items, (request) =>
            {
                bl.AbortedPriceChange(request, true);
            });

            return(result.PromptMessage);
        }
コード例 #25
0
ファイル: SOIncomeAppService.cs プロジェクト: sanlonezhang/ql
        /// <summary>
        /// 批量确认收款单
        /// </summary>
        /// <param name="batchActionData"></param>
        /// <returns></returns>
        public virtual BatchActionResult <SOIncomeInfo> BatchConfirm(List <int> sysNoList)
        {
            List <BatchActionItem <SOIncomeInfo> > request = sysNoList.Select(x => new BatchActionItem <SOIncomeInfo>()
            {
                ID   = x.ToString(),
                Data = new SOIncomeInfo()
                {
                    SysNo = x
                }
            }).ToList();

            var soIncomeBL = ObjectFactory <SOIncomeProcessor> .Instance;
            var result     = BatchActionManager.DoBatchAction(request, data =>
            {
                soIncomeBL.Confirm(data);
            });

            return(result);
        }
コード例 #26
0
ファイル: SOIncomeAppService.cs プロジェクト: sanlonezhang/ql
        private void ProcessAutoConfirm(List <SOIncomeInfo> normalSaleIncomeList, List <SOIncomeInfo> masterSaleIncomeList, DataTable dataTable,
                                        out List <int> successSysNoList, out List <int> failedSysNoList, StringBuilder errorMessage)
        {
            var BL = ObjectFactory <SOIncomeProcessor> .Instance;
            BatchActionResult <SOIncomeInfo> batchResult = new BatchActionResult <SOIncomeInfo>(0);

            if (normalSaleIncomeList.Count > 0)
            {
                var request = normalSaleIncomeList
                              .Select(x => new BatchActionItem <SOIncomeInfo>
                {
                    ID   = x.SysNo.ToString(),
                    Data = x
                }).ToList();
                batchResult = BatchActionManager.DoBatchAction(request.ToList(), data => BL.Confirm(data));
            }
            if (masterSaleIncomeList.Count > 0)
            {
                BL.UpdateToProcessedStatus(masterSaleIncomeList);
            }
            if (batchResult.TotalCount != 0)
            {
                errorMessage.AppendLine("======== 收款单确认信息 ========");
                errorMessage.AppendLine(batchResult.PromptMessage);
            }

            //获取成功或失败的列表
            successSysNoList = (batchResult.SuccessList.Select(s => s.Data.OrderSysNo.Value)).ToList();
            if (masterSaleIncomeList != null && masterSaleIncomeList.Count > 0)
            {
                successSysNoList.Union(masterSaleIncomeList.Select(s => s.OrderSysNo.Value)).ToList();
            }
            int orderSysNo;

            failedSysNoList = dataTable.AsEnumerable().Where(r => int.TryParse(r["OrderSysNo"].ToString(), out orderSysNo))
                              .Select(r => int.Parse(r["OrderSysNo"].ToString()))
                              .Except(successSysNoList)
                              .ToList();
        }
コード例 #27
0
        /// <summary>
        /// 人工中止变价单
        /// </summary>
        /// <param name="sysNo"></param>
        /// <returns></returns>
        public string BatchAbortedPriceChangeByManual(List <int> sysNo)
        {
            List <PriceChangeMaster> infos = new List <PriceChangeMaster>();

            sysNo.ForEach(p =>
            {
                infos.Add(GetPriceChangeBySysNo(p));
            });

            List <BatchActionItem <PriceChangeMaster> > items = infos.Select(p => new BatchActionItem <PriceChangeMaster>
            {
                ID   = p.SysNo.ToString(),
                Data = p
            }).ToList();

            var bl = ObjectFactory <PriceChangeProcessor> .Instance;

            BatchActionResult <PriceChangeMaster> result = BatchActionManager.DoBatchAction(items, (request) =>
            {
                bl.AbortedPriceChange(request, false);
            });

            return(result.PromptMessage);
        }
コード例 #28
0
        private void BatachCreate(DataTable dataTable, string companyCode, ref List <PostIncomeInfo> successList, ref List <ImportPostIncome> faultList, ref string message)
        {
            List <PostIncomeInfo>   list         = new List <PostIncomeInfo>();
            List <PostIncomeInfo>   _successList = new List <PostIncomeInfo>();
            List <ImportPostIncome> _faultList   = new List <ImportPostIncome>();

            dataTable.Columns.Add("SysNo");
            int index = 1;

            foreach (DataRow row in dataTable.Rows)
            {
                try
                {
                    if (string.IsNullOrEmpty(row["SOSysNo"].ToString()) &&
                        string.IsNullOrEmpty(row["IncomeAmt"].ToString()) &&
                        string.IsNullOrEmpty(row["PayUser"].ToString()) &&
                        string.IsNullOrEmpty(row["IncomeDate"].ToString()) &&
                        string.IsNullOrEmpty(row["PayBank"].ToString()) &&
                        string.IsNullOrEmpty(row["IncomeBank"].ToString()) &&
                        string.IsNullOrEmpty(row["BankNo"].ToString()) &&
                        string.IsNullOrEmpty(row["Notes"].ToString()))
                    {
                        break;
                    }
                    PostIncomeInfo entity = new PostIncomeInfo();
                    entity.SysNo       = index;
                    entity.SOSysNo     = string.IsNullOrEmpty(row["SOSysNo"].ToString()) ? default(int?) : int.Parse(row["SOSysNo"].ToString());
                    entity.IncomeAmt   = decimal.Parse(row["IncomeAmt"].ToString());
                    entity.PayUser     = row["PayUser"].ToString();
                    entity.IncomeDate  = DateTime.Parse(row["IncomeDate"].ToString());
                    entity.PayBank     = row["PayBank"].ToString();
                    entity.IncomeBank  = row["IncomeBank"].ToString();
                    entity.BankNo      = row["BankNo"].ToString();
                    entity.Notes       = row["Notes"].ToString();
                    entity.CompanyCode = companyCode;
                    index++;

                    list.Add(entity);
                }
                catch (Exception)
                {
                    ImportPostIncome model = new ImportPostIncome();
                    model.SysNo            = index++;
                    model.SOSysNo          = row["SOSysNo"].ToString();
                    model.IncomeAmtString  = row["IncomeAmt"].ToString();
                    model.PayUser          = row["PayUser"].ToString();
                    model.IncomeDateString = row["IncomeDate"].ToString();
                    model.PayBank          = row["PayBank"].ToString();
                    model.IncomeBank       = row["IncomeBank"].ToString();
                    model.BankNo           = row["BankNo"].ToString();
                    model.Notes            = row["Notes"].ToString();
                    _faultList.Add(model);
                }
            }

            List <BatchActionItem <PostIncomeInfo> > items = list.Select(x => new BatchActionItem <PostIncomeInfo>()
            {
                ID   = x.SysNo.ToString(),
                Data = x
            }).ToList();

            var result = BatchActionManager.DoBatchAction(items, (PostIncomeInfo) =>
            {
                ObjectFactory <PostIncomeProcessor> .Instance.Create(PostIncomeInfo, false);
            });

            if (result.SuccessList != null)
            {
                result.SuccessList.ForEach(p =>
                {
                    p.Data.IncomeAmt = p.Data.IncomeAmt ?? 0;
                    _successList.Add(p.Data);
                });
            }
            if (result.FaultList != null)
            {
                result.FaultList.ForEach(p =>
                {
                    ImportPostIncome failed = new ImportPostIncome();
                    failed.SysNo            = p.FaultItem.Data.SysNo;
                    failed.SOSysNo          = p.FaultItem.Data.SOSysNo.ToString();
                    failed.IncomeAmtString  = p.FaultItem.Data.IncomeAmt.ToString();
                    failed.PayUser          = p.FaultItem.Data.PayUser;
                    failed.IncomeDateString = p.FaultItem.Data.IncomeDate.ToString();
                    failed.PayBank          = p.FaultItem.Data.PayBank;
                    failed.IncomeBank       = p.FaultItem.Data.IncomeBank;
                    failed.BankNo           = p.FaultItem.Data.BankNo;
                    failed.Notes            = p.FaultItem.Data.Notes;
                    _faultList.Add(failed);
                });

                faultList.Sort(new ImportPostIncome());
            }

            successList = _successList;
            faultList   = _faultList;
            message     = string.Format(ResouceManager.GetMessageString(InvoiceConst.ResourceTitle.PostIncome, "PostIncome_ImportExcel"), dataTable.Rows.Count, successList.Count, faultList.Count);
        }