/// <summary> /// 团购Job调用,用于创建AO单 /// </summary> /// <param name="soSysNo">订单系统编号</param> /// <param name="refundPayType">退款类型</param> /// <param name="note">退款备注</param> /// <param name="refundReason">退款原因系统编号,编号来自OverseaServiceManagement.dbo.refundReason</param> public virtual void CreateAOForJob(int soSysNo, RefundPayType refundPayType, string note, int? refundReason) { //0.验证 SOBaseInfo soInfo = ExternalDomainBroker.GetSOBaseInfo(soSysNo); if (soInfo == null) { ThrowBizException("SOIncomeRefund_SONotFound", soSysNo); } if (soInfo.Status != SOStatus.Origin && soInfo.Status != SOStatus.WaitingOutStock) { //不为Origin,WaitingOutStock 状态 ThrowBizException("SOIncomeRefund_CreateAOForGroupJob_SOStatusInvalid", soSysNo); } var validSOIncome = ObjectFactory<SOIncomeProcessor>.Instance.GetValid(soSysNo, SOIncomeOrderType.SO); if (validSOIncome == null) { ThrowBizException("SOIncomeRefund_CreateAOForGroupJob_ValidSOIncomeNotFound", soSysNo); } //1.Set data //CRL18174:团购订单退款调整,团购订单退款需视不同的支付方式,采用不同的退款类型 //如果团购订单的退款类型为空,则默认为“退入余额帐户”方式 //如果退款方式为“网关直接退款",则需要填写“银行名称” string bankName = refundPayType == RefundPayType.NetWorkRefund ? ExternalDomainBroker.GetPayType(soInfo.PayTypeSysNo.Value).PayTypeName : ""; SOIncomeRefundInfo soIncomeRefund = new SOIncomeRefundInfo { OrderSysNo = soSysNo, SOSysNo = soSysNo, OrderType = RefundOrderType.AO, Status = RefundStatus.Origin, Note = note, RefundPayType = refundPayType, RefundReason = refundReason, BankName = bankName }; soIncomeRefund.CompanyCode = soInfo.CompanyCode; //AO退 除了礼品卡的全部金额,包括积分、余额、现金 decimal giftCardPayAmt = validSOIncome.GiftCardPayAmt ?? 0m; soIncomeRefund.RefundCashAmt = validSOIncome.OrderAmt - giftCardPayAmt; soIncomeRefund.RefundGiftCard = giftCardPayAmt; soIncomeRefund.RefundPoint = 0; //Negative SOIncome validSOIncome.CompanyCode = soInfo.CompanyCode; validSOIncome.OrderType = SOIncomeOrderType.AO; validSOIncome.OrderAmt = -validSOIncome.OrderAmt; validSOIncome.PointPay = -validSOIncome.PointPay; validSOIncome.GiftCardPayAmt = -validSOIncome.GiftCardPayAmt; validSOIncome.IncomeAmt = -validSOIncome.IncomeAmt; PreCheckForCreateAOForJob(soIncomeRefund); ObjectFactory<SOIncomeProcessor>.Instance.Create(validSOIncome); ObjectFactory<ISOIncomeRefundDA>.Instance.Create(soIncomeRefund); }
private void SwitchBankInfoIsEnable(RefundPayType type) { switch (type) { case RefundPayType.BankRefund: case RefundPayType.NetWorkRefund: { this.TextBox_BankName.IsEnabled = this.Text_BranchBankName.IsEnabled = this.Text_CardNo.IsEnabled = this.Text_CardOwnerName.IsEnabled = true; this.toolBankInfo.IsExpanded = true; break; } default: { this.TextBox_BankName.IsEnabled = this.Text_BranchBankName.IsEnabled = this.Text_CardNo.IsEnabled = this.Text_CardOwnerName.IsEnabled = false; this.toolBankInfo.IsExpanded = false; break; } } }
/// <summary> /// 团购Job调用,用于创建AO单 /// </summary> /// <param name="soSysNo">订单系统编号</param> /// <param name="refundPayType">退款类型</param> /// <param name="note">退款备注</param> /// <param name="refundReason">退款原因系统编号,编号来自OverseaServiceManagement.dbo.refundReason</param> public void CreateAOForJob(int soSysNo, RefundPayType refundPayType, string note, int?refundReason) { ObjectFactory <SOIncomeRefundProcessor> .Instance.CreateAOForJob(soSysNo, refundPayType, note, refundReason); }