@axelor/aos-mobile-stock 7.2.22 → 7.2.23
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/lib/components/templates/product/ProductCard/ProductCard.d.ts +3 -2
- package/lib/components/templates/product/ProductCard/ProductCard.js +31 -3
- package/lib/components/templates/product/ProductCard/ProductCard.js.map +1 -1
- package/lib/components/templates/product/ProductVariantCard/ProductVariantCard.d.ts +6 -10
- package/lib/components/templates/product/ProductVariantCard/ProductVariantCard.js +55 -8
- package/lib/components/templates/product/ProductVariantCard/ProductVariantCard.js.map +1 -1
- package/lib/features/asyncFunctions-index.d.ts +2 -2
- package/lib/features/asyncFunctions-index.js +2 -2
- package/lib/features/asyncFunctions-index.js.map +1 -1
- package/lib/features/productIndicatorsSlice.d.ts +0 -11
- package/lib/features/productIndicatorsSlice.js +0 -20
- package/lib/features/productIndicatorsSlice.js.map +1 -1
- package/lib/features/productVariantSlice.d.ts +0 -12
- package/lib/features/productVariantSlice.js +1 -29
- package/lib/features/productVariantSlice.js.map +1 -1
- package/lib/screens/products/ProductListScreen.js +2 -14
- package/lib/screens/products/ProductListScreen.js.map +1 -1
- package/lib/screens/products/ProductListVariantScreen.js +4 -16
- package/lib/screens/products/ProductListVariantScreen.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
interface ProductCardProps {
|
|
2
2
|
style?: any;
|
|
3
|
+
productId: number;
|
|
4
|
+
productVersion: number;
|
|
3
5
|
name: string;
|
|
4
6
|
code: string;
|
|
5
7
|
picture: any;
|
|
6
|
-
availableStock: number | null | undefined;
|
|
7
8
|
onPress: () => void;
|
|
8
9
|
}
|
|
9
|
-
declare const ProductCard: ({ style, name, code, picture,
|
|
10
|
+
declare const ProductCard: ({ style, productId, productVersion, name, code, picture, onPress, }: ProductCardProps) => JSX.Element;
|
|
10
11
|
export default ProductCard;
|
|
@@ -15,14 +15,42 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import React from 'react';
|
|
18
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
19
19
|
import { StyleSheet } from 'react-native';
|
|
20
20
|
import { ObjectCard, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
21
|
-
import { useMetafileUri, useTranslator } from '@axelor/aos-mobile-core';
|
|
22
|
-
|
|
21
|
+
import { useMetafileUri, useSelector, useTranslator, } from '@axelor/aos-mobile-core';
|
|
22
|
+
import { getProductStockIndicators } from '../../../../api';
|
|
23
|
+
const ProductCard = ({ style, productId, productVersion, name, code, picture, onPress, }) => {
|
|
23
24
|
const Colors = useThemeColor();
|
|
24
25
|
const I18n = useTranslator();
|
|
25
26
|
const formatMetaFile = useMetafileUri();
|
|
27
|
+
const isMounted = useRef(true);
|
|
28
|
+
const { activeCompany } = useSelector((state) => state.user.user);
|
|
29
|
+
const [availableStock, setAvailableStock] = useState(null);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
isMounted.current = true;
|
|
32
|
+
if (productId != null) {
|
|
33
|
+
getProductStockIndicators({
|
|
34
|
+
productId: productId,
|
|
35
|
+
version: productVersion,
|
|
36
|
+
companyId: activeCompany?.id,
|
|
37
|
+
stockLocationId: null,
|
|
38
|
+
})
|
|
39
|
+
.then((res) => {
|
|
40
|
+
if (isMounted.current) {
|
|
41
|
+
setAvailableStock(res?.data?.object?.availableStock);
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
.catch(() => {
|
|
45
|
+
if (isMounted.current) {
|
|
46
|
+
setAvailableStock(null);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return () => {
|
|
51
|
+
isMounted.current = false;
|
|
52
|
+
};
|
|
53
|
+
}, [activeCompany?.id, productId, productVersion]);
|
|
26
54
|
return (<ObjectCard showArrow={true} onPress={onPress} style={style} image={{
|
|
27
55
|
generalStyle: styles.imageStyle,
|
|
28
56
|
imageSize: styles.imageSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductCard.js","sourceRoot":"","sources":["../../../../../src/components/templates/product/ProductCard/ProductCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductCard.js","sourceRoot":"","sources":["../../../../../src/components/templates/product/ProductCard/ProductCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
interface ProductAttribut {
|
|
2
|
-
attrName: string;
|
|
3
|
-
attrValue: string;
|
|
4
|
-
priceExtra: number;
|
|
5
|
-
applicationPriceSelect: number;
|
|
6
|
-
}
|
|
7
1
|
interface ProductVariantCardProps {
|
|
8
2
|
style?: any;
|
|
9
3
|
name: string;
|
|
10
4
|
code: string;
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
productId: number;
|
|
6
|
+
productVersion: number;
|
|
7
|
+
availabiltyData: {
|
|
8
|
+
stockLocationId: number;
|
|
9
|
+
companyId: number;
|
|
13
10
|
};
|
|
14
11
|
picture?: any;
|
|
15
|
-
stockAvailability: number;
|
|
16
12
|
onPress: () => void;
|
|
17
13
|
}
|
|
18
|
-
declare const ProductVariantCard: ({ style, name, code,
|
|
14
|
+
declare const ProductVariantCard: ({ style, name, code, productId, productVersion, availabiltyData, picture, onPress, }: ProductVariantCardProps) => JSX.Element;
|
|
19
15
|
export default ProductVariantCard;
|
|
@@ -15,23 +15,70 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import React, { useCallback } from 'react';
|
|
18
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
19
19
|
import { StyleSheet } from 'react-native';
|
|
20
20
|
import { ObjectCard, useDigitFormat, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
21
21
|
import { useMetafileUri, useTranslator } from '@axelor/aos-mobile-core';
|
|
22
22
|
import Product from '../../../../types/product';
|
|
23
|
-
|
|
23
|
+
import { getProductStockIndicators, fetchVariantAttributes, } from '../../../../api';
|
|
24
|
+
const ProductVariantCard = ({ style, name, code, productId, productVersion, availabiltyData, picture, onPress, }) => {
|
|
24
25
|
const Colors = useThemeColor();
|
|
25
26
|
const I18n = useTranslator();
|
|
26
27
|
const formatMetaFile = useMetafileUri();
|
|
27
28
|
const formatNumber = useDigitFormat();
|
|
29
|
+
const isMounted = useRef(true);
|
|
30
|
+
const [attributes, setAttributesList] = useState();
|
|
31
|
+
const [availableStock, setAvailableStock] = useState(null);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
isMounted.current = true;
|
|
34
|
+
return () => {
|
|
35
|
+
isMounted.current = false;
|
|
36
|
+
};
|
|
37
|
+
}, []);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (productId != null) {
|
|
40
|
+
fetchVariantAttributes({
|
|
41
|
+
productVariantId: productId,
|
|
42
|
+
version: productVersion,
|
|
43
|
+
})
|
|
44
|
+
.then((res) => {
|
|
45
|
+
if (isMounted.current) {
|
|
46
|
+
setAttributesList(res?.data?.object?.attributes);
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
.catch(() => {
|
|
50
|
+
if (isMounted.current) {
|
|
51
|
+
setAttributesList(null);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}, [availabiltyData, productId, productVersion]);
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
if (productId != null) {
|
|
58
|
+
getProductStockIndicators({
|
|
59
|
+
productId: productId,
|
|
60
|
+
version: productVersion,
|
|
61
|
+
...availabiltyData,
|
|
62
|
+
})
|
|
63
|
+
.then((res) => {
|
|
64
|
+
if (isMounted.current) {
|
|
65
|
+
setAvailableStock(res?.data?.object?.availableStock);
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
.catch(() => {
|
|
69
|
+
if (isMounted.current) {
|
|
70
|
+
setAvailableStock(null);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}, [availabiltyData, productId, productVersion]);
|
|
28
75
|
const renderAttrItems = useCallback(() => {
|
|
29
|
-
if (!Array.isArray(
|
|
76
|
+
if (!Array.isArray(attributes)) {
|
|
30
77
|
return null;
|
|
31
78
|
}
|
|
32
79
|
let items = [];
|
|
33
|
-
for (let index = 0; index <
|
|
34
|
-
const attr =
|
|
80
|
+
for (let index = 0; index < attributes.length; index++) {
|
|
81
|
+
const attr = attributes[index];
|
|
35
82
|
if (attr != null) {
|
|
36
83
|
items.push({
|
|
37
84
|
numberOfLines: null,
|
|
@@ -43,7 +90,7 @@ const ProductVariantCard = ({ style, name, code, attributesList, picture, stockA
|
|
|
43
90
|
}
|
|
44
91
|
}
|
|
45
92
|
return items?.length > 0 ? { items } : null;
|
|
46
|
-
}, [I18n,
|
|
93
|
+
}, [I18n, attributes, formatNumber]);
|
|
47
94
|
return (<ObjectCard onPress={onPress} style={style} showArrow={true} image={{
|
|
48
95
|
defaultIconSize: 40,
|
|
49
96
|
imageSize: styles.imageSize,
|
|
@@ -58,10 +105,10 @@ const ProductVariantCard = ({ style, name, code, attributesList, picture, stockA
|
|
|
58
105
|
}} sideBadges={{
|
|
59
106
|
items: [
|
|
60
107
|
{
|
|
61
|
-
displayText:
|
|
108
|
+
displayText: availableStock > 0
|
|
62
109
|
? I18n.t('Stock_Available')
|
|
63
110
|
: I18n.t('Stock_Unavailable'),
|
|
64
|
-
color:
|
|
111
|
+
color: availableStock > 0 ? Colors.successColor : Colors.errorColor,
|
|
65
112
|
},
|
|
66
113
|
],
|
|
67
114
|
}} lowerTexts={renderAttrItems()}/>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductVariantCard.js","sourceRoot":"","sources":["../../../../../src/components/templates/product/ProductVariantCard/ProductVariantCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductVariantCard.js","sourceRoot":"","sources":["../../../../../src/components/templates/product/ProductVariantCard/ProductVariantCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,10 @@ export { createInternalMove, fetchInternalMove, realizeInternalMove, searchInter
|
|
|
5
5
|
export { addTrackingNumber as addTrackingNumberToInventoryLine, createNewInventoryLine, fetchInventoryLine, fetchInventoryLines, updateInventoryLine, } from './inventoryLineSlice';
|
|
6
6
|
export { fetchInventoryById, modifyDescription, searchInventories, updateInventory, } from './inventorySlice';
|
|
7
7
|
export { filterClients, filterSuppliers } from './partnerSlice';
|
|
8
|
-
export {
|
|
8
|
+
export { fetchProductDistribution, fetchProductIndicators, } from './productIndicatorsSlice';
|
|
9
9
|
export { fetchProductWithId, searchProducts, updateProductLocker, } from './productSlice';
|
|
10
10
|
export { searchProductTrackingNumber } from './productTrackingNumberSlice';
|
|
11
|
-
export {
|
|
11
|
+
export { fetchProductVariants } from './productVariantSlice';
|
|
12
12
|
export { getRacks } from './racksListSlice';
|
|
13
13
|
export { fetchStockConfig, fetchSupplychainConfigForStockApp, } from './stockAppConfigSlice';
|
|
14
14
|
export { fetchStockCorrectionReasons } from './stockCorrectionReasonSlice';
|
|
@@ -22,10 +22,10 @@ export { createInternalMove, fetchInternalMove, realizeInternalMove, searchInter
|
|
|
22
22
|
export { addTrackingNumber as addTrackingNumberToInventoryLine, createNewInventoryLine, fetchInventoryLine, fetchInventoryLines, updateInventoryLine, } from './inventoryLineSlice';
|
|
23
23
|
export { fetchInventoryById, modifyDescription, searchInventories, updateInventory, } from './inventorySlice';
|
|
24
24
|
export { filterClients, filterSuppliers } from './partnerSlice';
|
|
25
|
-
export {
|
|
25
|
+
export { fetchProductDistribution, fetchProductIndicators, } from './productIndicatorsSlice';
|
|
26
26
|
export { fetchProductWithId, searchProducts, updateProductLocker, } from './productSlice';
|
|
27
27
|
export { searchProductTrackingNumber } from './productTrackingNumberSlice';
|
|
28
|
-
export {
|
|
28
|
+
export { fetchProductVariants } from './productVariantSlice';
|
|
29
29
|
export { getRacks } from './racksListSlice';
|
|
30
30
|
export { fetchStockConfig, fetchSupplychainConfigForStockApp, } from './stockAppConfigSlice';
|
|
31
31
|
export { fetchStockCorrectionReasons } from './stockCorrectionReasonSlice';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncFunctions-index.js","sourceRoot":"","sources":["../../src/features/asyncFunctions-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,iBAAiB,IAAI,uCAAuC,EAC5D,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,UAAU,IAAI,0BAA0B,EACxC,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,IAAI,mCAAmC,EACxD,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,IAAI,gCAAgC,EACrD,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"asyncFunctions-index.js","sourceRoot":"","sources":["../../src/features/asyncFunctions-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EACL,iBAAiB,IAAI,uCAAuC,EAC5D,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,UAAU,IAAI,0BAA0B,EACxC,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,IAAI,mCAAmC,EACxD,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,IAAI,gCAAgC,EACrD,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,aAAa,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,2BAA2B,EAAC,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAC,oBAAoB,EAAC,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,iCAAiC,GAClC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,2BAA2B,EAAC,MAAM,8BAA8B,CAAC;AACzE,OAAO,EACL,gCAAgC,EAChC,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,IAAI,yBAAyB,EACvC,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC"}
|
|
@@ -8,16 +8,6 @@ export const fetchProductIndicators: import("@reduxjs/toolkit").AsyncThunk<any,
|
|
|
8
8
|
fulfilledMeta?: unknown;
|
|
9
9
|
rejectedMeta?: unknown;
|
|
10
10
|
}>;
|
|
11
|
-
export const fetchProductsAvailability: import("@reduxjs/toolkit").AsyncThunk<any[], void, {
|
|
12
|
-
state?: unknown;
|
|
13
|
-
dispatch?: import("redux").Dispatch<import("redux").AnyAction>;
|
|
14
|
-
extra?: unknown;
|
|
15
|
-
rejectValue?: unknown;
|
|
16
|
-
serializedErrorType?: unknown;
|
|
17
|
-
pendingMeta?: unknown;
|
|
18
|
-
fulfilledMeta?: unknown;
|
|
19
|
-
rejectedMeta?: unknown;
|
|
20
|
-
}>;
|
|
21
11
|
export const fetchProductDistribution: import("@reduxjs/toolkit").AsyncThunk<any[], void, {
|
|
22
12
|
state?: unknown;
|
|
23
13
|
dispatch?: import("redux").Dispatch<import("redux").AnyAction>;
|
|
@@ -32,6 +22,5 @@ export const productIndicatorsReducer: import("redux").Reducer<{
|
|
|
32
22
|
loading: boolean;
|
|
33
23
|
loadingProductIndicators: boolean;
|
|
34
24
|
productIndicators: {};
|
|
35
|
-
listAvailabilty: any[];
|
|
36
25
|
listAvailabiltyDistribution: any[];
|
|
37
26
|
}>;
|
|
@@ -39,18 +39,6 @@ var getProductAvailabilty = async (data, { getState }) => {
|
|
|
39
39
|
async function fetchData(data, { getState }) {
|
|
40
40
|
return await getProductAvailabilty(data, { getState });
|
|
41
41
|
}
|
|
42
|
-
export const fetchProductsAvailability = createAsyncThunk('product/fetchProductsAvailability', async function (data, { getState }) {
|
|
43
|
-
let promises = [];
|
|
44
|
-
data.productList.forEach(product => {
|
|
45
|
-
promises.push(fetchData({
|
|
46
|
-
productId: product.id,
|
|
47
|
-
companyId: data.companyId,
|
|
48
|
-
stockLocationId: data.stockLocationId,
|
|
49
|
-
version: product.version,
|
|
50
|
-
}, { getState }));
|
|
51
|
-
});
|
|
52
|
-
return Promise.all(promises);
|
|
53
|
-
});
|
|
54
42
|
export const fetchProductDistribution = createAsyncThunk('product/fetchProductDistribution', async function (data, { getState }) {
|
|
55
43
|
let promises = [];
|
|
56
44
|
data.stockLocationList.forEach(stockLocation => {
|
|
@@ -67,7 +55,6 @@ const initialState = {
|
|
|
67
55
|
loading: false,
|
|
68
56
|
loadingProductIndicators: false,
|
|
69
57
|
productIndicators: {},
|
|
70
|
-
listAvailabilty: [],
|
|
71
58
|
listAvailabiltyDistribution: [],
|
|
72
59
|
};
|
|
73
60
|
const productIndicators = createSlice({
|
|
@@ -81,13 +68,6 @@ const productIndicators = createSlice({
|
|
|
81
68
|
state.loadingProductIndicators = false;
|
|
82
69
|
state.productIndicators = action.payload;
|
|
83
70
|
});
|
|
84
|
-
builder.addCase(fetchProductsAvailability.pending, state => {
|
|
85
|
-
state.loading = true;
|
|
86
|
-
});
|
|
87
|
-
builder.addCase(fetchProductsAvailability.fulfilled, (state, action) => {
|
|
88
|
-
state.loading = false;
|
|
89
|
-
state.listAvailabilty = action.payload;
|
|
90
|
-
});
|
|
91
71
|
builder.addCase(fetchProductDistribution.pending, state => {
|
|
92
72
|
state.loading = true;
|
|
93
73
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"productIndicatorsSlice.js","sourceRoot":"","sources":["../../src/features/productIndicatorsSlice.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,yBAAyB,EAAC,MAAM,oBAAoB,CAAC;AAE7D,MAAM,CAAC,MAAM,sBAAsB,GAAG,gBAAgB,CACpD,gCAAgC,EAChC,KAAK,WAAW,IAAI,EAAE,EAAC,QAAQ,EAAC;IAC9B,OAAO,cAAc,CAAC;QACpB,aAAa,EAAE,yBAAyB;QACxC,IAAI;QACJ,MAAM,EAAE,+CAA+C;QACvD,QAAQ;QACR,eAAe,EAAE,EAAC,eAAe,EAAE,KAAK,EAAC;KAC1C,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEF,IAAI,qBAAqB,GAAG,KAAK,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAC,EAAE,EAAE;IACrD,OAAO,cAAc,CAAC;QACpB,aAAa,EAAE,yBAAyB;QACxC,IAAI;QACJ,MAAM,EAAE,+CAA+C;QACvD,QAAQ;QACR,eAAe,EAAE,EAAC,eAAe,EAAE,KAAK,EAAC;KAC1C,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,KAAK,UAAU,SAAS,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAC;IACvC,OAAO,MAAM,qBAAqB,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"productIndicatorsSlice.js","sourceRoot":"","sources":["../../src/features/productIndicatorsSlice.js"],"names":[],"mappings":"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"}
|
|
@@ -8,21 +8,9 @@ export const fetchProductVariants: import("@reduxjs/toolkit").AsyncThunk<any, vo
|
|
|
8
8
|
fulfilledMeta?: unknown;
|
|
9
9
|
rejectedMeta?: unknown;
|
|
10
10
|
}>;
|
|
11
|
-
export const fetchProductsAttributes: import("@reduxjs/toolkit").AsyncThunk<any[], void, {
|
|
12
|
-
state?: unknown;
|
|
13
|
-
dispatch?: import("redux").Dispatch<import("redux").AnyAction>;
|
|
14
|
-
extra?: unknown;
|
|
15
|
-
rejectValue?: unknown;
|
|
16
|
-
serializedErrorType?: unknown;
|
|
17
|
-
pendingMeta?: unknown;
|
|
18
|
-
fulfilledMeta?: unknown;
|
|
19
|
-
rejectedMeta?: unknown;
|
|
20
|
-
}>;
|
|
21
11
|
export const productVariantReducer: import("redux").Reducer<{
|
|
22
12
|
loadingProductList: boolean;
|
|
23
13
|
moreLoading: boolean;
|
|
24
14
|
isListEnd: boolean;
|
|
25
15
|
productListVariables: any[];
|
|
26
|
-
loading: boolean;
|
|
27
|
-
listProductsAttributes: any[];
|
|
28
16
|
}>;
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';
|
|
19
19
|
import { generateInifiniteScrollCases, handlerApiCall, } from '@axelor/aos-mobile-core';
|
|
20
|
-
import {
|
|
20
|
+
import { fetchVariants } from '../api/product-api';
|
|
21
21
|
export const fetchProductVariants = createAsyncThunk('product/fetchProductVariant', async function (productVariantId, { getState }) {
|
|
22
22
|
return handlerApiCall({
|
|
23
23
|
fetchFunction: fetchVariants,
|
|
@@ -27,32 +27,11 @@ export const fetchProductVariants = createAsyncThunk('product/fetchProductVarian
|
|
|
27
27
|
responseOptions: { isArrayResponse: true },
|
|
28
28
|
});
|
|
29
29
|
});
|
|
30
|
-
var getProductAttributes = async (data, { getState }) => {
|
|
31
|
-
return handlerApiCall({
|
|
32
|
-
fetchFunction: fetchVariantAttributes,
|
|
33
|
-
data,
|
|
34
|
-
action: 'Stock_SliceAction_FetchProductVariantAttributes',
|
|
35
|
-
getState,
|
|
36
|
-
responseOptions: { isArrayResponse: true },
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
async function fetchData(data, { getState }) {
|
|
40
|
-
return await getProductAttributes(data, { getState });
|
|
41
|
-
}
|
|
42
|
-
export const fetchProductsAttributes = createAsyncThunk('product/fetchProductsAttributes', async function (data, { getState }) {
|
|
43
|
-
let promises = [];
|
|
44
|
-
data.productList.forEach(product => {
|
|
45
|
-
promises.push(fetchData({ productVariantId: product.id, version: product.version }, { getState }));
|
|
46
|
-
});
|
|
47
|
-
return Promise.all(promises);
|
|
48
|
-
});
|
|
49
30
|
const initialState = {
|
|
50
31
|
loadingProductList: false,
|
|
51
32
|
moreLoading: false,
|
|
52
33
|
isListEnd: false,
|
|
53
34
|
productListVariables: [],
|
|
54
|
-
loading: false,
|
|
55
|
-
listProductsAttributes: [],
|
|
56
35
|
};
|
|
57
36
|
const productSlice = createSlice({
|
|
58
37
|
name: 'productVariant',
|
|
@@ -64,13 +43,6 @@ const productSlice = createSlice({
|
|
|
64
43
|
isListEnd: 'isListEnd',
|
|
65
44
|
list: 'productListVariables',
|
|
66
45
|
});
|
|
67
|
-
builder.addCase(fetchProductsAttributes.pending, (state, action) => {
|
|
68
|
-
state.loading = true;
|
|
69
|
-
});
|
|
70
|
-
builder.addCase(fetchProductsAttributes.fulfilled, (state, action) => {
|
|
71
|
-
state.loading = false;
|
|
72
|
-
state.listProductsAttributes = action.payload;
|
|
73
|
-
});
|
|
74
46
|
},
|
|
75
47
|
});
|
|
76
48
|
export const productVariantReducer = productSlice.reducer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"productVariantSlice.js","sourceRoot":"","sources":["../../src/features/productVariantSlice.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACL,4BAA4B,EAC5B,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"productVariantSlice.js","sourceRoot":"","sources":["../../src/features/productVariantSlice.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,gBAAgB,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EACL,4BAA4B,EAC5B,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAClD,6BAA6B,EAC7B,KAAK,WAAW,gBAAgB,EAAE,EAAC,QAAQ,EAAC;IAC1C,OAAO,cAAc,CAAC;QACpB,aAAa,EAAE,aAAa;QAC5B,IAAI,EAAE,gBAAgB;QACtB,MAAM,EAAE,wCAAwC;QAChD,QAAQ;QACR,eAAe,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC;KACzC,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,kBAAkB,EAAE,KAAK;IACzB,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,KAAK;IAChB,oBAAoB,EAAE,EAAE;CACzB,CAAC;AAEF,MAAM,YAAY,GAAG,WAAW,CAAC;IAC/B,IAAI,EAAE,gBAAgB;IACtB,YAAY;IACZ,aAAa,EAAE,OAAO,CAAC,EAAE;QACvB,4BAA4B,CAAC,OAAO,EAAE,oBAAoB,EAAE;YAC1D,OAAO,EAAE,oBAAoB;YAC7B,WAAW,EAAE,aAAa;YAC1B,SAAS,EAAE,WAAW;YACtB,IAAI,EAAE,sBAAsB;SAC7B,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC,OAAO,CAAC"}
|
|
@@ -15,18 +15,15 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import React, {
|
|
18
|
+
import React, { useState, useCallback } from 'react';
|
|
19
19
|
import { Screen, ScrollList, HeaderContainer } from '@axelor/aos-mobile-ui';
|
|
20
20
|
import { useDispatch, useSelector, useTranslator } from '@axelor/aos-mobile-core';
|
|
21
21
|
import { ProductCard, ProductSearchBar } from '../../components';
|
|
22
22
|
import { searchProducts } from '../../features/productSlice';
|
|
23
|
-
import { fetchProductsAvailability } from '../../features/productIndicatorsSlice';
|
|
24
23
|
const productScanKey = 'product_product-list';
|
|
25
24
|
const ProductListScreen = ({ navigation }) => {
|
|
26
25
|
const I18n = useTranslator();
|
|
27
26
|
const dispatch = useDispatch();
|
|
28
|
-
const { activeCompany } = useSelector(state => state.user.user);
|
|
29
|
-
const { listAvailabilty } = useSelector(state => state.productIndicators);
|
|
30
27
|
const { loadingProduct, moreLoadingProduct, isListEndProduct, productList } = useSelector(state => state.product);
|
|
31
28
|
const [filter, setFilter] = useState(null);
|
|
32
29
|
const [navigate, setNavigate] = useState(false);
|
|
@@ -42,18 +39,9 @@ const ProductListScreen = ({ navigation }) => {
|
|
|
42
39
|
navigation.navigate('ProductStockDetailsScreen', { product: product });
|
|
43
40
|
}
|
|
44
41
|
}, [navigation]);
|
|
45
|
-
useEffect(() => {
|
|
46
|
-
if (productList != null) {
|
|
47
|
-
dispatch(fetchProductsAvailability({
|
|
48
|
-
productList: productList,
|
|
49
|
-
companyId: activeCompany?.id,
|
|
50
|
-
stockLocationId: null,
|
|
51
|
-
}));
|
|
52
|
-
}
|
|
53
|
-
}, [activeCompany, dispatch, productList]);
|
|
54
42
|
return (<Screen removeSpaceOnTop={true}>
|
|
55
43
|
<HeaderContainer expandableFilter={false} fixedItems={<ProductSearchBar scanKey={productScanKey} onChange={showProductDetails} onFetchDataAction={handleDataSearch} showDetailsPopup={false} navigate={navigate} oneFilter={true} isFocus={true}/>}/>
|
|
56
|
-
<ScrollList loadingList={loadingProduct} data={productList} renderItem={({ item
|
|
44
|
+
<ScrollList loadingList={loadingProduct} data={productList} renderItem={({ item }) => (<ProductCard key={item.id} productId={item.id} productVersion={item.version} name={item.name} code={item.code} picture={item.picture} onPress={() => showProductDetails(item)}/>)} fetchData={fetchProductsAPI} moreLoading={moreLoadingProduct} isListEnd={isListEndProduct} filter={filter != null && filter !== ''} translator={I18n.t}/>
|
|
57
45
|
</Screen>);
|
|
58
46
|
};
|
|
59
47
|
export default ProductListScreen;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductListScreen.js","sourceRoot":"","sources":["../../../src/screens/products/ProductListScreen.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,
|
|
1
|
+
{"version":3,"file":"ProductListScreen.js","sourceRoot":"","sources":["../../../src/screens/products/ProductListScreen.js"],"names":[],"mappings":"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"}
|
|
@@ -15,19 +15,17 @@
|
|
|
15
15
|
* You should have received a copy of the GNU Affero General Public License
|
|
16
16
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
17
|
*/
|
|
18
|
-
import React, { useCallback,
|
|
18
|
+
import React, { useCallback, useMemo } from 'react';
|
|
19
19
|
import { Screen, ScrollList } from '@axelor/aos-mobile-ui';
|
|
20
20
|
import { useDispatch, useSelector, useTranslator } from '@axelor/aos-mobile-core';
|
|
21
21
|
import { ProductVariantCard } from '../../components';
|
|
22
|
-
import {
|
|
23
|
-
import { fetchProductsAvailability } from '../../features/productIndicatorsSlice';
|
|
22
|
+
import { fetchProductVariants } from '../../features/productVariantSlice';
|
|
24
23
|
const ProductListVariantScreen = ({ route, navigation }) => {
|
|
25
24
|
const product = route.params.product;
|
|
26
25
|
const companyID = route.params.companyID;
|
|
27
26
|
const stockLocationId = route.params.stockLocationId;
|
|
28
27
|
const parentProductId = useMemo(() => product?.parentProduct?.id, [product?.parentProduct?.id]);
|
|
29
|
-
const { loadingProductList, moreLoading, isListEnd, productListVariables
|
|
30
|
-
const { listAvailabilty } = useSelector(state => state.productIndicators);
|
|
28
|
+
const { loadingProductList, moreLoading, isListEnd, productListVariables } = useSelector(state => state.productVariant);
|
|
31
29
|
const I18n = useTranslator();
|
|
32
30
|
const dispatch = useDispatch();
|
|
33
31
|
const fetchVariantsAPI = useCallback(page => {
|
|
@@ -38,21 +36,11 @@ const ProductListVariantScreen = ({ route, navigation }) => {
|
|
|
38
36
|
}));
|
|
39
37
|
}
|
|
40
38
|
}, [dispatch, parentProductId]);
|
|
41
|
-
useEffect(() => {
|
|
42
|
-
if (productListVariables != null) {
|
|
43
|
-
dispatch(fetchProductsAvailability({
|
|
44
|
-
productList: productListVariables,
|
|
45
|
-
companyId: companyID,
|
|
46
|
-
stockLocationId: stockLocationId,
|
|
47
|
-
}));
|
|
48
|
-
dispatch(fetchProductsAttributes({ productList: productListVariables }));
|
|
49
|
-
}
|
|
50
|
-
}, [companyID, dispatch, productListVariables, stockLocationId]);
|
|
51
39
|
const navigateToProductVariable = productVar => {
|
|
52
40
|
navigation.navigate('ProductStockDetailsScreen', { product: productVar });
|
|
53
41
|
};
|
|
54
42
|
return (<Screen>
|
|
55
|
-
<ScrollList loadingList={loadingProductList} data={productListVariables} renderItem={({ item
|
|
43
|
+
<ScrollList loadingList={loadingProductList} data={productListVariables} renderItem={({ item }) => (<ProductVariantCard key={item.id} name={item.name} code={item.code} productId={item.id} productVersion={item.version} availabiltyData={{ stockLocationId, companyId: companyID }} picture={item.picture} onPress={() => navigateToProductVariable(item)}/>)} fetchData={fetchVariantsAPI} moreLoading={moreLoading} isListEnd={isListEnd} translator={I18n.t}/>
|
|
56
44
|
</Screen>);
|
|
57
45
|
};
|
|
58
46
|
export default ProductListVariantScreen;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductListVariantScreen.js","sourceRoot":"","sources":["../../../src/screens/products/ProductListVariantScreen.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"ProductListVariantScreen.js","sourceRoot":"","sources":["../../../src/screens/products/ProductListVariantScreen.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAClD,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAC,oBAAoB,EAAC,MAAM,oCAAoC,CAAC;AAExE,MAAM,wBAAwB,GAAG,CAAC,EAAC,KAAK,EAAE,UAAU,EAAC,EAAE,EAAE;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IACrC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;IACzC,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC;IACrD,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,EAChC,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,CAAC,CAC7B,CAAC;IACF,MAAM,EAAC,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,oBAAoB,EAAC,GACtE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,gBAAgB,GAAG,WAAW,CAClC,IAAI,CAAC,EAAE;QACL,IAAI,eAAe,EAAE;YACnB,QAAQ,CACN,oBAAoB,CAAC;gBACnB,sBAAsB,EAAE,eAAe;gBACvC,IAAI,EAAE,IAAI;aACX,CAAC,CACH,CAAC;SACH;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,eAAe,CAAC,CAC5B,CAAC;IAEF,MAAM,yBAAyB,GAAG,UAAU,CAAC,EAAE;QAC7C,UAAU,CAAC,QAAQ,CAAC,2BAA2B,EAAE,EAAC,OAAO,EAAE,UAAU,EAAC,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEF,OAAO,CACL,CAAC,MAAM,CACL;MAAA,CAAC,UAAU,CACT,WAAW,CAAC,CAAC,kBAAkB,CAAC,CAChC,IAAI,CAAC,CAAC,oBAAoB,CAAC,CAC3B,UAAU,CAAC,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,CACtB,CAAC,kBAAkB,CACjB,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACb,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChB,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChB,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACnB,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAC7B,eAAe,CAAC,CAAC,EAAC,eAAe,EAAE,SAAS,EAAE,SAAS,EAAC,CAAC,CACzD,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CACtB,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,EAC/C,CACH,CAAC,CACF,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAC5B,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAEvB;IAAA,EAAE,MAAM,CAAC,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axelor/aos-mobile-stock",
|
|
3
|
-
"version": "7.2.
|
|
3
|
+
"version": "7.2.23",
|
|
4
4
|
"author": "Axelor",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"publishConfig": {
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"react-i18next": "^11.18.6"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@axelor/aos-mobile-ui": "7.2.
|
|
32
|
-
"@axelor/aos-mobile-core": "7.2.
|
|
31
|
+
"@axelor/aos-mobile-ui": "7.2.23",
|
|
32
|
+
"@axelor/aos-mobile-core": "7.2.23",
|
|
33
33
|
"@reduxjs/toolkit": "^1.8.5"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|