kts-component-invoice-operate 3.2.13 → 3.2.14

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 (186) 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 +5 -5
  8. package/dist/Invoice/ui/digtal/Stakeholder/index.d.ts +2 -0
  9. package/dist/index.esm.js +4714 -6575
  10. package/dist/index.js +4714 -6575
  11. package/docs/index.md +5 -5
  12. package/docs-dist/static/arrowDown.a1cbf0d8.svg +2 -2
  13. package/docs-dist/static/arrowUp.4c482054.svg +2 -2
  14. package/docs-dist/static/fork.5431267d.svg +11 -11
  15. package/docs-dist/static/plus.44013ce3.svg +11 -11
  16. package/docs-dist/static/plus.4fd1af30.svg +11 -11
  17. package/index.html +12 -12
  18. package/package.json +60 -60
  19. package/src/Invoice/Invoice-digtal/_test/disabled/index.tsx +38 -38
  20. package/src/Invoice/Invoice-digtal/_test/easiest/index.tsx +16 -16
  21. package/src/Invoice/Invoice-digtal/_test/header/index.tsx +17 -17
  22. package/src/Invoice/Invoice-digtal/_test/importGoods/index.tsx +470 -470
  23. package/src/Invoice/Invoice-digtal/_test/importStakeholder/index.tsx +17 -17
  24. package/src/Invoice/Invoice-digtal/_test/lineCredit/index.tsx +20 -20
  25. package/src/Invoice/Invoice-digtal/_test/prefab/index.tsx +150 -150
  26. package/src/Invoice/Invoice-digtal/_test/readOnly/index.tsx +41 -41
  27. package/src/Invoice/Invoice-digtal/_test/stakeholder/index.tsx +12 -12
  28. package/src/Invoice/Invoice-digtal/_test/typeSelection/index.tsx +29 -29
  29. package/src/Invoice/Invoice-digtal/index.md +30 -30
  30. package/src/Invoice/InvoiceController/InvoiceControllerForm/index.ts +94 -94
  31. package/src/Invoice/InvoiceController/InvoiceControllerState/BuyerState/index.tsx +88 -88
  32. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/EndowCode/index.tsx +93 -93
  33. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IColumnsReplenish/index.ts +10 -10
  34. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/IGood/index.ts +75 -75
  35. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ImportGoods/index.ts +80 -80
  36. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/LineAttributeType/index.ts +5 -5
  37. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/ProductComparison/index.ts +9 -9
  38. package/src/Invoice/InvoiceController/InvoiceControllerState/GoodsListState/index.ts +94 -94
  39. package/src/Invoice/InvoiceController/InvoiceControllerState/Stakeholder/index.ts +10 -10
  40. package/src/Invoice/InvoiceController/InvoiceControllerState/index.ts +56 -56
  41. package/src/Invoice/InvoiceController/fns/addGood.ts +11 -11
  42. package/src/Invoice/InvoiceController/fns/addGoodDiscount.ts +125 -125
  43. package/src/Invoice/InvoiceController/fns/addGoodDiscountV2.ts +84 -84
  44. package/src/Invoice/InvoiceController/fns/delGood.ts +41 -41
  45. package/src/Invoice/InvoiceController/fns/getGoodsSearch.ts +23 -23
  46. package/src/Invoice/InvoiceController/fns/saveEditGood.ts +24 -24
  47. package/src/Invoice/InvoiceController/fns/setEditGood.ts +16 -16
  48. package/src/Invoice/InvoiceController/fns/setGoods.ts +10 -10
  49. package/src/Invoice/InvoiceController/fns/updateInvoiceNo.ts +8 -8
  50. package/src/Invoice/InvoiceController/index.ts +65 -65
  51. package/src/Invoice/_test/buyerNameSearch/index.tsx +41 -41
  52. package/src/Invoice/_test/deduction/index.tsx +935 -935
  53. package/src/Invoice/_test/draft/index.tsx +40 -40
  54. package/src/Invoice/_test/easiest/index.tsx +5 -5
  55. package/src/Invoice/_test/endowCode/index.tsx +1095 -1095
  56. package/src/Invoice/_test/goodsMenuExpand/index.tsx +32 -32
  57. package/src/Invoice/_test/importBuyer/index.tsx +74 -74
  58. package/src/Invoice/_test/importGoods/index.tsx +515 -515
  59. package/src/Invoice/_test/invoiceType/index.tsx +59 -59
  60. package/src/Invoice/_test/isInvoiceNo/index.tsx +12 -12
  61. package/src/Invoice/_test/replaceHead/index.tsx +22 -22
  62. package/src/Invoice/_test/retrieveData/index.tsx +22 -22
  63. package/src/Invoice/_test/seller/index.tsx +28 -28
  64. package/src/Invoice/_test/setDataSource/index.tsx +22 -22
  65. package/src/Invoice/_test/unit/index.tsx +19 -19
  66. package/src/Invoice/index.less +29 -29
  67. package/src/Invoice/index.md +53 -53
  68. package/src/Invoice/index.tsx +165 -165
  69. package/src/Invoice/tools/calculate/index.ts +112 -112
  70. package/src/Invoice/tools/coolingFn/index.ts +17 -17
  71. package/src/Invoice/tools/evaluate/index.ts +7 -7
  72. package/src/Invoice/tools/idGenerator/index.ts +2 -2
  73. package/src/Invoice/tools/itemName/index.ts +55 -55
  74. package/src/Invoice/tools/lazyFn/index.ts +19 -19
  75. package/src/Invoice/tools/mounting/index.ts +13 -13
  76. package/src/Invoice/tools/strringFn/index.ts +40 -40
  77. package/src/Invoice/tools/useToGenerateId/index.ts +8 -8
  78. package/src/Invoice/ui/default/AddComparisonDrawer/index.tsx +149 -149
  79. package/src/Invoice/ui/default/Buyer/index.less +219 -219
  80. package/src/Invoice/ui/default/Buyer/index.tsx +114 -114
  81. package/src/Invoice/ui/default/Buyer/ui/BuyerNameInput/index.tsx +166 -166
  82. package/src/Invoice/ui/default/Buyer/ui/ImportBuyerButton/index.tsx +21 -21
  83. package/src/Invoice/ui/default/EndowCodeDrawer/index.less +8 -8
  84. package/src/Invoice/ui/default/EndowCodeDrawer/index.tsx +431 -431
  85. package/src/Invoice/ui/default/GoodsList/hook/useColumns/autoFillFn/index.ts +519 -519
  86. package/src/Invoice/ui/default/GoodsList/hook/useColumns/index.tsx +620 -620
  87. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  88. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +19 -19
  89. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  90. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  91. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  92. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  93. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  94. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  95. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  96. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  97. package/src/Invoice/ui/default/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  98. package/src/Invoice/ui/default/GoodsList/hook/useDeduction/index.tsx +24 -24
  99. package/src/Invoice/ui/default/GoodsList/hook/useOnRow/index.tsx +39 -39
  100. package/src/Invoice/ui/default/GoodsList/hook/useRowSelection/index.tsx +111 -111
  101. package/src/Invoice/ui/default/GoodsList/hook/useWindowClick/index.tsx +23 -23
  102. package/src/Invoice/ui/default/GoodsList/index.less +177 -177
  103. package/src/Invoice/ui/default/GoodsList/index.tsx +177 -177
  104. package/src/Invoice/ui/default/GoodsList/ui/AddRowButton/index.tsx +65 -65
  105. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.less +21 -21
  106. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +244 -244
  107. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  108. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +69 -69
  109. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +58 -58
  110. package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/index.tsx +37 -37
  111. package/src/Invoice/ui/default/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  112. package/src/Invoice/ui/default/GoodsList/ui/Search/index.less +10 -10
  113. package/src/Invoice/ui/default/GoodsList/ui/Search/index.tsx +50 -50
  114. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.less +18 -18
  115. package/src/Invoice/ui/default/GoodsList/ui/Statistics/index.tsx +109 -109
  116. package/src/Invoice/ui/default/GoodsList/ui/TableRow/index.tsx +27 -27
  117. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.less +38 -38
  118. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual/index.tsx +108 -108
  119. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.less +44 -44
  120. package/src/Invoice/ui/default/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  121. package/src/Invoice/ui/default/GoodsList/ui/TaxIncludedSwitch/index.tsx +30 -30
  122. package/src/Invoice/ui/default/ImportBuyerDrawer/index.tsx +75 -75
  123. package/src/Invoice/ui/default/ImportGoodsDrawer/index.tsx +170 -170
  124. package/src/Invoice/ui/default/InvoiceHeader/index.less +68 -68
  125. package/src/Invoice/ui/default/InvoiceHeader/index.tsx +246 -246
  126. package/src/Invoice/ui/default/Seller/index.less +113 -113
  127. package/src/Invoice/ui/default/Seller/index.tsx +98 -98
  128. package/src/Invoice/ui/default/Sign/index.less +14 -14
  129. package/src/Invoice/ui/default/Sign/index.tsx +71 -71
  130. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/autoFillFn/index.ts +519 -519
  131. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/index.tsx +635 -635
  132. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/svg/plus.svg +11 -11
  133. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.less +9 -9
  134. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/ItemNameInput/index.tsx +24 -24
  135. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowEditButton/index.tsx +30 -30
  136. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/_useAddComparison/index.tsx +43 -43
  137. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useAddDiscount/index.tsx +76 -76
  138. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useDelItem/index.tsx +41 -41
  139. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/hook/useEndowCode/index.tsx +34 -34
  140. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.less +13 -13
  141. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowMenu/index.tsx +98 -98
  142. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/RowSaveButton/index.tsx +14 -14
  143. package/src/Invoice/ui/digtal/GoodsList/hook/useColumns/ui/TitleText/index.tsx +20 -20
  144. package/src/Invoice/ui/digtal/GoodsList/hook/useOnRow/index.tsx +39 -39
  145. package/src/Invoice/ui/digtal/GoodsList/hook/useRowSelection/index.tsx +121 -121
  146. package/src/Invoice/ui/digtal/GoodsList/hook/useWindowClick/index.tsx +23 -23
  147. package/src/Invoice/ui/digtal/GoodsList/index.less +56 -56
  148. package/src/Invoice/ui/digtal/GoodsList/index.tsx +180 -180
  149. package/src/Invoice/ui/digtal/GoodsList/ui/AddRowButton/index.tsx +65 -65
  150. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/index.tsx +341 -341
  151. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useAddDiscountRowButton/svg/add.svg +11 -11
  152. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useCommodityComparisonButton/index.tsx +75 -75
  153. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useDelRowButton/index.tsx +50 -50
  154. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEmptyRefill/index.tsx +35 -35
  155. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useEndowCodeButton/index.tsx +82 -82
  156. package/src/Invoice/ui/digtal/GoodsList/ui/BulkMenu/hooks/useReselectInvoiceType/index.tsx +57 -57
  157. package/src/Invoice/ui/digtal/GoodsList/ui/DescribeSwitch/index.tsx +36 -36
  158. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.less +11 -11
  159. package/src/Invoice/ui/digtal/GoodsList/ui/Search/index.tsx +50 -50
  160. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.less +53 -53
  161. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/index.tsx +99 -99
  162. package/src/Invoice/ui/digtal/GoodsList/ui/Statistics/svg/fork.svg +11 -11
  163. package/src/Invoice/ui/digtal/GoodsList/ui/TableRow/index.tsx +27 -27
  164. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.less +38 -38
  165. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual/index.tsx +108 -108
  166. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual.o/index.less +44 -44
  167. package/src/Invoice/ui/digtal/GoodsList/ui/TableVirtual.o/index.tsx +96 -96
  168. package/src/Invoice/ui/digtal/GoodsList/ui/TaxIncludedSwitch/index.tsx +30 -30
  169. package/src/Invoice/ui/digtal/InvoiceHeader/index.less +57 -57
  170. package/src/Invoice/ui/digtal/InvoiceHeader/index.tsx +77 -77
  171. package/src/Invoice/ui/digtal/Sign/index.less +48 -48
  172. package/src/Invoice/ui/digtal/Sign/index.tsx +89 -89
  173. package/src/Invoice/ui/digtal/Stakeholder/index.less +56 -56
  174. package/src/Invoice/ui/digtal/Stakeholder/index.tsx +278 -269
  175. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowDown.svg +2 -2
  176. package/src/Invoice/ui/digtal/Stakeholder/svg/arrowUp.svg +2 -2
  177. package/src/Invoice/ui/digtal/Stakeholder/svg/plus.svg +11 -11
  178. package/src/InvoiceTypeModal/_test/easiest/index.tsx +31 -31
  179. package/src/InvoiceTypeModal/index.less +7 -7
  180. package/src/InvoiceTypeModal/index.md +5 -5
  181. package/src/InvoiceTypeModal/index.tsx +153 -153
  182. package/src/index.ts +9 -9
  183. package/tsconfig.json +31 -31
  184. package/typings.d.ts +3 -3
  185. package/yarn.e.lock +14331 -14331
  186. package/yarn.o.lock +14800 -14800
