Ejemplo n.º 1
0
        /// <summary>
        /// 更新返还信息
        /// </summary>
        /// <param name="register"></param>
        /// <returns></returns>
        public virtual RMARegisterInfo UpdateResponseInfo(RMARegisterInfo register)
        {
            if (register == null)
            {
                throw new ArgumentNullException("register");
            }
            CommonCheck.VerifyNotNull("SysNo", register.ResponseInfo.SysNo);

            RMARegisterInfo origin = LoadBySysNo(register.ResponseInfo.SysNo.Value);

            if (origin.BasicInfo.Status == RMARequestStatus.Complete || origin.BasicInfo.Status == RMARequestStatus.Abandon)
            {
                string msg = ResouceManager.GetMessageString("RMA.Request", "CannotEditWhenClosedOrAbandon");
                throw new BizException(msg);
            }

            CommonCheck.VerifyNotNull("ResponseProductNo", register.ResponseInfo.ResponseProductNo);

            string userName = ExternalDomainBroker.GetUserInfo(ServiceContext.Current.UserSysNo).UserDisplayName;

            register.ResponseInfo.ResponseDesc = string.Format(
                "{0}\r\n{1} {2}",
                register.ResponseInfo.ResponseDesc, userName, DateTime.Now.ToString("yyyy-MM-dd")
                );
            register.VerifyFieldsLength();

            registerDA.UpdateResponseInfo(register);

            ExternalDomainBroker.CreateOperationLog("RMA_Register_ResponseInfo", BizLogType.RMA_Register_ResponseInfo, register.SysNo.Value, origin.CompanyCode);

            return(LoadForEditBySysNo(register.ResponseInfo.SysNo.Value));
        }
