Esempio n. 1
0
        /// <summary>
        /// 插入退换货明细
        /// </summary>
        /// <param name="item">退换货明细实体</param>
        /// <returns>插入的编号</returns>
        /// <remarks>2013-07-11 朱成果 创建</remarks>
        public override int Insert(RcReturnItem item)
        {
            var sysNO = Context.Insert("RcReturnItem", item)
                        .AutoMap(o => o.SysNo)
                        .ExecuteReturnLastId <int>("SysNo");

            return(sysNO);
        }
Esempio n. 2
0
        private void AddBaseTaskObjectToList(List <BaseTask> listObject)
        {
            BaseTask bsAT                    = new BsArea();
            BaseTask bsDP                    = new BsDeliveryPayment();
            BaseTask bsPT                    = new BsPaymentType();
            BaseTask bsCode                  = new BsCode();
            BaseTask bsOrganization          = new BsOrganization();
            BaseTask bsOrganizationWarehouse = new BsOrganizationWarehouse();

            BaseTask crCustomer = new CrCustomer();
            BaseTask crCL       = new CrCustomerLevel();
            BaseTask crCQ       = new CrCustomerQuestion();
            BaseTask crRA       = new CrReceiveAddress();

            BaseTask dsMallType      = new DsMallType();
            BaseTask dsDealerLevel   = new DsDealerLevel();
            BaseTask feArticle       = new FeArticle();
            BaseTask feAC            = new FeArticleCategory();
            BaseTask feCS            = new FeCommentSupport();
            BaseTask fepc            = new FeProductComment();
            BaseTask fePCI           = new FeProductCommentImage();
            BaseTask fePCR           = new FeProductCommentReply();
            BaseTask feSearchKeyword = new FeSearchKeyword();
            BaseTask feadvertgroup   = new FeAdvertGroup();
            BaseTask feadvertitem    = new FeAdvertItem();
            BaseTask feproductgroup  = new FeProductGroup();
            BaseTask feproductitem   = new FeProductItem();

            BaseTask fnIT      = new FnInvoiceType();
            BaseTask fninvoice = new FnInvoice();

            BaseTask fnpv = new  FnReceiptVoucher();
            BaseTask fnReceiptVoucherItem = new FnReceiptVoucherItem();
            BaseTask fnop                 = new FnOnlinePayment();
            BaseTask fnPaymentVoucher     = new FnPaymentVoucher();
            BaseTask fnPaymentVoucherItem = new FnPaymentVoucherItem();

            BaseTask lgDelivery              = new LgDelivery();
            BaseTask lgDI                    = new LgDeliveryItem();
            BaseTask lgDS                    = new LgDeliveryScope();
            BaseTask lgDT                    = new LgDeliveryType();
            BaseTask lgDUC                   = new LgDeliveryUserCredit();
            BaseTask lgPT                    = new LgPickupType();
            BaseTask lgsettlement            = new LgSettlement();
            BaseTask lgSI                    = new LgSettlementItem();
            BaseTask lgDeliveryPrintTemplate = new LgDeliveryPrintTemplate();
            BaseTask pdAttribute             = new PdAttribute();
            BaseTask pdAG                    = new PdAttributeGroup();
            BaseTask pdAGA                   = new PdAttributeGroupAssociation();
            BaseTask pdAO                    = new PdAttributeOption();
            BaseTask pdBrand                 = new PdBrand();
            BaseTask pdCGA                   = new PdCatAttributeGroupAso();
            BaseTask pdCategory              = new PdCategory();
            BaseTask pdCA                    = new PdCategoryAssociation();
            BaseTask pdPrice                 = new PdPrice();
            BaseTask pdProduct               = new PdProduct();
            BaseTask pdPA                    = new PdProductAssociation();
            BaseTask pdProductAttribute      = new PdProductAttribute();
            BaseTask pdPI                    = new PdProductImage();
            BaseTask pdTemplate              = new PdTemplate();
            BaseTask pdProductStatistics     = new PdProductStatistics();

            BaseTask soOrder         = new SoOrder();
            BaseTask soOrderItem     = new SoOrderItem();
            BaseTask soRA            = new SoReceiveAddress();
            BaseTask SyUG            = new SyUserGroup();
            BaseTask syGU            = new SyGroupUser();
            BaseTask syMenu          = new SyMenu();
            BaseTask syMenuPrivilege = new SyMenuPrivilege();
            BaseTask syPrivilege     = new SyPrivilege();
            BaseTask syRole          = new SyRole();
            BaseTask syRoleMenu      = new SyRoleMenu();
            BaseTask syRolePrivilege = new SyRolePrivilege();
            BaseTask syPermission    = new SyPermission();
            BaseTask syUser          = new SyUser();
            BaseTask syUW            = new SyUserWarehouse();
            BaseTask syMyMenu        = new SyMyMenu();

            BaseTask spcombo                  = new SpCombo();
            BaseTask spComboItem              = new SpComboItem();
            BaseTask spcopon                  = new spcoupon();
            BaseTask sqpromotion              = new SPpromotion();
            BaseTask spromotiongift           = new SPpromotiongift();
            BaseTask sppromotionoverlay       = new SPpromotionoverlay();
            BaseTask sppromotionrule          = new SPpromotionrule();
            BaseTask sppromotionrulecondition = new SPpromotionrulecondition();
            BaseTask sppromotionrulekeyvalue  = new SPpromotionrulekeyvalue();
            BaseTask syTaskConfig             = new SyTaskConfig();

            BaseTask whStockOut     = new WhStockOut();
            BaseTask whStockOutItem = new WhstockOutItem();
            BaseTask whwarehouse    = new WhWarehouse();
            BaseTask whwa           = new WHwarehousearea();
            BaseTask whwdy          = new WHwarehouseDeliveryType();
            BaseTask whWPT          = new WhWarehousePickupType();
            BaseTask whstockin      = new WhStockIn();
            BaseTask whstockinItem  = new WHStockinItem();
            BaseTask rcReturn       = new RCReturn();
            BaseTask rcReturnItem   = new RcReturnItem();

            listObject.Add(bsAT);
            listObject.Add(bsDP);
            listObject.Add(bsPT);
            listObject.Add(bsCode);
            listObject.Add(bsOrganization);
            listObject.Add(bsOrganizationWarehouse);

            listObject.Add(crCustomer);
            listObject.Add(crCL);
            listObject.Add(crCQ);
            listObject.Add(crRA);
            listObject.Add(dsMallType);
            listObject.Add(dsDealerLevel);
            listObject.Add(feArticle);
            listObject.Add(feAC);
            listObject.Add(feCS);
            listObject.Add(fePCI);
            listObject.Add(fePCR);
            listObject.Add(fepc);
            listObject.Add(feSearchKeyword);
            listObject.Add(feadvertgroup);
            listObject.Add(feadvertitem);
            listObject.Add(feproductgroup);
            listObject.Add(feproductitem);

            listObject.Add(fnIT);
            listObject.Add(fnpv);
            listObject.Add(fnReceiptVoucherItem);
            listObject.Add(fnop);
            listObject.Add(fninvoice);

            listObject.Add(fnPaymentVoucher);
            listObject.Add(fnPaymentVoucherItem);

            listObject.Add(lgDelivery);
            listObject.Add(lgDI);
            listObject.Add(lgDS);
            listObject.Add(lgDT);
            listObject.Add(lgPT);
            listObject.Add(lgsettlement);
            listObject.Add(lgSI);
            listObject.Add(lgDeliveryPrintTemplate);

            listObject.Add(pdAttribute);
            listObject.Add(pdAG);
            listObject.Add(pdAGA);
            listObject.Add(pdAO);
            listObject.Add(pdBrand);
            listObject.Add(pdCGA);
            listObject.Add(pdCategory);
            listObject.Add(pdCA);
            listObject.Add(pdPrice);
            listObject.Add(pdProduct);
            listObject.Add(pdPA);
            listObject.Add(pdProductAttribute);
            listObject.Add(pdTemplate);
            listObject.Add(pdProductStatistics);

            listObject.Add(soOrder);
            listObject.Add(soOrderItem);

            listObject.Add(spcombo);
            listObject.Add(spComboItem);
            listObject.Add(spcopon);
            listObject.Add(sqpromotion);
            listObject.Add(spromotiongift);
            //listObject.Add(sppromotionoverlay);
            listObject.Add(sppromotionrule);
            listObject.Add(sppromotionrulecondition);
            listObject.Add(sppromotionrulekeyvalue);

            listObject.Add(syGU);
            listObject.Add(syUW);
            listObject.Add(SyUG);
            listObject.Add(syMenu);
            listObject.Add(syUser);
            listObject.Add(syPermission);

            listObject.Add(syMenuPrivilege);
            listObject.Add(syPrivilege);
            listObject.Add(syRole);
            listObject.Add(syRoleMenu);
            listObject.Add(syRolePrivilege);
            listObject.Add(syMyMenu);
            listObject.Add(syTaskConfig);

            listObject.Add(whStockOut);
            listObject.Add(whStockOutItem);
            listObject.Add(whwarehouse);
            listObject.Add(whwa);
            listObject.Add(whwdy);
            listObject.Add(whWPT);
            listObject.Add(whstockin);
            listObject.Add(whstockinItem);
            listObject.Add(rcReturn);
            listObject.Add(rcReturnItem);
            listObject.Add(lgDUC);
            listObject.Add(pdPI);
            listObject.Add(soRA);
        }
