Commit 68f0bf1b by guanzhenshan

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

parent 1c620639
......@@ -3719,11 +3719,11 @@ namespace Bailun.DC.Services
/// <param name="orderno">平台订单号</param>
/// <param name="total">符合条件的记录数</param>
/// <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 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)
......@@ -3740,7 +3740,7 @@ namespace Bailun.DC.Services
if (end.HasValue)
{
sql += " and t1.refund_time<@end";
sqlparam.Add("end", end.Value);
sqlparam.Add("end", end.Value.AddDays(1));
}
if (!string.IsNullOrWhiteSpace(platform))
{
......@@ -3757,6 +3757,16 @@ namespace Bailun.DC.Services
sql += " and t1.origin_order_id=@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))
{
......@@ -3792,7 +3802,7 @@ namespace Bailun.DC.Services
/// <param name="orderno">平台订单号</param>
/// <param name="total">符合条件的记录数</param>
/// <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 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
if (end.HasValue)
{
sql += " and t1.refund_time<@end";
sqlparam.Add("end", end.Value);
sqlparam.Add("end", end.Value.AddDays(1));
}
if (!string.IsNullOrWhiteSpace(platform))
{
......@@ -3831,6 +3841,22 @@ namespace Bailun.DC.Services
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))
{
if (cn.State == System.Data.ConnectionState.Closed)
......@@ -3855,7 +3881,7 @@ namespace Bailun.DC.Services
/// <param name="website"></param>
/// <param name="orderno"></param>
/// <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 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
if (end.HasValue)
{
sql += " and t1.refund_time<@end";
sqlparam.Add("end", end.Value);
sqlparam.Add("end", end.Value.AddDays(1));
}
if (!string.IsNullOrWhiteSpace(platform))
{
......@@ -3894,6 +3920,22 @@ namespace Bailun.DC.Services
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))
{
......
......@@ -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_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();
......@@ -126,7 +126,7 @@ group by bailun_sku,warehouse_code", null, null, true, 5 * 60);
m.pre30_sales_count = obj30day.count;
m.pre30_stockamount = obj30day.count * obj30day.unit_price;
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_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
}
[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 companyid = HttpContextHelper.Current?.User?.GetCompanyId().ToInt32();
var total = 0;
var obj = _service.ListOrderReturn(parameter, start, end, companyid, platform, website, orderno, ref total);
var countOjb = _service.ListOrderReturnCount(start, end, companyid, platform, website, orderno);
var obj = _service.ListOrderReturn(parameter, start, end, paystart, payend, companyid, platform, website, orderno, ref total);
var countOjb = _service.ListOrderReturnCount(start, end, paystart, payend, companyid, platform, website, orderno);
var list = obj.Select(a => new {
a.platform_type,
......@@ -1996,6 +1996,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
});
return JsonConvert.SerializeObject(new { total = total, rows = list, count_row = new {
seller_account = "合计",
refundrmb = countOjb.refundrmb.ToString("N2"),
amount_refund = countOjb.amount_refund.ToString("N2"),
}});
......@@ -2011,11 +2012,11 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <param name="website">站点</param>
/// <param name="orderno">平台订单号</param>
/// <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 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 {
a.platform_type,
a.website,
......
......@@ -28,10 +28,16 @@
</select>
</div>*@
<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>
<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>
<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 class="form-group">
<label>&nbsp;</label>
......@@ -67,6 +73,9 @@
$(document).ready(function () {
laydate.render({ elem: '#start' });
laydate.render({ elem: '#end' });
laydate.render({ elem: '#paystart' });
laydate.render({ elem: '#payend' });
var height = document.body.clientHeight;
$("#roletable").attr("data-height", (height - 170));
......@@ -84,7 +93,7 @@
{ field: 'platform_type', title: '平台名称', width: '100', 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>';
}
},
......
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