Commit 5e5097b6 by guanzhenshan

调整保存SKU采购下单数和发货数据

parent e60211e0
......@@ -39,11 +39,16 @@ namespace Bailun.DC.Models
/// </summary>
public int stock_start { get; set; }
public decimal stockamount_start { get; set; }
/// <summary>
/// 期末库存
/// </summary>
public int stock_end { get; set; }
public decimal stockamount_end { get; set; }
/// <summary>
/// 销售数量
/// </summary>
......
......@@ -855,7 +855,7 @@ namespace Bailun.DC.Services
public List<dc_daily_purchase_sales> ListDailyPurchaseSale(BtTableParameter parameter, DateTime start, DateTime end)
{
//var sql = "select * from dc_daily_purchase_sales ";
var sql = "select * from dc_daily_purchase_sales ";
return null;
}
......
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.SkuDailyPurchaseAndSales.Models
{
public class mStock
{
/// <summary>
/// 仓库编码
/// </summary>
public string warehouse_code { get; set; }
/// <summary>
/// 仓库名称
/// </summary>
public string warehouse_name { get; set; }
/// <summary>
/// Sku
/// </summary>
public string bailun_sku { get; set; }
/// <summary>
/// 可用库存
/// </summary>
public int usable_stock { get; set; }
/// <summary>
/// 仓库金额
/// </summary>
public decimal stockAmount { get; set; }
}
}
......@@ -48,8 +48,13 @@ namespace Bailun.DC.SkuDailyPurchaseAndSales
cn.Open();
}
var sql = $@"select t1.warehouse_code,t1.bailun_sku,t1.usable_stock from dc_base_stock t1";
//var objStock = cn.Query<Models.mSkuCount>()
var 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 ";
var objStock = cn.Query<Models.mStock>(sql, null, null, true, 5 * 60);
sql = $@"select warehouse_code,bailun_sku,usable_stock,(usable_stock*unit_price) as stockAmount from dc_daily_stock where record_time='{start.AddDays(-1).ToString("yyyy-MM-dd")}'";
var objPreStock = cn.Query<Models.mStock>(sql, null, null, true, 5 * 60);
//先保存采购的
sql = $@"select t1.warehouse_code,t1.warehouse_name,t1.bailun_sku,sum(t1.count) count,sum(t1.count*t2.unit_price) amount from dc_base_purchase t1
......@@ -80,53 +85,70 @@ namespace Bailun.DC.SkuDailyPurchaseAndSales
var objPutin = cn.Query<Models.mSkuCount>(sql, null, null, true, 2 * 60).AsList();
var list = new List<dc_daily_purchase_sales>();
foreach (var item in objPurchase)
foreach (var item in objStock)
{
var m = new dc_daily_purchase_sales {
day = DateTime.Parse(start.ToShortDateString()),
bailun_sku = item.bailun_sku,
count_purchase = item.count,
createtime = DateTime.Now,
bailun_sku = item.bailun_sku,
warehouse_code = item.warehouse_code,
warehouse_name = item.warehouse_name,
amount_purchase = item.amount,
stock_end = item.usable_stock,
stockamount_end = item.stockAmount,
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,
};
var sales = objSales.Where(a => a.bailun_sku == item.bailun_sku && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (sales != null)
var objPre = objPreStock.Where(a => a.bailun_sku == item.bailun_sku && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (objPre != null)
{
m.count_sales = sales.count;
m.amount_sales = sales.amount;
m.difference_count = item.count - sales.count;
m.difference_amount = item.amount - sales.amount;
m.stock_start = objPre.usable_stock;
m.stockamount_start = objPre.stockAmount;
}
//采购下单数
var objP = objPurchase.Where(a => a.bailun_sku == item.bailun_sku && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (objP != null)
{
m.count_purchase = objP.count;
m.amount_purchase = objP.amount;
}
foreach (var item in objSales)
//卖出数
var objS = objSales.Where(a => a.bailun_sku == item.bailun_sku && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (objS != null)
{
var m = list.Where(a => a.bailun_sku == item.bailun_sku && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (m == null)
m.count_sales = objS.count;
m.amount_sales = objS.amount;
}
//入库数
var objPI = objPutin.Where(a => a.bailun_sku == item.bailun_sku && a.warehouse_code == item.warehouse_code).FirstOrDefault();
if (objPI != null)
{
m = new dc_daily_purchase_sales {
day = DateTime.Parse(start.ToShortDateString()),
bailun_sku = item.bailun_sku,
count_purchase = 0,
createtime = DateTime.Now,
warehouse_code = item.warehouse_code,
warehouse_name = item.warehouse_name,
amount_purchase = 0,
m.count_putin = objPI.count;
m.amount_putin = objPI.amount;
}
count_sales = item.count,
amount_sales = item.amount,
difference_amount = -item.amount,
difference_count = -item.count,
};
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_sales;
m.diff_putin_amount = m.amount_putin - m.amount_sales;
list.Add(m);
}
}
if (list.Count > 0)
{
......@@ -144,7 +166,7 @@ namespace Bailun.DC.SkuDailyPurchaseAndSales
cn.Execute("delete from dc_daily_purchase_sales where day='" + day.ToString("yyyy-MM-dd") + "'");
var sql = "insert dc_daily_purchase_sales (day,warehouse_code,warehouse_name,bailun_sku,count_sales,amount_sales,count_purchase,amount_purchase,difference_count,difference_amount,createtime) values ";
var sql = "insert dc_daily_purchase_sales (day,warehouse_code,warehouse_name,bailun_sku,count_sales,amount_sales,count_purchase,amount_purchase,difference_count,difference_amount,createtime,stock_start,stockamount_start,stock_end,stockamount_end,count_putin,amount_putin,diff_putin_count,diff_putin_amount) values ";
var str = "";
var index = 0;
var pagesize = 5000;
......@@ -153,7 +175,7 @@ namespace Bailun.DC.SkuDailyPurchaseAndSales
while (index < list.Count)
{
var m = list[index];
str += $"('{m.day.ToString("yyyy-MM-dd")}','{m.warehouse_code}','{m.warehouse_name}','{m.bailun_sku}',{m.count_sales},'{m.amount_sales}','{m.count_purchase}','{m.amount_purchase}','{m.difference_count}','{m.difference_amount}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}'),";
str += $"('{m.day.ToString("yyyy-MM-dd")}','{m.warehouse_code}','{m.warehouse_name}','{m.bailun_sku}',{m.count_sales},'{m.amount_sales}','{m.count_purchase}','{m.amount_purchase}','{m.difference_count}','{m.difference_amount}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}',{m.stock_start},{m.stockamount_start},{m.stock_end},{m.stockamount_end},{m.count_putin},{m.amount_putin},{m.diff_putin_count},{m.diff_putin_amount}),";
if ((index + 1) % pagesize == 0)
{
......
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