Commit 90f28d90 by yinyong

订单亚马逊利润计算改为:利润= 税费收入+销售额 -退款 -操作费 - 平台费 -头程-尾程(FBA费)- 处理费-采购成本

parent b130a099
......@@ -290,6 +290,7 @@ public class OrderSyncJob extends PointJob {
BigDecimal skuAmountShipping = bailunSkuStructure.getSkuWeightRatio().multiply(dcBaseOmsOrder.getAmountShipping()).setScale(5, RoundingMode.HALF_EVEN);
//SKU销售额 = 将总销售额按比例摊分到SKU-原币种, SKU可能有多个
BigDecimal skuAmountSales = bailunSkuStructure.getSkuCostRatio().multiply(dcBaseOmsOrder.getAmountSales()).setScale(5, RoundingMode.HALF_EVEN);
//单个SKU售价-原币种
BigDecimal skuSalesPrice = bailunSkuStructure.getSkuQuantityOrderd() > 0 ? skuAmountSales.divide(BigDecimal.valueOf(bailunSkuStructure.getSkuQuantityOrderd()), 5, RoundingMode.HALF_EVEN) : BigDecimal.ZERO;
//SKU平台费-原币种
......@@ -312,8 +313,11 @@ public class OrderSyncJob extends PointJob {
}
//促销费-原币种
BigDecimal skuCostPromotion = bailunSkuStructure.getSkuCostRatio().multiply(dcBaseOmsOrder.getCostPromotion()).setScale(5, RoundingMode.HALF_EVEN);
//SKU税费人民币
BigDecimal skuAmountTaxRMB = skuAmountTax.multiply(dcBaseOmsOrder.getSellerOrderExchangeRate()).setScale(5, RoundingMode.HALF_EVEN);
//SKU销售额人民币
BigDecimal skuAmountSalesRMB = skuAmountSales.multiply(dcBaseOmsOrder.getSellerOrderExchangeRate()).setScale(5, RoundingMode.HALF_EVEN);
BigDecimal unitSkuAmountTaxRMB = BigDecimal.ZERO;
BigDecimal unitSkuAmountSalesRMB = BigDecimal.ZERO;
//FBA费-人民币
BigDecimal skuCostFbaFeeRMB = dcBaseOmsSku.getCostFbaFee().multiply(dcBaseOmsOrder.getSellerOrderExchangeRate()).setScale(5, RoundingMode.HALF_EVEN);
......@@ -359,6 +363,8 @@ public class OrderSyncJob extends PointJob {
}else {
costLogistics = dcBaseOmsSku.getCostLogistics();
}
//单个SKU的税费
unitSkuAmountTaxRMB = skuAmountTaxRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN);
//单个SKU的销售额
unitSkuAmountSalesRMB = skuAmountSalesRMB.divide(quantityOrderdDecimal, 5, RoundingMode.HALF_EVEN);
//单个SKU的支出
......@@ -376,7 +382,12 @@ public class OrderSyncJob extends PointJob {
//单个SKU的费用支出
dcBaseOmsSku.setCostTotal(rmbCost);
//利润都转为人民币计算
BigDecimal unitSkuProfit = unitSkuAmountSalesRMB.subtract(dcBaseOmsSku.getCostTotal());
BigDecimal unitSkuProfit = BigDecimal.ZERO;
if(dcBaseOmsOrder.getPlatformType().toUpperCase().equals(PlatformType.Amazon.value())) {
unitSkuProfit = unitSkuAmountSalesRMB.add(unitSkuAmountTaxRMB).subtract(dcBaseOmsSku.getCostTotal());
}else {
unitSkuProfit = unitSkuAmountSalesRMB.subtract(dcBaseOmsSku.getCostTotal());
}
//只有发货的SKU才去算订单维度利润
BigDecimal skuShippedProfit = unitSkuProfit.multiply(bailunSkuQuantityShippedDecimal);
totalSkuCostLogistics = totalSkuCostLogistics.add(dcBaseOmsSku.getCostLogistics().multiply(bailunSkuQuantityShippedDecimal));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment