public bool ExistAutoRMALog(int soSysNo)
        {
            SellerPortalAutoRMALog result = GetSellerPortalAutoRMALog(soSysNo);

            if (result != null)
            {
                return(true);
            }
            return(false);
        }
        public void CreateRequest4AutoRMA(int soSysNo, string inUser)
        {
            //0. Load Data
            SOInfo soInfo = ExternalDomainBroker.GetSOInfo(soSysNo);

            //1. Validation
            ValidateSOInfo(soInfo, soSysNo);
            ValidateIfExistValidRMA(soInfo.SysNo.Value);
            ValidateCanCallRequest(soInfo);

            //2. Create Request
            int    requestSysNo    = 0;
            string requestState    = "F";
            int    wareHouseNumber = -1;
            int    vendorSysNo     = GetVendorSysNoFromInUser(inUser);
            int    userSysNo       = AutoRMAUserSysNo;

            wareHouseNumber = GetWarehouseNumber(soInfo);

            string note = string.Empty;
            string memo = string.Empty;
            SellerPortalAutoRMALog sellerPortalAutoRMALog = GetSellerPortalAutoRMALog(soSysNo);

            if (sellerPortalAutoRMALog == null)
            {
                InsertSellerPortalAutoRMALog(soSysNo, inUser);
                sellerPortalAutoRMALog = GetSellerPortalAutoRMALog(soSysNo);
            }

            try
            {
                if (CreateRequest(soSysNo, userSysNo, note, memo, wareHouseNumber, ref requestSysNo))
                {
                    //设置日志状态
                    requestState = "S";
                }
            }
            catch (Exception ex)
            {
                requestState = "F";
                ExceptionHelper.HandleException(ex);
            }
            finally
            {
                UpdateSellerPortalAutoRMALog(soSysNo, requestState, DateTime.Now, sellerPortalAutoRMALog.RefundStatus, sellerPortalAutoRMALog.RefundTime.Value);
                sellerPortalAutoRMALog = GetSellerPortalAutoRMALog(soSysNo);
            }
            //3. Create Refund
            string refundStatus = "F";

            try
            {
                if (ObjectFactory <SellerPortalRefundProcessor> .Instance.CreateRMAAutoRefund(soSysNo, memo, wareHouseNumber, userSysNo, vendorSysNo))
                {
                    refundStatus = "S";
                }
            }
            catch (Exception ex)
            {
                refundStatus = "F";
                ExceptionHelper.HandleException(ex);
            }
            finally
            {
                UpdateSellerPortalAutoRMALog(soSysNo, sellerPortalAutoRMALog.RequestStatus, sellerPortalAutoRMALog.RequestTime.Value, refundStatus, DateTime.Now);
            }
        }