Commit ba73aab5 authored by XieZhiXiong's avatar XieZhiXiong

完善加工单据相关

parent 4a4cd802
......@@ -2,7 +2,7 @@
* @Author: XieZhiXiong
* @Date: 2020-09-16 15:16:47
* @LastEditors: XieZhiXiong
* @LastEditTime: 2020-11-25 17:25:55
* @LastEditTime: 2020-11-26 11:10:39
* @Description: 联动逻辑相关
*/
import { Modal } from 'antd';
......@@ -598,8 +598,7 @@ export const useBusinessEffects = (context, actions) => {
onFieldInputChange$('invoicesDetailsRequests.*.product').subscribe(fieldState => {
const { name, originAsyncData, value } = fieldState;
const current = originAsyncData.find(item => item.productId === value);
console.log('current', current)
const invoicesTypeIdVal = getFieldValue('invoicesTypeId');
// 取消选择
if (!value) {
......@@ -679,14 +678,6 @@ export const useBusinessEffects = (context, actions) => {
);
setFieldState(
FormPath.transform(name, /\d/, $1 => {
return `invoicesDetailsRequests.${$1}.productCount`
}),
state => {
state.value = current.purchaseCount;
}
);
setFieldState(
FormPath.transform(name, /\d/, $1 => {
return `invoicesDetailsRequests.${$1}.amount`
}),
state => {
......@@ -694,6 +685,57 @@ export const useBusinessEffects = (context, actions) => {
}
);
switch (invoicesTypeIdVal) {
// 采购入库单、销售发货单
case DOC_TYPE_PURCHASE_RECEIPT:
case DOC_TYPE_SALES_INVOICE: {
// 设置单据数量,取采购数量
setFieldState(
FormPath.transform(name, /\d/, $1 => {
return `invoicesDetailsRequests.${$1}.productCount`
}),
state => {
state.value = current.purchaseCount;
}
);
break;
}
// 加工入库单、加工发货单
case DOC_TYPE_PROCESS_RECEIPT:
case DOC_TYPE_PROCESS_INVOICE: {
// 设置单据数量,取加工数量
setFieldState(
FormPath.transform(name, /\d/, $1 => {
return `invoicesDetailsRequests.${$1}.productCount`
}),
state => {
state.value = current.processNum;
}
);
break;
}
// 退货发货单、退货入库单
case DOC_TYPE_RETURN_INVOICE:
case DOC_TYPE_RETURN_RECEIPT: {
break;
}
// 换货发货单、换货入库单
case DOC_TYPE_EXCHANGE_INVOICE:
case DOC_TYPE_EXCHANGE_RECEIPT: {
break;
}
default: {
break;
}
}
// 额外的数据
setFieldState(
FormPath.transform(name, /\d/, $1 => {
......@@ -750,6 +792,7 @@ export const useBusinessEffects = (context, actions) => {
// 关联明细 商品数量 联动计算商品金额
onFieldInputChange$('invoicesDetailsRequests.*.productCount').subscribe(fieldState => {
const { name, value } = fieldState;
const invoicesTypeIdVal = getFieldValue('invoicesTypeId');
const originAsyncData = getFieldState(
FormPath.transform(name, /\d/, $1 => {
return `invoicesDetailsRequests.${$1}.product`
......@@ -764,18 +807,61 @@ export const useBusinessEffects = (context, actions) => {
);
const current = originAsyncData ? originAsyncData.find(item => item.productId === goodId) : null;
console.log('current', current)
if (!current) {
return;
}
if (+value > current.purchaseCount) {
Modal.destroyAll();
Modal.confirm({
title: '提示',
content: '单据数量已超过商品数量',
okText: '确认',
cancelText: '取消',
});
switch (invoicesTypeIdVal) {
// 采购入库单、销售发货单
case DOC_TYPE_PURCHASE_RECEIPT:
case DOC_TYPE_SALES_INVOICE: {
if (+value > current.purchaseCount) {
Modal.destroyAll();
Modal.confirm({
title: '提示',
content: '单据数量已超过商品数量',
okText: '确认',
cancelText: '取消',
});
}
break;
}
// 加工入库单、加工发货单
case DOC_TYPE_PROCESS_RECEIPT:
case DOC_TYPE_PROCESS_INVOICE: {
if (+value > current.processNum) {
Modal.destroyAll();
Modal.confirm({
title: '提示',
content: '单据数量已超过加工数量',
okText: '确认',
cancelText: '取消',
});
}
break;
}
// 退货发货单、退货入库单
case DOC_TYPE_RETURN_INVOICE:
case DOC_TYPE_RETURN_RECEIPT: {
break;
}
// 换货发货单、换货入库单
case DOC_TYPE_EXCHANGE_INVOICE:
case DOC_TYPE_EXCHANGE_RECEIPT: {
break;
}
default: {
break;
}
}
setFieldState(
......
......@@ -15,6 +15,7 @@ import NiceForm from '@/components/NiceForm';
import ModalTable from '@/components/ModalTable';
import Search from '@/components/NiceForm/components/Search';
import Submit from '@/components/NiceForm/components/Submit';
import SearchSelect from '@/components/NiceForm/components/SearchSelect';
import { useStateFilterSearchLinkageEffect } from '@/formSchema/effects/useFilterSearch';
import { FORM_FILTER_PATH } from '@/formSchema/const';
import { useAsyncSelect } from '@/formSchema/effects/useAsyncSelect';
......@@ -874,6 +875,7 @@ const BillsForm: React.FC<BillsFormProps> = ({
components: {
Search,
Submit,
SearchSelect,
},
effects: ($, actions) => {
useStateFilterSearchLinkageEffect(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment