|
@@ -80,9 +80,11 @@ class Settle {
|
|
|
const sp = this.stagePos.getPos(pp.pid);
|
|
|
if (sp) {
|
|
|
sp.pre_settle = true;
|
|
|
- sp.pre_contract_qty = sp.end_contract_qty;
|
|
|
- sp.pre_qc_qty = sp.end_qc_qty;
|
|
|
- sp.pre_qc_minus_qty = sp.pre_qc_minus_qty;
|
|
|
+ sp.pre_contract_qty = pp.end_contract_qty;
|
|
|
+ sp.pre_qc_qty = pp.end_qc_qty;
|
|
|
+ sp.pre_qc_minus_qty = pp.pre_qc_minus_qty;
|
|
|
+ sp.settle_status = pp.settle_status;
|
|
|
+ sp.settle_done_order = pp.settle_done_order;
|
|
|
}
|
|
|
}
|
|
|
const preBills = await this.ctx.service.settleBills.getAllDataByCondition({ where: { tid: this.settle.tid, settle_order: this.settle.settle_order - 1 } });
|
|
@@ -95,12 +97,15 @@ class Settle {
|
|
|
sb.pre_qc_qty = pb.pre_qc_qty;
|
|
|
sb.pre_qc_tp = pb.pre_qc_tp;
|
|
|
sb.pre_qc_minus_qty = pb.pre_qc_minus_qty;
|
|
|
+ sb.settle_status = pb.settle_status;
|
|
|
+ sb.settle_done_order = pb.settle_done_order;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
calculateSettle() {
|
|
|
const helper = this.ctx.helper;
|
|
|
+ const settle = this.settle;
|
|
|
this.stagePos.calculateAll(function(p) {
|
|
|
if (p.is_settle || !p.pre_settle) {
|
|
|
p.cur_contract_qty = p.settle_contract_qty;
|
|
@@ -112,6 +117,10 @@ class Settle {
|
|
|
p.end_qc_qty = helper.add(p.cur_qc_qty, p.pre_qc_qty);
|
|
|
p.end_qc_minus_qty = helper.add(p.cur_qc_minus_qty, p.pre_qc_minus_qty);
|
|
|
}
|
|
|
+ if (helper.checkNumEqual(p.end_contract_qty, p.quantity)) {
|
|
|
+ p.settle_status = 2;
|
|
|
+ p.settle_done_order = p.settle_done_order || settle.settle_order;
|
|
|
+ }
|
|
|
});
|
|
|
const self = this, decimal = this.ctx.tender.info.decimal;
|
|
|
this.stageTree.calculateAll(function(b) {
|
|
@@ -142,6 +151,21 @@ class Settle {
|
|
|
b.end_qc_tp = helper.add(b.cur_qc_tp, b.pre_qc_tp);
|
|
|
b.end_qc_minus_qty = helper.add(b.cur_qc_minus_qty, b.pre_qc_minus_qty);
|
|
|
}
|
|
|
+ if (b.is_tp) {
|
|
|
+ if (helper.checkNumEqual(b.end_contract_tp, b.total_price)) {
|
|
|
+ b.settle_status = 2;
|
|
|
+ b.settle_done_order = b.settle_done_order || settle.settle_order;
|
|
|
+ } else {
|
|
|
+ b.settle_status = 1;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (helper.checkNumEqual(b.end_contract_qty, b.quantity)) {
|
|
|
+ b.settle_status = 2;
|
|
|
+ b.settle_done_order = b.settle_done_order || settle.settle_order;
|
|
|
+ } else {
|
|
|
+ b.settle_status = 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
})
|
|
|
}
|
|
|
|
|
@@ -163,6 +187,7 @@ class Settle {
|
|
|
end_contract_qty: node.end_contract_qty || 0, end_contract_tp: node.end_contract_tp || 0,
|
|
|
end_qc_qty: node.end_qc_qty || 0, end_qc_tp: node.end_qc_tp || 0, end_qc_minus_qty: node.end_qc_minus_qty || 0,
|
|
|
is_settle: node.is_settle ? 1 : 0, pre_settle: node.pre_settle ? 1 : 0,
|
|
|
+ settle_status: node.settle_status || 0, settle_done_order: node.settle_done_order,
|
|
|
});
|
|
|
}
|
|
|
const settlePos = [];
|
|
@@ -176,6 +201,7 @@ class Settle {
|
|
|
pre_contract_qty: pos.pre_contract_qty || 0, pre_qc_qty: pos.pre_qc_qty || 0, pre_qc_minus_qty: pos.pre_qc_minus_qty || 0,
|
|
|
end_contract_qty: pos.end_contract_qty || 0, end_qc_qty: pos.end_qc_qty || 0, end_qc_minus_qty: pos.end_qc_minus_qty || 0,
|
|
|
is_settle: pos.is_settle ? 1 : 0, pre_settle: pos.pre_settle ? 1 : 0,
|
|
|
+ settle_status: pos.settle_status || 0, settle_done_order: pos.settle_done_order,
|
|
|
});
|
|
|
}
|
|
|
return [settleBills, settlePos];
|