コード例 #1
0
        private void VerifyCancelAbandon(CollectionPaymentInfo entity)
        {
            //VendorSettleDAL dal;

            Verfy(entity);

            //1 检查当前结算单状态
            if (entity.Status.Value != POCollectionPaymentSettleStatus.Abandon)
            {
                throw new BizException("当前结算单的状态不为已作废状态!");
            }
            //2 检查当前作废的item是否已存在于其他结算单据中
            //dal = new VendorSettleDAL();

            foreach (CollectionPaymentItem item in entity.SettleItems)
            {
                bool tmpIsExist = this.ConsignSettlementDA.IsAccountLogExistOtherVendorSettle(item.ConsignToAccLogInfo.LogSysNo.Value);
                if (tmpIsExist)
                {
                    throw new BizException(
                              string.Format("当前商品(财务记录编号:{0})已存在于其他供应商结算单中!", (item.ConsignToAccLogInfo.LogSysNo.HasValue ? item.POConsignToAccLogSysNo.Value.ToString() : ""))
                              );
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 取消审核代销结算单
        /// </summary>
        /// <param name="consignInfo"></param>
        /// <param name="callback"></param>
        public void CancelAudited(CollectionPaymentInfo consignInfo, EventHandler <RestClientEventArgs <object> > callback)
        {
            consignInfo.CompanyCode = CPApplication.Current.CompanyCode;
            string relativeUrl = "POService/CollectionPayment/CancelAudited";

            restClient.Update(relativeUrl, consignInfo, callback);
        }
コード例 #3
0
 private void Verfy(CollectionPaymentInfo entity)
 {
     if (entity == null)
     {
         throw new ArgumentNullException("entity");
     }
 }
コード例 #4
0
        /// <summary>
        /// 创建代销结算单
        /// </summary>
        /// <param name="info"></param>
        /// <param name="callback"></param>
        public void CreateConsignSettlement(CollectionPaymentInfo consignInfo, EventHandler <RestClientEventArgs <CollectionPaymentInfo> > callback)
        {
            consignInfo.CompanyCode     = CPApplication.Current.CompanyCode;
            consignInfo.CreateUserSysNo = CPApplication.Current.LoginUser.UserSysNo;
            string relativeUrl = "POService/CollectionPayment/Create";

            restClient.Create <CollectionPaymentInfo>(relativeUrl, consignInfo, callback);
        }
コード例 #5
0
        /// <summary>
        /// 作废
        /// </summary>
        /// <param name="consignInfo"></param>
        /// <param name="callback"></param>
        public void Abandon(CollectionPaymentInfo consignInfo, EventHandler <RestClientEventArgs <object> > callback)
        {
            consignInfo.CompanyCode     = CPApplication.Current.CompanyCode;
            consignInfo.CreateUserSysNo = CPApplication.Current.LoginUser.UserSysNo;
            string relativeUrl = "POService/CollectionPayment/Abandon";

            restClient.Update(relativeUrl, consignInfo, callback);
        }
コード例 #6
0
        public CollectionPaymentInfo Load(string sysNo)
        {
            int getSysNoParam = 0;

            int.TryParse(sysNo, out getSysNoParam);
            CollectionPaymentInfo result = ObjectFactory <CollectionPaymentAppService> .Instance.Load(getSysNoParam);

            return(result);
        }
コード例 #7
0
        private void VerifyUpdate(CollectionPaymentInfo entity)
        {
            VerifyCreate(entity);

            if (!entity.SysNo.HasValue)
            {
                throw new BizException("当前结算单的状态不为已审核状态!");
            }
        }
コード例 #8
0
        /// <summary>
        /// 验证用到的规则结算数量是否超过设定
        /// </summary>
        /// <param name="entity">请求的结算单</param>
        void VerityOverConsignRuleQuantity(CollectionPaymentInfo entity)
        {
            var overRule = GetOverConsignRule(entity);

            if (overRule != null)
            {
                throw new BizException("规则结算数量超过设定");
            }
        }
コード例 #9
0
        private void VerifyAbandon(CollectionPaymentInfo entity)
        {
            Verfy(entity);

            //1 检查当前结算单状态
            if (entity.Status.Value != POCollectionPaymentSettleStatus.Origin)
            {
                throw new BizException("当前结算单的状态不为待审核状态!");
            }
        }
コード例 #10
0
        private void VerifyCancelAudited(CollectionPaymentInfo entity)
        {
            Verfy(entity);

            //1 检查当前结算单状态
            if (entity.Status.Value != POCollectionPaymentSettleStatus.Audited)
            {
                throw new BizException("不是审核状态不能作废");
            }
        }
コード例 #11
0
        /// <summary>
        /// 加载代销结算单详细
        /// </summary>
        /// <param name="settlementSysNo"></param>
        /// <returns></returns>
        public virtual CollectionPaymentInfo Load(int sysNo)
        {
            //加载代销结算单主信息:
            CollectionPaymentInfo returnEntity = new CollectionPaymentInfo();

            returnEntity = CollectionPaymentDA.Load(sysNo);


            return(returnEntity);
        }
コード例 #12
0
        private void VerifySettle(CollectionPaymentInfo entity)
        {
            Verfy(entity);

            //1 检查当前结算单状态
            if (entity.Status.Value != POCollectionPaymentSettleStatus.Audited)
            {
                throw new BizException("当前结算单的状态不为已审核状态!");
            }
        }
コード例 #13
0
        private void VerifyCreate(CollectionPaymentInfo entity)
        {
            Verfy(entity);

            //1 检查当前结算单状态
            if (entity.Status.HasValue)
            {
                if (entity.Status != POCollectionPaymentSettleStatus.Origin)
                {
                    throw new BizException("当前结算单的状态不为待审核状态!");
                }
            }

            //3 检查settleItems是否为0
            if (entity.SettleItems.Count == 0)
            {
                throw new BizException("结算单条目不能为空!");
            }

            //4 供应商是否为空
            if (!entity.VendorInfo.SysNo.HasValue)
            {
                throw new BizException("供应商不能为空!");
            }

            //5 税率是否为空
            if (!entity.TaxRateData.HasValue)
            {
                throw new BizException("税率不能为空!");
            }

            //6 仓库编号是否为空
            if (entity.SourceStockInfo == null || !entity.SourceStockInfo.SysNo.HasValue)
            {
                //新增存在多个仓库,不会对此进行判断
                if (entity.SysNo.HasValue)
                {
                    //仓库编号不能为空
                    throw new BizException(GetMessageString("Consign_StockSysNoIsEmpty"));
                }
            }

            //7 货币是否为空
            if (!entity.CurrencyCode.HasValue)
            {
                throw new BizException("货币类型不能为空!");
            }
        }
コード例 #14
0
 private void btnSave_Click(object sender, RoutedEventArgs e)
 {
     #region [验证]
     if (!ValidationManager.Validate(this))
     {
         return;
     }
     if (this.consignSettleVM.SettleItems.Where(x => x.SettleSysNo != -1).Count() <= 0)
     {
         Window.Alert("请先选择结算商品!");
         return;
     }
     #endregion
     //保存操作
     CollectionPaymentInfo getSettlementInfo = BuildActionEntity();
     Window.Confirm(ResConsignMaintain.ConfirmMsg_Save, (obj, args) =>
     {
         if (args.DialogResult == DialogResultType.OK)
         {
             //保存PM高级权限,用于业务端验证
             getSettlementInfo.IsManagerPM = AuthMgr.HasFunctionAbsolute(AuthKeyConst.PO_SeniorPM_Query);
             //代销商品规则检测
             getSettlementInfo.SettleItems.ForEach(item =>
             {
                 if (item.SettleRuleSysNo.HasValue && item.Cost != item.SettlePrice)
                 {
                     item.SettleRuleSysNo = null;
                     item.SettleRuleName  = null;
                 }
             });
             serviceFacade.Update(getSettlementInfo, (obj2, args2) =>
             {
                 if (args2.FaultsHandle())
                 {
                     return;
                 }
                 Window.Alert(ResConsignMaintain.InfoMsg_Title, ResConsignMaintain.InfoMsg_SaveSuccess, MessageType.Information, (obj3, args3) =>
                 {
                     if (args3.DialogResult == DialogResultType.Cancel)
                     {
                         Window.Refresh();
                         return;
                     }
                 });
             });
         }
     });
 }
コード例 #15
0
        public CollectionPaymentInfo Abandon(CollectionPaymentInfo entity)
        {
            string OperationIP             = entity.OperationIP;
            int?   OperationUserSysNumber  = entity.OperationUserSysNumber;
            string OperationUserUniqueName = entity.OperationUserUniqueName;

            entity.CreateUserSysNo = entity.CurrentUserSysNo;
            VerifyAbandon(entity);

            entity.Status = POCollectionPaymentSettleStatus.Abandon;

            //将代销转财务记录的状态修改为初始状态
            foreach (var item in entity.SettleItems)
            {
                item.ConsignToAccLogInfo.ConsignToAccStatus = ConsignToAccountLogStatus.Origin;
            }

            entity.Note = string.Format("当前结算单已被{0}在{1}作废", "SysAdmin", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"));

            using (TransactionScope scope = new TransactionScope())
            {
                entity = this.CollectionPaymentDA.UpdateVendorSettleStatus(entity);
                //更新代销转财务记录状态
                UpdateConsignToAccLogStatus(entity);

                //发送ESB消息
                EventPublisher.Publish <CollectionPaymentAbandonMessage>(new CollectionPaymentAbandonMessage()
                {
                    CurrentUserSysNo = ServiceContext.Current.UserSysNo,
                    SysNo            = entity.SysNo.Value
                });

                scope.Complete();
            }

            entity.OperationIP             = OperationIP;
            entity.OperationUserSysNumber  = OperationUserSysNumber;
            entity.OperationUserUniqueName = OperationUserUniqueName;

            //CommonService.WriteLog<CollectionPaymentEntity>(entity, " Abandon CollectionPayment ", entity.SysNo.Value.ToString(), (int)LogType.CollectionPayment_Abandon);

            ExternalDomainBroker.CreateLog(" Abandon CollectionPayment "
                                           , BizEntity.Common.BizLogType.POC_VendorSettle_Abandon
                                           , entity.SysNo.Value
                                           , entity.CompanyCode);
            return(entity);
        }
コード例 #16
0
        public CollectionPaymentInfo Load(int vendorSettleSysNo)
        {
            CollectionPaymentInfo settle  = new CollectionPaymentInfo();
            CustomDataCommand     command = DataCommandManager.CreateCustomDataCommandFromConfig("GetCollVendorSettleBySysNo");

            using (DynamicQuerySqlBuilder builder = new DynamicQuerySqlBuilder(command.CommandText, command, null, "Settle.SysNo DESC"))
            {
                HasPMRight(builder);

                builder.ConditionConstructor.AddCondition(
                    QueryConditionRelationType.AND,
                    "Settle.SysNo",
                    DbType.Int32,
                    "@SettleSysNo",
                    QueryConditionOperatorType.Equal,
                    vendorSettleSysNo);

                ProviderHelper.SetCommonParams(builder, "Settle");

                command.CommandText = builder.BuildQuerySql();
            }

            settle = command.ExecuteEntity <CollectionPaymentInfo>();

            if (settle != null)
            {
                DataCommand commandItem = DataCommandManager.GetDataCommand("GetCollVendorSettleItemsBySysNo");

                commandItem.SetParameterValue("@SettleSysNo", vendorSettleSysNo);
                ProviderHelper.SetCommonParams(commandItem);

                settle.SettleItems = commandItem.ExecuteEntityList <CollectionPaymentItem>();


                settle.SettleItems.ForEach(x =>
                {
                    x.ConsignToAccLogInfo.RateMargin      = x.ConsignToAccLogInfo.SalePrice - x.ConsignToAccLogInfo.Cost;
                    x.ConsignToAccLogInfo.CountMany       = x.ConsignToAccLogInfo.ProductQuantity * x.ConsignToAccLogInfo.Cost;
                    x.ConsignToAccLogInfo.RateMarginTotal = x.ConsignToAccLogInfo.RateMargin * x.ConsignToAccLogInfo.ProductQuantity;
                    x.ConsignToAccLogInfo.LogSysNo        = x.POConsignToAccLogSysNo;
                    x.Cost = x.ConsignToAccLogInfo.Cost.Value;
                });
            }

            return(settle);
        }
コード例 #17
0
        private void UpdateConsignToAccLogStatus(CollectionPaymentInfo entity)
        {
            foreach (var item in entity.SettleItems)
            {
                if (!item.ConsignToAccLogInfo.LogSysNo.HasValue || !item.ConsignToAccLogInfo.ConsignToAccStatus.HasValue)
                {
                    throw new InvalidOperationException("POConsignToAccLogSysNo 或者 ConsignToAccStatus不能为空");
                }
            }

            foreach (var item in entity.SettleItems)
            {
                this.ConsignSettlementDA.UpdateConsignToAccountLogStatus(
                    item.POConsignToAccLogSysNo.Value,
                    item.ConsignToAccLogInfo.ConsignToAccStatus.Value);
            }
        }
コード例 #18
0
        public CollectionPaymentInfo Create(CollectionPaymentInfo entity)
        {
            DataCommand command = DataCommandManager.GetDataCommand("CreateCollVendorSettle");

            command.SetParameterValue("@SysNo", entity.SysNo);
            command.SetParameterValue("@SettleID", entity.SettleID);
            command.SetParameterValue("@VendorSysNo", entity.VendorInfo.SysNo);
            command.SetParameterValue("@StockSysNo", entity.SourceStockInfo.SysNo);
            command.SetParameterValue("@TotalAmt", entity.TotalAmt);
            command.SetParameterValue("@CurrencySysNo", entity.CurrencyCode);
            command.SetParameterValue("@CreateTime", entity.CreateTime);
            command.SetParameterValue("@CreateUserSysNo", entity.CreateUserSysNo);
            command.SetParameterValue("@Memo", entity.Memo);
            command.SetParameterValue("@Note", entity.Note);
            command.SetParameterValue("@Status", entity.Status);
            //command.SetParameterValue("@SettleBalanceSysNo", entity.SettleBalanceSysNo);

            decimal taxRate = (decimal)((int)entity.TaxRateData.Value / 100.0);

            command.SetParameterValue("@TaxRate", taxRate);
            //////////////////////////////CLR16063//////////////////////////////
            //command.SetParameterValue("@UsingReturnPoint", entity.UsingReturnPoint);
            //command.SetParameterValue("@PM_ReturnPointSysNo", entity.PM_ReturnPointSysNo);
            command.SetParameterValue("@PMSysno", entity.PMInfo.SysNo);
            //command.SetParameterValue("@ReturnPointC3SysNo", entity.ReturnPointC3SysNo);
            ////////////////////////////////////////////////////////////////////
            CommonHelper.SetCommonParams(command);

            entity.SysNo    = System.Convert.ToInt32(command.ExecuteScalar());
            entity.SettleID = "V" + entity.SysNo.ToString().PadLeft(9, '0');

            if (entity.SettleItems != null && entity.SettleItems.Count > 0)
            {
                foreach (CollectionPaymentItem item in entity.SettleItems)
                {
                    if (item.SettleSysNo != -1)
                    {
                        item.SettleSysNo = entity.SysNo.Value;
                        CreateSettleItem(item);
                    }
                }
            }

            return(entity);
        }
コード例 #19
0
        private void VerifyCancelSettled(CollectionPaymentInfo entity)
        {
            Verfy(entity);

            //1 检查当前结算单状态
            if (entity.Status.Value != POCollectionPaymentSettleStatus.Settled)
            {
                throw new BizException("当前结算单的状态不为已结算状态!");
            }

            //2 检查付款单是否作废,如果付款单未作废抛出异常
            //dal = collVendorSettleDAL;

            if (!this.CollectionPaymentDA.IsAbandonPayItem(entity.SysNo.Value))
            {
                throw new BizException("当前结算单对应的应付款记录应全部为“已作废”状态!");
            }
        }
コード例 #20
0
 private void btnCancelAudit_Click(object sender, RoutedEventArgs e)
 {
     // 取消审核操作:
     Window.Confirm(ResConsignMaintain.InfoMsg_Title, ResConsignMaintain.ConfirmMsg_Confirm, (obj, args) =>
     {
         if (args.DialogResult == DialogResultType.OK)
         {
             CollectionPaymentInfo getSettlementInfo = BuildActionEntity();
             serviceFacade.CancelAudited(getSettlementInfo, (obj2, args2) =>
             {
                 if (args2.FaultsHandle())
                 {
                     return;
                 }
                 AlertAndRefreshPage(ResConsignMaintain.InfoMsg_OperationSuccess);
             });
         }
     });
 }
コード例 #21
0
        protected override void PreCheckForCreate(PayItemInfo entity)
        {
            base.PreCheckForCreate(entity);

            CollectionPaymentInfo collectionSettlement = ExternalDomainBroker.GetCollectionPaymentInfo(entity.OrderSysNo.Value);

            if (collectionSettlement == null)
            {
                ThrowBizException("PayItem_OrderNotExisitsFormat", entity.OrderSysNo);
            }
            //填写代收结算单上的CompanyCode为付款单CompanyCode
            entity.CompanyCode = collectionSettlement.CompanyCode;
            entity.OrderStatus = (int?)collectionSettlement.Status;

            if (collectionSettlement.Status == POCollectionPaymentSettleStatus.Settled)
            {
                if (entity.PayStyle != PayItemStyle.Normal)
                {
                    ThrowBizException("PayItem_Create_OnlyCanAddNormalPayForVendorSettleOrder!");
                }
            }
            else
            {
                ThrowBizException("PayItem_Create_SettleStatusInvalid2!");
            }

            List <PayableInfo> payList = PayableBizProcessor.GetListByCriteria(new PayableInfo
            {
                OrderSysNo = entity.OrderSysNo,
                OrderType  = entity.OrderType
            });

            //如果该单据已经有应付了,对该应付作检查
            if (payList != null && payList.Count > 0)
            {
                ReferencePayableInfo = payList[0];
                if (ReferencePayableInfo.PayStatus == PayableStatus.FullPay)
                {
                    ThrowBizException("PayItem_Create_FullPay");
                }
            }
        }
コード例 #22
0
        public CollectionPaymentInfo UpdateVendorSettleStatus(CollectionPaymentInfo entity)
        {
            DataCommand command = DataCommandManager.GetDataCommand("UpdateCollVendorSettleStatus");

            command.SetParameterValue("@CreateTime", entity.CreateTime);
            command.SetParameterValue("@CreateUserSysNo", entity.CreateUserSysNo);
            command.SetParameterValue("@AuditTime", entity.AuditTime);
            command.SetParameterValue("@AuditUserSysNo", entity.AuditUserSysNo);
            command.SetParameterValue("@SettleUserSysNo", entity.SettleUserSysNo);
            command.SetParameterValue("@SettleTime", entity.SettleTime);
            command.SetParameterValue("@Memo", entity.Memo);
            command.SetParameterValue("@Note", entity.Note);
            command.SetParameterValue("@Status", entity.Status);
            command.SetParameterValue("@SysNo", entity.SysNo);
            CommonHelper.SetCommonParams(command);

            command.ExecuteNonQuery();

            return(entity);
        }
コード例 #23
0
        /// <summary>
        /// //审核代销结算单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAudit_Click(object sender, RoutedEventArgs e)
        {
            Window.Confirm(ResConsignMaintain.InfoMsg_Title, ResConsignQuery.AlertMsg_Confirm, (obj, args) =>
            {
                if (args.DialogResult == DialogResultType.OK)
                {
                    CollectionPaymentInfo getSettlementInfo = BuildActionEntity();

                    //getSettlementInfo.AuditUser=CPApplication.Current.
                    serviceFacade.Audit(getSettlementInfo, (obj2, args2) =>
                    {
                        if (args2.FaultsHandle())
                        {
                            return;
                        }
                        AlertAndRefreshPage(ResConsignMaintain.InfoMsg_OperationSuccess);
                    });
                }
            });
        }
コード例 #24
0
        public CollectionPaymentInfo CancelAudited(CollectionPaymentInfo entity)
        {
            VerifyCancelAudited(entity);
            entity.AuditUserSysNo = entity.CurrentUserSysNo;
            //entity.AuditUserSysNo = SystemUserHelper.GetUserSystemNumber(BusinessContext.Current.OperationUserFullName,
            //    BusinessContext.Current.OperationUserSourceDirectoryKey, BusinessContext.Current.OperationUserLoginName,
            //    BusinessContext.Current.CompanyCode);
            entity.CreateTime = DateTime.Now;
            entity.Status     = POCollectionPaymentSettleStatus.Origin;

            entity = CollectionPaymentDA.UpdateVendorSettleStatus(entity);

            //发送ESB消息
            EventPublisher.Publish <CollectionPaymentCancelMessage>(new CollectionPaymentCancelMessage()
            {
                CurrentUserSysNo = ServiceContext.Current.UserSysNo,
                SysNo            = entity.SysNo.Value
            });

            return(entity);
        }
コード例 #25
0
        private void VerifyAudite(CollectionPaymentInfo entity)
        {
            Verfy(entity);
            //<!--Add By Kilin 2012-08-24
            //代销结算单,创建人和审核人不能相同
            CollectionPaymentInfo old = this.CollectionPaymentDA.Load(entity.SysNo.Value);

            if (old == null)
            {
                throw new BizException("单据不存在!");
            }
            //1 检查当前结算单状态
            if (old.Status.Value != POCollectionPaymentSettleStatus.Origin)
            {
                throw new BizException("不是待审核状态!");
            }
            //if (old.CreateUserSysNo == entity.AuditUserSysNo)
            //  {
            //      throw new BizException("创建人,审核人不能相同");
            //  }
        }
コード例 #26
0
        /// <summary>
        /// 获取已经超过结算数量的规则
        /// </summary>
        /// <param name="entity">请求的结算单</param>
        /// <returns>超过结算数量的规则</returns>
        public ConsignSettlementRulesInfo GetOverConsignRule(CollectionPaymentInfo entity)
        {
            ConsignSettlementRulesInfo result = null;

            //提取结算单中包括的规则的项,并统计
            StringBuilder ruleIds = new StringBuilder();

            ruleIds.Append("-9999");
            var ruleSysNoList = entity.SettleItems.Select(p => p.SettleRuleSysNo.ToString()).Distinct();

            foreach (var item in ruleSysNoList)
            {
                if (!string.IsNullOrEmpty(item))
                {
                    ruleIds.Append("," + item + "");
                }
            }

            //提出需要判断的规则相关参数
            var ruleList = ConsignSettlementRulesDA.GetSettleRuleListBySysNos(ruleIds.ToString());

            if (ruleList.Count > 0)
            {
                foreach (var rule in ruleList)
                {
                    //提交规则对应的数量hack
                    rule.SubmitSettleQuantity = (int)entity.SettleItems.Where(p => p.SettleRuleSysNo == rule.RuleSysNo).Sum(p => p.ConsignQty);

                    //判断数量是否超过结算数量
                    if (rule.IsOverQuantity)
                    {
                        result = rule;
                        break;
                    }
                }
            }

            return(result);
        }
コード例 #27
0
        /// <summary>
        /// 审核
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public CollectionPaymentInfo Audit(CollectionPaymentInfo entity)
        {
            string OperationIP             = entity.OperationIP;
            int?   OperationUserSysNumber  = entity.OperationUserSysNumber;
            string OperationUserUniqueName = entity.OperationUserUniqueName;

            entity.AuditUserSysNo = entity.CurrentUserSysNo;
            //entity.AuditUserSysNo = SystemUserHelper.GetUserSystemNumber(BusinessContext.Current.OperationUserFullName,
            //    BusinessContext.Current.OperationUserSourceDirectoryKey, BusinessContext.Current.OperationUserLoginName,
            //    BusinessContext.Current.CompanyCode);
            //entity.AuditUserSysNo = 3256;
            VerifyAudite(entity);
            VerifyProductPMSysNo(entity);


            entity.AuditTime = DateTime.Now;
            entity.Status    = POCollectionPaymentSettleStatus.Audited;

            entity = CollectionPaymentDA.UpdateVendorSettleStatus(entity);

            //发送ESB消息
            EventPublisher.Publish <CollectionPaymentAuditMessage>(new CollectionPaymentAuditMessage()
            {
                CurrentUserSysNo = ServiceContext.Current.UserSysNo,
                SysNo            = entity.SysNo.Value
            });

            entity.OperationIP             = OperationIP;
            entity.OperationUserSysNumber  = OperationUserSysNumber;
            entity.OperationUserUniqueName = OperationUserUniqueName;

            //CommonService.WriteLog<CollectionPaymentEntity>(entity, " Audit CollectionPayment ", entity.SysNo.Value.ToString(), (int)LogType.CollectionPayment_Audit);
            ExternalDomainBroker.CreateLog(" Audit CollectionPayment "
                                           , BizEntity.Common.BizLogType.POC_VendorSettle_Audit
                                           , entity.SysNo.Value
                                           , entity.CompanyCode);
            return(entity);
        }
コード例 #28
0
        public CollectionPaymentInfo GetVendorSettleBySysNo(CollectionPaymentInfo entity)
        {
            DataCommand command;

            if (entity.SysNo.HasValue)
            {
                command = DataCommandManager.GetDataCommand("GetCollVendorSettleBySysNo");

                command.SetParameterValue("@SysNo", entity.SysNo.Value);
                CommonHelper.SetCommonParams(command);

                entity = command.ExecuteEntity <CollectionPaymentInfo>();

                command = DataCommandManager.GetDataCommand("GetCollVendorSettleItemBySettleSysNo");

                command.SetParameterValue("@SettleSysNo", entity.SysNo.Value);
                CommonHelper.SetCommonParams(command);

                entity.SettleItems = command.ExecuteEntityList <CollectionPaymentItem>();
            }

            return(entity);
        }
コード例 #29
0
        public CollectionPaymentInfo CancelAbandon(CollectionPaymentInfo entity)
        {
            string OperationIP             = entity.OperationIP;
            int?   OperationUserSysNumber  = entity.OperationUserSysNumber;
            string OperationUserUniqueName = entity.OperationUserUniqueName;

            entity.CreateUserSysNo = entity.CreateUserSysNo;
            VerifyCancelAbandon(entity);

            entity.Status = POCollectionPaymentSettleStatus.Origin;

            //将代收代付转财务记录的状态修改为人工已建
            foreach (var item in entity.SettleItems)
            {
                item.ConsignToAccLogInfo.ConsignToAccStatus = ConsignToAccountLogStatus.ManualCreated;
            }

            using (TransactionScope scope = new TransactionScope())
            {
                entity = CollectionPaymentDA.UpdateVendorSettleStatus(entity);
                //更新代销转财务记录状态
                UpdateConsignToAccLogStatus(entity);

                scope.Complete();
            }

            entity.OperationIP             = OperationIP;
            entity.OperationUserSysNumber  = OperationUserSysNumber;
            entity.OperationUserUniqueName = OperationUserUniqueName;

            ExternalDomainBroker.CreateLog(" Abandon Cancel CollectionPayment "
                                           , BizEntity.Common.BizLogType.POC_VendorSettle_Abandon
                                           , entity.SysNo.Value
                                           , entity.CompanyCode);

            return(entity);
        }
コード例 #30
0
        public virtual void VerifyProductPMSysNo(CollectionPaymentInfo entity)
        {
            if (entity.PMInfo == null || !entity.PMInfo.SysNo.HasValue)
            {
                //代销结算单的归属PM不能为空
                throw new BizException("代销结算单的归属PM不能为空");
            }

            #region Jack.W.Wang 本代码已停用,更换为产品线验证
            //获取PM Backup List:
            List <int> pms = ConsignSettlementDA.GetBackUpPMList(entity.PMInfo.SysNo.Value, entity.CompanyCode);

            pms.Add(entity.PMInfo.SysNo.Value);

            //代销单归属PM(或归属PM的备份PM)与商品PM不一致 :
            bool exists = ConsignSettlementDA.ExistsDifferentPMSysNo(pms, entity.SettleItems.Select(x => x.ProductSysNo.Value).ToList(), entity.CompanyCode);

            if (exists)
            {
                //代销单归属PM(或归属PM的备份PM)与商品PM不一致
                throw new BizException("归属PM(或归属PM的备份PM)与商品PM不一致");
            }
            #endregion
        }