Commit 5f1ab644 by guanzhenshan

数据仓、逻辑 仓增加sku分类多选筛选条件

parent 94084277
......@@ -674,13 +674,13 @@ namespace Dapper
/// <param name="total"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static IEnumerable<T> Page<T>(this IDbConnection connection, int page, int pagesize, string strsql, ref int total, object parameters = null,string countsql="")
public static IEnumerable<T> Page<T>(this IDbConnection connection, int page, int pagesize, string strsql, ref int total, object parameters = null,string countsql="",int? timeout=null)
{
total = connection.ExecuteScalar<int>((string.IsNullOrEmpty(countsql)?"select count(0) from (" + strsql + ") tb1":countsql),parameters);
strsql += " limit " + (page - 1) * pagesize + "," + pagesize;
return connection.Query<T>(strsql, parameters);
return connection.Query<T>(strsql, parameters,null,true,timeout);
}
......
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models.Api
{
public class mSkuCategoryTree
{
public int id { get; set; }
public string name { get; set; }
public bool open { get; set; }
public List<mSkuCategoryTree> children { get; set; }
}
}
......@@ -27,6 +27,11 @@ namespace Bailun.DC.Models.Stock
public string sku_image { get; set; }
/// <summary>
/// 是否已推送产品库
/// </summary>
public int push_status { get; set; }
/// <summary>
/// 分类名称
/// </summary>
public string category_name { get; set; }
......
......@@ -222,4 +222,6 @@ namespace Bailun.DC.Services
public DateTime CreateTime { get; set; }
}
#endregion
}
......@@ -4,6 +4,7 @@ using System.Text;
using Bailun.DC.Models;
using Dapper;
using MySql.Data.MySqlClient;
using System.Linq;
namespace Bailun.DC.Services
{
......@@ -28,10 +29,11 @@ namespace Bailun.DC.Services
/// <param name="searchkey">搜索关键字,sku</param>
/// <param name="total"></param>
/// <returns></returns>
public List<dc_sku_monitor> List(int page, int pagesize, string warehousetype, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey, ref int total)
public List<dc_sku_monitor> List(int page, int pagesize, string warehousetype, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey,string skucategoryids, ref int total)
{
var sqlparams = new DynamicParameters();
var sql = @"select t4.hq_type as warehousetype,t4.warehouse_name as warehousename,t0.bailun_sku as sku,t2.category_name as categoryname,t2.sku_title_cn as skuname,t1.monitorstatus,t1.clearancestatus,t1.tortstatus,t1.str_skutag,t2.unit_price as buyprice,t3.usable_stock as inventorycount,t2.unit_price*t3.usable_stock as inventoryamount,t5.quantity_purchase as purchaseonwaycount,t5.quantity_transfer as allotcount
from (SELECT t1.warehouse_code,t1.bailun_sku FROM dc_mid_transit AS t1 union SELECT t1.warehouse_code,t1.bailun_sku FROM dc_base_stock AS t1) t0
left join dc_base_stock t3 on t0.bailun_sku=t3.bailun_sku and t0.warehouse_code=t3.warehouse_code
......@@ -101,6 +103,28 @@ namespace Bailun.DC.Services
sql += " and t0.bailun_sku like @searchkey";
sqlparams.Add("searchkey", "%"+searchkey+"%");
}
if (!string.IsNullOrWhiteSpace(skucategoryids))
{
var arr = skucategoryids.Split('|').Where(a => !string.IsNullOrEmpty(a)).ToList();
if (arr.Count > 0)
{
//获取选中分类下所有的分类
var AllCategory = Services.CommonServices.GetCategoryList(0);
var listcategory = new List<Models.Common.CategoryDto>();
foreach (var item in arr)
{
listcategory.AddRange(Services.CommonServices.GetCategoryListAll(AllCategory, int.Parse(item)));
}
var s = string.Join(",", listcategory.Select(a => a.C_ID));
if (!string.IsNullOrEmpty(s))
{
sql += " and t2.category_id in (" + s + ")";
}
}
}
sql += " order by t1.monitorstatus desc,t3.usable_stock desc";
......@@ -134,7 +158,7 @@ namespace Bailun.DC.Services
/// <param name="skucategory"></param>
/// <param name="searchkey"></param>
/// <returns></returns>
public dc_sku_monitor ListCount(string warehousetype, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey)
public dc_sku_monitor ListCount(string warehousetype, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory,string skucategoryids, string searchkey)
{
var sqlparams = new DynamicParameters();
......@@ -208,6 +232,28 @@ namespace Bailun.DC.Services
sqlparams.Add("searchkey", "%" + searchkey + "%");
}
if (!string.IsNullOrWhiteSpace(skucategoryids))
{
var arr = skucategoryids.Split('|').Where(a => !string.IsNullOrEmpty(a)).ToList();
if (arr.Count > 0)
{
//获取选中分类下所有的分类
var AllCategory = Services.CommonServices.GetCategoryList(0);
var listcategory = new List<Models.Common.CategoryDto>();
foreach (var item in arr)
{
listcategory.AddRange(Services.CommonServices.GetCategoryListAll(AllCategory, int.Parse(item)));
}
var s = string.Join(",", listcategory.Select(a => a.C_ID));
if (!string.IsNullOrEmpty(s))
{
sql += " and t2.category_id in (" + s + ")";
}
}
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
......
......@@ -4,6 +4,7 @@ using System.Text;
using Bailun.DC.Models;
using Dapper;
using MySql.Data.MySqlClient;
using System.Linq;
namespace Bailun.DC.Services
{
......@@ -75,20 +76,23 @@ namespace Bailun.DC.Services
from dc_base_stock t1
left join dc_mid_transit t2 on t1.warehouse_code=t2.warehouse_code and t1.bailun_sku=t2.bailun_sku
left join dc_base_sku t3 on t1.bailun_sku=t3.bailun_sku
left join dc_base_warehouse t4 on t1.warehouse_code=t4.warehouse_code
left join dc_daily_sales t5 on t1.warehouse_code=t5.warehouse_code and t1.bailun_sku =t5.bailun_sku and t5.record_date = DATE_SUB(curdate(),INTERVAL 1 DAY)
left join dc_daily_sales t5 on t5.record_date = DATE_SUB(curdate(),INTERVAL 1 DAY) and t1.warehouse_code=t5.warehouse_code and t1.bailun_sku =t5.bailun_sku
";
var sqlcount = "select t1.warehouse_code from dc_base_stock t1 ";
if (!string.IsNullOrWhiteSpace(warehousetype))
{
sqlwhere += " and t4.hq_type=@hq_type";
sql += " join dc_base_warehouse t4 on t1.warehouse_code=t4.warehouse_code and t4.hq_type=@hq_type";
sqlparam.Add("hq_type", warehousetype);
sqlcount += " left join dc_base_warehouse t4 on t1.warehouse_code=t4.warehouse_code and hq_type=@hq_type";
sqlcount += " join dc_base_warehouse t4 on t1.warehouse_code=t4.warehouse_code and hq_type=@hq_type";
}
else
{
sql += " left join dc_base_warehouse t4 on t1.warehouse_code=t4.warehouse_code ";
}
if (!string.IsNullOrWhiteSpace(warehouse))
{
sqlwhere += "t1.warehouse_code=@warehouse_code";
......@@ -118,7 +122,7 @@ namespace Bailun.DC.Services
cn.Open();
}
var obj = cn.Page<Models.Stock.mLogicWarehouse>(parameter.pageIndex, parameter.limit, sql+ sqlwhere+ sqlorder, ref total, sqlparam, "select count(*) from (" + sqlcount+ " group by t1.warehouse_code) tb");
var obj = cn.Page<Models.Stock.mLogicWarehouse>(parameter.pageIndex, parameter.limit, sql+ sqlwhere+ sqlorder, ref total, sqlparam, "select count(*) from (" + sqlcount+ " group by t1.warehouse_code) tb",2*60);
return obj.AsList();
}
}
......@@ -137,14 +141,12 @@ namespace Bailun.DC.Services
from dc_base_stock t1
left join dc_mid_transit t2 on t1.warehouse_code=t2.warehouse_code and t1.bailun_sku=t2.bailun_sku
left join dc_base_sku t3 on t1.bailun_sku=t3.bailun_sku
left join dc_base_warehouse t4 on t1.warehouse_code=t4.warehouse_code
left join dc_daily_sales t5 on t1.warehouse_code=t5.warehouse_code and t1.bailun_sku =t5.bailun_sku and t5.record_date = DATE_SUB(curdate(),INTERVAL 1 DAY)
left join dc_daily_sales t5 on t5.record_date = DATE_SUB(curdate(),INTERVAL 1 DAY) and t1.warehouse_code=t5.warehouse_code and t1.bailun_sku =t5.bailun_sku
";
if (!string.IsNullOrWhiteSpace(warehousetype))
{
sqlwhere += " and t4.hq_type=@hq_type";
sql += " join dc_base_warehouse t4 on t1.warehouse_code=t4.warehouse_code and t4.hq_type=@hq_type";
sqlparam.Add("hq_type", warehousetype);
}
if (!string.IsNullOrWhiteSpace(warehouse))
......@@ -160,7 +162,7 @@ namespace Bailun.DC.Services
cn.Open();
}
var obj = cn.QueryFirst<Models.Stock.mLogicWarehouse>(sql + sqlwhere, sqlparam);
var obj = cn.QueryFirst<Models.Stock.mLogicWarehouse>(sql + sqlwhere, sqlparam,null,2*60);
return obj;
}
......@@ -180,11 +182,11 @@ namespace Bailun.DC.Services
/// <param name="stockamountmax">库存金额 max值</param>
/// <param name="total">符合条件的总记录数</param>
/// <returns></returns>
public List<Models.Stock.mSkuWarehouse> ListWareHouseSku(BtTableParameter parameter, string code, int? categoryid, int? minordercount, int? maxordercount, int? stockmin, int? stockmax, decimal? stockamountmin, decimal? stockamountmax,ref int total)
public List<Models.Stock.mSkuWarehouse> ListWareHouseSku(BtTableParameter parameter, string code, int? categoryid, int? minordercount, int? maxordercount, int? stockmin, int? stockmax, decimal? stockamountmin, decimal? stockamountmax, string skucategoryids,int? push_status, ref int total)
{
var sqlparam = new DynamicParameters();
var sql = @"select t1.bailun_sku,t1.warehouse_code,t5.warehouse_name,t2.sku_image,t2.category_name,t2.sku_title_en,t2.sku_title_cn,t1.usable_stock,(t1.usable_stock*t2.unit_price) stockamount,(t3.quantity_purchase) quantity_purchase,(t3.quantity_purchase*t2.unit_price) purchase_amount,(t3.quantity_transfer) quantity_transfer,(t3.quantity_transfer*t2.unit_price) amount_transit,(t4.oneday_total_sales) oneday_total_sales,(t4.oneday_total_sales*t2.unit_price) amount_onedaysale,(t4.sevenday_total_sales) sevenday_total_sales,(t4.fourteenday_total_sales) fourteenday_total_sales,(t4.thirtyday_total_sales) thirtyday_total_sales ";
var sql = @"select t1.bailun_sku,t1.warehouse_code,t5.warehouse_name,t2.sku_image,t2.push_status,t2.category_name,t2.sku_title_en,t2.sku_title_cn,t1.usable_stock,(t1.usable_stock*t2.unit_price) stockamount,(t3.quantity_purchase) quantity_purchase,(t3.quantity_purchase*t2.unit_price) purchase_amount,(t3.quantity_transfer) quantity_transfer,(t3.quantity_transfer*t2.unit_price) amount_transit,(t4.oneday_total_sales) oneday_total_sales,(t4.oneday_total_sales*t2.unit_price) amount_onedaysale,(t4.sevenday_total_sales) sevenday_total_sales,(t4.fourteenday_total_sales) fourteenday_total_sales,(t4.thirtyday_total_sales) thirtyday_total_sales ";
var sqlwhere = @" from dc_base_stock t1
left join dc_base_sku t2 on t1.bailun_sku = t2.bailun_sku
left join dc_mid_transit t3 on t1.bailun_sku = t3.bailun_sku and t1.warehouse_code = t3.warehouse_code
......@@ -237,12 +239,38 @@ namespace Bailun.DC.Services
sqlwhere += " and (t1.usable_stock*t2.unit_price)<@stockamountmax";
sqlparam.Add("stockamountmax", stockamountmax.Value);
}
if (!string.IsNullOrWhiteSpace(skucategoryids))
{
var arr = skucategoryids.Split('|').Where(a => !string.IsNullOrEmpty(a)).ToList();
if (arr.Count > 0)
{
//获取选中分类下所有的分类
var AllCategory = Services.CommonServices.GetCategoryList(0);
var listcategory = new List<Models.Common.CategoryDto>();
foreach (var item in arr)
{
listcategory.AddRange(Services.CommonServices.GetCategoryListAll(AllCategory, int.Parse(item)));
}
var s = string.Join(",", listcategory.Select(a => a.C_ID));
if (!string.IsNullOrEmpty(s))
{
sqlwhere += " and t2.category_id in (" + s + ")";
}
}
}
if (push_status.HasValue)
{
sqlwhere += " and t2.push_status="+push_status.Value;
}
if (!string.IsNullOrEmpty(parameter.sort))
{
sqlwhere += " order by "+parameter.sort+" "+parameter.order;
}
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == System.Data.ConnectionState.Closed)
......
......@@ -36,14 +36,14 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <param name="skucategory"></param>
/// <param name="searchkey"></param>
/// <returns></returns>
public string DataWareHouseJson(Models.BtTableParameter request, string warehousetype, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey)
public string DataWareHouseJson(Models.BtTableParameter request, string warehousetype, string warehousecode, DateTime? start, DateTime? end, int? monitorstatus, int? cleanstatus, int? infringestatus, string skutip, int? storestart, int? storeend, int? skucategory, string searchkey,string skucategoryids)
{
var service = new Services.SkuMonitorServices();
var total = 0;
var obj = service.List(request.pageIndex, request.limit, warehousetype, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, searchkey, ref total);
var obj = service.List(request.pageIndex, request.limit, warehousetype, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, searchkey, skucategoryids, ref total);
var countM = service.ListCount(warehousetype, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, searchkey);
var countM = service.ListCount(warehousetype, warehousecode, start, end, monitorstatus, cleanstatus, infringestatus, skutip, storestart, storeend, skucategory, skucategoryids, searchkey);
countM.skuname = "总计:";
countM.inventoryamount = Math.Round(countM.inventoryamount, 2, MidpointRounding.AwayFromZero);
......
......@@ -1039,6 +1039,46 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
}
/// <summary>
/// 获取sku 一、二级分类
/// </summary>
/// <returns></returns>
[HttpPost]
public string ListSkuCategoryOneAndSecondLevel()
{
var obj = Services.CommonServices.GetCategoryList(1);
var obj1 = Services.CommonServices.GetCategoryList(2);
var listcategory = new List<Models.Api.mSkuCategoryTree>();
foreach (var item in obj)
{
var m = new Models.Api.mSkuCategoryTree();
m.id = item.C_ID;
m.name = item.C_CNAME;
m.open = false;
m.children = new List<Models.Api.mSkuCategoryTree>();
var childrens = obj1.Where(a => a.C_PARENTID == item.C_ID);
if (childrens.Count() > 0)
{
foreach (var second in childrens)
{
m.children.Add(new Models.Api.mSkuCategoryTree {
id = second.C_ID,
name = second.C_CNAME,
open=false,
//children = new List<Models.Api.mSkuCategoryTree>(),
});
}
}
listcategory.Add(m);
}
return JsonConvert.SerializeObject(listcategory);
}
/// <summary>
/// 获取百伦sku的所有分类
/// </summary>
/// <returns></returns>
......
......@@ -108,10 +108,10 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
/// <param name="stockamountmin">库存金额 最小值</param>
/// <param name="stockamountmax">库存金额 最大值</param>
/// <returns></returns>
public string ListWareHouseSkuJson(BtTableParameter parameter, string code, int? categoryid, int? minordercount, int? maxordercount, int? stockmin, int? stockmax, decimal? stockamountmin, decimal? stockamountmax)
public string ListWareHouseSkuJson(BtTableParameter parameter, string code, int? push_status, int? minordercount, int? maxordercount, int? stockmin, int? stockmax, decimal? stockamountmin, decimal? stockamountmax,string skucategoryids)
{
var total = 0;
var obj = new Services.WareHouseServices().ListWareHouseSku(parameter, code, categoryid, minordercount, maxordercount, stockmin, stockmax, stockamountmin, stockamountmax, ref total);
var obj = new Services.WareHouseServices().ListWareHouseSku(parameter, code, null, minordercount, maxordercount, stockmin, stockmax, stockamountmin, stockamountmax, skucategoryids, push_status, ref total);
var list = obj.Select(p => new {
amount_onedaysale = p.amount_onedaysale??0,
......@@ -127,6 +127,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
quantity_transfer = p.quantity_transfer??0,
sevenday_total_sales = p.sevenday_total_sales??0,
push_status = p.push_status==1?"是":"否",
p.sku_image,
p.sku_title_cn,
p.sku_title_en,
......
......@@ -7,10 +7,20 @@
<div class="row">
<div class="col-sm-12">
<div id="leftcontain" style="position:relative;float:left;width:215px;margin-right:-220px;background-color:#fff;height:780px;border-top:solid 1px #E7EAEC;display:none;">
<div id="ztree" class="ztree" style="margin:5px 10px;max-height: 800px;overflow: auto;">
</div>
</div>
<div style="float:right;width:100%;">
<div id="rightcontain">
<div class="ibox-content m-b-sm border-bottom">
<form id="toolbar">
<div class="form-inline" style="line-height:40px;">
<div class="form-group">
<button type="button" class="btn btn-success" onclick="showleft();">分类筛选</button>
</div>
<div class="form-group">
<select id="warehousetype" name="warehousetype" class="form-control">
<option value="">仓库类型不限</option>
<option value="国内仓">国内仓</option>
......@@ -66,15 +76,16 @@
<input id="storeend" name="storeend" class="form-control" type="number" placeholder="结束区间" style="width:100px;" />
</div>
<div class="form-group">
<select id="skucategory" name="skucategory" class="form-control" style="width:180px;">
@*<select id="skucategory" name="skucategory" class="form-control" style="width:180px;">
<option value="">Sku分类不限</option>
</select>
</select>*@
</div>
<div class="form-group">
<input id="searchkey" name="searchkey" class="form-control" type="text" />
</div>
<div class="form-group">
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;搜索</button>
@*<button type="button" class="btn btn-danger" onclick="getChkNode()">测试</button>*@
</div>
</div>
</form>
......@@ -84,17 +95,23 @@
<table id="roletable" style="table-layout:fixed;"></table>
</div>
</div>
</div>
</div>
</div>
@section css{
<link href="~/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" type="text/css" />
<style>
.mules {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;}
</style>
}
@section scripts{
<script src="~/js/jquery.ztree.core.min.js"></script>
<script src="~/js/jquery.ztree.excheck.min.js"></script>
<script type="text/javascript">
var tb;
var zTreeObj;
$(document).ready(function () {
laydate.render({ elem: '#start' });
laydate.render({ elem: '#end' });
......@@ -106,14 +123,17 @@
listwarehouse();
listcategory();
//listcategory();
$('#warehousetype').change(function () {
listwarehouse();
})
listcategory12();
})
function list() {
var columns = [
{ field: 'warehousetype', title: '仓库类型',width:'100' },
{ field: 'warehousename', title: '仓库名称', width: '130' },
......@@ -155,7 +175,15 @@
{ field: 'sevendaysales_amount', title: '7天总销售额', width: '120', iscount: true }
];
var url = '@Url.Content("~/Reports/Inventory/DataWareHouseJson")' + '?' + $("#toolbar").serialize();
var s = '';
try {
s = getChkNode();
} catch (e) {
s = '';
}
var url = '@Url.Content("~/Reports/Inventory/DataWareHouseJson")' + '?' + $("#toolbar").serialize() + '&skucategoryids=' + s;
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "", {
......@@ -216,6 +244,50 @@
})
}
function listcategory12() {
$.submit({
url: '@Url.Content("~/Reports/Orders/ListSkuCategoryOneAndSecondLevel")',
paramData: '',
type: 'POST',
func: function (result) {
var setting = {
check: {
chkStyle:'checkbox',
enable: true
}
};
zTreeObj = $.fn.zTree.init($("#ztree"), setting, eval('('+result+')'));
}
})
}
function getChkNode() {
var s = '';
var o = $.fn.zTree.getZTreeObj("ztree");
var nodes = o.getCheckedNodes();
for (var i in nodes) {
if (nodes[i].children == null || nodes[i].children.length<=0)
{
s += (nodes[i].id) + '|';
}
}
return s;
}
function showleft() {
var c = $('#leftcontain').css('display');
if (c == 'none') {
$('#leftcontain').css('display', 'inline');
$("#rightcontain").animate({ marginLeft: "220px" });
}
else {
$('#leftcontain').css('display', 'none');
$("#rightcontain").animate({ marginLeft: "0px" });
}
}
</script>
}
......@@ -6,35 +6,49 @@
<div class="row">
<div class="col-sm-12">
<div id="leftcontain" style="position:relative;float:left;width:215px;margin-right:-220px;background-color:#fff;height:600px;border-top:solid 1px #E7EAEC;display:none;">
<div id="ztree" class="ztree" style="margin:5px 10px;max-height: 600px;overflow: auto;">
</div>
</div>
<div style="float:right;width:100%;">
<div id="rightcontain">
<div class="ibox-content m-b-sm border-bottom">
<form id="toolbar">
<input id="code" name="code" type="hidden" value="@ViewBag.warehousecode" />
<div class="form-inline" style="line-height:40px;">
<div class="form-group">
<label for="categoryid">sku分类</label>
<select id="categoryid" name="categoryid" class="form-control" style="width:180px;">
<option value="">请选择sku分类</option>
<label>&nbsp;</label>
<button type="button" class="btn btn-success" onclick="showleft();">分类筛选</button>
</div>
<div class="form-group">
<label>产品库</label>
<select id="push_status" name="push_status" class="form-control">
<option value="">是否已推送产品库</option>
<option value="1">是</option>
<option value="0">否</option>
</select>
</div>
<div class="form-group">
<label>14日日均销量</label>
<input id="minordercount" name="minordercount" class="form-control" type="number" style="width:140px;" placeholder="14日均销量开始" />
<input id="minordercount" name="minordercount" class="form-control" type="number" style="width:135px;" placeholder="14日均销量开始" />
<span>至</span>
<input id="maxordercount" name="maxordercount" class="form-control" type="number" style="width:140px;" placeholder="14日均销量结束" />
<input id="maxordercount" name="maxordercount" class="form-control" type="number" style="width:135px;" placeholder="14日均销量结束" />
</div>
<div class="form-group">
<label>库存数量</label>
<input id="stockmin" name="stockmin" class="form-control" type="number" style="width:140px;" placeholder="库存数量开始" />
<input id="stockmin" name="stockmin" class="form-control" type="number" style="width:135px;" placeholder="库存数量开始" />
<span>至</span>
<input id="stockmax" name="stockmax" class="form-control" type="number" style="width:140px;" placeholder="库存数量结束" />
<input id="stockmax" name="stockmax" class="form-control" type="number" style="width:135px;" placeholder="库存数量结束" />
</div>
<div class="form-group">
<label>库存金额</label>
<input id="stockamountmin" name="stockamountmin" class="form-control" type="number" style="width:140px;" placeholder="库存金额开始" />
<input id="stockamountmin" name="stockamountmin" class="form-control" type="number" style="width:125px;" placeholder="库存金额开始" />
<span>至</span>
<input id="stockamountmax" name="stockamountmax" class="form-control" type="number" style="width:140px;" placeholder="库存金额结束" />
<input id="stockamountmax" name="stockamountmax" class="form-control" type="number" style="width:125px;" placeholder="库存金额结束" />
</div>
<div class="form-group">
<label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
</div>
</div>
......@@ -45,8 +59,11 @@
<table id="roletable" style="table-layout:fixed;"></table>
</div>
</div>
</div>
</div>
</div>
@section css{
<link href="~/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" type="text/css" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<style>
.mules {
......@@ -57,9 +74,12 @@
</style>
}
@section scripts{
<script src="~/js/jquery.ztree.core.min.js"></script>
<script src="~/js/jquery.ztree.excheck.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<script type="text/javascript">
var tb;
var zTreeObj;
$(document).ready(function () {
var height = document.body.clientHeight;
$("#roletable").attr("data-height", (height - 160));
......@@ -68,20 +88,31 @@
//listwarehouse();
listcategory();
//listcategory();
$("#categoryid").select2({
//tags: true,
//maximumSelectionLength: 3 //最多能够选择的个数
});
listcategory12();
})
function list() {
var columns = [
{ field: 'bailun_sku', title: 'sku编码', width: '160', sortable: true },
{
field: 'bailun_sku', title: 'sku编码', width: '160', sortable: true, formatter: function (idx, data) {
if (data.push_status == '是') {
return '<a href="http://pro.bailuntec.com/proMgr/productMgr?skuCode=' + data.bailun_sku + '" target="_blank" >' + data.bailun_sku + '</a>';
}
return data.bailun_sku;
}
},
{ field: 'warehouse_name', title: '所在仓库', width: '110', sortable: true },
{
field: 'push_status', title: '推送产品库', width: '120', sortable: true, formatter: function (idx, data) {
var s = '<span style="color:' + (data.push_status=='是'?"#01B468":"red") + ';">' + data.push_status + '</span>';
return s;
}
},
{
field: 'sku_image', title: '主图', width: '80', sortable: false, formatter: function (idx, data) {
var s = '<img src="' + data.sku_image + '" style="width:60px" />';
return s;
......@@ -131,7 +162,15 @@
{ field: 'thirtyday_total_sales', title: '三十天销量', width: '130', sortable: true }
];
var url = '@Url.Content("~/Reports/Warehouse/ListWareHouseSkuJson")' + '?' + $("#toolbar").serialize();
var s = '';
try {
s = getChkNode();
} catch (e) {
s = '';
}
var url = '@Url.Content("~/Reports/Warehouse/ListWareHouseSkuJson")' + '?' + $("#toolbar").serialize() + '&skucategoryids=' + s;
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "",);
......@@ -173,6 +212,50 @@
})
}
function listcategory12() {
$.submit({
url: '@Url.Content("~/Reports/Orders/ListSkuCategoryOneAndSecondLevel")',
paramData: '',
type: 'POST',
func: function (result) {
var setting = {
check: {
chkStyle:'checkbox',
enable: true
}
};
zTreeObj = $.fn.zTree.init($("#ztree"), setting, eval('('+result+')'));
}
})
}
function getChkNode() {
var s = '';
var o = $.fn.zTree.getZTreeObj("ztree");
var nodes = o.getCheckedNodes();
for (var i in nodes) {
if (nodes[i].children == null || nodes[i].children.length<=0)
{
s += (nodes[i].id) + '|';
}
}
return s;
}
function showleft() {
var c = $('#leftcontain').css('display');
if (c == 'none') {
$('#leftcontain').css('display', 'inline');
$("#rightcontain").animate({ marginLeft: "220px" });
}
else {
$('#leftcontain').css('display', 'none');
$("#rightcontain").animate({ marginLeft: "0px" });
}
}
</script>
}
......
/*-------------------------------------
zTree Style
version: 3.5.19
author: Hunter.z
email: hunter.z@263.net
website: http://code.google.com/p/jquerytree/
-------------------------------------*/
.ztree * {padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif}
.ztree {margin:0; padding:5px; color:#333}
.ztree li{padding:0; margin:0; list-style:none; line-height:14px; text-align:left; white-space:nowrap; outline:0}
.ztree li ul{ margin:0; padding:0 0 0 18px}
.ztree li ul.line{ background:url(./img/line_conn.gif) 0 0 repeat-y;}
.ztree li a {padding:1px 3px 0 0; margin:0; cursor:pointer; height:17px; color:#333; background-color: transparent;
text-decoration:none; vertical-align:top; display: inline-block}
.ztree li a:hover {text-decoration:underline}
.ztree li a.curSelectedNode {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
.ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
.ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#316AC5; color:white; height:16px; border:1px #316AC5 solid;
opacity:0.8; filter:alpha(opacity=80)}
.ztree li a.tmpTargetNode_prev {}
.ztree li a.tmpTargetNode_next {}
.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0;
font-size:12px; border:1px #7EC4CC solid; *border:0px}
.ztree li span {line-height:16px; margin-right:2px}
.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
border:0 none; cursor: pointer;outline:none;
background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
.ztree li span.button.chk {width:13px; height:13px; margin:0 3px 0 0; cursor: auto}
.ztree li span.button.chk.checkbox_false_full {background-position:0 0}
.ztree li span.button.chk.checkbox_false_full_focus {background-position:0 -14px}
.ztree li span.button.chk.checkbox_false_part {background-position:0 -28px}
.ztree li span.button.chk.checkbox_false_part_focus {background-position:0 -42px}
.ztree li span.button.chk.checkbox_false_disable {background-position:0 -56px}
.ztree li span.button.chk.checkbox_true_full {background-position:-14px 0}
.ztree li span.button.chk.checkbox_true_full_focus {background-position:-14px -14px}
.ztree li span.button.chk.checkbox_true_part {background-position:-14px -28px}
.ztree li span.button.chk.checkbox_true_part_focus {background-position:-14px -42px}
.ztree li span.button.chk.checkbox_true_disable {background-position:-14px -56px}
.ztree li span.button.chk.radio_false_full {background-position:-28px 0}
.ztree li span.button.chk.radio_false_full_focus {background-position:-28px -14px}
.ztree li span.button.chk.radio_false_part {background-position:-28px -28px}
.ztree li span.button.chk.radio_false_part_focus {background-position:-28px -42px}
.ztree li span.button.chk.radio_false_disable {background-position:-28px -56px}
.ztree li span.button.chk.radio_true_full {background-position:-42px 0}
.ztree li span.button.chk.radio_true_full_focus {background-position:-42px -14px}
.ztree li span.button.chk.radio_true_part {background-position:-42px -28px}
.ztree li span.button.chk.radio_true_part_focus {background-position:-42px -42px}
.ztree li span.button.chk.radio_true_disable {background-position:-42px -56px}
.ztree li span.button.switch {width:18px; height:18px}
.ztree li span.button.root_open{background-position:-92px -54px}
.ztree li span.button.root_close{background-position:-74px -54px}
.ztree li span.button.roots_open{background-position:-92px 0}
.ztree li span.button.roots_close{background-position:-74px 0}
.ztree li span.button.center_open{background-position:-92px -18px}
.ztree li span.button.center_close{background-position:-74px -18px}
.ztree li span.button.bottom_open{background-position:-92px -36px}
.ztree li span.button.bottom_close{background-position:-74px -36px}
.ztree li span.button.noline_open{background-position:-92px -72px}
.ztree li span.button.noline_close{background-position:-74px -72px}
.ztree li span.button.root_docu{ background:none;}
.ztree li span.button.roots_docu{background-position:-56px 0}
.ztree li span.button.center_docu{background-position:-56px -18px}
.ztree li span.button.bottom_docu{background-position:-56px -36px}
.ztree li span.button.noline_docu{ background:none;}
.ztree li span.button.ico_open{margin-right:2px; background-position:-110px -16px; vertical-align:top; *vertical-align:middle}
.ztree li span.button.ico_close{margin-right:2px; background-position:-110px 0; vertical-align:top; *vertical-align:middle}
.ztree li span.button.ico_docu{margin-right:2px; background-position:-110px -32px; vertical-align:top; *vertical-align:middle}
.ztree li span.button.edit {margin-right:2px; background-position:-110px -48px; vertical-align:top; *vertical-align:middle}
.ztree li span.button.remove {margin-right:2px; background-position:-110px -64px; vertical-align:top; *vertical-align:middle}
.ztree li span.button.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)}
span.tmpzTreeMove_arrow {width:16px; height:16px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute;
background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
background-position:-110px -80px; background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)}
.zTreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute}
/* level style*/
/*.ztree li span.button.level0 {
display:none;
}
.ztree li ul.level0 {
padding:0;
background:none;
}*/
\ No newline at end of file
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