kts-component-invoice-operate 3.2.97 → 3.2.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/.dumi/theme/builtins/API.tsx +66 -66
  2. package/.editorconfig +16 -16
  3. package/.fatherrc.ts +4 -4
  4. package/.prettierignore +7 -7
  5. package/.prettierrc +11 -11
  6. package/.umirc.ts +8 -8
  7. package/README.md +9 -9
  8. package/dist/Invoice/InvoiceController/InvoiceControllerState/AutoComplete/index.d.ts +3 -2
  9. package/dist/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.d.ts +1 -0
  10. package/dist/index.esm.js +669 -614
  11. package/dist/index.js +669 -614
  12. package/docs/index.md +5 -5
  13. package/docs-dist/static/arrowDown.a1cbf0d8.svg +2 -2
  14. package/docs-dist/static/arrowUp.4c482054.svg +2 -2
  15. package/docs-dist/static/fork.5431267d.svg +11 -11
  16. package/docs-dist/static/plus.44013ce3.svg +11 -11
  17. package/docs-dist/static/plus.4fd1af30.svg +11 -11
  18. package/index.html +12 -12
  19. package/package.json +61 -61
  20. package/src/Invoice/Invoice-digtal/_test/disabled/index.tsx +38 -38
  21. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +16 -16
  22. package/src/Invoice/Invoice-digtal/_test/header/index.tsx +84 -84
  23. package/src/Invoice/Invoice-digtal/_test/importGoods/index.tsx +470 -470
  24. package/src/Invoice/Invoice-digtal/_test/importStakeholder/index.tsx +17 -17
  25. package/src/Invoice/Invoice-digtal/_test/lineCredit/index.tsx +20 -20
  26. package/src/Invoice/Invoice-digtal/_test/prefab/index.tsx +150 -150
  27. package/src/Invoice/Invoice-digtal/_test/readOnly/index.tsx +42 -42
  28. package/src/Invoice/Invoice-digtal/_test/stakeholder/index.tsx +12 -12
  29. package/src/Invoice/Invoice-digtal/_test/typeSelection/index.tsx +29 -29
  30. package/src/Invoice/Invoice-digtal/index.md +30 -30
  31. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +95 -95
  32. package/src/Invoice/InvoiceController/InvoiceControllerState/AutoComplete/index.ts +20 -17
  33. package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
  34. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/Drag/index.ts +15 -15
  35. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +104 -104
  36. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
  37. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +78 -78
  38. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +80 -80
  39. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +7 -7
  40. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
  41. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +113 -113
  42. package/src/Invoice/InvoiceController/InvoiceControllerState/Stakeholder/index.ts +13 -13
  43. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +65 -65
  44. package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
  45. package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +126 -126
  46. package/src/Invoice/InvoiceController/fns/addGoodDiscountV2.ts +86 -86
  47. package/src/Invoice/InvoiceController/fns/delGood.ts +41 -41
  48. package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +26 -26
  49. package/src/Invoice/InvoiceController/fns/importGoodsDrawer.ts +79 -79
  50. package/src/Invoice/InvoiceController/fns/mergeDetails.ts +165 -165
  51. package/src/Invoice/InvoiceController/fns/mergeDiscount.ts +28 -28
  52. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +24 -24
  53. package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
  54. package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
  55. package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
  56. package/src/Invoice/InvoiceController/index.ts +77 -77
  57. package/src/Invoice/_test/buyerNameSearch/index.tsx +42 -42
  58. package/src/Invoice/_test/deduction/index.tsx +935 -935
  59. package/src/Invoice/_test/draft/index.tsx +40 -40
  60. package/src/Invoice/_test/easiest/index.tsx +5 -5
  61. package/src/Invoice/_test/endowCode/index.tsx +1156 -1156
  62. package/src/Invoice/_test/goodsMenuExpand/index.tsx +32 -32
  63. package/src/Invoice/_test/importBuyer/index.tsx +74 -74
  64. package/src/Invoice/_test/importGoods/index.tsx +1161 -516
  65. package/src/Invoice/_test/invoiceType/index.tsx +59 -59
  66. package/src/Invoice/_test/isInvoiceNo/index.tsx +12 -12
  67. package/src/Invoice/_test/replaceHead/index.tsx +22 -22
  68. package/src/Invoice/_test/retrieveData/index.tsx +22 -22
  69. package/src/Invoice/_test/seller/index.tsx +28 -28
  70. package/src/Invoice/_test/setDataSource/index.tsx +66 -66
  71. package/src/Invoice/_test/unit/index.tsx +19 -19
  72. package/src/Invoice/index.less +29 -29
  73. package/src/Invoice/index.md +53 -53
  74. package/src/Invoice/index.tsx +167 -167
  75. package/src/Invoice/tools/calculate/index.ts +112 -112
  76. package/src/Invoice/tools/coolingFn/index.ts +17 -17
  77. package/src/Invoice/tools/evaluate/index.ts +7 -7
  78. package/src/Invoice/tools/idGenerator/index.ts +2 -2
  79. package/src/Invoice/tools/itemName/index.ts +55 -55
  80. package/src/Invoice/tools/lazyFn/index.ts +19 -19
  81. package/src/Invoice/tools/mounting/index.ts +13 -13
  82. package/src/Invoice/tools/strringFn/index.ts +40 -40
  83. package/src/Invoice/tools/useToGenerateId/index.ts +8 -8
  84. package/src/Invoice/ui/default/AddComparisonDrawer/index.tsx +149 -149
  85. package/src/Invoice/ui/default/Buyer/index.less +219 -219
  86. package/src/Invoice/ui/default/Buyer/index.tsx +114 -114
  87. package/src/Invoice/ui/default/Buyer/ui/BuyerNameInput/index.tsx +166 -166
  88. package/src/Invoice/ui/default/Buyer/ui/ImportBuyerButton/index.tsx +21 -21
  89. package/src/Invoice/ui/default/EndowCodeDrawer/index.less +8 -8
  90. package/src/Invoice/ui/default/EndowCodeDrawer/index.tsx +543 -543
  91. package/src/Invoice/ui/default/GoodsList/hook/useColumns/autoFillFn/index.ts +533 -533
  92. package/src/Invoice/ui/default/GoodsList/hook/useColumns/index.tsx +687 -686
  93. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  94. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
  95. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.less +18 -18
  96. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemCodeInput/index.tsx +47 -47
  97. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +17 -17
  98. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +99 -81
  99. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  100. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  101. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +118 -118
  102. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  103. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +25 -25
  104. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  105. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  106. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  107. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  108. package/src/Invoice/ui/default/GoodsList/hook/useDeduction/index.tsx +24 -24
  109. package/src/Invoice/ui/default/GoodsList/hook/useOnRow/index.tsx +39 -39
  110. package/src/Invoice/ui/default/GoodsList/hook/useRowSelection/index.tsx +114 -114
  111. package/src/Invoice/ui/default/GoodsList/hook/useWindowClick/index.tsx +23 -23
  112. package/src/Invoice/ui/default/GoodsList/index.less +179 -179
  113. package/src/Invoice/ui/default/GoodsList/index.tsx +205 -205
  114. package/src/Invoice/ui/default/GoodsList/ui/AddRowButton/index.tsx +65 -65
  115. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
  116. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
  117. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  118. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +69 -69
  119. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +65 -65
  120. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDetails/index.tsx +91 -91
  121. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useMergeDiscount/index.tsx +36 -36
  122. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesDiscount/index.tsx +109 -109
  123. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesGifts/index.tsx +88 -88
  124. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/index.tsx +37 -37
  125. package/src/Invoice/ui/default/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  126. package/src/Invoice/ui/default/GoodsList/ui/Search/index.less +10 -10
  127. package/src/Invoice/ui/default/GoodsList/ui/Search/index.tsx +52 -52
  128. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.less +18 -18
  129. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.tsx +113 -113
  130. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.less +28 -28
  131. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.tsx +57 -57
  132. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.less +38 -38
  133. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.tsx +108 -108
  134. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.less +44 -44
  135. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  136. package/src/Invoice/ui/default/GoodsList/ui/TaxIncludedSwitch/index.tsx +30 -30
  137. package/src/Invoice/ui/default/ImportBuyerDrawer/index.tsx +75 -75
  138. package/src/Invoice/ui/default/ImportGoodsDrawer/index.tsx +201 -201
  139. package/src/Invoice/ui/default/InvoiceHeader/index.less +68 -68
  140. package/src/Invoice/ui/default/InvoiceHeader/index.tsx +246 -246
  141. package/src/Invoice/ui/default/Seller/index.less +113 -113
  142. package/src/Invoice/ui/default/Seller/index.tsx +98 -98
  143. package/src/Invoice/ui/default/Sign/index.less +14 -14
  144. package/src/Invoice/ui/default/Sign/index.tsx +71 -71
  145. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/autoFillFn/index.ts +519 -519
  146. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +648 -648
  147. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/svg/plus.svg +11 -11
  148. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.less +20 -20
  149. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/Drag/index.tsx +205 -205
  150. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  151. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +50 -54
  152. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  153. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  154. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  155. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  156. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  157. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  158. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  159. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  160. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  161. package/src/Invoice/ui/digtal/GoodsList/hook/useOnRow/index.tsx +39 -39
  162. package/src/Invoice/ui/digtal/GoodsList/hook/useRowSelection/index.tsx +121 -121
  163. package/src/Invoice/ui/digtal/GoodsList/hook/useWindowClick/index.tsx +23 -23
  164. package/src/Invoice/ui/digtal/GoodsList/index.less +56 -56
  165. package/src/Invoice/ui/digtal/GoodsList/index.tsx +180 -180
  166. package/src/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.tsx +65 -65
  167. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +339 -339
  168. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/svg/add.svg +11 -11
  169. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  170. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
  171. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +35 -35
  172. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +82 -82
  173. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useReselectInvoiceType/index.tsx +57 -57
  174. package/src/Invoice/ui/digtal/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  175. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.less +11 -11
  176. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.tsx +50 -50
  177. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.less +53 -53
  178. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.tsx +99 -99
  179. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/svg/fork.svg +11 -11
  180. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.less +28 -28
  181. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.tsx +53 -53
  182. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.less +38 -38
  183. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +108 -108
  184. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual.o/index.less +44 -44
  185. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  186. package/src/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.tsx +30 -30
  187. package/src/Invoice/ui/digtal/InvoiceHeader/index.less +57 -57
  188. package/src/Invoice/ui/digtal/InvoiceHeader/index.tsx +77 -77
  189. package/src/Invoice/ui/digtal/Sign/index.less +48 -48
  190. package/src/Invoice/ui/digtal/Sign/index.tsx +99 -99
  191. package/src/Invoice/ui/digtal/Stakeholder/index.less +75 -75
  192. package/src/Invoice/ui/digtal/Stakeholder/index.tsx +394 -394
  193. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowDown.svg +2 -2
  194. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowUp.svg +2 -2
  195. package/src/Invoice/ui/digtal/Stakeholder/svg/plus.svg +11 -11
  196. package/src/InvoiceTypeModal/_test/easiest/index.tsx +31 -31
  197. package/src/InvoiceTypeModal/index.less +7 -7
  198. package/src/InvoiceTypeModal/index.md +5 -5
  199. package/src/InvoiceTypeModal/index.tsx +153 -153
  200. package/src/TaxClassificationCodeModal/_test/easiest/index.tsx +177 -177
  201. package/src/TaxClassificationCodeModal/index.md +6 -6
  202. package/src/TaxClassificationCodeModal/index.tsx +74 -74
  203. package/src/index.ts +12 -12
  204. package/tsconfig.json +31 -31
  205. package/typings.d.ts +3 -3
  206. package/yarn.e.lock +14331 -14331
