Commit 16eab188 by guanzhenshan

增加注释

parent bf26a0bc
...@@ -48,6 +48,8 @@ namespace Bailun.DC.SkuDailyPurchaseAndSales ...@@ -48,6 +48,8 @@ namespace Bailun.DC.SkuDailyPurchaseAndSales
cn.Open(); cn.Open();
} }
#region 成品
//成品
//先保存采购的 //先保存采购的
var sql = $@"select t1.warehouse_code,t3.warehouse_name,t1.bailun_sku,sum(t1.count) count,sum(t1.count*t2.unit_price) amount from dc_base_purchase t1 var sql = $@"select t1.warehouse_code,t3.warehouse_name,t1.bailun_sku,sum(t1.count) count,sum(t1.count*t2.unit_price) amount from dc_base_purchase t1
...@@ -224,6 +226,185 @@ namespace Bailun.DC.SkuDailyPurchaseAndSales ...@@ -224,6 +226,185 @@ namespace Bailun.DC.SkuDailyPurchaseAndSales
list.Add(m); list.Add(m);
} }
#endregion
#region 原料
//采购
sql = $@"select quantity_purchase as count,sum(quantity_purchase*unit_price) as amount,bailun_sku,warehouse_from_code as warehouse_code,warehouse_from_name as warehouse_name from dc_semi_purchase_info where create_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and create_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and `status`>-1
group by bailun_sku,warehouse_from_code";
var objSemiPurchase = cn.Query<Models.mSkuCount>(sql, null, null, true, 2 * 60).AsList();
//卖出
//入库
sql = $@"select t1.sku_code as bailun_sku,t1.warehouse_id as warehouse_code,t1.warehouse_name as warehouse_name,t1.log_quantity as count,(t1.log_quantity*t2.price) amount from dc_semi_stock_log t1
left join (select t1.sku_code,t1.price from dc_semi_supplier_offer_log t1
inner join (select sku_code,max(update_time) update_time from dc_semi_supplier_offer_log where sku_code in (select sku_code from dc_semi_stock_log where update_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and update_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and log_type_id=2) group by sku_code,update_time) t2 on t1.sku_code=t2.sku_code and t1.update_time=t2.update_time) t2 on t1.sku_code=t2.sku_code
where t1.update_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and t1.update_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and log_type_id=2";
var objSemiPutin = cn.Query<Models.mSkuCount>(sql, null, null, true, 2 * 60).AsList();
//出库 =(生产消耗-取消生产)
sql = $@"select t1.sku_code as bailun_sku,t1.warehouse_id as warehouse_code,t1.warehouse_name as warehouse_name,t1.log_quantity as count,(t1.log_quantity*t2.price) amount from dc_semi_stock_log t1
left join (select t1.sku_code,t1.price from dc_semi_supplier_offer_log t1
inner join (select sku_code,max(update_time) update_time from dc_semi_supplier_offer_log where sku_code in (select sku_code from dc_semi_stock_log where update_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and update_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and log_type_id=3) group by sku_code,update_time) t2 on t1.sku_code=t2.sku_code and t1.update_time=t2.update_time) t2 on t1.sku_code=t2.sku_code
where t1.update_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and t1.update_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and log_type_id=3";
var objSemiProduction = cn.Query<Models.mSkuCount>(sql, null, null, true, 2 * 60).AsList(); //生产消耗
sql = $@"select t1.sku_code as bailun_sku,t1.warehouse_id as warehouse_code,t1.warehouse_name as warehouse_name,t1.log_quantity as count,(t1.log_quantity*t2.price) amount from dc_semi_stock_log t1
left join (select t1.sku_code,t1.price from dc_semi_supplier_offer_log t1
inner join (select sku_code,max(update_time) update_time from dc_semi_supplier_offer_log where sku_code in (select sku_code from dc_semi_stock_log where update_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and update_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and log_type_id=5) group by sku_code,update_time) t2 on t1.sku_code=t2.sku_code and t1.update_time=t2.update_time) t2 on t1.sku_code=t2.sku_code
where t1.update_time>='{start.ToString("yyyy-MM-dd HH:mm:ss")}' and t1.update_time<'{end.ToString("yyyy-MM-dd HH:mm:ss")}' and log_type_id=5";
var objSemiCancelProduction = cn.Query<Models.mSkuCount>(sql, null, null, true, 2 * 60).AsList(); //取消生产
//生产消耗-取消生产
foreach (var item in objSemiProduction)
{
var temp = objSemiCancelProduction.Where(a => a.bailun_sku == item.bailun_sku && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (temp != null)
{
item.amount += temp.amount;
}
item.amount = -item.amount;
if (item.amount < 0)
{
item.amount = 0;
}
}
listSkuWarehouse = objSemiPurchase.Select(a => new
{
a.bailun_sku,
a.warehouse_code,
a.warehouse_name
}).ToList();
listSkuWarehouse.AddRange(objSemiPutin.Select(a => new
{
a.bailun_sku,
a.warehouse_code,
a.warehouse_name
}).ToList());
listSkuWarehouse.AddRange(objSemiProduction.Select(a => new
{
a.bailun_sku,
a.warehouse_code,
a.warehouse_name
}).ToList());
listSkuWarehouse = listSkuWarehouse.Distinct().ToList();
tempList = new List<SkuWarehouse>();
foreach (var item in listSkuWarehouse)
{
if (tempList.Where(a => a.bailun_sku.ToLower() == item.bailun_sku.ToLower() && a.warehouse_code == item.warehouse_code).Count() <= 0)
{
tempList.Add(new SkuWarehouse
{
bailun_sku = item.bailun_sku,
warehouse_code = item.warehouse_code,
warehouse_name = item.warehouse_name
});
}
}
var listSemi = new List<dc_daily_purchase_sales>();
foreach (var item in tempList)
{
sql = $@"select t1.warehouse_code,t2.warehouse_name,t1.bailun_sku,t1.usable_stock,(t1.usable_stock*t3.unit_price) as stockAmount from dc_base_stock t1 left join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code left join dc_base_sku t3 on t1.bailun_sku=t3.bailun_sku where t1.bailun_sku='{item.bailun_sku}' and t1.warehouse_code='{item.warehouse_code}'";
var objStock = cn.QueryFirstOrDefault<Models.mStock>(sql, null, null, 5 * 60);
sql = $@"select t1.warehouse_code,t1.bailun_sku,t1.usable_stock,(t1.usable_stock*t1.unit_price) as stockAmount from dc_daily_stock t1 where t1.record_time='{start.AddDays(-1).ToString("yyyy-MM-dd")}' and t1.bailun_sku='{item.bailun_sku}' and t1.warehouse_code='{item.warehouse_code}'";
var objPreStock = cn.QueryFirstOrDefault<Models.mStock>(sql, null, null, 5 * 60);
var m = new dc_daily_purchase_sales
{
day = DateTime.Parse(start.ToShortDateString()),
createtime = DateTime.Now,
bailun_sku = item.bailun_sku,
warehouse_code = item.warehouse_code,
warehouse_name = item.warehouse_name,
amount_purchase = 0,
amount_putin = 0,
amount_sales = 0,
count_purchase = 0,
count_putin = 0,
count_sales = 0,
difference_amount = 0,
difference_count = 0,
diff_putin_amount = 0,
diff_putin_count = 0,
stock_start = 0,
stockamount_start = 0,
isfinish = 1,
};
//期末
//var objEnd = objStock.Where(a => a.bailun_sku == item.bailun_sku && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (objStock != null)
{
m.stock_end = objStock.usable_stock;
m.stockamount_end = objStock.stockAmount;
}
//期初
//var objPre = objPreStock.Where(a => a.bailun_sku == item.bailun_sku && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (objPreStock != null)
{
m.stock_start = objPreStock.usable_stock;
m.stockamount_start = objPreStock.stockAmount;
}
//采购下单数
var objP = objPurchase.Where(a => a.bailun_sku.ToLower() == item.bailun_sku.ToLower() && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (objP != null)
{
m.count_purchase = objP.count;
m.amount_purchase = objP.amount;
}
//卖出数
var objS = objSales.Where(a => a.bailun_sku.ToLower() == item.bailun_sku.ToLower() && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (objS != null)
{
m.count_sales = objS.count;
m.amount_sales = objS.amount;
}
//入库数
var objPI = objPutin.Where(a => a.bailun_sku.ToLower() == item.bailun_sku.ToLower() && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (objPI != null)
{
m.count_putin = objPI.count;
m.amount_putin = objPI.amount;
}
//发货数
var objShip = objShipping.Where(a => a.bailun_sku.ToLower() == item.bailun_sku.ToLower() && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (objShip != null)
{
m.count_shipping = objShip.count;
m.amount_shipping = objShip.amount;
}
m.difference_count = m.count_purchase - m.count_sales;
m.difference_amount = m.amount_purchase - m.amount_sales;
m.diff_putin_count = m.count_putin - m.count_shipping;
m.diff_putin_amount = m.amount_putin - m.amount_shipping;
list.Add(m);
}
#endregion
if (list.Count > 0) if (list.Count > 0)
{ {
Save(cn, list, DateTime.Parse(start.ToString("yyyy-MM-dd"))); Save(cn, list, DateTime.Parse(start.ToString("yyyy-MM-dd")));
......
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