Commit d8ad4f63 by jianshuqin

优化:平台利润导入费用

parent fce365ba
...@@ -18,6 +18,11 @@ namespace Bailun.DC.Models.DataWareHouse ...@@ -18,6 +18,11 @@ namespace Bailun.DC.Models.DataWareHouse
public int fee_id { get; set; } public int fee_id { get; set; }
/// <summary> /// <summary>
/// 账单流水ID
/// </summary>
public int flowing_sales_id { get; set; }
/// <summary>
/// 平台 /// 平台
/// </summary> /// </summary>
public string platform { get; set; } public string platform { get; set; }
......
...@@ -855,7 +855,7 @@ namespace Bailun.DC.Services.DataWareHouse ...@@ -855,7 +855,7 @@ namespace Bailun.DC.Services.DataWareHouse
if (listRate?.Count > 0) if (listRate?.Count > 0)
{ {
sql = $@"SELECT sql = $@"SELECT
id AS fee_id id AS flowing_sales_id
,'{platform}' AS platform ,'{platform}' AS platform
,'{((new string[] { "佣金及平台费-亚马逊非FBA", "佣金及平台费-其他平台" }).Contains(datacenterCol) ? "平台费" : "FBA费")}' AS fee_type ,'{((new string[] { "佣金及平台费-亚马逊非FBA", "佣金及平台费-其他平台" }).Contains(datacenterCol) ? "平台费" : "FBA费")}' AS fee_type
,datatime AS date ,datatime AS date
...@@ -883,45 +883,64 @@ namespace Bailun.DC.Services.DataWareHouse ...@@ -883,45 +883,64 @@ namespace Bailun.DC.Services.DataWareHouse
IList<flowing_sales_fee_detail> list = db.Query<flowing_sales_fee_detail>(sql, new { platform = platform.Equals("Walmart", StringComparison.OrdinalIgnoreCase) ? "Walmart" : "亚马逊", month = month, datacenterCol = datacenterCol }).ToList(); IList<flowing_sales_fee_detail> list = db.Query<flowing_sales_fee_detail>(sql, new { platform = platform.Equals("Walmart", StringComparison.OrdinalIgnoreCase) ? "Walmart" : "亚马逊", month = month, datacenterCol = datacenterCol }).ToList();
if (list?.Count > 0) if (list?.Count > 0)
{ {
int count = 0;
//开启事务 //开启事务
using (MySqlTransaction transaction = db.BeginTransaction()) using (MySqlTransaction transaction = db.BeginTransaction())
{ {
try try
{ {
foreach (flowing_sales_fee_detail entity in list) flowing_sales_fee entity = new flowing_sales_fee()
{ {
if (entity.amount_cny == 0) platform = platform,
fee_type = (new string[] { "佣金及平台费-亚马逊非FBA", "佣金及平台费-其他平台" }).Contains(datacenterCol) ? "平台费" : "FBA费",
month = month,
amount = list.Sum(l => l.amount_cny),
currency = "CNY",
create_time = DateTime.Now,
update_time = DateTime.Now,
remark = datacenterCol == "仓储费-平台" ? "仓储费" : string.Empty
};
sql = $"update flowing_sales_fee set amount = @amount, currency = @currency,update_time = @update_time,remark = @remark where platform = @platform and fee_type = @fee_type and month = @month";
count = db.Execute(sql, entity);
if (count == 0)
{
entity.id = db.Insert(entity) ?? 0;
}
foreach (flowing_sales_fee_detail detailEntity in list)
{
detailEntity.fee_id = entity.id;
if (detailEntity.amount_cny == 0)
{ {
if (entity.currency.Equals("CNY", StringComparison.OrdinalIgnoreCase)) if (detailEntity.currency.Equals("CNY", StringComparison.OrdinalIgnoreCase))
{ {
entity.amount_cny = entity.amount; detailEntity.amount_cny = detailEntity.amount;
} }
else else
{ {
exchange_rate_finance rate_cny = listRate.FirstOrDefault(l => l.code.Equals(entity.currency, StringComparison.OrdinalIgnoreCase)); exchange_rate_finance rate_cny = listRate.FirstOrDefault(l => l.code.Equals(detailEntity.currency, StringComparison.OrdinalIgnoreCase));
if (rate_cny != null) if (rate_cny != null)
{ {
entity.amount_cny = Math.Round(entity.amount / rate_cny.exchange_rate, 2); detailEntity.amount_cny = Math.Round(detailEntity.amount / rate_cny.exchange_rate, 2);
} }
} }
} }
if (entity.currency.Equals("USD", StringComparison.OrdinalIgnoreCase)) if (detailEntity.currency.Equals("USD", StringComparison.OrdinalIgnoreCase))
{ {
entity.amount_usd = entity.amount; detailEntity.amount_usd = detailEntity.amount;
} }
else else
{ {
exchange_rate_finance rate_usd = listRate.FirstOrDefault(l => l.code.Equals("USD", StringComparison.OrdinalIgnoreCase)); exchange_rate_finance rate_usd = listRate.FirstOrDefault(l => l.code.Equals("USD", StringComparison.OrdinalIgnoreCase));
if (rate_usd != null) if (rate_usd != null)
{ {
entity.amount_usd = Math.Round(entity.amount_cny * rate_usd.exchange_rate, 2); detailEntity.amount_usd = Math.Round(detailEntity.amount_cny * rate_usd.exchange_rate, 2);
} }
} }
sql = $"update flowing_sales_fee_detail set platform = @platform, date = @date,amount = @amount,currency = @currency,amount_cny = @amount_cny,amount_usd = @amount_usd,update_time = @update_time where fee_id = @fee_id and data_type = @data_type"; sql = $"update flowing_sales_fee_detail set platform = @platform, date = @date,amount = @amount,currency = @currency,amount_cny = @amount_cny,amount_usd = @amount_usd,update_time = @update_time where flowing_sales_id = @flowing_sales_id and data_type = @data_type";
int count = db.Execute(sql, entity); count = db.Execute(sql, detailEntity);
if (count == 0) if (count == 0)
{ {
entity.id = db.Insert(entity) ?? 0; detailEntity.id = db.Insert(detailEntity) ?? 0;
} }
} }
transaction.Commit(); transaction.Commit();
......
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