private List <CommissionSettlementItemSOItemCalculateInfo> GetRMACalculateInfo(int orderSysNo) { var commissionSettlementItemSOItemCalculateInfoList = new List <CommissionSettlementItemSOItemCalculateInfo>(); var refundInfo = ExternalDomainBroker.GetRefund(orderSysNo); if (!refundInfo.SysNo.HasValue || !refundInfo.SOSysNo.HasValue) { throw new BizException("RefundInfo Error Or Has No SOSysNo"); } var soInfo = ExternalDomainBroker.GetSOInfo(refundInfo.SOSysNo.Value); foreach (var item in refundInfo.RefundItems) { var commissionSettlementItemSOItemCalculateInfo = new CommissionSettlementItemSOItemCalculateInfo(); var calculatePrice = item.RefundCash + item.RefundPoint / 10 + item.OrgGiftCardAmt; commissionSettlementItemSOItemCalculateInfo.Price = calculatePrice.HasValue ? calculatePrice.Value : 0; commissionSettlementItemSOItemCalculateInfo.Qty = 1; var soItem = soInfo.Items.Find(i => i.SysNo == item.SysNo); if (soItem.ItemExtList.Exists(ext => ext.Type == SOProductActivityType.GroupBuy)) { commissionSettlementItemSOItemCalculateInfo.Percentage = DefaultPercentage; } else { if (soInfo.InvoiceInfo.InvoiceType == InvoiceType.MET || soInfo.ShippingInfo.ShippingType == DeliveryType.MET || soInfo.ShippingInfo.StockType == StockType.MET) { continue; } if (!soItem.C3SysNo.HasValue) { throw new BizException("SO Item C3 Has No Value"); } var c1 = ExternalDomainBroker.GetCategory1ByCategory3(soItem.C3SysNo.Value); if (!c1.SysNo.HasValue) { throw new BizException("C3 " + soItem.C3SysNo + " Has No C1"); } var c1SysNo = c1.SysNo.Value; List <CommissionPercentage> commissionPercentageList = ObjectFactory <ICommissionPercentageDA> .Instance.GetByC1SysNo(c1SysNo); if (commissionPercentageList.Count == 0) { commissionPercentageList = ObjectFactory <ICommissionPercentageDA> .Instance.GetByDefault(); } commissionSettlementItemSOItemCalculateInfo.Percentage = commissionPercentageList.First().Percentage; } commissionSettlementItemSOItemCalculateInfoList.Add(commissionSettlementItemSOItemCalculateInfo); } return(commissionSettlementItemSOItemCalculateInfoList); }
private List <CommissionSettlementItemSOItemCalculateInfo> GetSOCalculateInfo(int orderSysNo) { var commissionSettlementItemSOItemCalculateInfoList = new List <CommissionSettlementItemSOItemCalculateInfo>(); var soInfo = ExternalDomainBroker.GetSOInfo(orderSysNo); foreach (var item in soInfo.Items) { var commissionSettlementItemSOItemCalculateInfo = new CommissionSettlementItemSOItemCalculateInfo(); var calculatePrice = item.Price + item.CouponAverageDiscount; commissionSettlementItemSOItemCalculateInfo.Price = calculatePrice.HasValue ? calculatePrice.Value : 0; commissionSettlementItemSOItemCalculateInfo.Qty = item.Quantity.HasValue ? item.Quantity.Value : 0; if (item.ItemExtList.Exists(ext => ext.Type == SOProductActivityType.GroupBuy)) { commissionSettlementItemSOItemCalculateInfo.Percentage = DefaultPercentage; } else { if (soInfo.InvoiceInfo.InvoiceType == InvoiceType.MET || soInfo.ShippingInfo.ShippingType == DeliveryType.MET || soInfo.ShippingInfo.StockType == StockType.MET) { continue; } if (!item.C3SysNo.HasValue) { throw new BizException("SO Item C3 Has No Value"); } var c1 = ExternalDomainBroker.GetCategory1ByCategory3(item.C3SysNo.Value); if (!c1.SysNo.HasValue) { throw new BizException("C3 " + item.C3SysNo + " Has No C1"); } var c1SysNo = c1.SysNo.Value; List <CommissionPercentage> commissionPercentageList = ObjectFactory <ICommissionPercentageDA> .Instance.GetByC1SysNo(c1SysNo); if (commissionPercentageList.Count == 0) { commissionPercentageList = ObjectFactory <ICommissionPercentageDA> .Instance.GetByDefault(); } commissionSettlementItemSOItemCalculateInfo.Percentage = commissionPercentageList.First().Percentage; } commissionSettlementItemSOItemCalculateInfoList.Add(commissionSettlementItemSOItemCalculateInfo); } return(commissionSettlementItemSOItemCalculateInfoList); }