Commit 7836d408 by guanzhenshan

增加新的月销售利润报表服务公式

parent 5c3fe7d8
...@@ -7,29 +7,29 @@ namespace Bailun.DC.DailyPlatformReceivable ...@@ -7,29 +7,29 @@ namespace Bailun.DC.DailyPlatformReceivable
{ {
class Program class Program
{ {
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();
} //}
//static void Main(string[] args) static void Main(string[] args)
//{ {
// var _services = new Services(); var _services = new Services();
// var start = DateTime.Parse("2020-04-01"); var start = DateTime.Parse("2020-11-30");
// while (start.AddDays(1) < DateTime.Now) while (start.AddDays(1) < DateTime.Now)
// { {
// Console.WriteLine(start); Console.WriteLine(start);
// _services.Init(start); _services.Init(start);
// start = start.AddDays(1); start = start.AddDays(1);
// } }
//} }
} }
} }
...@@ -22,8 +22,10 @@ namespace Bailun.DC.DailySemiPurchaseSellStock ...@@ -22,8 +22,10 @@ namespace Bailun.DC.DailySemiPurchaseSellStock
{ {
var _services = new Services(); var _services = new Services();
var start = DateTime.Parse("2020-10-24"); var start = DateTime.Parse("2020-11-26");
//_services.Init(start); _services.Init(start);
return;
while (start.AddDays(1) < DateTime.Now) while (start.AddDays(1) < DateTime.Now)
{ {
Console.WriteLine(start); Console.WriteLine(start);
......
...@@ -565,5 +565,15 @@ namespace Bailun.DC.Models.Orders ...@@ -565,5 +565,15 @@ namespace Bailun.DC.Models.Orders
/// sku来源 /// sku来源
/// </summary> /// </summary>
public int source { get; set; } public int source { get; set; }
/// <summary>
/// 财务分类
/// </summary>
public string financecategoryname { get; set; }
/// <summary>
/// 物流费--物流商API获取
/// </summary>
public decimal total_fee { get; set; }
} }
} }
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models
{
/// <summary>
/// 预计销售利润表
/// </summary>
public class dc_month_sales_profit
{
/// <summary>
/// auto_increment
/// </summary>
public int id { get; set; }
/// <summary>
/// 月份
/// </summary>
public string month { get; set; }
/// <summary>
/// 总销售额
/// </summary>
public decimal amount_sales { get; set; }
/// <summary>
/// 销售额-精油
/// </summary>
public decimal amount_sales_jingyou { get; set; }
/// <summary>
/// 销售额-电子
/// </summary>
public decimal amount_sales_dianzi { get; set; }
/// <summary>
/// 销售额-家居产品
/// </summary>
public decimal amount_sales_jiaju { get; set; }
/// <summary>
/// 销售额-美容美甲产品
/// </summary>
public decimal amount_sales_meirongmj { get; set; }
/// <summary>
/// 销售额-服装
/// </summary>
public decimal amount_sales_fuzhuang { get; set; }
/// <summary>
/// 销售额-其他
/// </summary>
public decimal amount_sales_other { get; set; }
/// <summary>
/// 总成本
/// </summary>
public decimal cost { get; set; }
/// <summary>
/// 精油成本
/// </summary>
public decimal cost_jingyou { get; set; }
/// <summary>
/// 电子成本
/// </summary>
public decimal cost_dianzi { get; set; }
/// <summary>
/// 家居成本
/// </summary>
public decimal cost_jiaju { get; set; }
/// <summary>
/// 美容美甲产品成本
/// </summary>
public decimal cost_meirongmj { get; set; }
/// <summary>
/// 服装成本
/// </summary>
public decimal cost_fuzhuang { get; set; }
/// <summary>
/// 其他成本
/// </summary>
public decimal cost_other { get; set; }
/// <summary>
/// 平台扣费及退款
/// </summary>
public decimal fee_platform_and_refund { get; set; }
/// <summary>
/// 平台费
/// </summary>
public decimal fee_platform { get; set; }
/// <summary>
/// FBA费
/// </summary>
public decimal fee_fba { get; set; }
/// <summary>
/// 平台退款
/// </summary>
public decimal fee_refund { get; set; }
/// <summary>
/// 平台提现回款
/// </summary>
public decimal amount_withdraw { get; set; }
/// <summary>
/// 物流仓储费用
/// </summary>
public decimal fee_logistics_storage { get; set; }
/// <summary>
/// 头程费
/// </summary>
public decimal fee_logistics_first { get; set; }
/// <summary>
/// 直邮物流费
/// </summary>
public decimal fee_logistics_direct { get; set; }
/// <summary>
/// 海外仓仓储及其他费用
/// </summary>
public decimal fee_storage { get; set; }
/// <summary>
/// 付现销售费用
/// </summary>
public decimal fee_paycash_sales { get; set; }
/// <summary>
/// 销售费用合计
/// </summary>
public decimal fee_sales_count { get; set; }
/// <summary>
/// 销售利润
/// </summary>
public decimal profit_sales { get; set; }
/// <summary>
/// 销售毛利率
/// </summary>
public decimal rate_profit_sales { get; set; }
/// <summary>
/// 管理成本-香港百伦
/// </summary>
public decimal managecost_bl_xg { get; set; }
/// <summary>
/// 管理成本-广州百伦
/// </summary>
public decimal managecost_bl_gz { get; set; }
/// <summary>
/// 管理成本-美容美甲店
/// </summary>
public decimal managecost_meijia { get; set; }
/// <summary>
/// 管理成本-杨杉
/// </summary>
public decimal managercost_yangshan { get; set; }
/// <summary>
/// 管理成本-成品仓
/// </summary>
public decimal managercost_chengpincang { get; set; }
/// <summary>
/// 管理成本-信荟蓝
/// </summary>
public decimal managercost_xinhuilan { get; set; }
/// <summary>
/// 管理成本合计
/// </summary>
public decimal managercost_count { get; set; }
/// <summary>
/// 财务费用
/// </summary>
public decimal fee_finance { get; set; }
/// <summary>
/// 营业利润
/// </summary>
public decimal profit { get; set; }
/// <summary>
/// 营业毛利率
/// </summary>
public decimal rate_profit { get; set; }
/// <summary>
/// 加:其他收入
/// </summary>
public decimal incoming_other { get; set; }
/// <summary>
/// 加:营业外收入
/// </summary>
public decimal incoming_non_operating { get; set; }
/// <summary>
/// 减:营业外支出
/// </summary>
public decimal pay_non_operating { get; set; }
/// <summary>
/// 实际利润
/// </summary>
public decimal actual_profit { get; set; }
/// <summary>
/// 减:分红
/// </summary>
public decimal dividend { get; set; }
/// <summary>
/// 利润结余
/// </summary>
public decimal profit_balance { get; set; }
/// <summary>
/// 净利润率
/// </summary>
public decimal rate_profit_actual { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime createtime { get; set; }
/// <summary>
/// 更新人
/// </summary>
public int lastupdateuserid { get; set; }
/// <summary>
/// 更新人
/// </summary>
public string lastupdateusername { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime lastupdatetime { get; set; }
/// <summary>
/// 是否编辑的版本,1:是,0:否
/// </summary>
public int isedit { get; set; }
}
}
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Bailun.DC.Common\Bailun.DC.Common.csproj" /> <ProjectReference Include="..\Bailun.DC.Common\Bailun.DC.Common.csproj" />
<ProjectReference Include="..\Bailun.DC.Models\Bailun.DC.Models.csproj" /> <ProjectReference Include="..\Bailun.DC.Models\Bailun.DC.Models.csproj" />
<ProjectReference Include="..\Bailun.DC.Services\Bailun.DC.Services.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>
...@@ -22,8 +22,8 @@ namespace Bailun.DC.MonthSaleProfit ...@@ -22,8 +22,8 @@ namespace Bailun.DC.MonthSaleProfit
//{ //{
// var _services = new Services(); // var _services = new Services();
// var start = DateTime.Parse("2019-11-01"); // var start = DateTime.Parse("2020-11-01");
// _services.Update(start); // _services.Init(start);
//} //}
} }
} }
...@@ -8,6 +8,7 @@ using Bailun.DC.Common; ...@@ -8,6 +8,7 @@ using Bailun.DC.Common;
using System.Threading; using System.Threading;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Linq;
namespace Bailun.DC.MonthSaleProfit namespace Bailun.DC.MonthSaleProfit
{ {
...@@ -425,5 +426,235 @@ namespace Bailun.DC.MonthSaleProfit ...@@ -425,5 +426,235 @@ namespace Bailun.DC.MonthSaleProfit
} }
} }
/// <summary>
/// 新月销售利润统计报表
/// </summary>
/// <param name="day">每月1日</param>
public void InitNew(DateTime day)
{
var objOrder = new List<Models.Orders.dc_base_oms_sku>();
var objFBA = new List<Models.Orders.dc_base_oms_sku>();
var sql = "";
var m = new dc_month_sales_profit
{
amount_sales = 0,
amount_sales_dianzi = 0,
amount_sales_fuzhuang = 0,
amount_sales_jiaju = 0,
amount_sales_jingyou = 0,
amount_sales_meirongmj = 0,
actual_profit = 0,
amount_withdraw = 0,
fee_platform_and_refund = 0,
fee_fba = 0,
fee_finance = 0,
fee_logistics_direct = 0,
fee_logistics_first = 0,
fee_logistics_storage = 0,
fee_paycash_sales = 0,
fee_platform = 0,
fee_refund = 0,
fee_sales_count = 0,
fee_storage = 0,
cost_fuzhuang = 0,
cost = 0,
cost_dianzi = 0,
cost_jiaju = 0,
cost_jingyou = 0,
cost_meirongmj = 0,
createtime = DateTime.Now,
managercost_chengpincang = 0,
managercost_count = 0,
managecost_bl_gz = 0,
managecost_bl_xg = 0,
managecost_meijia = 0,
managercost_yangshan = 0,
month = day.ToString("yyyy-MM"),
dividend = 0,
incoming_non_operating = 0,
incoming_other = 0,
isedit = 0,
lastupdatetime = DateTime.Now,
lastupdateuserid = 0,
lastupdateusername = "admin",
profit_sales = 0,
pay_non_operating = 0,
rate_profit_sales = 0,
profit = 0,
profit_balance = 0,
rate_profit=0,
rate_profit_actual=0,
};
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString_read))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
sql = $@"select sum(t2.amount_sales*t1.quantity_shipped*t2.seller_order_exchange_rate) as amount_sales,sum(t2.cost_product*t1.quantity_shipped) as cost_product,sum(t2.cost_platform_fee*(if(t2.platform_type='Ebay',t2.seller_other_exchange_rate,t2.seller_order_exchange_rate))*t1.quantity_shipped) as cost_platform_fee,sum(t2.cost_paypal_fee*t2.seller_order_exchange_rate*t1.quantity_shipped) as cost_paypal_fee,sum(t2.cost_first*t1.quantity_shipped) as cost_first,sum(t2.cost_logistics*t1.quantity_shipped) as cost_logistics,sum(t2.cost_handle_platform*t1.quantity_shipped) as cost_handle_platform,t6.financecategoryname,((t2.total_fee-t2.shipping)*t2.wms_to_cny_exchange_rate*t1.quantity_shipped) as total_fee from dc_base_oms_pick t1
join dc_base_oms_sku t2 on t1.bailun_order_id = t2.bailun_order_id and t1.bailun_sku=t2.bailun_sku and t2.bailun_order_status != 'Canceled' and t2.has_scalp = 0 and ((t2.platform_type!='FBA' and t2.bailun_order_status!='CantHandle') or t2.platform_type='FBA') and t2.has_scalp = 0 and t2.has_innersale = 0 and t2.has_delete=0 and t2.company_id=1
left join dc_base_sku t5 on t2.bailun_sku=t5.bailun_sku
left join dc_base_sku_finance_category t6 on t6.bailuncategoryid=t5.bailun_category_id
where t1.has_delete=0 and t1.shipping_status = 'TotalShipping' and t1.company_id=1 and t1.shipping_time>='{day.ToString("yyyy-MM-dd")}' and t1.shipping_time<'{day.AddMonths(1).ToString("yyyy-MM-dd")}'
group by t6.financecategoryname
";
objOrder = cn.Query<Models.Orders.dc_base_oms_sku>(sql, null, null, 6 * 60).AsList();
sql = $@"select sum(amount_sales*seller_order_exchange_rate*bailun_sku_quantity_ordered) as amount_sales,sum(cost_product*bailun_sku_quantity_ordered) as cost_product,sum(cost_platform_fee*seller_order_exchange_rate*bailun_sku_quantity_ordered) as cost_platform_fee,sum(cost_first*bailun_sku_quantity_ordered) as cost_first,sum(cost_logistics*bailun_sku_quantity_ordered) as cost_logistics,sum(cost_fba_fee*seller_order_exchange_rate*bailun_sku_quantity_ordered) cost_fba_fee,t6.financecategoryname from dc_base_oms_order tb left join dc_base_sku t5 on tb.bailun_sku=t5.bailun_sku
left join dc_base_sku_finance_category t6 on t6.bailuncategoryid=t5.bailun_category_id
where tb.company_id=1 and tb.bailun_order_status!='Canceled' and ((tb.platform_type!='FBA' and tb.bailun_order_status!='CantHandle') or tb.platform_type='FBA') and tb.has_scalp=0 and tb.has_innersale=0 and tb.bailun_interception_status in ('None','Failed') and tb.platform_type='FBA' and tb.create_time>='{day.ToString("yyyy-MM-dd")}' and tb.create_time<'{day.AddMonths(1).ToString("yyyy-MM-dd")}'
group by t6.financecategoryname
";
objFBA = cn.Query<Models.Orders.dc_base_oms_sku>(sql, null, null, 6 * 60).AsList();
decimal? obj = 0;
//销售额=家居用品类+服装类+电子产品类+精油类+美容美甲类+其他
m.amount_sales_dianzi = objOrder.Where(a => a.financecategoryname == "电子产品类")?.Sum(a => a.amount_sales)??0+ objFBA.Where(a => a.financecategoryname == "电子产品类")?.Sum(a => a.amount_sales) ?? 0;
m.amount_sales_fuzhuang = objOrder.Where(a => a.financecategoryname == "服装类")?.Sum(a => a.amount_sales) ?? 0+ objFBA.Where(a => a.financecategoryname == "服装类")?.Sum(a => a.amount_sales) ?? 0;
m.amount_sales_jiaju = objOrder.Where(a => a.financecategoryname == "家居用品类")?.Sum(a => a.amount_sales) ?? 0+ objFBA.Where(a => a.financecategoryname == "家居用品类")?.Sum(a => a.amount_sales) ?? 0;
m.amount_sales_jingyou = objOrder.Where(a => a.financecategoryname == "精油类")?.Sum(a => a.amount_sales) ?? 0+ objFBA.Where(a => a.financecategoryname == "精油类")?.Sum(a => a.amount_sales) ?? 0;
m.amount_sales_meirongmj = objOrder.Where(a => a.financecategoryname == "美容美甲类")?.Sum(a => a.amount_sales) ?? 0+ objFBA.Where(a => a.financecategoryname == "美容美甲类")?.Sum(a => a.amount_sales) ?? 0;
m.amount_sales = m.amount_sales_dianzi + m.amount_sales_fuzhuang + m.amount_sales_jiaju + m.amount_sales_jingyou + m.amount_sales_meirongmj;
m.amount_sales_other = objOrder.Sum(a => a.amount_sales) + objFBA.Sum(a=>a.amount_sales) - m.amount_sales;
m.amount_sales += m.amount_sales_other;
//产品成本=家居用品类+服装类+电子产品类+精油类+美容美甲类+其他类型成本
m.cost_dianzi = objOrder.Where(a => a.financecategoryname == "电子产品类")?.Sum(a => a.cost_product) ?? 0+ objFBA.Where(a => a.financecategoryname == "电子产品类")?.Sum(a => a.cost_product) ?? 0;
m.cost_fuzhuang = objOrder.Where(a => a.financecategoryname == "服装类")?.Sum(a => a.cost_product) ?? 0+ objFBA.Where(a => a.financecategoryname == "服装类")?.Sum(a => a.cost_product) ?? 0;
m.cost_jiaju = objOrder.Where(a => a.financecategoryname == "家居用品类")?.Sum(a => a.cost_product) ?? 0+ objFBA.Where(a => a.financecategoryname == "家居用品类")?.Sum(a => a.cost_product) ?? 0;
m.cost_jingyou = objOrder.Where(a => a.financecategoryname == "精油类")?.Sum(a => a.cost_product) ?? 0+ objFBA.Where(a => a.financecategoryname == "精油类")?.Sum(a => a.cost_product) ?? 0;
m.cost_meirongmj = objOrder.Where(a => a.financecategoryname == "美容美甲类")?.Sum(a => a.cost_product) ?? 0+ objFBA.Where(a => a.financecategoryname == "美容美甲类")?.Sum(a => a.cost_product) ?? 0;
m.cost = m.cost_dianzi + m.cost_fuzhuang + m.cost_jiaju + m.cost_jingyou + m.cost_meirongmj;
m.cost_other = objOrder.Sum(a => a.cost_product) + objFBA.Sum(a => a.cost_product) - m.cost;
m.cost += m.cost_other;
//平台扣费及退款
//平台费=平台费+paypal费+处理费+广告费+上架费
m.fee_platform = objOrder.Sum(a => a.cost_platform_fee+a.cost_paypal_fee+a.cost_handle_platform) + objFBA.Sum(a => a.cost_platform_fee);
//FBA费
m.fee_fba = objFBA.Sum(a => a.cost_fba_fee);
//平台退款
sql = $@"select sum(t1.amount_refund_rmb) from dc_base_crm_refund t1 where t1.shipping_status in ('TotalShipping','PartShipping') and t1.is_deleted=0 and is_freeze=0 and t1.company_id=1 and t1.refund_time>='{day.ToString("yyyy-MM-dd")}' and t1.refund_time<'{day.AddMonths(1).ToString("yyyy-MM-dd")}' and t1.shipping_status!='UnShipping'";
obj = cn.QueryFirstOrDefault<decimal?>(sql, null, null, 2 * 60);
m.fee_refund = obj ?? 0;
//ebay上架费
sql = $@"select sum(t1.exchange_rate*t1.gross_amount)
from dc_base_finance_ebay t1
join dc_base_company_account t2 on t1.company_id=t2.company_id and t1.account_id=t2.account_id
where t1.account_entry_type in ('BuyItNowFee','CreditInsertion','FeeGalleryPlus','PrivateListing','SubscriptioneBayStores','SubscriptionSMBasic','SubscriptionSMBasicPro','SubtitleFee') and t1.bj_date>='{day.ToString("yyyy-MM-dd")}' and t1.bj_date<'{day.AddMonths(1).ToString("yyyy-MM-dd")}' and t1.company_id=1";
obj = cn.QueryFirstOrDefault<decimal?>(sql, null, null, 2 * 60);
m.fee_platform = obj ?? 0;
//广告费
//ebay
sql = $@"select sum(t1.exchange_rate*t1.gross_amount) from dc_base_finance_ebay t1
join dc_base_company_account t2 on t1.company_id=t2.company_id and t1.account_id=t2.account_id
where t1.account_entry_type in ('FeeAd') and t1.bj_date>='{day.ToString("yyyy-MM-dd")}' and t1.bj_date<'{day.AddMonths(1).ToString("yyyy-MM-dd")}' and t1.company_id=1";
obj = cn.QueryFirstOrDefault<decimal?>(sql, null, null, 2 * 60);
m.fee_platform = obj ?? 0;
//amazon
sql = $@"select sum(t1.cost*t1.exchange_rate) from dc_base_finance_amazon_ad_product t1
join dc_base_company_account t2 on t1.account_id=t2.account_id
where t1.report_date>='{day.ToString("yyyy-MM-dd")}' and t1.report_date<'{day.AddMonths(1).ToString("yyyy-MM-dd")}' and t1.company_id=1";
obj = cn.QueryFirstOrDefault<decimal?>(sql, null, null, 2 * 60);
m.fee_platform += (obj ?? 0);
//平台提现回款
sql = "";
//物流仓储费用 = 头程运输+直邮物流费+海外仓仓储及其他费用
m.fee_logistics_first = objOrder.Sum(a => a.cost_first) + objFBA.Sum(a => a.cost_first);
m.fee_logistics_direct = objOrder.Sum(a => a.cost_logistics);
m.fee_storage = objOrder.Sum(a => a.total_fee);
m.fee_logistics_storage = m.fee_logistics_first + m.fee_logistics_direct + m.fee_storage;
//利息支出
var cwurl = "http://cw.bailuntec.com/api/api/GetRepayPlanDetails?" + "BeginRepayTime=" + day.ToString("yyyy-MM-dd") + "&EndRepayTime=" + day.AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd"); ;
var listInterest = new Bailun.DC.Services.FinanceReportServices().ListInterestExpense(cwurl);
//管理成本
var list = new Bailun.DC.Services.FinanceReportServices().ListFinanceManageCost(day, day.AddMonths(1).AddDays(-1), "", "", "", 1);
//手续费
var listHandleFee = new Bailun.DC.Services.FinanceReportServices().ListFinanceHandleFee(day, day.AddMonths(1).AddDays(-1), 1);
//付现销售费用
m.fee_paycash_sales = list.Where(a => a.fee_super_type == "推广费" || a.fee_super_type == "物流费用")?.Sum(a => a.amount_rmb) ?? 0;
//销售费用合计=平台扣费及退款+物流仓储费用+付现销售费用
m.fee_sales_count = m.fee_platform_and_refund + m.fee_logistics_storage + m.fee_paycash_sales;
//销售利润=销售额-产品成本-销售费用合计
m.profit_sales = m.amount_sales - m.cost - m.fee_sales_count;
//销售毛利率=销售利润/销售额
m.rate_profit_sales = m.amount_sales > 0 ? m.profit_sales / m.amount_sales : 0;
//管理成本=香港百伦+广州百伦+美容美甲店+杨杉+信荟蓝+成品仓
m.managecost_bl_xg = list.Where(a => a.company_name.Contains("香港百伦"))?.Sum(a => a.amount_rmb)??0;
m.managecost_bl_gz = list.Where(a => a.company_name.Contains("广州百伦"))?.Sum(a => a.amount_rmb) ?? 0+listInterest?.Sum(a=>a.RepayInterestRMB)??0+listHandleFee?.Sum(a=>a.pay_money_rMB)??0;
m.managecost_meijia = list.Where(a => a.company_name.Contains("歌戈儿") || a.company_name.Contains("拉古娜") || a.company_name.Contains("迪致美容")||a.company_name.Contains("美甲生产仓"))?.Sum(a => a.amount_rmb) ?? 0;
m.managercost_chengpincang = list.Where(a => a.company_name.Contains("广州电子服装仓"))?.Sum(a => a.amount_rmb) ?? 0;
m.managercost_yangshan = list.Where(a => a.company_name.Contains("扬杉"))?.Sum(a => a.amount_rmb) ?? 0;
m.managercost_xinhuilan = list.Where(a => a.company_name.Contains("信荟蓝"))?.Sum(a => a.amount_rmb) ?? 0;
m.managercost_count = m.managecost_bl_gz + m.managecost_bl_xg + m.managecost_meijia + m.managercost_chengpincang + m.managercost_xinhuilan + m.managercost_yangshan;
//财务费用=手续费
m.fee_finance = listHandleFee?.Sum(a=>a.pay_money_rMB)??0;
//营业利润=销售利润-管理成本合计-财务费用
m.profit = m.profit_sales - m.managercost_count - m.fee_finance;
//营业毛利率=营业利润/销售额
m.rate_profit = m.amount_sales > 0 ? m.profit / m.amount_sales : 0;
//实际利润=营业利润+其他收入+营业外收入-营业外支出
m.actual_profit = m.profit + m.incoming_other + m.incoming_non_operating - m.pay_non_operating;
//利润结余=实际利润-分红
m.profit_balance = m.actual_profit - m.dividend;
//净利率 = 利润结余/销售额
m.rate_profit_actual = m.amount_sales > 0 ? m.profit_balance / m.amount_sales : 0;
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
cn.Execute("delete from dc_month_sale_profit where month='" + m.month + "'");
sql = $@"insert dc_month_sale_profit (actual_profit,amount_sale,balance_of_profit,business_profit,business_profit_rate,cost_sale,createtime,direct_manager_cost,finance_fee,handlingcharges,lastupdatetime,lastupdateuserid,lastupdateusername,ls_count,ls_head_cost,ls_oversea_storage,ls_platform_operation_fee,ls_tail_cost,manager_cost_count,manager_cost_finish_wh,manager_cost_gzbailun,manager_cost_hkbailun,manager_cost_meijiadian,month,nonbusiness_income,nonbusiness_pay,other_incoming,participation_in_profit,payfor_platform_related_fee,pt_count,pt_ebay_postingfee,pt_incoming,pt_paypal_fee,pt_platformfee,pt_platform_ad_subscribe_fee,pt_platform_logistics_fee,pt_platform_storage_fee,pt_refund_amount,sale_fee_count,sale_manager_cost,sale_profit,sale_profit_rate,manager_cost_yangshan,manager_cost_xinhuilan) values
({m.actual_profit},{m.amount_sale},{m.balance_of_profit},{m.business_profit},{m.business_profit_rate},{m.cost_sale},'{m.createtime.ToString("yyyy-MM-dd HH:mm:ss")}',{m.direct_manager_cost},{m.finance_fee},{m.handlingcharges},'{m.lastupdatetime.ToString("yyyy-MM-dd HH:mm:ss")}',{m.lastupdateuserid},'{m.lastupdateusername}',{m.ls_count},{m.ls_head_cost},{m.ls_oversea_storage},{m.ls_platform_operation_fee},{m.ls_tail_cost},{m.manager_cost_count},{m.manager_cost_finish_wh},{m.manager_cost_gzbailun},{m.manager_cost_hkbailun},{m.manager_cost_meijiadian},'{m.month}',{m.nonbusiness_income},{m.nonbusiness_pay},{m.other_incoming},{m.participation_in_profit},{m.payfor_platform_related_fee},{m.pt_count},{m.pt_ebay_postingfee},{m.pt_incoming},{m.pt_paypal_fee},{m.pt_platformfee},{m.pt_platform_ad_subscribe_fee},{m.pt_platform_logistics_fee},{m.pt_platform_storage_fee},{m.pt_refund_amount},{m.sale_fee_count},{m.sale_manager_cost},{m.sale_profit},{m.sale_profit_rate},{m.manager_cost_yangshan},{m.manager_cost_xinhuilan})";
cn.Execute(sql);
}
}
} }
} }
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