|
@@ -25,7 +25,7 @@
|
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
|
align-items: center;
|
|
|
- border: 1px solid #ccc;
|
|
|
+ /*border: 1px solid #ccc;*/
|
|
|
padding: 10px;
|
|
|
}
|
|
|
|
|
@@ -192,8 +192,8 @@
|
|
|
font-size: 16px;
|
|
|
color: #333;
|
|
|
position: absolute;
|
|
|
- left: 50%;
|
|
|
- transform: translateX(-50%);
|
|
|
+ left: 120px;
|
|
|
+ /*transform: translateX(-50%);*/
|
|
|
}
|
|
|
|
|
|
.quota-tablebar button {
|
|
@@ -293,6 +293,25 @@
|
|
|
.negative-value {
|
|
|
color: red;
|
|
|
}
|
|
|
+
|
|
|
+ #tb-summary + .layui-table-view .layui-table-header .layui-table-cell {
|
|
|
+ white-space: normal !important;
|
|
|
+ line-height: 1.5em !important;
|
|
|
+ height: auto !important;
|
|
|
+ overflow: visible !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ #tb-summary + .layui-table-view .layui-table-header th {
|
|
|
+ height: 50px !important;
|
|
|
+ vertical-align: middle !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ #tb-summary + .layui-table-view .layui-table-header th[data-field="channel_invoice_quota"],
|
|
|
+ #tb-summary + .layui-table-view .layui-table-header th[data-field="mch_invoice_quota"] {
|
|
|
+ color: blue !important;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
</style>
|
|
|
|
|
|
<div class="page" id="app">
|
|
@@ -411,6 +430,8 @@
|
|
|
|
|
|
const tableData = dataHelper.getCompanyList();
|
|
|
tableData.forEach(function (item) {
|
|
|
+ item.total_quota = formatDecimals(item.total_quota);
|
|
|
+ item.used_quota = formatDecimals(item.used_quota);
|
|
|
item.left_quota = formatDecimals(item.total_quota - item.used_quota);
|
|
|
});
|
|
|
layui.table.render({
|
|
@@ -552,9 +573,10 @@
|
|
|
item.amounts = formatDecimals(amountsItem.amounts, 2);
|
|
|
} else {
|
|
|
item.mch_name = '';
|
|
|
- item.amounts = 0.00;
|
|
|
+ item.amounts = '0';
|
|
|
}
|
|
|
|
|
|
+ item.total_invoiced = formatDecimals(item.total_invoiced);
|
|
|
Object.assign(item, {
|
|
|
estimated_invoice_amount:0,
|
|
|
available_invoice_amount: 0,
|
|
@@ -761,7 +783,7 @@
|
|
|
if (!groupSum[tdGroup]) {
|
|
|
groupSum[tdGroup] = 0;
|
|
|
}
|
|
|
- if (isNumeric(amount)) {
|
|
|
+ if (isNumeric(amount) && amount > 0) { //负数不计入求和
|
|
|
groupSum[tdGroup] += parseFloat(amount);
|
|
|
}
|
|
|
});
|
|
@@ -799,6 +821,10 @@
|
|
|
item.remark = remark;
|
|
|
|
|
|
await dataHelper.addOrUpdateData(CONSTANTS.KEY_QUOTA_MERCHANT, item, 2);
|
|
|
+
|
|
|
+ setTimeout(function () {
|
|
|
+ summaryTable.renderTable();
|
|
|
+ }, 0);
|
|
|
}
|
|
|
|
|
|
applyOne(index) {
|
|
@@ -831,9 +857,10 @@
|
|
|
item.amounts = formatDecimals(amountsItem.amounts, 2);
|
|
|
} else {
|
|
|
item.store_name = '';
|
|
|
- item.amounts = 0.00;
|
|
|
+ item.amounts = '0';
|
|
|
}
|
|
|
|
|
|
+ item.total_invoiced = formatDecimals(item.total_invoiced);
|
|
|
Object.assign(item, {
|
|
|
estimated_invoice_amount:0,
|
|
|
available_invoice_amount: 0,
|
|
@@ -1040,7 +1067,7 @@
|
|
|
if (!groupSum[tdGroup]) {
|
|
|
groupSum[tdGroup] = 0;
|
|
|
}
|
|
|
- if (isNumeric(amount)) {
|
|
|
+ if (isNumeric(amount) && amount > 0) { //负数不计入求和
|
|
|
groupSum[tdGroup] += parseFloat(amount);
|
|
|
}
|
|
|
});
|
|
@@ -1078,6 +1105,10 @@
|
|
|
item.remark = remark;
|
|
|
|
|
|
await dataHelper.addOrUpdateData(CONSTANTS.KEY_QUOTA_CHANNEL, item, 2);
|
|
|
+
|
|
|
+ setTimeout(function () {
|
|
|
+ summaryTable.renderTable();
|
|
|
+ }, 0);
|
|
|
}
|
|
|
|
|
|
applyOne(index) {
|
|
@@ -1098,6 +1129,8 @@
|
|
|
tableData.forEach(item => {
|
|
|
Object.assign(item, {
|
|
|
subject_quota: 0,
|
|
|
+ channel_amounts: 0,
|
|
|
+ channel_total_invoiced: 0,
|
|
|
channel_invoice_quota: 0,
|
|
|
subject_channel_delta: 0,
|
|
|
mch_invoice_quota: 0,
|
|
@@ -1118,69 +1151,115 @@
|
|
|
cols: [[
|
|
|
{field: 'subject', title: '对应主体', width: 150},
|
|
|
{field: 'subject_quota', title: '主体额度', width: 100},
|
|
|
- {field: 'channel_invoice_quota', title: '上游可开票', width: 150},
|
|
|
+ {field: 'channel_amounts', title: '上游本月需开票', width: 150},
|
|
|
+ {field: 'channel_total_invoiced', title: '上游已开票', width: 150},
|
|
|
+ {field: 'channel_invoice_quota', title: '上游需开票', width: 150},
|
|
|
{field: 'subject_channel_delta', title: '差额(主体-上游)', width: 150},
|
|
|
{field: 'mch_invoice_quota', title: '下游需开票', width: 150},
|
|
|
{field: 'subject_mch_delta', title: '差额(主体-下游)', width: 150},
|
|
|
- {field: 'channel_mch_delta', title: '差额(上-下)', width: 150}
|
|
|
+ {field: 'channel_mch_delta', title: '差额(上-下)<br>ps:还需进货', width: 150}
|
|
|
]],
|
|
|
done: function (res, curr, count) {
|
|
|
const channelQuota = {};
|
|
|
const channelTb = $('#' + channelTable.tableId);
|
|
|
const channelTrs = channelTb.next('.layui-table-view').find('.layui-table-body tbody tr');
|
|
|
channelTrs.each(function (i, tr) {
|
|
|
- const subject = $(tr).find('td[data-field="subject"]').not('.layui-hide').find('div').text();
|
|
|
- const estimated_amount = $(tr).find('td[data-field="estimated_invoice_amount"]').not('.layui-hide').find('div').text();
|
|
|
+ const subject = $(tr).find('td[data-field="subject"]').find('div').text();
|
|
|
+ const estimated_amount = $(tr).find('td[data-field="estimated_invoice_amount"]').find('div').text();
|
|
|
+ const channel_amounts = $(tr).find('td[data-field="amounts"]').find('div').text();
|
|
|
+ const total_invoiced = $(tr).find('td[data-field="total_invoiced"]').find('div').text();
|
|
|
+
|
|
|
if (!channelQuota[subject]) {
|
|
|
- channelQuota[subject] = 0;
|
|
|
+ channelQuota[subject] = {
|
|
|
+ channel_amounts: 0,
|
|
|
+ channel_total_invoiced: 0,
|
|
|
+ channel_invoice_quota: 0
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
+ const n_estimated_amount = parseFloat(estimated_amount);
|
|
|
+ if (n_estimated_amount > 0) {
|
|
|
+ channelQuota[subject].channel_invoice_quota += n_estimated_amount;
|
|
|
}
|
|
|
- channelQuota[subject] += parseFloat(estimated_amount);
|
|
|
+
|
|
|
+ channelQuota[subject].channel_amounts += parseFloat(channel_amounts);
|
|
|
+ channelQuota[subject].channel_total_invoiced += parseFloat(total_invoiced);
|
|
|
});
|
|
|
|
|
|
const merchantQuota = {};
|
|
|
const merchantTb = $('#' + merchantTable.tableId);
|
|
|
const merchantTrs = merchantTb.next('.layui-table-view').find('.layui-table-body tbody tr');
|
|
|
merchantTrs.each(function (i, tr) {
|
|
|
- const subject = $(tr).find('td[data-field="subject"]').not('.layui-hide').find('div').text();
|
|
|
- const estimated_amount = $(tr).find('td[data-field="estimated_invoice_amount"]').not('.layui-hide').find('div').text();
|
|
|
+ const subject = $(tr).find('td[data-field="subject"]').find('div').text();
|
|
|
+ const estimated_amount = $(tr).find('td[data-field="estimated_invoice_amount"]').find('div').text();
|
|
|
if (!merchantQuota[subject]) {
|
|
|
merchantQuota[subject] = 0;
|
|
|
}
|
|
|
- merchantQuota[subject] += parseFloat(estimated_amount);
|
|
|
+
|
|
|
+ const n_estimated_amount = parseFloat(estimated_amount);
|
|
|
+ if (n_estimated_amount > 0) {
|
|
|
+ merchantQuota[subject] += n_estimated_amount;
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
const summaryTb = $('#' + that.tableId);
|
|
|
const summaryTrs = summaryTb.next('.layui-table-view').find('.layui-table-body tbody tr');
|
|
|
summaryTrs.each(function (i, tr) {
|
|
|
- const subjectTd = $(tr).find('td[data-field="subject"]').not('.layui-hide').find('div');
|
|
|
- const subjectQuotaTd = $(tr).find('td[data-field="subject_quota"]').not('.layui-hide').find('div');
|
|
|
- const channelInvoiceQuotaTd = $(tr).find('td[data-field="channel_invoice_quota"]').not('.layui-hide').find('div');
|
|
|
- const subjectChannelDeltaTd = $(tr).find('td[data-field="subject_channel_delta"]').not('.layui-hide').find('div');
|
|
|
- const mchInvoiceQuotaTd = $(tr).find('td[data-field="mch_invoice_quota"]').not('.layui-hide').find('div');
|
|
|
- const subjectMchDeltaTd = $(tr).find('td[data-field="subject_mch_delta"]').not('.layui-hide').find('div');
|
|
|
- const channelMchDeltaTd = $(tr).find('td[data-field="channel_mch_delta"]').not('.layui-hide').find('div');
|
|
|
-
|
|
|
- let channel_invoice_quota = 0, mch_invoice_quota = 0;
|
|
|
+ const subjectTd = $(tr).find('td[data-field="subject"]').find('div');
|
|
|
+ const subjectQuotaTd = $(tr).find('td[data-field="subject_quota"]').find('div');
|
|
|
+ const channelAmountsTd = $(tr).find('td[data-field="channel_amounts"]').find('div');
|
|
|
+ const channelTotalInvoicedTd = $(tr).find('td[data-field="channel_total_invoiced"]').find('div');
|
|
|
+ const channelInvoiceQuotaTd = $(tr).find('td[data-field="channel_invoice_quota"]').find('div');
|
|
|
+ const subjectChannelDeltaTd = $(tr).find('td[data-field="subject_channel_delta"]').find('div');
|
|
|
+ const mchInvoiceQuotaTd = $(tr).find('td[data-field="mch_invoice_quota"]').find('div');
|
|
|
+ const subjectMchDeltaTd = $(tr).find('td[data-field="subject_mch_delta"]').find('div');
|
|
|
+ const channelMchDeltaTd = $(tr).find('td[data-field="channel_mch_delta"]').find('div');
|
|
|
+
|
|
|
+ let channel_invoice_quota = 0, channel_amounts = 0, channel_total_invoiced = 0, mch_invoice_quota = 0;
|
|
|
const subject_quota = parseFloat(subjectQuotaTd.text());
|
|
|
const subject = subjectTd.text();
|
|
|
if (channelQuota[subject] !== undefined) {
|
|
|
- channel_invoice_quota = channelQuota[subject];
|
|
|
+ channel_invoice_quota = channelQuota[subject].channel_invoice_quota;
|
|
|
+ channel_amounts = channelQuota[subject].channel_amounts;
|
|
|
+ channel_total_invoiced = channelQuota[subject].channel_total_invoiced;
|
|
|
}
|
|
|
if (merchantQuota[subject] !== undefined) {
|
|
|
mch_invoice_quota = merchantQuota[subject];
|
|
|
}
|
|
|
|
|
|
+ channelAmountsTd.html(formatDecimals(channel_amounts));
|
|
|
+ channelTotalInvoicedTd.html(formatDecimals(channel_total_invoiced));
|
|
|
channelInvoiceQuotaTd.html(formatDecimals(channel_invoice_quota));
|
|
|
subjectChannelDeltaTd.html(formatDecimals(subject_quota - channel_invoice_quota));
|
|
|
mchInvoiceQuotaTd.html(formatDecimals(mch_invoice_quota));
|
|
|
subjectMchDeltaTd.html(formatDecimals(subject_quota - mch_invoice_quota));
|
|
|
- channelMchDeltaTd.html(formatDecimals(channel_invoice_quota - mch_invoice_quota));
|
|
|
+ channelMchDeltaTd.html(formatDecimals(channel_amounts - mch_invoice_quota));
|
|
|
});
|
|
|
|
|
|
that.setValueClass(['subject_quota', 'channel_invoice_quota', 'subject_channel_delta', 'mch_invoice_quota', 'subject_mch_delta', 'channel_mch_delta']);
|
|
|
+ that.setRole();
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ setRole() {
|
|
|
+ if (isAdmin === true) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const tbRoot = $('#' + this.tableId);
|
|
|
+ const bodyTrs = tbRoot.next('.layui-table-view').find('.layui-table-body tbody tr');
|
|
|
+ const headerTrs = tbRoot.next('.layui-table-view').find('.layui-table-header thead tr');
|
|
|
+ const hideColumns = ['channel_amounts', 'channel_total_invoiced'];
|
|
|
+ for (let col of hideColumns) {
|
|
|
+ bodyTrs.each(function (i, tr) {
|
|
|
+ $(tr).find('td[data-field="' + col + '"]').addClass('layui-hide');
|
|
|
+ });
|
|
|
+ headerTrs.each(function (i, tr) {
|
|
|
+ $(tr).find('th[data-field="' + col + '"]').addClass('layui-hide');
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|