Esempio n. 3
0
 /// <summary>
 /// 插入退换货明细
 /// </summary>
 /// <param name="entity">退换货明细实体</param>
 /// <returns>插入的编号</returns>
 /// <remarks>2013-07-11 朱成果 创建</remarks>
 public abstract int Insert(RcReturnItem entity);
Esempio n. 4
0
        /// <summary>
        /// 计算退款金额
        /// </summary>
        /// <param name="applyOrder">申请退款表单</param>
        /// <param name="oldOrder">数据源表单</param>
        /// <param name="returnEntity">退换货对象</param>
        /// <param name="returnItems">退换货明细</param>
        /// <returns></returns>
        /// <remarks>2013-08-27 邵斌 创建</remarks>
        public void CuCalculateCharge(CBWebRMA applyOrder, CBWebRMA oldOrder, ref RcReturn returnEntity, ref IList <RcReturnItem> returnItems)
        {
            //查找所有申请的商品是否在商品订单中并且是否是可退换货商品
            decimal price             = 0;
            decimal totalReturnCharge = 0;

            #region 构造退换货明细对象

            #region 调用吴文强退换货金额计算方法

            var queryItems = from ri in applyOrder.Items
                             join oi in oldOrder.Items on ri.ProductSysNo equals oi.ProductSysNo
                             select new { OrderItemSysNo = oi.OrderItemSysNo, ProductQuantity = ri.ProductQuantity };

            Dictionary <int, int>       items   = queryItems.ToDictionary(p => p.OrderItemSysNo, p => p.ProductQuantity);
            CBRcReturnCalculate         cReturn = Hyt.BLL.RMA.RmaBo.Instance.CalculateRmaAmount(applyOrder.OrderSysNo, items);
            KeyValuePair <int, decimal> productAmount;

            #endregion


            //遍历申请商品构造退换货明细对象
            foreach (var applyProductInfo in applyOrder.Items)
            {
                //查找申请的商品在原商品订单中的对应对象
                var cbWebRmaItem = oldOrder.Items.FirstOrDefault(p => p.ProductSysNo == applyProductInfo.ProductSysNo);

                //如果没有源对象表示这个商品是无效的将继续往下执行(在前面已经校对过可以保证数据时正确的)
                if (cbWebRmaItem == null)
                {
                    continue;
                }

                //构造退换货对象
                var rcReturnItem = new RcReturnItem()
                {
                    StockOutItemSysNo = cbWebRmaItem.StockOutItemSysNo,
                    RmaReason         = applyOrder.Reason,
                    OriginPrice       = cbWebRmaItem.OriginalPrice,
                    ProductName       = cbWebRmaItem.ProductName,
                    ProductSysNo      = cbWebRmaItem.ProductSysNo,
                    ReturnType        = (int)RmaStatus.商品退换货类型.新品,
                    RmaQuantity       = applyProductInfo.ProductQuantity
                };



                //如果是换货将不计算金额
                if (applyOrder.ReturnType == (int)RmaStatus.RMA类型.售后换货)
                {
                    rcReturnItem.RefundProductAmount = 0;
                    rcReturnItem.ReturnPriceType     = 0;
                }
                else
                {
                    rcReturnItem.ReturnPriceType = (int)RmaStatus.商品退款价格类型.自定义价格;

                    //TODO
                    //从吴文强返回结果中查询对应商品的退换货单价
                    var queryPrice = from oi in oldOrder.Items
                                     join nri in cReturn.OrderItemAmount on oi.OrderItemSysNo equals nri.Key
                                     where oi.ProductSysNo == applyProductInfo.ProductSysNo
                                     select nri.Value;

                    price = queryPrice.Single();
                    rcReturnItem.RefundProductAmount = price;
                }

                returnItems.Add(rcReturnItem);

                //累计退款金额
                totalReturnCharge += rcReturnItem.RefundProductAmount;
            }

            #endregion

            if (applyOrder.ReturnType == (int)RmaStatus.RMA类型.售后退货)
            {
                #region 计算退款

                //应退
                returnEntity.OrginAmount = cReturn.OrginAmount; //应退商品金额
                returnEntity.OrginPoint  = cReturn.OrginPoint;  //退款积分我为1块钱一个积分,所以和退款金额一致
                returnEntity.OrginCoin   = cReturn.OrginCoin;   //应退惠源币

                //实退
                returnEntity.RefundProductAmount = cReturn.RefundProductAmount; //实退商品金额
                returnEntity.RefundPoint         = cReturn.RefundPoint;         //实退总积分
                returnEntity.RefundTotalAmount   = cReturn.RefundTotalAmount;
                returnEntity.RefundCoin          = cReturn.RefundCoin;          //实退惠源币

                returnEntity.HandleDepartment = (int)Model.WorkflowStatus.RmaStatus.退换货处理部门.客服中心;

                //实体商品金额减去发票扣款=实退总金额
                returnEntity.IsPickUpInvoice = (oldOrder.InvoiceStatus == FinanceStatus.发票状态.已取回) ? 1 : 0;
                if (oldOrder.HasInvoice)
                {
                    if (oldOrder.InvoiceStatus != FinanceStatus.发票状态.已取回)
                    {
                        returnEntity.IsPickUpInvoice       = 1;
                        returnEntity.DeductedInvoiceAmount = cReturn.DeductedInvoiceAmount;
                        returnEntity.RedeemAmount          = cReturn.RedeemAmount;
                        returnEntity.CouponAmount          = cReturn.CouponAmount;
                    }
                    else
                    {
                        returnEntity.IsPickUpInvoice       = 0;
                        returnEntity.DeductedInvoiceAmount = 0;
                    }
                }

                #endregion
            }

            return;
        }