@@ -1,26 +1,26 @@
1
-
2
- import IGood from "../InvoiceControllerState/GoodsListState/IGood";
3
-
4
- /**
5
- * 计算搜索商品
6
- * @param goodsList 被搜索列表
7
- * @param search 搜索条件
8
- * @param isTaxIncluded 是否含税
9
- * @returns
10
- */
11
- export default function getGoodsSearch(goodsList: IGood[], search: string, isTaxIncluded: boolean) {
12
- if (!search) return goodsList;
13
- return goodsList.filter(e => {
14
- if ((e.itemName?.indexOf(search) ?? -1) >= 0) {
15
- return true;
16
- } else if ((e.itemCode?.indexOf(search) ?? -1) >= 0) {
17
- return true
18
- } else if ((e.itemModelName?.indexOf(search) ?? -1) >= 0) {
19
- return true
20
- } else if (`${isTaxIncluded ? e.lineAmountIncludeTax?.toFixed(2) : e.lineAmountExcludeTax?.toFixed(2)}`.indexOf(search) >= 0) {
21
- return true
22
- } else {
23
- return false;
24
- }
25
- })
26
- }
1
+
2
+ import IGood from "../InvoiceControllerState/GoodsListState/IGood";
3
+
4
+ /**
5
+ * 计算搜索商品
6
+ * @param goodsList 被搜索列表
7
+ * @param search 搜索条件
8
+ * @param isTaxIncluded 是否含税
9
+ * @returns
10
+ */
11
+ export default function getGoodsSearch(goodsList: IGood[], search: string, isTaxIncluded: boolean) {
12
+ if (!search) return goodsList;
13
+ return goodsList.filter(e => {
14
+ if ((e.itemName?.indexOf(search) ?? -1) >= 0) {
15
+ return true;
16
+ } else if ((e.itemCode?.indexOf(search) ?? -1) >= 0) {
17
+ return true
18
+ } else if ((e.itemModelName?.indexOf(search) ?? -1) >= 0) {
19
+ return true
20
+ } else if (`${isTaxIncluded ? e.lineAmountIncludeTax?.toFixed(2) : e.lineAmountExcludeTax?.toFixed(2)}`.indexOf(search) >= 0) {
21
+ return true
22
+ } else {
23
+ return false;
24
+ }
25
+ })
26
+ }
@@ -1,79 +1,79 @@
1
- import { dutyFree, format15, updateUnitPriceExcludingTax, updateUnitPriceTax } from '../../ui/default/GoodsList/hook/useColumns/autoFillFn';
2
- import { InvoiceControllerState, IGood } from '../';
3
- import evaluate from '../../tools/evaluate';
4
- import { countAmountIncludeTax } from '../../tools/calculate';
5
-
6
- /**
7
- * 删除一个货物
8
- */
9
- export default async (s: InvoiceControllerState, record: any, controller:any) => {
10
- Object.keys(record).filter(e => !record[e] && record[e] !== 0).forEach(e => { delete record[e] });
11
-
12
- // 没用 被编辑的货物 和 form 就退出
13
- if (!s.goodsListState.editGood || !s.goodsListState.form) return;
14
-
15
- // 导入时清空之前输入的值,使用导入的单价和税率(参考税局系统)
16
- record.quantity = undefined;
17
- record.lineAmountExcludeTax = undefined;
18
- record.lineAmountIncludeTax = undefined;
19
-
20
- // 中间数据
21
- const between: any = {...record };
22
-
23
- between.itemCode = record.itemCode;
24
- between.shorthand = record.shorthand;
25
- between.itemName = record.itemName;
26
- between.itemNameOther = record.itemName;
27
- between.itemModelName = record.itemModelName;
28
- between.unit = record.unit;
29
- between.quantity = record.quantity;
30
- between.priceIncludeTax = record.priceIncludeTax;
31
- between.lineAmountIncludeTax = record.lineAmountIncludeTax;
32
- between.lineAmountExcludeTax = record.lineAmountExcludeTax;
33
- between.taxRate = record.taxRate;
34
- between.taxAmount = record.taxAmount;
35
-
36
- // 设置编辑货物
37
- const editGood: IGood = s.goodsListState.editGood = { ...s.goodsListState.editGood, ...between };
38
-
39
- if (editGood.taxRate) {
40
- editGood.taxRate = dutyFree(controller, editGood.taxRate, s.goodsListState.form, editGood)
41
- }
42
-
43
- if (`${editGood.priceIncludeTax}` === '0') {
44
- editGood.priceIncludeTax = undefined;
45
- editGood.priceExcludeTax = undefined;
46
- } else {
47
- editGood.priceExcludeTax = getPriceExcludeTax(editGood, record, s.calculatingDigits) as number;
48
- }
49
-
50
- if (editGood.quantity && editGood.priceIncludeTax) {
51
- editGood.lineAmountIncludeTax = countAmountIncludeTax(editGood.quantity, editGood.priceIncludeTax, s.calculatingDigits);
52
- }
53
-
54
- // 导入FORM里
55
- if (s.goodsListState.isMyShow) {
56
- s.goodsListState.form.setFieldsValue({
57
- ...editGood,
58
- itemName: editGood.itemNameSelf,
59
- itemModelName: editGood.itemModelNameSelf,
60
- });
61
- } else {
62
- s.goodsListState.form.setFieldsValue({
63
- ...editGood,
64
- });
65
- }
66
-
67
- s.goodsListState.importGoods.isVisibleDrawer = false;
68
- s.goodsListState.isTaxIncluded
69
- ? await updateUnitPriceExcludingTax(controller, s.goodsListState.form, record)
70
- : await updateUnitPriceTax(controller, s.goodsListState.form, record)
71
- }
72
-
73
- /** 货物单价,不含税 */
74
- const getPriceExcludeTax = (s: IGood, record: any, calculatingDigits?: number) => {
75
- if ((!s.taxRate && s.taxRate !== 0) || (!record.priceIncludeTax && record.priceIncludeTax !== 0)) return;
76
-
77
- // 单价(含税)/(1+税率) = 单价(不含税)
78
- return format15(evaluate(`${record.priceIncludeTax} / (1+${s.taxRate}/100)`), calculatingDigits);
79
- };
1
+ import { dutyFree, format15, updateUnitPriceExcludingTax, updateUnitPriceTax } from '../../ui/default/GoodsList/hook/useColumns/autoFillFn';
2
+ import { InvoiceControllerState, IGood } from '../';
3
+ import evaluate from '../../tools/evaluate';
4
+ import { countAmountIncludeTax } from '../../tools/calculate';
5
+
6
+ /**
7
+ * 删除一个货物
8
+ */
9
+ export default async (s: InvoiceControllerState, record: any, controller:any) => {
10
+ Object.keys(record).filter(e => !record[e] && record[e] !== 0).forEach(e => { delete record[e] });
11
+
12
+ // 没用 被编辑的货物 和 form 就退出
13
+ if (!s.goodsListState.editGood || !s.goodsListState.form) return;
14
+
15
+ // 导入时清空之前输入的值,使用导入的单价和税率(参考税局系统)
16
+ record.quantity = undefined;
17
+ record.lineAmountExcludeTax = undefined;
18
+ record.lineAmountIncludeTax = undefined;
19
+
20
+ // 中间数据
21
+ const between: any = {...record };
22
+
23
+ between.itemCode = record.itemCode;
24
+ between.shorthand = record.shorthand;
25
+ between.itemName = record.itemName;
26
+ between.itemNameOther = record.itemName;
27
+ between.itemModelName = record.itemModelName;
28
+ between.unit = record.unit;
29
+ between.quantity = record.quantity;
30
+ between.priceIncludeTax = record.priceIncludeTax;
31
+ between.lineAmountIncludeTax = record.lineAmountIncludeTax;
32
+ between.lineAmountExcludeTax = record.lineAmountExcludeTax;
33
+ between.taxRate = record.taxRate;
34
+ between.taxAmount = record.taxAmount;
35
+
36
+ // 设置编辑货物
37
+ const editGood: IGood = s.goodsListState.editGood = { ...s.goodsListState.editGood, ...between };
38
+
39
+ if (editGood.taxRate) {
40
+ editGood.taxRate = dutyFree(controller, editGood.taxRate, s.goodsListState.form, editGood)
41
+ }
42
+
43
+ if (`${editGood.priceIncludeTax}` === '0') {
44
+ editGood.priceIncludeTax = undefined;
45
+ editGood.priceExcludeTax = undefined;
46
+ } else {
47
+ editGood.priceExcludeTax = getPriceExcludeTax(editGood, record, s.calculatingDigits) as number;
48
+ }
49
+
50
+ if (editGood.quantity && editGood.priceIncludeTax) {
51
+ editGood.lineAmountIncludeTax = countAmountIncludeTax(editGood.quantity, editGood.priceIncludeTax, s.calculatingDigits);
52
+ }
53
+
54
+ // 导入FORM里
55
+ if (s.goodsListState.isMyShow) {
56
+ s.goodsListState.form.setFieldsValue({
57
+ ...editGood,
58
+ itemName: editGood.itemNameSelf,
59
+ itemModelName: editGood.itemModelNameSelf,
60
+ });
61
+ } else {
62
+ s.goodsListState.form.setFieldsValue({
63
+ ...editGood,
64
+ });
65
+ }
66
+
67
+ s.goodsListState.importGoods.isVisibleDrawer = false;
68
+ s.goodsListState.isTaxIncluded
69
+ ? await updateUnitPriceExcludingTax(controller, s.goodsListState.form, record)
70
+ : await updateUnitPriceTax(controller, s.goodsListState.form, record)
71
+ }
72
+
73
+ /** 货物单价,不含税 */
74
+ const getPriceExcludeTax = (s: IGood, record: any, calculatingDigits?: number) => {
75
+ if ((!s.taxRate && s.taxRate !== 0) || (!record.priceIncludeTax && record.priceIncludeTax !== 0)) return;
76
+
77
+ // 单价(含税)/(1+税率) = 单价(不含税)
78
+ return format15(evaluate(`${record.priceIncludeTax} / (1+${s.taxRate}/100)`), calculatingDigits);
79
+ };
@@ -1,166 +1,166 @@
1
-
2
- import { message } from 'kts-xui';
3
- import { chain, bignumber } from 'mathjs';
4
- import idGenerator from '../../tools/idGenerator';
5
- import { IGood, InvoiceControllerState, LineAttributeType } from '..';
6
- import { format15 } from '../../tools/calculate';
7
-
8
- export default async function mergeDetails(state: InvoiceControllerState, selectedGoodIndex?: string[]) {
9
- debugger;
10
- if (state.goodsListState.editGood || !selectedGoodIndex || selectedGoodIndex.length < 2) return;
11
-
12
- // const goodsList = state.goodsListState.selectedGoodIndex.map(e => state.goodsListState.goodsMap.get(e)).filter(e => !!e) as IGood[];
13
- // const goodsList = state.goodsListState.goodsList.filter(e => state.goodsListState.selectedGoodIndex.indexOf(e.$index) >= 0)
14
- const goodsList = state.goodsListState.goodsList.filter(e => selectedGoodIndex.indexOf(e.$index) >= 0);
15
- if (goodsList.length < 2) return;
16
-
17
- try {
18
- // 创建合并后的商品对象
19
- let sum: IGood = { $index: idGenerator(), lineAttribute: LineAttributeType.正常 }
20
-
21
- // 存在税率不一样的明细,不能合并
22
- await checkTaxTate(goodsList);
23
-
24
- // 填充行明细信息
25
- sum = await fillingInformationGood(goodsList, sum);
26
-
27
- // 合并数量
28
- sum.quantity = await mergeQuantity(goodsList);
29
-
30
- // 合并金额(不含税)
31
- sum.lineAmountExcludeTax = await mergeLineAmountExcludeTax(goodsList);
32
-
33
- // 合并金额(含税)
34
- sum.lineAmountIncludeTax = await mergeLineAmountIncludeTax(goodsList);
35
-
36
- // 计算单价(不含税)
37
- sum.priceExcludeTax = await calculatePriceExcludeTax(sum, state.calculatingDigits);
38
-
39
- // 计算单价(含税)
40
- sum.priceIncludeTax = await calculatePriceIncludeTax(sum, state.calculatingDigits);
41
-
42
- // 计算税额
43
- sum.taxAmount = chain(bignumber(sum.lineAmountIncludeTax)).subtract(bignumber(sum.lineAmountExcludeTax)).done().toNumber()
44
-
45
- // 校验数据 是否数量和金额是否同号
46
- await checkSameNumber(sum);
47
-
48
- const p = state.goodsListState.goodsList.indexOf(goodsList[0]);
49
- state.goodsListState.goodsList = state.goodsListState.goodsList.filter(e => selectedGoodIndex.indexOf(e.$index) < 0);
50
- state.goodsListState.goodsList.splice(p, 0, sum);
51
- state.goodsListState.goodsList = state.goodsListState.goodsList.filter(e => e.lineAmountExcludeTax !== 0);
52
- state.goodsListState.goodsMap = new Map();
53
- state.goodsListState.goodsList.forEach(e => { state.goodsListState.goodsMap.set(e.$index, e) });
54
- state.goodsListState.selectedGoodIndex = [];
55
- } catch (error: any) {
56
- showError(error)
57
- }
58
- }
59
-
60
- /** 计算单价(含税) */
61
- async function calculatePriceIncludeTax(sum: IGood, calculatingDigits?: number) {
62
- if (!sum.quantity) return undefined;
63
- const value = chain(bignumber(sum.lineAmountIncludeTax)).divide(bignumber(sum.quantity)).done().toNumber()
64
- return format15(value, calculatingDigits) || undefined;
65
- }
66
-
67
- /** 计算单价(不含税) */
68
- async function calculatePriceExcludeTax(sum: IGood, calculatingDigits?: number) {
69
- if (!sum.quantity) return undefined;
70
- const value = format15(chain(bignumber(sum.lineAmountExcludeTax)).divide(bignumber(sum.quantity)).done().toNumber());
71
- return format15(value, calculatingDigits) || undefined;;
72
- }
73
-
74
- /** 合并金额(含税) */
75
- async function mergeLineAmountIncludeTax(goodsList: IGood[]) {
76
- let sum = chain(bignumber(0));
77
- goodsList.forEach(e => {
78
- sum = sum.add(bignumber(e.lineAmountIncludeTax || 0))
79
- })
80
- return sum.done().toNumber();
81
- }
82
-
83
- /** 合并金额(不含税) */
84
- async function mergeLineAmountExcludeTax(goodsList: IGood[]) {
85
- let sum = chain(bignumber(0));
86
- goodsList.forEach(e => {
87
- sum = sum.add(bignumber(e.lineAmountExcludeTax || 0))
88
- })
89
- return sum.done().toNumber();
90
- }
91
-
92
- /** 合并数量 */
93
- async function mergeQuantity(goodsList: IGood[]) {
94
- let sum = chain(bignumber(0));
95
- goodsList.forEach(e => {
96
- sum = sum.add(bignumber(e.quantity || 0))
97
- })
98
- return sum.done().toNumber() || undefined;
99
- }
100
-
101
- /** 填充行明细信息 */
102
- async function fillingInformationGood(goodsList: IGood[], sum: IGood) {
103
- sum = { ...sum };
104
-
105
- const goods = goodsList[findMaxIndex(goodsList.map(e => e.lineAmountIncludeTax || 0))]
106
-
107
- return { ...goods, lineAttribute: LineAttributeType.正常 };
108
- }
109
-
110
- /** 存在税率不一样的明细,不能合并 */
111
- async function checkTaxTate(goodsList: IGood[]) {
112
- const tax = goodsList[0].taxRate;
113
- for (let i = 1; i < goodsList.length; i++) {
114
- if (tax !== goodsList[i].taxRate) {
115
- throw new Error('存在税率不一样的明细,不能合并');
116
- }
117
- }
118
- }
119
-
120
- /** 校验数据 是否数量和金额是否同号 */
121
- async function checkSameNumber(good: IGood) {
122
- if (!good.quantity) return;
123
-
124
- if (!good.lineAmountExcludeTax && good.lineAmountExcludeTax !== 0) {
125
- const content = '金额不能为空';
126
- message.error({ content, key: content });
127
- throw new Error(content);
128
- }
129
-
130
- if (
131
- good.quantity >= 0 && good.lineAmountExcludeTax >= 0 ||
132
- good.lineAmountExcludeTax === 0 ||
133
- good.quantity < 0 && good.lineAmountExcludeTax < 0
134
- ) {
135
- return;
136
- } else {
137
- const content = '合并失败,合并后“数量”和“金额”必须同时为正数或同时为负数。';
138
- message.error({ content, key: content });
139
- throw new Error(content);
140
- }
141
- }
142
-
143
- /** 显示错误信息 */
144
- function showError(error: Error) {
145
- console.log(error);
146
- message.error({ content: error.message, key: error.message });
147
- }
148
-
149
- /** 查询最大数据的索引 */
150
- function findMaxIndex(arr: number[]): number {
151
- if (arr.length === 0) {
152
- throw new Error("数组为空");
153
- }
154
-
155
- let maxIndex = 0;
156
- let maxValue = arr[0];
157
-
158
- for (let i = arr.length - 1; i >= 0; i--) {
159
- if (arr[i] > maxValue) {
160
- maxValue = arr[i];
161
- maxIndex = i;
162
- }
163
- }
164
-
165
- return maxIndex;
1
+
2
+ import { message } from 'kts-xui';
3
+ import { chain, bignumber } from 'mathjs';
4
+ import idGenerator from '../../tools/idGenerator';
5
+ import { IGood, InvoiceControllerState, LineAttributeType } from '..';
6
+ import { format15 } from '../../tools/calculate';
7
+
8
+ export default async function mergeDetails(state: InvoiceControllerState, selectedGoodIndex?: string[]) {
9
+ debugger;
10
+ if (state.goodsListState.editGood || !selectedGoodIndex || selectedGoodIndex.length < 2) return;
11
+
12
+ // const goodsList = state.goodsListState.selectedGoodIndex.map(e => state.goodsListState.goodsMap.get(e)).filter(e => !!e) as IGood[];
13
+ // const goodsList = state.goodsListState.goodsList.filter(e => state.goodsListState.selectedGoodIndex.indexOf(e.$index) >= 0)
14
+ const goodsList = state.goodsListState.goodsList.filter(e => selectedGoodIndex.indexOf(e.$index) >= 0);
15
+ if (goodsList.length < 2) return;
16
+
17
+ try {
18
+ // 创建合并后的商品对象
19
+ let sum: IGood = { $index: idGenerator(), lineAttribute: LineAttributeType.正常 }
20
+
21
+ // 存在税率不一样的明细,不能合并
22
+ await checkTaxTate(goodsList);
23
+
24
+ // 填充行明细信息
25
+ sum = await fillingInformationGood(goodsList, sum);
26
+
27
+ // 合并数量
28
+ sum.quantity = await mergeQuantity(goodsList);
29
+
30
+ // 合并金额(不含税)
31
+ sum.lineAmountExcludeTax = await mergeLineAmountExcludeTax(goodsList);
32
+
33
+ // 合并金额(含税)
34
+ sum.lineAmountIncludeTax = await mergeLineAmountIncludeTax(goodsList);
35
+
36
+ // 计算单价(不含税)
37
+ sum.priceExcludeTax = await calculatePriceExcludeTax(sum, state.calculatingDigits);
38
+
39
+ // 计算单价(含税)
40
+ sum.priceIncludeTax = await calculatePriceIncludeTax(sum, state.calculatingDigits);
41
+
42
+ // 计算税额
43
+ sum.taxAmount = chain(bignumber(sum.lineAmountIncludeTax)).subtract(bignumber(sum.lineAmountExcludeTax)).done().toNumber()
44
+
45
+ // 校验数据 是否数量和金额是否同号
46
+ await checkSameNumber(sum);
47
+
48
+ const p = state.goodsListState.goodsList.indexOf(goodsList[0]);
49
+ state.goodsListState.goodsList = state.goodsListState.goodsList.filter(e => selectedGoodIndex.indexOf(e.$index) < 0);
50
+ state.goodsListState.goodsList.splice(p, 0, sum);
51
+ state.goodsListState.goodsList = state.goodsListState.goodsList.filter(e => e.lineAmountExcludeTax !== 0);
52
+ state.goodsListState.goodsMap = new Map();
53
+ state.goodsListState.goodsList.forEach(e => { state.goodsListState.goodsMap.set(e.$index, e) });
54
+ state.goodsListState.selectedGoodIndex = [];
55
+ } catch (error: any) {
56
+ showError(error)
57
+ }
58
+ }
59
+
60
+ /** 计算单价(含税) */
61
+ async function calculatePriceIncludeTax(sum: IGood, calculatingDigits?: number) {
62
+ if (!sum.quantity) return undefined;
63
+ const value = chain(bignumber(sum.lineAmountIncludeTax)).divide(bignumber(sum.quantity)).done().toNumber()
64
+ return format15(value, calculatingDigits) || undefined;
65
+ }
66
+
67
+ /** 计算单价(不含税) */
68
+ async function calculatePriceExcludeTax(sum: IGood, calculatingDigits?: number) {
69
+ if (!sum.quantity) return undefined;
70
+ const value = format15(chain(bignumber(sum.lineAmountExcludeTax)).divide(bignumber(sum.quantity)).done().toNumber());
71
+ return format15(value, calculatingDigits) || undefined;;
72
+ }
73
+
74
+ /** 合并金额(含税) */
75
+ async function mergeLineAmountIncludeTax(goodsList: IGood[]) {
76
+ let sum = chain(bignumber(0));
77
+ goodsList.forEach(e => {
78
+ sum = sum.add(bignumber(e.lineAmountIncludeTax || 0))
79
+ })
80
+ return sum.done().toNumber();
81
+ }
82
+
83
+ /** 合并金额(不含税) */
84
+ async function mergeLineAmountExcludeTax(goodsList: IGood[]) {
85
+ let sum = chain(bignumber(0));
86
+ goodsList.forEach(e => {
87
+ sum = sum.add(bignumber(e.lineAmountExcludeTax || 0))
88
+ })
89
+ return sum.done().toNumber();
90
+ }
91
+
92
+ /** 合并数量 */
93
+ async function mergeQuantity(goodsList: IGood[]) {
94
+ let sum = chain(bignumber(0));
95
+ goodsList.forEach(e => {
96
+ sum = sum.add(bignumber(e.quantity || 0))
97
+ })
98
+ return sum.done().toNumber() || undefined;
99
+ }
100
+
101
+ /** 填充行明细信息 */
102
+ async function fillingInformationGood(goodsList: IGood[], sum: IGood) {
103
+ sum = { ...sum };
104
+
105
+ const goods = goodsList[findMaxIndex(goodsList.map(e => e.lineAmountIncludeTax || 0))]
106
+
107
+ return { ...goods, lineAttribute: LineAttributeType.正常 };
108
+ }
109
+
110
+ /** 存在税率不一样的明细,不能合并 */
111
+ async function checkTaxTate(goodsList: IGood[]) {
112
+ const tax = goodsList[0].taxRate;
113
+ for (let i = 1; i < goodsList.length; i++) {
114
+ if (tax !== goodsList[i].taxRate) {
115
+ throw new Error('存在税率不一样的明细,不能合并');
116
+ }
117
+ }
118
+ }
119
+
120
+ /** 校验数据 是否数量和金额是否同号 */
121
+ async function checkSameNumber(good: IGood) {
122
+ if (!good.quantity) return;
123
+
124
+ if (!good.lineAmountExcludeTax && good.lineAmountExcludeTax !== 0) {
125
+ const content = '金额不能为空';
126
+ message.error({ content, key: content });
127
+ throw new Error(content);
128
+ }
129
+
130
+ if (
131
+ good.quantity >= 0 && good.lineAmountExcludeTax >= 0 ||
132
+ good.lineAmountExcludeTax === 0 ||
133
+ good.quantity < 0 && good.lineAmountExcludeTax < 0
134
+ ) {
135
+ return;
136
+ } else {
137
+ const content = '合并失败,合并后“数量”和“金额”必须同时为正数或同时为负数。';
138
+ message.error({ content, key: content });
139
+ throw new Error(content);
140
+ }
141
+ }
142
+
143
+ /** 显示错误信息 */
144
+ function showError(error: Error) {
145
+ console.log(error);
146
+ message.error({ content: error.message, key: error.message });
147
+ }
148
+
149
+ /** 查询最大数据的索引 */
150
+ function findMaxIndex(arr: number[]): number {
151
+ if (arr.length === 0) {
152
+ throw new Error("数组为空");
153
+ }
154
+
155
+ let maxIndex = 0;
156
+ let maxValue = arr[0];
157
+
158
+ for (let i = arr.length - 1; i >= 0; i--) {
159
+ if (arr[i] > maxValue) {
160
+ maxValue = arr[i];
161
+ maxIndex = i;
162
+ }
163
+ }
164
+
165
+ return maxIndex;
166
166
  }
@@ -1,29 +1,29 @@
1
-
2
-
3
- import { IGood, InvoiceControllerState, LineAttributeType } from '..';
4
- import { chain, bignumber } from 'mathjs';
5
- import idGenerator from '../../tools/idGenerator';
6
-
7
- export default async function mergeDiscount(state: InvoiceControllerState) {
8
- if (state.goodsListState.goodsList.length <= 1 || state.goodsListState.editGood) return;
9
-
10
- const goodsList = state.goodsListState.goodsList.slice();
11
- for (let i = 0; i < goodsList.length; i++) {
12
- const good = goodsList[i];
13
- if (good.lineAttribute * 1 === LineAttributeType.被折扣行) {
14
- const sum: IGood = { ...good, $index: idGenerator(), lineAttribute: LineAttributeType.正常, discountGroup: undefined };
15
- const zk = goodsList[i + 1];
16
-
17
- sum.lineAmountExcludeTax = chain(bignumber(good.lineAmountExcludeTax)).subtract(bignumber(Math.abs(zk.lineAmountExcludeTax || 0))).done().toNumber();
18
- sum.lineAmountIncludeTax = chain(bignumber(good.lineAmountIncludeTax)).subtract(bignumber(Math.abs(zk.lineAmountIncludeTax || 0))).done().toNumber();
19
- sum.taxAmount = chain(bignumber(sum.lineAmountIncludeTax)).subtract(bignumber(sum.lineAmountExcludeTax)).done().toNumber();
20
- sum.quantity = good.quantity;
21
- if (sum.quantity) {
22
- sum.priceExcludeTax = chain(bignumber(sum.lineAmountExcludeTax)).divide(bignumber(sum.quantity)).done().toNumber();
23
- sum.priceIncludeTax = chain(bignumber(sum.lineAmountIncludeTax)).divide(bignumber(sum.quantity)).done().toNumber();
24
- }
25
- goodsList.splice(i, 2, sum);
26
- }
27
- }
28
- state.goodsListState.goodsList = goodsList;
1
+
2
+
3
+ import { IGood, InvoiceControllerState, LineAttributeType } from '..';
4
+ import { chain, bignumber } from 'mathjs';
5
+ import idGenerator from '../../tools/idGenerator';
6
+
7
+ export default async function mergeDiscount(state: InvoiceControllerState) {
8
+ if (state.goodsListState.goodsList.length <= 1 || state.goodsListState.editGood) return;
9
+
10
+ const goodsList = state.goodsListState.goodsList.slice();
11
+ for (let i = 0; i < goodsList.length; i++) {
12
+ const good = goodsList[i];
13
+ if (good.lineAttribute * 1 === LineAttributeType.被折扣行) {
14
+ const sum: IGood = { ...good, $index: idGenerator(), lineAttribute: LineAttributeType.正常, discountGroup: undefined };
15
+ const zk = goodsList[i + 1];
16
+
17
+ sum.lineAmountExcludeTax = chain(bignumber(good.lineAmountExcludeTax)).subtract(bignumber(Math.abs(zk.lineAmountExcludeTax || 0))).done().toNumber();
18
+ sum.lineAmountIncludeTax = chain(bignumber(good.lineAmountIncludeTax)).subtract(bignumber(Math.abs(zk.lineAmountIncludeTax || 0))).done().toNumber();
19
+ sum.taxAmount = chain(bignumber(sum.lineAmountIncludeTax)).subtract(bignumber(sum.lineAmountExcludeTax)).done().toNumber();
20
+ sum.quantity = good.quantity;
21
+ if (sum.quantity) {
22
+ sum.priceExcludeTax = chain(bignumber(sum.lineAmountExcludeTax)).divide(bignumber(sum.quantity)).done().toNumber();
23
+ sum.priceIncludeTax = chain(bignumber(sum.lineAmountIncludeTax)).divide(bignumber(sum.quantity)).done().toNumber();
24
+ }
25
+ goodsList.splice(i, 2, sum);
26
+ }
27
+ }
28
+ state.goodsListState.goodsList = goodsList;
29
29
  }
@@ -1,24 +1,24 @@
1
- import { InvoiceControllerState } from '../';
2
-
3
- /**
4
- * 保存正在编辑的货物
5
- */
6
- export default async (state: InvoiceControllerState) => {
7
-
8
- const editGood = state.goodsListState.editGood;
9
- const form = state.goodsListState.form;
10
-
11
- if (!editGood || !form || state.goodsListState.importGoods.isVisibleDrawer || state.calculatingField) return;
12
- if ((await validateFields(form)).err) return;
13
-
14
- state.goodsListState.goodsList = state.goodsListState.goodsList.map((e) =>
15
- e.$index === editGood.$index ? { ...e, ...editGood } : e,
16
- );
17
- state.goodsListState.editGood = undefined;
18
- };
19
-
20
- const validateFields = (form: any) => new Promise((resolve: (v: { err: any; values: any }) => void) => {
21
- form.validateFields(async (err: any, values: any) => {
22
- resolve({ err, values });
23
- });
24
- });
1
+ import { InvoiceControllerState } from '../';
2
+
3
+ /**
4
+ * 保存正在编辑的货物
5
+ */
6
+ export default async (state: InvoiceControllerState) => {
7
+
8
+ const editGood = state.goodsListState.editGood;
9
+ const form = state.goodsListState.form;
10
+
11
+ if (!editGood || !form || state.goodsListState.importGoods.isVisibleDrawer || state.calculatingField) return;
12
+ if ((await validateFields(form)).err) return;
13
+
14
+ state.goodsListState.goodsList = state.goodsListState.goodsList.map((e) =>
15
+ e.$index === editGood.$index ? { ...e, ...editGood } : e,
16
+ );
17
+ state.goodsListState.editGood = undefined;
18
+ };
19
+
20
+ const validateFields = (form: any) => new Promise((resolve: (v: { err: any; values: any }) => void) => {
21
+ form.validateFields(async (err: any, values: any) => {
22
+ resolve({ err, values });
23
+ });
24
+ });