采购合同 合同金额
parent
0b68691959
commit
7409ea825b
|
@ -382,11 +382,24 @@ public class ProcessController {
|
|||
if (process.getProcessType() == ProcessType.sale_contract) {
|
||||
contract = processService.findSaleContract(id);
|
||||
incomeDetails = projectBudgetService.getBudgetIncomeDetail(project);
|
||||
detail.setContractAmount(project.getContractAmount());
|
||||
}
|
||||
else if (process.getProcessType() == ProcessType.procurement_contract) {
|
||||
contract = processService.findProcurementContract(id);
|
||||
supplierMaterials = processService.getSupplierMaterials(id);
|
||||
procurementDetails = processService.getProcurementDetails(project.getId(), id);
|
||||
BigDecimal contractAmount = BigDecimal.ZERO;
|
||||
for (ProcurementDetail procurementDetail : procurementDetails) {
|
||||
if (!CollectionUtils.isEmpty(procurementDetail.getPurchaseDetails())) {
|
||||
for (BudgetPurchaseDetail purchaseDetail : procurementDetail.getPurchaseDetails()) {
|
||||
BigDecimal totalTaxInclude = purchaseDetail.getTotalTaxInclude();
|
||||
if (totalTaxInclude != null) {
|
||||
contractAmount = contractAmount.add(totalTaxInclude);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
detail.setContractAmount(contractAmount);
|
||||
}
|
||||
|
||||
detail.setIsPrepaid(isPrepaid(repaidAmount));
|
||||
|
|
|
@ -41,6 +41,8 @@ public class ProjectProcessDetail {
|
|||
public List<SupplierMaterial> supplierMaterials;
|
||||
public List<ProcurementDetail> procurementDetails;
|
||||
|
||||
public BigDecimal contractAmount;
|
||||
|
||||
public void setCooperationType(CooperationType cooperationType) {
|
||||
this.cooperationType = cooperationType;
|
||||
this.cooperationTypeDesc = Optional.ofNullable(cooperationType)
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
<span slot="reference">{{process.contractName|ellipsis}}</span>
|
||||
</el-popover>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="合同金额">{{project.contractAmount}}元</el-descriptions-item>
|
||||
<el-descriptions-item label="合同金额">{{contractAmount|numberFormat}}元</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="客户名称" v-if="isSaleContract">
|
||||
<el-popover placement="top-start" title="备客户名称注" width="400" trigger="hover" :content="contract.clientName">
|
||||
|
@ -119,7 +119,7 @@
|
|||
<el-descriptions-item label="税率" v-if="process.taxRate">{{process.taxRate}}%</el-descriptions-item>
|
||||
<el-descriptions-item label="税率" v-else></el-descriptions-item>
|
||||
<el-descriptions-item label="是否垫资">${isPrepaid}</el-descriptions-item>
|
||||
<el-descriptions-item label="垫资金额" v-if="isPrepaid==='是'">${repaidAmount}元</el-descriptions-item>
|
||||
<el-descriptions-item label="垫资金额" v-if="isPrepaid==='是'">{{repaidAmount|numberFormat}}元</el-descriptions-item>
|
||||
|
||||
<el-descriptions-item label="预算毛利率">{{budgetGrossMargin}}%</el-descriptions-item>
|
||||
|
||||
|
@ -403,7 +403,7 @@
|
|||
.then(parseJSON)
|
||||
.then(data => {
|
||||
const {
|
||||
budgetGrossMargin,
|
||||
budgetGrossMargin, contractAmount,
|
||||
attachments, processId, isPrepaid, repaidAmount,
|
||||
incomeDetails, process, projectType, cooperationType,
|
||||
contract, supplierMaterials, procurementDetails, project
|
||||
|
@ -448,6 +448,7 @@
|
|||
this.process = process
|
||||
this.project = project
|
||||
this.isPrepaid = isPrepaid
|
||||
this.contractAmount = contractAmount
|
||||
this.repaidAmount = repaidAmount
|
||||
this.contract = contract
|
||||
this.processId = processId
|
||||
|
@ -597,7 +598,9 @@
|
|||
}
|
||||
return value
|
||||
},
|
||||
|
||||
numberFormat(value) {
|
||||
return numberFixed(value)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
@ -141,7 +141,7 @@
|
|||
</el-form-item>
|
||||
|
||||
<el-form-item label="合同金额">
|
||||
<span>{{project.contractAmount}}元</span>
|
||||
<span>{{contractAmount|numberFormat}}元</span>
|
||||
</el-form-item>
|
||||
|
||||
</div>
|
||||
|
@ -738,6 +738,7 @@
|
|||
.then(parseJSON)
|
||||
.then(data => {
|
||||
const {
|
||||
contractAmount,
|
||||
incomeDetails, process, supplierMaterials, project,
|
||||
contract, procurementDetails, attachments, ...form
|
||||
} = data
|
||||
|
@ -765,10 +766,16 @@
|
|||
const applyDeptId = process?.applyDeptId?.split(',').map(id => parseInt(id))
|
||||
this.initForm({ ...form, ...process, ...contract, applyDeptId })
|
||||
this.projectSelected = true
|
||||
this.contractAmount = contractAmount
|
||||
this.processType = process.processType
|
||||
let indexCounter = 1;
|
||||
this.incomeDetails = incomeDetails && incomeDetails.map(detail => ({
|
||||
...detail, type: computeType(detail.type), index: indexCounter++ // 用于记录序号,展示或者定位
|
||||
...detail, type: computeType(detail.type), index: indexCounter++,// 用于记录序号,展示或者定位
|
||||
price: numberFixed(detail.price),
|
||||
totalTax: numberFixed(detail.totalTax),
|
||||
payAmount: numberFixed(detail.payAmount),
|
||||
totalTaxExclude: numberFixed(detail.totalTaxExclude),
|
||||
totalTaxInclude: numberFixed(detail.totalTaxInclude),
|
||||
}))
|
||||
|
||||
this.project = project
|
||||
|
@ -1289,6 +1296,9 @@
|
|||
return value.slice(0, limit) + '...'
|
||||
}
|
||||
return value
|
||||
},
|
||||
numberFormat(value) {
|
||||
return numberFixed(value)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
@ -120,7 +120,7 @@
|
|||
|
||||
<el-table-column prop="amount" label="数量"></el-table-column>
|
||||
<el-table-column prop="unit" label="单位"></el-table-column>
|
||||
<el-table-column prop="price" label="预算单价" width="100"></el-table-column>
|
||||
<el-table-column prop="price" label="预算单价" width="130"></el-table-column>
|
||||
<el-table-column prop="taxRate" label="税率(%)" width="100"></el-table-column>
|
||||
<el-table-column prop="totalTaxInclude_" label="含税总金额(元)" width="140"></el-table-column>
|
||||
<el-table-column prop="totalTaxExclude" label="不含税金额(元)" width="140"></el-table-column>
|
||||
|
@ -508,7 +508,7 @@
|
|||
|
||||
<el-table-column prop="amount" label="数量"></el-table-column>
|
||||
<el-table-column prop="unit" label="单位"></el-table-column>
|
||||
<el-table-column prop="price" label="预算单价" width="100"></el-table-column>
|
||||
<el-table-column prop="price" label="预算单价" width="130"></el-table-column>
|
||||
<el-table-column prop="taxRate" label="税率(%)"></el-table-column>
|
||||
<el-table-column prop="totalTaxInclude_" label="含税总金额(元)" width="120"></el-table-column>
|
||||
<el-table-column prop="totalTaxExclude" label="不含税金额(元)" width="120"></el-table-column>
|
||||
|
@ -970,6 +970,11 @@
|
|||
let indexCounter = 1;
|
||||
this.incomeDetails = incomeDetails && incomeDetails.map(detail => ({
|
||||
...detail, type: computeType(detail.type),
|
||||
price: numberFixed(detail.price),
|
||||
totalTax: numberFixed(detail.totalTax),
|
||||
payAmount: numberFixed(detail.payAmount),
|
||||
totalTaxExclude: numberFixed(detail.totalTaxExclude),
|
||||
totalTaxInclude: numberFixed(detail.totalTaxInclude),
|
||||
expirationDate: null, // 质保期需要全部重新填写
|
||||
index: indexCounter++ // 用于记录序号,展示或者定位
|
||||
}))
|
||||
|
@ -977,7 +982,11 @@
|
|||
let rowKey = 0
|
||||
this.procurementDetails = procurementDetails && procurementDetails.map(detail => ({
|
||||
...detail, feeType: computeFeeType(detail.type),
|
||||
totalTaxInclude_: detail.totalTaxInclude, totalTaxInclude: undefined, // 存在相同字段转换一下
|
||||
price: numberFixed(detail.price),
|
||||
payAmount: numberFixed(detail.payAmount),
|
||||
totalTaxExclude: numberFixed(detail.totalTaxExclude),
|
||||
totalTaxInclude_: numberFixed(detail.totalTaxInclude),
|
||||
totalTaxInclude: undefined, // 存在相同字段转换一下
|
||||
rowKey: rowKey++, children: []
|
||||
}))
|
||||
|
||||
|
@ -1467,6 +1476,9 @@
|
|||
return value.slice(0, limit) + '...'
|
||||
}
|
||||
return value
|
||||
},
|
||||
numberFormat(value) {
|
||||
return numberFixed(value)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue