Commit b3f6e9b5 by 泽锋 李

服装采购,由原来的强行下到 广州03 改到下到自己的仓库

parent 2a83efeb
......@@ -366,7 +366,7 @@ sum(t7.quantity_out_stock_aliexpress) as 'quantity_out_stock_aliexpress'
select
t1.bailun_sku,
t1.warehouse_code as 'source_warehouse_code',
'BLGZ03' as 'warehouse_code',
t1.warehouse_code as 'warehouse_code',
-1 as 'quantity_init_advise', -- 原始采购建议数量 new
( (t7.quantity_out_stock) - ( ((case when t7.quantity_out_stock>0 then 0 else (t1.usable_stock+t1.occupy_order) end )) + (t1.quantity_transfer) + (t7.quantity_purchase) ) ) as 'quantity_final_advise', -- 计算moq之后的数量 new
t6.product_inner_code as 'product_inner_code', -- 内部商品编码 new
......
......@@ -976,6 +976,292 @@ where t1.create_time>=@btime and t1.create_time<=@etime ";
}
/// <summary>
/// 计算ebay的广告费
/// </summary>
/// <param name="btime"></param>
/// <param name="etime"></param>
public static void CalculationAdFeeEbay(DateTime btime, DateTime etime)
{
try
{
var conn = _connection;
int page = 1;
int rows = 1000;
List<dc_report_cash_flow_config> configs = conn.Query<dc_report_cash_flow_config>(" select * from dc_report_cash_flow_config ").AsList();
while (true)
{
var now = DateTime.Now;
var sql = @" select t1.* from dc_base_finance_ebay as t1 where account_entry_type='FeeAd'
and t1.bj_date>=@btime and t1.bj_date<=@etime ";
DynamicParameters parameters = new DynamicParameters();
parameters.Add("btime", btime.ToString("yyyy-MM-dd 00:00:00"));
parameters.Add("etime", etime.ToString("yyyy-MM-dd 23:59:59"));
sql += $" order by t1.id desc limit {(page - 1) * rows},{rows} ";
var order_list = conn.Query<dc_base_finance_ebay>(sql, parameters, commandTimeout: 0).AsList();
if (order_list == null || order_list.Count <= 0)
{
break;
}
page++;
foreach (var order_item in order_list)
{
try
{
#region 广告费
dc_report_cash_flow_log item = new dc_report_cash_flow_log()
{
bailun_sku = "",
data_type = (int)dc_report_cash_flow_log_data_type_enum.广告费,
is_delete = 0,
item = order_item.id.ToString(),
update_time = now,
no = order_item.id.ToString(),
platform_type = "Ebay",
web_site = "",
remarks = "",
val = 0 - Math.Abs(order_item.gross_amount * order_item.exchange_rate),
occur_time = order_item.bj_date ?? new DateTime(1991, 1, 1),
warehouse_code = "",
pay_type = (int)dc_report_cash_flow_log_pay_type_enum.实时,
item_no = "Ebay-"+order_item.id.ToString()
};
item.pay_time = order_item.bj_date ?? new DateTime(1991, 1, 1);
item.occur_time_year_month_no = $"{item.occur_time.Year}-{item.occur_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.pay_time_year_month_no = $"{item.pay_time.Year}-{item.pay_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.id = conn.QuerySingleOrDefault<int?>(" select id from dc_report_cash_flow_log where data_type=@data_type and bailun_sku=@bailun_sku and item_no=@item_no ", new
{
data_type = item.data_type,
bailun_sku = item.bailun_sku,
item_no = item.item_no
}) ?? 0;
if (item.id > 0)
{
conn.Update(item);
}
else
{
conn.Insert(item);
}
#endregion
}
catch (Exception ex)
{
Console.WriteLine($"现金流-广告费 Ebay-{order_item.id}-异常" + ex.Message);
Console.WriteLine($"现金流-广告费 Ebay-异常" + ex.StackTrace);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine("现金流-广告费 Ebay-异常" + ex.Message);
Console.WriteLine("现金流-广告费 Ebay-异常" + ex.StackTrace);
}
}
/// <summary>
/// 计算ebay的刊登费
/// </summary>
/// <param name="btime"></param>
/// <param name="etime"></param>
public static void CalculationPublishFeeEbay(DateTime btime, DateTime etime)
{
try
{
List<string> feeFields = new List<string>() {
"BuyItNowFee",
"CreditGalleryPlus",
"CreditInsertion",
"CreditSMBasicPro",
"ExtendedDurationFee",
"ExtendedDurationFeeCredit",
"FeeAuctionEndEarly",
"FeeBold",
"FeeFinalValueShipping",
"FeeGalleryPlus",
"FeeLargePicture",
"FeeSchedule",
"PrivateListing",
"SubscriptionSMBasic",
"SubscriptionSMBasicPro",
"SubscriptioneBayStores",
"SubtitleFee",
"SubtitleFeeCredit",
"CrediteBayStores"
};
var conn = _connection;
int page = 1;
int rows = 1000;
List<dc_report_cash_flow_config> configs = conn.Query<dc_report_cash_flow_config>(" select * from dc_report_cash_flow_config ").AsList();
while (true)
{
var now = DateTime.Now;
var sql = @" select t1.* from dc_base_finance_ebay as t1 where account_entry_type in @feeFields
and t1.bj_date>=@btime and t1.bj_date<=@etime ";
DynamicParameters parameters = new DynamicParameters();
parameters.Add("feeFields", feeFields);
parameters.Add("btime", btime.ToString("yyyy-MM-dd 00:00:00"));
parameters.Add("etime", etime.ToString("yyyy-MM-dd 23:59:59"));
sql += $" order by t1.id desc limit {(page - 1) * rows},{rows} ";
var order_list = conn.Query<dc_base_finance_ebay>(sql, parameters, commandTimeout: 0).AsList();
if (order_list == null || order_list.Count <= 0)
{
break;
}
page++;
foreach (var order_item in order_list)
{
try
{
#region 上架费
dc_report_cash_flow_log item = new dc_report_cash_flow_log()
{
bailun_sku = "",
data_type = (int)dc_report_cash_flow_log_data_type_enum.上架费,
is_delete = 0,
item = order_item.id.ToString(),
update_time = now,
no = order_item.id.ToString(),
platform_type = "Ebay",
web_site = "",
remarks = "",
val = 0 - Math.Abs(order_item.gross_amount * order_item.exchange_rate),
occur_time = order_item.bj_date ?? new DateTime(1991, 1, 1),
warehouse_code = "",
pay_type = (int)dc_report_cash_flow_log_pay_type_enum.实时,
item_no = "Ebay-" + order_item.id.ToString()
};
item.pay_time = order_item.bj_date ?? new DateTime(1991, 1, 1);
item.occur_time_year_month_no = $"{item.occur_time.Year}-{item.occur_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.pay_time_year_month_no = $"{item.pay_time.Year}-{item.pay_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.id = conn.QuerySingleOrDefault<int?>(" select id from dc_report_cash_flow_log where data_type=@data_type and bailun_sku=@bailun_sku and item_no=@item_no ", new
{
data_type = item.data_type,
bailun_sku = item.bailun_sku,
item_no = item.item_no
}) ?? 0;
if (item.id > 0)
{
conn.Update(item);
}
else
{
conn.Insert(item);
}
#endregion
}
catch (Exception ex)
{
Console.WriteLine($"现金流-广告费 Ebay-{order_item.id}-异常" + ex.Message);
Console.WriteLine($"现金流-广告费 Ebay-异常" + ex.StackTrace);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine("现金流-广告费 Ebay-异常" + ex.Message);
Console.WriteLine("现金流-广告费 Ebay-异常" + ex.StackTrace);
}
}
/// <summary>
/// 计算 amazon 的广告费
/// </summary>
/// <param name="btime"></param>
/// <param name="etime"></param>
public static void CalculationAdFeeAmazon(DateTime btime, DateTime etime)
{
try
{
var conn = _connection;
int page = 1;
int rows = 1000;
List<dc_report_cash_flow_config> configs = conn.Query<dc_report_cash_flow_config>(" select * from dc_report_cash_flow_config ").AsList();
while (true)
{
var now = DateTime.Now;
var sql = @" select t1.* from dc_base_finance_amazon_ad_product as t1
where t1.report_date>=@btime and t1.report_date<=@etime ";
DynamicParameters parameters = new DynamicParameters();
parameters.Add("btime", btime.ToString("yyyy-MM-dd 00:00:00"));
parameters.Add("etime", etime.ToString("yyyy-MM-dd 23:59:59"));
sql += $" order by t1.id desc limit {(page - 1) * rows},{rows} ";
var order_list = conn.Query<dc_base_finance_amazon_ad_product>(sql, parameters, commandTimeout: 0).AsList();
if (order_list == null || order_list.Count <= 0)
{
break;
}
page++;
foreach (var order_item in order_list)
{
try
{
#region 广告费
dc_report_cash_flow_log item = new dc_report_cash_flow_log()
{
bailun_sku = "",
data_type = (int)dc_report_cash_flow_log_data_type_enum.广告费,
is_delete = 0,
item = order_item.id.ToString(),
update_time = now,
no = order_item.id.ToString(),
platform_type = "Amazon",
web_site = "",
remarks = "",
val = 0 - Math.Abs(order_item.cost * order_item.exchange_rate),
occur_time = order_item.report_date ,
warehouse_code = "",
pay_type = (int)dc_report_cash_flow_log_pay_type_enum.实时,
item_no = "amazon-"+order_item.id.ToString()
};
item.pay_time = order_item.report_date;
item.occur_time_year_month_no = $"{item.occur_time.Year}-{item.occur_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.pay_time_year_month_no = $"{item.pay_time.Year}-{item.pay_time.Month}-{item.data_type}-{item.platform_type}-{item.web_site}";
item.id = conn.QuerySingleOrDefault<int?>(" select id from dc_report_cash_flow_log where data_type=@data_type and bailun_sku=@bailun_sku and item_no=@item_no ", new
{
data_type = item.data_type,
bailun_sku = item.bailun_sku,
item_no = item.item_no
}) ?? 0;
if (item.id > 0)
{
conn.Update(item);
}
else
{
conn.Insert(item);
}
#endregion
}
catch (Exception ex)
{
Console.WriteLine($"现金流-广告费 Amazon-{order_item.id}-异常" + ex.Message);
Console.WriteLine($"现金流-广告费 Amazon-异常" + ex.StackTrace);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine("现金流-广告费 Amazon-异常" + ex.Message);
Console.WriteLine("现金流-广告费 Amazon-异常" + ex.StackTrace);
}
}
/// <summary>
/// 计算支付时间
/// </summary>
public static DateTime CalculationPayTime(List<dc_report_cash_flow_config> configs, DateTime occur_time, int data_type, string platform_type, string web_stite)
......
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models.Report
{
public partial class dc_base_finance_amazon_ad_product
{
/// <summary>
///
/// </summary>
public int id { get; set; }
/// <summary>
/// 广告系列名称
/// </summary>
public string campaign_name { get; set; }
/// <summary>
/// 广告系列唯一ID
/// </summary>
public string campaign_id { get; set; }
/// <summary>
/// 广告组名称
/// </summary>
public string ad_group_name { get; set; }
/// <summary>
/// 广告组唯一ID
/// </summary>
public string ad_group_id { get; set; }
/// <summary>
/// 广告总展示次数
/// </summary>
public int impressions { get; set; }
/// <summary>
/// 广告总点击次数
/// </summary>
public int clicks { get; set; }
/// <summary>
/// 所有点击总费用
/// </summary>
public decimal cost { get; set; }
/// <summary>
/// 币种
/// </summary>
public string currency { get; set; }
/// <summary>
/// ASIN
/// </summary>
public string asin { get; set; }
/// <summary>
/// 平台SKU
/// </summary>
public string sku { get; set; }
/// <summary>
/// 1天内规因转化事件数
/// </summary>
public int attributed_conversions_oneday { get; set; }
/// <summary>
/// 7天内归因转化事件数
/// </summary>
public int attributed_conversions_sevenday { get; set; }
/// <summary>
/// 14天内归因转化事件数
/// </summary>
public int attributed_conversions_fourteenday { get; set; }
/// <summary>
/// 30天内归因转化事件数
/// </summary>
public int attributed_conversions_thirtyday { get; set; }
/// <summary>
///
/// </summary>
public string attributed_conversions_oneday_same_sku { get; set; }
/// <summary>
///
/// </summary>
public string attributed_conversions_sevenday_same_sku { get; set; }
/// <summary>
///
/// </summary>
public string attributed_conversions_fourteenday_same_sku { get; set; }
/// <summary>
///
/// </summary>
public string attributed_conversions_thirtyday_same_sku { get; set; }
/// <summary>
/// 1天内订购的归属单位数量
/// </summary>
public int attributed_units_ordered_oneday { get; set; }
/// <summary>
/// 7天内订购归属单位数量
/// </summary>
public int attributed_units_ordered_sevenday { get; set; }
/// <summary>
/// 14天内订购归属单位数量
/// </summary>
public string attributed_units_ordered_fourteenday { get; set; }
/// <summary>
/// 30天内订购归属单位数量
/// </summary>
public string attributed_units_ordered_thirtyday { get; set; }
/// <summary>
/// 1天内规因销售数量
/// </summary>
public int attributed_sales_oneday { get; set; }
/// <summary>
/// 7天内归因销售数量
/// </summary>
public int attributed_sales_sevenday { get; set; }
/// <summary>
/// 14天内归因销售数量
/// </summary>
public int attributed_sales_fourteenday { get; set; }
/// <summary>
/// 30天内归因销售数量
/// </summary>
public int attributed_sales_thirtyday { get; set; }
/// <summary>
///
/// </summary>
public string attributed_sales_oneday_same_sku { get; set; }
/// <summary>
///
/// </summary>
public string attributed_sales_sevenday_same_sku { get; set; }
/// <summary>
///
/// </summary>
public string attributed_sales_fourteenday_same_sku { get; set; }
/// <summary>
///
/// </summary>
public string attributed_sales_thirtyday_same_sku { get; set; }
/// <summary>
///
/// </summary>
public string attributed_units_ordered_oneday_same_sku { get; set; }
/// <summary>
///
/// </summary>
public string attributed_units_ordered_sevenday_same_sku { get; set; }
/// <summary>
///
/// </summary>
public string attributed_units_ordered_fourteenday_same_sku { get; set; }
/// <summary>
///
/// </summary>
public string attributed_units_ordered_thirtyday_same_sku { get; set; }
/// <summary>
/// 帐号ID
/// </summary>
public int account_id { get; set; }
/// <summary>
/// 公司ID
/// </summary>
public int company_id { get; set; }
/// <summary>
/// 本地创建时间
/// </summary>
public DateTime bj_create_time { get; set; }
/// <summary>
/// 本地更新时间
/// </summary>
public DateTime bj_modify_time { get; set; }
/// <summary>
/// 报告日期
/// </summary>
public DateTime report_date { get; set; }
/// <summary>
/// 无意义字段
/// </summary>
public string report_type { get; set; }
/// <summary>
/// 转人民币汇率
/// </summary>
public decimal exchange_rate { get; set; }
/// <summary>
/// 转美元汇率
/// </summary>
public decimal exchange_rate_usd { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace AutoTurnOver.Models.Report
{
public partial class dc_base_finance_ebay
{
/// <summary>
///
/// </summary>
public int id { get; set; }
/// <summary>
/// 数据中心创建时间
/// </summary>
public DateTime bj_create { get; set; }
/// <summary>
/// 数据中心更新时间
/// </summary>
public DateTime bj_modified { get; set; }
/// <summary>
/// 费用类型
/// </summary>
public string account_entry_type { get; set; }
/// <summary>
/// 费用描述
/// </summary>
public string description { get; set; }
/// <summary>
/// 费用产生时间,以GMT格式指示条目过帐到帐户的日期和时间
/// </summary>
public DateTime gmt_date { get; set; }
/// <summary>
/// 费用产生时间,以GMT+8格式指示条目过帐到帐户的日期和时间
/// </summary>
public DateTime? bj_date { get; set; }
/// <summary>
/// ebay评估的总费用,包括净费用和增值税
/// </summary>
public decimal gross_amount { get; set; }
/// <summary>
/// item id
/// </summary>
public string item_id { get; set; }
/// <summary>
/// 费用条目的备注行
/// </summary>
public string memo { get; set; }
/// <summary>
/// ebay评估的净费用
/// </summary>
public decimal net_amount { get; set; }
/// <summary>
/// 帐户条目的唯一标识符
/// </summary>
public string ref_number { get; set; }
/// <summary>
/// 计算交易增值税(增值税)的适用税率
/// </summary>
public decimal vat_percent { get; set; }
/// <summary>
/// eBay用户帐户的货币交易或管理操作的描述或评论
/// </summary>
public string title { get; set; }
/// <summary>
/// eBay订单行项目的唯一标识符
/// </summary>
public string order_line_id { get; set; }
/// <summary>
/// 订单行项目的唯一标识符
/// </summary>
public string transaction_id { get; set; }
/// <summary>
/// 公司id
/// </summary>
public int company_id { get; set; }
/// <summary>
/// 是否有顶级折扣
/// </summary>
public int received_top_rated_discount { get; set; }
/// <summary>
/// 账号ID
/// </summary>
public int account_id { get; set; }
/// <summary>
/// 币种
/// </summary>
public string currency { get; set; }
/// <summary>
/// 转人民币汇率,根据bj_date取值
/// </summary>
public decimal exchange_rate { get; set; }
/// <summary>
/// 转美元汇率
/// </summary>
public decimal exchange_rate_usd { get; set; }
/// <summary>
///
/// </summary>
public DateTime? report_date { get; set; }
}
}
......@@ -147,7 +147,9 @@ namespace AutoTurnOver.Models
FBA = 11,
PayPal = 12,
新增采购费用_首单 = 13,
新增头程费用_首单 = 14
新增头程费用_首单 = 14,
广告费 = 15,
上架费 = 16
}
public enum dc_report_cash_flow_log_pay_type_enum
......
......@@ -61,6 +61,33 @@ namespace ResetOutofstock
Console.WriteLine($"结束 刷新上周数据,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
}
if (now.Hour == 2 && now.Minute == 24)
{
if (now.DayOfWeek == DayOfWeek.Monday)
{
Console.WriteLine($"开始 刷新ebay 广告费,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
report_cash_flow_dao.CalculationAdFeeEbay(now.AddMonths(-3), DateTime.Parse(now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59")));
Console.WriteLine($"结束 刷新ebay 广告费,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
}
if (now.Hour == 2 && now.Minute == 25)
{
if (now.DayOfWeek == DayOfWeek.Monday)
{
Console.WriteLine($"开始 刷新amazon 广告费,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
report_cash_flow_dao.CalculationAdFeeAmazon(now.AddMonths(-3), DateTime.Parse(now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59")));
Console.WriteLine($"结束 刷新amazon 广告费,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
}
if (now.Hour == 2 && now.Minute == 26)
{
if (now.DayOfWeek == DayOfWeek.Monday)
{
Console.WriteLine($"开始 刷新ebay 上架费,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
report_cash_flow_dao.CalculationPublishFeeEbay(now.AddMonths(-3), DateTime.Parse(now.AddDays(-1).ToString("yyyy-MM-dd 23:59:59")));
Console.WriteLine($"结束 刷新ebay 上架费,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
}
}
if (now.Hour == 9 && now.Minute == 01)
{
Console.WriteLine($"开始刷新 现金流 sku 报表 数据,线程Id:{Thread.CurrentThread.ManagedThreadId}{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
......
......@@ -14,10 +14,10 @@ namespace ResetOutofstock
protected override Task ExecuteAsync(CancellationToken stoppingToken)
{
Task.Factory.StartNew(() =>
{
report.ResetCashFlowData();
});
//Task.Factory.StartNew(() =>
//{
// report.ResetCashFlowData();
//});
//Task.Factory.StartNew(() =>
//{
......
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