Commit 36baf9a7 by guanzhenshan

完成管理成品报表子项明细导出

parent e45f40ae
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="CommonHelper.cs" />
<Compile Include="GlobalConfig.cs" /> <Compile Include="GlobalConfig.cs" />
<Compile Include="HttpHelper.cs" /> <Compile Include="HttpHelper.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace Bailun.DC.Common
{
public class CommonHelper
{
/// <summary>
/// MD5 32位加密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public static string md5Encrypt(string encryptString)
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] data = md5.ComputeHash(Encoding.UTF8.GetBytes(encryptString));
string sb = "";
for (int i = 0; i < data.Length; i++)
{
sb += Convert.ToString(data[i], 16).PadLeft(2, '0');
}
sb = sb.PadLeft(32, '0');
return sb;
}
}
}
...@@ -11,5 +11,10 @@ namespace Bailun.DC.Common ...@@ -11,5 +11,10 @@ namespace Bailun.DC.Common
public static string ConnectionString = "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;"; public static string ConnectionString = "server=gz-cdb-kp7s5i79.sql.tencentcdb.com;port=61691;database=bailun_datacenter;uid=root;password=#7kfnymAM$Y9-Ntf;";
public static string OAUrl = "http://www.bailuntec.com"; public static string OAUrl = "http://www.bailuntec.com";
/// <summary>
/// sku分类url
/// </summary>
public static string SkumsCategory = "http://api.sku.bailuntec.com/api/BailunCateData/GetAllCategoryList";
} }
} }
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models.Common
{
public class ApiEntrance
{
public string code { get; set; }
public string data { get; set; }
public string key { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models.Common
{
public class ApiResult
{
public string data { get; set; }
public int result_code { get; set; }
public string result_msg { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models.Common
{
public class CategoryDto
{
public int C_ID { get; set; }
public int C_PARENTID { get; set; }
private string _c_name;
public string C_NAME
{
get
{
if (string.IsNullOrWhiteSpace(C_CNAME))
return _c_name;
else
return C_CNAME;
}
set { _c_name = value; }
}
public string C_CNAME { get; set; }
public string C_PY { get; set; }
public string C_KEY { get; set; }
public string C_SORT { get; set; }
public int C_LEVEL { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models.Stock
{
public class mSkuWarehouse
{
/// <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 string sku_image { get; set; }
/// <summary>
/// 分类名称
/// </summary>
public string category_name { get; set; }
/// <summary>
/// 英文标题
/// </summary>
public string sku_title_en { get; set; }
/// <summary>
/// 中文标题
/// </summary>
public string sku_title_cn { get; set; }
/// <summary>
/// 库存数量
/// </summary>
public int? usable_stock { get; set; }
/// <summary>
/// 库存金额
/// </summary>
public decimal? amount_stock { get; set; }
/// <summary>
/// 采购在途数量
/// </summary>
public int? quantity_purchase { get; set; }
/// <summary>
/// 采购在途金额
/// </summary>
public decimal? purchase_amount { get; set; }
/// <summary>
/// 调拨在途数量
/// </summary>
public int? quantity_transfer { get; set; }
/// <summary>
/// 调拨在途金额
/// </summary>
public decimal? amount_transit { get; set; }
/// <summary>
/// 待发货数
/// </summary>
public int? noshippingcount { get; set; }
/// <summary>
/// 缺货数
/// </summary>
public int? nostockcount { get; set; }
/// <summary>
/// 昨日销量
/// </summary>
public int? oneday_total_sales { get; set; }
/// <summary>
/// 昨日销售额
/// </summary>
public decimal? amount_onedaysale { get; set; }
/// <summary>
/// 七天销量
/// </summary>
public int? sevenday_total_sales { get; set; }
/// <summary>
/// 十四天销量
/// </summary>
public int? fourteenday_total_sales { get; set; }
/// <summary>
/// 三十天销量
/// </summary>
public int? thirtyday_total_sales { get; set; }
}
}
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text; using System.Text;
using Bailun.DC.Common; using Bailun.DC.Common;
using Bailun.DC.Models; using Bailun.DC.Models;
...@@ -135,7 +137,77 @@ namespace Bailun.DC.Services ...@@ -135,7 +137,77 @@ namespace Bailun.DC.Services
} }
} }
/// <summary>
/// 获取百伦Sku分类
/// </summary>
/// <param name="level"></param>
/// <returns></returns>
public static List<Models.Common.CategoryDto> GetCategoryList(int level = 1)
{
if (level == 0)
{
List<Models.Common.CategoryDto> datas = new List<Models.Common.CategoryDto>();
var tempLevel = 1;
while (true)
{
var tempDatas = GetCategoryList(tempLevel);
if (tempDatas != null && tempDatas.Count >= 1 && level <= 4)
{
datas.AddRange(tempDatas);
}
else
{
return datas;
}
tempLevel++;
}
}
string appId = "SystemDC";
string appKey = "YmFpbHVuREM=";
string url = Common.GlobalConfig.SkumsCategory;
List<Models.Common.CategoryDto> result = new List<Models.Common.CategoryDto>();
Models.Common.ApiEntrance model = new Models.Common.ApiEntrance();
model.code = appId;
model.data = level.ToString();
string sign = Common.CommonHelper.md5Encrypt(appKey + model.code + CommonHelper.md5Encrypt(model.key + model.data));
string resultStr = HttpHelper.NetHelper.Request(url + $"?sign={sign}&appId={appId}&level={level}");
Models.Common.ApiResult apiResult = Newtonsoft.Json.JsonConvert.DeserializeObject<Models.Common.ApiResult>(resultStr);
if (apiResult.result_code == 1)
{
result = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Models.Common.CategoryDto>>(WebUtility.UrlDecode(apiResult.data)).Where(s => s.C_LEVEL == level).ToList();
}
return result;
}
/// <summary>
/// 获取百伦所有sku分类
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
public static List<Models.Common.CategoryDto> GetCategoryListAll(List<Models.Common.CategoryDto> all, int id)
{
// 查询所有数据
if (all == null)
{
all = GetCategoryList(0);
}
List<Models.Common.CategoryDto> clients = all.Where(s => s.C_ID == id).ToList();
var cNodes = all.Where(s => s.C_PARENTID == id).ToList();
if (cNodes != null || cNodes.Count >= 1)
{
foreach (var item in cNodes)
{
clients.AddRange(GetCategoryListAll(all, item.C_ID));
}
}
return clients;
}
} }
......
...@@ -557,15 +557,15 @@ namespace Bailun.DC.Services ...@@ -557,15 +557,15 @@ namespace Bailun.DC.Services
} }
//平台提现在途 //平台提现在途
var onwayAmount = cn.QueryFirstOrDefault<decimal>("select sum(amount_rmb) from dc_withdraw_on_way where statistical_time='" + date.ToString("yyyy-MM-dd") + "'");// and company_value=" + paycompanyid + " group by company_value"); var onwayAmount = cn.QueryFirstOrDefault<decimal?>("select sum(amount_rmb) from dc_withdraw_on_way where statistical_time='" + date.ToString("yyyy-MM-dd") + "'");// and company_value=" + paycompanyid + " group by company_value");
//第三方平台余额 //第三方平台余额
var platformBalance = cn.QueryFirstOrDefault<decimal>("select sum(amount_rmb) from dc_platform_balance where day='" + date.ToString("yyyy-MM-dd") + "' and delstatus=0 ");// and paycompanyid=" + paycompanyid + " group by paycompanyid"); var platformBalance = cn.QueryFirstOrDefault<decimal?>("select sum(amount_rmb) from dc_platform_balance where day='" + date.ToString("yyyy-MM-dd") + "' and delstatus=0 ");// and paycompanyid=" + paycompanyid + " group by paycompanyid");
//主体银行余额 //主体银行余额
var bankBalance = cn.QueryFirstOrDefault<decimal>("select sum(balance_rmb) from dc_bank_account_balance where statistical_time='" + date.ToString("yyyy-MM-dd") + "'");//and company_value=" + paycompanyid + " group by company_value"); var bankBalance = cn.QueryFirstOrDefault<decimal?>("select sum(balance_rmb) from dc_bank_account_balance where statistical_time='" + date.ToString("yyyy-MM-dd") + "'");//and company_value=" + paycompanyid + " group by company_value");
return new Tuple<decimal, decimal, decimal>(onwayAmount, platformBalance, bankBalance); return new Tuple<decimal, decimal, decimal>(onwayAmount??0, platformBalance??0, bankBalance??0);
} }
} }
...@@ -647,11 +647,11 @@ namespace Bailun.DC.Services ...@@ -647,11 +647,11 @@ namespace Bailun.DC.Services
cn.Open(); cn.Open();
} }
var FBABalance = cn.QueryFirstOrDefault<decimal?>("select sum(balance_rmb) from dc_inventory_balance where is_transfer=0 and hq_type='FBA仓' and statistical_time='" + day.ToString("yyyy-MM-dd"));// + "' and 2=" + payid); var FBABalance = cn.QueryFirstOrDefault<decimal?>("select sum(balance_rmb) from dc_inventory_balance where is_transfer=0 and hq_type='FBA仓' and statistical_time='" + day.ToString("yyyy-MM-dd") +"'"); // +and 2=" + payid);
var NoFBABalance = cn.QueryFirstOrDefault<decimal?>("select sum(balance_rmb) from dc_inventory_balance where is_transfer=0 and hq_type!='FBA仓' and statistical_time='" + day.ToString("yyyy-MM-dd"));// + "' and 2=" + payid); var NoFBABalance = cn.QueryFirstOrDefault<decimal?>("select sum(balance_rmb) from dc_inventory_balance where is_transfer=0 and hq_type!='FBA仓' and statistical_time='" + day.ToString("yyyy-MM-dd") + "'"); //and 2=" + payid);
var FBABalance_OnWay = cn.QueryFirstOrDefault<decimal?>("select sum(balance_rmb) from dc_inventory_balance where is_transfer=1 and hq_type='FBA仓' and statistical_time='" + day.ToString("yyyy-MM-dd"));// + "' and 2=" + payid); var FBABalance_OnWay = cn.QueryFirstOrDefault<decimal?>("select sum(balance_rmb) from dc_inventory_balance where is_transfer=1 and hq_type='FBA仓' and statistical_time='" + day.ToString("yyyy-MM-dd") + "'"); //and 2=" + payid);
var NoFBABalance_OnWay = cn.QueryFirstOrDefault<decimal?>("select sum(balance_rmb) from dc_inventory_balance where is_transfer=1 and hq_type!='FBA仓' and statistical_time='" + day.ToString("yyyy-MM-dd"));// + "' and 2=" + payid); var NoFBABalance_OnWay = cn.QueryFirstOrDefault<decimal?>("select sum(balance_rmb) from dc_inventory_balance where is_transfer=1 and hq_type!='FBA仓' and statistical_time='" + day.ToString("yyyy-MM-dd") + "'"); //and 2=" + payid);
var result = new Tuple<decimal, decimal, decimal, decimal>(FBABalance ?? 0, NoFBABalance ?? 0, FBABalance_OnWay ?? 0, NoFBABalance_OnWay ?? 0); var result = new Tuple<decimal, decimal, decimal, decimal>(FBABalance ?? 0, NoFBABalance ?? 0, FBABalance_OnWay ?? 0, NoFBABalance_OnWay ?? 0);
return result; return result;
......
...@@ -94,5 +94,95 @@ namespace Bailun.DC.Services ...@@ -94,5 +94,95 @@ namespace Bailun.DC.Services
} }
} }
/// <summary>
/// Sku仓库列表
/// </summary>
/// <param name="parameter">分页信息</param>
/// <param name="code">仓库编码</param>
/// <param name="categoryid">分类id</param>
/// <param name="minordercount">14日均销量 min值</param>
/// <param name="maxordercount">14日均销量 max值</param>
/// <param name="stockmin">库存 min值</param>
/// <param name="stockmax">库存 max值</param>
/// <param name="stockamountmin">库存金额 min值</param>
/// <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)
{
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 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
left join dc_daily_sales t4 on t1.bailun_sku = t4.bailun_sku and t1.warehouse_code = t4.warehouse_code and t4.record_date = DATE_SUB(curdate(), INTERVAL 0 DAY)
left join dc_base_warehouse t5 on t1.warehouse_code = t5.warehouse_code
where 1=1
";
if (!string.IsNullOrWhiteSpace(code))
{
sqlwhere += " and t1.warehouse_code=@warehouse_code";
sqlparam.Add("warehouse_code", code);
}
if (categoryid.HasValue)
{
sqlwhere += " and t2.category_id=@category_id";
sqlparam.Add("category_id", categoryid.Value);
}
if (minordercount.HasValue && minordercount.Value>0)
{
sqlwhere += " and t4.fourteenday_average_sales>=@minordercount";
sqlparam.Add("minordercount", minordercount.Value);
}
if (maxordercount.HasValue && maxordercount.Value > 0)
{
sqlwhere += " and t4.fourteenday_average_sales<@maxordercount";
sqlparam.Add("maxordercount", maxordercount.Value);
}
if (stockmin.HasValue)
{
sqlwhere += " and t1.usable_stock>=@stockmin";
sqlparam.Add("stockmin", stockmin.Value);
}
if (stockmax.HasValue)
{
sqlwhere += " and t1.usable_stock<@stockmax";
sqlparam.Add("stockmax", stockmax.Value);
}
if (stockamountmin.HasValue)
{
sqlwhere += " and (t1.usable_stock*t2.unit_price)>=@stockamountmin";
sqlparam.Add("stockamountmin", stockamountmin.Value);
}
if (stockamountmax.HasValue)
{
sqlwhere += " and (t1.usable_stock*t2.unit_price)<@stockamountmax";
sqlparam.Add("stockamountmax", stockamountmax.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)
{
cn.Open();
}
var obj = cn.Page<Models.Stock.mSkuWarehouse>(parameter.pageIndex, parameter.limit, sql + sqlwhere, ref total, sqlparam, "select count(*) from (select t1.id " + sqlwhere + ") tb");
return obj.AsList();
}
}
} }
} }
...@@ -471,6 +471,81 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -471,6 +471,81 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
return JsonConvert.SerializeObject(new { total = list.Count, rows = list }); return JsonConvert.SerializeObject(new { total = list.Count, rows = list });
} }
/// <summary>
/// 导出分类管理成品明细
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
/// <param name="paycompanyid"></param>
/// <param name="headname"></param>
/// <param name="categoryname"></param>
/// <param name="type"></param>
/// <param name="issub"></param>
/// <returns></returns>
public ActionResult ExportListAdministrativeCost(DateTime start, DateTime end, int? paycompanyid, string headname, string categoryname, int type, int issub)
{
var url = ConfigHelper.GetByName("FeeUrl") + "?o=0";
url += "&startDate=" + start.ToString("yyyy-MM-dd") + "&endDate=" + end.ToString("yyyy-MM-dd");
if (paycompanyid.HasValue && paycompanyid.Value > 0)
{
url += "&companyValue=" + paycompanyid.Value;
}
if (!string.IsNullOrEmpty(headname))
{
if (type == 1)
{
url += "&departmentName=" + headname;
}
else
{
url += "&companyValue=" + headname;
}
}
if (!string.IsNullOrEmpty(categoryname))
{
if (issub == 0)
{
url += "&feeSuperType=" + categoryname;
}
else
{
url += "&feeSubType=" + categoryname;
}
}
var obj = new Services.FinanceReportServices().ListOtherCost(url);
var colNames = new List<string> {"部门名称","付款主体名称","父级分类", "子分类", "金额",
"币种", "人民币金额" };
var list = new List<string>();
foreach (var item in obj)
{
list.Add(item.departmentName + "|" + item.companyName + "|" + item.feeSuperType + "|" + item.feeSubType + "|" + item.amount + "|" +
item.currency + "|" + item.amountRmb
);
}
var filename = categoryname+"+"+headname+" 管理成本明细" + DateTime.Now.ToString("yyyyMMddHHmmss");
var filepath = _hostingEnvironment.WebRootPath + "\\Files\\Report\\" + DateTime.Now.ToString("yyyy-MM-dd") + "\\";
ToCSV(list, colNames, filename, filepath);
return File("~/Files/Report/" + DateTime.Now.ToString("yyyy-MM-dd") + "/" + filename + ".csv", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename + ".csv");
}
/// <summary>
/// 导出管理成本明细
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
/// <param name="paycompanyid"></param>
/// <returns></returns>
public IActionResult ExportAdministrativeCost(DateTime start, DateTime end, int? paycompanyid) public IActionResult ExportAdministrativeCost(DateTime start, DateTime end, int? paycompanyid)
{ {
var url = ConfigHelper.GetByName("FeeUrl") + "?o=0"; var url = ConfigHelper.GetByName("FeeUrl") + "?o=0";
...@@ -894,7 +969,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -894,7 +969,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
amount_rmb = (m!=null?m.amount_rmb:0), amount_rmb = (m!=null?m.amount_rmb:0),
amount_sales = (m!=null?m.amount_sales:0), amount_sales = (m!=null?m.amount_sales:0),
before_balance = (m!=null?m.before_balance:0), before_balance = (m!=null?m.before_balance:0),
day = (m!=null?m.day: DateTime.Parse("1999-01-01")), day = day,
delstatus = 0, delstatus = 0,
exchangerate = rate.Item2, exchangerate = rate.Item2,
freeze_amount =(m!=null?m.freeze_amount:0), freeze_amount =(m!=null?m.freeze_amount:0),
......
...@@ -475,6 +475,31 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -475,6 +475,31 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
return Json(result); return Json(result);
} }
/// <summary>
/// 获取百伦Sku分类
/// </summary>
/// <param name="level"></param>
/// <returns></returns>
[HttpPost]
public JsonResult ListSkuCategory(int level=1)
{
var obj = Services.CommonServices.GetCategoryList(level);
return Json(obj);
}
/// <summary>
/// 获取百伦sku的所有分类
/// </summary>
/// <returns></returns>
[HttpPost]
public JsonResult ListSkuCategoryAll()
{
var obj = Services.CommonServices.GetCategoryListAll(null, 0);
return Json(obj);
}
#endregion #endregion
} }
} }
\ No newline at end of file
...@@ -60,5 +60,60 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers ...@@ -60,5 +60,60 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
return JsonConvert.SerializeObject(new { total = total, rows = list }); return JsonConvert.SerializeObject(new { total = total, rows = list });
} }
/// <summary>
/// Sku仓库
/// </summary>
/// <param name="code">仓库编码</param>
/// <returns></returns>
public ActionResult ListWareHouseSku(string code)
{
ViewBag.warehousecode = code;
return View();
}
/// <summary>
/// Sku仓库
/// </summary>
/// <param name="parameter">分页信息</param>
/// <param name="code">仓库编码</param>
/// <param name="categoryid">sku分类id</param>
/// <param name="minordercount">14日均销量 最小值</param>
/// <param name="maxordercount">14日均销量 最大值</param>
/// <param name="stockmin">库存 最小值</param>
/// <param name="stockmax">库存 最大值</param>
/// <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)
{
var total = 0;
var obj = new Services.WareHouseServices().ListWareHouseSku(parameter, code, categoryid, minordercount, maxordercount, stockmin, stockmax, stockamountmin, stockamountmax, ref total);
var list = obj.Select(p => new {
amount_onedaysale = p.amount_onedaysale??0,
amount_stock = p.amount_stock??0,
amount_transit = p.amount_transit??0,
p.bailun_sku,
p.category_name,
noshippingcount = p.noshippingcount??0,
nostockcount = p.nostockcount??0,
oneday_total_sales = p.oneday_total_sales??0,
purchase_amount = p.purchase_amount??0,
quantity_purchase = p.quantity_purchase??0,
quantity_transfer = p.quantity_transfer??0,
sevenday_total_sales = p.sevenday_total_sales??0,
p.sku_image,
p.sku_title_cn,
p.sku_title_en,
thirtyday_total_sales = p.thirtyday_total_sales??0,
usable_stock = p.usable_stock??0,
p.warehouse_code,
p.warehouse_name,
});
return JsonConvert.SerializeObject(new { total = total, rows = list });
}
} }
} }
\ No newline at end of file
...@@ -81,7 +81,7 @@ ...@@ -81,7 +81,7 @@
{ field: 'amount', title: '总金额(原币)', width: '140', sortable: true}, { field: 'amount', title: '总金额(原币)', width: '140', sortable: true},
{ field: 'userable_amount', title: '可用余额(原币)', width: '140', sortable: true}, { field: 'userable_amount', title: '可用余额(原币)', width: '140', sortable: true},
{ field: 'freeze_amount', title: '冻结余额(原币)', width: '140', sortable: true}, { field: 'freeze_amount', title: '冻结余额(原币)', width: '140', sortable: true},
{ field: 'puttime', title: '放款时间', width: '130' }, { field: 'puttime', title: '放款时间', width: '130', sortable: true },
{ field: 'exchangerate', title: '汇率', width: '100'}, { field: 'exchangerate', title: '汇率', width: '100'},
{ field: 'amount_rmb', title: '总余额(人民币)', width: '150', sortable: true}, { field: 'amount_rmb', title: '总余额(人民币)', width: '150', sortable: true},
{ field: 'userable_amount_rmb', title: '可用余额(人民币)', width: '140', sortable: true}, { field: 'userable_amount_rmb', title: '可用余额(人民币)', width: '140', sortable: true},
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
<div class="form-group"> <div class="form-group">
<label>&nbsp;</label> <label>&nbsp;</label>
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button> <button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
<button type="button" class="btn btn-success" onclick="ExportCSV()">导出</button>
</div> </div>
</div> </div>
</form> </form>
...@@ -67,5 +68,13 @@ ...@@ -67,5 +68,13 @@
} }
} }
function ExportCSV() {
var start = $('#start').val();
var end = $('#end').val();
window.open('@Url.Content("~/Reports/Finance/ExportListAdministrativeCost")' + '?paycompanyid=' + companyid + '&headname=' + headname + '&categoryname=' + categoryname + '&start=' + start + '&end=' + end + '&type=' + type + '&issub=' + issub, '_blank');
}
</script> </script>
} }

