Commit 68f0bf1b by guanzhenshan

修改平台利润统计的退款记录统计方式,退款流水增加付款时间筛选

parent 1c620639
...@@ -3719,11 +3719,11 @@ namespace Bailun.DC.Services ...@@ -3719,11 +3719,11 @@ namespace Bailun.DC.Services
/// <param name="orderno">平台订单号</param> /// <param name="orderno">平台订单号</param>
/// <param name="total">符合条件的记录数</param> /// <param name="total">符合条件的记录数</param>
/// <returns></returns> /// <returns></returns>
public List<dc_base_oms_order> ListOrderReturn(BtTableParameter parameter, DateTime? start, DateTime? end, int? companyid, string platform, string website, string orderno,ref int total) public List<dc_base_oms_order> ListOrderReturn(BtTableParameter parameter, DateTime? start, DateTime? end,DateTime? paytimestart,DateTime? paytimeend, int? companyid, string platform, string website, string orderno,ref int total)
{ {
var sqlparam = new DynamicParameters(); var sqlparam = new DynamicParameters();
var sql = "select t1.platform_type,t1.website,t1.origin_order_id,t1.seller_account,t1.amount_refund,(t1.seller_order_exchange_rate*t1.amount_refund) as refundrmb,t1.refund_time,t1.refund_reference_id from dc_base_oms_order t1 "; var sql = "select t1.platform_type,t1.website,t1.origin_order_id,t1.seller_account,t1.amount_refund,(t1.seller_order_exchange_rate*t1.amount_refund) as refundrmb,t1.refund_time,t1.refund_reference_id from dc_base_oms_order t1 ";
sql += " where t1.bailun_order_status!='Canceled' and ((t1.platform_type!='FBA' and t1.bailun_order_status!='CantHandle') or t1.platform_type='FBA') and t1.has_scalp=0 and t1.has_innersale=0 and t1.amount_refund>0 "; sql += " where t1.bailun_order_status!='Canceled' and ((t1.platform_type!='FBA' and t1.bailun_order_status!='CantHandle') or t1.platform_type='FBA') and t1.has_scalp=0 and t1.has_innersale=0 and t1.bailun_interception_status in ('None','Failed') and t1.amount_refund>0 ";
if (companyid.HasValue && companyid.Value > 0) if (companyid.HasValue && companyid.Value > 0)
...@@ -3740,7 +3740,7 @@ namespace Bailun.DC.Services ...@@ -3740,7 +3740,7 @@ namespace Bailun.DC.Services
if (end.HasValue) if (end.HasValue)
{ {
sql += " and t1.refund_time<@end"; sql += " and t1.refund_time<@end";
sqlparam.Add("end", end.Value); sqlparam.Add("end", end.Value.AddDays(1));
} }
if (!string.IsNullOrWhiteSpace(platform)) if (!string.IsNullOrWhiteSpace(platform))
{ {
...@@ -3757,7 +3757,17 @@ namespace Bailun.DC.Services ...@@ -3757,7 +3757,17 @@ namespace Bailun.DC.Services
sql += " and t1.origin_order_id=@orderno"; sql += " and t1.origin_order_id=@orderno";
sqlparam.Add("orderno", orderno); sqlparam.Add("orderno", orderno);
} }
if (paytimestart.HasValue)
{
sql += " and t1.paid_time>=@paytimestart";
sqlparam.Add("paytimestart", paytimestart.Value);
}
if (paytimeend.HasValue)
{
sql += " and t1.paid_time<@paytimeend";
sqlparam.Add("paytimeend", paytimeend.Value.AddDays(1));
}
if (!string.IsNullOrWhiteSpace(parameter.sort)) if (!string.IsNullOrWhiteSpace(parameter.sort))
{ {
sql += " order by t1." + parameter.sort + " " + parameter.order; sql += " order by t1." + parameter.sort + " " + parameter.order;
...@@ -3792,7 +3802,7 @@ namespace Bailun.DC.Services ...@@ -3792,7 +3802,7 @@ namespace Bailun.DC.Services
/// <param name="orderno">平台订单号</param> /// <param name="orderno">平台订单号</param>
/// <param name="total">符合条件的记录数</param> /// <param name="total">符合条件的记录数</param>
/// <returns></returns> /// <returns></returns>
public List<dc_base_oms_order> ListOrderReturn(DateTime? start, DateTime? end, int? companyid, string platform, string website, string orderno) public List<dc_base_oms_order> ListOrderReturn(DateTime? start, DateTime? end, DateTime? paytimestart, DateTime? paytimeend, int? companyid, string platform, string website, string orderno)
{ {
var sqlparam = new DynamicParameters(); var sqlparam = new DynamicParameters();
var sql = "select t1.platform_type,t1.website,t1.origin_order_id,t1.seller_account,t1.amount_refund,(t1.seller_order_exchange_rate*t1.amount_refund) as refundrmb,t1.refund_time,t1.refund_reference_id from dc_base_oms_order t1 "; var sql = "select t1.platform_type,t1.website,t1.origin_order_id,t1.seller_account,t1.amount_refund,(t1.seller_order_exchange_rate*t1.amount_refund) as refundrmb,t1.refund_time,t1.refund_reference_id from dc_base_oms_order t1 ";
...@@ -3813,7 +3823,7 @@ namespace Bailun.DC.Services ...@@ -3813,7 +3823,7 @@ namespace Bailun.DC.Services
if (end.HasValue) if (end.HasValue)
{ {
sql += " and t1.refund_time<@end"; sql += " and t1.refund_time<@end";
sqlparam.Add("end", end.Value); sqlparam.Add("end", end.Value.AddDays(1));
} }
if (!string.IsNullOrWhiteSpace(platform)) if (!string.IsNullOrWhiteSpace(platform))
{ {
...@@ -3831,6 +3841,22 @@ namespace Bailun.DC.Services ...@@ -3831,6 +3841,22 @@ namespace Bailun.DC.Services
sqlparam.Add("orderno", orderno); sqlparam.Add("orderno", orderno);
} }
if (paytimestart.HasValue || paytimeend.HasValue)
{
sql += " and t1.bailun_interception_status in ('None','Failed') ";
}
if (paytimestart.HasValue)
{
sql += " and t1.paid_time>=@paytimestart";
sqlparam.Add("paytimestart", paytimestart.Value);
}
if (paytimeend.HasValue)
{
sql += " and t1.paid_time<@paytimeend";
sqlparam.Add("paytimeend", paytimeend.Value.AddDays(1));
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString)) using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{ {
if (cn.State == System.Data.ConnectionState.Closed) if (cn.State == System.Data.ConnectionState.Closed)
...@@ -3855,7 +3881,7 @@ namespace Bailun.DC.Services ...@@ -3855,7 +3881,7 @@ namespace Bailun.DC.Services
/// <param name="website"></param> /// <param name="website"></param>
/// <param name="orderno"></param> /// <param name="orderno"></param>
/// <returns></returns> /// <returns></returns>
public dc_base_oms_order ListOrderReturnCount(DateTime? start, DateTime? end, int? companyid, string platform, string website, string orderno) public dc_base_oms_order ListOrderReturnCount(DateTime? start, DateTime? end, DateTime? paytimestart, DateTime? paytimeend, int? companyid, string platform, string website, string orderno)
{ {
var sqlparam = new DynamicParameters(); var sqlparam = new DynamicParameters();
var sql = "select sum(t1.amount_refund) as amount_refund,sum(t1.seller_order_exchange_rate*t1.amount_refund) as refundrmb from dc_base_oms_order t1 "; var sql = "select sum(t1.amount_refund) as amount_refund,sum(t1.seller_order_exchange_rate*t1.amount_refund) as refundrmb from dc_base_oms_order t1 ";
...@@ -3876,7 +3902,7 @@ namespace Bailun.DC.Services ...@@ -3876,7 +3902,7 @@ namespace Bailun.DC.Services
if (end.HasValue) if (end.HasValue)
{ {
sql += " and t1.refund_time<@end"; sql += " and t1.refund_time<@end";
sqlparam.Add("end", end.Value); sqlparam.Add("end", end.Value.AddDays(1));
} }
if (!string.IsNullOrWhiteSpace(platform)) if (!string.IsNullOrWhiteSpace(platform))
{ {
...@@ -3894,6 +3920,22 @@ namespace Bailun.DC.Services ...@@ -3894,6 +3920,22 @@ namespace Bailun.DC.Services
sqlparam.Add("orderno", orderno); sqlparam.Add("orderno", orderno);
} }
if (paytimestart.HasValue || paytimeend.HasValue)
{
sql += " and t1.bailun_interception_status in ('None','Failed') ";
}
if (paytimestart.HasValue)
{
sql += " and t1.paid_time>=@paytimestart";
sqlparam.Add("paytimestart", paytimestart.Value);
}
if (paytimeend.HasValue)
{
sql += " and t1.paid_time<@paytimeend";
sqlparam.Add("paytimeend", paytimeend.Value.AddDays(1));
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString)) using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{ {
......
...@@ -113,7 +113,7 @@ group by bailun_sku,warehouse_code", null, null, true, 5 * 60); ...@@ -113,7 +113,7 @@ group by bailun_sku,warehouse_code", null, null, true, 5 * 60);
m.yd_sales_stockamount = obj1day.unit_price * obj1day.count; m.yd_sales_stockamount = obj1day.unit_price * obj1day.count;
m.yd_grossprofit = obj1day.profit_total; m.yd_grossprofit = obj1day.profit_total;
m.yd_grossprofit_rate = m.yd_sales_stockamount>0?Math.Round(m.yd_grossprofit / m.yd_sales_stockamount,4):0; m.yd_grossprofit_rate = (obj1day.usable_stock * obj1day.unit_price) >0?Math.Round(m.yd_grossprofit /(obj1day.usable_stock*obj1day.unit_price),4):0;
} }
var objPutinPurchase = listPurchasePutin.Where(a => a.bailun_sku == item.bailun_sku && a.warehouse_code == item.warehouse_code).FirstOrDefault(); var objPutinPurchase = listPurchasePutin.Where(a => a.bailun_sku == item.bailun_sku && a.warehouse_code == item.warehouse_code).FirstOrDefault();
...@@ -126,7 +126,7 @@ group by bailun_sku,warehouse_code", null, null, true, 5 * 60); ...@@ -126,7 +126,7 @@ group by bailun_sku,warehouse_code", null, null, true, 5 * 60);
m.pre30_sales_count = obj30day.count; m.pre30_sales_count = obj30day.count;
m.pre30_stockamount = obj30day.count * obj30day.unit_price; m.pre30_stockamount = obj30day.count * obj30day.unit_price;
m.pre30_grossprofit = obj30day.profit_total; m.pre30_grossprofit = obj30day.profit_total;
m.pre30_grossprofit_rate = m.pre30_stockamount>0?Math.Round(m.pre30_grossprofit / m.pre30_stockamount, 4):0; m.pre30_grossprofit_rate = (obj30day.usable_stock * obj30day.unit_price) >0?Math.Round(m.pre30_grossprofit / (obj30day.usable_stock * obj30day.unit_price), 4):0;
m.pre30_return_rate = 0; m.pre30_return_rate = 0;
m.pre30_stockamount_turn_rate = (obj30day.usable_stock + obj30day.quantity_purchase + obj30day.quantity_transfer)>0?Math.Round((decimal)obj30day.count/(obj30day.usable_stock+obj30day.quantity_purchase+obj30day.quantity_transfer),4):0; m.pre30_stockamount_turn_rate = (obj30day.usable_stock + obj30day.quantity_purchase + obj30day.quantity_transfer)>0?Math.Round((decimal)obj30day.count/(obj30day.usable_stock+obj30day.quantity_purchase+obj30day.quantity_transfer),4):0;
......
...@@ -1975,14 +1975,14 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -1975,14 +1975,14 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
} }
[BailunAuthentication(LoginMode.Enforce)] [BailunAuthentication(LoginMode.Enforce)]
public string ListReturnJson(BtTableParameter parameter,DateTime? start,DateTime? end,string platform,string website, string orderno) public string ListReturnJson(BtTableParameter parameter,DateTime? start,DateTime? end,DateTime? paystart,DateTime? payend,string platform,string website, string orderno)
{ {
var _service = new Services.OrdersServices(); var _service = new Services.OrdersServices();
var companyid = HttpContextHelper.Current?.User?.GetCompanyId().ToInt32(); var companyid = HttpContextHelper.Current?.User?.GetCompanyId().ToInt32();
var total = 0; var total = 0;
var obj = _service.ListOrderReturn(parameter, start, end, companyid, platform, website, orderno, ref total); var obj = _service.ListOrderReturn(parameter, start, end, paystart, payend, companyid, platform, website, orderno, ref total);
var countOjb = _service.ListOrderReturnCount(start, end, companyid, platform, website, orderno); var countOjb = _service.ListOrderReturnCount(start, end, paystart, payend, companyid, platform, website, orderno);
var list = obj.Select(a => new { var list = obj.Select(a => new {
a.platform_type, a.platform_type,
...@@ -1996,6 +1996,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -1996,6 +1996,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
}); });
return JsonConvert.SerializeObject(new { total = total, rows = list, count_row = new { return JsonConvert.SerializeObject(new { total = total, rows = list, count_row = new {
seller_account = "合计",
refundrmb = countOjb.refundrmb.ToString("N2"), refundrmb = countOjb.refundrmb.ToString("N2"),
amount_refund = countOjb.amount_refund.ToString("N2"), amount_refund = countOjb.amount_refund.ToString("N2"),
}}); }});
...@@ -2011,11 +2012,11 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -2011,11 +2012,11 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <param name="website">站点</param> /// <param name="website">站点</param>
/// <param name="orderno">平台订单号</param> /// <param name="orderno">平台订单号</param>
/// <returns></returns> /// <returns></returns>
public ActionResult ExportListReturn(DateTime? start, DateTime? end, string platform, string website, string orderno) public ActionResult ExportListReturn(DateTime? start, DateTime? end, DateTime? paystart, DateTime? payend, string platform, string website, string orderno)
{ {
var _service = new Services.OrdersServices(); var _service = new Services.OrdersServices();
var companyid = HttpContextHelper.Current?.User?.GetCompanyId().ToInt32(); var companyid = HttpContextHelper.Current?.User?.GetCompanyId().ToInt32();
var obj = _service.ListOrderReturn(start, end, companyid, platform, website, orderno); var obj = _service.ListOrderReturn(start, end, paystart, payend, companyid, platform, website, orderno);
var list = obj.Select(a => new { var list = obj.Select(a => new {
a.platform_type, a.platform_type,
a.website, a.website,
......
...@@ -28,10 +28,16 @@ ...@@ -28,10 +28,16 @@
</select> </select>
</div>*@ </div>*@
<div class="form-group"> <div class="form-group">
<label>付款时间</label>
<input id="paystart" name="paystart" type="text" class="form-control" style="width:130px;" value="" placeholder="付款开始时间" />
<span>至</span>
<input id="payend" name="payend" type="text" class="form-control" style="width:130px;" value="" placeholder="付款结束时间" />
</div>
<div class="form-group">
<label>退款时间</label> <label>退款时间</label>
<input id="start" name="start" type="text" class="form-control" style="width:130px;" value="@(DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"))" /> <input id="start" name="start" type="text" class="form-control" style="width:130px;" value="@(DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd"))" placeholder="退款开始时间" />
<span>至</span> <span>至</span>
<input id="end" name="end" type="text" class="form-control" style="width:130px;" value="@(DateTime.Now.ToString("yyyy-MM-dd"))" /> <input id="end" name="end" type="text" class="form-control" style="width:130px;" value="@(DateTime.Now.ToString("yyyy-MM-dd"))" placeholder="退款结束时间" />
</div> </div>
<div class="form-group"> <div class="form-group">
<label>&nbsp;</label> <label>&nbsp;</label>
...@@ -67,6 +73,9 @@ ...@@ -67,6 +73,9 @@
$(document).ready(function () { $(document).ready(function () {
laydate.render({ elem: '#start' }); laydate.render({ elem: '#start' });
laydate.render({ elem: '#end' }); laydate.render({ elem: '#end' });
laydate.render({ elem: '#paystart' });
laydate.render({ elem: '#payend' });
var height = document.body.clientHeight; var height = document.body.clientHeight;
$("#roletable").attr("data-height", (height - 170)); $("#roletable").attr("data-height", (height - 170));
...@@ -84,7 +93,7 @@ ...@@ -84,7 +93,7 @@
{ field: 'platform_type', title: '平台名称', width: '100', sortable: true }, { field: 'platform_type', title: '平台名称', width: '100', sortable: true },
{ field: 'website', title: '平台站点', width: '90', sortable: true }, { field: 'website', title: '平台站点', width: '90', sortable: true },
{ {
field: 'seller_account', title: '卖家帐号', width: '160', sortable: true, formatter: function (idx, data) { field: 'seller_account', title: '卖家帐号', width: '160', sortable: true, iscount: true, formatter: function (idx, data) {
return '<div class="mules" title="' + data.seller_account + '">' + data.seller_account+'</div>'; return '<div class="mules" title="' + data.seller_account + '">' + data.seller_account+'</div>';
} }
}, },
......
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