Commit 9e22a8bb by guanzhenshan

修改Ebay汇损方法,解决负数问题

parent 62a799f3
......@@ -3111,58 +3111,99 @@ namespace Bailun.DC.Services
/// <returns></returns>
public List<mExchangeLoss> ListExchangeLoss(BtTableParameter parameter, string account, DateTime? start, DateTime? end, ref int total, int? companyid)
{
var sqlparam = new DynamicParameters();
//var sqlparam = new DynamicParameters();
//var s1 = " ";
//var s2 = " ";
//if (!string.IsNullOrWhiteSpace(account))
//{
// s1 += " and t1.seller_account=@seller_account ";
// sqlparam.Add("seller_account", account);
// s2 += " and t2.account_name=@account_name ";
// sqlparam.Add("account_name", account);
//}
//if (start.HasValue)
//{
// s1 += " and t1.paid_time>=@t1_start";
// sqlparam.Add("t1_start", start.Value);
// s2 += " and t1.gmt_date>=@t2_start";
// sqlparam.Add("t2_start", start.Value);
//}
//if (end.HasValue)
//{
// s1 += " and t1.paid_time<@t1_end";
// sqlparam.Add("t1_end", end.Value.AddDays(1));
// s2 += " and t1.gmt_date<@t2_end";
// sqlparam.Add("t2_end", end.Value.AddDays(1));
//}
//if (companyid.HasValue && companyid.Value > 0)
//{
// s1 += " and t1.company_id=" + companyid.Value + " ";
// s2 += " and t1.company_id=" + companyid.Value + " ";
//}
//var sql = $@"select t01.seller_account,t01.amount_sales,t02.gross_amount from
// (select t1.seller_account,sum(t1.amount_sales*t1.seller_order_exchange_rate) as amount_sales from dc_base_oms_order t1
// where t1.bailun_payment_status!='Canceled' and t1.bailun_order_status!='CantHandle' and t1.bailun_order_status!='Canceled' and t1.has_scalp=0 and t1.has_innersale=0 and t1.platform_type='Ebay'
// {s1}
// group by t1.seller_account) t01
// join (
// select t2.account_name,sum(t1.gross_amount*t1.exchange_rate) as gross_amount from dc_base_finance_ebay t1
// left join dc_base_company_account t2 on t1.account_id=t2.account_id
// where t1.account_entry_type!='Unknown'
// {s2}
// group by t1.account_id) t02 on t01.seller_account=t02.account_name";
//using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
//{
// if (cn.State == System.Data.ConnectionState.Closed)
// {
// cn.Open();
// }
// var obj = cn.Page<mExchangeLoss>(parameter.pageIndex, parameter.limit, sql, ref total, sqlparam);
// return obj.ToList();
//}
var s1 = " ";
var s2 = " ";
var sqlparam = new DynamicParameters();
var sql = "select t1.seller_account,(t1.amount_sales*seller_order_exchange_rate) amount_sales,t1.cost_platform_cost as from dc_base_oms_order t1 where t1.bailun_order_status!='Canceled' and t1.platform_type='Ebay' and t1.bailun_order_status!='CantHandle' and t1.has_scalp=0 and t1.has_innersale=0 and t1.bailun_interception_status in ('None','Failed') ";
if (!string.IsNullOrWhiteSpace(account))
{
s1 += " and t1.seller_account=@seller_account ";
sql += " and t1.seller_account=@seller_account ";
sqlparam.Add("seller_account", account);
s2 += " and t2.account_name=@account_name ";
sqlparam.Add("account_name", account);
}
if (start.HasValue)
{
s1 += " and t1.paid_time>=@t1_start";
sql += " and t1.paid_time>=@t1_start";
sqlparam.Add("t1_start", start.Value);
s2 += " and t1.gmt_date>=@t2_start";
sqlparam.Add("t2_start", start.Value);
}
if (end.HasValue)
{
s1 += " and t1.paid_time<@t1_end";
sql += " and t1.paid_time<@t1_end";
sqlparam.Add("t1_end", end.Value.AddDays(1));
s2 += " and t1.gmt_date<@t2_end";
sqlparam.Add("t2_end", end.Value.AddDays(1));
}
if (companyid.HasValue && companyid.Value > 0)
{
s1 += " and t1.company_id=" + companyid.Value + " ";
s2 += " and t1.company_id=" + companyid.Value + " ";
sql += " and t1.company_id=" + companyid.Value + " ";
}
var sql = $@"select t01.seller_account,t01.amount_sales,t02.gross_amount from
(select t1.seller_account,sum(t1.amount_sales*t1.seller_order_exchange_rate) as amount_sales from dc_base_oms_order t1
where t1.bailun_payment_status!='Canceled' and t1.bailun_order_status!='CantHandle' and t1.bailun_order_status!='Canceled' and t1.has_scalp=0 and t1.has_innersale=0 and t1.platform_type='Ebay'
{s1}
group by t1.seller_account) t01
join (
select t2.account_name,sum(t1.gross_amount*t1.exchange_rate) as gross_amount from dc_base_finance_ebay t1
left join dc_base_company_account t2 on t1.account_id=t2.account_id
where t1.account_entry_type!='Unknown'
{s2}
group by t1.account_id) t02 on t01.seller_account=t02.account_name";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
......@@ -3171,64 +3212,41 @@ namespace Bailun.DC.Services
}
var obj = cn.Page<mExchangeLoss>(parameter.pageIndex, parameter.limit, sql, ref total, sqlparam);
return obj.ToList();
}
}
public mExchangeLoss ListExchangeLossCount(string account, DateTime? start, DateTime? end, int? companyid)
{
var sqlparam = new DynamicParameters();
var s1 = " ";
var s2 = " ";
var sql = "select sum(t1.amount_sales*t1.seller_order_exchange_rate) amount_sales,sum(t1.cost_platform_cost*t1.seller_order_exchange_rate) cost_platform_cost from dc_base_oms_order t1 where t1.bailun_order_status!='Canceled' and t1.platform_type='Ebay' and t1.bailun_order_status!='CantHandle' and t1.has_scalp=0 and t1.has_innersale=0 and t1.bailun_interception_status in ('None','Failed') ";
if (!string.IsNullOrWhiteSpace(account))
{
s1 += " and t1.seller_account=@seller_account ";
sql += " and t1.seller_account=@seller_account ";
sqlparam.Add("seller_account", account);
s2 += " and t2.account_name=@account_name ";
sqlparam.Add("account_name", account);
}
if (start.HasValue)
{
s1 += " and t1.paid_time>=@t1_start";
sql += " and t1.paid_time>=@t1_start";
sqlparam.Add("t1_start", start.Value);
s2 += " and t1.gmt_date>=@t2_start";
sqlparam.Add("t2_start", start.Value);
}
if (end.HasValue)
{
s1 += " and t1.paid_time<@t1_end";
sql += " and t1.paid_time<@t1_end";
sqlparam.Add("t1_end", end.Value.AddDays(1));
s2 += " and t1.gmt_date<@t2_end";
sqlparam.Add("t2_end", end.Value.AddDays(1));
}
if (companyid.HasValue && companyid.Value > 0)
{
s1 += " and t1.company_id=" + companyid.Value + " ";
s2 += " and t1.company_id=" + companyid.Value + " ";
sql += " and t1.company_id=" + companyid.Value + " ";
}
var sql = $@"select sum(t01.amount_sales) amount_sales,sum(t02.gross_amount) gross_amount from
(select t1.seller_account,sum(t1.amount_sales*t1.seller_order_exchange_rate) as amount_sales from dc_base_oms_order t1
where t1.bailun_payment_status!='Canceled' and t1.bailun_order_status!='CantHandle' and t1.bailun_order_status!='Canceled' and t1.has_scalp=0 and t1.has_innersale=0 and t1.platform_type='Ebay'
{s1}
group by t1.seller_account) t01
join (
select t2.account_name,sum(t1.gross_amount*t1.exchange_rate) as gross_amount from dc_base_finance_ebay t1
left join dc_base_company_account t2 on t1.account_id=t2.account_id
where t1.account_entry_type!='Unknown'
{s2}
group by t1.account_id) t02 on t01.seller_account=t02.account_name";
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
......@@ -3236,8 +3254,7 @@ namespace Bailun.DC.Services
cn.Open();
}
var obj = cn.QueryFirstOrDefault<mExchangeLoss>(sql, sqlparam);
var obj = cn.QueryFirstOrDefault<mExchangeLoss>(sql,sqlparam);
return obj;
}
}
......
......@@ -1253,10 +1253,12 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
var list = obj.Select(a => new {
amount_sales = a.amount_sales.ToString("N2"),
gross_amount = a.gross_amount.ToString("N2"),
//gross_amount = a.gross_amount.ToString("N2"),
a.seller_account,
exchangeloss_rate = 2.5,
exchangeloss_amount = ((a.amount_sales-a.gross_amount)*(decimal)0.025).ToString("N2")
exchangeloss_rate = 5,
//exchangeloss_amount = ((a.amount_sales-a.gross_amount)*(decimal)0.025).ToString("N2")
exchangeloss_amount = (a.amount_sales*(decimal)0.005).ToString("N2"),
});
return JsonConvert.SerializeObject(new
......@@ -1267,8 +1269,8 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
{
seller_account = "总计",
amount_sales = countObj.amount_sales.ToString("N2"),
gross_amount = countObj.gross_amount.ToString("N2"),
exchangeloss_amount = ((countObj.amount_sales - countObj.gross_amount) * (decimal)0.025).ToString("N2")
//gross_amount = countObj.gross_amount.ToString("N2"),
exchangeloss_amount = (countObj.amount_sales * (decimal)0.005).ToString("N2")
}
});
}
......
......@@ -75,7 +75,7 @@
}
},
{ field: 'amount_sales', title: '销售额', width: '130', iscount: true },
{ field: 'gross_amount', title: '平台总费用', width: '140', iscount: true },
//{ field: 'gross_amount', title: '平台总费用', width: '140', iscount: true },
{ field: 'exchangeloss_rate', title: '汇损率', width: '100' },
{ field: 'exchangeloss_amount', title: '汇损金额', width: '120', iscount: true }
];
......
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