Esempio n. 5
0
        /// <summary>
        /// 二期业务数据三段 仓库物流
        /// </summary>
        /// <param name="listObject"></param>
        private void AddBaseTaskObject2ToList4(List <BaseTask> listObject)
        {
            //BaseTask bsAT = new BsArea();

            //BaseTask crCustomer = new CrCustomer();
            //BaseTask crCL = new CrCustomerLevel();
            //BaseTask crCQ = new CrCustomerQuestion();
            //BaseTask crRA = new CrReceiveAddress();

            //BaseTask feArticle = new FeArticle();
            //BaseTask feAC = new FeArticleCategory();
            //BaseTask feCS = new FeCommentSupport();
            //BaseTask fepc = new FeProductComment();
            //BaseTask fePCI = new FeProductCommentImage();
            //BaseTask fePCR = new FeProductCommentReply();

            //BaseTask fninvoice = new FnInvoice();

            //BaseTask fnpv = new FnReceiptVoucher();
            //BaseTask fnReceiptVoucherItem = new FnReceiptVoucherItem();
            //BaseTask fnop = new FnOnlinePayment();
            //BaseTask fnPaymentVoucher = new FnPaymentVoucher();
            //BaseTask fnPaymentVoucherItem = new FnPaymentVoucherItem();

            //BaseTask lgDelivery = new LgDelivery();
            //BaseTask lgDI = new LgDeliveryItem();
            //BaseTask lgDS = new LgDeliveryScope();

            //BaseTask lgDUC = new LgDeliveryUserCredit();

            //BaseTask lgsettlement = new LgSettlement();
            //BaseTask lgSI = new LgSettlementItem();

            //BaseTask pdAttribute = new PdAttribute();
            //BaseTask pdAG = new PdAttributeGroup();
            //BaseTask pdAGA = new PdAttributeGroupAssociation();
            //BaseTask pdAO = new PdAttributeOption();
            //BaseTask pdBrand = new PdBrand();
            //BaseTask pdCGA = new PdCatAttributeGroupAso();
            //BaseTask pdCategory = new PdCategory();
            //BaseTask pdCA = new PdCategoryAssociation();
            //BaseTask pdPrice = new PdPrice();
            //BaseTask pdProduct = new PdProduct();
            //BaseTask pdPA = new PdProductAssociation();
            //BaseTask pdProductAttribute = new PdProductAttribute();
            //BaseTask pdPI = new PdProductImage();
            //BaseTask pdTemplate = new PdTemplate();

            //BaseTask soOrder = new SoOrder();
            //BaseTask soOrderItem = new SoOrderItem();
            //BaseTask soRA = new SoReceiveAddress();

            BaseTask lgDelivery = new LgDelivery();
            BaseTask lgDI       = new LgDeliveryItem();

            BaseTask lgsettlement = new LgSettlement();
            BaseTask lgSI         = new LgSettlementItem();

            BaseTask whStockOut     = new WhStockOut();
            BaseTask whStockOutItem = new WhstockOutItem();

            BaseTask whstockin     = new WhStockIn();
            BaseTask whstockinItem = new WHStockinItem();
            BaseTask rcReturn      = new RCReturn();
            BaseTask rcReturnItem  = new RcReturnItem();

            //listObject.Add(bsAT);

            ////listObject.Add(bsOrganization);
            //listObject.Add(crCustomer);
            //listObject.Add(crCL);
            //listObject.Add(crCQ);
            //listObject.Add(crRA);

            //listObject.Add(feArticle);
            //listObject.Add(feAC);
            //listObject.Add(feCS);
            //listObject.Add(fePCI);
            //listObject.Add(fePCR);
            //listObject.Add(fepc);

            //listObject.Add(fnpv);
            //listObject.Add(fnReceiptVoucherItem);
            //listObject.Add(fnop);
            //listObject.Add(fninvoice);

            //listObject.Add(fnPaymentVoucher);
            //listObject.Add(fnPaymentVoucherItem);

            //listObject.Add(lgDelivery);
            //listObject.Add(lgDI);
            //listObject.Add(lgDS);
            //listObject.Add(lgsettlement);
            //listObject.Add(lgSI);

            //listObject.Add(pdAttribute);
            //listObject.Add(pdAG);
            //listObject.Add(pdAGA);
            //listObject.Add(pdAO);
            //listObject.Add(pdBrand);
            //listObject.Add(pdCGA);
            //listObject.Add(pdCategory);
            //listObject.Add(pdCA);
            //listObject.Add(pdPrice);
            //listObject.Add(pdProduct);
            //listObject.Add(pdPA);
            //listObject.Add(pdProductAttribute);
            //listObject.Add(pdTemplate);
            //listObject.Add(pdPI);

            //listObject.Add(soOrder);
            //listObject.Add(soOrderItem);
            //listObject.Add(soRA);



            listObject.Add(whStockOut);
            listObject.Add(whStockOutItem);
            listObject.Add(whstockin);
            listObject.Add(whstockinItem);

            listObject.Add(rcReturn);
            listObject.Add(rcReturnItem);

            listObject.Add(lgDelivery);
            listObject.Add(lgDI);

            listObject.Add(lgsettlement);
            listObject.Add(lgSI);
        }
