|
@@ -35,7 +35,12 @@ var VolumePrice = {
|
|
|
|
|
|
loadData (datas) {
|
|
|
this.datas = datas;
|
|
|
+ // generate Fees & Flags Index,For View & Calculate
|
|
|
for (let data of datas) {
|
|
|
+ data.feesIndex = {};
|
|
|
+ data.fees.forEach(function (fee) {
|
|
|
+ data.feesIndex[fee.fieldName] = fee;
|
|
|
+ });
|
|
|
this.maxID(data.ID);
|
|
|
}
|
|
|
};
|
|
@@ -135,6 +140,31 @@ var VolumePrice = {
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
+
|
|
|
+ calculate (volumePrice) {
|
|
|
+ if (!calcFees.findFee(volumePrice, 'common')) {
|
|
|
+ calcFees.addFee(volumePrice, 'common');
|
|
|
+ }
|
|
|
+ volumePrice.feesIndex.common.totalFee = (volumePrice.feesIndex.common.unitFee * volumePrice.quantity).toDecimal(2);
|
|
|
+ volumePrice.needRefresh = true;
|
|
|
+ }
|
|
|
+ updateField(volumePrice, field, newValue) {
|
|
|
+ calcFees.setFee(volumePrice, field, newValue);
|
|
|
+ let updateData = [];
|
|
|
+ if (field === 'quantity' || field === 'feesIndex.common.unitFee') {
|
|
|
+ let data = {'ID': volumePrice.ID, 'projectID': this.getProject().ID()};
|
|
|
+ data[field] = newValue;
|
|
|
+ this.calculate(volumePrice);
|
|
|
+ data.fees = volumePrice.fees;
|
|
|
+ updateData.push({'updateType': 'ut_update', 'updateData': data});
|
|
|
+ tools.owner.pushNow('updateVolumePrice', this.getSourceType(), updateData);
|
|
|
+ } else {
|
|
|
+ let data = {'ID': volumePrice.ID, 'projectID': this.getProject().ID()};
|
|
|
+ data[field] = newValue;
|
|
|
+ updateData.push({'updateType': 'ut_update', 'updateData': data});
|
|
|
+ tools.owner.pushNow('updateVolumePrice', this.getSourceType(), updateData);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return new volumePrice();
|