Commit 75a32e95 by lizefeng

采购金额,跟随实际采购数变化

采购建议金额筛选-是筛选整个供应商的总采购金额
凑单优先销量最高,流转最快SKU开始,当个SKU凑单数量从2开始
初始建议数为1,,系统建议数为1时 改为3
parent c4392fab
......@@ -35,6 +35,7 @@ namespace AutoTurnOver.DB
/// <param name="mainID"></param>
public static void ImportDetailed(int mainID)
{
// 生成采购建议
_connection.Execute(@"
INSERT into dc_auto_purchase_advise_detailed(`bailun_sku`,`warehouse_code`,`quantity_init_advise`,`quantity_final_advise`,
`product_inner_code`,`goods_quantity_init_advise`,`goods_moq`,`good_sku_codes`,`goods_history_fourteenday_sales`,`history_fourteenday_sales`,
......@@ -90,6 +91,12 @@ select
)
", new { main_id = mainID }, commandTimeout: 0);
// 凑单sku(初始建议数没有) 如果下单数只有一个,改为2
_connection.Execute(" update dc_auto_purchase_advise_detailed set quantity_final_advise=2 where quantity_final_advise=1 and quantity_init_advise<=0 and main_id=@main_id ", new { main_id = mainID });
// 初始建议数为1,,系统建议数为1时 改为3
_connection.Execute(" update dc_auto_purchase_advise_detailed set quantity_final_advise=3 where quantity_final_advise=1 and quantity_init_advise=1 and main_id=@main_id ", new { main_id = mainID });
// 调整因为舍弃小数导致的moq不足
var datas = _connection.Query<dc_auto_purchase_advise_detailed>(" select * from dc_auto_purchase_advise_detailed where main_id=@main_id ", new { main_id = mainID }).AsList();
if (datas != null && datas.Count > 0)
......@@ -111,6 +118,7 @@ select
}
}
}
/// <summary>
......@@ -199,7 +207,7 @@ sum(t5.quantity_out_stock) as 'quantity_out_stock', -- 缺货
sum(t5.quantity_transfer) as 'quantity_transfer', -- 调拨在途
sum(t5.quantity_purchase) as 'quantity_purchase', -- 采购在途
sum(t5.quantity_inventory) as 'quantity_inventory', -- 库存数
sum(t3.unit_price * t1.quantity_final_advise) as 'quantity_final_advise_price', -- 采购金额
sum(t3.unit_price * (case when t1.quantity_actual>0 then t1.quantity_actual else t1.quantity_final_advise end ) ) as 'quantity_final_advise_price', -- 采购金额
sum(t5.turnover_days) as 'turnover_days', -- 周转天数
sum(t1.quantity_init_advise) as 'quantity_init_advise',
......@@ -224,7 +232,7 @@ t1.*,t2.warehouse_name,t3.sku_title_cn as 'sku_name',t4.create_time,t3.buyer_nam
(t5.quantity_transfer) as 'quantity_transfer', -- 调拨在途
(t5.quantity_purchase) as 'quantity_purchase', -- 采购在途
(t5.quantity_inventory) as 'quantity_inventory', -- 库存数
(t3.unit_price * t1.quantity_final_advise) as 'quantity_final_advise_price', -- 采购金额
(t3.unit_price * (case when t1.quantity_actual>0 then t1.quantity_actual else t1.quantity_final_advise end ) ) as 'quantity_final_advise_price', -- 采购金额
t3.suppliers_name
from dc_auto_purchase_advise_detailed as t1
left join dc_base_warehouse as t2 on t1.warehouse_code = t2.warehouse_code
......@@ -293,16 +301,31 @@ where 1=1 ";
sql += " and t3.buyer_name =@buyer_name ";
parameters.Add("buyer_name", m.purchase_user);
}
if (m.quantity_final_advise_price_min > 0)
if (m.quantity_final_advise_price_min > 0 && m.quantity_final_advise_price_max > 0)
{
sql += " and (t3.unit_price * t1.quantity_final_advise)>=@quantity_final_advise_price_min ";
sql += @" and EXISTS (
select * from view_purchase_advise_supplier_price as t_price where t_price.main_id=t1.main_id and t1.suppliers_id=t_price.suppliers_id and t1.warehouse_code = t_price.warehouse_code and t_price.price>@quantity_final_advise_price_min and t_price.price<=@quantity_final_advise_price_max
) ";
parameters.Add("quantity_final_advise_price_min", m.quantity_final_advise_price_min);
}
if (m.quantity_final_advise_price_max > 0)
{
sql += " and (t3.unit_price * t1.quantity_final_advise)<=@quantity_final_advise_price_max ";
parameters.Add("quantity_final_advise_price_max", m.quantity_final_advise_price_max);
}
else
{
if (m.quantity_final_advise_price_max > 0)
{
sql += @" and EXISTS (
select * from view_purchase_advise_supplier_price as t_price where t_price.main_id=t1.main_id and t1.suppliers_id=t_price.suppliers_id and t1.warehouse_code = t_price.warehouse_code and t_price.price<=@quantity_final_advise_price_max
) ";
parameters.Add("quantity_final_advise_price_max", m.quantity_final_advise_price_max);
}
if (m.quantity_final_advise_price_min > 0)
{
sql += @" and EXISTS (
select * from view_purchase_advise_supplier_price as t_price where t_price.main_id=t1.main_id and t1.suppliers_id=t_price.suppliers_id and t1.warehouse_code = t_price.warehouse_code and t_price.price>@quantity_final_advise_price_min
) ";
parameters.Add("quantity_final_advise_price_min", m.quantity_final_advise_price_min);
}
}
if (m.is_multiple_warehouse)
{
......@@ -367,6 +390,10 @@ and EXISTS (
/// <returns></returns>
public static IEnumerable<dc_auto_purchase_advise_detailed_buy_dto> BuyDetailList(List<int> ids, bool? ispush = null)
{
if(ids==null || ids.Count <= 0)
{
return new List<dc_auto_purchase_advise_detailed_buy_dto>();
}
DynamicParameters parameters = new DynamicParameters();
parameters.Add("ids", ids);
string sql = @" select t1.*,t2.unit_price from dc_auto_purchase_advise_detailed as t1
......
......@@ -294,7 +294,7 @@ namespace AutoTurnOver.Controllers
sku = sku,
warehouse_code = warehousecode,
end_date = end_date,
start_date = start_date,
start_date = DateTime.Now,
warehousearea = warehousearea,
warehousetype = warehousetype,
ispush = false,
......
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