diff --git a/oms_web/oms_vue/src/api/finance/receipt.js b/oms_web/oms_vue/src/api/finance/receipt.js
index 71974640..139d2b0d 100644
--- a/oms_web/oms_vue/src/api/finance/receipt.js
+++ b/oms_web/oms_vue/src/api/finance/receipt.js
@@ -88,3 +88,35 @@ export function applyRedRush(data) {
needLoading: true
})
}
+// 查询收款审批列表
+export function listReceiptApprove(query) {
+ return request({
+ url: '/finance/receipt/approve/list',
+ method: 'post',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded'
+ },
+ data: query
+ })
+}
+
+// 查询已审批收款列表
+export function listReceiptApproved(query) {
+ return request({
+ url: '/finance/receipt/approved/list',
+ method: 'post',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded'
+ },
+ data: query
+ })
+}
+
+// 查询收款单详细
+export function getReceiptDetail(id) {
+ return request({
+ url: '/finance/receipt/' + id,
+ method: 'get'
+ })
+}
+
diff --git a/oms_web/oms_vue/src/api/finance/receivable.js b/oms_web/oms_vue/src/api/finance/receivable.js
index 0e829cf5..126b4112 100644
--- a/oms_web/oms_vue/src/api/finance/receivable.js
+++ b/oms_web/oms_vue/src/api/finance/receivable.js
@@ -39,7 +39,8 @@ export function mergeAndInitiateReceipt(data) {
return request({
url: '/finance/receivable/mergeAndInitiateReceipt',
method: 'post',
- data: data
+ data: data,
+ needLoading:true
})
}
@@ -48,7 +49,8 @@ export function mergeAndInitiateInvoice(data) {
return request({
url: '/finance/receivable/mergeAndInitiateInvoice',
method: 'post',
- data: data
+ data: data,
+ needLoading:true
})
}
diff --git a/oms_web/oms_vue/src/api/finance/receive.js b/oms_web/oms_vue/src/api/finance/receive.js
index 27dd224a..84ce2f3e 100644
--- a/oms_web/oms_vue/src/api/finance/receive.js
+++ b/oms_web/oms_vue/src/api/finance/receive.js
@@ -5,8 +5,11 @@ import {tansParams} from "@/utils/ruoyi"
export function listReceive(query) {
return request({
url: '/finance/receipt/list',
- method: 'get',
- data: tansParams(query)
+ method: 'post',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded'
+ },
+ data: query
})
}
@@ -115,3 +118,13 @@ export function manualReceiptWriteOff(data) {
data: data
})
}
+
+// 撤销收款单
+export function revokeReceipt(id) {
+ return request({
+ url: '/finance/receipt/revoke',
+ method: 'post',
+ data: {id: id},
+ needLoading: true
+ })
+}
diff --git a/oms_web/oms_vue/src/router/index.js b/oms_web/oms_vue/src/router/index.js
index d6b7f2ee..eed3f62a 100644
--- a/oms_web/oms_vue/src/router/index.js
+++ b/oms_web/oms_vue/src/router/index.js
@@ -109,6 +109,16 @@ export const constantRoutes = [
component: () => import('@/views/approve/finance/invoiceReceipt/approved/index'),
hidden: true
},
+ {
+ path: 'receiptLog',
+ component: () => import('@/views/approve/finance/receipt/approved/index.vue'),
+ hidden: true
+ },
+ {
+ path: 'receiptRefoundLog',
+ component: () => import('@/views/approve/finance/receiptRefound/approved/index.vue'),
+ hidden: true
+ },
]
},
{
diff --git a/oms_web/oms_vue/src/views/approve/finance/receipt/approved/index.vue b/oms_web/oms_vue/src/views/approve/finance/receipt/approved/index.vue
new file mode 100644
index 00000000..20be6992
--- /dev/null
+++ b/oms_web/oms_vue/src/views/approve/finance/receipt/approved/index.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.applyTime) }}
+
+
+
+
+
+ 详情
+
+
+
+
+
+
+
+
+
+
+ 导出PDF
+
+
+
+
+
+ 收款编号: {{ form.receiptBillCode }}
+
+
+
+
+
流转意见
+
+
+
+
+ {{ log.approveOpinion }}
+ 操作人: {{ log.approveUserName }}
+ 审批状态: {{ getStatusText(log.approveStatus) }}
+
+
+
+
暂无流转过程数据。
+
+
+
+
+
+
+
+
+
+
diff --git a/oms_web/oms_vue/src/views/approve/finance/receipt/components/ReceiptDetail.vue b/oms_web/oms_vue/src/views/approve/finance/receipt/components/ReceiptDetail.vue
new file mode 100644
index 00000000..7511e2ae
--- /dev/null
+++ b/oms_web/oms_vue/src/views/approve/finance/receipt/components/ReceiptDetail.vue
@@ -0,0 +1,133 @@
+
+
+
+ {{ data.receiptBillCode }}
+ {{ data.partnerName }}
+
+
+
+ {{ data.totalPriceWithTax }}
+ {{ data.totalPriceWithoutTax }}
+ {{ data.taxAmount }}
+
+
+
+ {{ data.receiptBankNumber }}
+ {{ data.receiptAccountName }}
+ {{ data.receiptBankOpenAddress }}
+ {{ data.bankNumber }}
+
+
+
+
+
应收单列表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
附件信息
+
+
+
+
+
+
+ 预览
+ 下载
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/oms_web/oms_vue/src/views/approve/finance/receipt/index.vue b/oms_web/oms_vue/src/views/approve/finance/receipt/index.vue
new file mode 100644
index 00000000..74bfb518
--- /dev/null
+++ b/oms_web/oms_vue/src/views/approve/finance/receipt/index.vue
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 审批历史
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.applyTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+ 审批
+
+
+
+
+
+
+
+
+
+
+ 导出PDF
+
+
+
+
+
+ {{ form.receiptBillCode }}
+
+
+
+
+
流转意见
+
+
+
+
+ {{ log.approveOpinion }}
+ 操作人: {{ log.approveUserName }}
+ 审批状态: {{ getStatusText(log.approveStatus) }}
+
+
+
+
暂无流转过程数据。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/oms_web/oms_vue/src/views/approve/finance/receiptRefound/approved/index.vue b/oms_web/oms_vue/src/views/approve/finance/receiptRefound/approved/index.vue
new file mode 100644
index 00000000..3f56b8d1
--- /dev/null
+++ b/oms_web/oms_vue/src/views/approve/finance/receiptRefound/approved/index.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.applyTime) }}
+
+
+
+
+
+ 详情
+
+
+
+
+
+
+
+
+
+
+ 导出PDF
+
+
+
+
+
+ 收款编号: {{ form.receiptBillCode }}
+
+
+
+
+
流转意见
+
+
+
+
+ {{ log.approveOpinion }}
+ 操作人: {{ log.approveUserName }}
+ 审批状态: {{ getStatusText(log.approveStatus) }}
+
+
+
+
暂无流转过程数据。
+
+
+
+
+
+
+
+
+
+
diff --git a/oms_web/oms_vue/src/views/approve/finance/receiptRefound/components/ReceiptDetail.vue b/oms_web/oms_vue/src/views/approve/finance/receiptRefound/components/ReceiptDetail.vue
new file mode 100644
index 00000000..8d9d228e
--- /dev/null
+++ b/oms_web/oms_vue/src/views/approve/finance/receiptRefound/components/ReceiptDetail.vue
@@ -0,0 +1,133 @@
+
+
+
+ {{ data.receiptBillCode }}
+ {{ data.partnerName }}
+
+
+
+ {{ data.totalPriceWithTax }}
+ {{ data.totalPriceWithoutTax }}
+ {{ data.taxAmount }}
+
+
+
+ {{ data.receiptBankNumber }}
+ {{ data.receiptAccountName }}
+ {{ data.receiptBankOpenAddress }}
+ {{ data.bankNumber }}
+
+
+
+
+
应收单列表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
附件信息
+
+
+
+
+
+
+ 预览
+ 下载
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/oms_web/oms_vue/src/views/approve/finance/receiptRefound/index.vue b/oms_web/oms_vue/src/views/approve/finance/receiptRefound/index.vue
new file mode 100644
index 00000000..eb2c8dd2
--- /dev/null
+++ b/oms_web/oms_vue/src/views/approve/finance/receiptRefound/index.vue
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 审批历史
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ parseTime(scope.row.applyTime, '{y}-{m}-{d}') }}
+
+
+
+
+
+ 审批
+
+
+
+
+
+
+
+
+
+
+ 导出PDF
+
+
+
+
+
+ {{ form.receiptBillCode }}
+
+
+
+
+
流转意见
+
+
+
+
+ {{ log.approveOpinion }}
+ 操作人: {{ log.approveUserName }}
+ 审批状态: {{ getStatusText(log.approveStatus) }}
+
+
+
+
暂无流转过程数据。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/oms_web/oms_vue/src/views/finance/receivable/components/EditForm.vue b/oms_web/oms_vue/src/views/finance/receivable/components/EditForm.vue
index a7febc8a..5428f90e 100644
--- a/oms_web/oms_vue/src/views/finance/receivable/components/EditForm.vue
+++ b/oms_web/oms_vue/src/views/finance/receivable/components/EditForm.vue
@@ -7,45 +7,47 @@
- 应收单编号: {{ formData.receivableBillCode }}
+ 项目编号: {{ formData.projectCode }}
+
+ 项目名称: {{ formData.projectName }}
+
+
+ 销售-应收单编号: {{ formData.receivableBillCode }}
+
+
+
+
生成时间: {{ formData.createTime }}
+
+ 该进货商是否有预收单: {{ formData.remainingAmount == 0 ? '否' : '是' }}
+
+
+ 预收金额: {{ formData.remainingAmount }}
+
进货商名称: {{ formData.partnerName }}
- 项目编号: {{ formData.projectCode }}
+ 订单编号: {{ formData.orderCode }}
- 项目名称: {{ formData.projectName }}
+ 出库单号: {{ formData.inventoryCode }}
- 合同编号: {{ formData.orderCode }}
+ 含税总价(元): {{ formData.totalPriceWithTax }}
- 出入库单号: {{ formData.inventoryCode }}
+ 未税总价(元): {{ formData.totalPriceWithoutTax }}
- 产品类型:
-
-
-
-
-
-
- 含税总价: {{ formData.totalPriceWithTax }}
-
-
- 未税总价: {{ formData.totalPriceWithoutTax }}
-
-
- 税额: {{ formData.taxAmount }}
+ 税额(元): {{ formData.taxAmount }}
@@ -70,6 +72,19 @@
开票中金额: {{ this.$calc.sub(this.$calc.sub(formData.totalPriceWithTax,formData.invoicedAmount),formData.uninvoicedAmount)}}
+
+
+ 生成收款单: {{ formData.totalPriceWithTax==formData.unreceivedAmount ? '未生成' : formData.unreceivedAmount == 0 ? '已生成' : '部分生成'}}
+
+
+ 生成开票单: {{ formData.totalPriceWithTax==formData.uninvoicedAmount ? '未生成' : formData.uninvoicedAmount == 0 ? '已生成' : '部分生成'}}
+
+
+ 产品类型:
+
+
+
+
@@ -77,7 +92,7 @@
- 销售收款单
+ 销售-收款单
@@ -97,7 +112,7 @@
-
+
@@ -109,14 +124,14 @@
- 销售开票单
+ 销售-开票单
-
-
-
-
-
+
+
+
+
+
{{ scope.row.actualInvoiceTime || '-' }}
@@ -129,8 +144,8 @@
-
-
+
+
预览
@@ -168,7 +183,7 @@ import GlobalFilePreview from "@/components/GlobalFilePreview/index.vue";
export default {
name: "EditForm",
- dicts: ['product_type','receipt_bill_status','receivable_detail_type', 'invoice_bill_status'],
+ dicts: ['product_type','receipt_bill_status','receivable_detail_type', 'invoice_bill_status','invoice_detail_type'],
components: {
GlobalFilePreview,
ReceiptPlan,
diff --git a/oms_web/oms_vue/src/views/finance/receivable/components/InvoicePlan.vue b/oms_web/oms_vue/src/views/finance/receivable/components/InvoicePlan.vue
index ac715df3..1e965c06 100644
--- a/oms_web/oms_vue/src/views/finance/receivable/components/InvoicePlan.vue
+++ b/oms_web/oms_vue/src/views/finance/receivable/components/InvoicePlan.vue
@@ -15,7 +15,7 @@
-
diff --git a/oms_web/oms_vue/src/views/finance/receivable/components/MergeInvoiceDialog.vue b/oms_web/oms_vue/src/views/finance/receivable/components/MergeInvoiceDialog.vue
index 09b2f91d..7e29e955 100644
--- a/oms_web/oms_vue/src/views/finance/receivable/components/MergeInvoiceDialog.vue
+++ b/oms_web/oms_vue/src/views/finance/receivable/components/MergeInvoiceDialog.vue
@@ -3,44 +3,55 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
销售应收单表
+
销售-应收单表
-
+
-
+
+
+
+
+ {{ calculateOrderCurrentInvoiceAmount(scope.row.id).toFixed(2) }}
+
-
-
+
+
+ {{ calculateOrderCurrentInvoiceRate(scope.row.id) }}%
+
+
+
+
+
-
-
- {{ calculateOrderCurrentInvoiceAmount(scope.row.id).toFixed(2) }}
-
-
-
-
- {{ calculateOrderCurrentInvoiceRate(scope.row.id) }}%
-
-
+
+
+
+ {{ $calc.sub($calc.sub(scope.row.totalPriceWithTax, scope.row.invoicedAmount), scope.row.uninvoicedAmount) }}
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
- 销售应收单表
+ 销售-应收单表
-
+
-
+
+
+
+
+ {{ calculateOrderCurrentReceiptAmount(scope.row.id).toFixed(2) }}
+
-
-
-
+
+
+ {{ calculateOrderCurrentReceiptRate(scope.row.id) }}
+
+
+
+
+
-
-
-
+
+
+
+
- {{ calculateOrderCurrentReceiptAmount(scope.row.id).toFixed(2) }}
+ {{ $calc.sub($calc.sub(scope.row.totalPriceWithTax, scope.row.receivedAmount), scope.row.unreceivedAmount) }}
-
-
- {{ calculateOrderCurrentReceiptRate(scope.row.id) }}%
-
-
-
+
-
diff --git a/oms_web/oms_vue/src/views/finance/receivable/index.vue b/oms_web/oms_vue/src/views/finance/receivable/index.vue
index 671a2f97..687c253a 100644
--- a/oms_web/oms_vue/src/views/finance/receivable/index.vue
+++ b/oms_web/oms_vue/src/views/finance/receivable/index.vue
@@ -1,14 +1,14 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+ {{ scope.row.remainingAmount == 0 ? '否' : '是' }}
+
+
-
+
-
+
生成收款单
删除
+ icon="el-icon-edit"
+ v-show="scope.row.unreceivedAmount!==0"
+ @click="handleGeneratedInvoice(scope.row)"
+ v-hasPermi="['finance:invoice:generate']"
+ >生成收票单
@@ -194,7 +199,7 @@ export default {
projectCode: null,
projectName: null,
receivableBillCode: null,
- customerName: null,
+ partnerName: null,
productType: null,
collectionStatus: null,
createTimeStart: null,
@@ -217,15 +222,10 @@ export default {
/** 查询销售应收单列表 */
getList() {
this.loading = true;
- if (null != this.dateRange && '' != this.dateRange) {
- this.queryParams.createTimeStart = this.dateRange[0];
- this.queryParams.createTimeEnd = this.dateRange[1];
- }
- if (null != this.estimatedReceiptDateRange && '' != this.estimatedReceiptDateRange) {
- this.queryParams.estimatedReceiptTimeStart = this.estimatedReceiptDateRange[0];
- this.queryParams.estimatedReceiptTimeEnd = this.estimatedReceiptDateRange[1];
- }
- listReceivable(this.queryParams).then(response => {
+ let query = { ...this.queryParams };
+ query = this.addDateRange(query, this.estimatedReceiptDateRange, 'PlanReceiptDate');
+
+ listReceivable(query).then(response => {
this.receivableList = response.rows;
this.total = response.total;
this.loading = false;
@@ -268,6 +268,10 @@ export default {
this.selectedReceivableRows=[row]
this.handleMergeAndInitiateReceipt()
},
+ handleGeneratedInvoice(row) {
+ this.selectedReceivableRows=[row]
+ this.handleMergeAndInitiateInvoice()
+ },
/** 合并并发起收款单按钮操作 */
handleMergeAndInitiateReceipt() {
if (this.selectedReceivableRows.length === 0) {
@@ -275,7 +279,7 @@ export default {
return;
}
let customerLength = new Set(this.selectedReceivableRows.map(item=>item.customerCode)).size; // Use customerCode to differentiate
- // Or check customerName if code is not available in row, but row usually has it.
+ // Or check partnerName if code is not available in row, but row usually has it.
if (customerLength > 1) {
this.$modal.msgWarning("请选择同一家客户的应收单进行合并操作");
return;
diff --git a/oms_web/oms_vue/src/views/finance/receive/components/AddForm.vue b/oms_web/oms_vue/src/views/finance/receive/components/AddForm.vue
index 39c73fec..e658fde0 100644
--- a/oms_web/oms_vue/src/views/finance/receive/components/AddForm.vue
+++ b/oms_web/oms_vue/src/views/finance/receive/components/AddForm.vue
@@ -4,8 +4,9 @@
-
-
+
+
@@ -13,27 +14,25 @@
-
-
- 是
- 否
-
+
+ 预付
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -52,37 +51,43 @@
ref="receivableTable"
:data="receivableList"
border
+ v-loading="receivableLoading"
style="width: 100%"
@selection-change="handleSelectionChange"
max-height="400"
row-key="id"
>
-
+
-
+
+
+
+
+ {{ calculateOrderCurrentReceiptAmount(scope.row).toFixed(2) }}
+
-
-
-
+
+
+ {{ calculateOrderCurrentReceiptRate(scope.row) }}
+
+
+
+
+
-
-
-
+
+
+
+
- {{ calculateOrderCurrentReceiptAmount(scope.row).toFixed(2) }}
+ {{ $calc.sub($calc.sub(scope.row.totalPriceWithTax, scope.row.receivedAmount), scope.row.unreceivedAmount) }}
-
-
- {{ calculateOrderCurrentReceiptRate(scope.row) }}%
-
-
-
@@ -118,6 +123,7 @@
ref="orderTable"
:data="orderList"
border
+ v-loading="orderLoading"
style="width: 100%"
@selection-change="handleSelectionChange"
@select="handleSelect"
@@ -145,7 +151,7 @@
- 请先选择代理商
+ 请先选择进货商
@@ -210,6 +216,8 @@ export default {
actualReceiveTime: null
},
showPartnerSelector: false,
+ receivableLoading: false,
+ orderLoading: false,
rules: {
partnerName: [{required: true, message: "代理商不能为空", trigger: "change"}],
actualReceiveTime: [{required: true, message: "实际收款时间不能为空", trigger: "change"}],
@@ -284,6 +292,7 @@ export default {
if (this.form.receiveBillType === 'FROM_RECEIVABLE' && this.form.partnerCode) {
query.partnerCode = this.form.partnerCode;
+ this.receivableLoading = true
listReceivable(query).then(res => {
this.receivableList = (res.rows || []).map(item => {
const receiptPlans = item.receiptPlans ? [...item.receiptPlans] : [];
@@ -302,14 +311,17 @@ export default {
}
});
this.total = res.total;
+ this.receivableLoading = false
});
} else if (this.form.receiveBillType === 'PRE_RECEIPT' && this.form.partnerCode) {
// Filter Sales Orders for the agent (partner)
query.partnerCode = this.form.partnerCode;
query.orderStatus = '2'; // Example status
+ this.orderLoading=true
listOrder(query).then(res => {
this.orderList = res.rows || [];
this.total = res.total;
+ this.orderLoading=false
});
}
this.$nextTick(() => {
diff --git a/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue b/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue
index a117418e..d2bacbb3 100644
--- a/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue
+++ b/oms_web/oms_vue/src/views/finance/receive/components/ApplyPaymentDialog.vue
@@ -4,10 +4,10 @@
- 请选择客户的付款方式并确认客户打款的账户信息,提交至财务审批
+ 请选择客户的支付方式并确认客户打款的账户信息,提交至财务审批
-
-
+
+
-
+
@@ -203,6 +203,10 @@ export default {
this.previewUrl = '';
},
handleSubmit() {
+ if (this.$calc.sub(this.form.totalPriceWithTax,this.form.confirmAmount)!=0){
+ this.$modal.msgError("确认收款金额与收款金额需相同");
+ return
+ }
this.$refs["form"].validate(valid => {
if (valid) {
// Construct FormData
@@ -218,6 +222,7 @@ export default {
formData.append("file", this.form.file);
}
+
// Since applyPaymentApi usually takes JSON, we might need to verify if backend supports FormData
// Assuming we are sending FormData now.
applyReceipt(formData).then(response => {
diff --git a/oms_web/oms_vue/src/views/finance/receive/index.vue b/oms_web/oms_vue/src/views/finance/receive/index.vue
index 002262f4..2f5dfb7d 100644
--- a/oms_web/oms_vue/src/views/finance/receive/index.vue
+++ b/oms_web/oms_vue/src/views/finance/receive/index.vue
@@ -1,6 +1,6 @@
-
+
-
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
-
-
-
-
+
-
-
-
+
+
@@ -72,8 +74,8 @@
-
+
{{ parseTime(scope.row.receiptTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
-
-
-
+
+
+
-
-
+
+
-
+
@@ -150,8 +152,8 @@
{{ parseTime(scope.row.approveTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
-
-
+
+
附件
+ >{{scope.row.receiptBillType!=='REFUND'?'客户付款图':'退款回执单'}}
申请付款
+ >申请收款
申请退款
退回
+ 撤销
@@ -211,7 +224,7 @@