Compare commits
No commits in common. "b21c54a9016e8fe9816288db1ebf3f65d6b25f1a" and "8ea80a4dbebf34e1a54f09e5cbbe25ec5c96cf86" have entirely different histories.
b21c54a901
...
8ea80a4dbe
|
|
@ -5,7 +5,6 @@ export function listPayable(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/finance/payable/list',
|
url: '/finance/payable/list',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
headers: { 'Content-Type': 'multipart/form-data' },
|
|
||||||
data: query
|
data: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -40,8 +39,7 @@ export function mergeAndInitiatePayment(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/finance/payable/mergeAndInitiatePayment',
|
url: '/finance/payable/mergeAndInitiatePayment',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data,
|
data: data
|
||||||
needLoading: true
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -50,8 +48,7 @@ export function mergeAndInitiateReceipt(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/finance/payable/mergeAndInitiateReceipt',
|
url: '/finance/payable/mergeAndInitiateReceipt',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: data,
|
data: data
|
||||||
needLoading: true
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -116,9 +116,6 @@ export function listPayableBills(query) {
|
||||||
return request({
|
return request({
|
||||||
url: 'finance/payable/list',
|
url: 'finance/payable/list',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/x-www-form-urlencoded'
|
|
||||||
},
|
|
||||||
data: query
|
data: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@ import {tansParams} from "@/utils/ruoyi"
|
||||||
export function listReceipt(query) {
|
export function listReceipt(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/finance/ticket/list',
|
url: '/finance/ticket/list',
|
||||||
method: 'post',
|
method: 'get',
|
||||||
headers: {
|
// headers: {
|
||||||
'Content-Type': 'application/x-www-form-urlencoded'
|
// 'Content-Type': 'application/x-www-form-urlencoded'
|
||||||
},
|
// },
|
||||||
data: query
|
data: tansParams(query)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,11 +67,3 @@ export function addReceipt(data) {
|
||||||
needLoading: true
|
needLoading: true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 撤销收票单
|
|
||||||
export function revokeReceipt(id) {
|
|
||||||
return request({
|
|
||||||
url: '/finance/ticket/revoke/' + id,
|
|
||||||
method: 'put'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<el-drawer title="采购-应付单详情" :visible.sync="internalVisible" :wrapper-closable="false" size="70%" @close="handleClose">
|
<el-drawer title="修改采购应付单" :visible.sync="internalVisible" size="70%" @close="handleClose">
|
||||||
<div class="dialog-body">
|
<div class="dialog-body">
|
||||||
<!-- Part 1: Details -->
|
<!-- Part 1: Details -->
|
||||||
<div>
|
<div>
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
<div class="detail-item"><strong>项目名称:</strong> {{ formData.projectName }}</div>
|
<div class="detail-item"><strong>项目名称:</strong> {{ formData.projectName }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>采购-应付单编号:</strong> {{ formData.payableBillCode }}</div>
|
<div class="detail-item"><strong>应付单编号:</strong> {{ formData.payableBillCode }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
<div class="detail-item"><strong>该制造商是否有预付单:</strong> {{ formData.preResidueAmount == 0 ? '否' : '是' }}</div>
|
<div class="detail-item"><strong>该制造商是否有预付单:</strong> {{ formData.preResidueAmount == 0 ? '否' : '是' }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>预付金额(元):</strong> {{ formData.preResidueAmount }}</div>
|
<div class="detail-item"><strong>预付金额:</strong> {{ formData.preResidueAmount }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
|
|
@ -36,40 +36,40 @@
|
||||||
<div class="detail-item"><strong>合同编号:</strong> {{ formData.orderCode }}</div>
|
<div class="detail-item"><strong>合同编号:</strong> {{ formData.orderCode }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>出/入库单号:</strong> {{ formData.inventoryCode }}</div>
|
<div class="detail-item"><strong>出入库单号:</strong> {{ formData.inventoryCode }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>含税总价(元):</strong> {{ formData.totalPriceWithTax }}</div>
|
<div class="detail-item"><strong>含税总价:</strong> {{ formData.totalPriceWithTax }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>未税总价(元):</strong> {{ formData.totalPriceWithoutTax }}</div>
|
<div class="detail-item"><strong>未税总价:</strong> {{ formData.totalPriceWithoutTax }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>税额(元):</strong> {{ formData.taxAmount }}</div>
|
<div class="detail-item"><strong>税额:</strong> {{ formData.taxAmount }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>未付款金额(元):</strong> {{ formData.unpaidPaymentAmount }}</div>
|
<div class="detail-item"><strong>未付款金额:</strong> {{ formData.unpaidPaymentAmount }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>已付款金额(元):</strong> {{ formData.paidPaymentAmount }}</div>
|
<div class="detail-item"><strong>已付款金额:</strong> {{ formData.paidPaymentAmount }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>付款中金额(元):</strong> {{ this.$calc.sub(this.$calc.sub(formData.totalPriceWithTax,formData.paidPaymentAmount),formData.unpaidPaymentAmount) }}</div>
|
<div class="detail-item"><strong>付款中金额:</strong> {{ this.$calc.sub(this.$calc.sub(formData.totalPriceWithTax,formData.paidPaymentAmount),formData.unpaidPaymentAmount) }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>未收票金额(元):</strong> {{ formData.unreceivedTicketAmount }}</div>
|
<div class="detail-item"><strong>未收票金额:</strong> {{ formData.unreceivedTicketAmount }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>已收票金额(元):</strong> {{ formData.receivedTicketAmount }}</div>
|
<div class="detail-item"><strong>已收票金额:</strong> {{ formData.receivedTicketAmount }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item"><strong>收票中金额(元):</strong> {{ this.$calc.sub(this.$calc.sub(formData.totalPriceWithTax,formData.receivedTicketAmount),formData.unreceivedTicketAmount)}}</div>
|
<div class="detail-item"><strong>收票中金额:</strong> {{ this.$calc.sub(this.$calc.sub(formData.totalPriceWithTax,formData.receivedTicketAmount),formData.unreceivedTicketAmount)}}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
|
|
@ -92,7 +92,7 @@
|
||||||
<div style="padding: 20px">
|
<div style="padding: 20px">
|
||||||
<el-tabs v-model="activeTab">
|
<el-tabs v-model="activeTab">
|
||||||
<el-tab-pane label="明细" name="details">
|
<el-tab-pane label="明细" name="details">
|
||||||
<el-divider content-position="left">采购-付款单</el-divider>
|
<el-divider content-position="left">采购付款单</el-divider>
|
||||||
<el-table :data="formData.detailList" style="width: 100%" show-summary :summary-method="getSummaries">
|
<el-table :data="formData.detailList" style="width: 100%" show-summary :summary-method="getSummaries">
|
||||||
<el-table-column type="index" label="序号" width="50"></el-table-column>
|
<el-table-column type="index" label="序号" width="50"></el-table-column>
|
||||||
<el-table-column prop="payableDetailType" label="付款通道">
|
<el-table-column prop="payableDetailType" label="付款通道">
|
||||||
|
|
@ -105,18 +105,14 @@
|
||||||
{{ scope.row.actualPaymentTime || '-' }}
|
{{ scope.row.actualPaymentTime || '-' }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="paymentAmount" label="本次付款金额">
|
<el-table-column prop="paymentAmount" label="本次付款金额"></el-table-column>
|
||||||
<template slot-scope="scope">
|
|
||||||
<span :style="scope.row.paymentAmount<0?{color:'red'}:{}"> {{ scope.row.paymentAmount }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column prop="paymentRate" label="本次付款比例"></el-table-column>
|
<el-table-column prop="paymentRate" label="本次付款比例"></el-table-column>
|
||||||
<el-table-column prop="paymentStatus" label="付款状态">
|
<el-table-column prop="paymentStatus" label="付款状态">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<dict-tag :options="dict.type.payment_status" :value="scope.row.paymentStatus"/>
|
<dict-tag :options="dict.type.payment_status" :value="scope.row.paymentStatus"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="paymentBillCode" label="采购-付款单编号"></el-table-column>
|
<el-table-column prop="paymentBillCode" label="采购付款单编号"></el-table-column>
|
||||||
<el-table-column label="回执单/退款图">
|
<el-table-column label="回执单/退款图">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.finAttachment">
|
<span v-if="scope.row.finAttachment">
|
||||||
|
|
@ -127,7 +123,7 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<el-divider content-position="left">采购-收票单</el-divider>
|
<el-divider content-position="left">采购收票单</el-divider>
|
||||||
<el-table :data="formData.ticketDetailList" style="width: 100%" show-summary :summary-method="getSummaries">
|
<el-table :data="formData.ticketDetailList" style="width: 100%" show-summary :summary-method="getSummaries">
|
||||||
<el-table-column type="index" label="序号" width="50"></el-table-column>
|
<el-table-column type="index" label="序号" width="50"></el-table-column>
|
||||||
<el-table-column prop="payableDetailType" label="发票类型">
|
<el-table-column prop="payableDetailType" label="发票类型">
|
||||||
|
|
@ -135,25 +131,20 @@
|
||||||
<dict-tag :options="dict.type.ticket_detail_type" :value="scope.row.payableDetailType"/>
|
<dict-tag :options="dict.type.ticket_detail_type" :value="scope.row.payableDetailType"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="actualTicketTime" label="实际收票时间">
|
<el-table-column prop="vendorTicketTime" label="制造商开票时间">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ scope.row.actualTicketTime || '-' }}
|
{{ scope.row.vendorTicketTime || '-' }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="paymentAmount" label="本次收票金额">
|
<el-table-column prop="paymentAmount" label="本次收票金额"></el-table-column>
|
||||||
<template slot-scope="scope">
|
|
||||||
<span :style="scope.row.paymentAmount<0?{color:'red'}:{}"> {{ scope.row.paymentAmount }}</span>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column prop="paymentRate" label="本次收票比例"></el-table-column>
|
<el-table-column prop="paymentRate" label="本次收票比例"></el-table-column>
|
||||||
<el-table-column prop="receiptStatus" label="收票状态">
|
<el-table-column prop="receiptStatus" label="收票状态">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<dict-tag :options="dict.type.receipt_status" :value="scope.row.ticketStatus"/>
|
<dict-tag :options="dict.type.receipt_status" :value="scope.row.ticketStatus"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="ticketBillCode" label="采购-收票单编号"></el-table-column>
|
<el-table-column prop="ticketBillCode" label="采购收票单编号"></el-table-column>
|
||||||
<el-table-column label="发票/红冲发票">
|
<el-table-column label="发票图">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.finAttachment">
|
<span v-if="scope.row.finAttachment">
|
||||||
<el-button type="text" size="mini" icon="el-icon-view" @click="handlePreview(scope.row.finAttachment)">预览</el-button>
|
<el-button type="text" size="mini" icon="el-icon-view" @click="handlePreview(scope.row.finAttachment)">预览</el-button>
|
||||||
|
|
@ -275,8 +266,7 @@ export default {
|
||||||
return sums;
|
return sums;
|
||||||
},
|
},
|
||||||
handleClose() {
|
handleClose() {
|
||||||
this.internalVisible = false; // Close dialog local
|
this.internalVisible = false; // Close dialog locally
|
||||||
this.$emit('close');
|
|
||||||
},
|
},
|
||||||
handleSubmit() {
|
handleSubmit() {
|
||||||
this.handleClose();
|
this.handleClose();
|
||||||
|
|
|
||||||
|
|
@ -3,77 +3,63 @@
|
||||||
<div class="dialog-body">
|
<div class="dialog-body">
|
||||||
<el-form ref="form" :model="form" :inline="true" label-width="120px">
|
<el-form ref="form" :model="form" :inline="true" label-width="120px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- <el-col :span="8">-->
|
<el-col :span="8">
|
||||||
<!-- <el-form-item label="付款单类型" prop="paymentBillType">-->
|
<el-form-item label="付款单类型" prop="paymentBillType">
|
||||||
<!-- <el-select disabled v-model="form.paymentBillType" placeholder="请选择付款单类型" clearable>-->
|
<el-select disabled v-model="form.paymentBillType" placeholder="请选择付款单类型" clearable>
|
||||||
<!-- <el-option-->
|
<el-option
|
||||||
<!-- v-for="dict in dict.type.payment_bill_type"-->
|
v-for="dict in dict.type.payment_bill_type"
|
||||||
<!-- :key="dict.value"-->
|
:key="dict.value"
|
||||||
<!-- :label="dict.label"-->
|
:label="dict.label"
|
||||||
<!-- :value="dict.value"-->
|
:value="dict.value"
|
||||||
<!-- />-->
|
/>
|
||||||
<!-- </el-select>-->
|
</el-select>
|
||||||
<!-- </el-form-item>-->
|
</el-form-item>
|
||||||
<!-- </el-col>-->
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="制造商名称">
|
<el-form-item label="制造商名称">
|
||||||
<el-input v-model="form.vendorName" readonly/>
|
<el-input v-model="form.vendorName" readonly/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :span="8">-->
|
<el-col :span="8">
|
||||||
<!-- <el-form-item label="预计付款时间" prop="estimatedPaymentTime">-->
|
<el-form-item label="预计付款时间" prop="estimatedPaymentTime">
|
||||||
<!-- <el-date-picker-->
|
<el-date-picker
|
||||||
<!-- v-model="form.estimatedPaymentTime"-->
|
v-model="form.estimatedPaymentTime"
|
||||||
<!-- type="date"-->
|
type="date"
|
||||||
<!-- value-format="yyyy-MM-dd HH:mm:ss"-->
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
<!-- placeholder="选择日期"-->
|
placeholder="选择日期"
|
||||||
<!-- ></el-date-picker>-->
|
></el-date-picker>
|
||||||
<!-- </el-form-item>-->
|
</el-form-item>
|
||||||
<!-- </el-col>-->
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<el-divider content-position="left">采购应付单表</el-divider>
|
<el-divider content-position="left">采购应付单表</el-divider>
|
||||||
<el-table :data="payableOrdersWithPlans" border max-height="300px" style="margin-bottom: 20px;">
|
<el-table :data="payableOrdersWithPlans" border max-height="300px" style="margin-bottom: 20px;">
|
||||||
<el-table-column label="采购-应付单编号" align="center" prop="payableBillCode" width="150"/>
|
<el-table-column label="应付单编号" align="center" prop="payableBillCode" width="150"/>
|
||||||
<el-table-column label="预计付款时间" align="center" prop="planPaymentDate" width="180"/>
|
<el-table-column label="预计付款时间" align="center" prop="planPaymentDate" width="180"/>
|
||||||
<el-table-column label="预期付款计划" align="center" width="100" prop="planAmount">
|
<el-table-column label="付款计划" align="center" width="100" prop="planAmount">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="项目名称" align="center" prop="projectName" width="150"/>
|
||||||
|
<el-table-column label="合同编号" align="center" prop="orderCode" width="150"/>
|
||||||
|
<el-table-column label="出入库单号" align="center" prop="inventoryCode" width="150"/>
|
||||||
|
<el-table-column label="付款状态" align="center" prop="paymentStatus" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.payment_status" :value="scope.row.paymentStatus"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="含税总价" align="center" prop="totalPriceWithTax" width="120"/>
|
||||||
|
<el-table-column label="未付款金额" align="center" prop="unpaidAmount" width="120"/>
|
||||||
|
<el-table-column label="本次付款金额" align="center" width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ calculateOrderCurrentPaymentAmount(scope.row.id).toFixed(2) }}
|
{{ calculateOrderCurrentPaymentAmount(scope.row.id).toFixed(2) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="预期付款比例" align="center" width="120">
|
<el-table-column label="本次付款比例" align="center" width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ calculateOrderCurrentPaymentRate(scope.row.id) }}
|
{{ calculateOrderCurrentPaymentRate(scope.row.id) }}%
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="项目名称" align="center" prop="projectName" />
|
|
||||||
<el-table-column label="制造商名称" align="center" prop="vendorName" />
|
|
||||||
<!-- <el-table-column label="合同编号" align="center" prop="orderCode" width="150"/>-->
|
|
||||||
<!-- <el-table-column label="出入库单号" align="center" prop="inventoryCode" width="150"/>-->
|
|
||||||
<!-- <el-table-column label="付款状态" align="center" prop="paymentStatus" width="120">-->
|
|
||||||
<!-- <template slot-scope="scope">-->
|
|
||||||
<!-- <dict-tag :options="dict.type.payment_status" :value="scope.row.paymentStatus"/>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column label="含税总价(元)" align="center" prop="totalPriceWithTax" width="120"/>
|
|
||||||
<el-table-column label="未付款金额(元)" align="center" prop="unpaidPaymentAmount" width="120"/>
|
|
||||||
<!-- <el-table-column label="本次付款金额" align="center" width="120">-->
|
|
||||||
<!-- <template slot-scope="scope">-->
|
|
||||||
<!-- {{ calculateOrderCurrentPaymentAmount(scope.row.id).toFixed(2) }}-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<!-- <el-table-column label="本次付款比例" align="center" width="120">-->
|
|
||||||
<!-- <template slot-scope="scope">-->
|
|
||||||
<!-- {{ calculateOrderCurrentPaymentRate(scope.row.id) }}%-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column label="已付款金额(元)" align="center" prop="paidPaymentAmount" width="120"/>
|
|
||||||
<el-table-column label="付款中金额(元)" align="center" prop="paidAmount" width="120">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
{{ $calc.sub($calc.sub(scope.row.totalPriceWithTax, scope.row.paidPaymentAmount), scope.row.unpaidPaymentAmount) }}
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="已付款金额" align="center" prop="paidAmount" width="120"/>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100" fixed="right">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -253,10 +239,10 @@ export default {
|
||||||
this.$modal.msgError('请选择付款单类型');
|
this.$modal.msgError('请选择付款单类型');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// if (!this.form.estimatedPaymentTime) {
|
if (!this.form.estimatedPaymentTime) {
|
||||||
// this.$modal.msgError('请选择预计付款时间');
|
this.$modal.msgError('请选择预计付款时间');
|
||||||
// return;
|
return;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// Validate each payable order's payment plans
|
// Validate each payable order's payment plans
|
||||||
for (const order of this.payableOrdersWithPlans) {
|
for (const order of this.payableOrdersWithPlans) {
|
||||||
|
|
|
||||||
|
|
@ -1,20 +1,20 @@
|
||||||
<template>
|
<template>
|
||||||
<el-dialog title="合并发起收票单" :close-on-click-modal="false" :visible.sync="dialogVisible" width="80%" @close="handleClose" append-to-body>
|
<el-dialog title="合并发起收票单" :visible.sync="dialogVisible" width="80%" @close="handleClose" append-to-body>
|
||||||
<div class="dialog-body">
|
<div class="dialog-body">
|
||||||
<el-form ref="form" :model="form" :inline="true" label-width="120px">
|
<el-form ref="form" :model="form" :inline="true" label-width="120px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- <el-col :span="8">-->
|
<el-col :span="8">
|
||||||
<!-- <el-form-item label="收票单类型" prop="ticketBillType">-->
|
<el-form-item label="收票单类型" prop="ticketBillType">
|
||||||
<!-- <el-select disabled v-model="form.ticketBillType" placeholder="请选择收票单类型" clearable>-->
|
<el-select disabled v-model="form.ticketBillType" placeholder="请选择收票单类型" clearable>
|
||||||
<!-- <el-option-->
|
<el-option
|
||||||
<!-- v-for="dict in dict.type.payment_bill_type"-->
|
v-for="dict in dict.type.payment_bill_type"
|
||||||
<!-- :key="dict.value"-->
|
:key="dict.value"
|
||||||
<!-- :label="dict.label"-->
|
:label="dict.label"
|
||||||
<!-- :value="dict.value"-->
|
:value="dict.value"
|
||||||
<!-- />-->
|
/>
|
||||||
<!-- </el-select>-->
|
</el-select>
|
||||||
<!-- </el-form-item>-->
|
</el-form-item>
|
||||||
<!-- </el-col>-->
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="制造商名称">
|
<el-form-item label="制造商名称">
|
||||||
<el-input v-model="form.vendorName" readonly/>
|
<el-input v-model="form.vendorName" readonly/>
|
||||||
|
|
@ -31,10 +31,10 @@
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<!-- </el-col>-->
|
<!-- </el-col>-->
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="制造商开票时间" prop="vendorTicketTime">
|
<el-form-item label="厂家开票时间" prop="vendorTicketTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="form.vendorTicketTime"
|
v-model="form.vendorTicketTime"
|
||||||
type="datetime"
|
type="date"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
placeholder="选择日期"
|
placeholder="选择日期"
|
||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
|
|
@ -45,38 +45,31 @@
|
||||||
|
|
||||||
<el-divider content-position="left">采购应付单表</el-divider>
|
<el-divider content-position="left">采购应付单表</el-divider>
|
||||||
<el-table :data="payableOrdersWithPlans" border max-height="300px" style="margin-bottom: 20px;">
|
<el-table :data="payableOrdersWithPlans" border max-height="300px" style="margin-bottom: 20px;">
|
||||||
<el-table-column label="采购-应付单编号" align="center" prop="payableBillCode" width="150"/>
|
<el-table-column label="应付单编号" align="center" prop="payableBillCode" width="150"/>
|
||||||
<el-table-column label="预计收票时间" align="center" prop="planTicketDate" width="180"/>
|
<el-table-column label="预计收票时间" align="center" prop="planTicketDate" width="180"/>
|
||||||
<!-- <el-table-column label="收票计划" align="center" width="100" prop="planTicketAmount">-->
|
<el-table-column label="收票计划" align="center" width="100" prop="planTicketAmount">
|
||||||
<!-- </el-table-column>-->
|
</el-table-column>
|
||||||
<el-table-column label="预期收票计划" align="center" width="120">
|
<el-table-column label="项目名称" align="center" prop="projectName" width="150"/>
|
||||||
|
<el-table-column label="合同编号" align="center" prop="orderCode" width="150"/>
|
||||||
|
<el-table-column label="出入库单号" align="center" prop="inventoryCode" width="150"/>
|
||||||
|
<el-table-column label="收票状态" align="center" prop="invoiceStatus" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.invoice_status" :value="scope.row.invoiceStatus"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="含税总价" align="center" prop="totalPriceWithTax" width="120"/>
|
||||||
|
<el-table-column label="未收票金额" align="center" prop="unInvoicedAmount" width="120"/>
|
||||||
|
<el-table-column label="本次收票金额" align="center" width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ calculateOrderCurrentTicketAmount(scope.row.id).toFixed(2) }}
|
{{ calculateOrderCurrentTicketAmount(scope.row.id).toFixed(2) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="预期收票比例" align="center" width="120">
|
<el-table-column label="本次收票比例" align="center" width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ calculateOrderCurrentTicketRate(scope.row.id) }}
|
{{ calculateOrderCurrentTicketRate(scope.row.id) }}%
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="项目名称" align="center" prop="projectName" />
|
|
||||||
<el-table-column label="制造商名称" align="center" prop="vendorName" />
|
|
||||||
<!-- <el-table-column label="合同编号" align="center" prop="orderCode" width="150"/>-->
|
|
||||||
<!-- <el-table-column label="出入库单号" align="center" prop="inventoryCode" width="150"/>-->
|
|
||||||
<!-- <el-table-column label="收票状态" align="center" prop="invoiceStatus" width="120">-->
|
|
||||||
<!-- <template slot-scope="scope">-->
|
|
||||||
<!-- <dict-tag :options="dict.type.invoice_status" :value="scope.row.invoiceStatus"/>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column label="含税总价(元)" align="center" prop="totalPriceWithTax" width="120"/>
|
|
||||||
<el-table-column label="未收票金额(元)" align="center" prop="unreceivedTicketAmount" width="120"/>
|
|
||||||
|
|
||||||
<el-table-column label="已收票金额(元)" align="center" prop="receivedTicketAmount" width="120"/>
|
|
||||||
<el-table-column label="收票中金额(元)" align="center" prop="invoicedAmount" width="120">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
{{ $calc.sub($calc.sub(scope.row.totalPriceWithTax,scope.row.receivedTicketAmount),scope.row.unreceivedTicketAmount)}}
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="已收票金额" align="center" prop="invoicedAmount" width="120"/>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100" fixed="right">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
<el-table-column label="序号" type="index" width="50" align="center"></el-table-column>
|
<el-table-column label="序号" type="index" width="50" align="center"></el-table-column>
|
||||||
<el-table-column label="预计付款时间" align="center" width="200">
|
<el-table-column label="预计付款时间" align="center" width="200">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-date-picker v-model="scope.row.planPaymentDate" type="datetime" style="width: 180px"
|
<el-date-picker v-model="scope.row.planPaymentDate" type="date" style="width: 180px"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
placeholder="选择日期"
|
placeholder="选择日期"
|
||||||
:disabled="!isEditing || isNumberStr(scope.row.detailId)"></el-date-picker>
|
:disabled="!isEditing || isNumberStr(scope.row.detailId)"></el-date-picker>
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
<el-table-column label="序号" type="index" width="50" align="center"></el-table-column>
|
<el-table-column label="序号" type="index" width="50" align="center"></el-table-column>
|
||||||
<el-table-column label="预计收票时间" align="center" width="200">
|
<el-table-column label="预计收票时间" align="center" width="200">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-date-picker v-model="scope.row.planTicketDate" type="datetime" style="width: 180px"
|
<el-date-picker v-model="scope.row.planTicketDate" type="date" style="width: 180px"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
placeholder="选择日期"
|
placeholder="选择日期"
|
||||||
:disabled="!isEditing || isNumberStr(scope.row.detailId)"></el-date-picker>
|
:disabled="!isEditing || isNumberStr(scope.row.detailId)"></el-date-picker>
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="150px">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
|
||||||
<!-- <el-form-item label="项目编号" prop="projectCode">-->
|
<el-form-item label="项目编号" prop="projectCode">
|
||||||
<!-- <el-input-->
|
<el-input
|
||||||
<!-- v-model="queryParams.projectCode"-->
|
v-model="queryParams.projectCode"
|
||||||
<!-- placeholder="请输入项目编号"-->
|
placeholder="请输入项目编号"
|
||||||
<!-- clearable-->
|
clearable
|
||||||
<!-- @keyup.enter.native="handleQuery"-->
|
@keyup.enter.native="handleQuery"
|
||||||
<!-- />-->
|
/>
|
||||||
<!-- </el-form-item>-->
|
</el-form-item>
|
||||||
<el-form-item label="项目名称" prop="projectName">
|
<el-form-item label="项目名称" prop="projectName">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.projectName"
|
v-model="queryParams.projectName"
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="采购-应付单编号" prop="payableBillCode">
|
<el-form-item label="应付单编号" prop="payableBillCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.payableBillCode"
|
v-model="queryParams.payableBillCode"
|
||||||
placeholder="请输入应付单编号"
|
placeholder="请输入应付单编号"
|
||||||
|
|
@ -59,26 +59,26 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="付款状态" prop="paymentStatus">-->
|
<el-form-item label="付款状态" prop="paymentStatus">
|
||||||
<!-- <el-select v-model="queryParams.paymentStatus" placeholder="请选择付款状态" clearable>-->
|
<el-select v-model="queryParams.paymentStatus" placeholder="请选择付款状态" clearable>
|
||||||
<!-- <el-option-->
|
<el-option
|
||||||
<!-- v-for="dict in dict.type.payment_status"-->
|
v-for="dict in dict.type.payment_status"
|
||||||
<!-- :key="dict.value"-->
|
:key="dict.value"
|
||||||
<!-- :label="dict.label"-->
|
:label="dict.label"
|
||||||
<!-- :value="dict.value"-->
|
:value="dict.value"
|
||||||
<!-- />-->
|
/>
|
||||||
<!-- </el-select>-->
|
</el-select>
|
||||||
<!-- </el-form-item>-->
|
</el-form-item>
|
||||||
<!-- <el-form-item label="收票状态" prop="paymentStatus">-->
|
<el-form-item label="收票状态" prop="paymentStatus">
|
||||||
<!-- <el-select v-model="queryParams.paymentStatus" placeholder="请选择付款状态" clearable>-->
|
<el-select v-model="queryParams.paymentStatus" placeholder="请选择付款状态" clearable>
|
||||||
<!-- <el-option-->
|
<el-option
|
||||||
<!-- v-for="dict in dict.type.payment_status"-->
|
v-for="dict in dict.type.payment_status"
|
||||||
<!-- :key="dict.value"-->
|
:key="dict.value"
|
||||||
<!-- :label="dict.label"-->
|
:label="dict.label"
|
||||||
<!-- :value="dict.value"-->
|
:value="dict.value"
|
||||||
<!-- />-->
|
/>
|
||||||
<!-- </el-select>-->
|
</el-select>
|
||||||
<!-- </el-form-item>-->
|
</el-form-item>
|
||||||
<!-- <el-form-item label="生成时间">-->
|
<!-- <el-form-item label="生成时间">-->
|
||||||
<!-- <el-date-picker-->
|
<!-- <el-date-picker-->
|
||||||
<!-- v-model="dateRange"-->
|
<!-- v-model="dateRange"-->
|
||||||
|
|
@ -93,9 +93,9 @@
|
||||||
<el-form-item label="预计付款时间">
|
<el-form-item label="预计付款时间">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="estimatedPaymentDateRange"
|
v-model="estimatedPaymentDateRange"
|
||||||
style="width: 350px"
|
style="width: 240px"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
type="datetimerange"
|
type="daterange"
|
||||||
range-separator="-"
|
range-separator="-"
|
||||||
start-placeholder="开始日期"
|
start-placeholder="开始日期"
|
||||||
end-placeholder="结束日期"
|
end-placeholder="结束日期"
|
||||||
|
|
@ -109,13 +109,13 @@
|
||||||
|
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5" >
|
<el-col :span="1.5" >
|
||||||
<el-button type="primary" plain @click="handleMergeAndInitiatePayment" v-hasPermi="['finance:payable:mergePayment']">
|
<el-button type="primary" plain icon="el-icon-plus" @click="handleMergeAndInitiatePayment" v-hasPermi="['finance:payable:mergePayment']">
|
||||||
合并发起付款单
|
合并并发起付款单
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5" >
|
<el-col :span="1.5" >
|
||||||
<el-button type="primary" plain @click="handleMergeAndInitiateReceipt" v-hasPermi="['inventory:inner:add']">
|
<el-button type="primary" plain icon="el-icon-plus" @click="handleMergeAndInitiateReceipt" v-hasPermi="['inventory:inner:add']">
|
||||||
合并发起收票单
|
合并并发起收票单
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
|
@ -124,15 +124,11 @@
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="payableList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="payableList" @selection-change="handleSelectionChange">
|
||||||
<el-table-column type="selection" width="50" />
|
<el-table-column type="selection" width="50" />
|
||||||
<!-- <el-table-column label="项目编号" align="center" prop="projectCode" width="120" />-->
|
<el-table-column label="项目编号" align="center" prop="projectCode" width="120" />
|
||||||
<el-table-column label="项目名称" align="center" prop="projectName" width="260" />
|
<el-table-column label="项目名称" align="center" prop="projectName" width="260" />
|
||||||
<el-table-column label="采购-应付单编号" align="center" prop="payableBillCode" width="150" />
|
<el-table-column label="应付单编号" align="center" prop="payableBillCode" width="150" />
|
||||||
<!-- <el-table-column label="生成时间" align="center" prop="createTime" width="180"/>-->
|
<!-- <el-table-column label="生成时间" align="center" prop="createTime" width="180"/>-->
|
||||||
<el-table-column label="预计付款时间" align="center" prop="planPaymentDate" width="180">
|
<el-table-column label="预计付款时间" align="center" prop="planPaymentDate" width="180"/>
|
||||||
<template slot-scope="scope">
|
|
||||||
<span :style="getPaymentDateStyle(scope.row.planPaymentDate)">{{ scope.row.planPaymentDate }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="预计付款金额" align="center" prop="planAmount" width="120" />
|
<el-table-column label="预计付款金额" align="center" prop="planAmount" width="120" />
|
||||||
<el-table-column label="该制造商是否有预付单" align="center" prop="hasAdvancePayment" width="150">
|
<el-table-column label="该制造商是否有预付单" align="center" prop="hasAdvancePayment" width="150">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
@ -148,7 +144,7 @@
|
||||||
<dict-tag :options="dict.type.product_type" :value="scope.row.productType"/>
|
<dict-tag :options="dict.type.product_type" :value="scope.row.productType"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="含税总价(元)" align="center" prop="totalPriceWithTax" width="120" />
|
<el-table-column label="含税总价" align="center" prop="totalPriceWithTax" width="120" />
|
||||||
<!-- <el-table-column label="未税总价" align="center" prop="totalPriceWithoutTax" width="120" />-->
|
<!-- <el-table-column label="未税总价" align="center" prop="totalPriceWithoutTax" width="120" />-->
|
||||||
<!-- <el-table-column label="税额" align="center" prop="taxAmount" width="120" />-->
|
<!-- <el-table-column label="税额" align="center" prop="taxAmount" width="120" />-->
|
||||||
<!-- <el-table-column label="付款状态" align="center" prop="paymentStatus" width="120">-->
|
<!-- <el-table-column label="付款状态" align="center" prop="paymentStatus" width="120">-->
|
||||||
|
|
@ -175,8 +171,8 @@
|
||||||
<!-- >生成收票单</el-button>-->
|
<!-- >生成收票单</el-button>-->
|
||||||
<!-- </template>-->
|
<!-- </template>-->
|
||||||
<!-- </el-table-column>-->
|
<!-- </el-table-column>-->
|
||||||
<el-table-column label="未付款金额(元)" align="center" prop="unpaidPaymentAmount" width="120" />
|
<el-table-column label="未付款金额" align="center" prop="unpaidPaymentAmount" width="120" />
|
||||||
<el-table-column label="未收票金额(元)" align="center" prop="unreceivedTicketAmount" width="120" />
|
<el-table-column label="未收票金额" align="center" prop="unreceivedTicketAmount" width="120" />
|
||||||
<!-- <el-table-column label="付款中金额" align="center" prop="payingAmount" width="120" />-->
|
<!-- <el-table-column label="付款中金额" align="center" prop="payingAmount" width="120" />-->
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="300" fixed="right">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="300" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
@ -216,7 +212,7 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 修改弹窗 -->
|
<!-- 修改弹窗 -->
|
||||||
<edit-form :visible.sync="open" :data="selectedRow" @close="getList" />
|
<edit-form :visible.sync="open" :data="selectedRow" />
|
||||||
|
|
||||||
<!-- 合并付款单弹窗 -->
|
<!-- 合并付款单弹窗 -->
|
||||||
<merge-payment-dialog :visible.sync="isMergePaymentDialogOpen" :payable-orders="selectedPayableRows" @confirm="confirmMergePayment" />
|
<merge-payment-dialog :visible.sync="isMergePaymentDialogOpen" :payable-orders="selectedPayableRows" @confirm="confirmMergePayment" />
|
||||||
|
|
@ -330,6 +326,14 @@ export default {
|
||||||
this.$modal.msgSuccess("删除成功");
|
this.$modal.msgSuccess("删除成功");
|
||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
},
|
},
|
||||||
|
/** 生成付款单按钮操作 */
|
||||||
|
handleGeneratePayment(row) {
|
||||||
|
console.log("handleGeneratePayment", row);
|
||||||
|
},
|
||||||
|
/** 生成收票单按钮操作 */
|
||||||
|
handleGenerateInvoice(row) {
|
||||||
|
console.log("handleGenerateInvoice", row);
|
||||||
|
},
|
||||||
/** 多选框选中数据 */
|
/** 多选框选中数据 */
|
||||||
handleSelectionChange(selection) {
|
handleSelectionChange(selection) {
|
||||||
this.selectedPayableRows = selection;
|
this.selectedPayableRows = selection;
|
||||||
|
|
@ -348,14 +352,9 @@ export default {
|
||||||
this.$modal.msgWarning("请选择至少一条应付单进行合并操作");
|
this.$modal.msgWarning("请选择至少一条应付单进行合并操作");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let every = this.selectedPayableRows.every(item=>item.planAmount>0);
|
|
||||||
if (!every){
|
|
||||||
this.$modal.msgWarning("温馨提示:您勾选的应付单中有已全部付款完成的应付单,请勿重复操作");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
let vendorLength = new Set(this.selectedPayableRows.map(item=>item.vendorCode)).size;
|
let vendorLength = new Set(this.selectedPayableRows.map(item=>item.vendorCode)).size;
|
||||||
if (vendorLength > 1) {
|
if (vendorLength > 1) {
|
||||||
this.$modal.msgWarning("温馨提示:您勾选的应付单中有不同供应商,合并发起付款单需为同一供应商,请重新勾选");
|
this.$modal.msgWarning("请选择同一家供应商的应付单进行合并操作");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -375,14 +374,9 @@ export default {
|
||||||
this.$modal.msgWarning("请选择至少一条应付单进行合并操作");
|
this.$modal.msgWarning("请选择至少一条应付单进行合并操作");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let every = this.selectedPayableRows.every(item=>item.planTicketAmount>0);
|
|
||||||
if (!every){
|
|
||||||
this.$modal.msgWarning("温馨提示:您勾选的应付单中有已全部收票完成的应付单,请勿重复操作");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
let vendorLength = new Set(this.selectedPayableRows.map(item=>item.vendorCode)).size;
|
let vendorLength = new Set(this.selectedPayableRows.map(item=>item.vendorCode)).size;
|
||||||
if (vendorLength > 1) {
|
if (vendorLength > 1) {
|
||||||
this.$modal.msgWarning("温馨提示:您勾选的应付单中有不同供应商,合并发起收票单需为同一供应商,请重新勾选");
|
this.$modal.msgWarning("请选择同一家供应商的应付单进行合并操作");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -395,16 +389,6 @@ export default {
|
||||||
this.isMergeReceiptDialogOpen = false;
|
this.isMergeReceiptDialogOpen = false;
|
||||||
this.getList(); // Refresh the list
|
this.getList(); // Refresh the list
|
||||||
});
|
});
|
||||||
},
|
|
||||||
getPaymentDateStyle(dateStr) {
|
|
||||||
|
|
||||||
if (!dateStr) return {};
|
|
||||||
let planDate = new Date(dateStr).getTime();
|
|
||||||
let tenDaysLater = new Date().getTime() + 10 * 24 * 60 * 60 * 1000;
|
|
||||||
if (planDate <= tenDaysLater) {
|
|
||||||
return { color: '#ffba00' };
|
|
||||||
}
|
|
||||||
return {};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -18,28 +18,31 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<!-- <el-row>-->
|
|
||||||
<!-- <el-col :span="24">-->
|
|
||||||
<!-- <el-form-item label="预计付款时间" prop="estimatedPaymentTime">-->
|
|
||||||
<!-- <el-date-picker-->
|
|
||||||
<!-- v-model="form.estimatedPaymentTime"-->
|
|
||||||
<!-- type="date"-->
|
|
||||||
<!-- value-format="yyyy-MM-dd HH:mm:ss"-->
|
|
||||||
<!-- placeholder="选择日期"-->
|
|
||||||
<!-- ></el-date-picker>-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- </el-row>-->
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="备注" prop="paymentBillType">
|
<el-form-item label="预计付款时间" prop="estimatedPaymentTime">
|
||||||
<el-checkbox v-model="form.paymentBillType" true-label="PRE_PAYMENT" false-label="FROM_PAYABLE">预付</el-checkbox>
|
<el-date-picker
|
||||||
|
v-model="form.estimatedPaymentTime"
|
||||||
|
type="date"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
placeholder="选择日期"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="是否预付" prop="paymentBillType">
|
||||||
|
<el-radio-group v-model="form.paymentBillType">
|
||||||
|
<el-radio label="PRE_PAYMENT">是</el-radio>
|
||||||
|
<el-radio label="FROM_PAYABLE">否</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row v-if="form.paymentBillType === 'PRE_PAYMENT'">
|
<el-row v-if="form.paymentBillType === 'PRE_PAYMENT'">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="含税总价(元)" prop="totalPriceWithTax">
|
<el-form-item label="预付金额" prop="totalPriceWithTax">
|
||||||
<el-input-number v-model="form.totalPriceWithTax" :precision="2" :step="100"
|
<el-input-number v-model="form.totalPriceWithTax" :precision="2" :step="100"
|
||||||
style="width: 100%"></el-input-number>
|
style="width: 100%"></el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -49,7 +52,7 @@
|
||||||
<!-- Tables -->
|
<!-- Tables -->
|
||||||
<div v-if="form.vendorCode">
|
<div v-if="form.vendorCode">
|
||||||
<div v-if="form.paymentBillType === 'FROM_PAYABLE'" class="table-container">
|
<div v-if="form.paymentBillType === 'FROM_PAYABLE'" class="table-container">
|
||||||
<h4>采购-应付单表</h4>
|
<h4>应付单列表</h4>
|
||||||
<el-table
|
<el-table
|
||||||
ref="payableTable"
|
ref="payableTable"
|
||||||
:data="payableList"
|
:data="payableList"
|
||||||
|
|
@ -58,48 +61,33 @@
|
||||||
@selection-change="handleSelectionChange"
|
@selection-change="handleSelectionChange"
|
||||||
max-height="400"
|
max-height="400"
|
||||||
row-key="id"
|
row-key="id"
|
||||||
show-summary
|
|
||||||
:summary-method="getPayableSummary"
|
|
||||||
>
|
>
|
||||||
<el-table-column type="selection" width="55" reserve-selection></el-table-column>
|
<el-table-column type="selection" width="55" reserve-selection></el-table-column>
|
||||||
<el-table-column label="采购-应付单编号" align="center" prop="payableBillCode" width="150"/>
|
<el-table-column label="应付单编号" align="center" prop="payableBillCode" width="150"/>
|
||||||
<el-table-column label="预计付款时间" align="center" prop="planPaymentDate" width="180"/>
|
<el-table-column label="预计付款时间" align="center" prop="planPaymentDate" width="180"/>
|
||||||
<el-table-column label="预期付款计划" align="center" width="100" prop="planAmount">
|
<el-table-column label="付款计划" align="center" width="100" prop="planAmount">
|
||||||
<template slot-scope="scope">
|
|
||||||
{{ calculateOrderCurrentPaymentAmount(scope.row) }}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="预期付款比例" align="center" prop="projectCode" width="150">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
{{ $calc.mul($calc.div(calculateOrderCurrentPaymentAmount(scope.row), scope.row.totalPriceWithTax,4),100) }}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="项目名称" align="center" prop="projectName" width="150"/>
|
<el-table-column label="项目名称" align="center" prop="projectName" width="150"/>
|
||||||
<el-table-column label="制造商名称" align="center" prop="vendorName" width="150"/>
|
<el-table-column label="合同编号" align="center" prop="orderCode" width="150"/>
|
||||||
<!-- <el-table-column label="出入库单号" align="center" prop="inventoryCode" width="150"/>-->
|
<el-table-column label="出入库单号" align="center" prop="inventoryCode" width="150"/>
|
||||||
<!-- <el-table-column label="付款状态" align="center" prop="paymentStatus" width="120">-->
|
<el-table-column label="付款状态" align="center" prop="paymentStatus" width="120">
|
||||||
<!-- <template slot-scope="scope">-->
|
|
||||||
<!-- <dict-tag :options="dict.type.payment_status" :value="scope.row.paymentStatus"/>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column label="含税总价(元)" align="center" prop="totalPriceWithTax" width="120"/>
|
|
||||||
<el-table-column label="未付款金额" align="center" prop="unpaidPaymentAmount" width="120"/>
|
|
||||||
<!-- <el-table-column label="本次付款金额" align="center" width="120">-->
|
|
||||||
<!-- <template slot-scope="scope">-->
|
|
||||||
<!-- {{ calculateOrderCurrentPaymentAmount(scope.row).toFixed(2) }}-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<!-- <el-table-column label="本次付款比例" align="center" width="120">-->
|
|
||||||
<!-- <template slot-scope="scope">-->
|
|
||||||
<!-- {{ calculateOrderCurrentPaymentRate(scope.row) }}%-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column label="已付款金额" align="center" prop="paidPaymentAmount" width="120"/>
|
|
||||||
<el-table-column label="付款中金额" align="center" prop="paidAmount" width="120">
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ $calc.sub($calc.sub(scope.row.totalPriceWithTax, scope.row.paidPaymentAmount), scope.row.unpaidPaymentAmount) }}
|
<dict-tag :options="dict.type.payment_status" :value="scope.row.paymentStatus"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="含税总价" align="center" prop="totalPriceWithTax" width="120"/>
|
||||||
|
<el-table-column label="未付款金额" align="center" prop="unpaidAmount" width="120"/>
|
||||||
|
<el-table-column label="本次付款金额" align="center" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ calculateOrderCurrentPaymentAmount(scope.row).toFixed(2) }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="本次付款比例" align="center" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
{{ calculateOrderCurrentPaymentRate(scope.row) }}%
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="已付款金额" align="center" prop="paidAmount" width="120"/>
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100"
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100"
|
||||||
fixed="right">
|
fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
@ -218,7 +206,7 @@ export default {
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
vendorCode: [{required: true, message: "制造商名称不能为空", trigger: "change"}],
|
vendorCode: [{required: true, message: "制造商名称不能为空", trigger: "change"}],
|
||||||
// estimatedPaymentTime: [{required: true, message: "预计付款时间不能为空", trigger: "change"}],
|
estimatedPaymentTime: [{required: true, message: "预计付款时间不能为空", trigger: "change"}],
|
||||||
paymentBillType: [{required: true, message: "请选择是否预付", trigger: "change"}],
|
paymentBillType: [{required: true, message: "请选择是否预付", trigger: "change"}],
|
||||||
totalPriceWithTax: [{required: false, message: "预付金额不能为空", trigger: "blur"}]
|
totalPriceWithTax: [{required: false, message: "预付金额不能为空", trigger: "blur"}]
|
||||||
},
|
},
|
||||||
|
|
@ -290,8 +278,7 @@ export default {
|
||||||
const query = {
|
const query = {
|
||||||
vendorCode: this.form.vendorCode,
|
vendorCode: this.form.vendorCode,
|
||||||
pageNum: this.queryParams.pageNum,
|
pageNum: this.queryParams.pageNum,
|
||||||
pageSize: this.queryParams.pageSize,
|
pageSize: this.queryParams.pageSize
|
||||||
unpaidPaymentAmount:-1
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (this.form.paymentBillType === 'FROM_PAYABLE') {
|
if (this.form.paymentBillType === 'FROM_PAYABLE') {
|
||||||
|
|
@ -388,33 +375,6 @@ export default {
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
},
|
},
|
||||||
getPayableSummary(param) {
|
|
||||||
const { columns, data } = param;
|
|
||||||
const sums = [];
|
|
||||||
columns.forEach((column, index) => {
|
|
||||||
if (index === 0) {
|
|
||||||
sums[index] = '合计';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (column.label === '预期付款计划') {
|
|
||||||
const values = data.map(item => Number(this.calculateOrderCurrentPaymentAmount(item)));
|
|
||||||
if (!values.every(value => isNaN(value))) {
|
|
||||||
sums[index] = values.reduce((prev, curr) => {
|
|
||||||
const value = Number(curr);
|
|
||||||
if (!isNaN(value)) {
|
|
||||||
return prev + curr;
|
|
||||||
} else {
|
|
||||||
return prev;
|
|
||||||
}
|
|
||||||
}, 0);
|
|
||||||
sums[index] = sums[index].toFixed(2);
|
|
||||||
} else {
|
|
||||||
sums[index] = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return sums;
|
|
||||||
},
|
|
||||||
|
|
||||||
handleClose() {
|
handleClose() {
|
||||||
this.internalVisible = false;
|
this.internalVisible = false;
|
||||||
|
|
@ -459,7 +419,7 @@ export default {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// Prepayment logic
|
// Prepayment logic
|
||||||
|
console.log(this.selectedRows)
|
||||||
if (this.selectedRows.length > 1) {
|
if (this.selectedRows.length > 1) {
|
||||||
this.$modal.msgWarning("只能选择一笔订单");
|
this.$modal.msgWarning("只能选择一笔订单");
|
||||||
return;
|
return;
|
||||||
|
|
@ -478,7 +438,7 @@ export default {
|
||||||
paymentTime: this.form.estimatedPaymentTime,
|
paymentTime: this.form.estimatedPaymentTime,
|
||||||
totalPriceWithTax:this.form.totalPriceWithTax
|
totalPriceWithTax:this.form.totalPriceWithTax
|
||||||
};
|
};
|
||||||
|
console.log(submitData)
|
||||||
this.$emit("submit", submitData);
|
this.$emit("submit", submitData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
<template>
|
<template>
|
||||||
<el-drawer
|
<el-drawer
|
||||||
title="采购-付款单详情"
|
title="付款单详情"
|
||||||
:visible.sync="visible"
|
:visible.sync="visible"
|
||||||
direction="rtl"
|
direction="rtl"
|
||||||
size="70%"
|
size="70%"
|
||||||
:wrapper-closable="false"
|
|
||||||
@close="handleClose"
|
@close="handleClose"
|
||||||
>
|
>
|
||||||
<div class="dialog-body" v-if="detail">
|
<div class="dialog-body" v-if="detail">
|
||||||
|
|
@ -24,13 +23,13 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item">含税总价(元): {{ detail.totalPriceWithTax }}</div>
|
<div class="detail-item">含税总价: {{ detail.totalPriceWithTax }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item">未税总价(元): {{ detail.totalPriceWithoutTax }}</div>
|
<div class="detail-item">未税总价: {{ detail.totalPriceWithoutTax }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item">税额(元): {{ detail.taxAmount }}</div>
|
<div class="detail-item">税额: {{ detail.taxAmount }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
|
|
@ -43,7 +42,7 @@
|
||||||
<div class="detail-item">预付单剩余额度: {{ detail.preResidueAmount || '-' }}</div>
|
<div class="detail-item">预付单剩余额度: {{ detail.preResidueAmount || '-' }}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<div class="detail-item">实际付款时间: {{ detail.actualPaymentTime || '-'}}</div>
|
<div class="detail-item">财务付款时间: {{ detail.actualPaymentTime || '-'}}</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
|
|
@ -94,7 +93,7 @@
|
||||||
<el-table-column type="index" label="序号" width="50"></el-table-column>
|
<el-table-column type="index" label="序号" width="50"></el-table-column>
|
||||||
<el-table-column property="projectCode" label="项目编号"></el-table-column>
|
<el-table-column property="projectCode" label="项目编号"></el-table-column>
|
||||||
<el-table-column property="projectName" label="项目名称"></el-table-column>
|
<el-table-column property="projectName" label="项目名称"></el-table-column>
|
||||||
<el-table-column property="payableBillCode" label="采购-应付单编号"></el-table-column>
|
<el-table-column property="payableBillCode" label="采购应付单编号"></el-table-column>
|
||||||
<el-table-column property="totalPriceWithTax" label="含税总价"></el-table-column>
|
<el-table-column property="totalPriceWithTax" label="含税总价"></el-table-column>
|
||||||
<el-table-column property="paymentAmount" label="本次付款金额"></el-table-column>
|
<el-table-column property="paymentAmount" label="本次付款金额"></el-table-column>
|
||||||
<el-table-column property="paymentRate" label="本次付款比例"></el-table-column>
|
<el-table-column property="paymentRate" label="本次付款比例"></el-table-column>
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="receipt-dialog-body">
|
<div v-else class="receipt-dialog-body">
|
||||||
<div v-if="canUpload" class="upload-btn-container">
|
<div v-if="canUpload" class="upload-btn-container">
|
||||||
<el-button type="primary" icon="el-icon-upload" v-hasPermi="['finance:payment:upload']" @click="openUploadDialog">上传{{ titleText }}</el-button>
|
<el-button type="primary" icon="el-icon-upload" @click="openUploadDialog">上传{{ titleText }}</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<el-timeline v-if="attachments.length > 0">
|
<el-timeline v-if="attachments.length > 0">
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
<div class="receipt-card-content">
|
<div class="receipt-card-content">
|
||||||
<div class="receipt-details">
|
<div class="receipt-details">
|
||||||
<div class="detail-item">
|
<div class="detail-item">
|
||||||
<span class="item-label">支付方式</span>
|
<span class="item-label">付款方式</span>
|
||||||
<span class="item-value">
|
<span class="item-value">
|
||||||
<dict-tag :options="dicts.payment_method" :value="paymentData.paymentMethod"/>
|
<dict-tag :options="dicts.payment_method" :value="paymentData.paymentMethod"/>
|
||||||
</span>
|
</span>
|
||||||
|
|
@ -110,7 +110,7 @@
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form :model="uploadForm" ref="uploadForm" label-width="120px" size="medium" >
|
<el-form :model="uploadForm" ref="uploadForm" label-width="120px" size="medium" >
|
||||||
<el-form-item label="支付方式">
|
<el-form-item label="付款方式">
|
||||||
<el-select v-model="uploadForm.paymentMethod" disabled style="width: 100%;">
|
<el-select v-model="uploadForm.paymentMethod" disabled style="width: 100%;">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in dicts.payment_method"
|
v-for="dict in dicts.payment_method"
|
||||||
|
|
@ -120,7 +120,7 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="paymentData.paymentBillType==='FROM_PAYABLE'?'回执单': '退款图'" required>
|
<el-form-item label="退款图" required>
|
||||||
<div style="display: flex; flex-direction: column; align-items: flex-start;">
|
<div style="display: flex; flex-direction: column; align-items: flex-start;">
|
||||||
<el-upload
|
<el-upload
|
||||||
ref="upload"
|
ref="upload"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="130px">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
|
||||||
<el-form-item label="项目编号" prop="projectCode">
|
<el-form-item label="项目编号" prop="projectCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.projectCode"
|
v-model="queryParams.projectCode"
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="采购-付款单编号" prop="paymentBillCode">
|
<el-form-item label="付款单编号" prop="paymentBillCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.paymentBillCode"
|
v-model="queryParams.paymentBillCode"
|
||||||
placeholder="请输入付款单编号"
|
placeholder="请输入付款单编号"
|
||||||
|
|
@ -25,15 +25,15 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="制造商名称" prop="vendorName">
|
<el-form-item label="制造商名称" prop="vendorCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.vendorName"
|
v-model="queryParams.vendorCode"
|
||||||
placeholder="请输入制造商名称"
|
placeholder="请输入制造商名称"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="采购-应付单编号" prop="payableBillCode">
|
<el-form-item label="应付单编号" prop="payableBillCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.payableBillCode"
|
v-model="queryParams.payableBillCode"
|
||||||
placeholder="请输入应付单编号"
|
placeholder="请输入应付单编号"
|
||||||
|
|
@ -41,39 +41,29 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注" prop="paymentBillType">
|
<el-form-item label="付款单类型" prop="paymentBillType">
|
||||||
<el-select v-model="queryParams.paymentBillType" placeholder="请选择备注" clearable>
|
<el-select v-model="queryParams.paymentBillType" placeholder="请选择付款单类型" clearable>
|
||||||
<el-option v-for="dict in dict.type.payment_bill_type" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
<el-option v-for="dict in dict.type.payment_bill_type" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="支付方式" prop="paymentMethod">
|
<el-form-item label="支付方式" prop="paymentMethod">
|
||||||
<el-select v-model="queryParams.paymentMethod" style="width: 100%;">
|
<el-select v-model="queryParams.paymentMethod" placeholder="请选择支付方式" clearable>
|
||||||
<el-option
|
<el-option label="方式一" value="1" />
|
||||||
v-for="dict in dict.type.payment_method"
|
<el-option label="方式二" value="2" />
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="付款状态" prop="paymentStatus">
|
|
||||||
<el-select v-model="queryParams.paymentStatus" placeholder="请选择付款状态" clearable>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in dict.type.payment_status"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="审批状态" prop="approveStatus">
|
<el-form-item label="审批状态" prop="approveStatus">
|
||||||
<el-select v-model="queryParams.approveStatus" placeholder="请选择审批状态" clearable>
|
<el-select v-model="queryParams.approveStatus" placeholder="请选择审批状态" clearable>
|
||||||
<el-option
|
<el-option label="待提交" value="0" />
|
||||||
v-for="dict in dict.type.approve_status"
|
<el-option label="审批中" value="1" />
|
||||||
:key="dict.value"
|
<el-option label="已审批" value="2" />
|
||||||
:label="dict.label"
|
<el-option label="已驳回" value="3" />
|
||||||
:value="dict.value"
|
</el-select>
|
||||||
/>
|
</el-form-item>
|
||||||
|
<el-form-item label="付款状态" prop="paymentStatus">
|
||||||
|
<el-select v-model="queryParams.paymentStatus" placeholder="请选择付款状态" clearable>
|
||||||
|
<el-option label="待付款" value="0" />
|
||||||
|
<el-option label="已付款" value="1" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="审批节点" prop="approveNode">
|
<el-form-item label="审批节点" prop="approveNode">
|
||||||
|
|
@ -84,12 +74,23 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="审批通过时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="dateRangeApproval"
|
||||||
|
style="width: 240px"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="-"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="预计付款时间">
|
<el-form-item label="预计付款时间">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="dateRangeEstimated"
|
v-model="dateRangeEstimated"
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd"
|
||||||
type="datetimerange"
|
type="daterange"
|
||||||
range-separator="-"
|
range-separator="-"
|
||||||
start-placeholder="开始日期"
|
start-placeholder="开始日期"
|
||||||
end-placeholder="结束日期"
|
end-placeholder="结束日期"
|
||||||
|
|
@ -99,26 +100,13 @@
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="dateRangeActual"
|
v-model="dateRangeActual"
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd"
|
||||||
type="datetimerange"
|
type="daterange"
|
||||||
range-separator="-"
|
range-separator="-"
|
||||||
start-placeholder="开始日期"
|
start-placeholder="开始日期"
|
||||||
end-placeholder="结束日期"
|
end-placeholder="结束日期"
|
||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="审批通过时间">
|
|
||||||
<el-date-picker
|
|
||||||
v-model="dateRangeApproval"
|
|
||||||
style="width: 240px"
|
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
|
||||||
type="datetimerange"
|
|
||||||
range-separator="-"
|
|
||||||
start-placeholder="开始日期"
|
|
||||||
end-placeholder="结束日期"
|
|
||||||
></el-date-picker>
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
|
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
|
@ -139,40 +127,36 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="paymentList">
|
<el-table v-loading="loading" :data="paymentList">
|
||||||
<el-table-column label="采购-付款单编号" width="200" align="center" prop="paymentBillCode"/>
|
<el-table-column label="付款单编号" align="center" prop="paymentBillCode" />
|
||||||
<el-table-column label="预计付款时间" align="center" prop="paymentTime" width="180">
|
<el-table-column label="预计付款时间" align="center" prop="paymentTime" width="180">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ parseTime(scope.row.paymentTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
<span>{{ parseTime(scope.row.paymentTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="制造商名称" width="200" align="center" prop="vendorName"/>
|
<el-table-column label="制造商名称" align="center" prop="vendorName" />
|
||||||
<el-table-column label="含税总价(元)" align="center" width="200" prop="totalPriceWithTax">
|
<el-table-column label="含税总价" align="center" prop="totalPriceWithTax" />
|
||||||
<template slot-scope="scope">
|
<el-table-column label="付款单类型" align="center" prop="paymentBillType" >
|
||||||
<span :style="scope.row.totalPriceWithTax<0?{color:'red'}:{}">{{ scope.row.totalPriceWithTax }}</span>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="备注" align="center" width="100" prop="paymentBillType">
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<dict-tag :options="dict.type.payment_bill_type" :value="scope.row.paymentBillType"/>
|
<dict-tag :options="dict.type.payment_bill_type" :value="scope.row.paymentBillType"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="预付单剩余额度" align="center" width="200" prop="preResidueAmount"/>
|
<el-table-column label="预付单剩余额度" align="center" prop="preResidueAmount" />
|
||||||
<el-table-column label="实际付款时间" align="center" prop="actualPaymentTime" width="180">
|
<el-table-column label="实际付款时间" align="center" prop="actualPaymentTime" width="180">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ parseTime(scope.row.actualPaymentTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
<span>{{ parseTime(scope.row.actualPaymentTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="支付方式" align="center" width="100" prop="paymentMethod">
|
<el-table-column label="支付方式" align="center" prop="paymentMethod" >
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<dict-tag :options="dict.type.payment_method" :value="scope.row.paymentMethod"/>
|
<dict-tag :options="dict.type.payment_method" :value="scope.row.paymentMethod"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="付款状态" align="center" width="100" prop="paymentStatus">
|
<el-table-column label="付款状态" align="center" prop="paymentStatus" >
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<dict-tag :options="dict.type.payment_status" :value="scope.row.paymentStatus"/>
|
<dict-tag :options="dict.type.payment_status" :value="scope.row.paymentStatus"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="审批状态" align="center" width="100" prop="approveStatus">
|
<el-table-column label="审批状态" align="center" prop="approveStatus" >
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<dict-tag :options="dict.type.approve_status" :value="scope.row.approveStatus"/>
|
<dict-tag :options="dict.type.approve_status" :value="scope.row.approveStatus"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -182,8 +166,8 @@
|
||||||
<span>{{ parseTime(scope.row.approveTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
<span>{{ parseTime(scope.row.approveTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="审批节点" fixed="right" width="150" align="center" prop="approveNode"/>
|
<el-table-column label="审批节点" align="center" prop="approveNode" />
|
||||||
<el-table-column label="操作" fixed="right" width="400" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
|
|
@ -202,21 +186,21 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-position"
|
icon="el-icon-position"
|
||||||
v-show="(scope.row.approveStatus==='0' || scope.row.approveStatus==='3') && (scope.row.paymentBillType==='FROM_PAYABLE'||scope.row.paymentBillType==='PRE_PAYMENT')"
|
v-show="(scope.row.approveStatus==='0' || scope.row.approveStatus==='3')"
|
||||||
@click="applyPayment(scope.row)"
|
@click="applyPayment(scope.row)"
|
||||||
>申请付款</el-button>
|
>发起付款</el-button>
|
||||||
<!-- <el-button-->
|
<el-button
|
||||||
<!-- size="mini"-->
|
size="mini"
|
||||||
<!-- type="text"-->
|
type="text"
|
||||||
<!-- icon="el-icon-position"-->
|
icon="el-icon-position"
|
||||||
<!-- v-show="(scope.row.approveStatus==='0' || scope.row.approveStatus==='3') && scope.row.paymentBillType==='REFUND' "-->
|
v-show="(scope.row.approveStatus==='0' || scope.row.approveStatus==='3') && scope.row.paymentBillType==='REFUND' "
|
||||||
<!-- @click="applyRefundApprove(scope.row)"-->
|
@click="applyRefundApprove(scope.row)"
|
||||||
<!-- >发起退款</el-button>-->
|
>发起退款</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-refresh-left"
|
icon="el-icon-refresh-left"
|
||||||
v-show="scope.row.paymentBillType==='FROM_PAYABLE' && scope.row.paymentStatus==='1' && scope.row.approveStatus==='0' "
|
v-show="scope.row.paymentBillType==='FROM_PAYABLE' && scope.row.paymentStatus==='1' && (scope.row.approveStatus==='0' || scope.row.approveStatus==='3')"
|
||||||
@click="handleReturn(scope.row)"
|
@click="handleReturn(scope.row)"
|
||||||
>退回</el-button>
|
>退回</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -225,12 +209,12 @@
|
||||||
icon="el-icon-refresh-right"
|
icon="el-icon-refresh-right"
|
||||||
v-if="scope.row.paymentStatus === '2' && scope.row.refundStatus !== 'REFUND_APPLIED' && scope.row.paymentBillType !== 'REFUND'"
|
v-if="scope.row.paymentStatus === '2' && scope.row.refundStatus !== 'REFUND_APPLIED' && scope.row.paymentBillType !== 'REFUND'"
|
||||||
@click="handleApplyRefund(scope.row)"
|
@click="handleApplyRefund(scope.row)"
|
||||||
>申请退款</el-button>
|
>退款</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-refresh-right"
|
icon="el-icon-refresh-right"
|
||||||
v-if="(scope.row.approveStatus === '2' || scope.row.approveStatus==='3') && (scope.row.paymentStatus==='1'||scope.row.paymentStatus==='3')"
|
v-if="scope.row.paymentStatus === '1' && scope.row.approveStatus==='2'"
|
||||||
@click="handleRevoke(scope.row)"
|
@click="handleRevoke(scope.row)"
|
||||||
>撤销</el-button>
|
>撤销</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -254,8 +238,8 @@
|
||||||
<!-- 付款申请弹窗 -->
|
<!-- 付款申请弹窗 -->
|
||||||
<el-dialog title="发起付款" :visible.sync="applyPaymentOpen" width="600px" append-to-body>
|
<el-dialog title="发起付款" :visible.sync="applyPaymentOpen" width="600px" append-to-body>
|
||||||
<el-form ref="applyPaymentForm" :model="applyPaymentForm" label-width="120px">
|
<el-form ref="applyPaymentForm" :model="applyPaymentForm" label-width="120px">
|
||||||
<el-form-item label="支付方式" prop="paymentMethod">
|
<el-form-item label="付款方式" prop="paymentMethod">
|
||||||
<el-select v-model="applyPaymentForm.paymentMethod" placeholder="请选择支付方式">
|
<el-select v-model="applyPaymentForm.paymentMethod" placeholder="请选择付款方式">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in dict.type.payment_method"
|
v-for="dict in dict.type.payment_method"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
|
|
@ -442,7 +426,7 @@ export default {
|
||||||
},
|
},
|
||||||
/** 退回按钮操作 */
|
/** 退回按钮操作 */
|
||||||
handleReturn(row) {
|
handleReturn(row) {
|
||||||
this.$modal.confirm('是否将该笔采购-付款单退回至采购-应付单').then(function() {
|
this.$modal.confirm('是否确认退回付款单编号为"' + row.paymentBillCode + '"的数据项?').then(function() {
|
||||||
return returnPayment(row.id);
|
return returnPayment(row.id);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
|
|
@ -450,7 +434,7 @@ export default {
|
||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
},
|
},
|
||||||
applyRefundApprove(row) {
|
applyRefundApprove(row) {
|
||||||
this.$modal.confirm('收款单退款申请,确认提交至财务审批吗?').then(function() {
|
this.$modal.confirm('是否对付款单编号为"' + row.paymentBillCode + '"的数据项发起退款?').then(function() {
|
||||||
return applyRefundApprove(row.id);
|
return applyRefundApprove(row.id);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
|
|
@ -459,7 +443,7 @@ export default {
|
||||||
},
|
},
|
||||||
/** 申请退款按钮操作 */
|
/** 申请退款按钮操作 */
|
||||||
handleApplyRefund(row) {
|
handleApplyRefund(row) {
|
||||||
this.$modal.confirm('收款单退款申请,确认提交至财务审批吗?').then(() => {
|
this.$modal.confirm('是否确认对付款单编号为"' + row.paymentBillCode + '"的款项申请退款?').then(() => {
|
||||||
return applyRefund(row.id);
|
return applyRefund(row.id);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
|
|
@ -467,8 +451,7 @@ export default {
|
||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
},
|
},
|
||||||
handleRevoke(row) {
|
handleRevoke(row) {
|
||||||
let msg=row.paymentBillType==='REFUND'?'是否将该笔采购-退款单撤销,将退款单撤销至付款单':'是否将该笔采购-付款单撤销,撤销至付款单未审批状态';
|
this.$modal.confirm('是否撤销对付款单编号为"' + row.paymentBillCode + '"的款项?').then(() => {
|
||||||
this.$modal.confirm(msg).then(() => {
|
|
||||||
return handleRevoke(row.id);
|
return handleRevoke(row.id);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
|
|
|
||||||
|
|
@ -3,23 +3,23 @@
|
||||||
<div class="dialog-body">
|
<div class="dialog-body">
|
||||||
<el-form ref="form" :model="queryParams" :inline="true" label-width="120px">
|
<el-form ref="form" :model="queryParams" :inline="true" label-width="120px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<!-- <el-col :span="8">-->
|
<el-col :span="8">
|
||||||
<!-- <el-form-item label="收票单类型" prop="ticketBillType">-->
|
<el-form-item label="收票单类型" prop="ticketBillType">
|
||||||
<!-- <!– Mapping receiptBillType to ticketBillType for consistency with the merge logic –>-->
|
<!-- Mapping receiptBillType to ticketBillType for consistency with the merge logic -->
|
||||||
<!-- <el-select disabled v-model="form.receiptBillType" placeholder="请选择收票单类型" clearable>-->
|
<el-select disabled v-model="form.receiptBillType" placeholder="请选择收票单类型" clearable>
|
||||||
<!-- <!– Using dicts.receipt_bill_type if available, or dict.type.payment_bill_type if that was the intent.-->
|
<!-- Using dicts.receipt_bill_type if available, or dict.type.payment_bill_type if that was the intent.
|
||||||
<!-- The original code used dicts.receipt_bill_type. I'll stick to that but ensure it's passed or available.-->
|
The original code used dicts.receipt_bill_type. I'll stick to that but ensure it's passed or available.
|
||||||
<!-- The user instructions imply 'MergeReceiptDialog' logic which used payment_bill_type.-->
|
The user instructions imply 'MergeReceiptDialog' logic which used payment_bill_type.
|
||||||
<!-- I will use the existing props 'dicts' –>-->
|
I will use the existing props 'dicts' -->
|
||||||
<!-- <el-option-->
|
<el-option
|
||||||
<!-- v-for="dict in dict.type.payment_bill_type"-->
|
v-for="dict in dict.type.payment_bill_type"
|
||||||
<!-- :key="dict.value"-->
|
:key="dict.value"
|
||||||
<!-- :label="dict.label"-->
|
:label="dict.label"
|
||||||
<!-- :value="dict.value"-->
|
:value="dict.value"
|
||||||
<!-- />-->
|
/>
|
||||||
<!-- </el-select>-->
|
</el-select>
|
||||||
<!-- </el-form-item>-->
|
</el-form-item>
|
||||||
<!-- </el-col>-->
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="制造商名称">
|
<el-form-item label="制造商名称">
|
||||||
<el-select
|
<el-select
|
||||||
|
|
@ -39,10 +39,10 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="制造商开票时间" prop="vendorTicketTime">
|
<el-form-item label="厂家开票时间" prop="vendorTicketTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="form.vendorTicketTime"
|
v-model="form.vendorTicketTime"
|
||||||
type="datetime"
|
type="date"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
placeholder="选择日期"
|
placeholder="选择日期"
|
||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
|
|
@ -62,38 +62,31 @@
|
||||||
ref="table"
|
ref="table"
|
||||||
>
|
>
|
||||||
<el-table-column type="selection" :reserve-selection="true" width="55" align="center" />
|
<el-table-column type="selection" :reserve-selection="true" width="55" align="center" />
|
||||||
<el-table-column label="采购-应付单编号" align="center" prop="payableBillCode" width="150"/>
|
<el-table-column label="应付单编号" align="center" prop="payableBillCode" width="150"/>
|
||||||
<el-table-column label="预计收票时间" align="center" prop="planTicketDate" width="180"/>
|
<el-table-column label="预计收票时间" align="center" prop="planTicketDate" width="180"/>
|
||||||
<!-- <el-table-column label="收票计划" align="center" width="100" prop="planTicketAmount">-->
|
<el-table-column label="收票计划" align="center" width="100" prop="planTicketAmount">
|
||||||
<!-- </el-table-column>-->
|
</el-table-column>
|
||||||
<el-table-column label="预期收票计划" align="center" width="120">
|
<el-table-column label="项目名称" align="center" prop="projectName" width="150"/>
|
||||||
|
<el-table-column label="合同编号" align="center" prop="orderCode" width="150"/>
|
||||||
|
<el-table-column label="出入库单号" align="center" prop="inventoryCode" width="150"/>
|
||||||
|
<el-table-column label="收票状态" align="center" prop="invoiceStatus" width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.invoice_status" :value="scope.row.invoiceStatus"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="含税总价" align="center" prop="totalPriceWithTax" width="120"/>
|
||||||
|
<el-table-column label="未收票金额" align="center" prop="unInvoicedAmount" width="120"/>
|
||||||
|
<el-table-column label="本次收票金额" align="center" width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ calculateOrderCurrentTicketAmount(scope.row.id).toFixed(2) }}
|
{{ calculateOrderCurrentTicketAmount(scope.row.id).toFixed(2) }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="预期收票比例" align="center" width="120">
|
<el-table-column label="本次收票比例" align="center" width="120">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
{{ calculateOrderCurrentTicketRate(scope.row.id) }}%
|
{{ calculateOrderCurrentTicketRate(scope.row.id) }}%
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="项目名称" align="center" prop="projectName" />
|
<el-table-column label="已收票金额" align="center" prop="invoicedAmount" width="120"/>
|
||||||
<el-table-column label="制造商名称" align="center" prop="vendorName" />
|
|
||||||
<!-- <el-table-column label="合同编号" align="center" prop="orderCode" width="150"/>-->
|
|
||||||
<!-- <el-table-column label="出入库单号" align="center" prop="inventoryCode" width="150"/>-->
|
|
||||||
<!-- <el-table-column label="收票状态" align="center" prop="invoiceStatus" width="120">-->
|
|
||||||
<!-- <template slot-scope="scope">-->
|
|
||||||
<!-- <dict-tag :options="dict.type.invoice_status" :value="scope.row.invoiceStatus"/>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column label="含税总价(元)" align="center" prop="totalPriceWithTax" width="120"/>
|
|
||||||
<el-table-column label="未收票金额(元)" align="center" prop="unInvoicedAmount" width="120"/>
|
|
||||||
|
|
||||||
<el-table-column label="已收票金额(元)" align="center" prop="invoicedAmount" width="120"/>
|
|
||||||
<el-table-column label="收票中金额(元)" align="center" prop="invoicedAmount" width="120">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
{{ $calc.sub($calc.sub(scope.row.totalPriceWithTax,scope.row.receivedTicketAmount),scope.row.unreceivedTicketAmount)}}
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100" fixed="right">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="100" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
|
|
@ -168,7 +161,6 @@ export default {
|
||||||
ticketBillType: 'FROM_PAYABLE', // Used for filtering if needed
|
ticketBillType: 'FROM_PAYABLE', // Used for filtering if needed
|
||||||
vendorId: null,
|
vendorId: null,
|
||||||
invoiceStatus: null,
|
invoiceStatus: null,
|
||||||
unreceivedTicketAmount:-1
|
|
||||||
},
|
},
|
||||||
// Form data for submission
|
// Form data for submission
|
||||||
form: {
|
form: {
|
||||||
|
|
@ -240,7 +232,6 @@ export default {
|
||||||
ticketPlans.push({
|
ticketPlans.push({
|
||||||
id: order.lastTicketPlanId,
|
id: order.lastTicketPlanId,
|
||||||
planAmount: order.planTicketAmount,
|
planAmount: order.planTicketAmount,
|
||||||
taxRate: order.taxRate,
|
|
||||||
planTicketDate: order.planTicketDate,
|
planTicketDate: order.planTicketDate,
|
||||||
planRate: order.totalPriceWithTax ? this.$calc.mul(this.$calc.div(order.planTicketAmount, order.totalPriceWithTax, 4), 100) : 0
|
planRate: order.totalPriceWithTax ? this.$calc.mul(this.$calc.div(order.planTicketAmount, order.totalPriceWithTax, 4), 100) : 0
|
||||||
});
|
});
|
||||||
|
|
@ -322,7 +313,7 @@ export default {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!this.form.vendorTicketTime) {
|
if (!this.form.vendorTicketTime) {
|
||||||
this.$modal.msgError('请选择制造商开票时间');
|
this.$modal.msgError('请选择厂家开票时间');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -340,14 +331,14 @@ export default {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (const plan of order.ticketPlans) {
|
for (const plan of order.ticketPlans) {
|
||||||
if (plan.planAmount === null || plan.planAmount === undefined || plan.planAmount <= 0) {
|
|
||||||
this.$modal.msgError(`应付单 ${order.payableBillCode} 的收票计划中预计收票金额必须大于0。`);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!plan.planTicketDate) {
|
if (!plan.planTicketDate) {
|
||||||
this.$modal.msgError(`应付单 ${order.payableBillCode} 的收票计划中预计收票时间不能为空。`);
|
this.$modal.msgError(`应付单 ${order.payableBillCode} 的收票计划中预计收票时间不能为空。`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (plan.planAmount === null || plan.planAmount === undefined || plan.planAmount <= 0) {
|
||||||
|
this.$modal.msgError(`应付单 ${order.payableBillCode} 的收票计划中预计收票金额必须大于0。`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -363,7 +354,6 @@ export default {
|
||||||
planTicketDate: plan.planTicketDate,
|
planTicketDate: plan.planTicketDate,
|
||||||
planAmount: plan.planAmount,
|
planAmount: plan.planAmount,
|
||||||
planRate: plan.planRate,
|
planRate: plan.planRate,
|
||||||
taxRate: order.taxRate,
|
|
||||||
remark: plan.remark,
|
remark: plan.remark,
|
||||||
id: plan.id,
|
id: plan.id,
|
||||||
})),
|
})),
|
||||||
|
|
@ -388,7 +378,6 @@ export default {
|
||||||
ticketBillType: 'FROM_PAYABLE',
|
ticketBillType: 'FROM_PAYABLE',
|
||||||
vendorId: null,
|
vendorId: null,
|
||||||
invoiceStatus: null,
|
invoiceStatus: null,
|
||||||
unreceivedTicketAmount:-1
|
|
||||||
};
|
};
|
||||||
this.payableOrdersWithPlans = [];
|
this.payableOrdersWithPlans = [];
|
||||||
this.selectedRows = [];
|
this.selectedRows = [];
|
||||||
|
|
|
||||||
|
|
@ -143,19 +143,19 @@
|
||||||
<span>{{ receiptData.totalPriceWithTax }}</span>
|
<span>{{ receiptData.totalPriceWithTax }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="发票含税总价" prop="ticketPriceWithTax" required>
|
<el-form-item label="发票含税总价" prop="ticketPriceWithTax" required>
|
||||||
<el-input v-model="uploadForm.ticketPriceWithTax" placeholder="请输入发票含税总价" @input="handlePriceWithTaxChange"></el-input>
|
<el-input v-model="uploadForm.ticketPriceWithTax" placeholder="请输入发票含税总价"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="未税总价">
|
<el-form-item label="未税总价">
|
||||||
<span>{{ receiptData.totalPriceWithoutTax }}</span>
|
<span>{{ receiptData.totalPriceWithoutTax }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="发票未税总价" prop="ticketPriceWithoutTax" required>
|
<el-form-item label="发票未税总价" prop="ticketPriceWithoutTax" required>
|
||||||
<el-input v-model="uploadForm.ticketPriceWithoutTax" placeholder="请输入发票未税总价" @input="handlePriceWithoutTaxChange"></el-input>
|
<el-input v-model="uploadForm.ticketPriceWithoutTax" placeholder="请输入发票未税总价"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="税额">
|
<el-form-item label="税额">
|
||||||
<span>{{ receiptData.taxAmount }}</span>
|
<span>{{ receiptData.taxAmount }}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="发票税额" prop="ticketAmount" required>
|
<el-form-item label="发票税额" prop="ticketAmount" required>
|
||||||
<el-input v-model="uploadForm.ticketAmount" placeholder="请输入发票税额" @input="handleAmountChange"></el-input>
|
<el-input v-model="uploadForm.ticketAmount" placeholder="请输入发票税额"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注">
|
<el-form-item label="备注">
|
||||||
<el-input
|
<el-input
|
||||||
|
|
@ -210,10 +210,6 @@ export default {
|
||||||
dicts: {
|
dicts: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => ({})
|
default: () => ({})
|
||||||
},
|
|
||||||
autoUpload: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
dicts:['finance_invoice_type'],
|
dicts:['finance_invoice_type'],
|
||||||
|
|
@ -224,51 +220,24 @@ export default {
|
||||||
// Upload Dialog Data
|
// Upload Dialog Data
|
||||||
uploadDialogVisible: false,
|
uploadDialogVisible: false,
|
||||||
uploadForm: {
|
uploadForm: {
|
||||||
|
totalPriceWithTax: '',
|
||||||
ticketPriceWithTax: '',
|
ticketPriceWithTax: '',
|
||||||
|
totalPriceWithoutTax: '',
|
||||||
ticketPriceWithoutTax: '',
|
ticketPriceWithoutTax: '',
|
||||||
ticketAmount: '',
|
taxAmount: '',
|
||||||
ticketType: '',
|
ticketType: '',
|
||||||
remark: '',
|
remark: '',
|
||||||
file: null
|
file: null
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
ticketPriceWithTax: [
|
ticketPriceWithTax: [
|
||||||
{ required: true, message: "请输入发票含税总价", trigger: "blur" },
|
{ required: true, message: "请输入发票含税总价", trigger: "blur" }
|
||||||
{ validator: (rule, value, callback) => {
|
|
||||||
if (Number(value) !== Number(this.receiptData.totalPriceWithTax)) {
|
|
||||||
callback(new Error('发票含税总价必须等于含税总价'));
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
}, trigger: 'blur' }
|
|
||||||
],
|
],
|
||||||
ticketPriceWithoutTax: [
|
ticketPriceWithoutTax: [
|
||||||
{ required: true, message: "请输入发票未税总价", trigger: "blur" },
|
{ required: true, message: "请输入发票未税总价", trigger: "blur" }
|
||||||
{ validator: (rule, value, callback) => {
|
|
||||||
const total = Number(this.receiptData.totalPriceWithTax);
|
|
||||||
const val = Number(value);
|
|
||||||
if (total > 0 && val < 0) {
|
|
||||||
callback(new Error('发票未税总价不能小于0'));
|
|
||||||
} else if (total < 0 && val > 0) {
|
|
||||||
callback(new Error('发票未税总价不能大于0'));
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
}, trigger: 'blur' }
|
|
||||||
],
|
],
|
||||||
ticketAmount: [
|
ticketAmount: [
|
||||||
{ required: true, message: "请输入发票税额", trigger: "blur" },
|
{ required: true, message: "请输入发票税额", trigger: "blur" }
|
||||||
{ validator: (rule, value, callback) => {
|
|
||||||
const total = Number(this.receiptData.totalPriceWithTax);
|
|
||||||
const val = Number(value);
|
|
||||||
if (total > 0 && val < 0) {
|
|
||||||
callback(new Error('发票税额不能小于0'));
|
|
||||||
} else if (total < 0 && val > 0) {
|
|
||||||
callback(new Error('发票税额不能大于0'));
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
}, trigger: 'blur' }
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
previewUrl: '',
|
previewUrl: '',
|
||||||
|
|
@ -307,11 +276,6 @@ export default {
|
||||||
visible(val) {
|
visible(val) {
|
||||||
if (val && this.receiptData) {
|
if (val && this.receiptData) {
|
||||||
this.fetchAttachments();
|
this.fetchAttachments();
|
||||||
if (this.autoUpload) {
|
|
||||||
setTimeout(() => {
|
|
||||||
this.openUploadDialog();
|
|
||||||
}, 300);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -377,10 +341,9 @@ export default {
|
||||||
// New Upload Dialog Methods
|
// New Upload Dialog Methods
|
||||||
openUploadDialog() {
|
openUploadDialog() {
|
||||||
this.uploadForm = {
|
this.uploadForm = {
|
||||||
ticketPriceWithTax: this.receiptData.totalPriceWithTax,
|
totalPriceWithTax: '',
|
||||||
ticketPriceWithoutTax: this.receiptData.totalPriceWithoutTax,
|
totalPriceWithoutTax: '',
|
||||||
ticketAmount: this.receiptData.taxAmount,
|
taxAmount: '',
|
||||||
ticketType: '',
|
|
||||||
remark: '',
|
remark: '',
|
||||||
file: null
|
file: null
|
||||||
};
|
};
|
||||||
|
|
@ -391,21 +354,6 @@ export default {
|
||||||
this.isPreviewPdf = false;
|
this.isPreviewPdf = false;
|
||||||
this.uploadDialogVisible = true;
|
this.uploadDialogVisible = true;
|
||||||
},
|
},
|
||||||
handlePriceWithTaxChange(val) {
|
|
||||||
const withTax = Number(val) || 0;
|
|
||||||
const withoutTax = Number(this.uploadForm.ticketPriceWithoutTax) || 0;
|
|
||||||
this.uploadForm.ticketAmount = (withTax - withoutTax).toFixed(2);
|
|
||||||
},
|
|
||||||
handlePriceWithoutTaxChange(val) {
|
|
||||||
const withTax = Number(this.uploadForm.ticketPriceWithTax) || 0;
|
|
||||||
const withoutTax = Number(val) || 0;
|
|
||||||
this.uploadForm.ticketAmount = (withTax - withoutTax).toFixed(2);
|
|
||||||
},
|
|
||||||
handleAmountChange(val) {
|
|
||||||
const withTax = Number(this.uploadForm.ticketPriceWithTax) || 0;
|
|
||||||
const amount = Number(val) || 0;
|
|
||||||
this.uploadForm.ticketPriceWithoutTax = (withTax - amount).toFixed(2);
|
|
||||||
},
|
|
||||||
closeUploadDialog() {
|
closeUploadDialog() {
|
||||||
this.uploadDialogVisible = false;
|
this.uploadDialogVisible = false;
|
||||||
this.uploadForm.file = null;
|
this.uploadForm.file = null;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="150px">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
|
||||||
<el-form-item label="项目编号" prop="projectCode">
|
<el-form-item label="项目编号" prop="projectCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.projectCode"
|
v-model="queryParams.projectCode"
|
||||||
|
|
@ -17,9 +17,9 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="采购-收票单编号" prop="ticketBillCode">
|
<el-form-item label="收票单编号" prop="receiptBillCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.ticketBillCode"
|
v-model="queryParams.receiptBillCode"
|
||||||
placeholder="请输入收票单编号"
|
placeholder="请输入收票单编号"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
|
|
@ -33,7 +33,7 @@
|
||||||
@keyup.enter.native="handleQuery"
|
@keyup.enter.native="handleQuery"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="采购-应付单编号" prop="payableBillCode">
|
<el-form-item label="应付单编号" prop="payableBillCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.payableBillCode"
|
v-model="queryParams.payableBillCode"
|
||||||
placeholder="请输入应付单编号"
|
placeholder="请输入应付单编号"
|
||||||
|
|
@ -46,27 +46,20 @@
|
||||||
<el-option v-for="dict in dict.type.receipt_bill_type" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
<el-option v-for="dict in dict.type.receipt_bill_type" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="收票状态" prop="receiptStatus">
|
|
||||||
<el-select v-model="queryParams.receiptStatus" placeholder="请选择收票状态" clearable>
|
|
||||||
<el-option
|
|
||||||
v-for="dict in dict.type.receipt_status"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="审批状态" prop="approveStatus">
|
<el-form-item label="审批状态" prop="approveStatus">
|
||||||
<el-select v-model="queryParams.approveStatus" placeholder="请选择审批状态" clearable>
|
<el-select v-model="queryParams.approveStatus" placeholder="请选择审批状态" clearable>
|
||||||
<el-option
|
<el-option label="待提交" value="0" />
|
||||||
v-for="dict in dict.type.approve_status"
|
<el-option label="审批中" value="1" />
|
||||||
:key="dict.value"
|
<el-option label="已审批" value="2" />
|
||||||
:label="dict.label"
|
<el-option label="已驳回" value="3" />
|
||||||
:value="dict.value"
|
</el-select>
|
||||||
/>
|
</el-form-item>
|
||||||
|
<el-form-item label="收票状态" prop="receiptStatus">
|
||||||
|
<el-select v-model="queryParams.receiptStatus" placeholder="请选择收票状态" clearable>
|
||||||
|
<el-option label="待收票" value="0" />
|
||||||
|
<el-option label="已收票" value="1" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="审批节点" prop="approveNode">
|
<el-form-item label="审批节点" prop="approveNode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.approveNode"
|
v-model="queryParams.approveNode"
|
||||||
|
|
@ -79,30 +72,30 @@
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="dateRangeApproval"
|
v-model="dateRangeApproval"
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd"
|
||||||
type="datetimerange"
|
type="daterange"
|
||||||
range-separator="-"
|
range-separator="-"
|
||||||
start-placeholder="开始日期"
|
start-placeholder="开始日期"
|
||||||
end-placeholder="结束日期"
|
end-placeholder="结束日期"
|
||||||
></el-date-picker>
|
></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="预计收票时间">-->
|
<el-form-item label="预计收票时间">
|
||||||
<!-- <el-date-picker-->
|
|
||||||
<!-- v-model="dateRangeEstimated"-->
|
|
||||||
<!-- style="width: 240px"-->
|
|
||||||
<!-- value-format="yyyy-MM-dd"-->
|
|
||||||
<!-- type="daterange"-->
|
|
||||||
<!-- range-separator="-"-->
|
|
||||||
<!-- start-placeholder="开始日期"-->
|
|
||||||
<!-- end-placeholder="结束日期"-->
|
|
||||||
<!-- ></el-date-picker>-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<el-form-item label="制造商开票时间">
|
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="dateRangeVendor"
|
v-model="dateRangeEstimated"
|
||||||
style="width: 240px"
|
style="width: 240px"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd"
|
||||||
type="datetimerange"
|
type="daterange"
|
||||||
|
range-separator="-"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
></el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="实际收票时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="dateRangeActual"
|
||||||
|
style="width: 240px"
|
||||||
|
value-format="yyyy-MM-dd"
|
||||||
|
type="daterange"
|
||||||
range-separator="-"
|
range-separator="-"
|
||||||
start-placeholder="开始日期"
|
start-placeholder="开始日期"
|
||||||
end-placeholder="结束日期"
|
end-placeholder="结束日期"
|
||||||
|
|
@ -128,7 +121,7 @@
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="receiptList">
|
<el-table v-loading="loading" :data="receiptList">
|
||||||
<el-table-column label="采购-收票单编号" align="center" prop="ticketBillCode" />
|
<el-table-column label="收票单编号" align="center" prop="ticketBillCode" />
|
||||||
<!-- <el-table-column label="预计收票时间" align="center" prop="ticketTime" width="180">-->
|
<!-- <el-table-column label="预计收票时间" align="center" prop="ticketTime" width="180">-->
|
||||||
<!-- <template slot-scope="scope">-->
|
<!-- <template slot-scope="scope">-->
|
||||||
<!-- <span>{{ parseTime(scope.row.ticketTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>-->
|
<!-- <span>{{ parseTime(scope.row.ticketTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>-->
|
||||||
|
|
@ -140,9 +133,9 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="制造商名称" align="center" prop="vendorName" />
|
<el-table-column label="制造商名称" align="center" prop="vendorName" />
|
||||||
<el-table-column label="含税总价(元)" align="center" prop="totalPriceWithTax" />
|
<el-table-column label="含税总价" align="center" prop="totalPriceWithTax" />
|
||||||
<el-table-column label="未税总价(元)" align="center" prop="totalPriceWithoutTax" />
|
<el-table-column label="未税总价" align="center" prop="totalPriceWithoutTax" />
|
||||||
<el-table-column label="税额(元)" align="center" prop="taxAmount" />
|
<el-table-column label="税额" align="center" prop="taxAmount" />
|
||||||
<!-- <el-table-column label="收票单类型" align="center" prop="ticketBillType" >-->
|
<!-- <el-table-column label="收票单类型" align="center" prop="ticketBillType" >-->
|
||||||
<!-- <template slot-scope="scope">-->
|
<!-- <template slot-scope="scope">-->
|
||||||
<!-- <dict-tag :options="dict.type.ticket_bill_type" :value="scope.row.ticketBillType"/>-->
|
<!-- <dict-tag :options="dict.type.ticket_bill_type" :value="scope.row.ticketBillType"/>-->
|
||||||
|
|
@ -182,37 +175,22 @@
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-document"
|
icon="el-icon-document"
|
||||||
v-show="scope.row.approveStatus!=='0'"
|
|
||||||
@click="handleReceipt(scope.row)"
|
@click="handleReceipt(scope.row)"
|
||||||
>{{scope.row.ticketBillType==='FROM_PAYABLE'?'发票' : '红冲'}}</el-button>
|
>发票</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-document"
|
icon="el-icon-document"
|
||||||
v-show="scope.row.approveStatus==='0' && scope.row.ticketStatus==='1'"
|
v-show="scope.row.approveStatus==='0'"
|
||||||
@click="handleReturn(scope.row)"
|
@click="handleReturn(scope.row)"
|
||||||
>退回</el-button>
|
>退回</el-button>
|
||||||
<el-button
|
|
||||||
size="mini"
|
|
||||||
type="text"
|
|
||||||
icon="el-icon-document"
|
|
||||||
v-show="scope.row.approveStatus==='0' && scope.row.ticketStatus==='1'"
|
|
||||||
@click="handleApplyInvoice(scope.row)"
|
|
||||||
>申请发票</el-button>
|
|
||||||
<el-button
|
<el-button
|
||||||
size="mini"
|
size="mini"
|
||||||
type="text"
|
type="text"
|
||||||
icon="el-icon-refresh-left"
|
icon="el-icon-refresh-left"
|
||||||
v-show="scope.row.approveStatus=='2' && scope.row.ticketStatus==='2'"
|
v-show="scope.row.approveStatus=='2'"
|
||||||
@click="handleApplyRedRush(scope.row)"
|
@click="handleRedRush(scope.row)"
|
||||||
>申请红冲</el-button>
|
>申请红冲</el-button>
|
||||||
<el-button
|
|
||||||
size="mini"
|
|
||||||
type="text"
|
|
||||||
icon="el-icon-refresh-left"
|
|
||||||
v-show="scope.row.approveStatus=='3'"
|
|
||||||
@click="handleRevoke(scope.row)"
|
|
||||||
>撤销</el-button>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
@ -230,13 +208,13 @@
|
||||||
<!-- 新增弹窗 -->
|
<!-- 新增弹窗 -->
|
||||||
<add-form :visible.sync="addOpen" :dicts="dict.type" @submit="handleAddSubmit"></add-form>
|
<add-form :visible.sync="addOpen" :dicts="dict.type" @submit="handleAddSubmit"></add-form>
|
||||||
<!-- 收票附件弹窗 -->
|
<!-- 收票附件弹窗 -->
|
||||||
<receipt-dialog :visible.sync="receiptOpen" :receipt-data="currentRow" :dicts="dict.type" :auto-upload="autoUpload"></receipt-dialog>
|
<receipt-dialog :visible.sync="receiptOpen" :receipt-data="currentRow" :dicts="dict.type"></receipt-dialog>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {listReceipt, getReceipt, redRush, addReceipt, returnReceipt, revokeReceipt} from "@/api/finance/receipt";
|
import {listReceipt, getReceipt, redRush, addReceipt, returnReceipt} from "@/api/finance/receipt";
|
||||||
import { addDateRange } from "@/utils/ruoyi";
|
import { addDateRange } from "@/utils/ruoyi";
|
||||||
import DetailDrawer from "./components/DetailDrawer.vue";
|
import DetailDrawer from "./components/DetailDrawer.vue";
|
||||||
import AddForm from "./components/AddForm.vue";
|
import AddForm from "./components/AddForm.vue";
|
||||||
|
|
@ -266,7 +244,7 @@ export default {
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
projectCode: null,
|
projectCode: null,
|
||||||
projectName: null,
|
projectName: null,
|
||||||
ticketBillCode: null,
|
receiptBillCode: null,
|
||||||
vendorCode: null,
|
vendorCode: null,
|
||||||
payableBillCode: null,
|
payableBillCode: null,
|
||||||
receiptBillType: null,
|
receiptBillType: null,
|
||||||
|
|
@ -277,7 +255,7 @@ export default {
|
||||||
// 日期范围
|
// 日期范围
|
||||||
dateRangeApproval: [],
|
dateRangeApproval: [],
|
||||||
dateRangeEstimated: [],
|
dateRangeEstimated: [],
|
||||||
dateRangeVendor: [],
|
dateRangeActual: [],
|
||||||
// 详情抽屉
|
// 详情抽屉
|
||||||
detailOpen: false,
|
detailOpen: false,
|
||||||
detailData: null,
|
detailData: null,
|
||||||
|
|
@ -285,8 +263,7 @@ export default {
|
||||||
addOpen: false,
|
addOpen: false,
|
||||||
// 收票附件弹窗
|
// 收票附件弹窗
|
||||||
receiptOpen: false,
|
receiptOpen: false,
|
||||||
currentRow: {},
|
currentRow: {}
|
||||||
autoUpload: false
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
@ -299,7 +276,7 @@ export default {
|
||||||
let query = { ...this.queryParams };
|
let query = { ...this.queryParams };
|
||||||
query = this.addDateRange(query, this.dateRangeApproval, 'ApproveTime');
|
query = this.addDateRange(query, this.dateRangeApproval, 'ApproveTime');
|
||||||
query = this.addDateRange(query, this.dateRangeEstimated, 'ReceiptTime');
|
query = this.addDateRange(query, this.dateRangeEstimated, 'ReceiptTime');
|
||||||
query = this.addDateRange(query, this.dateRangeVendor, 'VendorTicketTime');
|
query = this.addDateRange(query, this.dateRangeActual, 'ActualReceiptTime');
|
||||||
|
|
||||||
listReceipt(query).then(response => {
|
listReceipt(query).then(response => {
|
||||||
this.receiptList = response.rows;
|
this.receiptList = response.rows;
|
||||||
|
|
@ -316,7 +293,7 @@ export default {
|
||||||
resetQuery() {
|
resetQuery() {
|
||||||
this.dateRangeApproval = [];
|
this.dateRangeApproval = [];
|
||||||
this.dateRangeEstimated = [];
|
this.dateRangeEstimated = [];
|
||||||
this.dateRangeVendor = [];
|
this.dateRangeActual = [];
|
||||||
this.resetForm("queryForm");
|
this.resetForm("queryForm");
|
||||||
this.handleQuery();
|
this.handleQuery();
|
||||||
},
|
},
|
||||||
|
|
@ -347,36 +324,22 @@ export default {
|
||||||
handleReceipt(row) {
|
handleReceipt(row) {
|
||||||
this.currentRow = row;
|
this.currentRow = row;
|
||||||
this.receiptOpen = true;
|
this.receiptOpen = true;
|
||||||
this.autoUpload = false;
|
|
||||||
},
|
|
||||||
handleApplyInvoice(row) {
|
|
||||||
this.currentRow = row;
|
|
||||||
this.receiptOpen = true;
|
|
||||||
this.autoUpload = true;
|
|
||||||
},
|
|
||||||
handleApplyRedRush(row) {
|
|
||||||
this.currentRow = row;
|
|
||||||
this.receiptOpen = true;
|
|
||||||
this.autoUpload = true;
|
|
||||||
},
|
},
|
||||||
/** 退回按钮操作 */
|
/** 退回按钮操作 */
|
||||||
handleReturn(row) {
|
handleRedRush(row) {
|
||||||
this.$modal.confirm('是否将该笔采购-收票单退回至采购-应付单').then(function() {
|
this.$modal.confirm('是否确认收票单编号为"' + row.ticketBillCode + '"的数据项进行红冲,并提交财务审批?').then(function() {
|
||||||
return returnReceipt(row.id);
|
return redRush(row.id);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
this.$modal.msgSuccess("退回成功");
|
this.$modal.msgSuccess("退回成功");
|
||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
},
|
},
|
||||||
handleRevoke(row) {
|
handleReturn(row) {
|
||||||
const msg = row.ticketBillType === 'FROM_PAYABLE'
|
this.$modal.confirm('是否确认退回收票单编号为"' + row.ticketBillCode + '"的数据项?').then(function() {
|
||||||
? '是否将该笔采购-收票单撤销,撤销后重新上传发票'
|
return returnReceipt(row.id);
|
||||||
: '是否将该笔采购-红冲收票单撤销,将红冲收票单撤销至收票单';
|
|
||||||
this.$modal.confirm(msg).then(function() {
|
|
||||||
return revokeReceipt(row.id);
|
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.getList();
|
this.getList();
|
||||||
this.$modal.msgSuccess("撤销成功");
|
this.$modal.msgSuccess("退回成功");
|
||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ public class OmsPayableBillController extends BaseController
|
||||||
@RequiresPermissions("finance:payable:list")
|
@RequiresPermissions("finance:payable:list")
|
||||||
@PostMapping("/list")
|
@PostMapping("/list")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public TableDataInfo list(OmsPayableBill omsPayableBill)
|
public TableDataInfo list(@RequestBody OmsPayableBill omsPayableBill)
|
||||||
{
|
{
|
||||||
startPage();
|
startPage();
|
||||||
List<OmsPayableBill> list = omsPayableBillService.selectOmsPayableBillList(omsPayableBill);
|
List<OmsPayableBill> list = omsPayableBillService.selectOmsPayableBillList(omsPayableBill);
|
||||||
|
|
|
||||||
|
|
@ -138,7 +138,7 @@ public class OmsPaymentBillController extends BaseController
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult addSave(@RequestBody OmsPaymentBill omsPaymentBill)
|
public AjaxResult addSave(@RequestBody OmsPaymentBill omsPaymentBill)
|
||||||
{
|
{
|
||||||
omsPaymentBill.setPreResidueAmount(null);
|
omsPaymentBill.setPreResidueAmount(omsPaymentBill.getTotalPriceWithTax());
|
||||||
return toAjax(omsPaymentBillService.insertOmsPaymentBill(omsPaymentBill));
|
return toAjax(omsPaymentBillService.insertOmsPaymentBill(omsPaymentBill));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ private IOmsFinAttachmentService omsFinAttachmentService;
|
||||||
* 查询采购收票单列表
|
* 查询采购收票单列表
|
||||||
*/
|
*/
|
||||||
@RequiresPermissions("sip:ticketBill:list")
|
@RequiresPermissions("sip:ticketBill:list")
|
||||||
@PostMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo list(OmsTicketBill omsTicketBill)
|
public TableDataInfo list(OmsTicketBill omsTicketBill)
|
||||||
{
|
{
|
||||||
startPage();
|
startPage();
|
||||||
|
|
@ -168,11 +168,11 @@ private IOmsFinAttachmentService omsFinAttachmentService;
|
||||||
/**
|
/**
|
||||||
* 申请红冲
|
* 申请红冲
|
||||||
*/
|
*/
|
||||||
@PostMapping("/applyRefund")
|
@GetMapping("/applyRefund/{id}")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public AjaxResult applyRefund(@RequestParam("id")OmsTicketBill ticketBill, @RequestParam("file") MultipartFile file) {
|
public AjaxResult applyRefund(@PathVariable("id") Long id) {
|
||||||
try {
|
try {
|
||||||
return omsTicketBillService.applyRefund(ticketBill,file);
|
return omsTicketBillService.applyRefund(id);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("申请退款失败", e);
|
logger.error("申请退款失败", e);
|
||||||
return AjaxResult.error("操作失败:" + e.getMessage());
|
return AjaxResult.error("操作失败:" + e.getMessage());
|
||||||
|
|
@ -196,26 +196,7 @@ private IOmsFinAttachmentService omsFinAttachmentService;
|
||||||
// 调用服务层方法处理退回逻辑
|
// 调用服务层方法处理退回逻辑
|
||||||
return omsTicketBillService.returnTicket(id);
|
return omsTicketBillService.returnTicket(id);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("退回收票单失败", e);
|
logger.error("退回付款单失败", e);
|
||||||
return AjaxResult.error("操作失败:" + e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@RequiresPermissions("finance:payment:return")
|
|
||||||
@Log(title = "撤销", businessType = BusinessType.UPDATE)
|
|
||||||
@PutMapping("/revoke/{id}")
|
|
||||||
@ResponseBody
|
|
||||||
public AjaxResult revokeTicket(@PathVariable("id") Long id)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
// 验证付款单ID
|
|
||||||
if (id == null) {
|
|
||||||
return AjaxResult.error("收票ID不能为空");
|
|
||||||
}
|
|
||||||
|
|
||||||
// 调用服务层方法处理退回逻辑
|
|
||||||
return omsTicketBillService.revokeTicket(id);
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("撤销收票单失败", e);
|
|
||||||
return AjaxResult.error("操作失败:" + e.getMessage());
|
return AjaxResult.error("操作失败:" + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@ public class VueProjectOrderInfoController extends BaseController {
|
||||||
boolean updateFlag = CollUtil.isNotEmpty(todoCompletedList) && ProjectOrderInfo.OrderStatus.WAIT_APPROVE.getCode().equals(projectOrderInfo.getOrderStatus()) ?
|
boolean updateFlag = CollUtil.isNotEmpty(todoCompletedList) && ProjectOrderInfo.OrderStatus.WAIT_APPROVE.getCode().equals(projectOrderInfo.getOrderStatus()) ?
|
||||||
("产品经理".equals(todoCompletedList.get(0).getTaskName()) || "售前".equals(todoCompletedList.get(0).getTaskName()))
|
("产品经理".equals(todoCompletedList.get(0).getTaskName()) || "售前".equals(todoCompletedList.get(0).getTaskName()))
|
||||||
: (boolean) mmap.get("canUpdate");
|
: (boolean) mmap.get("canUpdate");
|
||||||
mmap.put("updateFile", (ShiroUtils.getSubject().hasRole("sale_assistant")||ShiroUtils.getSubject().hasRole("business")||ShiroUtils.getSubject().hasRole("marketing_promotion") ||ShiroUtils.getSysUser().isAdmin()) && updateFlag);
|
mmap.put("updateFile", (ShiroUtils.getSubject().hasRole("sale_assistant")||ShiroUtils.getSubject().hasRole("business") ||ShiroUtils.getSysUser().isAdmin()) && updateFlag);
|
||||||
mmap.put("uploadFinalFile", (ShiroUtils.getSubject().hasRole("business") || ShiroUtils.getSysUser().isAdmin()) &&
|
mmap.put("uploadFinalFile", (ShiroUtils.getSubject().hasRole("business") || ShiroUtils.getSysUser().isAdmin()) &&
|
||||||
ProjectOrderInfo.OrderStatus.APPROVE_COMPLETE.getCode().equals(projectOrderInfo.getOrderStatus()));
|
ProjectOrderInfo.OrderStatus.APPROVE_COMPLETE.getCode().equals(projectOrderInfo.getOrderStatus()));
|
||||||
mmap.put("todo", todoService.selectTodo(todo));
|
mmap.put("todo", todoService.selectTodo(todo));
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,6 @@ public class OmsPaymentBill extends BaseEntity
|
||||||
WAIT_PAYMENT("1", "未付款"),
|
WAIT_PAYMENT("1", "未付款"),
|
||||||
/** 预付单 */
|
/** 预付单 */
|
||||||
PAYMENT("2", "已付款"),
|
PAYMENT("2", "已付款"),
|
||||||
WAIT_REFUNDED("3", "未退款"),
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -115,8 +115,6 @@ public class OmsTicketBill extends BaseEntity
|
||||||
private String processKey;
|
private String processKey;
|
||||||
private String todoId;
|
private String todoId;
|
||||||
private String taskId;
|
private String taskId;
|
||||||
private String projectName;
|
|
||||||
private String projectCode;
|
|
||||||
|
|
||||||
public BigDecimal getTaxAmount() {
|
public BigDecimal getTaxAmount() {
|
||||||
if (null != totalPriceWithTax && null != totalPriceWithoutTax){
|
if (null != totalPriceWithTax && null != totalPriceWithoutTax){
|
||||||
|
|
@ -159,7 +157,6 @@ public class OmsTicketBill extends BaseEntity
|
||||||
WAIT_TICKET("1", "未收票"),
|
WAIT_TICKET("1", "未收票"),
|
||||||
/** 预付单 */
|
/** 预付单 */
|
||||||
TICKET("2", "已收票"),
|
TICKET("2", "已收票"),
|
||||||
WAIT_RED_RUSH("3", "未红冲"),
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,12 +17,9 @@ public interface OmsPayablePaymentDetailMapper {
|
||||||
|
|
||||||
List<OmsPayablePaymentDetail> selectByPaymentPlanIds(@Param("paymentPlanIds") List<Long> paymentPlanIds);
|
List<OmsPayablePaymentDetail> selectByPaymentPlanIds(@Param("paymentPlanIds") List<Long> paymentPlanIds);
|
||||||
|
|
||||||
int clearWriteOffByWriteOffId(Long[] ids);
|
int clearWriteOffByWriteOffId(@Param("ids") Long[] ids);
|
||||||
|
|
||||||
List<PaymentBillPayableDetailDTO> listPayableByWriteOffId(List<Long> writeOffIds);
|
List<PaymentBillPayableDetailDTO> listPayableByWriteOffId(List<Long> writeOffIds);
|
||||||
|
|
||||||
void updateBatch(List<OmsPayablePaymentDetail> updateList);
|
void updateBatch(List<OmsPayablePaymentDetail> updateList);
|
||||||
|
|
||||||
void deleteByPaymentCode(String payableBillCode);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,5 +77,4 @@ public interface OmsPayableTicketDetailMapper
|
||||||
|
|
||||||
void updateBatch(List<OmsPayableTicketDetail> updateList);
|
void updateBatch(List<OmsPayableTicketDetail> updateList);
|
||||||
|
|
||||||
void deleteByTicketBillCode(String ticketBillCode);
|
|
||||||
}
|
}
|
||||||
|
|
@ -70,6 +70,4 @@ public interface OmsTicketBillMapper
|
||||||
|
|
||||||
void updateReturnWriteOffBatch(List<OmsTicketBill> updateBills);
|
void updateReturnWriteOffBatch(List<OmsTicketBill> updateBills);
|
||||||
|
|
||||||
void revokeTicket(OmsTicketBill updateBill);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -77,7 +77,7 @@ public interface IOmsFinAttachmentService
|
||||||
|
|
||||||
List<OmsFinAttachment> list(List<Long> ids, String type);
|
List<OmsFinAttachment> list(List<Long> ids, String type);
|
||||||
|
|
||||||
void deleteOmsFinAttachment(List<Long> relatedIdList, String type);
|
void deleteOmsFinAttachmentByPayment(List<Long> relatedIdList,String type);
|
||||||
|
|
||||||
void deleteOmsFinAttachmentByRelationId(Long id);
|
void deleteOmsFinAttachmentByRelationId(Long id);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,6 @@ public interface IOmsPayablePaymentDetailService {
|
||||||
|
|
||||||
void updateBatch(List<OmsPayablePaymentDetail> updateList);
|
void updateBatch(List<OmsPayablePaymentDetail> updateList);
|
||||||
|
|
||||||
void deleteByPaymentCode(String payableBillCode);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// List<OmsPayableWriteOffDetail> listWriteOffByPaymentCode(List<String> );
|
// List<OmsPayableWriteOffDetail> listWriteOffByPaymentCode(List<String> );
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -82,6 +82,4 @@ public interface IOmsPayableTicketDetailService
|
||||||
void insertBatch(List<OmsPayableTicketDetail> detailList);
|
void insertBatch(List<OmsPayableTicketDetail> detailList);
|
||||||
|
|
||||||
void updateBatch(List<OmsPayableTicketDetail> updateList);
|
void updateBatch(List<OmsPayableTicketDetail> updateList);
|
||||||
|
|
||||||
void deleteByTicketBillCode(String ticketBillCode);
|
|
||||||
}
|
}
|
||||||
|
|
@ -65,7 +65,7 @@ public interface IOmsTicketBillService
|
||||||
|
|
||||||
AjaxResult uploadReceipt(OmsTicketBill attachment, MultipartFile file) throws Exception;
|
AjaxResult uploadReceipt(OmsTicketBill attachment, MultipartFile file) throws Exception;
|
||||||
|
|
||||||
AjaxResult applyRefund(OmsTicketBill ticketBill, MultipartFile file);
|
AjaxResult applyRefund(Long id);
|
||||||
|
|
||||||
AjaxResult returnTicket(Long id);
|
AjaxResult returnTicket(Long id);
|
||||||
|
|
||||||
|
|
@ -76,7 +76,4 @@ public interface IOmsTicketBillService
|
||||||
OmsTicketBill selectOmsTicketBillByCode(String ticketBillCode);
|
OmsTicketBill selectOmsTicketBillByCode(String ticketBillCode);
|
||||||
|
|
||||||
void returnTicketWriteOff(List<String> collect, List<OmsPayableTicketDetail> omsPayableTicketDetails);
|
void returnTicketWriteOff(List<String> collect, List<OmsPayableTicketDetail> omsPayableTicketDetails);
|
||||||
|
|
||||||
AjaxResult revokeTicket(Long id);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -55,7 +55,7 @@ public class OmsFinAttachmentServiceImpl implements IOmsFinAttachmentService
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteOmsFinAttachment(List<Long> relatedIdList, String type) {
|
public void deleteOmsFinAttachmentByPayment(List<Long> relatedIdList,String type) {
|
||||||
omsFinAttachmentMapper.deleteOmsFinAttachmentByPayment(relatedIdList,type);
|
omsFinAttachmentMapper.deleteOmsFinAttachmentByPayment(relatedIdList,type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -510,7 +510,7 @@ public class OmsInvoiceBillServiceImpl implements IOmsInvoiceBillService, TodoCo
|
||||||
}
|
}
|
||||||
if (CollUtil.isNotEmpty(updateBills)) {
|
if (CollUtil.isNotEmpty(updateBills)) {
|
||||||
omsInvoiceBillMapper.updateReturnWriteOffBatch(updateBills);
|
omsInvoiceBillMapper.updateReturnWriteOffBatch(updateBills);
|
||||||
omsFinAttachmentService.deleteOmsFinAttachment(updateBills.stream().map(OmsInvoiceBill::getId).collect(Collectors.toList()),
|
omsFinAttachmentService.deleteOmsFinAttachmentByPayment(updateBills.stream().map(OmsInvoiceBill::getId).collect(Collectors.toList()),
|
||||||
OmsFinAttachment.RelatedBillTypeEnum.RECEIVE_INVOICE.getCode());
|
OmsFinAttachment.RelatedBillTypeEnum.RECEIVE_INVOICE.getCode());
|
||||||
}
|
}
|
||||||
//清理detail数据
|
//清理detail数据
|
||||||
|
|
|
||||||
|
|
@ -212,10 +212,8 @@ public class OmsPayableBillServiceImpl implements IOmsPayableBillService {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
// Fetch bills once
|
// Fetch bills once
|
||||||
Date minPaymentDate = DateUtils.getNowDate();
|
|
||||||
for (PayableOrderDto order : dto.getPayableOrders()) {
|
for (PayableOrderDto order : dto.getPayableOrders()) {
|
||||||
for (OmsPayablePaymentPlan plan : order.getPaymentPlans()) {
|
for (OmsPayablePaymentPlan plan : order.getPaymentPlans()) {
|
||||||
minPaymentDate = minPaymentDate.after(plan.getPlanPaymentDate()) ? plan.getPlanPaymentDate() : minPaymentDate;
|
|
||||||
// 计算每个 plan 的未税金额 = planAmount / (1 + 税率),保留两位小数
|
// 计算每个 plan 的未税金额 = planAmount / (1 + 税率),保留两位小数
|
||||||
BigDecimal taxRate = order.getTaxRate();
|
BigDecimal taxRate = order.getTaxRate();
|
||||||
if (taxRate == null || taxRate.compareTo(BigDecimal.ZERO) < 0) {
|
if (taxRate == null || taxRate.compareTo(BigDecimal.ZERO) < 0) {
|
||||||
|
|
@ -234,7 +232,7 @@ public class OmsPayableBillServiceImpl implements IOmsPayableBillService {
|
||||||
OmsPayableBill firstPayableBill = omsPayableBillMapper.selectOmsPayableBillById(dto.getPayableOrders().get(0).getId());
|
OmsPayableBill firstPayableBill = omsPayableBillMapper.selectOmsPayableBillById(dto.getPayableOrders().get(0).getId());
|
||||||
paymentBill.setPaymentBillType(dto.getPaymentBillType());
|
paymentBill.setPaymentBillType(dto.getPaymentBillType());
|
||||||
paymentBill.setVendorCode(firstPayableBill.getVendorCode());
|
paymentBill.setVendorCode(firstPayableBill.getVendorCode());
|
||||||
paymentBill.setPaymentTime(dto.getEstimatedPaymentTime()==null?minPaymentDate:dto.getEstimatedPaymentTime());
|
paymentBill.setPaymentTime(dto.getEstimatedPaymentTime());
|
||||||
paymentBill.setTotalPriceWithTax(dto.getTotalMergePaymentAmount());
|
paymentBill.setTotalPriceWithTax(dto.getTotalMergePaymentAmount());
|
||||||
|
|
||||||
// Set Calculated Tax Info
|
// Set Calculated Tax Info
|
||||||
|
|
@ -268,11 +266,6 @@ public class OmsPayableBillServiceImpl implements IOmsPayableBillService {
|
||||||
|
|
||||||
// 遍历所有计划并检查是否有已付款的记录
|
// 遍历所有计划并检查是否有已付款的记录
|
||||||
for (PayableOrderDto payableOrderDto : dto.getPayableOrders()) {
|
for (PayableOrderDto payableOrderDto : dto.getPayableOrders()) {
|
||||||
BigDecimal taxRate = payableOrderDto.getTaxRate();
|
|
||||||
if (taxRate == null || taxRate.compareTo(BigDecimal.ZERO) < 0) {
|
|
||||||
// 如果税率为空或小于0,则默认为0
|
|
||||||
taxRate = new BigDecimal(defaultTax);
|
|
||||||
}
|
|
||||||
for (OmsPayablePaymentPlan paymentPlanDto : payableOrderDto.getPaymentPlans()) {
|
for (OmsPayablePaymentPlan paymentPlanDto : payableOrderDto.getPaymentPlans()) {
|
||||||
// 检查是否存在已付款的记录
|
// 检查是否存在已付款的记录
|
||||||
OmsPayablePaymentDetail existingDetail = existingDetailsMap.get(paymentPlanDto.getId());
|
OmsPayablePaymentDetail existingDetail = existingDetailsMap.get(paymentPlanDto.getId());
|
||||||
|
|
@ -288,7 +281,7 @@ public class OmsPayableBillServiceImpl implements IOmsPayableBillService {
|
||||||
detail.setPaymentPlanId(paymentPlanDto.getId());
|
detail.setPaymentPlanId(paymentPlanDto.getId());
|
||||||
detail.setPaymentBillCode(paymentBill.getPaymentBillCode());
|
detail.setPaymentBillCode(paymentBill.getPaymentBillCode());
|
||||||
detail.setPaymentAmount(paymentPlanDto.getPlanAmount());
|
detail.setPaymentAmount(paymentPlanDto.getPlanAmount());
|
||||||
detail.setPaymentAmountWithoutTax(paymentPlanDto.getPlanAmount().divide(BigDecimal.ONE.add(taxRate), 2, java.math.RoundingMode.HALF_UP));
|
detail.setPaymentAmountWithoutTax(paymentPlanDto.getPlanAmount().divide(BigDecimal.ONE.add(paymentPlanDto.getPlanRate()), 2, java.math.RoundingMode.HALF_UP));
|
||||||
detail.setPaymentAmountTax(detail.getPaymentAmount().subtract(detail.getPaymentAmountWithoutTax()));
|
detail.setPaymentAmountTax(detail.getPaymentAmount().subtract(detail.getPaymentAmountWithoutTax()));
|
||||||
detail.setPaymentRate(paymentPlanDto.getPlanRate());
|
detail.setPaymentRate(paymentPlanDto.getPlanRate());
|
||||||
detail.setPaymentTime(paymentPlanDto.getPlanPaymentDate());
|
detail.setPaymentTime(paymentPlanDto.getPlanPaymentDate());
|
||||||
|
|
@ -318,12 +311,11 @@ public class OmsPayableBillServiceImpl implements IOmsPayableBillService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Date minTicketDate = DateUtils.getNowDate();
|
|
||||||
// Fetch bills once
|
// Fetch bills once
|
||||||
for (PayableOrderReceiptDto order : dto.getPayableOrders()) {
|
for (PayableOrderReceiptDto order : dto.getPayableOrders()) {
|
||||||
|
|
||||||
for (OmsPayableTicketPlan plan : order.getTicketPlans()) {
|
for (OmsPayableTicketPlan plan : order.getTicketPlans()) {
|
||||||
minTicketDate = minTicketDate.after(plan.getPlanTicketDate()) ? plan.getPlanTicketDate() : minTicketDate;
|
|
||||||
// 计算每个 plan 的未税金额 = planAmount / (1 + 税率),保留两位小数
|
// 计算每个 plan 的未税金额 = planAmount / (1 + 税率),保留两位小数
|
||||||
BigDecimal taxRate = order.getTaxRate();
|
BigDecimal taxRate = order.getTaxRate();
|
||||||
if (taxRate == null || taxRate.compareTo(BigDecimal.ZERO) < 0) {
|
if (taxRate == null || taxRate.compareTo(BigDecimal.ZERO) < 0) {
|
||||||
|
|
@ -340,12 +332,11 @@ public class OmsPayableBillServiceImpl implements IOmsPayableBillService {
|
||||||
// 2. 创建收票单
|
// 2. 创建收票单
|
||||||
OmsTicketBill ticketBill = new OmsTicketBill();
|
OmsTicketBill ticketBill = new OmsTicketBill();
|
||||||
OmsPayableBill firstPayableBill = omsPayableBillMapper.selectOmsPayableBillById(dto.getPayableOrders().get(0).getId());
|
OmsPayableBill firstPayableBill = omsPayableBillMapper.selectOmsPayableBillById(dto.getPayableOrders().get(0).getId());
|
||||||
|
|
||||||
ticketBill.setTicketBillType(dto.getTicketBillType());
|
ticketBill.setTicketBillType(dto.getTicketBillType());
|
||||||
ticketBill.setVendorTicketTime(dto.getVendorTicketTime());
|
ticketBill.setVendorTicketTime(dto.getVendorTicketTime());
|
||||||
ticketBill.setVendorCode(firstPayableBill.getVendorCode());
|
ticketBill.setVendorCode(firstPayableBill.getVendorCode());
|
||||||
ticketBill.setVendorName(firstPayableBill.getVendorName());
|
ticketBill.setVendorName(firstPayableBill.getVendorName());
|
||||||
ticketBill.setTicketTime(dto.getTicketTime()==null?minTicketDate:dto.getTicketTime());
|
ticketBill.setTicketTime(dto.getTicketTime());
|
||||||
ticketBill.setTotalPriceWithTax(dto.getTotalMergeTicketAmount());
|
ticketBill.setTotalPriceWithTax(dto.getTotalMergeTicketAmount());
|
||||||
|
|
||||||
// Set Calculated Tax Info
|
// Set Calculated Tax Info
|
||||||
|
|
@ -471,10 +462,6 @@ public class OmsPayableBillServiceImpl implements IOmsPayableBillService {
|
||||||
.subtract(paidAmount)
|
.subtract(paidAmount)
|
||||||
.subtract(waitPayAmount)
|
.subtract(waitPayAmount)
|
||||||
);
|
);
|
||||||
}else{
|
|
||||||
payableBill.setPaidPaymentAmount(BigDecimal.ZERO);
|
|
||||||
|
|
||||||
payableBill.setUnpaidPaymentAmount(payableBill.getTotalPriceWithTax() );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 5. 获取首个未支付计划
|
// 5. 获取首个未支付计划
|
||||||
|
|
@ -535,17 +522,13 @@ public class OmsPayableBillServiceImpl implements IOmsPayableBillService {
|
||||||
amountMap.getOrDefault(
|
amountMap.getOrDefault(
|
||||||
OmsTicketBill.TicketStatusEnum.WAIT_TICKET.getCode(), BigDecimal.ZERO);
|
OmsTicketBill.TicketStatusEnum.WAIT_TICKET.getCode(), BigDecimal.ZERO);
|
||||||
|
|
||||||
payableBill.setReceivedTicketAmount(paidAmount);
|
payableBill.setPaidPaymentAmount(paidAmount);
|
||||||
|
|
||||||
payableBill.setUnreceivedTicketAmount(
|
payableBill.setUnpaidPaymentAmount(
|
||||||
payableBill.getTotalPriceWithTax()
|
payableBill.getTotalPriceWithTax()
|
||||||
.subtract(paidAmount)
|
.subtract(paidAmount)
|
||||||
.subtract(waitPayAmount)
|
.subtract(waitPayAmount)
|
||||||
);
|
);
|
||||||
}else{
|
|
||||||
payableBill.setUnreceivedTicketAmount( payableBill.getTotalPriceWithTax());
|
|
||||||
|
|
||||||
payableBill.setReceivedTicketAmount(BigDecimal.ZERO);
|
|
||||||
}
|
}
|
||||||
OmsPayableTicketPlan omsPayableTicketPlan = omsPayableTicketPlanMapper.firstUnPayPlan(payableBill.getId());
|
OmsPayableTicketPlan omsPayableTicketPlan = omsPayableTicketPlanMapper.firstUnPayPlan(payableBill.getId());
|
||||||
payableBill.setLastTicketPlanId(omsPayableTicketPlan == null ? -1 : omsPayableTicketPlan.getId());
|
payableBill.setLastTicketPlanId(omsPayableTicketPlan == null ? -1 : omsPayableTicketPlan.getId());
|
||||||
|
|
|
||||||
|
|
@ -153,9 +153,4 @@ public class OmsPayablePaymentDetailServiceImpl implements IOmsPayablePaymentDet
|
||||||
public void updateBatch(List<OmsPayablePaymentDetail> updateList) {
|
public void updateBatch(List<OmsPayablePaymentDetail> updateList) {
|
||||||
omsPayablePaymentDetailMapper.updateBatch(updateList);
|
omsPayablePaymentDetailMapper.updateBatch(updateList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void deleteByPaymentCode(String payableBillCode) {
|
|
||||||
omsPayablePaymentDetailMapper.deleteByPaymentCode(payableBillCode);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -123,7 +123,7 @@ public class OmsPayablePaymentPlanServiceImpl implements IOmsPayablePaymentPlanS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!found) {
|
if (!found) {
|
||||||
throw new ServiceException("温馨提示:该操作无法完成,因为付款计划与开票计划中的累计金额信息已存在差异,系统无法在数据不一致的情况下建立关联。");
|
throw new ServiceException("因付款计划表与开票计划表中已付款/开票数据已不一致,所以无法关联开票计划");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -215,9 +215,4 @@ public class OmsPayableTicketDetailServiceImpl implements IOmsPayableTicketDetai
|
||||||
public void updateBatch(List<OmsPayableTicketDetail> updateList) {
|
public void updateBatch(List<OmsPayableTicketDetail> updateList) {
|
||||||
omsPayableTicketDetailMapper.updateBatch(updateList);
|
omsPayableTicketDetailMapper.updateBatch(updateList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void deleteByTicketBillCode(String ticketBillCode) {
|
|
||||||
omsPayableTicketDetailMapper.deleteByTicketBillCode(ticketBillCode);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
@ -107,9 +107,6 @@ public class OmsPaymentBillServiceImpl implements IOmsPaymentBillService , TodoC
|
||||||
omsPaymentBill.setApproveStatus(ApproveStatusEnum.WAIT_COMMIT.getCode());
|
omsPaymentBill.setApproveStatus(ApproveStatusEnum.WAIT_COMMIT.getCode());
|
||||||
omsPaymentBill.setPaymentBillCode(generatePaymentBillCode());
|
omsPaymentBill.setPaymentBillCode(generatePaymentBillCode());
|
||||||
omsPaymentBill.setCreateTime(DateUtils.getNowDate());
|
omsPaymentBill.setCreateTime(DateUtils.getNowDate());
|
||||||
if (omsPaymentBill.getPaymentTime() == null) {
|
|
||||||
omsPaymentBill.setPaymentTime(DateUtils.getNowDate());
|
|
||||||
}
|
|
||||||
return omsPaymentBillMapper.insertOmsPaymentBill(omsPaymentBill);
|
return omsPaymentBillMapper.insertOmsPaymentBill(omsPaymentBill);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -465,24 +462,8 @@ public class OmsPaymentBillServiceImpl implements IOmsPaymentBillService , TodoC
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AjaxResult revoke(OmsPaymentBill paymentBill) {
|
public AjaxResult revoke(OmsPaymentBill paymentBill) {
|
||||||
|
|
||||||
OmsPaymentBill existBill = selectOmsPaymentBillById(paymentBill.getId());
|
|
||||||
if (existBill == null){
|
|
||||||
return AjaxResult.error("付款单不存在,请刷新后重试");
|
|
||||||
}
|
|
||||||
if (OmsPaymentBill.PaymentBillTypeEnum.REFUND.getCode().equals(existBill.getPaymentBillType())){
|
|
||||||
// 撤销退款单
|
|
||||||
deleteOmsPaymentBillById(existBill.getId());
|
|
||||||
detailService.deleteByPaymentCode(existBill.getPayableBillCode());
|
|
||||||
OmsPaymentBill omsPaymentBill = new OmsPaymentBill();
|
|
||||||
omsPaymentBill.setId(existBill.getOriginalBillId());
|
|
||||||
omsPaymentBill.setRefundStatus(OmsPaymentBill.RefundStatusEnum.WAIT_REFUNDED.getCode());
|
|
||||||
updateOmsPaymentBill(omsPaymentBill);
|
|
||||||
}else{
|
|
||||||
// 撤销付款单
|
|
||||||
paymentBill.setApproveStatus(ApproveStatusEnum.WAIT_COMMIT.getCode());
|
paymentBill.setApproveStatus(ApproveStatusEnum.WAIT_COMMIT.getCode());
|
||||||
omsPaymentBillMapper.revoke(paymentBill);
|
omsPaymentBillMapper.revoke(paymentBill);
|
||||||
}
|
|
||||||
return AjaxResult.success("撤销成功");
|
return AjaxResult.success("撤销成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -606,7 +587,7 @@ public class OmsPaymentBillServiceImpl implements IOmsPaymentBillService , TodoC
|
||||||
}
|
}
|
||||||
if (CollUtil.isNotEmpty(updateBills)) {
|
if (CollUtil.isNotEmpty(updateBills)) {
|
||||||
omsPaymentBillMapper.updateReturnWriteOffBatch(updateBills);
|
omsPaymentBillMapper.updateReturnWriteOffBatch(updateBills);
|
||||||
omsFinAttachmentService.deleteOmsFinAttachment(updateBills.stream().map(OmsPaymentBill::getId).collect(Collectors.toList()), OmsFinAttachment.RelatedBillTypeEnum.PAYMENT.getCode());
|
omsFinAttachmentService.deleteOmsFinAttachmentByPayment(updateBills.stream().map(OmsPaymentBill::getId).collect(Collectors.toList()), OmsFinAttachment.RelatedBillTypeEnum.PAYMENT.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package com.ruoyi.sip.service.impl;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.DatePattern;
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.ruoyi.common.config.RuoYiConfig;
|
import com.ruoyi.common.config.RuoYiConfig;
|
||||||
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
|
|
@ -12,6 +13,7 @@ import com.ruoyi.common.utils.ShiroUtils;
|
||||||
import com.ruoyi.common.utils.file.FileUploadUtils;
|
import com.ruoyi.common.utils.file.FileUploadUtils;
|
||||||
import com.ruoyi.sip.domain.*;
|
import com.ruoyi.sip.domain.*;
|
||||||
import com.ruoyi.sip.domain.dto.ReceiptDetailDTO;
|
import com.ruoyi.sip.domain.dto.ReceiptDetailDTO;
|
||||||
|
import com.ruoyi.sip.dto.WriteOffRequestDto;
|
||||||
import com.ruoyi.sip.mapper.OmsReceiptBillMapper;
|
import com.ruoyi.sip.mapper.OmsReceiptBillMapper;
|
||||||
import com.ruoyi.sip.service.*;
|
import com.ruoyi.sip.service.*;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
@ -389,7 +391,7 @@ public class OmsReceiptBillServiceImpl implements IOmsReceiptBillService {
|
||||||
}
|
}
|
||||||
if (CollUtil.isNotEmpty(updateBills)) {
|
if (CollUtil.isNotEmpty(updateBills)) {
|
||||||
omsReceiptBillMapper.updateReturnWriteOffBatch(updateBills);
|
omsReceiptBillMapper.updateReturnWriteOffBatch(updateBills);
|
||||||
attachmentService.deleteOmsFinAttachment(updateBills.stream().map(OmsReceiptBill::getId).collect(Collectors.toList()), OmsFinAttachment.RelatedBillTypeEnum.PAYMENT.getCode());
|
attachmentService.deleteOmsFinAttachmentByPayment(updateBills.stream().map(OmsReceiptBill::getId).collect(Collectors.toList()), OmsFinAttachment.RelatedBillTypeEnum.PAYMENT.getCode());
|
||||||
}
|
}
|
||||||
omsReceivableReceiptDetailService.clearWriteOffByWriteOffId(writeOffIdList);
|
omsReceivableReceiptDetailService.clearWriteOffByWriteOffId(writeOffIdList);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.ruoyi.sip.service.impl;
|
package com.ruoyi.sip.service.impl;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
@ -210,9 +211,9 @@ public class OmsTicketBillServiceImpl implements IOmsTicketBillService, TodoComm
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AjaxResult applyRefund(OmsTicketBill ticketBill, MultipartFile file) {
|
public AjaxResult applyRefund(Long originalId) {
|
||||||
// 1. 验证原始付款单
|
// 1. 验证原始付款单
|
||||||
OmsTicketBill originalBill = selectOmsTicketBillById(ticketBill.getOriginalBillId());
|
OmsTicketBill originalBill = selectOmsTicketBillById(originalId);
|
||||||
if (originalBill == null) {
|
if (originalBill == null) {
|
||||||
return AjaxResult.error("原始付款单不存在");
|
return AjaxResult.error("原始付款单不存在");
|
||||||
}
|
}
|
||||||
|
|
@ -240,10 +241,7 @@ public class OmsTicketBillServiceImpl implements IOmsTicketBillService, TodoComm
|
||||||
refundBill.setTicketBillType(OmsTicketBill.TicketBillTypeEnum.RED_RUSH.getCode());
|
refundBill.setTicketBillType(OmsTicketBill.TicketBillTypeEnum.RED_RUSH.getCode());
|
||||||
refundBill.setTicketStatus(OmsTicketBill.TicketStatusEnum.TICKET.getCode());
|
refundBill.setTicketStatus(OmsTicketBill.TicketStatusEnum.TICKET.getCode());
|
||||||
refundBill.setRefundStatus(OmsTicketBill.RefundStatusEnum.REFUNDED.getCode());
|
refundBill.setRefundStatus(OmsTicketBill.RefundStatusEnum.REFUNDED.getCode());
|
||||||
refundBill.setApproveStatus(ApproveStatusEnum.WAIT_APPROVE.getCode());
|
refundBill.setApproveStatus(ApproveStatusEnum.WAIT_COMMIT.getCode());
|
||||||
refundBill.setTicketPriceWithoutTax(ticketBill.getTicketPriceWithoutTax());
|
|
||||||
refundBill.setTicketPriceWithTax(ticketBill.getTicketPriceWithTax());
|
|
||||||
refundBill.setTicketAmount(ticketBill.getTaxAmount());
|
|
||||||
refundBill.setOriginalBillId(originalBill.getId());
|
refundBill.setOriginalBillId(originalBill.getId());
|
||||||
refundBill.setActualTicketTime(null);
|
refundBill.setActualTicketTime(null);
|
||||||
refundBill.setApproveTime(null);
|
refundBill.setApproveTime(null);
|
||||||
|
|
@ -258,13 +256,6 @@ public class OmsTicketBillServiceImpl implements IOmsTicketBillService, TodoComm
|
||||||
//4 创建付款明细
|
//4 创建付款明细
|
||||||
payableTicketDetailService.applyRefund(originalBill.getTicketBillCode(),refundBill.getTicketBillCode());
|
payableTicketDetailService.applyRefund(originalBill.getTicketBillCode(),refundBill.getTicketBillCode());
|
||||||
|
|
||||||
//上传文件 再开启流程
|
|
||||||
try {
|
|
||||||
omsFinAttachmentService.uploadAttachment(file, refundBill.getId(), OmsFinAttachment.RelatedBillTypeEnum.INVOICE);
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new RuntimeException(e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
return AjaxResult.success("退款申请已提交,新的退款单号为:" + refundBill.getTicketBillCode());
|
return AjaxResult.success("退款申请已提交,新的退款单号为:" + refundBill.getTicketBillCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -390,41 +381,13 @@ public class OmsTicketBillServiceImpl implements IOmsTicketBillService, TodoComm
|
||||||
}
|
}
|
||||||
if (CollUtil.isNotEmpty(updateBills)) {
|
if (CollUtil.isNotEmpty(updateBills)) {
|
||||||
omsTicketBillMapper.updateReturnWriteOffBatch(updateBills);
|
omsTicketBillMapper.updateReturnWriteOffBatch(updateBills);
|
||||||
omsFinAttachmentService.deleteOmsFinAttachment(updateBills.stream().map(OmsTicketBill::getId).collect(Collectors.toList()),
|
omsFinAttachmentService.deleteOmsFinAttachmentByPayment(updateBills.stream().map(OmsTicketBill::getId).collect(Collectors.toList()),
|
||||||
OmsFinAttachment.RelatedBillTypeEnum.INVOICE.getCode());
|
OmsFinAttachment.RelatedBillTypeEnum.INVOICE.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public AjaxResult revokeTicket(Long id) {
|
|
||||||
OmsTicketBill existBill = selectOmsTicketBillById(id);
|
|
||||||
if (!existBill.getApproveStatus().equals(ApproveStatusEnum.APPROVE_REJECT.getCode())) {
|
|
||||||
return AjaxResult.error("退回收票单操作失败:该收票单不处于审批驳回状态");
|
|
||||||
}
|
|
||||||
if (existBill.getTicketBillType().equals(OmsTicketBill.TicketBillTypeEnum.FROM_PAYABLE.getCode())) {
|
|
||||||
//1:修改状态
|
|
||||||
OmsTicketBill updateBill = new OmsTicketBill();
|
|
||||||
updateBill.setApproveStatus(ApproveStatusEnum.WAIT_COMMIT.getCode());
|
|
||||||
updateBill.setId(existBill.getId());
|
|
||||||
omsTicketBillMapper.revokeTicket(updateBill);
|
|
||||||
//2:删除对应的文件
|
|
||||||
omsFinAttachmentService.deleteOmsFinAttachment(Collections.singletonList(existBill.getId()), OmsFinAttachment.RelatedBillTypeEnum.INVOICE.getCode());
|
|
||||||
} else {
|
|
||||||
//红冲撤销
|
|
||||||
deleteOmsTicketBillById(id);
|
|
||||||
payableTicketDetailService.deleteByTicketBillCode(existBill.getTicketBillCode());
|
|
||||||
OmsTicketBill ticketBill = new OmsTicketBill();
|
|
||||||
ticketBill.setId(existBill.getOriginalBillId());
|
|
||||||
ticketBill.setRefundStatus(OmsTicketBill.RefundStatusEnum.WAIT_REFUNDED.getCode());
|
|
||||||
updateOmsTicketBill(ticketBill);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object todoDetail(String businessKey, String processKey, String todoId) {
|
public Object todoDetail(String businessKey, String processKey, String todoId) {
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="unpaidPaymentAmount != null ">
|
<if test="unpaidPaymentAmount != null ">
|
||||||
<choose>
|
<choose>
|
||||||
<when test="unpaidPaymentAmount==-1">
|
<when test="unpaidPaymentAmount==-1">
|
||||||
and t1.unpaid_payment_amount > 0
|
and t1.unpaid_payment_amount != 0
|
||||||
</when>
|
</when>
|
||||||
|
|
||||||
<otherwise>
|
<otherwise>
|
||||||
|
|
@ -131,7 +131,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="unreceivedTicketAmount != null ">
|
<if test="unreceivedTicketAmount != null ">
|
||||||
<choose>
|
<choose>
|
||||||
<when test="unreceivedTicketAmount==-1">
|
<when test="unreceivedTicketAmount==-1">
|
||||||
and t1.unreceived_ticket_amount > 0
|
and t1.unreceived_ticket_amount != 0
|
||||||
</when>
|
</when>
|
||||||
|
|
||||||
<otherwise>
|
<otherwise>
|
||||||
|
|
@ -158,16 +158,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
|
||||||
</choose>
|
</choose>
|
||||||
</if>
|
</if>
|
||||||
<if test="estimatedPaymentTimeStart != null or estimatedPaymentTimeEnd != null">
|
<if test="planPaymentDateStart != null or planPaymentDateEnd != null">
|
||||||
<choose>
|
<choose>
|
||||||
<when test="estimatedPaymentTimeStart != null and estimatedPaymentTimeEnd != null">
|
<when test="planPaymentDateStart != null and planPaymentDateEnd != null">
|
||||||
and ppp.plan_payment_date between #{estimatedPaymentTimeStart} and #{estimatedPaymentTimeEnd}
|
and ppp.plan_payment_date between date_format(#{planPaymentDateStart}, '%Y-%m-%d 00:00:00') and
|
||||||
|
date_format(#{planPaymentDateEnd}, '%Y-%m-%d 23:59:59')
|
||||||
</when>
|
</when>
|
||||||
<when test="estimatedPaymentTimeStart != null">
|
<when test="planPaymentDateStart != null">
|
||||||
and ppp.plan_payment_date <![CDATA[ >= ]]> #{estimatedPaymentTimeStart}
|
and ppp.plan_payment_date <![CDATA[ >= ]]> date_format(#{planPaymentDateStart}, '%Y-%m-%d
|
||||||
|
00:00:00')
|
||||||
</when>
|
</when>
|
||||||
<when test="estimatedPaymentTimeEnd != null">
|
<when test="planPaymentDateEnd != null">
|
||||||
and ppp.plan_payment_date <![CDATA[ <= ]]> #{estimatedPaymentTimeEnd}
|
and ppp.plan_payment_date <![CDATA[ <= ]]> date_format(#{planPaymentDateEnd}, '%Y-%m-%d
|
||||||
|
23:59:59')
|
||||||
</when>
|
</when>
|
||||||
</choose>
|
</choose>
|
||||||
</if>
|
</if>
|
||||||
|
|
|
||||||
|
|
@ -75,9 +75,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
where id = #{item.id}
|
where id = #{item.id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</update>
|
</update>
|
||||||
<delete id="deleteByPaymentCode">
|
|
||||||
delete from oms_payable_payment_detail where payment_bill_code = #{paymentBillCode}
|
|
||||||
</delete>
|
|
||||||
<select id="list" resultType="com.ruoyi.sip.domain.OmsPayablePaymentDetail">
|
<select id="list" resultType="com.ruoyi.sip.domain.OmsPayablePaymentDetail">
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
|
|
@ -125,9 +122,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
select t1.payment_amount, t2.payable_bill_code, t4.project_name, t4.project_code, t2.total_price_with_tax
|
select t1.payment_amount, t2.payable_bill_code, t4.project_name, t4.project_code, t2.total_price_with_tax
|
||||||
from (SELECT sum(payment_amount) payment_amount,
|
from (SELECT sum(payment_amount) payment_amount,
|
||||||
payable_bill_id
|
payable_bill_id
|
||||||
FROM oms_payable_payment_detail t1
|
FROM oms_payable_payment_detail
|
||||||
left join oms_payable_write_off t2 on t1.write_off_id=t2.id
|
WHERE write_off_id is null and payment_bill_code in
|
||||||
WHERE (t1.write_off_id is null or t1.payment_bill_code=t2.payment_bill_code) and t1.payment_bill_code in
|
|
||||||
<foreach item="item" collection="list" separator="," open="(" close=")" index="">
|
<foreach item="item" collection="list" separator="," open="(" close=")" index="">
|
||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
|
|
|
||||||
|
|
@ -125,10 +125,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="paymentTime != null ">and date_format(pb.payment_time,'%Y-%m-%d') =
|
<if test="paymentTime != null ">and date_format(pb.payment_time,'%Y-%m-%d') =
|
||||||
date_format(#{paymentTime},'%Y-%m-%d')
|
date_format(#{paymentTime},'%Y-%m-%d')
|
||||||
</if>
|
</if>
|
||||||
<if test="vendorCode != null and vendorCode != ''">and pb.vendor_code = #{vendorCode}
|
<if test="vendorCode != null and vendorCode != ''">and pb.vendor_code like concat('%', #{vendorCode},
|
||||||
</if>
|
'%')
|
||||||
<if test="vendorName != null and vendorName != ''">
|
|
||||||
and ovi.vendor_name like concat('%', #{vendorName}, '%')
|
|
||||||
</if>
|
</if>
|
||||||
<if test="orderCode != null and orderCode != ''">and pb.order_code like concat('%', #{orderCode}, '%')</if>
|
<if test="orderCode != null and orderCode != ''">and pb.order_code like concat('%', #{orderCode}, '%')</if>
|
||||||
<if test="totalPriceWithTax != null ">and pb.total_price_with_tax = #{totalPriceWithTax}</if>
|
<if test="totalPriceWithTax != null ">and pb.total_price_with_tax = #{totalPriceWithTax}</if>
|
||||||
|
|
@ -146,63 +144,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="approveTime != null ">and date_format(pb.approve_time,'%Y-%m-%d') =
|
<if test="approveTime != null ">and date_format(pb.approve_time,'%Y-%m-%d') =
|
||||||
date_format(#{approveTime},'%Y-%m-%d')
|
date_format(#{approveTime},'%Y-%m-%d')
|
||||||
</if>
|
</if>
|
||||||
<if test="(params.beginApproveTime != null and params.beginApproveTime != '') or (params.endApproveTime != null and params.endApproveTime!='')">
|
|
||||||
<choose>
|
|
||||||
<when test="(params.beginApproveTime != null and params.beginApproveTime != '') and (params.endApproveTime != null and params.endApproveTime!='')">
|
|
||||||
and pb.approve_time between #{params.beginApproveTime} and #{params.endApproveTime}
|
|
||||||
</when>
|
|
||||||
<when test="(params.beginApproveTime != null and params.beginApproveTime != '')">
|
|
||||||
and pb.approve_time <![CDATA[ >= ]]> #{params.beginApproveTime}
|
|
||||||
</when>
|
|
||||||
<when test="(params.endApproveTime != null and params.endApproveTime!='')">
|
|
||||||
and pb.approve_time <![CDATA[ <= ]]> #{params.endApproveTime}
|
|
||||||
</when>
|
|
||||||
|
|
||||||
</choose>
|
|
||||||
</if>
|
|
||||||
<if test="(params.beginPaymentTime != null and params.beginPaymentTime != '') or (params.endPaymentTime != null and params.endPaymentTime!='')">
|
|
||||||
<choose>
|
|
||||||
<when test="(params.beginPaymentTime != null and params.beginPaymentTime != '') and (params.endPaymentTime != null and params.endPaymentTime!='')">
|
|
||||||
and pb.payment_time between #{params.beginPaymentTime} and #{params.endPaymentTime}
|
|
||||||
</when>
|
|
||||||
<when test="(params.beginPaymentTime != null and params.beginPaymentTime != '')">
|
|
||||||
and pb.payment_time <![CDATA[ >= ]]> #{params.beginPaymentTime}
|
|
||||||
</when>
|
|
||||||
<when test="(params.endPaymentTime != null and params.endPaymentTime!='')">
|
|
||||||
and pb.payment_time <![CDATA[ <= ]]> #{params.endPaymentTime}
|
|
||||||
</when>
|
|
||||||
|
|
||||||
</choose>
|
|
||||||
</if>
|
|
||||||
<if test="(params.beginActualPaymentTime != null and params.beginActualPaymentTime != '') or (params.endActualPaymentTime != null and params.endActualPaymentTime!='')">
|
|
||||||
<choose>
|
|
||||||
<when test="(params.beginActualPaymentTime != null and params.beginActualPaymentTime != '') and (params.endActualPaymentTime != null and params.endActualPaymentTime!='')">
|
|
||||||
and pb.actual_payment_time between #{params.beginActualPaymentTime } and #{params.endActualPaymentTime}
|
|
||||||
</when>
|
|
||||||
<when test="(params.beginActualPaymentTime != null and params.beginActualPaymentTime != '')">
|
|
||||||
and pb.actual_payment_time <![CDATA[ >= ]]> #{params.beginActualPaymentTime }
|
|
||||||
</when>
|
|
||||||
<when test="(params.endActualPaymentTime != null and params.endActualPaymentTime!='')">
|
|
||||||
and pb.actual_payment_time <![CDATA[ <= ]]> #{params.endActualPaymentTime}
|
|
||||||
</when>
|
|
||||||
|
|
||||||
</choose>
|
|
||||||
</if>
|
|
||||||
<if test="actualPaymentTime != null ">and date_format(pb.actual_payment_time,'%Y-%m-%d') =
|
<if test="actualPaymentTime != null ">and date_format(pb.actual_payment_time,'%Y-%m-%d') =
|
||||||
date_format(#{actualPaymentTime},'%Y-%m-%d')
|
date_format(#{actualPaymentTime},'%Y-%m-%d')
|
||||||
</if>
|
</if>
|
||||||
<if test="paymentMethod != null and paymentMethod != ''">and pb.payment_method = #{paymentMethod}</if>
|
<if test="paymentMethod != null and paymentMethod != ''">and pb.payment_method = #{paymentMethod}</if>
|
||||||
<if test="approveNode != null and approveNode != ''">and pb.payment_bill_code in
|
<if test="payableBillCode != null and payableBillCode != ''">and apb.payable_bill_code like concat('%',
|
||||||
(
|
#{payableBillCode}, '%')
|
||||||
select business_key from bu_todo where approve_user_name like concat('%', #{approveNode}, '%') and process_key in (
|
|
||||||
'finance_payment','finance_refund')
|
|
||||||
)
|
|
||||||
</if>
|
|
||||||
<if test="payableBillCode != null and payableBillCode != ''">and pb.payment_bill_code in (
|
|
||||||
select payment_bill_code from oms_payable_payment_detail t1 left join oms_payable_bill t2 on
|
|
||||||
t1.payable_bill_id=t2.id
|
|
||||||
where t2.payable_bill_code=#{payableBillCode}
|
|
||||||
)
|
|
||||||
</if>
|
</if>
|
||||||
<if test="preResidueAmount != null and preResidueAmount != ''">
|
<if test="preResidueAmount != null and preResidueAmount != ''">
|
||||||
<choose>
|
<choose>
|
||||||
|
|
|
||||||
|
|
@ -27,11 +27,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
t1.purchase_no,t1.product_type,t1.order_code,t1.total_amount,t1.tax_rate,t1.tax_total,
|
t1.purchase_no,t1.product_type,t1.order_code,t1.total_amount,t1.tax_rate,t1.tax_total,
|
||||||
t2.warehouse_name, t3.user_name as create_by_name,t2.warehouse_type,
|
t2.warehouse_name, t3.user_name as create_by_name,t2.warehouse_type,
|
||||||
t4.vendor_name,t5.model
|
t4.vendor_name,t5.model
|
||||||
|
,t6.original_filename
|
||||||
from oms_inventory_inner t1
|
from oms_inventory_inner t1
|
||||||
left join oms_warehouse_info t2 on t1.warehouse_id = t2.id
|
left join oms_warehouse_info t2 on t1.warehouse_id = t2.id
|
||||||
left join oms_vendor_info t4 on t1.vendor_code = t4.vendor_code
|
left join oms_vendor_info t4 on t1.vendor_code = t4.vendor_code
|
||||||
left join sys_user t3 on t1.create_by = t3.user_id
|
left join sys_user t3 on t1.create_by = t3.user_id
|
||||||
left join product_info t5 on t1.product_code = t5.product_code
|
left join product_info t5 on t1.product_code = t5.product_code
|
||||||
|
left join oms_file_log t6 on t1.file_id=t6.id
|
||||||
</sql>
|
</sql>
|
||||||
<sql id="selectBaseInnerVo">
|
<sql id="selectBaseInnerVo">
|
||||||
select t1.id, t1.inner_code, t1.product_code, t1.quantity, t1.warehouse_id, t1.create_by, t1.update_by, t1.create_time, t1.update_time ,t1.vendor_code
|
select t1.id, t1.inner_code, t1.product_code, t1.quantity, t1.warehouse_id, t1.create_by, t1.update_by, t1.create_time, t1.update_time ,t1.vendor_code
|
||||||
|
|
|
||||||
|
|
@ -337,8 +337,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
#{item}
|
#{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
</delete>
|
</delete>
|
||||||
<delete id="deleteByTicketBillCode">
|
|
||||||
delete from oms_payable_ticket_detail where ticket_bill_code = #{code}
|
|
||||||
</delete>
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -43,24 +43,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<where>
|
<where>
|
||||||
<if test="ticketBillCode != null and ticketBillCode != ''">
|
<if test="ticketBillCode != null and ticketBillCode != ''">
|
||||||
and ticket_bill_code = #{ticketBillCode}
|
and ticket_bill_code = #{ticketBillCode}
|
||||||
</if>
|
|
||||||
<if test="projectCode != null and projectCode != ''">
|
|
||||||
and t1.ticket_bill_code in (
|
|
||||||
select t1.ticket_bill_code from oms_payable_ticket_detail t1
|
|
||||||
inner join oms_payable_bill t2 on t1.payable_bill_id=t2.id
|
|
||||||
inner join project_order_info t3 on t2.order_code=t3.order_code
|
|
||||||
inner join project_info t4 on t3.project_id=t4.id
|
|
||||||
where t4.project_code = #{projectCode}
|
|
||||||
)
|
|
||||||
</if>
|
|
||||||
<if test="projectName != null and projectName != ''">
|
|
||||||
and t1.ticket_bill_code in (
|
|
||||||
select t1.ticket_bill_code from oms_payable_ticket_detail t1
|
|
||||||
inner join oms_payable_bill t2 on t1.payable_bill_id=t2.id
|
|
||||||
inner join project_order_info t3 on t2.order_code=t3.order_code
|
|
||||||
inner join project_info t4 on t3.project_id=t4.id
|
|
||||||
where t4.project_name = #{projectName}
|
|
||||||
)
|
|
||||||
</if>
|
</if>
|
||||||
<if test="ticketBillCodeList != null and ticketBillCodeList.size>0">
|
<if test="ticketBillCodeList != null and ticketBillCodeList.size>0">
|
||||||
and ticket_bill_code in <foreach item="item" collection="ticketBillCodeList" separator="," open="(" close=")" index="">
|
and ticket_bill_code in <foreach item="item" collection="ticketBillCodeList" separator="," open="(" close=")" index="">
|
||||||
|
|
@ -422,15 +404,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
where id = #{item.id}
|
where id = #{item.id}
|
||||||
</foreach>
|
</foreach>
|
||||||
</update>
|
</update>
|
||||||
<update id="revokeTicket">
|
|
||||||
update oms_ticket_bill
|
|
||||||
set approve_status =#{approveStatus},
|
|
||||||
ticket_price_with_tax=null,
|
|
||||||
ticket_price_without_tax=null,
|
|
||||||
total_price_with_tax=null
|
|
||||||
where id = #{id}
|
|
||||||
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<delete id="deleteOmsTicketBillById" parameterType="Long">
|
<delete id="deleteOmsTicketBillById" parameterType="Long">
|
||||||
delete from oms_ticket_bill where id = #{id}
|
delete from oms_ticket_bill where id = #{id}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue