Commit d8ad4f63 by jianshuqin

优化:平台利润导入费用

parent fce365ba
......@@ -18,6 +18,11 @@ namespace Bailun.DC.Models.DataWareHouse
public int fee_id { get; set; }
/// <summary>
/// 账单流水ID
/// </summary>
public int flowing_sales_id { get; set; }
/// <summary>
/// 平台
/// </summary>
public string platform { get; set; }
......
......@@ -855,7 +855,7 @@ namespace Bailun.DC.Services.DataWareHouse
if (listRate?.Count > 0)
{
sql = $@"SELECT
id AS fee_id
id AS flowing_sales_id
,'{platform}' AS platform
,'{((new string[] { "佣金及平台费-亚马逊非FBA", "佣金及平台费-其他平台" }).Contains(datacenterCol) ? "平台费" : "FBA费")}' AS fee_type
,datatime AS date
......@@ -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();
if (list?.Count > 0)
{
int count = 0;
//开启事务
using (MySqlTransaction transaction = db.BeginTransaction())
{
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
{
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)
{
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
{
exchange_rate_finance rate_usd = listRate.FirstOrDefault(l => l.code.Equals("USD", StringComparison.OrdinalIgnoreCase));
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";
int count = db.Execute(sql, entity);
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";
count = db.Execute(sql, detailEntity);
if (count == 0)
{
entity.id = db.Insert(entity) ?? 0;
detailEntity.id = db.Insert(detailEntity) ?? 0;
}
}
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