|
@@ -152,20 +152,23 @@ module.exports = app => {
|
|
|
// 获取上一期预付款记录
|
|
|
const prevAdvance = await ctx.service.advance.getPreviousRecord(ctx.tender.id, ctx.advance.type);
|
|
|
// 最大支付比例
|
|
|
- const max_pr = ctx.helper.mul(ctx.helper.div(ctx.helper.sub(advancePayTotal, (prevAdvance && prevAdvance.prev_total_amount || 0)), advancePayTotal, 10), 100);
|
|
|
+ const max_pr = ctx.helper.mul(ctx.helper.div(ctx.helper.sub(advancePayTotal, (prevAdvance && prevAdvance.prev_total_amount || 2)), advancePayTotal, 10), 100);
|
|
|
+
|
|
|
+ const isLimitMax = ctx.helper.round(max_pr, 2) === ctx.advance.pay_ratio;
|
|
|
// 特殊处理金额的显示(formatMoney)
|
|
|
let cur_amount,
|
|
|
prev_total_amount;
|
|
|
- const s1 = parseFloat(ctx.advance.prev_amount).toString().split('.')[1];
|
|
|
- const prev_amount = ctx.helper.formatMoney(ctx.advance.prev_amount, ',', s1 && s1.length || 0);
|
|
|
+ const s1 = parseFloat(ctx.advance.prev_amount).toString().split('.')[1] || '';
|
|
|
+ const prev_amount = ctx.helper.formatMoney(ctx.advance.prev_amount, ',', isLimitMax ? s1.length : 2);
|
|
|
if (status === uncheck || status === checkNo) {
|
|
|
- cur_amount = parseFloat(ctx.helper.round(ctx.advance.cur_amount, this.decimal)) || 0;
|
|
|
- const s2 = parseFloat(ctx.helper.add(cur_amount, ctx.advance.prev_amount)).toString().split('.')[1];
|
|
|
- prev_total_amount = ctx.helper.formatMoney(ctx.helper.add(cur_amount, ctx.advance.prev_amount), ',', s2 && s2.length || 0);
|
|
|
+ // cur_amount = parseFloat(ctx.helper.round(ctx.advance.cur_amount, 2)) || 0;
|
|
|
+ cur_amount = ctx.advance.cur_amount || 0;
|
|
|
+ const s2 = parseFloat(ctx.helper.add(cur_amount, ctx.advance.prev_amount)).toString().split('.')[1] || '';
|
|
|
+ prev_total_amount = ctx.helper.formatMoney(ctx.helper.add(cur_amount, ctx.advance.prev_amount), ',', isLimitMax ? s2.length : 2);
|
|
|
} else {
|
|
|
cur_amount = ctx.advance.cur_amount;
|
|
|
const s2 = parseFloat(ctx.advance.prev_total_amount).toString().split('.')[1];
|
|
|
- prev_total_amount = ctx.helper.formatMoney(ctx.advance.prev_total_amount, ',', s2 && s2.length || 0);
|
|
|
+ prev_total_amount = ctx.helper.formatMoney(ctx.advance.prev_total_amount, ',', isLimitMax ? s2.length : 2);
|
|
|
}
|
|
|
|
|
|
renderData.isEdited = isEdited;
|
|
@@ -174,7 +177,7 @@ module.exports = app => {
|
|
|
renderData.prev_amount = prev_amount;
|
|
|
renderData.prev_total_amount = prev_total_amount;
|
|
|
renderData.max_pr = max_pr;
|
|
|
- renderData.decimal = this.decimal;
|
|
|
+ renderData.decimal = 2;
|
|
|
renderData.advancePayTotal = advancePayTotal;
|
|
|
renderData.prevAdvance = prevAdvance;
|
|
|
await this.layout('advance/detail.ejs', renderData, 'advance/modal_audit.ejs');
|