Commit 88383d97 by guanzhenshan

增加Ebay站点销售统计报表

parent 63c140a9
...@@ -1852,6 +1852,109 @@ namespace Bailun.DC.Services ...@@ -1852,6 +1852,109 @@ namespace Bailun.DC.Services
} }
/// <summary> /// <summary>
/// 按站点显示Ebay的统计记录
/// </summary>
/// <param name="request"></param>
/// <param name="website"></param>
/// <param name="account"></param>
/// <param name="start"></param>
/// <param name="end"></param>
/// <param name="warehousetype"></param>
/// <param name="warehousecode"></param>
/// <param name=""></param>
/// <returns></returns>
public List<dc_base_oms_order> ListEbayStatisticsByWebsite(BtTableParameter request, string website, string account, DateTime? start, DateTime? end, string warehousetype, string warehousecode,ref int total)
{
var sqlparam = new DynamicParameters();
var sql = @"select platform_type,website,sum(amount_sales*seller_order_exchange_rate) 'amount_sales',sum(cost_product) 'cost_product',sum(cost_platform_fee*seller_other_exchange_rate) 'cost_platform_fee',sum(cost_paypal_fee*seller_order_exchange_rate) as cost_paypal_fee,sum(cost_first) 'cost_first',count(t1.bailun_order_id) 'order_count',sum(cost_total) 'cost_total',sum(cost_tail) 'cost_tail',sum(profit_total) 'profit_total',(sum(profit_total)/sum(amount_sales*seller_order_exchange_rate)) 'profit_rate',sum(amount_prepaid) amount_prepaid,sum(amount_refund*seller_order_exchange_rate) amount_refund,sum(cost_handle_bailun) cost_handle_bailun,sum(cost_handle_platform) cost_handle_platform from dc_base_oms_order t1";
var presql = "select platform_type,website,sum(amount_prepaid) as amount_prepaid from dc_base_oms_sku t1 ";
if (!string.IsNullOrEmpty(warehousetype))
{
sql += " join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.warehouse_type_ex=@warehoursetype";
presql += " join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.warehouse_type_ex=@warehoursetype";
sqlparam.Add("warehoursetype", warehousetype);
}
if (!string.IsNullOrEmpty(warehousecode))
{
if (!string.IsNullOrEmpty(warehousetype))
{
sql += " and t2.warehouse_code=@warehouse_code";
presql += " and t2.warehouse_code=@warehouse_code";
sqlparam.Add("warehouse_code", warehousecode);
}
else
{
sql += " join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.warehouse_code=@warehouse_code";
presql += " join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code and t2.warehouse_code=@warehouse_code";
sqlparam.Add("warehouse_code", warehousecode);
}
}
var fromsql = " where platform_type='Ebay' and bailun_order_status!='Canceled' ";
if (!string.IsNullOrWhiteSpace(account))
{
fromsql += " and t1.seller_account=@seller_account";
sqlparam.Add("seller_account", account);
}
if (!string.IsNullOrWhiteSpace(website))
{
fromsql += " and t1.website=@website";
sqlparam.Add("website", website);
}
if (start.HasValue)
{
fromsql += " and t1.paid_time>='" + start.Value.ToString("yyyy-MM-dd") + "'";
}
if (end.HasValue)
{
fromsql += " and t1.paid_time<'" + end.Value.AddDays(1).ToString("yyyy-MM-dd") + "'";
}
var prefromsql = fromsql;
fromsql += " group by website,platform_type";
if (!string.IsNullOrWhiteSpace(request.sort))
{
fromsql += " order by " + request.sort + " " + request.order;
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.Page<Models.Orders.dc_base_oms_order>(request.pageIndex, request.limit, sql + fromsql, ref total, sqlparam);
//另外计算预收款金额
var list = obj.AsList();
prefromsql += " and bailun_sku_quantity_shipped<=0";
prefromsql += " and seller_account in ('" + string.Join("','", list.Select(a => a.seller_account)) + "') and website in ('" + string.Join("','", list.Select(a => a.website)) + "') and order_currency in ('" + string.Join("','", list.Select(a => a.order_currency)) + "')";
prefromsql += " group by seller_account,website,order_currency,platform_type";
var obj1 = cn.Query<Models.Orders.dc_base_oms_order>(presql + prefromsql, sqlparam);
foreach (var item in list)
{
var temp = obj1.Where(a => a.seller_account == item.seller_account && a.website == item.website && a.order_currency == item.order_currency && a.platform_type == item.platform_type).FirstOrDefault();
if (temp != null)
{
item.amount_prepaid = temp.amount_prepaid;
}
}
return list;
}
}
/// <summary>
/// 获取Ebay UK站点 平邮发货名字 /// 获取Ebay UK站点 平邮发货名字
/// </summary> /// </summary>
/// <param name="start"></param> /// <param name="start"></param>
...@@ -1905,6 +2008,8 @@ namespace Bailun.DC.Services ...@@ -1905,6 +2008,8 @@ namespace Bailun.DC.Services
} }
} }
#endregion #endregion
#region 退款单 #region 退款单
......
...@@ -484,7 +484,7 @@ namespace Bailun.DC.Services ...@@ -484,7 +484,7 @@ namespace Bailun.DC.Services
var objSkuDevelopTime = new SkuInfoServices().GetSkuDevelopTime(item.Item2); var objSkuDevelopTime = new SkuInfoServices().GetSkuDevelopTime(item.Item2);
if (!objSkuDevelopTime.HasValue) if (!objSkuDevelopTime.HasValue)
{ {
return "找不到该SKU"; return "找不到该SKU【"+item.Item2+"】";
} }
var insertsql = @"insert dc_sku_monitor(sku,warehousecode,warehousename,monitorstatus,clearancestatus,tortstatus,str_skutag,createtime,developmenttime,stockcount,groupname,groupupdatetime,groupupdateuser) values(@sku,@warehousecode,@warehousename,@monitorstatus,@clearancestatus,@tortstatus,@str_skutag,@createtime,@developmenttime,@stockcount,@groupname,@groupupdatetime,@groupupdateuser)"; var insertsql = @"insert dc_sku_monitor(sku,warehousecode,warehousename,monitorstatus,clearancestatus,tortstatus,str_skutag,createtime,developmenttime,stockcount,groupname,groupupdatetime,groupupdateuser) values(@sku,@warehousecode,@warehousename,@monitorstatus,@clearancestatus,@tortstatus,@str_skutag,@createtime,@developmenttime,@stockcount,@groupname,@groupupdatetime,@groupupdateuser)";
......
...@@ -988,6 +988,113 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -988,6 +988,113 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
}); });
} }
/// <summary>
/// 按站点显示Ebay统计报表
/// </summary>
/// <returns></returns>
public ActionResult EbayStatisticsByWebsite()
{
return View();
}
/// <summary>
/// 按站点显示Ebay统计报表
/// </summary>
/// <param name="request">分页信息</param>
/// <param name="website">站点</param>
/// <param name="selleraccount">销售帐号</param>
/// <param name="start">付款开始时间</param>
/// <param name="end">付款结束时间</param>
/// <param name="warehousetype">仓库类型</param>
/// <param name="warehousecode">仓库编码</param>
/// <returns></returns>
public string EbayStatisticsByWebsiteJson(BtTableParameter request, string website, string selleraccount, DateTime start, DateTime end, string warehousetype, string warehousecode)
{
var total = 0;
var _services = new Services.OrdersServices();
var objwithdraw = new Services.PlatformSiteServices().GetPlatformLossWithdraw().Where(a => a.english_name == "Ebay").FirstOrDefault();
var withdrawpercent = 0.0000M;
if (objwithdraw != null && objwithdraw.Loss_withdrawal_percent.HasValue)
{
withdrawpercent = objwithdraw.Loss_withdrawal_percent.Value;
}
var obj = _services.ListEbayStatisticsByWebsite(request,website,selleraccount,start,end,warehousetype,warehousecode,ref total);
var countM = _services.ListEbayStatisticsCount(website, selleraccount, start, end, warehousetype, warehousecode);
countM.website = "总计:";
countM.amount_sales = Math.Round(countM.amount_sales, 2, MidpointRounding.AwayFromZero);
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);
countM.cost_package = Math.Round(countM.cost_package, 2, MidpointRounding.AwayFromZero);
countM.cost_paypal_fee = Math.Round(countM.cost_paypal_fee, 2, MidpointRounding.AwayFromZero);
countM.cost_first = Math.Round(countM.cost_first, 2, MidpointRounding.AwayFromZero);
countM.loss_withdrawal = countM.amount_sales * (withdrawpercent);
countM.cost_total = Math.Round(countM.cost_total, 2, MidpointRounding.AwayFromZero);
countM.cost_shipping = Math.Round(countM.cost_shipping, 2, MidpointRounding.AwayFromZero);
countM.amount_refund = Math.Round(countM.amount_refund, 2, MidpointRounding.AwayFromZero);
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 list = obj.Select(p => new
{
p.platform_type,
p.seller_account,
p.website,
amount_sales = p.amount_sales.ToString("N2"),
amount_product = p.amount_product.ToString("N2"),
cost_product = p.cost_product.ToString("N2"),
cost_platform_fee = p.cost_platform_fee.ToString("N2"),
cost_package = p.cost_package.ToString("N2"),
cost_paypal_fee = p.cost_paypal_fee.ToString("N2"),
cost_first = p.cost_first.ToString("N2"),
p.order_count,
loss_withdrawal = (p.amount_sales * withdrawpercent).ToString("N2"),
cost_total = p.cost_total.ToString("N2"),
cost_shipping = p.cost_shipping.ToString("N2"),
amount_refund = p.amount_refund.ToString("N2"),
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
{
total = total,
rows = list,
count_row = new
{
countM.platform_type,
countM.seller_account,
countM.website,
amount_sales = countM.amount_sales.ToString("N2"),
amount_product = countM.amount_product.ToString("N2"),
cost_product = countM.cost_product.ToString("N2"),
cost_platform_fee = countM.cost_platform_fee.ToString("N2"),
cost_package = countM.cost_package.ToString("N2"),
cost_paypal_fee = countM.cost_paypal_fee.ToString("N2"),
cost_first = countM.cost_first.ToString("N2"),
countM.order_count,
loss_withdrawal = countM.loss_withdrawal.ToString("N2"),
cost_total = countM.cost_total.ToString("N2"),
cost_shipping = countM.cost_shipping.ToString("N2"),
amount_refund = countM.amount_refund.ToString("N2"),
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"),
}
});
}
#endregion #endregion
......
...@@ -442,10 +442,6 @@ ...@@ -442,10 +442,6 @@
} }
function uploadfile() {
layer.msg('导入文件');
}
function getChkNode() { function getChkNode() {
var s = ''; var s = '';
var o = $.fn.zTree.getZTreeObj("ztree"); var o = $.fn.zTree.getZTreeObj("ztree");
...@@ -472,6 +468,7 @@ ...@@ -472,6 +468,7 @@
} }
} }
var uindex;
function uploadfile(id,url,callback) function uploadfile(id,url,callback)
{ {
var uploader = new WebUploader.Uploader({ var uploader = new WebUploader.Uploader({
...@@ -484,14 +481,21 @@ ...@@ -484,14 +481,21 @@
pick: '#'+id, pick: '#'+id,
// 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传! // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传!
resize: false, resize: false,
auto:true auto: true
}); });
uploader.on('startUpload', function () {
uindex = layer.load();
})
uploader.on('uploadSuccess', function (file, response) { uploader.on('uploadSuccess', function (file, response) {
if(callback!=undefined) layer.close(uindex);
if (callback != undefined)
{ {
callback(response); callback(response);
} }
}); });
uploader.on('uploadError', function (file) { uploader.on('uploadError', function (file) {
......
...@@ -205,6 +205,11 @@ ...@@ -205,6 +205,11 @@
</a> </a>
</li> </li>
<li> <li>
<a class="J_menuItem" href="@Url.Content("~/Reports/Orders/EbayStatisticsByWebsite")" data-index="0" style="padding-left:74px;">
<span>Ebay站点销售统计</span>
</a>
</li>
<li>
<a class="J_menuItem" href="@Url.Content("~/Reports/Orders/ListOrder?platform=Ebay")" data-index="0" style="padding-left:74px;"> <a class="J_menuItem" href="@Url.Content("~/Reports/Orders/ListOrder?platform=Ebay")" data-index="0" style="padding-left:74px;">
<span>订单流水</span> <span>订单流水</span>
</a> </a>
......
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