Commit 2288b486 by guanzhenshan

资产负债表增加半成品生产库存和明细报表

parent 228be30a
......@@ -183,6 +183,8 @@ namespace Bailun.DC.Models
public decimal? semi_bailun_transfer_amount { get; set; }
[Description("哈尼曼半成品在途")]
public decimal? semi_hani_transfer_amount { get; set; }
[Description("生产库存")]
public decimal? semi_prod_inventory_amount { get; set; }
/// <summary>
/// 一年内到期的非流动资产
......
using System;
using System.Collections.Generic;
using System.Text;
namespace Bailun.DC.Models
{
/// <summary>
/// 半成品生产库存,每日库存记录
/// </summary>
public class dc_semi_stock_prod_daily
{
public int id { get; set; }
public int material_id { get; set; }
public int warehouse_id { get; set; }
public decimal jit_prod_stock { get; set; }
public decimal plan_prod_stock { get; set; }
public string warehouse_name { get; set; }
public string material_code { get; set; }
public string material_name { get; set; }
public string material_category { get; set; }
public decimal new_price { get; set; }
public DateTime record_time { get; set; }
public DateTime gmt_create { get; set; }
public DateTime gmt_modify { get; set; }
}
}
......@@ -62,5 +62,15 @@ namespace Bailun.DC.Models
/// 更新时间
/// </summary>
public DateTime update_time { get; set; }
/// <summary>
/// 期末银行帐号余额
/// </summary>
public decimal amount_rmb2 { get; set; }
/// <summary>
/// 期末统计日期
/// </summary>
public DateTime statistical_time2 { get; set; }
}
}
......@@ -1463,6 +1463,35 @@ namespace Bailun.DC.Services
}
/// <summary>
/// 半成品生产库存
/// </summary>
/// <param name="request">分页信息</param>
/// <param name="day"></param>
/// <param name="payid"></param>
/// <param name="total"></param>
/// <returns></returns>
public List<dc_semi_stock_prod_daily> ListProductionStock(BtTableParameter request, DateTime day, int payid, ref int total)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
var sql = "select * from dc_semi_stock_prod_daily where record_time='" + day.ToString("yyyy-MM-dd") + "'";
if (!string.IsNullOrEmpty(request.sort))
{
sql += " order by " + request.sort + " " + request.order;
}
var obj = cn.Page<dc_semi_stock_prod_daily>(request.pageIndex, request.limit, sql, ref total);
return obj.AsList();
}
}
/// <summary>
/// 获取短期借款明细
/// </summary>
/// <param name="day"></param>
......@@ -5794,5 +5823,44 @@ group by currency";
#endregion
#region 资产负债表两期数据对比明细
public List<dc_withdraw_on_way> BSS_WithdrawOnWay(BtTableParameter request, DateTime start, DateTime end,ref int total)
{
using (var cn = new MySqlConnection(Common.GlobalConfig.ConnectionString))
{
if (cn.State == ConnectionState.Closed)
{
cn.Open();
}
var sql = $@"select t0.*,t1.amount_rmb,t1.statistical_time,t2.amount_rmb as amount_rmb2,t2.statistical_time as statistical_time2 from (
select tb.* from (
select t1.sale_platform,t1.platform,t1.pay_account,t1.bank_card_user,t1.bank_name from dc_withdraw_on_way t1 where t1.statistical_time='{start.ToString("yyyy-MM-dd")}'
union all
select t2.sale_platform,,t2.platform,t2.pay_account,t2.bank_card_user,t1.bank_name from dc_withdraw_on_way t2 where t2.statistical_time='{end.ToString("yyyy-MM-dd")}'
) tb group by tb.bank_card_user,tb.pay_account,tb.sale_platform,tb.platform
) t0
left join dc_withdraw_on_way t1 on t1.sale_platform=t0.sale_platform and t1.platform=t0.platform and t1.pay_account=t0.pay_account and t1.bank_card_user = t0.bank_card_user and t1.statistical_time='{start.ToString("yyyy-MM-dd")}'
left join dc_withdraw_on_way t2 on t2.sale_platform=t0.sale_platform and t2.platform=t0.platform and t2.pay_account=t0.pay_account and t2.bank_card_user = t0.bank_card_user and t2.statistical_time='{end.ToString("yyyy-MM-dd")}'";
var sqlcount = $@"select count(0) from (
select * from (
select t1.sale_platform,t1.platform,t1.pay_account,t1.bank_card_user,t1.bank_name from dc_withdraw_on_way t1 where t1.statistical_time='{start.ToString("yyyy-MM-dd")}'
union all
select t2.sale_platform,,t2.platform,t2.pay_account,t2.bank_card_user,t1.bank_name from dc_withdraw_on_way t2 where t2.statistical_time='{end.ToString("yyyy-MM-dd")}'
) tb group by tb.bank_card_user,tb.pay_account,tb.sale_platform,tb.platform
) t0";
var list = cn.Page<dc_withdraw_on_way>(request.pageIndex, request.limit, sql, ref total,null,sqlcount);
return list.AsList();
}
}
#endregion
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Bailun.DC.Models;
using Newtonsoft.Json;
namespace Bailun.DC.Web.Areas.Reports.Controllers
{
[Area("Reports")]
public class BalanceSheetSubController : Base.BaseController
{
/// <summary>
/// 提现在途
/// </summary>
/// <param name="start">开始时间</param>
/// <param name="end">结束时间</param>
/// <returns></returns>
public ActionResult WithdrawalInWay(DateTime start, DateTime end)
{
ViewBag.start = start.ToString("yyyy-MM-dd");
ViewBag.end = end.ToString("yyyy-MM-dd");
return View();
}
public string WithdrawalInWayJson(BtTableParameter request, DateTime start, DateTime end)
{
var total = 0;
var _services = new Services.FinanceReportServices();
var obj = _services.BSS_WithdrawOnWay(request,start,end,ref total);
var list = obj.Select(a => new {
sale_platform = a.sale_platform,
platform = a.platform,
pay_account = a.pay_account,
bank_name = a.bank_name,
bank_card_user = a.bank_card_user,
amount_rmb = a.amount_rmb.ToString("N2"),
statistical_time = start.ToString("yyyy-MM-dd HH:mm:ss"),
amount_rmb2 = a.amount_rmb2.ToString("N2"),
statistical_time2 = end.ToString("yyyy-MM-dd")
});
return JsonConvert.SerializeObject(new { total = total, rows = list });
}
}
}
\ No newline at end of file
......@@ -156,6 +156,7 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
m.not_fba_transfer_amount = m.not_fba_transfer_amount ?? 0;
m.semi_inventory_amount = m.semi_inventory_amount ?? 0;
m.semi_transfer_amount = m.semi_transfer_amount ?? 0;
m.semi_prod_inventory_amount = m.semi_prod_inventory_amount ?? 0;
m.fba_transfer_allot_amount = m.fba_transfer_allot_amount ?? 0;
......@@ -1864,6 +1865,90 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
}
/// <summary>
/// 半成品生产库存
/// </summary>
/// <param name="date"></param>
/// <param name="paycompanyid"></param>
/// <returns></returns>
public ActionResult SemiProductionStock(DateTime date, int paycompanyid)
{
ViewBag.date = date;
ViewBag.paycompanyid = paycompanyid;
return View();
}
/// <summary>
/// 半成品生产库存
/// </summary>
/// <param name="request">分页信息</param>
/// <param name="date"></param>
/// <param name="paycompanyid"></param>
/// <returns></returns>
public string SemiProductionStockJson(BtTableParameter request, DateTime date, int paycompanyid)
{
var total = 0;
var _services = new Services.FinanceReportServices();
var paycompany = _services.GetPayCompany(paycompanyid);
var obj = _services.ListProductionStock(request, date, paycompanyid, ref total);
var list = obj.Select(a => new {
a.warehouse_name,
a.material_code,
a.material_name,
a.jit_prod_stock,
a.plan_prod_stock,
a.new_price,
record_time = a.record_time.ToString("yyyy-MM-dd")
});
return JsonConvert.SerializeObject(new { total = total, rows = list });
}
/// <summary>
/// 导出半成品生产库存
/// </summary>
/// <param name="date"></param>
/// <param name="paycompanyid"></param>
/// <returns></returns>
public ActionResult SemiProductionStockExport(DateTime date, int paycompanyid)
{
var total = 0;
var _services = new Services.FinanceReportServices();
var request = new BtTableParameter() { offset = 0, limit = 100000 };
var paycompany = _services.GetPayCompany(paycompanyid);
var obj = _services.ListProductionStock(request, date, paycompanyid, ref total);
var colNames = new List<string> { "仓库名称", "Sku编码", "Sku名称", "jit库存", "计划单库存","最新报价","统计日期" };
var list = new List<string>();
foreach (var item in obj)
{
list.Add(item.warehouse_name + "|" + item.material_code + "|" + item.material_name + "|" + item.jit_prod_stock + "|" + item.plan_prod_stock + "|" + item.new_price + "|" + item.record_time.ToString("yyyy-MM-dd"));
}
var guid = Guid.NewGuid().ToString();
var filename = date.ToString("yyyy-MM-dd") + "生产库存明细" + DateTime.Now.ToString("yyyyMMddHHmmss");
var filepath = _hostingEnvironment.WebRootPath + "\\Files\\Report\\" + DateTime.Now.ToString("yyyy-MM-dd") + "\\";
ToCSV(list, colNames, guid, filepath);
var ms = new System.IO.MemoryStream();
using (var f = new System.IO.FileStream(filepath + guid + ".csv", System.IO.FileMode.Open))
{
f.CopyTo(ms);
}
ms.Position = 0;
return File(ms, "text/csv", filename + ".csv");
}
/// <summary>
/// 短期借款明细
/// </summary>
/// <param name="date"></param>
......@@ -5089,7 +5174,38 @@ namespace Bailun.DC.Web.Areas.Reports.Controllers
return File(ms, "text/csv", filename + ".csv");
}
/// <summary>
/// 获取管理成品出纳单的出纳凭证
/// </summary>
/// <param name="no"></param>
/// <returns></returns>
[HttpPost]
public JsonResult GetFeeCashAttachment(string no)
{
var url = "http://api.fee.bailuntec.com/purchase/other/cost/list/getCostDetail?costNo=";
var result = Common.HttpHelper.NetHelper.HttpPost(url + no,"");
if (result == "")
{
return Json(new
{
success = false,
msg = "该费用单没有找到出纳凭证文件。",
});
}
else
{
var json = Newtonsoft.Json.Linq.JObject.Parse(result);
return Json(new {
success = json["cost"]["cashierDownloadPath"].ToString()!="",
msg = (json["cost"]["cashierDownloadPath"].ToString() != ""?"": "该费用单没有找到出纳凭证文件。"),
data = json["cost"]["cashierDownloadPath"].ToString()
});
}
}
#endregion
......

