Commit 1b981a22 by guanzhenshan

平台利润统计增加发货时间筛选

parent 42a05662
......@@ -1000,6 +1000,92 @@ namespace Bailun.DC.Services
}
/// <summary>
/// 根据发货时间获取平台利润统计
/// </summary>
/// <param name="platform">平台类型</param>
/// <param name="start">付款开始时间</param>
/// <param name="end">付款结束时间</param>
/// <param name="shipstart">发货开始时间</param>
/// <param name="shipend">发货结束时间</param>
/// <returns></returns>
public List<Models.Orders.dc_base_oms_sku> ListPlatformProfitByShipTime(string platform, DateTime? start, DateTime? end, DateTime? shipstart, DateTime? shipend)
{
var sqlparam = new DynamicParameters();
var sql = "select tb.platform_type,count(DISTINCT tb.bailun_order_id) order_count,sum(tb.amount_sales*seller_order_exchange_rate*tb.bailun_sku_quantity_ordered) as amount_sales,sum(tb.cost_platform_fee*seller_order_exchange_rate*tb.bailun_sku_quantity_ordered) as cost_platform_fee,sum(cost_first*tb.bailun_sku_quantity_ordered) as cost_first,sum(cost_tail*tb.bailun_sku_quantity_ordered) cost_tail,sum(cost_handle_bailun*tb.bailun_sku_quantity_ordered) cost_handle_bailun,sum(cost_handle_platform*tb.bailun_sku_quantity_ordered) cost_handle_platform,sum(amount_refund*seller_order_exchange_rate*tb.bailun_sku_quantity_ordered) amount_refund,sum(cost_product*tb.bailun_sku_quantity_ordered) cost_product,sum(profit_total*t2.quantity_shipped) profit_total,(sum(profit_total*t2.quantity_shipped)/sum(tb.amount_sales*seller_order_exchange_rate*tb.bailun_sku_quantity_ordered)) profit_rate,count(tb.amount_prepaid>0 or null) as noshippingcount from dc_base_oms_sku tb";
var presql = "select platform_type,sum(amount_prepaid) amount_prepaid from dc_base_oms_sku tb ";
if (shipstart.HasValue || shipend.HasValue)
{
//sql+= " left join dc_base_oms_pick t1 on tb.bailun_order_id "
sql += " join dc_base_oms_pick t2 on tb.bailun_order_id=t2.bailun_order_id and t2.shipping_status!='UnShipping'";
presql += " join dc_base_oms_pick t2 on tb.bailun_order_id=t2.bailun_order_id and t2.shipping_status!='UnShipping'";
}
if (shipstart.HasValue)
{
sql += " and t2.shipping_time>='"+shipstart.Value.ToString("yyyy-MM-dd")+"'" ;
presql+= " and t2.shipping_time>='" + shipstart.Value.ToString("yyyy-MM-dd") + "'";
}
if (shipend.HasValue)
{
sql += " and t2.shipping_time<'"+shipend.Value.AddDays(1).ToString("yyyy-MM-dd")+"'";
presql+= " and t2.shipping_time<'" + shipend.Value.AddDays(1).ToString("yyyy-MM-dd") + "'";
}
sql += " where bailun_order_status!='Canceled'";
presql += " where bailun_order_status!='Canceled' and amount_prepaid>0";
if (!string.IsNullOrWhiteSpace(platform))
{
sql += " and tb.platform_type=@platform_type";
presql += " and tb.platform_type=@platform_type";
sqlparam.Add("platform_type", platform);
}
if (start.HasValue)
{
sql += " and tb.paid_time>=@paid_time_start";
presql += " and tb.paid_time>=@paid_time_start";
sqlparam.Add("paid_time_start", start.Value);
}
if (end.HasValue)
{
sql += " and tb.paid_time<@paid_time_end";
presql += " and tb.paid_time<@paid_time_end";
sqlparam.Add("paid_time_end", end.Value.AddDays(1));
}
sql += " group by tb.platform_type";
presql += " group by tb.platform_type";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
var obj = cn.Query<Models.Orders.dc_base_oms_sku>(sql, sqlparam, null, true, 2 * 60);
//增加预收款金额
var obj1 = cn.Query<Models.Orders.dc_base_oms_sku>(presql, sqlparam, null, true, 2 * 60);
foreach (var item in obj)
{
var temp = obj1.Where(a => a.platform_type == item.platform_type).FirstOrDefault();
if (temp != null)
{
item.amount_prepaid = temp.amount_prepaid;
//item.profit_total = temp.profit_total;
//item.profit_rate = (item.amount_sales > 0 ? (temp.profit_rate / item.amount_sales) : 0);
}
}
return obj.AsList();
}
}
/// <summary>
/// 获取平台利润 按站点
/// </summary>
/// <param name="platform"></param>
......
......@@ -571,7 +571,16 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
[HttpPost]
public JsonResult PlatformProfitCountJson(string platform,DateTime? start,DateTime? end,DateTime? shipstart,DateTime? shipend)
{
var result = new Services.OrdersServices().ListPlatformProfit(platform, start, end,shipstart,shipend);
var result = new List<Models.Orders.dc_base_oms_sku>();
if (shipstart.HasValue || shipend.HasValue)
{
result = new Services.OrdersServices().ListPlatformProfitByShipTime(platform, start, end, shipstart, shipend);
}
else
{
result = new Services.OrdersServices().ListPlatformProfit(platform, start, end, shipstart, shipend);
}
if (result.Count > 0)
{
......
......@@ -23,6 +23,12 @@
<input id="end" name="end" type="text" class="form-control" style="width:130px;" value="@(DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"))" />
</div>
<div class="form-group">
<label>发货时间</label>
<input id="shipstart" name="shipstart" type="text" class="form-control" style="width:130px;" placeholder="发货开始时间"/>
<span>至</span>
<input id="shipend" name="shipend" type="text" class="form-control" style="width:130px;" placeholder="发货结束时间"/>
</div>
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
</div>
......@@ -75,6 +81,9 @@
laydate.render({ elem: '#start' });
laydate.render({ elem: '#end' });
laydate.render({ elem: '#shipstart' });
laydate.render({ elem: '#shipend' });
//var height = document.body.clientHeight;
//$("#roletable").attr("data-height", (height - 170));
......
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