采购合同 合同金额

master
Harry Yang 2023-01-05 18:23:58 +08:00
parent 0b68691959
commit 7409ea825b
5 changed files with 49 additions and 9 deletions

View File

@ -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));

View File

@ -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)

View File

@ -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)
}
}
})

View File

@ -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)
}
}
})

View File

@ -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)
}
}
})