@{
ViewData["Title"] = "提现在途";
Layout = "~/Pages/Shared/_MainLayout.cshtml";
}
@*<div class="ibox-content m-b-sm border-bottom">
<table id="tb" class="table table-hover table-bordered" style="width:100%;">
<thead>
<tr>
<th>付款主体</th>
<th>销售平台名称</th>
<th>支付平台名称</th>
<th>银行帐号</th>
<th>银行名称</th>
<th>持卡人</th>
<th>帐号余额</th>
<th>日期</th>
</tr>
</thead>
@if (ViewBag.list.Count > 0)
{
foreach (var item in ViewBag.list)
{
<tr>
<td>@ViewBag.PayCompanyName</td>
<td>@item.sale_platform</td>
<td>@item.platform</td>
<td>@item.pay_account</td>
<td>@item.bank_name</td>
<td>@item.bank_card_user</td>
<td>@item.amount_rmb.ToString("###,###.##")</td>
<td>@item.statistical_time.ToString("yyyy-MM-dd")</td>
</tr>
}
}
</table>
</div>*@
<div class="row">
<div class="col-sm-12">
<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-primary" onclick="exportFile();">导出</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 scripts{
<script>
var tb;
$(document).ready(function () {
var height = document.body.clientHeight;
$("#roletable").attr("data-height", (height - 170));
list();
})
function list() {
var columns = [
{ field: 'sale_platform', title: '销售平台名称', width: '120', sortable: true },
{ field: 'platform', title: '支付平台名称', width: '130', sortable: true, iscount: true },
{
field: 'pay_account', title: '银行帐号', width: '130', sortable: true, formatter: function (idx, data) {
return '<div class="mules" title="' + data.pay_account + '">' + data.pay_account+'</div>';
}
},
{ field: 'bank_name', title: '银行名称', width: '130', sortable: true },
{ field: 'bank_card_user', title: '持卡人', width: '160', sortable: true },
{ field: 'amount_rmb', title: '期初帐号余额', width: '120', sortable: true },
{ field: 'amount_rmb2', title: '期末帐号余额', width: '120', sortable: true },
];
var url = '@Url.Content("~/Reports/BalanceSheetSub/WithdrawalInWayJson")' + '?start=@(ViewBag.start)&end=@(ViewBag.end)';
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "");
}
else {
tb.bootstrapTable('refresh', { url: url });
}
}
function exportFile() {
window.open('@Url.Content("~/Reports/Finance/WithDrawOnWayExport?date=")' + '@(ViewBag.date)&paycompanyid=@(ViewBag.companyid)',"_blank");
}
</script>
}
......@@ -484,6 +484,20 @@
</div>
<div style="width:8%;"></div>
</div>
<div class="item-row fa fa1" style="width:100%;">
<div style="width:11.5%;color:#bbb;">7.3.生产库存</div>
<div style="width:11.5%;" class="semi_prod_inventory_amount">0</div>
<div style="width:11.5%;" class="semi_prod_inventory_amount">0</div>
<div style="width:11.5%;" class="semi_prod_inventory_amount">0</div>
<div style="width:11.5%;" class="semi_prod_inventory_amount">0</div>
<div style="width:11.5%;" class="semi_prod_inventory_amount">0</div>
<div style="width:11.5%;" class="semi_prod_inventory_amount">0</div>
<div style="width:11.5%;">
<input id="semi_prod_inventory_amount" class="txtinput" type="number" value="0" style="width:110px;height:24px;line-height:24px;" />
<span id="semi_prod_inventory_amount_1"></span>
</div>
<div style="width:8%;"></div>
</div>
<div class="item-row fa fa1" style="width:100%;display:none;">
<div style="width:11.5%;color:#bbb;">8.存货半成品在途</div>
<div style="width:11.5%;" class="semi_transfer_amount">0</div>
......@@ -555,7 +569,7 @@
<div style="width:8%;"><a class="btn btn-primary btn-xs" onclick="UpdateData('fa_other_assets');">更新</a></div>
</div>
<div class="item-row" style="width:100%;">
<div style="width:11.5%;font-weight:bold;" onclick="showitem('fa1', this,1023,'ldzc');">
<div style="width:11.5%;font-weight:bold;" onclick="showitem('fa1', this,1053,'ldzc');">
流动资产合计
<img src="@Url.Content("~/img/downicon.png")" style="width:10px;position:absolute;float:right;margin-top:10px;right:5px;" />
</div>
......@@ -1720,6 +1734,9 @@
case 'nca_deferred_tax_assets':
showdetail(title + ' 递延所得税资产', '@Url.Content("~/Reports/Finance/BalanceSheetSubDetail?type=nca_deferred_tax_assets")&day=' + title + '&paycompanyid=' + paycompany);
return false;
case 'semi_prod_inventory_amount':
showdetail(title + ' 生产库存', '@Url.Content("~/Reports/Finance/SemiProductionStock?type=semi_prod_inventory_amount")&date=' + title + '&paycompanyid=' + paycompany);
return false;
}
return false;
......
......@@ -7,6 +7,9 @@
<div class="row">
<div class="col-sm-12">
<div class="alert alert-warning">
说明:资产负债表的取数时间点是每周二或每月最后一天
</div>
<div class="ibox-content m-b-sm border-bottom">
<form id="toolbar">
<div class="form-inline" style="line-height:40px;">
......@@ -22,7 +25,7 @@
<div class="ibox-content m-b-sm border-bottom">
@*<div id="chart_content" style="height:600px;width:100%;">
</div>*@
</div>*@
<table id="tb" class="table table-hover table-bordered" style="width:100%;">
<thead>
<tr>
......@@ -34,9 +37,7 @@
<th>环比差值%</th>
</tr>
</thead>
<tbody id="tbody_">
</tbody>
<tbody id="tbody_"></tbody>
</table>
</div>
</div>
......@@ -97,7 +98,7 @@
var s = '<tr><td style="text-align:right;width:190px;background:#eee;">' + result.data[i].onelevelname + '</td><td style="background:#eee;">' + result.data[i].sencondlevelname + '</td><td style="background:#eee;">' + result.data[i].start + '</td><td style="background:#eee;">' + result.data[i].end + '</td><td style="background:#eee;">' + result.data[i].diffval + '</td><td style="background:#eee;">' + result.data[i].diff + '</td><tr>';
}
else {
var s = '<tr><td style="text-align:right;width:190px;">' + result.data[i].onelevelname + '</td><td>' + result.data[i].sencondlevelname + '</td><td>' + result.data[i].start + '</td><td>' + result.data[i].end + '</td><td>' + result.data[i].diffval + '</td><td>' + result.data[i].diff + '</td><tr>';
var s = '<tr><td style="text-align:right;width:190px;" onclick="showDetail(\''+result.data[i].sencondlevelname+'\')">' + result.data[i].onelevelname + '</td><td>' + result.data[i].sencondlevelname + '</td><td>' + result.data[i].start + '</td><td>' + result.data[i].end + '</td><td>' + result.data[i].diffval + '</td><td>' + result.data[i].diff + '</td><tr>';
}
$('#tbody_').append(s);
......@@ -108,6 +109,29 @@
})
}
function showDetail(colname) {
var start = $('#start').val();
var end = $('#end').val();
if (start == '' || end == '') {
alert('开始和结束日期必须填写');
return false;
}
var url = '';
if (colname == '1.平台提现在途') {
url = '@Url.Content("~/Reports/BalanceSheetSub/WithdrawalInWay?start=")'+start+'&end='+end;
}
if (url != '') {
layer_show(start + '至' + end + ' ' + colname, url, '90%', '90%');
}
}
function ExportXsl() {
var start = $('#start').val();
var end = $('#end').val();
......
......@@ -52,7 +52,7 @@
{
field: 'no', title: '费用单号', formatter: function (idx, data) {
//return '<div class="mules" title="' + data.no + '">' + data.no + '</div>';
return '<a href="http://fee.bailuntec.com/#/manage_cost?manageCostType=' + data.manageCostType+'&no='+data.no+'" target="_blank">' + data.no + '</a>';
return '<a href="http://fee.bailuntec.com/#/manage_cost?manageCostType=' + data.manageCostType + '&no=' + data.no + '" target="_blank">' + data.no + '</a>' + (data.no==""?"":'<a style="margin-left:5px;color:#aaa;" onclick="showAttachment(\''+data.no+'\');">出纳凭证</a>');
}
},
{ field: 'departmentName', title: '部门名称' },
......@@ -91,5 +91,43 @@
}
function showAttachment(no) {
$.submit({
type:'POST',
url: '@Url.Content("~/Reports/Finance/GetFeeCashAttachment")',
paramData: 'no='+no,
func: function (result) {
if (result.success) {
//alert(result.data);
if (result.data.indexOf('.png') > 0 || result.data.indexOf('.jpg') > 0 || result.data.indexOf('.gif') > 0) {
layer.open({
type: 1,
title: false,
closeBtn: 1,
area: ['auto'],
skin: 'layui-layer-nobg', //没有背景色
shadeClose: true,
content: '<img src="' + result.data + '" style="width:800px;height:540px;" />'
});
}
else {
layer.open({
type: 1,
title: false,
closeBtn: 0,
shadeClose: true,
skin: 'yourclass',
content: '<div style="padding:30px 60px;"><a href="'+result.data+'" target="_blank" >'+下载附件+'</a><div>'
});
}
}
else {
alert(result.msg);
}
}
})
}
</script>
}