@@ -1,171 +1,171 @@
1
- import React from 'react';
2
- import { Drawer, Table } from 'kts-components-antd-x3';
3
- import Invoice from '../../..';
4
- import { updateUnitPriceExcludingTax, updateUnitPriceTax, dutyFree, format15 } from '../GoodsList/hook/useColumns/autoFillFn';
5
- import { countAmountIncludeTax } from '../../../tools/calculate'
6
- import { IGood } from '../../../InvoiceController';
7
- import evaluate from '../../../tools/evaluate';
8
-
9
- export default () => {
10
- const controller = Invoice.useInvoiceController();
11
-
12
- const visible = controller.useMemo(s => s.goodsListState.importGoods.isVisibleDrawer, []);
13
-
14
- const topExpand = controller.useMemo(s => s.goodsListState.importGoods.topExpand, []);
15
-
16
- const onClose = React.useCallback(() => {
17
- console.log('===> 关闭抽屉');
18
- controller.pipeline(async s => { s.goodsListState.importGoods.isVisibleDrawer = false })();
19
- }, [controller]);
20
-
21
- return (
22
- <Drawer
23
- title="商品列表"
24
- placement="right"
25
- // closable={false}
26
- destroyOnClose={true}
27
- width={983}
28
- onClose={onClose}
29
- visible={visible}
30
- >
31
- {topExpand &&
32
- <div style={{ marginBottom: 10 }} >
33
- {topExpand}
34
- </div>}
35
- <DrawerBody />
36
- </Drawer>
37
- );
38
- };
39
-
40
- const DrawerBody = () => {
41
- const controller = Invoice.useInvoiceController();
42
-
43
- const columns = controller.useMemo(s => s.goodsListState.importGoods.columns, []);
44
-
45
- const dataSource = controller.useMemo(s => s.goodsListState.importGoods.dataSource, []);
46
-
47
- const pagination = controller.useMemo(s => s.goodsListState.importGoods.pagination, []);
48
-
49
- // const [editGood] = React.useState(controller.state.goodsListState.editGood);
50
-
51
- React.useEffect(() => { controller.getGoodsList && controller.getGoodsList({ pagination: { current: 1 } }) }, [controller]);
52
-
53
- return (
54
- <Table
55
- bordered
56
- size="small"
57
- columns={columns}
58
- dataSource={dataSource}
59
- pagination={pagination}
60
- onChange={pagination => { controller.getGoodsList && controller.getGoodsList({ pagination }) }}
61
- onRow={record => {
62
- return {
63
- onClick: () => {
64
- controller.run(async s => {
65
- Object.keys(record).filter(e => !record[e] && record[e] !== 0).forEach(e => { delete record[e] });
66
-
67
- // 导入时校验函数
68
- if (await s.goodsListState.importGoods.verifyFn(record) === false) return;
69
-
70
- // 没用 被编辑的货物 和 form 就退出
71
- if (!s.goodsListState.editGood || !s.goodsListState.form) return;
72
-
73
- // 导入时清空之前输入的值,使用导入的单价和税率(参考税局系统)
74
- record.quantity = undefined;
75
- record.lineAmountExcludeTax = undefined;
76
- record.lineAmountIncludeTax = undefined;
77
-
78
- // 中间数据
79
- const between = { ...record };
80
- between.itemName = getItemName(record, s.goodsListState.editGood);
81
- between.itemNameOther = getItemNameOther(record, s.goodsListState.editGood);
82
-
83
- // 设置编辑货物
84
- const editGood: IGood = s.goodsListState.editGood = { ...s.goodsListState.editGood, ...between };
85
-
86
- if (editGood.taxRate) {
87
- editGood.taxRate = dutyFree(controller, editGood.taxRate, s.goodsListState.form, editGood)
88
- }
89
-
90
- if (`${editGood.priceIncludeTax}` === '0') {
91
- editGood.priceIncludeTax = undefined;
92
- editGood.priceExcludeTax = undefined;
93
- } else {
94
- editGood.priceExcludeTax = getPriceExcludeTax(editGood, record, s.calculatingDigits) as number;
95
- }
96
-
97
- if (editGood.quantity && editGood.priceIncludeTax) {
98
- editGood.lineAmountIncludeTax = countAmountIncludeTax(editGood.quantity, editGood.priceIncludeTax, s.calculatingDigits);
99
- }
100
-
101
- // 导入FORM里
102
- if (s.goodsListState.isMyShow) {
103
- s.goodsListState.form.setFieldsValue({
104
- ...editGood,
105
- itemName: editGood.itemNameSelf,
106
- itemModelName: editGood.itemModelNameSelf,
107
- });
108
- } else {
109
- s.goodsListState.form.setFieldsValue({
110
- ...editGood,
111
- });
112
- }
113
-
114
- s.goodsListState.importGoods.isVisibleDrawer = false;
115
- s.goodsListState.isTaxIncluded
116
- ? await updateUnitPriceExcludingTax(controller, s.goodsListState.form, record)
117
- : await updateUnitPriceTax(controller, s.goodsListState.form, record)
118
- })
119
- }
120
- };
121
- }}
122
- />
123
- );
124
- };
125
-
126
- /** 项目名称 */
127
- // const getItemName = (record: any) => {
128
- // return record.shorthand
129
- // ? `*${record.shorthand}*${record.itemName}`
130
- // : record.itemName;
131
- // };
132
-
133
- /** 货物单价,不含税 */
134
- const getPriceExcludeTax = (s: IGood, record: any, calculatingDigits?: number) => {
135
- if ((!s.taxRate && s.taxRate !== 0) || (!record.priceIncludeTax && record.priceIncludeTax !== 0)) return;
136
-
137
- // 单价(含税)/(1+税率) = 单价(不含税)
138
- return format15(evaluate(`${record.priceIncludeTax} / (1+${s.taxRate}/100)`), calculatingDigits);
139
- };
140
-
141
- // 获取我方名称
142
- const getItemName = (record: any, editGood: IGood) => {
143
-
144
- // let shorthand;
145
-
146
- // shorthand = record.shorthand;
147
- // if (shorthand) {
148
- // return `*${shorthand}*${record.itemName}`;
149
- // }
150
-
151
- // shorthand = getSN(editGood.itemName)?.shorthand;
152
- // if (shorthand) {
153
- // return `*${shorthand}*${record.itemNameSelf}`;
154
- // }
155
-
156
- return record.itemName;
157
- }
158
-
159
- // 获取他方名称
160
- const getItemNameOther = (record: any, editGood: IGood) => {
161
- // if (!editGood.itemName) return editGood.itemName;
162
-
163
- // let shorthand;
164
-
165
- // shorthand = record.shorthand;
166
- // if (shorthand) {
167
- // return `*${shorthand}*${record.itemNameSelf}`;
168
- // }
169
-
170
- return record.itemName;
1
+ import React from 'react';
2
+ import { Drawer, Table } from 'kts-components-antd-x3';
3
+ import Invoice from '../../..';
4
+ import { updateUnitPriceExcludingTax, updateUnitPriceTax, dutyFree, format15 } from '../GoodsList/hook/useColumns/autoFillFn';
5
+ import { countAmountIncludeTax } from '../../../tools/calculate'
6
+ import { IGood } from '../../../InvoiceController';
7
+ import evaluate from '../../../tools/evaluate';
8
+
9
+ export default () => {
10
+ const controller = Invoice.useInvoiceController();
11
+
12
+ const visible = controller.useMemo(s => s.goodsListState.importGoods.isVisibleDrawer, []);
13
+
14
+ const topExpand = controller.useMemo(s => s.goodsListState.importGoods.topExpand, []);
15
+
16
+ const onClose = React.useCallback(() => {
17
+ console.log('===> 关闭抽屉');
18
+ controller.pipeline(async s => { s.goodsListState.importGoods.isVisibleDrawer = false })();
19
+ }, [controller]);
20
+
21
+ return (
22
+ <Drawer
23
+ title="商品列表"
24
+ placement="right"
25
+ // closable={false}
26
+ destroyOnClose={true}
27
+ width={983}
28
+ onClose={onClose}
29
+ visible={visible}
30
+ >
31
+ {topExpand &&
32
+ <div style={{ marginBottom: 10 }} >
33
+ {topExpand}
34
+ </div>}
35
+ <DrawerBody />
36
+ </Drawer>
37
+ );
38
+ };
39
+
40
+ const DrawerBody = () => {
41
+ const controller = Invoice.useInvoiceController();
42
+
43
+ const columns = controller.useMemo(s => s.goodsListState.importGoods.columns, []);
44
+
45
+ const dataSource = controller.useMemo(s => s.goodsListState.importGoods.dataSource, []);
46
+
47
+ const pagination = controller.useMemo(s => s.goodsListState.importGoods.pagination, []);
48
+
49
+ // const [editGood] = React.useState(controller.state.goodsListState.editGood);
50
+
51
+ React.useEffect(() => { controller.getGoodsList && controller.getGoodsList({ pagination: { current: 1 } }) }, [controller]);
52
+
53
+ return (
54
+ <Table
55
+ bordered
56
+ size="small"
57
+ columns={columns}
58
+ dataSource={dataSource}
59
+ pagination={pagination}
60
+ onChange={pagination => { controller.getGoodsList && controller.getGoodsList({ pagination }) }}
61
+ onRow={record => {
62
+ return {
63
+ onClick: () => {
64
+ controller.run(async s => {
65
+ Object.keys(record).filter(e => !record[e] && record[e] !== 0).forEach(e => { delete record[e] });
66
+
67
+ // 导入时校验函数
68
+ if (await s.goodsListState.importGoods.verifyFn(record) === false) return;
69
+
70
+ // 没用 被编辑的货物 和 form 就退出
71
+ if (!s.goodsListState.editGood || !s.goodsListState.form) return;
72
+
73
+ // 导入时清空之前输入的值,使用导入的单价和税率(参考税局系统)
74
+ record.quantity = undefined;
75
+ record.lineAmountExcludeTax = undefined;
76
+ record.lineAmountIncludeTax = undefined;
77
+
78
+ // 中间数据
79
+ const between = { ...record };
80
+ between.itemName = getItemName(record, s.goodsListState.editGood);
81
+ between.itemNameOther = getItemNameOther(record, s.goodsListState.editGood);
82
+
83
+ // 设置编辑货物
84
+ const editGood: IGood = s.goodsListState.editGood = { ...s.goodsListState.editGood, ...between };
85
+
86
+ if (editGood.taxRate) {
87
+ editGood.taxRate = dutyFree(controller, editGood.taxRate, s.goodsListState.form, editGood)
88
+ }
89
+
90
+ if (`${editGood.priceIncludeTax}` === '0') {
91
+ editGood.priceIncludeTax = undefined;
92
+ editGood.priceExcludeTax = undefined;
93
+ } else {
94
+ editGood.priceExcludeTax = getPriceExcludeTax(editGood, record, s.calculatingDigits) as number;
95
+ }
96
+
97
+ if (editGood.quantity && editGood.priceIncludeTax) {
98
+ editGood.lineAmountIncludeTax = countAmountIncludeTax(editGood.quantity, editGood.priceIncludeTax, s.calculatingDigits);
99
+ }
100
+
101
+ // 导入FORM里
102
+ if (s.goodsListState.isMyShow) {
103
+ s.goodsListState.form.setFieldsValue({
104
+ ...editGood,
105
+ itemName: editGood.itemNameSelf,
106
+ itemModelName: editGood.itemModelNameSelf,
107
+ });
108
+ } else {
109
+ s.goodsListState.form.setFieldsValue({
110
+ ...editGood,
111
+ });
112
+ }
113
+
114
+ s.goodsListState.importGoods.isVisibleDrawer = false;
115
+ s.goodsListState.isTaxIncluded
116
+ ? await updateUnitPriceExcludingTax(controller, s.goodsListState.form, record)
117
+ : await updateUnitPriceTax(controller, s.goodsListState.form, record)
118
+ })
119
+ }
120
+ };
121
+ }}
122
+ />
123
+ );
124
+ };
125
+
126
+ /** 项目名称 */
127
+ // const getItemName = (record: any) => {
128
+ // return record.shorthand
129
+ // ? `*${record.shorthand}*${record.itemName}`
130
+ // : record.itemName;
131
+ // };
132
+
133
+ /** 货物单价,不含税 */
134
+ const getPriceExcludeTax = (s: IGood, record: any, calculatingDigits?: number) => {
135
+ if ((!s.taxRate && s.taxRate !== 0) || (!record.priceIncludeTax && record.priceIncludeTax !== 0)) return;
136
+
137
+ // 单价(含税)/(1+税率) = 单价(不含税)
138
+ return format15(evaluate(`${record.priceIncludeTax} / (1+${s.taxRate}/100)`), calculatingDigits);
139
+ };
140
+
141
+ // 获取我方名称
142
+ const getItemName = (record: any, editGood: IGood) => {
143
+
144
+ // let shorthand;
145
+
146
+ // shorthand = record.shorthand;
147
+ // if (shorthand) {
148
+ // return `*${shorthand}*${record.itemName}`;
149
+ // }
150
+
151
+ // shorthand = getSN(editGood.itemName)?.shorthand;
152
+ // if (shorthand) {
153
+ // return `*${shorthand}*${record.itemNameSelf}`;
154
+ // }
155
+
156
+ return record.itemName;
157
+ }
158
+
159
+ // 获取他方名称
160
+ const getItemNameOther = (record: any, editGood: IGood) => {
161
+ // if (!editGood.itemName) return editGood.itemName;
162
+
163
+ // let shorthand;
164
+
165
+ // shorthand = record.shorthand;
166
+ // if (shorthand) {
167
+ // return `*${shorthand}*${record.itemNameSelf}`;
168
+ // }
169
+
170
+ return record.itemName;
171
171
  }
@@ -1,69 +1,69 @@
1
- .kts-invoice-operate-invoice-header {
2
- padding : 20px 8px;
3
- background : #f6f7f9;
4
- position : relative;
5
- color : rgba(0, 0, 0, 0.85);
6
- font-weight: 500;
7
-
8
- label {
9
- margin-right: 5px;
10
- white-space : nowrap;
11
- }
12
-
13
- .invoice-header-title {
14
- top : 20px;
15
- left : 0;
16
- position : absolute;
17
- color : #e28b89;
18
- font-weight : 500;
19
- font-size : 22px;
20
- text-align : center;
21
- width : 100%;
22
- pointer-events: none;
23
- z-index : 1;
24
- }
25
-
26
- .invoice-header-no {
27
- display: flex;
28
-
29
- .ktsAnt3x-tag {
30
- margin-left: 10px;
31
- height : 24px;
32
- }
33
- }
34
-
35
- .invoice-header-type {
36
- flex : 1;
37
- text-align: right;
38
- }
39
-
40
-
41
- .invoice-header-property {
42
- margin: 20px 0 0;
43
-
44
- .ktsAnt3x-col {
45
- display : flex;
46
- flex-direction: inherit;
47
- padding-right : 20px;
48
-
49
- span {
50
- color: #999;
51
- }
52
- }
53
- }
54
-
55
- .invoice-header-property-fieldExpand {
56
- display : flex;
57
- margin : 0;
58
- padding : 0;
59
- list-style-type: none;
60
- gap : 10px;
61
- align-items : center;
62
-
63
- li {
64
- display : flex;
65
- align-items: center;
66
- flex : 1;
67
- }
68
- }
1
+ .kts-invoice-operate-invoice-header {
2
+ padding : 20px 8px;
3
+ background : #f6f7f9;
4
+ position : relative;
5
+ color : rgba(0, 0, 0, 0.85);
6
+ font-weight: 500;
7
+
8
+ label {
9
+ margin-right: 5px;
10
+ white-space : nowrap;
11
+ }
12
+
13
+ .invoice-header-title {
14
+ top : 20px;
15
+ left : 0;
16
+ position : absolute;
17
+ color : #e28b89;
18
+ font-weight : 500;
19
+ font-size : 22px;
20
+ text-align : center;
21
+ width : 100%;
22
+ pointer-events: none;
23
+ z-index : 1;
24
+ }
25
+
26
+ .invoice-header-no {
27
+ display: flex;
28
+
29
+ .ktsAnt3x-tag {
30
+ margin-left: 10px;
31
+ height : 24px;
32
+ }
33
+ }
34
+
35
+ .invoice-header-type {
36
+ flex : 1;
37
+ text-align: right;
38
+ }
39
+
40
+
41
+ .invoice-header-property {
42
+ margin: 20px 0 0;
43
+
44
+ .ktsAnt3x-col {
45
+ display : flex;
46
+ flex-direction: inherit;
47
+ padding-right : 20px;
48
+
49
+ span {
50
+ color: #999;
51
+ }
52
+ }
53
+ }
54
+
55
+ .invoice-header-property-fieldExpand {
56
+ display : flex;
57
+ margin : 0;
58
+ padding : 0;
59
+ list-style-type: none;
60
+ gap : 10px;
61
+ align-items : center;
62
+
63
+ li {
64
+ display : flex;
65
+ align-items: center;
66
+ flex : 1;
67
+ }
68
+ }
69
69
  }