Ejemplo n.º 2
0
        public static bool VerifyClose(this RMARegisterInfo register, RMARegisterInfo registerInDb)
        {
            if (registerInDb == null)
            {
                throw new ArgumentNullException("registerInDb");
            }
            if (register == null)
            {
                throw new ArgumentNullException("request is required!");
            }
            string msg = ResouceManager.GetMessageString("RMA.Request", "CannotCloseRegister");

            msg = string.Format(msg, registerInDb.SysNo);
            CommonCheck.VerifyNotNull(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-SysNo"), register.BasicInfo.SysNo);

            // Extend warranty register doesn't need OwnBy/Location validation
            if (registerInDb.BasicInfo.SOItemType != SOProductType.ExtendWarranty)
            {
                if ((!registerInDb.BasicInfo.Status.HasValue || registerInDb.BasicInfo.Status.Value != RMARequestStatus.Handling))
                {
                    throw new BizException(msg);
                }
                //ERP模式不用接收
                if (registerInDb.BasicInfo.InventoryType == ProductInventoryType.Company || registerInDb.BasicInfo.InventoryType == ProductInventoryType.TwoDoor)
                {
                    return(true);
                }
                if ((registerInDb.BasicInfo.OwnBy.HasValue && registerInDb.BasicInfo.OwnBy.Value != RMAOwnBy.Origin) ||
                    (registerInDb.BasicInfo.Location.HasValue && registerInDb.BasicInfo.Location.Value != RMALocation.Origin))
                {
                    throw new BizException(msg);
                }
            }
            return(true);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 待退款
        /// </summary>
        /// <param name="sysNo"></param>
        /// <returns></returns>
        public virtual RMARegisterInfo SetWaitingRefund(int sysNo)
        {
            if (!registerDA.CanWaitingRefund(sysNo))
            {
                string msg = ResouceManager.GetMessageString("RMA.Request", "CannotSetWaitingRefund");
                throw new BizException(msg);
            }

            RMARegisterInfo register = LoadBySysNo(sysNo);

            //同步到ERP
            SyncERPAction(register);

            TransactionOptions options = new TransactionOptions();

            options.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
            options.Timeout        = TimeSpan.FromMinutes(2);
            using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required, options))
            {
                registerDA.UpdateRefundStatus(sysNo, RMARefundStatus.WaitingRefund);

                ExternalDomainBroker.CreateOperationLog("RMA_Register_Refund", BizLogType.RMA_Register_Refund, sysNo, register.CompanyCode);

                ts.Complete();
            }

            return(LoadBySysNo(sysNo));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 更新全部信息
        /// </summary>
        /// <param name="register"></param>
        public virtual void Update(RMARegisterInfo register)
        {
            if (register == null)
            {
                throw new ArgumentNullException("register");
            }
            if (!register.BasicInfo.SysNo.HasValue)
            {
                throw new ArgumentNullException("register.SysNo");
            }
            RMARegisterInfo originRegister = LoadBySysNo(register.BasicInfo.SysNo.Value);

            register.VerifyUpdate(originRegister);

            if (originRegister.BasicInfo.NextHandler != register.BasicInfo.NextHandler)
            {
                BizLogType?logType = GetNextHandlerLogType(register.BasicInfo.NextHandler);

                if (logType.HasValue)
                {
                    ExternalDomainBroker.CreateOperationLog(logType.ToString(), logType.Value, register.SysNo.Value, originRegister.CompanyCode);
                }
            }
            registerDA.PurelyUpdate(register);
        }
Ejemplo n.º 5
0
        public void PurelyUpdate(RMARegisterInfo register)
        {
            DataCommand updateCommand = DataCommandManager.GetDataCommand("PurelyUpdateRegister");

            updateCommand.SetParameterValue <RMARegisterInfo>(register);

            updateCommand.ExecuteNonQuery();
        }
Ejemplo n.º 6
0
        public bool UpdateRevertStatus(RMARegisterInfo register)
        {
            DataCommand updateCommand = DataCommandManager.GetDataCommand("UpdateRevertStatus");

            updateCommand.SetParameterValue <RegisterRevertInfo>(register.RevertInfo);

            return(updateCommand.ExecuteNonQuery() > 0);
        }
Ejemplo n.º 7
0
        public bool UpdateCheckInfo(RMARegisterInfo register)
        {
            DataCommand updateCommand = DataCommandManager.GetDataCommand("UpdateRegisterCheckInfo");

            updateCommand.SetParameterValue <RegisterCheckInfo>(register.CheckInfo);

            return(updateCommand.ExecuteNonQuery() > 0);
        }
Ejemplo n.º 8
0
        public bool Create(RMARegisterInfo register)
        {
            DataCommand cmd = DataCommandManager.GetDataCommand("InsertRegister");

            cmd.SetParameterValue <RMARegisterInfo>(register);

            return(cmd.ExecuteNonQuery() > 0);
        }
Ejemplo n.º 9
0
        public void UpdateRegisterAfterRefund(RMARegisterInfo entity)
        {
            DataCommand command = DataCommandManager.GetDataCommand("UpdateRegisterAfterRefunded");

            command.SetParameterValue <RMARegisterInfo>(entity);

            command.ExecuteNonQuery();
        }
Ejemplo n.º 10
0
        public bool CloseForVendorRefund(RMARegisterInfo register)
        {
            DataCommand updateCommand = DataCommandManager.GetDataCommand("CloseRegisterForVendorRefund");

            updateCommand.SetParameterValue <RegisterBasicInfo>(register.BasicInfo);

            return(updateCommand.ExecuteNonQuery() > 0);
        }
Ejemplo n.º 11
0
        public bool ReOpen(RMARegisterInfo register)
        {
            DataCommand updateCommand = DataCommandManager.GetDataCommand("ReOpenRegister");

            updateCommand.SetParameterValue <RegisterBasicInfo>(register.BasicInfo);

            return(updateCommand.ExecuteNonQuery() > 0);
        }
Ejemplo n.º 12
0
        public bool UpdateBasicInfo(RMARegisterInfo register)
        {
            //ProductNo,NextHandlerCode,IsWithin7Days,IsHaveInvoice,IsFullPackage,IsFullAccessory
            DataCommand updateCommand = DataCommandManager.GetDataCommand("UpdateRegisterForRequest");

            updateCommand.SetParameterValue <RegisterBasicInfo>(register.BasicInfo);

            return(updateCommand.ExecuteNonQuery() > 0);
        }
Ejemplo n.º 13
0
        public RMARegisterInfo LoadForEditBySysNo(int sysNo)
        {
            DataCommand selectCommand = DataCommandManager.GetDataCommand("LoadRegisterForEditBySysNo");

            selectCommand.SetParameterValue("@SysNo", sysNo);

            RMARegisterInfo register = selectCommand.ExecuteEntity <RMARegisterInfo>();

            return(register);
        }
Ejemplo n.º 14
0
        public static void UpdateRegisterStatus(RMARegisterInfo registerInfo)
        {
            DataCommand command = DataCommandManager.GetDataCommand("UpdateRMARegisterStatus");

            command.SetParameterValue("@SysNo", registerInfo.SysNo);
            command.SetParameterValue("@RefundStatus", registerInfo.RefundStatus);
            command.SetParameterValue("@RevertStatus", registerInfo.RevertStatus);
            command.SetParameterValue("@Status", registerInfo.Status);

            command.ExecuteNonQuery();
        }
Ejemplo n.º 15
0
        public void RejectRevertAudit(RegisterVM vm, EventHandler <RestClientEventArgs <RMARegisterInfo> > callback)
        {
            string          relativeUrl = "/RMAService/Register/RejectRevertAudit";
            RMARegisterInfo msg         = vm.ConvertVM <RegisterVM, RMARegisterInfo>();

            restClient.Update <RMARegisterInfo>(relativeUrl, msg, (obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                callback(obj, args);
            });
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 作废单件
        /// </summary>
        /// <param name="requestSysNo"></param>
        /// <param name="sysNo"></param>
        /// <returns></returns>
        public virtual RMARegisterInfo SetAbandon(int sysNo)
        {
            RMARegisterInfo registerEntity = LoadBySysNo(sysNo);

            if (registerEntity.BasicInfo.Status != RMARequestStatus.Origin)
            {
                string msg = ResouceManager.GetMessageString("RMA.Request", "CannotAbandonRegister");
                throw new BizException(msg);
            }

            registerDA.SetAbandon(sysNo);

            return(LoadBySysNo(sysNo));
        }
Ejemplo n.º 17
0
        public void UpdateResponseInfo(RegisterVM vm, EventHandler <RestClientEventArgs <RMARegisterInfo> > callback)
        {
            string          relativeUrl = "/RMAService/Register/UpdateResponseInfo";
            RMARegisterInfo msg         = vm.ConvertVM <RegisterVM, RMARegisterInfo>();

            msg.SysNo = vm.ResponseInfo.SysNo;
            restClient.Update <RMARegisterInfo>(relativeUrl, msg, (obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                callback(obj, args);
            });
        }
Ejemplo n.º 18
0
        /// <summary>
        /// 待送修
        /// </summary>
        /// <param name="sysNo"></param>
        /// <returns></returns>
        public virtual RMARegisterInfo SetWaitingOutbound(int sysNo)
        {
            if (!registerDA.CanWaitingOutbound(sysNo))
            {
                string msg = ResouceManager.GetMessageString("RMA.Request", "CannotSetWaitingOutbound");
                throw new BizException(msg);
            }
            registerDA.UpdateOutboundStatus(sysNo, RMAOutBoundStatus.Origin);

            RMARegisterInfo register = LoadBySysNo(sysNo);

            ExternalDomainBroker.CreateOperationLog("RMA_Register_Outbound", BizLogType.RMA_Register_Outbound, sysNo, register.CompanyCode);

            return(register);
        }
Ejemplo n.º 19
0
        /// <summary>
        /// 取消待退货
        /// </summary>
        /// <param name="sysNo"></param>
        /// <returns></returns>
        public virtual bool CancelWaitingReturn(int sysNo)
        {
            if (!registerDA.CanCancelWaitingReturn(sysNo))
            {
                string msg = ResouceManager.GetMessageString("RMA.Request", "CannotCancelWaitingReturn");
                throw new BizException(msg);
            }

            bool result = registerDA.UpdateReturnStatus(sysNo, null);

            RMARegisterInfo register = LoadBySysNo(sysNo);

            ExternalDomainBroker.CreateOperationLog("RMA_Register_Return", BizLogType.RMA_Register_Return, sysNo, register.CompanyCode);

            return(result);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// 关闭单件
        /// </summary>
        /// <param name="register"></param>
        /// <returns></returns>
        public virtual RMARegisterInfo Close(int sysNo)
        {
            RMARegisterInfo original = LoadBySysNo(sysNo);

            original.VerifyClose(original);

            original.BasicInfo.Status = RMARequestStatus.Complete;

            TransactionOptions options = new TransactionOptions
            {
                IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted,
                Timeout        = TransactionManager.DefaultTimeout
            };

            //using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                //先关闭单件
                registerDA.Close(original);

                RMARequestInfo request = ObjectFactory <RequestProcessor> .Instance.LoadByRegisterSysNo(sysNo);

                request.Registers = LoadByRequestSysNo(request.SysNo.Value);
                //判断所有单件是否都已关闭
                bool allClosed = true;
                request.Registers.ForEach(reg =>
                {
                    if (reg.BasicInfo.Status == RMARequestStatus.Handling)
                    {
                        allClosed = false;
                    }
                });
                //关闭申请单
                if (allClosed && request.Status != RMARequestStatus.Complete)
                {
                    request.Status = RMARequestStatus.Complete;

                    ObjectFactory <RequestProcessor> .Instance.UpdateWithoutRegisters(request);
                }

                //scope.Complete();
            }

            ExternalDomainBroker.CreateOperationLog("RMA_Register_Close", BizLogType.RMA_Register_Close, sysNo, original.CompanyCode);

            return(LoadForEditBySysNo(sysNo));
        }
Ejemplo n.º 21
0
        public static bool VerifyUpdate(this RMARegisterInfo register, RMARegisterInfo registerInDb)
        {
            if (registerInDb == null)
            {
                throw new ArgumentNullException("registerInDb");
            }
            if (register == null)
            {
                throw new ArgumentNullException("register");
            }

            CommonCheck.VerifyNotNull(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-SysNo"), register.BasicInfo.SysNo);
            CommonCheck.VerifyNotNull(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-ProductSysNo"), register.BasicInfo.ProductSysNo);
            CommonCheck.VerifyNotNull(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-CustomerDesc"), register.BasicInfo.CustomerDesc);

            register.VerifyFieldsLength();

            if (registerInDb.BasicInfo.Status.Value == RMARequestStatus.Complete ||
                registerInDb.BasicInfo.Status.Value == RMARequestStatus.Abandon)
            {
                string msg = ResouceManager.GetMessageString("RMA.Request", "CannotEditWhenClosedOrAbandon");
                throw new BizException(msg);
            }
            if (register.BasicInfo.Status != registerInDb.BasicInfo.Status)
            {
                switch (register.BasicInfo.Status.Value)
                {
                case RMARequestStatus.Abandon:
                    registerInDb.VerifyAbandon();
                    break;

                case RMARequestStatus.Complete:
                    register.VerifyClose(registerInDb);
                    break;

                case RMARequestStatus.Handling:
                    register.VerifyReceive();
                    break;

                case RMARequestStatus.Origin:
                    break;
                }
            }
            return(true);
        }
Ejemplo n.º 22
0
        private static bool VerifyAbandon(this RMARegisterInfo registerInDb)
        {
            if (registerInDb == null)
            {
                throw new ArgumentNullException("registerInDb");
            }
            if (registerInDb.BasicInfo.RefundStatus.HasValue &&
                registerInDb.BasicInfo.RefundStatus.Value == RMARefundStatus.Refunded)
            {
                string msg = ResouceManager.GetMessageString("RMA.Request", "CannotAbandonRefundedRegister");
                throw new BizException(msg);
            }
            if (registerInDb.BasicInfo.ReturnStatus.HasValue &&
                registerInDb.BasicInfo.ReturnStatus.Value == RMAReturnStatus.Returned)
            {
                string msg = ResouceManager.GetMessageString("RMA.Request", "CannotAbandonReturnedRegister");
                throw new BizException(msg);
            }
            if (registerInDb.RevertInfo.RevertStatus.HasValue)
            {
                if (registerInDb.RevertInfo.RevertStatus.Value == RMARevertStatus.Reverted)
                {
                    string msg = ResouceManager.GetMessageString("RMA.Request", "CannotAbandonRevertedRegister");
                    throw new BizException(msg);
                }
                else
                {
                    /*
                     * RevertStatus 是 WaitingRevert/WaitingAudit 状态的单件,
                     * 其 NewProductStatus 又不等于 Origin 的话,则不允许进行作废操作
                     */
                    if ((registerInDb.RevertInfo.RevertStatus.Value == RMARevertStatus.WaitingRevert ||
                         registerInDb.RevertInfo.RevertStatus.Value == RMARevertStatus.WaitingAudit) &&
                        registerInDb.RevertInfo.NewProductStatus.HasValue &&
                        registerInDb.RevertInfo.NewProductStatus.Value != RMANewProductStatus.Origin)
                    {
                        string msg = ResouceManager.GetMessageString("RMA.Request", "CannotAbandonWithoutOriginNewProductStatus");
                        throw new BizException(msg);
                    }
                }
            }

            return(true);
        }
Ejemplo n.º 23
0
        public static bool VerifyWaitingRevert(this RMARegisterInfo register)
        {
            if (register == null)
            {
                throw new ArgumentNullException("register is required!");
            }

            CommonCheck.VerifyNotNull(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-SysNo"), register.BasicInfo.SysNo);
            CommonCheck.VerifyNotNull(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-NewProductStatus"), (int?)register.RevertInfo.NewProductStatus);

            register.VerifyFieldsLength();

            if (!ObjectFactory <IRegisterDA> .Instance.CanWaitingRevert(register.BasicInfo.SysNo.Value))
            {
                string msg = ResouceManager.GetMessageString("RMA.Request", "CannotSetWaitingRevert");
                throw new BizException(msg);
            }

            switch (register.RevertInfo.NewProductStatus.Value)
            {
            // 非换货和调新品时,RevertProductSysNo 将被设定为原始的 ProductSysNo,因此 ProductSysNo 不能为空
            case RMANewProductStatus.Origin:
            case RMANewProductStatus.NewProduct:
                CommonCheck.VerifyNotNull(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-ProductSysNo"), register.BasicInfo.ProductSysNo);
                break;

            // 调二手和非当前 Case 时,RevertProductSysNo 由用户从 UI 设定,不能为空
            case RMANewProductStatus.SecondHand:
            case RMANewProductStatus.OtherProduct:
                CommonCheck.VerifyNotNull(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-RevertProductSysNo"), register.RevertInfo.RevertProductSysNo);
                if (register.RevertInfo.RevertProductSysNo.Value == register.BasicInfo.ProductSysNo.Value)
                {
                    string msg = ResouceManager.GetMessageString("RMA.Request", "RevertProductSysnoCannotSameAsProductSysNo");
                    throw new BizException(msg);
                }
                break;
            }
            // 不为“非换货”时,RevertStockSysNo 不能为空
            if (register.RevertInfo.NewProductStatus != RMANewProductStatus.Origin)
            {
                CommonCheck.VerifyNotNull("发货仓库", register.RevertInfo.RevertStockSysNo);
            }
            return(true);
        }
Ejemplo n.º 24
0
        public virtual RMARegisterInfo CloseForVendorRefund(RMARegisterInfo register)
        {
            RMARegisterInfo original = LoadBySysNo(register.SysNo.Value);

            register.BasicInfo.CloseTime      = DateTime.Now;
            register.BasicInfo.CloseUserSysNo = ServiceContext.Current.UserSysNo;
            register.VerifyCloseForVendorRefund(original);

            register.BasicInfo.Status         = RMARequestStatus.Complete;
            register.BasicInfo.OwnBy          = RMAOwnBy.Origin;
            register.BasicInfo.Location       = RMALocation.Origin;
            register.BasicInfo.OutBoundStatus = RMAOutBoundStatus.VendorRefund;

            using (TransactionScope tran = new TransactionScope())
            {
                registerDA.CloseForVendorRefund(register);

                RMARequestInfo request = ObjectFactory <RequestProcessor> .Instance.LoadByRegisterSysNo(register.SysNo.Value);

                request.Registers = LoadByRequestSysNo(request.SysNo.Value);

                bool allClosed = true;
                request.Registers.ForEach(
                    reg =>
                {
                    if (reg.BasicInfo.Status == RMARequestStatus.Handling)
                    {
                        allClosed = false;
                    }
                }
                    );
                if (allClosed && request.Status != RMARequestStatus.Complete)
                {
                    request.Status = RMARequestStatus.Complete;
                    ObjectFactory <RequestProcessor> .Instance.UpdateWithoutRegisters(request);
                }

                tran.Complete();
            }

            return(register);
        }
Ejemplo n.º 25
0
        public static bool VerifyRevertAudit(this RMARegisterInfo register)
        {
            if (register == null)
            {
                throw new ArgumentNullException("register is required!");
            }

            CommonCheck.VerifyNotNull(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-SysNo"), register.SysNo);
            CommonCheck.VerifyNotNull(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-RevertProductSysNo"), register.RevertInfo.RevertProductSysNo);
            // verify fields' max length
            register.VerifyFieldsLength();

            if (register.RevertInfo.RevertAuditMemo == null) // only verify whether it's null, but empty string is valid
            {
                string msg = ResouceManager.GetMessageString("RMA.Request", "ObjectIsRequired");
                msg = string.Format(msg, ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-RequestMsg"));
                throw new BizException(msg);
            }
            return(true);
        }
Ejemplo n.º 26
0
        public virtual void BatchCloseRegisterForVendorRefund(List <int> registerSysNoList)
        {
            TransactionOptions options = new TransactionOptions();

            options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
            options.Timeout        = TransactionManager.DefaultTimeout;

            using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
            {
                foreach (int registerSysNO in registerSysNoList)
                {
                    RMARegisterInfo reg = new RMARegisterInfo()
                    {
                        SysNo = registerSysNO,
                    };
                    ObjectFactory <RegisterProcessor> .Instance.CloseForVendorRefund(reg);
                }
                scope.Complete();
            }
        }
Ejemplo n.º 27
0
        public virtual RMARegisterInfo SetWaitingRefund(int sysNo)
        {
            //#warning Send SSB To SellerPortal
            // return ObjectFactory<RegisterProcessor>.Instance.SetWaitingRefund(sysNo);
            RMARegisterInfo request = ObjectFactory <RegisterProcessor> .Instance.SetWaitingRefund(sysNo);

            if (request != null)
            {
                IPPRequestRegisterStatusChangeSSBEntity ssbBody = new IPPRequestRegisterStatusChangeSSBEntity();
                ssbBody.RequestSysNo     = request.SysNo.Value;
                ssbBody.Status           = "Refund";
                ssbBody.RegisterInfoList = new List <RegisterInfo>();
                ssbBody.RegisterInfoList.Add(new RegisterInfo()
                {
                    RegisterSysNo = sysNo
                });

                SSBMessageHeader ssbHeader = new SSBMessageHeader()
                {
                    Language     = "CH",
                    Sender       = "VendorPortal",
                    CompanyCode  = "8601",
                    Action       = "Update",
                    Version      = "1.0",
                    Type         = "IPPRequestRegisterStatusChange",
                    OriginalGUID = Guid.NewGuid().ToString()
                };

                SSBSender.SendV3(
                    FROMSERVICE
                    , TOSERVICELIST
                    , ArticleCategory
                    , ArticleType1
                    , ArticleType2
                    , this.BuildSendMessageXml(ssbHeader, ssbBody)
                    , "NCService"

                    );
            }
            return(request);
        }
Ejemplo n.º 28
0
        private void SyncERPAction(RMARegisterInfo registerEntity)
        {
            bool isInventoryTypeInvalid = registerEntity.BasicInfo.InventoryType != ProductInventoryType.Company && registerEntity.BasicInfo.InventoryType != ProductInventoryType.TwoDoor;
            bool isERPStatusInvalid     = registerEntity.BasicInfo.ERPStatus != ERPReturnType.UnReturn;
            bool isRequestTypeInvalid   = registerEntity.RequestType != RMARequestType.Return && registerEntity.RequestType != RMARequestType.Exchange;

            if (isInventoryTypeInvalid ||
                isERPStatusInvalid ||
                isRequestTypeInvalid)
            {
                return;
            }
            ERPSHDInfo erpinfo = new ERPSHDInfo();

            erpinfo.RefOrderNo   = registerEntity.SysNo.Value.ToString();
            erpinfo.RefOrderType = "退款单件";
            erpinfo.SysMemo      = erpinfo.RefOrderNo + "/" + erpinfo.RefOrderType;
            erpinfo.ZDR          = ServiceContext.Current.UserSysNo;
            erpinfo.ZDSJ         = DateTime.Now;
            erpinfo.ZXR          = ServiceContext.Current.UserSysNo;
            erpinfo.ZXSJ         = DateTime.Now;
            erpinfo.SHDItemList  = new List <ERPSHDItem>();
            ERPSHDItem erpitem = new ERPSHDItem();

            erpitem.ProductSysNo = registerEntity.BasicInfo.ProductSysNo;
            erpitem.SL           = 1;
            erpinfo.SHDItemList.Add(erpitem);

            //if (registerEntity.RequestType == RMARequestType.Exchange)
            //{
            //    ObjectFactory<ISyncERPBizRecord>.Instance.CreateSHD_TCWF(erpinfo);
            //}
            //else if (registerEntity.RequestType == RMARequestType.Return)
            //{
            //    ObjectFactory<ISyncERPBizRecord>.Instance.CreateSHD_FC(erpinfo);
            //}
            //更新ERPStatus
            //registerDA.SyncERP(registerEntity.SysNo.Value);
        }
Ejemplo n.º 29
0
        public virtual RMARegisterInfo SyncERP(int sysNo)
        {
            RMARegisterInfo registerEntity = LoadBySysNo(sysNo);

            if (registerEntity.BasicInfo.InventoryType != ProductInventoryType.Company && registerEntity.BasicInfo.InventoryType != ProductInventoryType.TwoDoor)
            {
                throw new BizException(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-RegisterCheck-OnlyTwoDoor"));
            }
            if (registerEntity.BasicInfo.ERPStatus != ERPReturnType.UnReturn)
            {
                throw new BizException(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-RegisterCheck-UnReturn"));
            }

            if (registerEntity.RequestType != RMARequestType.Return && registerEntity.RequestType != RMARequestType.Exchange)
            {
                throw new BizException(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-RegisterCheck-Exchange"));
            }

            SyncERPAction(registerEntity);

            return(LoadBySysNo(sysNo));
        }
Ejemplo n.º 30
0
        public static bool VerifyFieldsLength(this RMARegisterInfo register)
        {
            if (register != null)
            {
                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-CustomerDesc"), register.BasicInfo.CustomerDesc, 500);
                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-Memo"), register.BasicInfo.Memo, 3000);
                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-SerialNumber"), register.BasicInfo.ProductNo, 50);
                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-LocationWarehouse"), register.BasicInfo.LocationWarehouse, 4);
                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-LocationWarehouse"), register.BasicInfo.OwnByWarehouse, 4);
                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-ShippedWarehouse"), register.BasicInfo.ShippedWarehouse, 4);

                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-ShippedWarehouse"), register.CheckInfo.CheckDesc, 1000);
                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-InspectionResultType"), register.CheckInfo.InspectionResultType, 100);

                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-ResponseDesc"), register.ResponseInfo.ResponseDesc, 1000);
                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-ResponseProductNo"), register.ResponseInfo.ResponseProductNo, 50);
                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-VendorRepairResultType"), register.ResponseInfo.VendorRepairResultType, 100);

                CommonCheck.VerifyLength(ResouceManager.GetMessageString("RMA.Request", "RegisterCheck-RequestMsg"), register.RevertInfo.RevertAuditMemo, 200);
            }
            return(true);
        }