Commit 9a78cb33 by guanzhenshan

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

parent 917aa141
......@@ -10,18 +10,18 @@ namespace Bailun.DC.DailyItemNoProfitRate
static async Task Main(string[] args)
{
Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Services>();
});
//Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
//var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
//{
// services.AddHostedService<Services>();
//});
await builder.RunConsoleAsync();
//await builder.RunConsoleAsync();
//var _service = new Services();
//var day = DateTime.Parse(DateTime.Now.AddDays(-2).ToShortDateString());
//_service.Init(day.AddDays(-20), day);
//_service.OneDayItemNoProfitRate(day.AddDays(-1), day);
var _service = new Services();
var day = DateTime.Parse(DateTime.Now.AddDays(-1).ToShortDateString());
_service.Init(day.AddDays(-20), day);
_service.OneDayItemNoProfitRate(day.AddDays(-1), day);
}
}
}
......@@ -84,7 +84,7 @@ namespace Bailun.DC.DailyItemNoProfitRate
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_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();
......@@ -111,7 +111,7 @@ namespace Bailun.DC.DailyItemNoProfitRate
var index = 1;
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)
{
//保存数据
......
......@@ -5257,6 +5257,7 @@ group by currency";
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 + "'");
if(obj==null)
......@@ -5325,19 +5326,17 @@ group by currency";
#region 赋值
if (m.amount_sales.HasValue)
{
obj.amount_sales = m.amount_sales.Value;
}
if(m.amount_sales_jingyou.HasValue)
{
obj.amount_sales_jingyou = m.amount_sales_jingyou.Value;
sql_update += " amount_sales_jingyou=" + obj.amount_sales_jingyou;
}
if(m.amount_sales_dianzi.HasValue)
{
obj.amount_sales_dianzi = m.amount_sales_dianzi.Value;
sql_update += " amount_sales_dianzi=" + obj.amount_sales_dianzi;
}
if(m.amount_sales_jiaju.HasValue)
......@@ -5359,11 +5358,7 @@ group by currency";
{
obj.amount_sales_other = m.amount_sales_other.Value;
}
if(m.cost.HasValue)
{
obj.cost = m.cost.Value;
}
if(m.cost_jingyou.HasValue)
{
......@@ -5408,26 +5403,25 @@ group by currency";
if(m.fee_logistics_direct.HasValue)
{
obj.fee_logistics_direct = m.fee_logistics_direct.Value;
sql_update += " fee_logistics_direct=" + obj.fee_logistics_direct;
}
if(m.fee_logistics_first.HasValue)
{
obj.fee_logistics_first = m.fee_logistics_first.Value;
sql_update += " fee_logistics_first=" + obj.fee_logistics_first;
}
if(m.fee_logistics_tail.HasValue)
{
obj.fee_logistics_tail = m.fee_logistics_tail.Value;
}
if(m.fee_logistics_storage.HasValue)
{
obj.fee_logistics_storage = m.fee_logistics_storage.Value;
sql_update += " fee_logistics_tail=" + obj.fee_logistics_tail;
}
if(m.fee_paycash_sales.HasValue)
{
obj.fee_paycash_sales = m.fee_paycash_sales.Value;
sql_update += " fee_paycash_sales=" + obj.fee_paycash_sales;
}
if(m.fee_platform.HasValue)
......@@ -5435,10 +5429,6 @@ group by currency";
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)
......@@ -5446,10 +5436,6 @@ group by currency";
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)
{
......@@ -5486,10 +5472,6 @@ group by currency";
obj.managercost_chengpincang = m.managercost_chengpincang.Value;
}
if(m.managercost_count.HasValue)
{
obj.managercost_count = m.managercost_count.Value;
}
if(m.managercost_xinhuilan.HasValue)
{
......@@ -5516,65 +5498,77 @@ group by currency";
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;
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;
sql_update += " ,cost=" + obj.cost;
//平台扣费及退款
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;
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;
sql_update += " ,fee_sales_count=" + 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;
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;
sql_update += " ,managercost_count=" + obj.managercost_count;
//营业利润=销售利润-管理成本合计-财务费用
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;
sql_update += " ,rate_profit=" + obj.rate_profit;
//实际利润=营业利润+其他收入+营业外收入-营业外支出
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;
sql_update += " ,profit_balance=" + obj.profit_balance;
//净利率 = 利润结余/销售额
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
if (obj.id>0)
{
var result = cn.Update<dc_month_sales_profit>(obj);
var result = cn.Update(obj);
return result > 0 ? "" : "更新失败,请重试";
}
else
{
var result = cn.Insert<dc_month_sales_profit>(obj);
var result = cn.Insert(obj);
return (result ?? 0) > 0 ? "" : "编辑失败";
}
......
......@@ -119,8 +119,8 @@
if (objEdit != undefined) {
for (var a in objEdit) {
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>';
count += parseFloat(objEdit[a].replace(/,/g, ''));
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, ''));
continue;
}
}
......@@ -182,7 +182,7 @@
});
}
function Save(col, val,mon) {
function Save(col, val, mon) {
$.submit({
url: '@Url.Content("~/Reports/Finance/SaveMonthSaleProfitNew")',
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