Commit ef7e3b8d by guanzhenshan

修复Ebay相关报表页面数据,更改为按sku统计维度

parent abeccd91
......@@ -269,6 +269,11 @@ namespace Bailun.DC.Models.Orders
public string bailun_sku_size { get; set; }
/// <summary>
/// 销售额
/// </summary>
public decimal amount_sales { get; set; }
/// <summary>
/// 收入总金额-原币种
/// </summary>
public decimal amount_total { get; set; }
......@@ -304,6 +309,16 @@ namespace Bailun.DC.Models.Orders
public decimal amount_refund { get; set; }
/// <summary>
/// 退款率
/// </summary>
public decimal amount_refund_rate { get; set; }
/// <summary>
/// 预收款
/// </summary>
public decimal amount_prepaid { get; set; }
/// <summary>
/// 总支出费用
/// </summary>
public decimal cost_total { get; set; }
......@@ -347,18 +362,28 @@ namespace Bailun.DC.Models.Orders
/// 退款佣金费用
/// </summary>
public decimal cost_refund_commisson { get; set; }
/// <summary>
/// 估算物流费用
/// 处理费(百伦收取)
/// </summary>
public decimal cost_estimate_logistics { get; set; }
public decimal cost_handle_bailun { get; set; }
/// <summary>
/// 处理费(平台收取)
/// </summary>
public decimal cost_handle_platform { get; set; }
/// <summary>
/// 头程费
/// </summary>
public decimal cost_first { get; set; }
/// <summary>
/// 尾程费
/// </summary>
public decimal cost_tail { get; set; }
/// <summary>
/// 利润=总收入-总支出
/// </summary>
public decimal profit_total { get; set; }
......@@ -473,5 +498,20 @@ namespace Bailun.DC.Models.Orders
/// </summary>
public decimal losswithdrawal { get; set; }
/// <summary>
/// 订单总数
/// </summary>
public int order_count { get; set; }
/// <summary>
/// 客单价
/// </summary>
public decimal customerprice { get; set; }
/// <summary>
/// 利润率
/// </summary>
public decimal profitrate { get; set; }
}
}
......@@ -415,7 +415,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
countM.amount_tax = Math.Round(countM.amount_tax, 2, MidpointRounding.AwayFromZero);
countM.amount_total = Math.Round(countM.amount_total, 2, MidpointRounding.AwayFromZero);
countM.cost_estimate_logistics = Math.Round(countM.cost_estimate_logistics, 2, MidpointRounding.AwayFromZero);
//countM.cost_estimate_logistics = Math.Round(countM.cost_estimate_logistics, 2, MidpointRounding.AwayFromZero);
countM.cost_fba_fee = Math.Round(countM.cost_fba_fee, 2, MidpointRounding.AwayFromZero);
countM.cost_first = Math.Round(countM.cost_first, 2, MidpointRounding.AwayFromZero);
countM.cost_package = Math.Round(countM.cost_package, 2, MidpointRounding.AwayFromZero);
......@@ -571,44 +571,42 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
if (result.Count > 0)
{
var m = new Models.Orders.mPlatformProfit
var m = new Models.Orders.dc_base_oms_sku
{
platform = "总计",
ordercount = result.Sum(a => a.ordercount),
saleamount = result.Sum(a => a.saleamount),
platform_type = "总计",
order_count = result.Sum(a => a.order_count),
amount_sales = result.Sum(a => a.amount_sales),
customerprice = result.Sum(a => a.customerprice) / result.Count,
platformfee = result.Sum(a => a.platformfee),
profit = result.Sum(a => a.profit),
profitrate = result.Sum(a => a.profit) / result.Sum(a => a.saleamount),
returnamount = result.Sum(a => a.returnamount),
returnamountrate = result.Sum(a => a.returnamount)/ result.Sum(a => a.saleamount),
cost_platform_fee = result.Sum(a => a.cost_platform_fee),
profit_total = result.Sum(a => a.profit_total),
profit_rate = result.Sum(a => a.amount_sales)>0? result.Sum(a => a.amount_sales) / result.Sum(a => a.amount_sales):0,
amount_refund = result.Sum(a => a.amount_refund),
amount_refund_rate = result.Sum(a => a.amount_sales) > 0 ? (result.Sum(a => a.amount_refund) / result.Sum(a => a.amount_sales)*100):0,
cost_first = result.Sum(a => a.cost_first),
cost_handle_bailun = result.Sum(a => a.cost_handle_bailun),
cost_handle_platform = result.Sum(a => a.cost_handle_platform),
cost_tail = result.Sum(a => a.cost_tail),
amount_prepaid = result.Sum(a=>a.amount_prepaid),
};
result.Add(m);
}
var list = result.Select(p => new {
p.platform,
p.platform_type,
customerprice = p.customerprice > 0 ? p.customerprice.ToString("N2") : "0",
p.ordercount,
platformfee = p.platformfee > 0 ? p.platformfee.ToString("N2") : "0",
profit = p.profit > 0 ? p.profit.ToString("N2") : "0",
profitrate = p.profitrate > 0 ? (p.profitrate * 100).ToString("N2") : "0",
returnamount = p.returnamount > 0 ? p.returnamount.ToString("N2") : "0",
returnamountrate = p.returnamountrate.ToString("N4"),
saleamount = p.saleamount > 0 ? p.saleamount.ToString("N2") : "0",
p.order_count,
cost_platform_fee = p.cost_platform_fee > 0 ? p.cost_platform_fee.ToString("N2") : "0",
profit_total = p.profit_total.ToString("N2"),
profit_rate = (p.amount_sales>0?p.profit_total*100/ p.amount_sales:0).ToString("N2"),
amount_refund = p.amount_refund.ToString("N2"),
amount_refund_rate = p.amount_sales>0? (p.amount_refund*100/ p.amount_sales).ToString("N4"):"0",
amount_sales = p.amount_sales.ToString("N2"),
cost_first = p.cost_first > 0 ? p.cost_first.ToString("N2") : "0",
cost_handle_bailun = p.cost_handle_bailun > 0 ? p.cost_handle_bailun.ToString("N2") : "0",
cost_handle_platform = p.cost_handle_platform > 0 ? p.cost_handle_platform.ToString("N2") : "0",
cost_tail = p.cost_tail > 0 ? p.cost_tail.ToString("N2") : "0",
cost_first = p.cost_first.ToString("N2"),
cost_handle_bailun = p.cost_handle_bailun.ToString("N2"),
cost_handle_platform = p.cost_handle_platform.ToString("N2"),
cost_tail = p.cost_tail.ToString("N2"),
amount_prepaid = p.amount_prepaid.ToString("N2"),
});
......@@ -657,6 +655,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
countM.returnamount = Math.Round(countM.returnamount, 2, MidpointRounding.AwayFromZero);
countM.saleamount = Math.Round(countM.saleamount, 2, MidpointRounding.AwayFromZero);
countM.amount_prepaid = Math.Round(countM.amount_prepaid, 2, MidpointRounding.AwayFromZero);
countM.returnamountrate = Math.Round(countM.returnamount*100 / countM.saleamount, 2, MidpointRounding.AwayFromZero);
countM.profitrate = Math.Round(countM.profit*100 / countM.saleamount, 2, MidpointRounding.AwayFromZero);
var list = result.Select(p => new {
p.platform,
......@@ -677,7 +677,23 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
amount_prepaid = p.amount_prepaid>0?p.amount_prepaid.ToString("N2"):"0",
});
return JsonConvert.SerializeObject(new { total=total,rows = list,count_row=countM});
return JsonConvert.SerializeObject(new { total = total, rows = list, count_row = new {
countM.website,
cost_first = countM.cost_first.ToString("N2"),
cost_handle_bailun = countM.cost_handle_bailun.ToString("N2"),
cost_handle_platform = countM.cost_handle_platform.ToString("N2"),
cost_tail = countM.cost_tail.ToString("N2"),
customerprice = countM.customerprice.ToString("N2"),
platformfee = countM.platformfee.ToString("N2"),
profit = countM.profit.ToString("N2"),
returnamount = countM.returnamount.ToString("N2"),
saleamount = countM.saleamount.ToString("N2"),
amount_prepaid = countM.amount_prepaid.ToString("N2"),
returnamountrate = countM.returnamountrate.ToString("N2"),
profitrate = countM.profitrate.ToString("N2"),
countM.ordercount,
}
});
}
......@@ -889,7 +905,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
var countM = services.ListEbayStatisticsCount(website, selleraccount, start, end, warehousetype, warehousecode);
countM.website = "总计:";
countM.seller_account = "总计:";
countM.amount_product = Math.Round(countM.amount_product, 2, MidpointRounding.AwayFromZero);
countM.cost_product = Math.Round(countM.cost_product, 2, MidpointRounding.AwayFromZero);
countM.cost_platform_fee = Math.Round(countM.cost_platform_fee, 2, MidpointRounding.AwayFromZero);
......@@ -903,7 +919,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
countM.amount_prepaid = Math.Round(countM.amount_prepaid, 2, MidpointRounding.AwayFromZero);
countM.profit_total = Math.Round(countM.profit_total, 2, MidpointRounding.AwayFromZero);
countM.profit_rate = countM.amount_product>0?Math.Round((countM.profit_total / countM.amount_product), 2, MidpointRounding.AwayFromZero):0;
countM.cost_tail = Math.Round(countM.cost_tail, 2, MidpointRounding.AwayFromZero);
countM.cost_handle_bailun = Math.Round(countM.cost_handle_bailun, 2, MidpointRounding.AwayFromZero);
var obj = list.Select(p => new
{
......@@ -925,6 +942,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
amount_prepaid = p.amount_prepaid.ToString("N2"),
profit_total = p.profit_total.ToString("N2"),
profit_rate = (100 * p.profit_rate).ToString("N2"),
cost_tail = p.cost_tail.ToString("N2"),
cost_handle_bailun = p.cost_handle_bailun.ToString("N2"),
});
return JsonConvert.SerializeObject(new
......@@ -933,6 +952,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
rows = obj,
count_row = new
{
countM.platform_type,
countM.seller_account,
countM.website,
amount_product = countM.amount_product.ToString("N2"),
cost_product = countM.cost_product.ToString("N2"),
......@@ -948,6 +969,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
amount_prepaid = countM.amount_prepaid.ToString("N2"),
profit_total = countM.profit_total.ToString("N2"),
profit_rate = (100 * countM.profit_rate).ToString("N2"),
cost_tail = countM.cost_tail.ToString("N2"),
cost_handle_bailun = countM.cost_handle_bailun.ToString("N2"),
}
});
}
......
......@@ -97,30 +97,30 @@
var columns = [
{ field: 'platform_type', title: '平台', width: '100', sortable: false },
{
field: 'seller_account', title: '销售帐号', width: '130', sortable: false, formatter: function (idx, data) {
field: 'seller_account', title: '销售帐号', width: '130', sortable: false, iscount: true, formatter: function (idx, data) {
var str = '<p class="mules" title="' + data.seller_account + '">' + data.seller_account + '</p>';
return str;
}
},
//{ field: 'website', title: '站点', width: '80', sortable: false, iscount: true },
{
field: 'amount_product', title: '商品收入', width: '100', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'商品收入\',\'amount_product\',1)">' + data.amount_product + '</span>';
field: 'order_count', title: '订单数量', width: '100', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'订单数量\',\'\',0)">' + data.order_count + '</span>';
}
},
{
field: 'cost_product', title: '产品成本', width: '100', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'产品成本\',\'cost_product\',1)">' + data.cost_product + '</span>';
field: 'amount_product', title: '销售额', width: '100', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'销售额\',\'amount_product\',1)">' + data.amount_product + '</span>';
}
},
{
field: 'cost_platform_fee', title: '平台佣金费', width: '110', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'平台佣金费\',\'cost_platform_fee\',1)">' + data.cost_platform_fee + '</span>';
field: 'cost_product', title: '产品成本', width: '100', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'产品成本\',\'cost_product\',1)">' + data.cost_product + '</span>';
}
},
{
field: 'cost_package', title: '包装费用', width: '110', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'包装费用\',\'cost_package\',1)">' + data.cost_package + '</span>';
field: 'cost_platform_fee', title: '平台费', width: '110', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'平台费\',\'cost_platform_fee\',1)">' + data.cost_platform_fee + '</span>';
}
},
{
......@@ -134,19 +134,19 @@
}
},
{
field: 'order_count', title: '销售数量', width: '100', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account+ '\',\'订单数\',\'\',0)">' + data.order_count + '</span>';
field: 'cost_tail', title: '尾程费', width: '100', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'尾程费\',\'cost_tail\',1)">' + data.cost_tail + '</span>';
}
},
{ field: 'loss_withdrawal', title: '提现损耗', width: '100', sortable: false, iscount: true },
{
field: 'cost_total', title: '总支出', width: '110', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'总支出\',\'cost_total\',1)">' + data.cost_total + '</span>';
field: 'cost_handle_bailun', title: '处理费', width: '100', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'处理费\',\'cost_first\',1)">' + data.cost_handle_bailun + '</span>';
}
},
{ field: 'loss_withdrawal', title: '提现损耗', width: '100', sortable: false, iscount: true },
{
field: 'cost_shipping', title: '实际物流费', width: '110', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'实际物流费\',\'cost_shipping\',1)">' + data.cost_shipping + '</span>';
field: 'cost_total', title: '总支出', width: '110', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span class="alink" onclick="ShowDetail(\'' + data.platform_type + '\',\'' + data.website + '\',\'' + data.seller_account + '\',\'总支出\',\'cost_total\',1)">' + data.cost_total + '</span>';
}
},
{
......
......@@ -88,7 +88,6 @@
{ field: 'platform_type', title: '平台', width: '100' },
{ field: 'website', title: '站点', width: '90' },
{ field: 'seller_account', title: '销售帐号', width: '110', sortable: false },
//{ field: 'order_currency', title: '订单币种', width: '110', sortable: false, iscount: true },
{
field: 'amount_total', title: '总收入', width: '90', sortable: true, iscount: true
},
......
......@@ -92,20 +92,20 @@
if (result && result.length > 0) {
$('#tb').html('');
for (var i = 0; i < result.length; i++) {
var s = '<tr><td class="platform"><a href="javascript:;" onclick="ShowWebsite(\'' + result[i].platform+'\');">' + result[i].platform + '</a></td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform + '\',\'订单数\',\'\',0)">' + result[i].ordercount + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform + '\',\'销售额\',\'amount_total\',1)">' + result[i].saleamount + '</td>';
var s = '<tr><td class="platform"><a href="javascript:;" onclick="ShowWebsite(\'' + result[i].platform_type + '\');">' + result[i].platform_type + '</a></td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform_type + '\',\'订单数\',\'\',0)">' + result[i].order_count + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform_type + '\',\'销售额\',\'amount_sales\',1)">' + result[i].amount_sales + '</td>';
s += '<td>' + result[i].customerprice + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform + '\',\'平台费用\',\'cost_platform_fee\',1)">' + result[i].platformfee + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform + '\',\'头程费\',\'cost_first\',1)">' + result[i].cost_first + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform + '\',\'尾程费\',\'cost_tail\',1)">' + result[i].cost_tail + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform + '\',\'处理费(百伦)\',\'cost_handle_bailun\',1)">' + result[i].cost_handle_bailun + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform + '\',\'平台操作费\',\'cost_handle_platform\',1)">' + result[i].cost_handle_platform + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform + '\',\'预收款\',\'amount_prepaid\',1)">' + result[i].amount_prepaid + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform + '\',\'利润\',\'profit_total\',1)">' + result[i].profit + '</td>';
s += '<td>' + result[i].profitrate + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform + '\',\'退款金额\',\'amount_refund\',1)">' + result[i].returnamount + '</td>';
s += '<td>' + result[i].returnamountrate + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform_type + '\',\'平台费用\',\'cost_platform_fee\',1)">' + result[i].cost_platform_fee + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform_type + '\',\'头程费\',\'cost_first\',1)">' + result[i].cost_first + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform_type + '\',\'尾程费\',\'cost_tail\',1)">' + result[i].cost_tail + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform_type + '\',\'处理费(百伦)\',\'cost_handle_bailun\',1)">' + result[i].cost_handle_bailun + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform_type + '\',\'平台操作费\',\'cost_handle_platform\',1)">' + result[i].cost_handle_platform + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform_type + '\',\'预收款\',\'amount_prepaid\',1)">' + result[i].amount_prepaid + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform_type + '\',\'利润\',\'profit_total\',1)">' + result[i].profit_total + '</td>';
s += '<td>' + result[i].profit_rate + '</td>';
s += '<td class="alink" onclick="ShowDetail(\'' + result[i].platform_type + '\',\'退款金额\',\'amount_refund\',1)">' + result[i].amount_refund + '</td>';
s += '<td>' + result[i].amount_refund_rate + '</td>';
$('#tb').append(s);
}
......
......@@ -114,7 +114,7 @@
}
},
{
field: 'profitrate', title: '利润率%', width: '110', sortable: true, formatter: function (idx, data) {
field: 'profitrate', title: '利润率%', width: '110', sortable: true, iscount: true, formatter: function (idx, data) {
return '<span>' + data.profitrate + '</span>';
}
},
......@@ -124,7 +124,7 @@
}
},
{
field: 'returnamountrate', title: '退款率%', width: '100', sortable: true
field: 'returnamountrate', title: '退款率%', width: '100', sortable: true, iscount: true
, formatter: function (idx, data) {
return '<span>' + data.returnamountrate + '</span>';
}
......
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