kts-component-invoice-operate 3.2.83 → 3.2.84
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.
- package/dist/index.esm.js +42 -57
- package/dist/index.js +42 -57
- package/package.json +1 -1
- package/src/Invoice/_test/endowCode/index.tsx +58 -3
- package/src/Invoice/ui/default/GoodsList/hook/useRowSelection/index.tsx +4 -1
- package/src/Invoice/ui/default/GoodsList/ui/BulkMenu/hooks/useSalesDiscount/index.tsx +18 -19
package/dist/index.esm.js
CHANGED
|
@@ -14825,63 +14825,41 @@ function useSalesDiscount() {
|
|
|
14825
14825
|
var selectedGoodIndex = controller.useMemo(function (s) {
|
|
14826
14826
|
return s.goodsListState.selectedGoodIndex;
|
|
14827
14827
|
}, []);
|
|
14828
|
-
var
|
|
14829
|
-
return s.goodsListState.
|
|
14828
|
+
var goodsList = controller.useMemo(function (s) {
|
|
14829
|
+
return s.goodsListState.goodsList;
|
|
14830
14830
|
}, []);
|
|
14831
14831
|
var isSalesDiscount = controller.useMemo(function (s) {
|
|
14832
14832
|
return s.goodsListState.isSalesDiscount;
|
|
14833
14833
|
}, []);
|
|
14834
14834
|
var onClick = React.useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
14835
|
-
var selectedGood,
|
|
14836
|
-
|
|
14835
|
+
var selectedGood, concessions, discountGood, totalDiscoline, discolinesSum, totalAmount, discolines, surplus, i;
|
|
14837
14836
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
14838
14837
|
while (1) {
|
|
14839
14838
|
switch (_context3.prev = _context3.next) {
|
|
14840
14839
|
case 0:
|
|
14841
|
-
selectedGood =
|
|
14842
|
-
return
|
|
14843
|
-
});
|
|
14844
|
-
|
|
14845
|
-
if (!(selectedGood.filter(function (e) {
|
|
14846
|
-
return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折扣行 || (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.被折扣行;
|
|
14847
|
-
}).length > 0)) {
|
|
14848
|
-
_context3.next = 5;
|
|
14849
|
-
break;
|
|
14850
|
-
}
|
|
14851
|
-
|
|
14852
|
-
content = '不能选择折扣行和被折扣行';
|
|
14853
|
-
message.error({
|
|
14854
|
-
content: content,
|
|
14855
|
-
key: content
|
|
14840
|
+
selectedGood = goodsList.filter(function (e) {
|
|
14841
|
+
return e.lineAttribute === LineAttributeType$1.折让行 || e.lineAttribute === LineAttributeType$1.正常;
|
|
14856
14842
|
});
|
|
14857
|
-
return _context3.abrupt("return");
|
|
14858
|
-
|
|
14859
|
-
case 5:
|
|
14860
14843
|
/** 折让行 */
|
|
14861
|
-
concession = selectedGood.filter(function (e) {
|
|
14862
|
-
return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折让行;
|
|
14863
|
-
})[0];
|
|
14864
14844
|
|
|
14865
|
-
|
|
14866
|
-
|
|
14867
|
-
break;
|
|
14868
|
-
}
|
|
14869
|
-
|
|
14870
|
-
_content = '未选择折让行';
|
|
14871
|
-
message.error({
|
|
14872
|
-
content: _content,
|
|
14873
|
-
key: _content
|
|
14845
|
+
concessions = selectedGood.filter(function (e) {
|
|
14846
|
+
return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折让行;
|
|
14874
14847
|
});
|
|
14875
|
-
return _context3.abrupt("return");
|
|
14876
|
-
|
|
14877
|
-
case 10:
|
|
14878
14848
|
/** 准备添加折扣的货物列表 */
|
|
14849
|
+
|
|
14879
14850
|
discountGood = selectedGood.filter(function (e) {
|
|
14880
14851
|
return (e === null || e === void 0 ? void 0 : e.lineAttribute) !== LineAttributeType$1.折让行;
|
|
14881
14852
|
});
|
|
14882
14853
|
/** 折扣总金额 */
|
|
14883
14854
|
|
|
14884
|
-
totalDiscoline =
|
|
14855
|
+
totalDiscoline = function () {
|
|
14856
|
+
var sum = chain$1(bignumber(0));
|
|
14857
|
+
concessions.forEach(function (e) {
|
|
14858
|
+
sum = sum.add(bignumber(-1 * (e.lineAmountIncludeTax || 0)));
|
|
14859
|
+
});
|
|
14860
|
+
return sum;
|
|
14861
|
+
}();
|
|
14862
|
+
|
|
14885
14863
|
discolinesSum = chain$1(bignumber(0));
|
|
14886
14864
|
/** 总金额 */
|
|
14887
14865
|
|
|
@@ -14911,38 +14889,40 @@ function useSalesDiscount() {
|
|
|
14911
14889
|
|
|
14912
14890
|
i = 0;
|
|
14913
14891
|
|
|
14914
|
-
case
|
|
14892
|
+
case 9:
|
|
14915
14893
|
if (!(i < discolines.length)) {
|
|
14916
|
-
_context3.next =
|
|
14894
|
+
_context3.next = 17;
|
|
14917
14895
|
break;
|
|
14918
14896
|
}
|
|
14919
14897
|
|
|
14920
14898
|
if (!surplus.smaller(0.01).done()) {
|
|
14921
|
-
_context3.next =
|
|
14899
|
+
_context3.next = 12;
|
|
14922
14900
|
break;
|
|
14923
14901
|
}
|
|
14924
14902
|
|
|
14925
|
-
return _context3.abrupt("break",
|
|
14903
|
+
return _context3.abrupt("break", 17);
|
|
14926
14904
|
|
|
14927
|
-
case
|
|
14905
|
+
case 12:
|
|
14928
14906
|
discolines[i] = chain$1(bignumber(discolines[i])).add(bignumber(0.01)).done().toNumber();
|
|
14929
14907
|
surplus = surplus.subtract(bignumber(0.01));
|
|
14930
14908
|
|
|
14931
|
-
case
|
|
14909
|
+
case 14:
|
|
14932
14910
|
i++;
|
|
14933
|
-
_context3.next =
|
|
14911
|
+
_context3.next = 9;
|
|
14934
14912
|
break;
|
|
14935
14913
|
|
|
14936
|
-
case
|
|
14937
|
-
_context3.next =
|
|
14914
|
+
case 17:
|
|
14915
|
+
_context3.next = 19;
|
|
14938
14916
|
return controller.run( /*#__PURE__*/function () {
|
|
14939
14917
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(s) {
|
|
14940
14918
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
14941
14919
|
while (1) {
|
|
14942
14920
|
switch (_context.prev = _context.next) {
|
|
14943
14921
|
case 0:
|
|
14944
|
-
|
|
14945
|
-
|
|
14922
|
+
concessions.forEach(function (concession) {
|
|
14923
|
+
s.goodsListState.goodsList = s.goodsListState.goodsList.filter(function (e) {
|
|
14924
|
+
return e.$index !== concession.$index;
|
|
14925
|
+
});
|
|
14946
14926
|
});
|
|
14947
14927
|
|
|
14948
14928
|
case 1:
|
|
@@ -14958,8 +14938,8 @@ function useSalesDiscount() {
|
|
|
14958
14938
|
};
|
|
14959
14939
|
}());
|
|
14960
14940
|
|
|
14961
|
-
case
|
|
14962
|
-
_context3.next =
|
|
14941
|
+
case 19:
|
|
14942
|
+
_context3.next = 21;
|
|
14963
14943
|
return controller.run( /*#__PURE__*/function () {
|
|
14964
14944
|
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(s) {
|
|
14965
14945
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
@@ -14981,8 +14961,8 @@ function useSalesDiscount() {
|
|
|
14981
14961
|
};
|
|
14982
14962
|
}());
|
|
14983
14963
|
|
|
14984
|
-
case
|
|
14985
|
-
_context3.next =
|
|
14964
|
+
case 21:
|
|
14965
|
+
_context3.next = 23;
|
|
14986
14966
|
return controller.addGoodDiscountV2(discolines.map(function (e, i) {
|
|
14987
14967
|
var _discountGood$i;
|
|
14988
14968
|
|
|
@@ -14992,20 +14972,25 @@ function useSalesDiscount() {
|
|
|
14992
14972
|
};
|
|
14993
14973
|
}));
|
|
14994
14974
|
|
|
14995
|
-
case
|
|
14975
|
+
case 23:
|
|
14996
14976
|
case "end":
|
|
14997
14977
|
return _context3.stop();
|
|
14998
14978
|
}
|
|
14999
14979
|
}
|
|
15000
14980
|
}, _callee3);
|
|
15001
|
-
})), [controller, selectedGoodIndex,
|
|
14981
|
+
})), [controller, selectedGoodIndex, goodsList]);
|
|
14982
|
+
var disabled = React.useMemo(function () {
|
|
14983
|
+
return goodsList.filter(function (e) {
|
|
14984
|
+
return e.lineAttribute === LineAttributeType$1.折让行;
|
|
14985
|
+
}).length <= 0;
|
|
14986
|
+
}, [goodsList]);
|
|
15002
14987
|
var button = React.useMemo(function () {
|
|
15003
14988
|
if (!isSalesDiscount) return React.createElement(React.Fragment, null);
|
|
15004
14989
|
return React.createElement(Button, {
|
|
15005
14990
|
onClick: onClick,
|
|
15006
|
-
disabled:
|
|
14991
|
+
disabled: disabled
|
|
15007
14992
|
}, "\u9500\u552E\u6298\u8BA9");
|
|
15008
|
-
}, [selectedGoodIndex.length, isSalesDiscount]);
|
|
14993
|
+
}, [selectedGoodIndex.length, isSalesDiscount, disabled]);
|
|
15009
14994
|
return {
|
|
15010
14995
|
/** 按钮 */
|
|
15011
14996
|
button: button
|
package/dist/index.js
CHANGED
|
@@ -14835,63 +14835,41 @@ function useSalesDiscount() {
|
|
|
14835
14835
|
var selectedGoodIndex = controller.useMemo(function (s) {
|
|
14836
14836
|
return s.goodsListState.selectedGoodIndex;
|
|
14837
14837
|
}, []);
|
|
14838
|
-
var
|
|
14839
|
-
return s.goodsListState.
|
|
14838
|
+
var goodsList = controller.useMemo(function (s) {
|
|
14839
|
+
return s.goodsListState.goodsList;
|
|
14840
14840
|
}, []);
|
|
14841
14841
|
var isSalesDiscount = controller.useMemo(function (s) {
|
|
14842
14842
|
return s.goodsListState.isSalesDiscount;
|
|
14843
14843
|
}, []);
|
|
14844
14844
|
var onClick = React__default['default'].useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
14845
|
-
var selectedGood,
|
|
14846
|
-
|
|
14845
|
+
var selectedGood, concessions, discountGood, totalDiscoline, discolinesSum, totalAmount, discolines, surplus, i;
|
|
14847
14846
|
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
14848
14847
|
while (1) {
|
|
14849
14848
|
switch (_context3.prev = _context3.next) {
|
|
14850
14849
|
case 0:
|
|
14851
|
-
selectedGood =
|
|
14852
|
-
return
|
|
14853
|
-
});
|
|
14854
|
-
|
|
14855
|
-
if (!(selectedGood.filter(function (e) {
|
|
14856
|
-
return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折扣行 || (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.被折扣行;
|
|
14857
|
-
}).length > 0)) {
|
|
14858
|
-
_context3.next = 5;
|
|
14859
|
-
break;
|
|
14860
|
-
}
|
|
14861
|
-
|
|
14862
|
-
content = '不能选择折扣行和被折扣行';
|
|
14863
|
-
ktsComponentsAntdX3.message.error({
|
|
14864
|
-
content: content,
|
|
14865
|
-
key: content
|
|
14850
|
+
selectedGood = goodsList.filter(function (e) {
|
|
14851
|
+
return e.lineAttribute === LineAttributeType$1.折让行 || e.lineAttribute === LineAttributeType$1.正常;
|
|
14866
14852
|
});
|
|
14867
|
-
return _context3.abrupt("return");
|
|
14868
|
-
|
|
14869
|
-
case 5:
|
|
14870
14853
|
/** 折让行 */
|
|
14871
|
-
concession = selectedGood.filter(function (e) {
|
|
14872
|
-
return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折让行;
|
|
14873
|
-
})[0];
|
|
14874
14854
|
|
|
14875
|
-
|
|
14876
|
-
|
|
14877
|
-
break;
|
|
14878
|
-
}
|
|
14879
|
-
|
|
14880
|
-
_content = '未选择折让行';
|
|
14881
|
-
ktsComponentsAntdX3.message.error({
|
|
14882
|
-
content: _content,
|
|
14883
|
-
key: _content
|
|
14855
|
+
concessions = selectedGood.filter(function (e) {
|
|
14856
|
+
return (e === null || e === void 0 ? void 0 : e.lineAttribute) === LineAttributeType$1.折让行;
|
|
14884
14857
|
});
|
|
14885
|
-
return _context3.abrupt("return");
|
|
14886
|
-
|
|
14887
|
-
case 10:
|
|
14888
14858
|
/** 准备添加折扣的货物列表 */
|
|
14859
|
+
|
|
14889
14860
|
discountGood = selectedGood.filter(function (e) {
|
|
14890
14861
|
return (e === null || e === void 0 ? void 0 : e.lineAttribute) !== LineAttributeType$1.折让行;
|
|
14891
14862
|
});
|
|
14892
14863
|
/** 折扣总金额 */
|
|
14893
14864
|
|
|
14894
|
-
totalDiscoline =
|
|
14865
|
+
totalDiscoline = function () {
|
|
14866
|
+
var sum = mathjs.chain(mathjs.bignumber(0));
|
|
14867
|
+
concessions.forEach(function (e) {
|
|
14868
|
+
sum = sum.add(mathjs.bignumber(-1 * (e.lineAmountIncludeTax || 0)));
|
|
14869
|
+
});
|
|
14870
|
+
return sum;
|
|
14871
|
+
}();
|
|
14872
|
+
|
|
14895
14873
|
discolinesSum = mathjs.chain(mathjs.bignumber(0));
|
|
14896
14874
|
/** 总金额 */
|
|
14897
14875
|
|
|
@@ -14921,38 +14899,40 @@ function useSalesDiscount() {
|
|
|
14921
14899
|
|
|
14922
14900
|
i = 0;
|
|
14923
14901
|
|
|
14924
|
-
case
|
|
14902
|
+
case 9:
|
|
14925
14903
|
if (!(i < discolines.length)) {
|
|
14926
|
-
_context3.next =
|
|
14904
|
+
_context3.next = 17;
|
|
14927
14905
|
break;
|
|
14928
14906
|
}
|
|
14929
14907
|
|
|
14930
14908
|
if (!surplus.smaller(0.01).done()) {
|
|
14931
|
-
_context3.next =
|
|
14909
|
+
_context3.next = 12;
|
|
14932
14910
|
break;
|
|
14933
14911
|
}
|
|
14934
14912
|
|
|
14935
|
-
return _context3.abrupt("break",
|
|
14913
|
+
return _context3.abrupt("break", 17);
|
|
14936
14914
|
|
|
14937
|
-
case
|
|
14915
|
+
case 12:
|
|
14938
14916
|
discolines[i] = mathjs.chain(mathjs.bignumber(discolines[i])).add(mathjs.bignumber(0.01)).done().toNumber();
|
|
14939
14917
|
surplus = surplus.subtract(mathjs.bignumber(0.01));
|
|
14940
14918
|
|
|
14941
|
-
case
|
|
14919
|
+
case 14:
|
|
14942
14920
|
i++;
|
|
14943
|
-
_context3.next =
|
|
14921
|
+
_context3.next = 9;
|
|
14944
14922
|
break;
|
|
14945
14923
|
|
|
14946
|
-
case
|
|
14947
|
-
_context3.next =
|
|
14924
|
+
case 17:
|
|
14925
|
+
_context3.next = 19;
|
|
14948
14926
|
return controller.run( /*#__PURE__*/function () {
|
|
14949
14927
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(s) {
|
|
14950
14928
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
14951
14929
|
while (1) {
|
|
14952
14930
|
switch (_context.prev = _context.next) {
|
|
14953
14931
|
case 0:
|
|
14954
|
-
|
|
14955
|
-
|
|
14932
|
+
concessions.forEach(function (concession) {
|
|
14933
|
+
s.goodsListState.goodsList = s.goodsListState.goodsList.filter(function (e) {
|
|
14934
|
+
return e.$index !== concession.$index;
|
|
14935
|
+
});
|
|
14956
14936
|
});
|
|
14957
14937
|
|
|
14958
14938
|
case 1:
|
|
@@ -14968,8 +14948,8 @@ function useSalesDiscount() {
|
|
|
14968
14948
|
};
|
|
14969
14949
|
}());
|
|
14970
14950
|
|
|
14971
|
-
case
|
|
14972
|
-
_context3.next =
|
|
14951
|
+
case 19:
|
|
14952
|
+
_context3.next = 21;
|
|
14973
14953
|
return controller.run( /*#__PURE__*/function () {
|
|
14974
14954
|
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(s) {
|
|
14975
14955
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
@@ -14991,8 +14971,8 @@ function useSalesDiscount() {
|
|
|
14991
14971
|
};
|
|
14992
14972
|
}());
|
|
14993
14973
|
|
|
14994
|
-
case
|
|
14995
|
-
_context3.next =
|
|
14974
|
+
case 21:
|
|
14975
|
+
_context3.next = 23;
|
|
14996
14976
|
return controller.addGoodDiscountV2(discolines.map(function (e, i) {
|
|
14997
14977
|
var _discountGood$i;
|
|
14998
14978
|
|
|
@@ -15002,20 +14982,25 @@ function useSalesDiscount() {
|
|
|
15002
14982
|
};
|
|
15003
14983
|
}));
|
|
15004
14984
|
|
|
15005
|
-
case
|
|
14985
|
+
case 23:
|
|
15006
14986
|
case "end":
|
|
15007
14987
|
return _context3.stop();
|
|
15008
14988
|
}
|
|
15009
14989
|
}
|
|
15010
14990
|
}, _callee3);
|
|
15011
|
-
})), [controller, selectedGoodIndex,
|
|
14991
|
+
})), [controller, selectedGoodIndex, goodsList]);
|
|
14992
|
+
var disabled = React__default['default'].useMemo(function () {
|
|
14993
|
+
return goodsList.filter(function (e) {
|
|
14994
|
+
return e.lineAttribute === LineAttributeType$1.折让行;
|
|
14995
|
+
}).length <= 0;
|
|
14996
|
+
}, [goodsList]);
|
|
15012
14997
|
var button = React__default['default'].useMemo(function () {
|
|
15013
14998
|
if (!isSalesDiscount) return React__default['default'].createElement(React__default['default'].Fragment, null);
|
|
15014
14999
|
return React__default['default'].createElement(ktsComponentsAntdX3.Button, {
|
|
15015
15000
|
onClick: onClick,
|
|
15016
|
-
disabled:
|
|
15001
|
+
disabled: disabled
|
|
15017
15002
|
}, "\u9500\u552E\u6298\u8BA9");
|
|
15018
|
-
}, [selectedGoodIndex.length, isSalesDiscount]);
|
|
15003
|
+
}, [selectedGoodIndex.length, isSalesDiscount, disabled]);
|
|
15019
15004
|
return {
|
|
15020
15005
|
/** 按钮 */
|
|
15021
15006
|
button: button
|
package/package.json
CHANGED
|
@@ -65,6 +65,7 @@ class MyController1 extends Invoice.InvoiceController {
|
|
|
65
65
|
super()
|
|
66
66
|
this.state.model = 'default'
|
|
67
67
|
this.state.goodsListState.isMergeDetails = true;
|
|
68
|
+
this.state.goodsListState.isSalesDiscount = true;
|
|
68
69
|
this.state.goodsListState.drag.isStart = true;
|
|
69
70
|
this.state.goodsListState.columnshide = [];
|
|
70
71
|
}
|
|
@@ -92,6 +93,7 @@ class MyController2 extends Invoice.InvoiceController {
|
|
|
92
93
|
super()
|
|
93
94
|
this.state.model = 'prefab'
|
|
94
95
|
this.state.goodsListState.isMergeDetails = true;
|
|
96
|
+
this.state.goodsListState.isSalesDiscount = true;
|
|
95
97
|
this.state.goodsListState.drag.isStart = true;
|
|
96
98
|
this.state.goodsListState.columnshide = [];
|
|
97
99
|
}
|
|
@@ -155,7 +157,8 @@ const lines: any[] = [
|
|
|
155
157
|
"favouredPolicyName": null,
|
|
156
158
|
"zeroTaxRateFlag": null,
|
|
157
159
|
"referenceLines": null,
|
|
158
|
-
"version": 0
|
|
160
|
+
"version": 0,
|
|
161
|
+
taxAmount:1
|
|
159
162
|
},
|
|
160
163
|
{
|
|
161
164
|
"serialNumber": "1714491422279110656",
|
|
@@ -179,7 +182,8 @@ const lines: any[] = [
|
|
|
179
182
|
"favouredPolicyName": null,
|
|
180
183
|
"zeroTaxRateFlag": null,
|
|
181
184
|
"referenceLines": null,
|
|
182
|
-
"version": 0
|
|
185
|
+
"version": 0,
|
|
186
|
+
taxAmount:1
|
|
183
187
|
},
|
|
184
188
|
{
|
|
185
189
|
"serialNumber": "1714491422279110656",
|
|
@@ -203,7 +207,58 @@ const lines: any[] = [
|
|
|
203
207
|
"favouredPolicyName": null,
|
|
204
208
|
"zeroTaxRateFlag": null,
|
|
205
209
|
"referenceLines": null,
|
|
206
|
-
"version": 0
|
|
210
|
+
"version": 0,
|
|
211
|
+
taxAmount:1
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"serialNumber": "1714491422279110656",
|
|
215
|
+
"lineNumber": 3,
|
|
216
|
+
"taxCode": "3070401000000000000",
|
|
217
|
+
"taxName": "信息技术服务",
|
|
218
|
+
"specification": null,
|
|
219
|
+
"itemName": "技术服务费",
|
|
220
|
+
"itemCode": null,
|
|
221
|
+
"unit": "套",
|
|
222
|
+
"quantity": 1,
|
|
223
|
+
"taxRate": 0.06,
|
|
224
|
+
"priceExcludeTax": 2,
|
|
225
|
+
"priceIncludeTax": 2.12,
|
|
226
|
+
"amountTax": 0.12,
|
|
227
|
+
"lineAmountExcludeTax": 5,
|
|
228
|
+
"lineAmountIncludeTax": 5.3,
|
|
229
|
+
"lineAttribute": LineAttributeType.折让行,
|
|
230
|
+
"discountGroup": null,
|
|
231
|
+
"favouredPolicyMark": false,
|
|
232
|
+
"favouredPolicyName": null,
|
|
233
|
+
"zeroTaxRateFlag": null,
|
|
234
|
+
"referenceLines": null,
|
|
235
|
+
"version": 0,
|
|
236
|
+
taxAmount:1
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"serialNumber": "1714491422279110656",
|
|
240
|
+
"lineNumber": 3,
|
|
241
|
+
"taxCode": "3070401000000000000",
|
|
242
|
+
"taxName": "信息技术服务",
|
|
243
|
+
"specification": null,
|
|
244
|
+
"itemName": "技术服务费",
|
|
245
|
+
"itemCode": null,
|
|
246
|
+
"unit": "套",
|
|
247
|
+
"quantity": 1,
|
|
248
|
+
"taxRate": 0.06,
|
|
249
|
+
"priceExcludeTax": 2,
|
|
250
|
+
"priceIncludeTax": 2.12,
|
|
251
|
+
"amountTax": 0.12,
|
|
252
|
+
"lineAmountExcludeTax": 5,
|
|
253
|
+
"lineAmountIncludeTax": 5.3,
|
|
254
|
+
"lineAttribute": LineAttributeType.折让行,
|
|
255
|
+
"discountGroup": null,
|
|
256
|
+
"favouredPolicyMark": false,
|
|
257
|
+
"favouredPolicyName": null,
|
|
258
|
+
"zeroTaxRateFlag": null,
|
|
259
|
+
"referenceLines": null,
|
|
260
|
+
"version": 0,
|
|
261
|
+
taxAmount:1
|
|
207
262
|
}
|
|
208
263
|
]
|
|
209
264
|
|
|
@@ -40,7 +40,7 @@ export default () => {
|
|
|
40
40
|
await controller.pipeline(async s => {
|
|
41
41
|
const seeGoodsIndex = controller.getGoodsSearch(s.goodsListState.goodsList, s.goodsListState.searchValue, s.goodsListState.isTaxIncluded).map(e => e.$index)
|
|
42
42
|
|
|
43
|
-
s.goodsListState.selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e
|
|
43
|
+
s.goodsListState.selectedGoodIndex = s.goodsListState.selectedGoodIndex.filter(e => !seeGoodsIndex.some(t => e === t));
|
|
44
44
|
})()
|
|
45
45
|
} else {
|
|
46
46
|
await controller.pipeline(async s => {
|
|
@@ -84,12 +84,15 @@ export default () => {
|
|
|
84
84
|
await controller.pipeline(async s => {
|
|
85
85
|
s.goodsListState.selectedGoodIndex.forEach($index => {
|
|
86
86
|
const goods = s.goodsListState.goodsMap.get($index);
|
|
87
|
+
|
|
88
|
+
|
|
87
89
|
if (!goods || (goods.lineAttribute !== LineAttributeType.折扣行 && goods.lineAttribute !== LineAttributeType.被折扣行)) return;
|
|
88
90
|
|
|
89
91
|
// 数组位置
|
|
90
92
|
let t = s.goodsListState.goodsList.indexOf(goods);
|
|
91
93
|
goods.lineAttribute === LineAttributeType.折扣行 ? t-- : t++;
|
|
92
94
|
const i = s.goodsListState.goodsList[t].$index;
|
|
95
|
+
|
|
93
96
|
if (selected) {
|
|
94
97
|
if (s.goodsListState.selectedGoodIndex.indexOf(i) < 0) s.goodsListState.selectedGoodIndex = [...s.goodsListState.selectedGoodIndex, i];
|
|
95
98
|
} else {
|
|
@@ -12,32 +12,25 @@ export default function useSalesDiscount() {
|
|
|
12
12
|
|
|
13
13
|
const selectedGoodIndex = controller.useMemo(s => s.goodsListState.selectedGoodIndex, []);
|
|
14
14
|
|
|
15
|
-
const
|
|
15
|
+
const goodsList = controller.useMemo(s => s.goodsListState.goodsList, []);
|
|
16
16
|
|
|
17
17
|
const isSalesDiscount = controller.useMemo(s => s.goodsListState.isSalesDiscount, []);
|
|
18
18
|
|
|
19
19
|
const onClick = React.useCallback(async () => {
|
|
20
|
-
const selectedGood =
|
|
21
|
-
|
|
22
|
-
if (selectedGood.filter(e => e?.lineAttribute === LineAttributeType.折扣行 || e?.lineAttribute === LineAttributeType.被折扣行).length > 0) {
|
|
23
|
-
const content = '不能选择折扣行和被折扣行';
|
|
24
|
-
message.error({ content, key: content });
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
20
|
+
const selectedGood = goodsList.filter(e => e.lineAttribute === LineAttributeType.折让行 || e.lineAttribute === LineAttributeType.正常);
|
|
27
21
|
|
|
28
22
|
/** 折让行 */
|
|
29
|
-
const
|
|
30
|
-
if (!concession) {
|
|
31
|
-
const content = '未选择折让行';
|
|
32
|
-
message.error({ content, key: content })
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
23
|
+
const concessions = selectedGood.filter(e => e?.lineAttribute === LineAttributeType.折让行);
|
|
35
24
|
|
|
36
25
|
/** 准备添加折扣的货物列表 */
|
|
37
26
|
const discountGood = selectedGood.filter(e => e?.lineAttribute !== LineAttributeType.折让行);
|
|
38
27
|
|
|
39
28
|
/** 折扣总金额 */
|
|
40
|
-
const totalDiscoline =
|
|
29
|
+
const totalDiscoline = (() => {
|
|
30
|
+
let sum = chain(bignumber(0));
|
|
31
|
+
concessions.forEach(e => { sum = sum.add(bignumber(-1 * (e.lineAmountIncludeTax || 0))) })
|
|
32
|
+
return sum;
|
|
33
|
+
})()
|
|
41
34
|
|
|
42
35
|
let discolinesSum = chain(bignumber(0));
|
|
43
36
|
|
|
@@ -79,7 +72,11 @@ export default function useSalesDiscount() {
|
|
|
79
72
|
}
|
|
80
73
|
|
|
81
74
|
// 清楚折让行
|
|
82
|
-
await controller.run(async s => {
|
|
75
|
+
await controller.run(async s => {
|
|
76
|
+
concessions.forEach(concession => {
|
|
77
|
+
s.goodsListState.goodsList = s.goodsListState.goodsList.filter(e => e.$index !== concession.$index)
|
|
78
|
+
})
|
|
79
|
+
})
|
|
83
80
|
await controller.run(async s => { s.goodsListState.selectedGoodIndex = [] });
|
|
84
81
|
|
|
85
82
|
// 给一组货物添加折扣行
|
|
@@ -89,19 +86,21 @@ export default function useSalesDiscount() {
|
|
|
89
86
|
discolineAmountunt: e as number,
|
|
90
87
|
}
|
|
91
88
|
}))
|
|
92
|
-
}, [controller, selectedGoodIndex,
|
|
89
|
+
}, [controller, selectedGoodIndex, goodsList])
|
|
90
|
+
|
|
91
|
+
const disabled = React.useMemo(() => goodsList.filter(e => e.lineAttribute === LineAttributeType.折让行).length <= 0, [goodsList])
|
|
93
92
|
|
|
94
93
|
const button = React.useMemo(() => {
|
|
95
94
|
if (!isSalesDiscount) return <></>;
|
|
96
95
|
return (
|
|
97
96
|
<Button
|
|
98
97
|
onClick={onClick}
|
|
99
|
-
disabled={
|
|
98
|
+
disabled={disabled}
|
|
100
99
|
>
|
|
101
100
|
销售折让
|
|
102
101
|
</Button>
|
|
103
102
|
)
|
|
104
|
-
}, [selectedGoodIndex.length, isSalesDiscount])
|
|
103
|
+
}, [selectedGoodIndex.length, isSalesDiscount, disabled])
|
|
105
104
|
|
|
106
105
|
return {
|
|
107
106
|
/** 按钮 */
|