@{
ViewData["Title"] = "半成品生产库存明细";
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">
<div class="form-inline" style="line-height:40px;">
<div class="form-group">
<button type="button" class="btn btn-primary" onclick="exportFile();">导出</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 scripts{
<script>
var tb;
$(document).ready(function () {
var height = document.body.clientHeight;
$("#roletable").attr("data-height", (height - 100));
list();
})
function list() {
var columns = [
{ field: 'warehouse_name', title: '仓库名称', width: '160', sortable: true },
{ field: 'material_code', title: 'Sku编码', width: '160', sortable: true },
{ field: 'material_name', title: 'Sku名称', width: '160', sortable: true },
{ field: 'jit_prod_stock', title: 'jit库存', width: '120', sortable: true },
{ field: 'plan_prod_stock', title: '计划单库存', width: '120', sortable: true },
{ field: 'new_price', title: '最新报价', width: '120', sortable: true },
{ field: 'record_time', title: '统计日期', width: '110', sortable: false }
];
var url = '@Url.Content("~/Reports/Finance/SemiProductionStockJson")' + '?date=@(ViewBag.date)&paycompanyid=@(ViewBag.paycompanyid)';
if (tb == undefined) {
tb = OnlyTable("roletable", columns, url, "");
}
else {
tb.bootstrapTable('refresh', { url: url });
}
}
function exportFile() {
window.open('@Url.Content("~/Reports/Finance/SemiProductionStockExport?date=")' + '@(ViewBag.date)&paycompanyid=@(ViewBag.paycompanyid)', "_blank");
}
</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