@{
ViewData["Title"] = "Sku仓库";
Layout = "~/Pages/Shared/_MainLayout.cshtml";
}
<div class="row">
<div class="col-sm-12">
<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>
</select>
</div>
<div class="form-group">
<label>14日日均销量</label>
<input id="minordercount" name="minordercount" class="form-control" type="number" style="width:140px;" placeholder="14日均销量开始" />
<span>至</span>
<input id="maxordercount" name="maxordercount" class="form-control" type="number" style="width:140px;" placeholder="14日均销量结束" />
</div>
<div class="form-group">
<label>库存数量</label>
<input id="stockmin" name="stockmin" class="form-control" type="number" style="width:140px;" placeholder="库存数量开始" />
<span>至</span>
<input id="stockmax" name="stockmax" class="form-control" type="number" style="width:140px;" placeholder="库存数量结束" />
</div>
<div class="form-group">
<label>库存金额</label>
<input id="stockamountmin" name="stockamountmin" class="form-control" type="number" style="width:140px;" placeholder="库存金额开始" />
<span>至</span>
<input id="stockamountmax" name="stockamountmax" class="form-control" type="number" style="width:140px;" placeholder="库存金额结束" />
</div>
<div class="form-group">
<button type="button" class="btn btn-primary" onclick="list();"><i class="fa fa-search"></i>&nbsp;查询</button>
</div>
</div>
</form>
</div>
<div class="ibox-content m-b-sm border-bottom">
<table id="roletable" style="table-layout:fixed;"></table>
</div>
</div>
</div>
@section css{
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<style>
.mules {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
}
@section scripts{
<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;
$(document).ready(function () {
var height = document.body.clientHeight;
$("#roletable").attr("data-height", (height - 160));
list();
//listwarehouse();
listcategory();
$("#categoryid").select2({
//tags: true,
//maximumSelectionLength: 3 //最多能够选择的个数
});
})
function list() {
var columns = [
{ field: 'bailun_sku', title: 'sku编码', width: '160', sortable: true },
{ field: 'warehouse_name', title: '所在仓库', width: '110', sortable: true },
{
field: 'sku_image', title: '主图', width: '80', sortable: false, formatter: function (idx, data) {
var s = '<img src="' + data.sku_image + '" style="width:60px" />';
return s;
}
},
{
field: 'category_name', title: '分类名称', width: '160', sortable: false, formatter: function (idx, data) {
return '<div class="mules" title="' + data.category_name + '">' + data.category_name + '</div>';
}
},
{
field: 'sku_title_en', title: '英文标题', width: '160', sortable: false, formatter: function (idx, data) {
return '<div class="mules" title="' + data.sku_title_en + '">' + data.sku_title_en + '</div>';
}
},
{
field: 'sku_title_cn', title: '中文标题', width: '160', sortable: false, formatter: function (idx, data) {
return '<div class="mules" title="' + data.sku_title_cn + '">' + data.sku_title_cn + '</div>';
}
},
{
field: 'usable_stock', title: '库存数量', width: '110', sortable: true
},
{
field: 'amount_stock', title: '库存金额', width: '110', sortable: true
},
{
field: 'quantity_purchase', title: '采购在途数量', width: '130', sortable: true
},
{ field: 'purchase_amount', title: '采购在途金额', width: '130', sortable: true },
{
field: 'quantity_transfer', title: '调拨在途数量', width: '130', sortable: true
},
{
field: 'amount_transit', title: '调拨在途金额', width: '150', sortable: true
},
{
field: 'noshippingcount', title: '待发货数量', width: '130', sortable: true
},
{
field: 'nostockcount', title: '缺货数量', width: '130', sortable: true
},
{ field: 'oneday_total_sales', title: '昨日总销量', width: '130', sortable: true },
{ field: 'amount_onedaysale', title: '昨日总销售额', width: '130', sortable: true },
{ field: 'sevenday_total_sales', title: '七天销量', width: '100', sortable: true },
{ field: 'fourteenday_total_sales', title: '十四天销量', width: '120', sortable: true },
{ field: 'thirtyday_total_sales', title: '三十天销量', width: '130', sortable: true }
];
var url = '@Url.Content("~/Reports/Warehouse/ListWareHouseSkuJson")' + '?' + $("#toolbar").serialize();
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "",);
}
else {
tb.bootstrapTable('refresh', { url: url });
}
}
function listwarehouse() {
$.submit({
url: '@Url.Content("~/Home/ListWareHouse")',
paramData: '',
type:'POST',
func: function (result) {
if (result != null && result != undefined) {
$('#warehousecode').html('<option value="">仓库不限</option>');
for (var i = 0; i < result.length; i++) {
$('#warehousecode').append('<option value="' + result[i].warehouse_code + '">' + result[i].warehouse_name + '</option>');
}
}
}
})
}
function listcategory() {
$.submit({
url: '@Url.Content("~/Reports/Orders/ListSkuCategory")',
paramData: '',
type: 'POST',
func: function (result) {
if (result != null && result != undefined) {
$('#categoryid').html('<option value="">请选择sku分类</option>');
for (var i = 0; i < result.length; i++) {
$('#categoryid').append('<option value="' + result[i].c_ID + '">' + result[i].c_NAME + '</option>');
}
}
}
})
}
</script>
}
...@@ -63,7 +63,11 @@ ...@@ -63,7 +63,11 @@
function list() { function list() {
var columns = [ var columns = [
{ field: 'warehouse_name', title: '存储仓库',width:'190',sortable:true }, {
field: 'warehouse_name', title: '存储仓库', width: '190', sortable: true, formatter: function (idx, data) {
return '<a href="javascript:;" onclick="SkuDetail(\'' + data.warehouse_code + '\')">' + data.warehouse_name + '</a>';
}
},
{ {
field: 'usable_stock', title: '库存数量', width: '110', sortable: true field: 'usable_stock', title: '库存数量', width: '110', sortable: true
}, },
...@@ -119,6 +123,10 @@ ...@@ -119,6 +123,10 @@
}) })
} }
function SkuDetail(code) {
layer_show('Sku仓库', '@Url.Content("~/Reports/Warehouse/ListWareHouseSku?code=")' + code,'90%','90%');
}
</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