Ejemplo n.º 1
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);
        }