Commit ed6d8359 by guanzhenshan

1

parent 7836d408
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.MonthSaleProfit.Models
{
public class mOrder
{
public decimal? amount_sales { get; set; }
public decimal? cost_product { get; set; }
public decimal? cost_platform_fee { get; set; }
public decimal? cost_paypal_fee { get; set; }
public decimal? cost_first { get; set; }
public decimal? cost_logistics { get; set; }
public decimal? cost_handle_platform { get; set; }
public string financecategoryname { get; set; }
public decimal? total_fee { get; set; }
public decimal? cost_fba_fee { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.MonthSaleProfit.Models
{
public class response_Exchange
{
public decimal rate { get; set; }
public string toCurName { get; set; }
public string createTime { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.MonthSaleProfit.Models
{
public class response_WithDraw
{
public int total { get; set; }
public List<response_WithDrawData> list { get; set; }
}
public class response_WithDrawData
{
/// <summary>
/// 币种
/// </summary>
public string Currency { get; set; }
/// <summary>
/// 到账金额
/// </summary>
public decimal DaozhangMoney { get; set; }
/// <summary>
/// 手续费
/// </summary>
public decimal ServiceCharge { get; set; }
}
}
......@@ -7,23 +7,23 @@ namespace Bailun.DC.MonthSaleProfit
{
class Program
{
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>();
});
await builder.RunConsoleAsync();
}
//static void Main(string[] args)
//static async Task Main(string[] args)
//{
// var _services = new Services();
// Console.WriteLine("启动服务 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
// var builder = new HostBuilder().ConfigureServices((hostContext, services) =>
// {
// services.AddHostedService<Services>();
// });
// var start = DateTime.Parse("2020-11-01");
// _services.Init(start);
// await builder.RunConsoleAsync();
//}
static void Main(string[] args)
{
var _services = new Services();
var start = DateTime.Parse("2020-11-01");
_services.InitNew(start);
}
}
}
......@@ -38,7 +38,7 @@ namespace Bailun.DC.MonthSaleProfit
Console.WriteLine("任务运行完成 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
else if (now.Hour%6==0 && now.Minute == 59)
else if (now.Hour % 6 == 0 && now.Minute == 59)
{
Console.WriteLine("开始启动更新服务" + DateTime.Now);
Update(DateTime.Now);
......@@ -58,8 +58,8 @@ namespace Bailun.DC.MonthSaleProfit
/// <param name="day"></param>
public void Init(DateTime day)
{
var objOrder = new Models.Orders.dc_base_oms_order();
var objFBA = new Models.Orders.dc_base_oms_order();
var objOrder = new DC.Models.Orders.dc_base_oms_order();
var objFBA = new DC.Models.Orders.dc_base_oms_order();
var sql = "";
var m = new dc_month_sale_profit
......@@ -115,7 +115,7 @@ namespace Bailun.DC.MonthSaleProfit
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString_read))
{
if(cn.State== System.Data.ConnectionState.Closed)
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
......@@ -124,10 +124,10 @@ namespace Bailun.DC.MonthSaleProfit
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
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")}'";
objOrder = cn.QueryFirstOrDefault<Models.Orders.dc_base_oms_order>(sql, null, null, 6 * 60);
objOrder = cn.QueryFirstOrDefault<DC.Models.Orders.dc_base_oms_order>(sql, null, null, 6 * 60);
sql = $@"select sum(amount_sales*seller_order_exchange_rate) as amount_sales,sum(cost_product) as cost_product,sum(cost_platform_fee*seller_order_exchange_rate) as cost_platform_fee,sum(cost_first) as cost_first,sum(cost_logistics) as cost_logistics,sum(cost_fba_fee*seller_order_exchange_rate) cost_fba_fee from dc_base_oms_order tb 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")}'";
objFBA = cn.QueryFirstOrDefault<Models.Orders.dc_base_oms_order>(sql, null, null, 6 * 60);
objFBA = cn.QueryFirstOrDefault<DC.Models.Orders.dc_base_oms_order>(sql, null, null, 6 * 60);
decimal? obj = 0;
......@@ -263,7 +263,7 @@ namespace Bailun.DC.MonthSaleProfit
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString_read))
{
if(cn.State== System.Data.ConnectionState.Closed)
if (cn.State == System.Data.ConnectionState.Closed)
{
cn.Open();
}
......@@ -275,8 +275,8 @@ namespace Bailun.DC.MonthSaleProfit
{
var start = DateTime.Parse(m.month + "-01");
var objOrder = new Models.Orders.dc_base_oms_order();
var objFBA = new Models.Orders.dc_base_oms_order();
var objOrder = new DC.Models.Orders.dc_base_oms_order();
var objFBA = new DC.Models.Orders.dc_base_oms_order();
var sql = "";
......@@ -291,10 +291,10 @@ namespace Bailun.DC.MonthSaleProfit
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
where t1.has_delete=0 and t1.shipping_status = 'TotalShipping' and t1.company_id=1 and t1.shipping_time>='{start.ToString("yyyy-MM-dd")}' and t1.shipping_time<'{start.AddMonths(1).ToString("yyyy-MM-dd")}'";
objOrder = cn.QueryFirstOrDefault<Models.Orders.dc_base_oms_order>(sql, null, null, 6 * 60);
objOrder = cn.QueryFirstOrDefault<DC.Models.Orders.dc_base_oms_order>(sql, null, null, 6 * 60);
sql = $@"select sum(amount_sales*seller_order_exchange_rate) as amount_sales,sum(cost_product) as cost_product,sum(cost_platform_fee*seller_order_exchange_rate) as cost_platform_fee,sum(cost_first) as cost_first,sum(cost_logistics) as cost_logistics,sum(cost_fba_fee*seller_order_exchange_rate) cost_fba_fee from dc_base_oms_order tb 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>='{start.ToString("yyyy-MM-dd")}' and tb.create_time<'{start.AddMonths(1).ToString("yyyy-MM-dd")}'";
objFBA = cn.QueryFirstOrDefault<Models.Orders.dc_base_oms_order>(sql, null, null, 6 * 60);
objFBA = cn.QueryFirstOrDefault<DC.Models.Orders.dc_base_oms_order>(sql, null, null, 6 * 60);
decimal? obj = 0;
......@@ -434,8 +434,8 @@ namespace Bailun.DC.MonthSaleProfit
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 objOrder = new List<Models.mOrder>();
var objFBA = new List<Models.mOrder>();
var sql = "";
var m = new dc_month_sales_profit
......@@ -489,8 +489,8 @@ namespace Bailun.DC.MonthSaleProfit
profit = 0,
profit_balance = 0,
rate_profit=0,
rate_profit_actual=0,
rate_profit = 0,
rate_profit_actual = 0,
};
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString_read))
......@@ -500,7 +500,7 @@ namespace Bailun.DC.MonthSaleProfit
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
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,if(t6.financecategoryname is null,'',t6.financecategoryname) as 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
......@@ -508,45 +508,45 @@ namespace Bailun.DC.MonthSaleProfit
group by t6.financecategoryname
";
objOrder = cn.Query<Models.Orders.dc_base_oms_sku>(sql, null, null, 6 * 60).AsList();
objOrder = cn.Query<Models.mOrder>(sql, null, null, 6 * 60).ToList();
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
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,if(t6.financecategoryname is null,'',t6.financecategoryname) as 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();
objFBA = cn.Query<Models.mOrder>(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_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_other = objOrder.Sum(a => a.amount_sales ?? 0) + objFBA.Sum(a => a.amount_sales ?? 0) - 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_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_other = objOrder.Sum(a => a.cost_product ?? 0) + objFBA.Sum(a => a.cost_product ?? 0) - 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);
m.fee_platform = objOrder.Sum(a => a.cost_platform_fee ?? 0 + a.cost_paypal_fee ?? 0 + a.cost_handle_platform ?? 0) + objFBA.Sum(a => a.cost_platform_fee ?? 0);
//FBA费
m.fee_fba = objFBA.Sum(a => a.cost_fba_fee);
m.fee_fba = objFBA.Sum(a => a.cost_fba_fee ?? 0);
//平台退款
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'";
......@@ -577,13 +577,13 @@ namespace Bailun.DC.MonthSaleProfit
m.fee_platform += (obj ?? 0);
//平台提现回款
sql = "";
m.amount_withdraw = WithDrawBalance(day, day.AddMonths(1).AddDays(-1));
//物流仓储费用 = 头程运输+直邮物流费+海外仓仓储及其他费用
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_first = objOrder.Sum(a => a.cost_first ?? 0) + objFBA.Sum(a => a.cost_first ?? 0);
m.fee_logistics_direct = objOrder.Sum(a => a.cost_logistics ?? 0);
m.fee_storage = objOrder.Sum(a => a.total_fee ?? 0);
m.fee_logistics_storage = m.fee_logistics_first + m.fee_logistics_direct + m.fee_storage;
......@@ -611,9 +611,9 @@ namespace Bailun.DC.MonthSaleProfit
//管理成本=香港百伦+广州百伦+美容美甲店+杨杉+信荟蓝+成品仓
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.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;
......@@ -621,7 +621,7 @@ namespace Bailun.DC.MonthSaleProfit
//财务费用=手续费
m.fee_finance = listHandleFee?.Sum(a=>a.pay_money_rMB)??0;
m.fee_finance = listHandleFee?.Sum(a => a.pay_money_rMB) ?? 0;
//营业利润=销售利润-管理成本合计-财务费用
m.profit = m.profit_sales - m.managercost_count - m.fee_finance;
......@@ -648,13 +648,58 @@ namespace Bailun.DC.MonthSaleProfit
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("delete from dc_month_sales_profit where month='" + m.month + "'");
sql = $@"insert dc_month_sales_profit (month,amount_sales,amount_sales_jingyou,amount_sales_dianzi,amount_sales_jiaju,amount_sales_meirongmj,amount_sales_fuzhuang,amount_sales_other,cost,cost_jingyou,cost_dianzi,cost_jiaju,cost_meirongmj,cost_fuzhuang,cost_other,fee_platform_and_refund,fee_platform,fee_fba,fee_refund,amount_withdraw,fee_logistics_storage,fee_logistics_first,fee_logistics_direct,fee_storage,fee_paycash_sales,fee_sales_count,profit_sales,rate_profit_sales,managecost_bl_xg,managecost_bl_gz,managecost_meijia,managercost_yangshan,managercost_chengpincang,managercost_xinhuilan,managercost_count,fee_finance,profit,rate_profit,incoming_other,incoming_non_operating,pay_non_operating,actual_profit,dividend,profit_balance,rate_profit_actual,createtime,lastupdateuserid,lastupdateusername,lastupdatetime,isedit) values
('{m.month}',{m.amount_sales},{m.amount_sales_jingyou},{m.amount_sales_dianzi},{m.amount_sales_jiaju},{m.amount_sales_meirongmj},{m.amount_sales_fuzhuang},{m.amount_sales_other},{m.cost},{m.cost_jingyou},{m.cost_dianzi},{m.cost_jiaju},{m.cost_meirongmj},{m.cost_fuzhuang},{m.cost_other},{m.fee_platform_and_refund},{m.fee_platform},{m.fee_fba},{m.fee_refund},{m.amount_withdraw},{m.fee_logistics_storage},{m.fee_logistics_first},{m.fee_logistics_direct},{m.fee_storage},{m.fee_paycash_sales},{m.fee_sales_count},{m.profit_sales},{m.rate_profit_sales},{m.managecost_bl_xg},{m.managecost_bl_gz},{m.managecost_meijia},{m.managercost_yangshan},{m.managercost_chengpincang},{m.managercost_xinhuilan},{m.managercost_count},{m.fee_finance},{m.profit},{m.rate_profit},{m.incoming_other},{m.incoming_non_operating},{m.pay_non_operating},{m.actual_profit},{m.dividend},{m.profit_balance},{m.rate_profit_actual},'{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',{m.lastupdateuserid},'{m.lastupdateusername}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},0)";
cn.Execute(sql);
}
}
/// <summary>
/// 获取提现到账金额
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
/// <returns></returns>
private decimal WithDrawBalance(DateTime start, DateTime end)
{
var _url_withdraw = $@"http://cw.bailuntec.com/API/API/GetWithdrawSummaries?BeginConfirmDate={start.ToString("yyyy-MM-dd")}&EndConfirmDate={end.ToString("yyyy-MM-dd")}";
var _url_exchange = $"http://oa.bailuntec.com/Api/ExchangeRate/GetMonthlyExchangeRateByDate?date={start.ToString("yyyy-MM")}&toCur=CNY&fromCur=";
var result = Common.HttpHelper.NetHelper.Request(_url_withdraw);
var json = Newtonsoft.Json.JsonConvert.DeserializeObject<Models.response_WithDraw>(result);
var listExchange = new List<Tuple<string, decimal>>();
decimal amount = 0;
foreach (var item in json.list)
{
var objRate = listExchange.Where(a => a.Item1.ToLower() == item.Currency.ToLower()).FirstOrDefault();
if (objRate == null)
{
var result_Exchange = Common.HttpHelper.NetHelper.Request(_url_exchange + item.Currency);
if (!string.IsNullOrEmpty(result_Exchange))
{
var jsonExchange = Newtonsoft.Json.JsonConvert.DeserializeObject<Models.response_Exchange>(result_Exchange);
objRate = new Tuple<string, decimal>(item.Currency, jsonExchange.rate);
listExchange.Add(objRate);
}
else
{
objRate = new Tuple<string, decimal>("", 1);
}
}
amount += item.DaozhangMoney * objRate.Item2;
}
return amount;
}
}
}
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