Commit 9a78cb33 by guanzhenshan

修复新月销售利润无法编辑的问题

parent 917aa141
...@@ -10,18 +10,18 @@ namespace Bailun.DC.DailyItemNoProfitRate ...@@ -10,18 +10,18 @@ namespace Bailun.DC.DailyItemNoProfitRate
static async Task Main(string[] args) static async Task Main(string[] args)
{ {
Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var builder = new HostBuilder().ConfigureServices((hostContext, services) => //var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
{ //{
services.AddHostedService<Services>(); // services.AddHostedService<Services>();
}); //});
await builder.RunConsoleAsync(); //await builder.RunConsoleAsync();
//var _service = new Services(); var _service = new Services();
//var day = DateTime.Parse(DateTime.Now.AddDays(-2).ToShortDateString()); var day = DateTime.Parse(DateTime.Now.AddDays(-1).ToShortDateString());
//_service.Init(day.AddDays(-20), day); _service.Init(day.AddDays(-20), day);
//_service.OneDayItemNoProfitRate(day.AddDays(-1), day); _service.OneDayItemNoProfitRate(day.AddDays(-1), day);
} }
} }
} }
...@@ -84,7 +84,7 @@ namespace Bailun.DC.DailyItemNoProfitRate ...@@ -84,7 +84,7 @@ namespace Bailun.DC.DailyItemNoProfitRate
cn.Open(); cn.Open();
} }
listBaseOrder = cn.Query<dc_mid_itemno_profit_order>($@"select distinct '{end.ToString("yyyy-MM-dd")}' as day,t3.id as order_sku_id,t1.bailun_order_id,t1.origin_order_id,t1.item_id,t1.platform_sku,t1.platform_sku_quantity_ordered,t2.count,t3.bailun_sku,t3.paid_time,(t3.amount_sales*t1.platform_sku_quantity_ordered*t2.count) as amount_sales,(t3.cost_product*t1.platform_sku_quantity_ordered*t2.count) cost_product,(t3.cost_platform_fee*t1.platform_sku_quantity_ordered*t2.count) cost_platform_fee,(t3.cost_paypal_fee*t1.platform_sku_quantity_ordered*t2.count) cost_paypal_fee,(t3.cost_fba_fee*t1.platform_sku_quantity_ordered*t2.count) cost_fba_fee,(t3.cost_first*t1.platform_sku_quantity_ordered*t2.count) cost_first,(t3.cost_logistics*t1.platform_sku_quantity_ordered*t2.count) cost_logistics,(t3.cost_handle_platform*t1.platform_sku_quantity_ordered*t2.count) cost_handle_platform,(t3.cost_handle_bailun*t1.platform_sku_quantity_ordered*t2.count) cost_handle_bailun,t3.warehouse_code,t3.shipping_status,t3.seller_order_exchange_rate,t1.platform_type,t1.website,t1.bailun_account_id from dc_base_oms_platform_sku t1 listBaseOrder = cn.Query<dc_mid_itemno_profit_order>($@"select distinct t3.id as order_sku_id,t1.bailun_order_id,t1.origin_order_id,t1.item_id,t1.platform_sku,t1.platform_sku_quantity_ordered,t2.count,t3.bailun_sku,t3.paid_time,(t3.amount_sales*t1.platform_sku_quantity_ordered*t2.count) as amount_sales,(t3.cost_product*t1.platform_sku_quantity_ordered*t2.count) cost_product,(t3.cost_platform_fee*t1.platform_sku_quantity_ordered*t2.count) cost_platform_fee,(t3.cost_paypal_fee*t1.platform_sku_quantity_ordered*t2.count) cost_paypal_fee,(t3.cost_fba_fee*t1.platform_sku_quantity_ordered*t2.count) cost_fba_fee,(t3.cost_first*t1.platform_sku_quantity_ordered*t2.count) cost_first,(t3.cost_logistics*t1.platform_sku_quantity_ordered*t2.count) cost_logistics,(t3.cost_handle_platform*t1.platform_sku_quantity_ordered*t2.count) cost_handle_platform,(t3.cost_handle_bailun*t1.platform_sku_quantity_ordered*t2.count) cost_handle_bailun,t3.warehouse_code,t3.shipping_status,t3.seller_order_exchange_rate,t1.platform_type,t1.website,t1.bailun_account_id from dc_base_oms_platform_sku t1
join dc_base_sku_mapping t2 on t1.item_id=t2.item_id and t2.platform_sku=t1.platform_sku and t1.website=t2.site and t2.has_deleted=0 join dc_base_sku_mapping t2 on t1.item_id=t2.item_id and t2.platform_sku=t1.platform_sku and t1.website=t2.site and t2.has_deleted=0
join dc_base_oms_sku_30 t3 on t1.bailun_order_id=t3.bailun_order_id and t2.bailun_sku=t3.bailun_sku and t2.account_id=t3.bailun_account_id join dc_base_oms_sku_30 t3 on t1.bailun_order_id=t3.bailun_order_id and t2.bailun_sku=t3.bailun_sku and t2.account_id=t3.bailun_account_id
where t1.platform_type in ('Ebay','FBA','Amazon') and t3.has_delete=0 and t3.company_id=1 and t1.paid_time>='{start.ToString("yyyy-MM-dd")}' and t1.paid_time<'{end.AddDays(1).ToString("yyyy-MM-dd")}'", null, null, true, 6 * 60).ToList(); where t1.platform_type in ('Ebay','FBA','Amazon') and t3.has_delete=0 and t3.company_id=1 and t1.paid_time>='{start.ToString("yyyy-MM-dd")}' and t1.paid_time<'{end.AddDays(1).ToString("yyyy-MM-dd")}'", null, null, true, 6 * 60).ToList();
...@@ -111,7 +111,7 @@ namespace Bailun.DC.DailyItemNoProfitRate ...@@ -111,7 +111,7 @@ namespace Bailun.DC.DailyItemNoProfitRate
var index = 1; var index = 1;
foreach (var item in listBaseOrder) foreach (var item in listBaseOrder)
{ {
str += $"('{item.day.ToString("yyyy-MM-dd")}',{item.order_sku_id},'{item.bailun_order_id}','{item.origin_order_id}','{item.item_id}','{item.platform_sku}',{item.platform_sku_quantity_ordered},{item.count},'{item.bailun_sku}','{item.paid_time.ToString("yyyy-MM-dd HH:mm:ss")}',{item.amount_sales},{item.cost_product},{item.cost_platform_fee},{item.cost_paypal_fee},{item.cost_fba_fee},{item.cost_first},{item.cost_logistics},{item.cost_handle_platform},{item.cost_handle_bailun},'{item.warehouse_code}','{item.shipping_status}','{item.seller_order_exchange_rate}','{item.platform_type}','{item.website}','{item.bailun_account_id}'),"; str += $"('{end.ToString("yyyy-MM-dd")}',{item.order_sku_id},'{item.bailun_order_id}','{item.origin_order_id}','{item.item_id}','{item.platform_sku}',{item.platform_sku_quantity_ordered},{item.count},'{item.bailun_sku}','{item.paid_time.ToString("yyyy-MM-dd HH:mm:ss")}',{item.amount_sales},{item.cost_product},{item.cost_platform_fee},{item.cost_paypal_fee},{item.cost_fba_fee},{item.cost_first},{item.cost_logistics},{item.cost_handle_platform},{item.cost_handle_bailun},'{item.warehouse_code}','{item.shipping_status}','{item.seller_order_exchange_rate}','{item.platform_type}','{item.website}','{item.bailun_account_id}'),";
if (index % 1000 == 0 || index == list.Count) if (index % 1000 == 0 || index == list.Count)
{ {
//保存数据 //保存数据
......
...@@ -5257,6 +5257,7 @@ group by currency"; ...@@ -5257,6 +5257,7 @@ group by currency";
cn.Open(); cn.Open();
} }
var sql_update = "update dc_month_sales_profit set ";
var obj = cn.QueryFirstOrDefault<dc_month_sales_profit>("select * from dc_month_sales_profit where isedit=1 and month='" + m.month + "'"); var obj = cn.QueryFirstOrDefault<dc_month_sales_profit>("select * from dc_month_sales_profit where isedit=1 and month='" + m.month + "'");
if(obj==null) if(obj==null)
...@@ -5325,19 +5326,17 @@ group by currency"; ...@@ -5325,19 +5326,17 @@ group by currency";
#region 赋值 #region 赋值
if (m.amount_sales.HasValue)
{
obj.amount_sales = m.amount_sales.Value;
}
if(m.amount_sales_jingyou.HasValue) if(m.amount_sales_jingyou.HasValue)
{ {
obj.amount_sales_jingyou = m.amount_sales_jingyou.Value; obj.amount_sales_jingyou = m.amount_sales_jingyou.Value;
sql_update += " amount_sales_jingyou=" + obj.amount_sales_jingyou;
} }
if(m.amount_sales_dianzi.HasValue) if(m.amount_sales_dianzi.HasValue)
{ {
obj.amount_sales_dianzi = m.amount_sales_dianzi.Value; obj.amount_sales_dianzi = m.amount_sales_dianzi.Value;
sql_update += " amount_sales_dianzi=" + obj.amount_sales_dianzi;
} }
if(m.amount_sales_jiaju.HasValue) if(m.amount_sales_jiaju.HasValue)
...@@ -5359,11 +5358,7 @@ group by currency"; ...@@ -5359,11 +5358,7 @@ group by currency";
{ {
obj.amount_sales_other = m.amount_sales_other.Value; obj.amount_sales_other = m.amount_sales_other.Value;
} }
if(m.cost.HasValue)
{
obj.cost = m.cost.Value;
}
if(m.cost_jingyou.HasValue) if(m.cost_jingyou.HasValue)
{ {
...@@ -5408,26 +5403,25 @@ group by currency"; ...@@ -5408,26 +5403,25 @@ group by currency";
if(m.fee_logistics_direct.HasValue) if(m.fee_logistics_direct.HasValue)
{ {
obj.fee_logistics_direct = m.fee_logistics_direct.Value; obj.fee_logistics_direct = m.fee_logistics_direct.Value;
sql_update += " fee_logistics_direct=" + obj.fee_logistics_direct;
} }
if(m.fee_logistics_first.HasValue) if(m.fee_logistics_first.HasValue)
{ {
obj.fee_logistics_first = m.fee_logistics_first.Value; obj.fee_logistics_first = m.fee_logistics_first.Value;
sql_update += " fee_logistics_first=" + obj.fee_logistics_first;
} }
if(m.fee_logistics_tail.HasValue) if(m.fee_logistics_tail.HasValue)
{ {
obj.fee_logistics_tail = m.fee_logistics_tail.Value; obj.fee_logistics_tail = m.fee_logistics_tail.Value;
} sql_update += " fee_logistics_tail=" + obj.fee_logistics_tail;
if(m.fee_logistics_storage.HasValue)
{
obj.fee_logistics_storage = m.fee_logistics_storage.Value;
} }
if(m.fee_paycash_sales.HasValue) if(m.fee_paycash_sales.HasValue)
{ {
obj.fee_paycash_sales = m.fee_paycash_sales.Value; obj.fee_paycash_sales = m.fee_paycash_sales.Value;
sql_update += " fee_paycash_sales=" + obj.fee_paycash_sales;
} }
if(m.fee_platform.HasValue) if(m.fee_platform.HasValue)
...@@ -5435,10 +5429,6 @@ group by currency"; ...@@ -5435,10 +5429,6 @@ group by currency";
obj.fee_platform = m.fee_platform.Value; obj.fee_platform = m.fee_platform.Value;
} }
if(m.fee_platform_and_refund.HasValue)
{
obj.fee_platform_and_refund = m.fee_platform_and_refund.Value;
}
if(m.fee_refund.HasValue) if(m.fee_refund.HasValue)
...@@ -5446,10 +5436,6 @@ group by currency"; ...@@ -5446,10 +5436,6 @@ group by currency";
obj.fee_refund = m.fee_refund.Value; obj.fee_refund = m.fee_refund.Value;
} }
if(m.fee_sales_count.HasValue)
{
obj.fee_sales_count = m.fee_sales_count.Value;
}
if(m.fee_storage.HasValue) if(m.fee_storage.HasValue)
{ {
...@@ -5486,10 +5472,6 @@ group by currency"; ...@@ -5486,10 +5472,6 @@ group by currency";
obj.managercost_chengpincang = m.managercost_chengpincang.Value; obj.managercost_chengpincang = m.managercost_chengpincang.Value;
} }
if(m.managercost_count.HasValue)
{
obj.managercost_count = m.managercost_count.Value;
}
if(m.managercost_xinhuilan.HasValue) if(m.managercost_xinhuilan.HasValue)
{ {
...@@ -5516,65 +5498,77 @@ group by currency"; ...@@ -5516,65 +5498,77 @@ group by currency";
obj.pay_non_operating = m.pay_non_operating.Value; obj.pay_non_operating = m.pay_non_operating.Value;
} }
if(m.profit.HasValue)
{
obj.profit = m.profit.Value;
}
if(m.profit_balance.HasValue)
{
obj.profit_balance = m.profit_balance.Value;
}
//销售额=家居用品类+服装类+电子产品类+精油类+美容美甲类+其他 //销售额=家居用品类+服装类+电子产品类+精油类+美容美甲类+其他
obj.amount_sales = obj.amount_sales_dianzi + obj.amount_sales_fuzhuang + obj.amount_sales_jiaju + obj.amount_sales_jingyou + obj.amount_sales_meirongmj+obj.amount_sales_other; obj.amount_sales = obj.amount_sales_dianzi + obj.amount_sales_fuzhuang + obj.amount_sales_jiaju + obj.amount_sales_jingyou + obj.amount_sales_meirongmj+obj.amount_sales_other;
sql_update += " ,amount_sales=" + obj.amount_sales;
//产品成本=家居用品类+服装类+电子产品类+精油类+美容美甲类+其他类型成本 //产品成本=家居用品类+服装类+电子产品类+精油类+美容美甲类+其他类型成本
obj.cost = obj.cost_dianzi + obj.cost_fuzhuang + obj.cost_jiaju + obj.cost_jingyou + obj.cost_meirongmj+obj.cost_other; obj.cost = obj.cost_dianzi + obj.cost_fuzhuang + obj.cost_jiaju + obj.cost_jingyou + obj.cost_meirongmj+obj.cost_other;
sql_update += " ,cost=" + obj.cost;
//平台扣费及退款 //平台扣费及退款
obj.fee_platform_and_refund = obj.fee_platform + obj.fee_fba + obj.fee_refund; obj.fee_platform_and_refund = obj.fee_platform + obj.fee_fba + obj.fee_refund;
sql_update += " ,fee_platform_and_refund=" + obj.fee_platform_and_refund;
//物流仓储费用 = 头程运输+直邮物流费+海外仓仓储及其他费用 //物流仓储费用 = 头程运输+直邮物流费+海外仓仓储及其他费用
obj.fee_logistics_storage = obj.fee_logistics_first + obj.fee_logistics_direct + obj.fee_storage; obj.fee_logistics_storage = obj.fee_logistics_first + obj.fee_logistics_direct + obj.fee_storage;
sql_update += " ,fee_logistics_storage=" + obj.fee_logistics_storage;
//销售费用合计=平台扣费及退款+物流仓储费用+付现销售费用 //销售费用合计=平台扣费及退款+物流仓储费用+付现销售费用
obj.fee_sales_count = obj.fee_platform_and_refund + obj.fee_logistics_storage + obj.fee_paycash_sales; obj.fee_sales_count = obj.fee_platform_and_refund + obj.fee_logistics_storage + obj.fee_paycash_sales;
sql_update += " ,fee_sales_count=" + obj.fee_sales_count;
//销售利润=销售额-产品成本-销售费用合计 //销售利润=销售额-产品成本-销售费用合计
obj.profit_sales = obj.amount_sales - obj.cost - obj.fee_sales_count; obj.profit_sales = obj.amount_sales - obj.cost - obj.fee_sales_count;
sql_update += " ,profit_sales=" + obj.profit_sales;
//销售毛利率=销售利润/销售额 //销售毛利率=销售利润/销售额
obj.rate_profit_sales = obj.amount_sales > 0 ? obj.profit_sales / obj.amount_sales : 0; obj.rate_profit_sales = obj.amount_sales > 0 ? obj.profit_sales / obj.amount_sales : 0;
sql_update += " ,rate_profit_sales=" + obj.rate_profit_sales;
//管理成本=香港百伦+广州百伦+美容美甲店+杨杉+信荟蓝+成品仓+迪致+广州美甲生产仓 //管理成本=香港百伦+广州百伦+美容美甲店+杨杉+信荟蓝+成品仓+迪致+广州美甲生产仓
obj.managercost_count = obj.managecost_bl_gz + obj.managecost_bl_xg + obj.managecost_meijia + obj.managercost_chengpincang + obj.managercost_xinhuilan + obj.managercost_yangshan+obj.managercost_dizhi+obj.managercost_meijiashengchan; obj.managercost_count = obj.managecost_bl_gz + obj.managecost_bl_xg + obj.managecost_meijia + obj.managercost_chengpincang + obj.managercost_xinhuilan + obj.managercost_yangshan+obj.managercost_dizhi+obj.managercost_meijiashengchan;
sql_update += " ,managercost_count=" + obj.managercost_count;
//营业利润=销售利润-管理成本合计-财务费用 //营业利润=销售利润-管理成本合计-财务费用
obj.profit = obj.profit_sales - obj.managercost_count - obj.fee_finance; obj.profit = obj.profit_sales - obj.managercost_count - obj.fee_finance;
sql_update += " ,profit=" + obj.profit;
//营业毛利率=营业利润/销售额 //营业毛利率=营业利润/销售额
obj.rate_profit = obj.amount_sales > 0 ? obj.profit / obj.amount_sales : 0; obj.rate_profit = obj.amount_sales > 0 ? obj.profit / obj.amount_sales : 0;
sql_update += " ,rate_profit=" + obj.rate_profit;
//实际利润=营业利润+其他收入+营业外收入-营业外支出 //实际利润=营业利润+其他收入+营业外收入-营业外支出
obj.actual_profit = obj.profit + obj.incoming_other + obj.incoming_non_operating - obj.pay_non_operating; obj.actual_profit = obj.profit + obj.incoming_other + obj.incoming_non_operating - obj.pay_non_operating;
sql_update += " ,actual_profit=" + obj.actual_profit;
//利润结余=实际利润-分红 //利润结余=实际利润-分红
obj.profit_balance = obj.actual_profit - obj.dividend; obj.profit_balance = obj.actual_profit - obj.dividend;
sql_update += " ,profit_balance=" + obj.profit_balance;
//净利率 = 利润结余/销售额 //净利率 = 利润结余/销售额
obj.rate_profit_actual = obj.amount_sales > 0 ? obj.profit_balance / obj.amount_sales : 0; obj.rate_profit_actual = obj.amount_sales > 0 ? obj.profit_balance / obj.amount_sales : 0;
sql_update += " ,rate_profit_actual=" + obj.rate_profit_actual;
obj.lastupdatetime = DateTime.Now;
obj.lastupdateuserid = uid;
obj.lastupdateusername = username;
sql_update += $" ,lastupdatetime='{obj.lastupdatetime.ToString("yyyy-MM-dd HH:mm:ss")}',lastupdateuserid={obj.lastupdateuserid},lastupdateusername='{obj.lastupdateusername}'";
sql_update += " where id="+obj.id;
#endregion #endregion
if (obj.id>0) if (obj.id>0)
{ {
var result = cn.Update<dc_month_sales_profit>(obj); var result = cn.Update(obj);
return result > 0 ? "" : "更新失败,请重试"; return result > 0 ? "" : "更新失败,请重试";
} }
else else
{ {
var result = cn.Insert<dc_month_sales_profit>(obj); var result = cn.Insert(obj);
return (result ?? 0) > 0 ? "" : "编辑失败"; return (result ?? 0) > 0 ? "" : "编辑失败";
} }
......
...@@ -119,8 +119,8 @@ ...@@ -119,8 +119,8 @@
if (objEdit != undefined) { if (objEdit != undefined) {
for (var a in objEdit) { for (var a in objEdit) {
if (a == col.item2) { if (a == col.item2) {
row += '<td>' + objEdit[a] + (col.item3==1?"":('<a href="javascript:;" onclick="EditFee(\''+col.item1+'\',\'' + col.item2 + '\',' + objEdit[a] + ',\'' + objData.month + '\')">编辑</a>'))+'</td>'; row += '<td>' + objEdit[a].replace(/,/g, '') + (col.item3 == 1 ? "" : ('<a href="javascript:;" onclick="EditFee(\'' + col.item1 + '\',\'' + col.item2 + '\',' + objEdit[a].replace(/,/g, '') + ',\'' + objData.month + '\')">编辑</a>'))+'</td>';
count += parseFloat(objEdit[a].replace(/,/g, '')); //count += parseFloat(objEdit[a].replace(/,/g, ''));
continue; continue;
} }
} }
...@@ -182,7 +182,7 @@ ...@@ -182,7 +182,7 @@
}); });
} }
function Save(col, val,mon) { function Save(col, val, mon) {
$.submit({ $.submit({
url: '@Url.Content("~/Reports/Finance/SaveMonthSaleProfitNew")', url: '@Url.Content("~/Reports/Finance/SaveMonthSaleProfitNew")',
paramData: 'month=' + mon+'&'+col+'='+val, paramData: 'month=' + mon+'&'+col+'='+val,
......
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