gdoo/app/Gdoo/Order/views/plan/produce.blade.php

216 lines
8.8 KiB
PHP

<div class="panel b-a" id="{{$header['master_table']}}-controller">
@include('headers')
<div class='gdoo-list-grid'>
<div id="{{$header['master_table']}}-grid" style="width:100%;" class="ag-theme-balham"></div>
</div>
</div>
<script>
(function ($) {
var table = '{{$header["master_table"]}}';
var search = JSON.parse('{{json_encode($header["search_form"])}}');
var columns = [];
var params = search.query;
var grid = new agGridOptions();
grid.remoteDataUrl = '{{url()}}';
grid.remoteParams = params;
grid.defaultColDef.suppressMenu = true;
grid.defaultColDef.sortable = false;
grid.defaultColDef.filter = false;
grid.autoColumnsToFit = false;
grid.singleClickEdit = true;
grid.rowSelection = 'single';
grid.suppressCellSelection = false;
grid.columnDefs = [];
grid.defaultColDef.cellStyle = function(params) {
if (params.node.rowPinned) {
return;
}
var style = {};
var value = params.value || 0;
var field = params.colDef.field;
if ((field.indexOf('produce_plan_num') === 0 || field == "xqzc_num" || field == "kfzc_num" || field == "kfjh_num") && value > 0) {
style = {'color':'red'};
}
return style;
};
grid.components['wfhjh'] = function(params) {
if (params.node.rowPinned) {
return params.value;
}
if (params.value) {
let v = parseFloat(params.value);
return '<a href="javascript:;" data-toggle="produce_data" data-id="'+ params.data.id + '" data-field="'+ params.colDef.field +'" data-product_id="'+ params.data.product_id +'" data-action="wfhjh">'+ (v > 0 ? v : '') +'</a>';
}
return params.value;
};
var gridDiv = document.querySelector("#{{$header['master_table']}}-grid");
new agGrid.Grid(gridDiv, grid);
gridDiv.style.height = getPanelHeight(12);
function setColumns(res) {
var columnDefs = [
{cellClass:'text-center', field: 'sn', type: 'sn', headerName: '序号', width: 50, pinned:'left'},
{cellClass:'text-left', field: 'product_name_spec', headerName: '产品名称', width: 160, pinned:'left'},
{cellClass:'text-right', field: 'kc_num', headerName: '当前库存', width: 70, pinned:'left', type:'number', numberOptions: {places:0}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'dphz_num', headerName: '单品汇总', width: 70, pinned:'left', type:'number', numberOptions: {places:0}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'xqzc_num', headerName: '需求总差', width: 70, pinned:'left', type:'number', numberOptions: {places:0}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'yhk_num', headerName: '已回款数', width: 70, pinned:'left', type:'number', numberOptions: {places:0}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'kfzc_num', headerName: '打款差额', width: 70, pinned:'left', type:'number', numberOptions: {places:0}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'kfjh_num', headerName: '计划差额', width: 70, pinned:'left', type:'number', numberOptions: {places:0}, calcFooter: 'sum'},
{cellClass:'text-right', field: 'waitin_num', headerName: '待入库', width: 60, pinned:'left', type:'number', numberOptions: {places:0}, calcFooter: 'sum'},
];
for(var i=0; i < res.columns.length;i++) {
columnDefs.push(res.columns[i]);
}
columnDefs.push({cellClass:'text-right', field: 'syfh_num', headerName: '上月发货量', width: 70, type:'number', numberOptions: {places:0}, calcFooter: 'sum'});
columnDefs.push({cellClass:'text-center', field: 'product_code', headerName: '产品编码', width: 100});
grid.columnDefs = columnDefs;
grid.api.setColumnDefs(columnDefs);
}
grid.remoteData(null, function(res) {
setColumns(res);
});
var search_advanced = $('#' + table + '-search-form-advanced').searchForm({
data: search.forms,
advanced: true,
});
gdoo.grids[table] = {grid: grid};
var action = new gridAction(table, '生产计划');
var panel = $('#' + table + '-controller');
var producePlan = function() {
var me = this;
var rows = grid.api.getSelectedRows();
if (rows.length == 1) {
var data = rows[0];
var url = app.url('order/plan/producePlan', {id: data.master_id, date: data.master_plan_delivery_dt});
viewDialog({
title: '修改计划发货日期',
url: url,
storeUrl: url,
id: me.table,
dialogClass: 'modal-md',
onSubmit: function() {
var me = this;
var form = $('#plan_delivery_date').serialize();
var loading = showLoading();
$.post(app.url('order/order/deliveryPlanDate'), form, function(res) {
if (res.status) {
grid.remoteData();
$(me).dialog('close');
toastrSuccess(res.data);
} else {
toastrError(res.data);
}
}).complete(function() {
layer.close(loading);
});
}
});
} else {
toastrError('只能修改一条数据。');
}
}
panel.on('click', '[data-toggle="' + table + '"]', function() {
var data = $(this).data();
if (data.action == 'wfhjh') {
var date = data.field.split('_num_')[1];
var url = app.url('order/plan/producePlan', {product_id: data.product_id, date: date});
viewDialog({
title: '发货计划',
url: url,
id: table,
dialogClass: 'modal-md'
});
return;
}
if (data.action == 'filter') {
// 过滤数据
$('#' + table + '-search-form-advanced').dialog({
title: '条件筛选',
modalClass: 'no-padder',
buttons: [{
text: "取消",
'class': "btn-default",
click: function() {
$(this).dialog("close");
}
},{
text: "确定",
'class': "btn-info",
click: function() {
var query = search_advanced.serializeArray();
params = {};
$.map(query, function(row) {
params[row.name] = row.value;
});
grid.remoteData(params, function(res) {
setColumns(res);
});
$(this).dialog("close");
return false;
}
}]
});
}
if (data.action == 'save') {
var rows = [];
var date = data.id;
var key = 'sale_plan_num_' + date;
grid.api.stopEditing();
grid.api.forEachLeafNode(function(node, index) {
var row = node.data;
if (row[key] !== null) {
rows.push({product_id: row.id, quantity: row[key]});
}
});
if (rows.length == 0) {
toastrError(date + '营销计划不能为空。');
return;
}
$.post("{{url('produce_save')}}", {date: date, rows: rows}, function(res) {
toastrSuccess(res.data);
grid.remoteData(params, function(res) {
setColumns(res);
});
});
}
if (data.action == 'submit') {
var rows = [];
var date = data.id;
grid.api.stopEditing();
$.messager.confirm('提交' + date + '营销计划', '请确认是否提交,本操作不可逆?', function(btn) {
if (btn) {
$.post("{{url('produce_submit')}}", {date: date}, function(res) {
toastrSuccess(res.data);
grid.remoteData(params, function(res) {
setColumns(res);
});
});
}
});
}
if (data.action == 'export') {
action.export(data, '生产计划(营销)');
}
});
})(jQuery);
</script>