Commit 7e4d9072 by guanzhenshan

库龄列表增加sku名称字段,增加是否成品、原料和产品类型筛选

parent a7e069b7
...@@ -23,5 +23,19 @@ namespace Bailun.DC.Models.Stock ...@@ -23,5 +23,19 @@ namespace Bailun.DC.Models.Stock
public DateTime createtime { get; set; } public DateTime createtime { get; set; }
/// <summary>
/// 仓库类型
/// </summary>
public string warehouse_type { get; set; }
/// <summary>
/// sku产品类型
/// </summary>
public string sku_category { get; set; }
public string sku_name { get; set; }
public decimal amount { get; set; }
} }
} }
...@@ -65,5 +65,15 @@ namespace Bailun.DC.Models ...@@ -65,5 +65,15 @@ namespace Bailun.DC.Models
/// 金额 /// 金额
/// </summary> /// </summary>
public decimal amount { get; set; } public decimal amount { get; set; }
/// <summary>
/// sku名称
/// </summary>
public string sku_name { get; set; }
/// <summary>
/// sku产品类型
/// </summary>
public string sku_category { get; set; }
} }
} }
...@@ -1037,21 +1037,23 @@ namespace Bailun.DC.Services ...@@ -1037,21 +1037,23 @@ namespace Bailun.DC.Services
/// <param name="warehouse">仓库编码</param> /// <param name="warehouse">仓库编码</param>
/// <param name="start">开始时间</param> /// <param name="start">开始时间</param>
/// <param name="end">结束时间</param> /// <param name="end">结束时间</param>
/// <param name="isfinish">1:成品,2:半成品</param>
/// <param name="category">Sku产品分类</param>
/// <param name="total"></param> /// <param name="total"></param>
/// <returns></returns> /// <returns></returns>
public List<dc_mid_stock_date> ListStockDate(BtTableParameter parameter, string sku, string warehousetype, string warehouse,DateTime? start,DateTime? end,string buyername,ref int total) public List<dc_mid_stock_age> ListStockDate(BtTableParameter parameter, string sku, string warehousetype, string warehouse,DateTime? start,DateTime? end,string buyername,int? isfinish,string category, ref int total)
{ {
var sqlparam = new DynamicParameters(); var sqlparam = new DynamicParameters();
//var sql = "select t1.bailun_sku,t1.warehouse_code,t2.warehouse_name,sum(t1.quantity_stock) as quantity_stock,sum(t1.quantity_stock*t1.unit_price) as amount,stock_time from dc_mid_stock_date t1 "; //var sql = "select t1.bailun_sku,t1.warehouse_code,t2.warehouse_name,sum(t1.quantity_stock) as quantity_stock,sum(t1.quantity_stock*t1.unit_price) as amount,stock_time from dc_mid_stock_date t1 ";
var sql = "select t1.bailun_sku,t1.warehouse_code,t2.warehouse_name,t1.stock as quantity_stock,t3.unit_price,(t1.stock*t3.unit_price) as amount,t1.`day` as stock_time from dc_mid_stock_age t1"; var sql = "select t1.bailun_sku,t3.sku_title_cn as sku_name,t1.warehouse_code,t1.warehouse_name,t1.stock,t3.unit_price,(t1.stock*t3.unit_price) as amount,t1.`day`,t1.warehouse_type,t1.sku_category from dc_mid_stock_age t1";
var sqlwhere = " left join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code "; var sqlwhere = " ";
sqlwhere += " left join dc_base_sku t3 on t1.bailun_sku=t3.bailun_sku "; sqlwhere += " left join dc_base_sku t3 on t1.bailun_sku=t3.bailun_sku ";
sqlwhere += " where t1.stock>0 "; sqlwhere += " where t1.stock>0 ";
if (!string.IsNullOrEmpty(warehousetype)) if (!string.IsNullOrEmpty(warehousetype))
{ {
sqlwhere += " and t2.hq_type=@warehousetype "; sqlwhere += " and t1.warehouse_type=@warehousetype ";
sqlparam.Add("warehousetype", warehousetype); sqlparam.Add("warehousetype", warehousetype);
} }
...@@ -1062,7 +1064,6 @@ namespace Bailun.DC.Services ...@@ -1062,7 +1064,6 @@ namespace Bailun.DC.Services
} }
if (!string.IsNullOrEmpty(sku)) if (!string.IsNullOrEmpty(sku))
{ {
sqlwhere += " and t1.bailun_sku = @sku"; sqlwhere += " and t1.bailun_sku = @sku";
...@@ -1083,7 +1084,26 @@ namespace Bailun.DC.Services ...@@ -1083,7 +1084,26 @@ namespace Bailun.DC.Services
sqlwhere += " and t1.day<@end"; sqlwhere += " and t1.day<@end";
sqlparam.Add("end", end.Value.AddDays(1)); sqlparam.Add("end", end.Value.AddDays(1));
} }
if (isfinish.HasValue)
{
if (isfinish.Value == 1) //成品
{
sqlwhere += " and t1.warehouse_type!='半成品仓'";
}
else if (isfinish.Value == 2) //原料
{
sqlwhere += " and t1.warehouse_type='半成品仓'";
}
}
if (!string.IsNullOrWhiteSpace(category))
{
sqlwhere += " and t1.sku_category=@category";
sqlparam.Add("category", category);
}
//sqlwhere += " group by t1.bailun_sku,t1.warehouse_code,stock_time"; //sqlwhere += " group by t1.bailun_sku,t1.warehouse_code,stock_time";
...@@ -1102,12 +1122,12 @@ namespace Bailun.DC.Services ...@@ -1102,12 +1122,12 @@ namespace Bailun.DC.Services
if (parameter.limit == 0) if (parameter.limit == 0)
{ {
var obj = cn.Query<dc_mid_stock_date>(sql + sqlwhere + sqlsort, sqlparam, null, true, 2 * 60).AsList(); var obj = cn.Query<dc_mid_stock_age>(sql + sqlwhere + sqlsort, sqlparam, null, true, 2 * 60).AsList();
return obj; return obj;
} }
else else
{ {
var obj = cn.Page<dc_mid_stock_date>(parameter.pageIndex, parameter.limit, sql + sqlwhere + sqlsort, ref total, sqlparam, "select count(*) from (select t1.bailun_sku,t1.warehouse_code from dc_mid_stock_age t1 " + sqlwhere + ") tb", 2 * 60).AsList(); var obj = cn.Page<dc_mid_stock_age>(parameter.pageIndex, parameter.limit, sql + sqlwhere + sqlsort, ref total, sqlparam, "select count(*) from (select t1.bailun_sku,t1.warehouse_code from dc_mid_stock_age t1 " + sqlwhere + ") tb", 2 * 60).AsList();
return obj; return obj;
} }
...@@ -1123,19 +1143,19 @@ namespace Bailun.DC.Services ...@@ -1123,19 +1143,19 @@ namespace Bailun.DC.Services
/// <param name="start">开始时间</param> /// <param name="start">开始时间</param>
/// <param name="end">结束时间</param> /// <param name="end">结束时间</param>
/// <returns></returns> /// <returns></returns>
public dc_mid_stock_date ListStockDateCount(string sku, string warehousetype, string warehouse, DateTime? start, DateTime? end,string buyername) public dc_mid_stock_age ListStockDateCount(string sku, string warehousetype, string warehouse, DateTime? start, DateTime? end,string buyername, int? isfinish, string category)
{ {
var sqlparam = new DynamicParameters(); var sqlparam = new DynamicParameters();
var sql = "select sum(t1.stock) as quantity_stock,sum(t1.stock*t3.unit_price) as amount from dc_mid_stock_age t1 "; var sql = "select sum(t1.stock) as stock,sum(t1.stock*t3.unit_price) as amount from dc_mid_stock_age t1 ";
var sqlwhere = " left join dc_base_warehouse t2 on t1.warehouse_code=t2.warehouse_code "; var sqlwhere = " ";
sqlwhere += " left join dc_base_sku t3 on t1.bailun_sku=t3.bailun_sku "; sqlwhere += " left join dc_base_sku t3 on t1.bailun_sku=t3.bailun_sku ";
sqlwhere += " where t1.stock>0 "; sqlwhere += " where t1.stock>0 ";
if (!string.IsNullOrEmpty(warehousetype)) if (!string.IsNullOrEmpty(warehousetype))
{ {
sqlwhere += " and t2.hq_type=@warehousetype "; sqlwhere += " and t1.warehouse_type=@warehousetype ";
sqlparam.Add("warehousetype", warehousetype); sqlparam.Add("warehousetype", warehousetype);
} }
...@@ -1169,6 +1189,24 @@ namespace Bailun.DC.Services ...@@ -1169,6 +1189,24 @@ namespace Bailun.DC.Services
} }
if (isfinish.HasValue)
{
if (isfinish.Value == 1) //成品
{
sqlwhere += " and t1.warehouse_type!='半成品仓'";
}
else if (isfinish.Value == 2) //原料
{
sqlwhere += " and t1.warehouse_type='半成品仓'";
}
}
if (!string.IsNullOrWhiteSpace(category))
{
sqlwhere += " and t1.sku_category=@category";
sqlparam.Add("category", category);
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString)) using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{ {
if (cn.State == ConnectionState.Closed) if (cn.State == ConnectionState.Closed)
...@@ -1176,7 +1214,7 @@ namespace Bailun.DC.Services ...@@ -1176,7 +1214,7 @@ namespace Bailun.DC.Services
cn.Open(); cn.Open();
} }
var obj = cn.QueryFirstOrDefault<dc_mid_stock_date>(sql+sqlwhere,sqlparam,null,2 * 60); var obj = cn.QueryFirstOrDefault<dc_mid_stock_age>(sql+sqlwhere,sqlparam,null,2 * 60);
return obj; return obj;
} }
......
...@@ -178,7 +178,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -178,7 +178,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <returns></returns> /// <returns></returns>
[BailunAuthentication(LoginMode.Enforce)] [BailunAuthentication(LoginMode.Enforce)]
[BrowseLog("Bailun_data", "访问【百伦数据中心】->【库存】->【库龄列表】->【查询】页面", 0)] [BrowseLog("Bailun_data", "访问【百伦数据中心】->【库存】->【库龄列表】->【查询】页面", 0)]
public string ListInventoryAgingJson(BtTableParameter parameter, string sku, string warehouse,string warehousetype, int type,string buyername) public string ListInventoryAgingJson(BtTableParameter parameter, string sku, string warehouse,string warehousetype, int type,string buyername,int? isfinish,string category)
{ {
var total = 0; var total = 0;
...@@ -225,26 +225,30 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -225,26 +225,30 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
break; break;
} }
start = DateTime.Parse(start.ToShortDateString());
end = DateTime.Parse(end.ToShortDateString());
var _service = new Services.InventoryServices(); var _service = new Services.InventoryServices();
var obj = _service.ListStockDate(parameter, sku,warehousetype,warehouse, start, end,buyername, ref total); var obj = _service.ListStockDate(parameter, sku,warehousetype,warehouse, start, end,buyername,isfinish,category, ref total);
var objCount = _service.ListStockDateCount(sku, warehousetype, warehouse, start, end,buyername); var objCount = _service.ListStockDateCount(sku, warehousetype, warehouse, start, end,buyername,isfinish,category);
var list = obj.Select(a => new { var list = obj.Select(a => new {
a.bailun_sku, a.bailun_sku,
a.warehouse_code, a.warehouse_code,
a.warehouse_name, a.warehouse_name,
quantity_stock = a.quantity_stock.ToString("N0"), quantity_stock = a.stock.ToString("N0"),
amount = a.amount.ToString("N2"), amount = a.amount.ToString("N2"),
stock_time = (DateTime.Now-a.stock_time).Days+((DateTime.Now - a.stock_time).Hours>0?1:0) +"d" stock_time = (DateTime.Now-a.day).Days+((DateTime.Now - a.day).Hours>0?1:0) +"d",
a.sku_name,
a.sku_category,
}); });
return JsonConvert.SerializeObject(new { total = total, rows = list, return JsonConvert.SerializeObject(new { total = total, rows = list,
count_row = new { count_row = new {
warehouse_name = "总计", warehouse_name = "总计",
quantity_stock = objCount.quantity_stock.ToString("N0"), quantity_stock = objCount.stock.ToString("N0"),
amount = objCount.amount.ToString("N2"), amount = objCount.amount.ToString("N2"),
}, },
isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportInventoryAging", HttpContextHelper.Current.User.GetUserName()), isexport = Services.UserAuthorityServices.checkUserExportAuthority("ExportInventoryAging", HttpContextHelper.Current.User.GetUserName()),
}); });
...@@ -258,7 +262,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -258,7 +262,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <param name="warehouse">仓库编码</param> /// <param name="warehouse">仓库编码</param>
/// <param name="type">库龄,3:3个月以上,6:6个月以上,12:1年以上,24:2年以上,36:3年以上,4:3个月以上,6个月以下,7:6个月以上,12个月以下,13:12个月以上,24个月以下,25:24个月以上,36个月以下</param> /// <param name="type">库龄,3:3个月以上,6:6个月以上,12:1年以上,24:2年以上,36:3年以上,4:3个月以上,6个月以下,7:6个月以上,12个月以下,13:12个月以上,24个月以下,25:24个月以上,36个月以下</param>
/// <returns></returns> /// <returns></returns>
public ActionResult ExportInventoryAging(string sku,string warehousetype, string warehouse, int type,string buyername) public ActionResult ExportInventoryAging(string sku,string warehousetype, string warehouse, int type,string buyername, int? isfinish, string category)
{ {
var typename = ""; var typename = "";
var total = 0; var total = 0;
...@@ -305,15 +309,18 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -305,15 +309,18 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
break; break;
} }
start = DateTime.Parse(start.ToShortDateString());
end = DateTime.Parse(end.ToShortDateString());
var _service = new Services.InventoryServices(); var _service = new Services.InventoryServices();
var obj = _service.ListStockDate(new BtTableParameter { limit=0}, sku, warehousetype, warehouse, start, end, buyername, ref total); var obj = _service.ListStockDate(new BtTableParameter { limit=0}, sku, warehousetype, warehouse, start, end, buyername,isfinish,category, ref total);
var colNames = new List<string> {"sku","仓库编码","仓库名称", "库存数量", "库存金额","库龄(天)"}; var colNames = new List<string> {"sku","sku名称","产品分类","仓库编码","仓库名称", "库存数量", "库存金额","库龄(天)"};
var list = new List<string>(); var list = new List<string>();
foreach (var item in obj) foreach (var item in obj)
{ {
list.Add(item.bailun_sku + "|" + item.warehouse_code + "|" + item.warehouse_name + "|" + item.quantity_stock + "|" + item.amount + "|" + (((DateTime.Now - item.stock_time).Days + ((DateTime.Now - item.stock_time).Hours > 0 ? 1 : 0)) + "d")); list.Add(item.bailun_sku + "|" + item.sku_name.Replace("|","") + "|" +item.sku_category+"|"+ item.warehouse_code + "|" + item.warehouse_name + "|" + item.stock.ToString("N0") + "|" + item.amount + "|" + (((DateTime.Now - item.day).Days + ((DateTime.Now - item.day).Hours > 0 ? 1 : 0)) + "d"));
} }
var guid = Guid.NewGuid().ToString(); var guid = Guid.NewGuid().ToString();
......
...@@ -52,6 +52,20 @@ ...@@ -52,6 +52,20 @@
</select> </select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>&nbsp;</label>
<select id="isfinish" name="isfinish" class="form-control" style="width:160px;">
<option value="">选择成品或原料</option>
<option value="1">成品</option>
<option value="2">原料</option>
</select>
</div>
<div class="form-group">
<label>&nbsp;</label>
<select id="category" name="category" class="form-control" style="width:160px;">
<option value="">选择产品类型</option>
</select>
</div>
<div class="form-group">
<label>采购员名称:</label> <label>采购员名称:</label>
<input id="buyername" name="buyername" class="form-control" style="width:120px" placeholder="采购员名称" /> <input id="buyername" name="buyername" class="form-control" style="width:120px" placeholder="采购员名称" />
</div> </div>
...@@ -94,12 +108,30 @@ ...@@ -94,12 +108,30 @@
$('#warehousetype').change(function () { $('#warehousetype').change(function () {
listwarehouse(); listwarehouse();
}) })
$('#isfinish').change(function () {
if ($(this).val() == '') {
$('#category').html('<option value="">产品类型</option>');
}
else if ($(this).val() == 1) { //成品
listFinanceCategory();
}
else { //半成品
listSemiCategory();
}
})
}) })
function list() { function list() {
var columns = [ var columns = [
{ field: 'bailun_sku', title: 'sku编码', width: '130' }, { field: 'bailun_sku', title: 'sku编码', width: '130' },
{
field: 'sku_name', title: 'sku名称', width: '220', formatter: function (idx, data) {
return '<div class="mules" title="' + data.sku_name + '">' + data.sku_name + '</div>';
}
},
{ field: 'sku_category', title: '产品类型', width: '150' },
{ field: 'warehouse_name', title: '仓库名称', width: '150', iscount: true }, { field: 'warehouse_name', title: '仓库名称', width: '150', iscount: true },
{ field: 'quantity_stock', title: '库存数量', width: '150', iscount: true, sortable: true }, { field: 'quantity_stock', title: '库存数量', width: '150', iscount: true, sortable: true },
{ field: 'amount', title: '库存金额', width: '150', iscount: true, sortable: true }, { field: 'amount', title: '库存金额', width: '150', iscount: true, sortable: true },
...@@ -128,7 +160,7 @@ ...@@ -128,7 +160,7 @@
if (d.isexport == 1) { if (d.isexport == 1) {
$('#btnexport').show(); $('#btnexport').show();
} }
} }
}); });
} }
...@@ -162,6 +194,62 @@ ...@@ -162,6 +194,62 @@
} }
} }
var financecategory;
function listFinanceCategory() {
if (financecategory == undefined) {
$.submit({
url: '@Url.Content("~/Reports/Warehouse/ListFinanceCategory")',
paramData: '',
type: 'POST',
func: function (result) {
if (result != null && result != undefined) {
financecategory = result;
$('#category').html('<option value="">产品类型</option>');
for (var i in financecategory) {
$('#category').append('<option value="' + financecategory[i].financecategoryname + '">' + financecategory[i].financecategoryname + '</option>');
}
}
}
})
}
else {
$('#category').html('<option value="">产品类型</option>');
for (var i in financecategory) {
$('#category').append('<option value="' + financecategory[i].financecategoryname + '">' + financecategory[i].financecategoryname + '</option>');
}
}
}
var semiCategory;
function listSemiCategory() {
if (semiCategory == undefined) {
$('#category').html('<option value="">产品类型</option>');
@*$.submit({
url: '@Url.Content("~/Reports/Warehouse/ListFinanceCategory")',
paramData: '',
type: 'POST',
func: function (result) {
if (result != null && result != undefined) {
semiCategory = result;
$('#category').html('<option value="">产品类型</option>');
for (var i in semiCategory) {
$('#category').append('<option value="' + semiCategory[i].financecategoryid + '">' + semiCategory[i].financecategoryname + '</option>');
}
}
}
})*@
}
else {
$('#category').html('<option value="">产品类型</option>');
for (var i in semiCategory) {
$('#category').append('<option value="' + semiCategory[i].financecategoryname + '">' + semiCategory[i].financecategoryname + '</option>');
}
}
}
</script> </script>
......
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