Esempio n. 6
0
        /// <summary>
        /// 商城退货单导入商城
        /// </summary>
        /// <param name="mallRma">退货单实体</param>
        /// <returns>处理结果</returns>
        /// <remarks>2013-8-29 陶辉 创建</remarks>
        /// <remarks>2013-09-10 朱家宏 实现</remarks>
        /// <remarks>2013-10-21 黄志勇 修改退换货子表实退商品金额</remarks>
        public Result ImportMallRma(UpGradeRma mallRma)
        {
            //直接申请退换单,根据原订单匹配成功的商品明细进行退货
            var result = new Result();

            try
            {
                //升舱订单数据
                var dsOrder      = BLL.MallSeller.DsOrderBo.Instance.GetDsOrderByMallOrderId(mallRma.MallOrderId);
                var dsOrderItems = BLL.MallSeller.DsOrderBo.Instance.GetDsOrderItems(dsOrder.SysNo);


                //HYT订单主表数据
                var soOrder =
                    DataAccess.Order.ISoOrderDao.Instance.GetByTransactionSysNo(dsOrder.OrderTransactionSysNo);

                if (soOrder.Status != (int)Model.WorkflowStatus.OrderStatus.销售单状态.已完成)
                {
                    result.Message    = "未完成的订单不允许做此操作。";
                    result.Status     = false;
                    result.StatusCode = -1;
                    return(result);
                }

                //订单明细数据
                var soOrderItems = BLL.Order.SoOrderBo.Instance.GetOrderItemsByOrderId(soOrder.SysNo);

                if (soOrderItems == null)
                {
                    throw new ArgumentNullException();
                }

                //退换货明细
                var rcReturnItems = new List <RcReturnItem>();
                foreach (var item in mallRma.RmaItems)
                {
                    var         outitem     = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWhStockOutItem(item.StockOutItemSysNo);
                    SoOrderItem soOrderItem = null;
                    if (outitem != null)
                    {
                        soOrderItem = soOrderItems.FirstOrDefault(m => m.SysNo == outitem.OrderItemSysNo);
                    }
                    if (soOrderItem != null)
                    {
                        var rcReturnItem = new RcReturnItem
                        {
                            OriginPrice         = soOrderItem.OriginalPrice,
                            ProductName         = soOrderItem.ProductName,
                            ProductSysNo        = int.Parse(item.HytProductCode),
                            ReturnPriceType     = (int)Model.WorkflowStatus.RmaStatus.商品退款价格类型.自定义价格,
                            ReturnType          = (int)Model.WorkflowStatus.RmaStatus.商品退换货类型.新品,
                            RmaQuantity         = item.MallQuantity,
                            RmaReason           = "",
                            StockOutItemSysNo   = item.StockOutItemSysNo,
                            RefundProductAmount = Math.Round(outitem.RealSalesAmount * ((decimal)item.MallQuantity / (decimal)outitem.ProductQuantity), 2)
                        };
                        rcReturnItems.Add(rcReturnItem);
                    }
                }

                var refundProductAmount = rcReturnItems.Sum(o => o.RefundProductAmount); //退款金额合计

                var rcReturn = new CBRcReturn
                {
                    CreateBy            = soOrder.CustomerSysNo,
                    CreateDate          = DateTime.Now,
                    CustomerSysNo       = soOrder.CustomerSysNo,
                    HandleDepartment    = (int)Model.WorkflowStatus.RmaStatus.退换货处理部门.客服中心,
                    InvoiceSysNo        = soOrder.InvoiceSysNo,
                    LastUpdateBy        = soOrder.OrderCreatorSysNo,
                    LastUpdateDate      = DateTime.Now,
                    OrderSysNo          = soOrder.SysNo,
                    ReceiveAddressSysNo = soOrder.ReceiveAddressSysNo,
                    RMARemark           = "",
                    RmaType             = (int)Model.WorkflowStatus.RmaStatus.RMA类型.售后退货,
                    Source                = (int)Model.WorkflowStatus.RmaStatus.退换货申请单来源.分销商,
                    Status                = (int)Model.WorkflowStatus.RmaStatus.退换货状态.待审核,
                    WarehouseSysNo        = soOrder.DefaultWarehouseSysNo,
                    RMAItems              = rcReturnItems,
                    DeductedInvoiceAmount = 0,
                    InternalRemark        = mallRma.BuyerRmaReason,//退款说明
                    IsPickUpInvoice       = 0,
                    OrginAmount           = refundProductAmount,
                    OrginPoint            = (int)refundProductAmount,
                    RefundPoint           = (int)refundProductAmount,
                    PickUpAddressSysNo    = 0,
                    PickUpTime            = "",
                    PickupTypeSysNo       = 0,
                    RedeemAmount          = 0,
                    RefundAccount         = "",
                    RefundAccountName     = "",
                    RefundBank            = "",
                    RefundBy              = 0,
                    ShipTypeSysNo         = 0,
                    RefundDate            = DateTime.Now,
                    RefundProductAmount   = refundProductAmount,
                    RefundTotalAmount     = refundProductAmount,
                    RefundType            = (int)Hyt.Model.WorkflowStatus.RmaStatus.退换货退款方式.分销商预存
                };

                //当前操作用户
                var htyUserSysNo = IDsOrderDao.Instance.GetDealer(mallRma.DealerSysNo).UserSysNo;
                var syUser       = BLL.Sys.SyUserBo.Instance.GetSyUser(htyUserSysNo);
                var pickaddress  = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(soOrder.ReceiveAddressSysNo);//收货地址变成取件地址
                pickaddress.SysNo = 0;
                using (var tran = new TransactionScope())
                {
                    //创建rma单
                    var rmaSysNo = BLL.RMA.RmaBo.Instance.InsertRMA(rcReturn, pickaddress, null, syUser);
                    var htyRma   = BLL.RMA.RmaBo.Instance.GetRcReturnEntity(rmaSysNo);
                    //分销商退换货单
                    var dsReturn = new DsReturn
                    {
                        ApplicationTime        = mallRma.ApplyTime,
                        BuyerNick              = mallRma.MallBuyerName,
                        RmaRemark              = mallRma.BuyerRmaReason,
                        DealerMallSysNo        = mallRma.DealerMallSysNo,
                        MallOrderId            = mallRma.MallOrderId,
                        MallReturnAmount       = mallRma.MallRefundFee,
                        MallReturnId           = mallRma.MallRmaId,
                        BuyerRemark            = mallRma.MallRmaMessage,
                        RmaType                = (int)Model.WorkflowStatus.RmaStatus.RMA类型.售后退货,
                        RcReturnSysNo          = rmaSysNo,
                        ReturnTransactionSysNo = htyRma.TransactionSysNo
                    };



                    var dsReturnItems = new List <DsReturnItem>();
                    foreach (var rmaItem in mallRma.RmaItems)
                    {
                        var         myid        = BLL.MallSeller.DsOrderBo.Instance.GetDsOrderItemAssociationByOutStockItemNo(rmaItem.StockOutItemSysNo).Select(m => m.DsOrderItemSysNo).FirstOrDefault();
                        DsOrderItem dsOrderItem = dsOrderItems.FirstOrDefault(m => m.SysNo == myid);
                        if (dsOrderItem == null)
                        {
                            dsOrderItem = new DsOrderItem();
                        }
                        dsReturnItems.Add(new DsReturnItem
                        {
                            Amount = rmaItem.HytRmaAmount,
                            MallProductAttribute = dsOrderItem.MallProductAttribute,
                            MallProductId        = dsOrderItem.MallProductId,
                            MallProductName      = dsOrderItem.MallProductName,
                            Quantity             = rmaItem.MallQuantity
                        });
                    }

                    //创建『分销商退换货单』
                    BLL.MallSeller.DsReturnBo.Instance.Create(dsReturn, dsReturnItems);

                    if (!string.IsNullOrEmpty(mallRma.ImgPaths))
                    {
                        string[] paths = mallRma.ImgPaths.Split(',');
                        foreach (string str in paths)
                        {
                            BLL.RMA.RmaBo.Instance.InsertRMAImg(new RcReturnImage()
                            {
                                ImageUrl    = str,
                                ReturnSysNo = rmaSysNo
                            });
                        }
                    }

                    result.Message    = "操作成功。";
                    result.Status     = true;
                    result.StatusCode = rmaSysNo;

                    tran.Complete();
                }
            }
            catch
            {
                result.Message    = "操作失败。";
                result.Status     = false;
                result.StatusCode = -1;
            }

            return(result);
        }