@axelor/aos-mobile-quality 8.0.0
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/README.md +44 -0
- package/lib/api/control-entry-api.d.ts +19 -0
- package/lib/api/control-entry-api.js +83 -0
- package/lib/api/control-entry-api.js.map +1 -0
- package/lib/api/control-entry-sample-api.d.ts +4 -0
- package/lib/api/control-entry-sample-api.js +37 -0
- package/lib/api/control-entry-sample-api.js.map +1 -0
- package/lib/api/control-entry-sample-line-api.d.ts +13 -0
- package/lib/api/control-entry-sample-line-api.js +96 -0
- package/lib/api/control-entry-sample-line-api.js.map +1 -0
- package/lib/api/control-plan-api.d.ts +3 -0
- package/lib/api/control-plan-api.js +26 -0
- package/lib/api/control-plan-api.js.map +1 -0
- package/lib/api/index.d.ts +4 -0
- package/lib/api/index.js +22 -0
- package/lib/api/index.js.map +1 -0
- package/lib/components/atoms/ControlEntryCard/ControlEntryCard.d.ts +11 -0
- package/lib/components/atoms/ControlEntryCard/ControlEntryCard.js +99 -0
- package/lib/components/atoms/ControlEntryCard/ControlEntryCard.js.map +1 -0
- package/lib/components/atoms/ControlEntryHeader/ControlEntryHeader.d.ts +2 -0
- package/lib/components/atoms/ControlEntryHeader/ControlEntryHeader.js +47 -0
- package/lib/components/atoms/ControlEntryHeader/ControlEntryHeader.js.map +1 -0
- package/lib/components/atoms/ControlEntrySampleCard/ControlEntrySampleCard.d.ts +8 -0
- package/lib/components/atoms/ControlEntrySampleCard/ControlEntrySampleCard.js +86 -0
- package/lib/components/atoms/ControlEntrySampleCard/ControlEntrySampleCard.js.map +1 -0
- package/lib/components/atoms/ControlEntrySampleLineHeader/ControlEntrySampleLineHeader.d.ts +2 -0
- package/lib/components/atoms/ControlEntrySampleLineHeader/ControlEntrySampleLineHeader.js +52 -0
- package/lib/components/atoms/ControlEntrySampleLineHeader/ControlEntrySampleLineHeader.js.map +1 -0
- package/lib/components/atoms/NavigationButton/NavigationButton.d.ts +7 -0
- package/lib/components/atoms/NavigationButton/NavigationButton.js +40 -0
- package/lib/components/atoms/NavigationButton/NavigationButton.js.map +1 -0
- package/lib/components/atoms/index.d.ts +5 -0
- package/lib/components/atoms/index.js +23 -0
- package/lib/components/atoms/index.js.map +1 -0
- package/lib/components/index.d.ts +2 -0
- package/lib/components/index.js +20 -0
- package/lib/components/index.js.map +1 -0
- package/lib/components/molecules/ControlEntryDetailsButtons/ControlEntryDetailsButtons.d.ts +2 -0
- package/lib/components/molecules/ControlEntryDetailsButtons/ControlEntryDetailsButtons.js +38 -0
- package/lib/components/molecules/ControlEntryDetailsButtons/ControlEntryDetailsButtons.js.map +1 -0
- package/lib/components/molecules/ControlEntryDetailsHeader/ControlEntryDetailsHeader.d.ts +5 -0
- package/lib/components/molecules/ControlEntryDetailsHeader/ControlEntryDetailsHeader.js +72 -0
- package/lib/components/molecules/ControlEntryDetailsHeader/ControlEntryDetailsHeader.js.map +1 -0
- package/lib/components/molecules/ControlEntryFormButtons/ControlEntryFormButtons.d.ts +12 -0
- package/lib/components/molecules/ControlEntryFormButtons/ControlEntryFormButtons.js +66 -0
- package/lib/components/molecules/ControlEntryFormButtons/ControlEntryFormButtons.js.map +1 -0
- package/lib/components/molecules/ControlEntryFormHeader/ControlEntryFormHeader.d.ts +8 -0
- package/lib/components/molecules/ControlEntryFormHeader/ControlEntryFormHeader.js +54 -0
- package/lib/components/molecules/ControlEntryFormHeader/ControlEntryFormHeader.js.map +1 -0
- package/lib/components/molecules/FillingMethodAlert/FillingMethodAlert.d.ts +8 -0
- package/lib/components/molecules/FillingMethodAlert/FillingMethodAlert.js +60 -0
- package/lib/components/molecules/FillingMethodAlert/FillingMethodAlert.js.map +1 -0
- package/lib/components/molecules/index.d.ts +5 -0
- package/lib/components/molecules/index.js +23 -0
- package/lib/components/molecules/index.js.map +1 -0
- package/lib/features/asyncFunctions-index.d.ts +4 -0
- package/lib/features/asyncFunctions-index.js +22 -0
- package/lib/features/asyncFunctions-index.js.map +1 -0
- package/lib/features/controlEntrySampleLineSlice.d.ts +26 -0
- package/lib/features/controlEntrySampleLineSlice.js +66 -0
- package/lib/features/controlEntrySampleLineSlice.js.map +1 -0
- package/lib/features/controlEntrySampleSlice.d.ts +16 -0
- package/lib/features/controlEntrySampleSlice.js +49 -0
- package/lib/features/controlEntrySampleSlice.js.map +1 -0
- package/lib/features/controlEntrySlice.d.ts +38 -0
- package/lib/features/controlEntrySlice.js +81 -0
- package/lib/features/controlEntrySlice.js.map +1 -0
- package/lib/features/controlPlanSlice.d.ts +14 -0
- package/lib/features/controlPlanSlice.js +48 -0
- package/lib/features/controlPlanSlice.js.map +1 -0
- package/lib/features/index.d.ts +4 -0
- package/lib/features/index.js +22 -0
- package/lib/features/index.js.map +1 -0
- package/lib/hooks/use-quality-header-actions.d.ts +1 -0
- package/lib/hooks/use-quality-header-actions.js +50 -0
- package/lib/hooks/use-quality-header-actions.js.map +1 -0
- package/lib/i18n/en.json +29 -0
- package/lib/i18n/fr.json +29 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.js +60 -0
- package/lib/index.js.map +1 -0
- package/lib/models/index.d.ts +3 -0
- package/lib/models/index.js +21 -0
- package/lib/models/index.js.map +1 -0
- package/lib/models/objectFields.d.ts +2 -0
- package/lib/models/objectFields.js +51 -0
- package/lib/models/objectFields.js.map +1 -0
- package/lib/models/searchFields.d.ts +2 -0
- package/lib/models/searchFields.js +21 -0
- package/lib/models/searchFields.js.map +1 -0
- package/lib/models/sortFields.d.ts +2 -0
- package/lib/models/sortFields.js +26 -0
- package/lib/models/sortFields.js.map +1 -0
- package/lib/screens/ControlEntryDetailsScreen.d.ts +4 -0
- package/lib/screens/ControlEntryDetailsScreen.js +49 -0
- package/lib/screens/ControlEntryDetailsScreen.js.map +1 -0
- package/lib/screens/ControlEntryFormScreen.d.ts +5 -0
- package/lib/screens/ControlEntryFormScreen.js +190 -0
- package/lib/screens/ControlEntryFormScreen.js.map +1 -0
- package/lib/screens/ControlEntryListScreen.d.ts +4 -0
- package/lib/screens/ControlEntryListScreen.js +78 -0
- package/lib/screens/ControlEntryListScreen.js.map +1 -0
- package/lib/screens/index.d.ts +35 -0
- package/lib/screens/index.js +48 -0
- package/lib/screens/index.js.map +1 -0
- package/lib/types/controlEntry.d.ts +45 -0
- package/lib/types/controlEntry.js +155 -0
- package/lib/types/controlEntry.js.map +1 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/index.js +19 -0
- package/lib/types/index.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useEffect, useMemo, useRef, useState } from 'react';
|
|
19
|
+
import { StyleSheet } from 'react-native';
|
|
20
|
+
import { Card, ProgressBar, Text, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { ControlEntry } from '../../../types';
|
|
22
|
+
import { searchControlEntrySampleLineApi } from '../../../api';
|
|
23
|
+
const ControlEntrySampleCard = ({ style, controlEntrySampleId, resultSelect, samplefullName, }) => {
|
|
24
|
+
const Colors = useThemeColor();
|
|
25
|
+
const isMounted = useRef(true);
|
|
26
|
+
const [numberSampleFilled, setNumberSampleFilled] = useState(0);
|
|
27
|
+
const borderStyle = useMemo(() => {
|
|
28
|
+
return getStyles(ControlEntry.getSampleResultColor(resultSelect, Colors)?.background)?.border;
|
|
29
|
+
}, [Colors, resultSelect]);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
isMounted.current = true;
|
|
32
|
+
searchControlEntrySampleLineApi({ controlEntrySampleId })
|
|
33
|
+
.then(response => {
|
|
34
|
+
if (isMounted.current) {
|
|
35
|
+
if (Array.isArray(response?.data?.data)) {
|
|
36
|
+
const controlEntrySampleLineList = response.data.data;
|
|
37
|
+
const total = controlEntrySampleLineList.length;
|
|
38
|
+
const notControlled = controlEntrySampleLineList.filter(sample => sample.resultSelect === ControlEntry.sampleResult.NotControlled).length;
|
|
39
|
+
setNumberSampleFilled(100 - (notControlled / total) * 100);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
setNumberSampleFilled(0);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
.catch(() => {
|
|
47
|
+
if (isMounted.current) {
|
|
48
|
+
setNumberSampleFilled(0);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return () => {
|
|
52
|
+
isMounted.current = false;
|
|
53
|
+
};
|
|
54
|
+
}, [controlEntrySampleId]);
|
|
55
|
+
return (<Card style={[styles.container, borderStyle, style]}>
|
|
56
|
+
<Text>{samplefullName}</Text>
|
|
57
|
+
<ProgressBar style={styles.progressBar} value={numberSampleFilled} showPercent={false} height={15} styleTxt={styles.textProgressBar}/>
|
|
58
|
+
</Card>);
|
|
59
|
+
};
|
|
60
|
+
const getStyles = (color) => StyleSheet.create({
|
|
61
|
+
border: {
|
|
62
|
+
borderLeftWidth: 7,
|
|
63
|
+
borderLeftColor: color,
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
const styles = StyleSheet.create({
|
|
67
|
+
container: {
|
|
68
|
+
marginHorizontal: 12,
|
|
69
|
+
paddingHorizontal: 15,
|
|
70
|
+
paddingRight: 15,
|
|
71
|
+
paddingVertical: 10,
|
|
72
|
+
flexDirection: 'row',
|
|
73
|
+
alignItems: 'center',
|
|
74
|
+
marginVertical: 5,
|
|
75
|
+
justifyContent: 'space-between',
|
|
76
|
+
},
|
|
77
|
+
progressBar: {
|
|
78
|
+
borderRadius: 20,
|
|
79
|
+
width: '40%',
|
|
80
|
+
},
|
|
81
|
+
textProgressBar: {
|
|
82
|
+
display: 'none',
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
export default ControlEntrySampleCard;
|
|
86
|
+
//# sourceMappingURL=ControlEntrySampleCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlEntrySampleCard.js","sourceRoot":"","sources":["../../../../src/components/atoms/ControlEntrySampleCard/ControlEntrySampleCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import { StyleSheet, View } from 'react-native';
|
|
20
|
+
import { useSelector, useTranslator } from '@axelor/aos-mobile-core';
|
|
21
|
+
import { Badge, Text, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
22
|
+
import { ControlEntry } from '../../../types';
|
|
23
|
+
const ControlEntrySampleLineHeader = ({}) => {
|
|
24
|
+
const I18n = useTranslator();
|
|
25
|
+
const Colors = useThemeColor();
|
|
26
|
+
const { sampleLine } = useSelector((state) => state.controlEntrySampleLine);
|
|
27
|
+
if (sampleLine?.id == null) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return (<View>
|
|
31
|
+
<View style={styles.row}>
|
|
32
|
+
<Text>{`${I18n.t('Quality_Sample')} : ${sampleLine.controlEntrySample?.fullName}`}</Text>
|
|
33
|
+
<Badge color={ControlEntry.getSampleResultColor(sampleLine.resultSelect, Colors)} title={ControlEntry.getSampleResultTitle(sampleLine.resultSelect, I18n)}/>
|
|
34
|
+
</View>
|
|
35
|
+
<Text>{`${I18n.t('Quality_Characteristic')} : ${sampleLine.controlPlanLine?.name != null
|
|
36
|
+
? sampleLine.controlPlanLine?.name
|
|
37
|
+
: sampleLine.controlPlanLine?.characteristic?.name}`}</Text>
|
|
38
|
+
</View>);
|
|
39
|
+
};
|
|
40
|
+
const styles = StyleSheet.create({
|
|
41
|
+
row: {
|
|
42
|
+
flexDirection: 'row',
|
|
43
|
+
justifyContent: 'space-between',
|
|
44
|
+
alignItems: 'center',
|
|
45
|
+
},
|
|
46
|
+
badge: {
|
|
47
|
+
margin: 0,
|
|
48
|
+
width: null,
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
export default ControlEntrySampleLineHeader;
|
|
52
|
+
//# sourceMappingURL=ControlEntrySampleLineHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlEntrySampleLineHeader.js","sourceRoot":"","sources":["../../../../src/components/atoms/ControlEntrySampleLineHeader/ControlEntrySampleLineHeader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,WAAW,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,MAAM,4BAA4B,GAAG,CAAC,EAAE,EAAE,EAAE;IAC1C,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,MAAM,EAAC,UAAU,EAAC,GAAG,WAAW,CAC9B,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAC7C,CAAC;IAEF,IAAI,UAAU,EAAE,EAAE,IAAI,IAAI,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IAED,OAAO,CACL,CAAC,IAAI,CACH;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CACtB;QAAA,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAChC,UAAU,CAAC,kBAAkB,EAAE,QACjC,EAAE,CAAC,EAAE,IAAI,CACT;QAAA,CAAC,KAAK,CACJ,KAAK,CAAC,CAAC,YAAY,CAAC,oBAAoB,CACtC,UAAU,CAAC,YAAY,EACvB,MAAM,CACP,CAAC,CACF,KAAK,CAAC,CAAC,YAAY,CAAC,oBAAoB,CACtC,UAAU,CAAC,YAAY,EACvB,IAAI,CACL,CAAC,EAEN;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,MACxC,UAAU,CAAC,eAAe,EAAE,IAAI,IAAI,IAAI;YACtC,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI;YAClC,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE,cAAc,EAAE,IAClD,EAAE,CAAC,EAAE,IAAI,CACX;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,GAAG,EAAE;QACH,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,eAAe;QAC/B,UAAU,EAAE,QAAQ;KACrB;IACD,KAAK,EAAE;QACL,MAAM,EAAE,CAAC;QACT,KAAK,EAAE,IAAI;KACZ;CACF,CAAC,CAAC;AAEH,eAAe,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useMemo } from 'react';
|
|
19
|
+
import { StyleSheet, View } from 'react-native';
|
|
20
|
+
import { Button, Icon, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
21
|
+
const NavigationButton = ({ position, onPress, icon, disabled }) => {
|
|
22
|
+
const Colors = useThemeColor();
|
|
23
|
+
const positionStyle = useMemo(() => ({ [position]: '15%' }), [position]);
|
|
24
|
+
return (<View style={styles.buttonContainer}>
|
|
25
|
+
<Button onPress={onPress} color={Colors.priorityColor} disabled={disabled} iconName={icon}/>
|
|
26
|
+
<Icon name={`chevron-${position}`} style={[styles.chevron, positionStyle]}/>
|
|
27
|
+
</View>);
|
|
28
|
+
};
|
|
29
|
+
const styles = StyleSheet.create({
|
|
30
|
+
buttonContainer: {
|
|
31
|
+
width: '45%',
|
|
32
|
+
alignItems: 'center',
|
|
33
|
+
justifyContent: 'center',
|
|
34
|
+
},
|
|
35
|
+
chevron: {
|
|
36
|
+
position: 'absolute',
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
export default NavigationButton;
|
|
40
|
+
//# sourceMappingURL=NavigationButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavigationButton.js","sourceRoot":"","sources":["../../../../src/components/atoms/NavigationButton/NavigationButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAElE,MAAM,gBAAgB,GAAG,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAC,EAAE,EAAE;IAC/D,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAE/B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEvE,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAClC;MAAA,CAAC,MAAM,CACL,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAC5B,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB,QAAQ,CAAC,CAAC,IAAI,CAAC,EAEjB;MAAA,CAAC,IAAI,CACH,IAAI,CAAC,CAAC,WAAW,QAAQ,EAAE,CAAC,CAC5B,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,EAE3C;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,eAAe,EAAE;QACf,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;KACzB;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,UAAU;KACrB;CACF,CAAC,CAAC;AAEH,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default as ControlEntryCard } from "./ControlEntryCard/ControlEntryCard";
|
|
2
|
+
export { default as ControlEntryHeader } from "./ControlEntryHeader/ControlEntryHeader";
|
|
3
|
+
export { default as ControlEntrySampleCard } from "./ControlEntrySampleCard/ControlEntrySampleCard";
|
|
4
|
+
export { default as ControlEntrySampleLineHeader } from "./ControlEntrySampleLineHeader/ControlEntrySampleLineHeader";
|
|
5
|
+
export { default as NavigationButton } from "./NavigationButton/NavigationButton";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export { default as ControlEntryCard } from './ControlEntryCard/ControlEntryCard';
|
|
19
|
+
export { default as ControlEntryHeader } from './ControlEntryHeader/ControlEntryHeader';
|
|
20
|
+
export { default as ControlEntrySampleCard } from './ControlEntrySampleCard/ControlEntrySampleCard';
|
|
21
|
+
export { default as ControlEntrySampleLineHeader } from './ControlEntrySampleLineHeader/ControlEntrySampleLineHeader';
|
|
22
|
+
export { default as NavigationButton } from './NavigationButton/NavigationButton';
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/atoms/index.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAC,OAAO,IAAI,sBAAsB,EAAC,MAAM,iDAAiD,CAAC;AAClG,OAAO,EAAC,OAAO,IAAI,4BAA4B,EAAC,MAAM,6DAA6D,CAAC;AACpH,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,qCAAqC,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
export * from './atoms';
|
|
19
|
+
export * from './molecules';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import { useDispatch, useSelector, useTranslator } from '@axelor/aos-mobile-core';
|
|
20
|
+
import { Button } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { updateControlEntry } from '../../../features/controlEntrySlice';
|
|
22
|
+
import { ControlEntry } from '../../../types';
|
|
23
|
+
const ControlEntryDetailsButtons = () => {
|
|
24
|
+
const dispatch = useDispatch();
|
|
25
|
+
const I18n = useTranslator();
|
|
26
|
+
const { controlEntry } = useSelector((state) => state.controlEntry);
|
|
27
|
+
return (<Button title={I18n.t('Quality_MarkAsCompleted')} onPress={() => {
|
|
28
|
+
dispatch(updateControlEntry({
|
|
29
|
+
controlEntry: {
|
|
30
|
+
...controlEntry,
|
|
31
|
+
statusSelect: ControlEntry.status.Completed,
|
|
32
|
+
},
|
|
33
|
+
controlEntryId: controlEntry.id,
|
|
34
|
+
}));
|
|
35
|
+
}} iconName="check-lg"/>);
|
|
36
|
+
};
|
|
37
|
+
export default ControlEntryDetailsButtons;
|
|
38
|
+
//# sourceMappingURL=ControlEntryDetailsButtons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlEntryDetailsButtons.js","sourceRoot":"","sources":["../../../../src/components/molecules/ControlEntryDetailsButtons/ControlEntryDetailsButtons.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAC,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,MAAM,0BAA0B,GAAG,GAAG,EAAE;IACtC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAE7B,MAAM,EAAC,YAAY,EAAC,GAAG,WAAW,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAEvE,OAAO,CACL,CAAC,MAAM,CACL,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CACzC,OAAO,CAAC,CAAC,GAAG,EAAE;YACZ,QAAQ,CACL,kBAA0B,CAAC;gBAC1B,YAAY,EAAE;oBACZ,GAAG,YAAY;oBACf,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,SAAS;iBAC5C;gBACD,cAAc,EAAE,YAAY,CAAC,EAAE;aAChC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CACF,QAAQ,CAAC,UAAU,EACnB,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useEffect, useState } from 'react';
|
|
19
|
+
import { StyleSheet, View } from 'react-native';
|
|
20
|
+
import { Button, ProgressBar } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { useSelector } from '@axelor/aos-mobile-core';
|
|
22
|
+
import { ControlEntry } from '../../../types';
|
|
23
|
+
import { searchControlEntrySampleApi } from '../../../api';
|
|
24
|
+
import { ControlEntryHeader } from '../../atoms';
|
|
25
|
+
import { FillingMethodAlert } from '../../molecules';
|
|
26
|
+
const ControlEntryDetailsHeader = ({ controlEntryId, }) => {
|
|
27
|
+
const [numberSampleFilled, setNumberSampleFilled] = useState(0);
|
|
28
|
+
const [showAlert, setShowAlert] = useState(false);
|
|
29
|
+
const { controlEntry } = useSelector((state) => state.controlEntry);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
searchControlEntrySampleApi({ controlEntryId: controlEntry?.id })
|
|
32
|
+
.then(response => {
|
|
33
|
+
if (Array.isArray(response?.data?.data)) {
|
|
34
|
+
const controlEntrySampleList = response.data.data;
|
|
35
|
+
const total = controlEntrySampleList.length;
|
|
36
|
+
const notControlled = controlEntrySampleList.filter(sample => sample.resultSelect === ControlEntry.sampleResult.NotControlled).length;
|
|
37
|
+
setNumberSampleFilled(100 - (notControlled / total) * 100);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
setNumberSampleFilled(0);
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
.catch(() => setNumberSampleFilled(0));
|
|
44
|
+
}, [controlEntry]);
|
|
45
|
+
return (<View style={styles.container}>
|
|
46
|
+
<ControlEntryHeader />
|
|
47
|
+
<View style={styles.row}>
|
|
48
|
+
<ProgressBar value={numberSampleFilled} style={styles.progressBar} height={38}/>
|
|
49
|
+
<Button isNeutralBackground={true} iconName="clipboard2-fill" width="10%" style={styles.button} onPress={() => setShowAlert(true)}/>
|
|
50
|
+
</View>
|
|
51
|
+
<FillingMethodAlert controlEntryId={controlEntryId} visible={showAlert} setVisible={setShowAlert}/>
|
|
52
|
+
</View>);
|
|
53
|
+
};
|
|
54
|
+
const styles = StyleSheet.create({
|
|
55
|
+
container: {
|
|
56
|
+
marginHorizontal: 24,
|
|
57
|
+
},
|
|
58
|
+
row: {
|
|
59
|
+
justifyContent: 'space-between',
|
|
60
|
+
flexDirection: 'row',
|
|
61
|
+
alignItems: 'center',
|
|
62
|
+
},
|
|
63
|
+
progressBar: {
|
|
64
|
+
width: '88%',
|
|
65
|
+
},
|
|
66
|
+
button: {
|
|
67
|
+
height: 40,
|
|
68
|
+
borderWidth: 1,
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
export default ControlEntryDetailsHeader;
|
|
72
|
+
//# sourceMappingURL=ControlEntryDetailsHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlEntryDetailsHeader.js","sourceRoot":"","sources":["../../../../src/components/molecules/ControlEntryDetailsHeader/ControlEntryDetailsHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface ControlEntryFormButtonsProps {
|
|
2
|
+
mode: string;
|
|
3
|
+
canPrevious: boolean;
|
|
4
|
+
canNext: boolean;
|
|
5
|
+
isFirstItem: boolean;
|
|
6
|
+
isLastItem: boolean;
|
|
7
|
+
handleNext: () => void;
|
|
8
|
+
handlePrevious: () => void;
|
|
9
|
+
onPress: () => any;
|
|
10
|
+
}
|
|
11
|
+
declare const ControlEntryFormButtons: ({ mode, canPrevious, canNext, isFirstItem, isLastItem, handleNext, handlePrevious, onPress, }: ControlEntryFormButtonsProps) => JSX.Element;
|
|
12
|
+
export default ControlEntryFormButtons;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useCallback, useMemo } from 'react';
|
|
19
|
+
import { StyleSheet, View } from 'react-native';
|
|
20
|
+
import { showToastMessage, useSelector, useTranslator, } from '@axelor/aos-mobile-core';
|
|
21
|
+
import { Button, useThemeColor } from '@axelor/aos-mobile-ui';
|
|
22
|
+
import { ControlEntry } from '../../../types';
|
|
23
|
+
import { NavigationButton } from '../../atoms';
|
|
24
|
+
const ControlEntryFormButtons = ({ mode, canPrevious, canNext, isFirstItem, isLastItem, handleNext, handlePrevious, onPress, }) => {
|
|
25
|
+
const Colors = useThemeColor();
|
|
26
|
+
const I18n = useTranslator();
|
|
27
|
+
const { controlEntry } = useSelector((state) => state.controlEntry);
|
|
28
|
+
const { sampleLine } = useSelector((state) => state.controlEntrySampleLine);
|
|
29
|
+
const isConformityButton = useMemo(() => controlEntry.statusSelect === ControlEntry.status.Draft ||
|
|
30
|
+
controlEntry.statusSelect === ControlEntry.status.InProgress, [controlEntry.statusSelect]);
|
|
31
|
+
const { categoryIcon, subCategoryIcon } = useMemo(() => ControlEntry.getMethodIcons(mode), [mode]);
|
|
32
|
+
const handleNotControlled = useCallback(() => {
|
|
33
|
+
if (sampleLine.resultSelect === ControlEntry.sampleResult.NotControlled) {
|
|
34
|
+
showToastMessage({
|
|
35
|
+
type: ControlEntry.getSampleResultType(ControlEntry.sampleResult.NotControlled),
|
|
36
|
+
position: 'bottom',
|
|
37
|
+
bottomOffset: 80,
|
|
38
|
+
text1: `${I18n.t('Quality_ConformityResult')}`,
|
|
39
|
+
text2: ControlEntry.getSampleResultTitle(ControlEntry.sampleResult.NotControlled, I18n),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}, [I18n, sampleLine.resultSelect]);
|
|
43
|
+
return (<View style={styles.container}>
|
|
44
|
+
<NavigationButton position="left" onPress={() => {
|
|
45
|
+
handleNotControlled();
|
|
46
|
+
handlePrevious();
|
|
47
|
+
}} icon={isFirstItem ? categoryIcon : subCategoryIcon} disabled={!canPrevious}/>
|
|
48
|
+
<NavigationButton position="right" onPress={() => {
|
|
49
|
+
handleNotControlled();
|
|
50
|
+
handleNext();
|
|
51
|
+
}} icon={isLastItem ? categoryIcon : subCategoryIcon} disabled={!canNext}/>
|
|
52
|
+
{isConformityButton && (<Button style={styles.lastButton} onPress={onPress} iconName="check-lg" color={Colors.successColor}/>)}
|
|
53
|
+
</View>);
|
|
54
|
+
};
|
|
55
|
+
const styles = StyleSheet.create({
|
|
56
|
+
container: {
|
|
57
|
+
flexDirection: 'row',
|
|
58
|
+
justifyContent: 'space-evenly',
|
|
59
|
+
marginHorizontal: 18,
|
|
60
|
+
},
|
|
61
|
+
lastButton: {
|
|
62
|
+
width: '15%',
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
export default ControlEntryFormButtons;
|
|
66
|
+
//# sourceMappingURL=ControlEntryFormButtons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlEntryFormButtons.js","sourceRoot":"","sources":["../../../../src/components/molecules/ControlEntryFormButtons/ControlEntryFormButtons.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface ControlEntryHeaderProps {
|
|
2
|
+
nbItemInCategory: number;
|
|
3
|
+
nbCategories: number;
|
|
4
|
+
mode: string;
|
|
5
|
+
progressData: any;
|
|
6
|
+
}
|
|
7
|
+
declare const ControlEntryFormHeader: ({ nbItemInCategory, nbCategories, mode, progressData, }: ControlEntryHeaderProps) => JSX.Element;
|
|
8
|
+
export default ControlEntryFormHeader;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useMemo } from 'react';
|
|
19
|
+
import { StyleSheet, View } from 'react-native';
|
|
20
|
+
import { Icon, ProgressBar } from '@axelor/aos-mobile-ui';
|
|
21
|
+
import { ControlEntry } from '../../../types';
|
|
22
|
+
import { ControlEntryHeader, ControlEntrySampleLineHeader } from '../../atoms';
|
|
23
|
+
const ControlEntryFormHeader = ({ nbItemInCategory, nbCategories, mode, progressData, }) => {
|
|
24
|
+
const { categoryIcon, subCategoryIcon } = useMemo(() => ControlEntry.getMethodIcons(mode), [mode]);
|
|
25
|
+
return (<View style={styles.container}>
|
|
26
|
+
<ControlEntryHeader />
|
|
27
|
+
<View style={styles.progressContainer}>
|
|
28
|
+
<Icon name={categoryIcon}/>
|
|
29
|
+
<ProgressBar total={nbCategories} value={progressData.topProgressBar} style={[styles.progressBar, styles.margin]} showPercent={false}/>
|
|
30
|
+
</View>
|
|
31
|
+
<View style={styles.progressContainer}>
|
|
32
|
+
<Icon name={subCategoryIcon}/>
|
|
33
|
+
<ProgressBar total={nbItemInCategory} value={progressData.bottomProgressBar} showPercent={false} style={styles.progressBar}/>
|
|
34
|
+
</View>
|
|
35
|
+
<ControlEntrySampleLineHeader />
|
|
36
|
+
</View>);
|
|
37
|
+
};
|
|
38
|
+
const styles = StyleSheet.create({
|
|
39
|
+
container: {
|
|
40
|
+
marginHorizontal: 24,
|
|
41
|
+
},
|
|
42
|
+
progressContainer: {
|
|
43
|
+
flexDirection: 'row',
|
|
44
|
+
justifyContent: 'space-between',
|
|
45
|
+
},
|
|
46
|
+
progressBar: {
|
|
47
|
+
width: '90%',
|
|
48
|
+
},
|
|
49
|
+
margin: {
|
|
50
|
+
marginVertical: '2%',
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
export default ControlEntryFormHeader;
|
|
54
|
+
//# sourceMappingURL=ControlEntryFormHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ControlEntryFormHeader.js","sourceRoot":"","sources":["../../../../src/components/molecules/ControlEntryFormHeader/ControlEntryFormHeader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAC,IAAI,EAAE,WAAW,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,kBAAkB,EAAE,4BAA4B,EAAC,MAAM,aAAa,CAAC;AAS7E,MAAM,sBAAsB,GAAG,CAAC,EAC9B,gBAAgB,EAChB,YAAY,EACZ,IAAI,EACJ,YAAY,GACY,EAAE,EAAE;IAC5B,MAAM,EAAC,YAAY,EAAE,eAAe,EAAC,GAAG,OAAO,CAC7C,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,EACvC,CAAC,IAAI,CAAC,CACP,CAAC;IAEF,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAC5B;MAAA,CAAC,kBAAkB,CAAC,AAAD,EACnB;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CACpC;QAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EACzB;QAAA,CAAC,WAAW,CACV,KAAK,CAAC,CAAC,YAAY,CAAC,CACpB,KAAK,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,CACnC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAC3C,WAAW,CAAC,CAAC,KAAK,CAAC,EAEvB;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CACpC;QAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,EAC5B;QAAA,CAAC,WAAW,CACV,KAAK,CAAC,CAAC,gBAAgB,CAAC,CACxB,KAAK,CAAC,CAAC,YAAY,CAAC,iBAAiB,CAAC,CACtC,WAAW,CAAC,CAAC,KAAK,CAAC,CACnB,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAE9B;MAAA,EAAE,IAAI,CACN;MAAA,CAAC,4BAA4B,CAAC,AAAD,EAC/B;IAAA,EAAE,IAAI,CAAC,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,gBAAgB,EAAE,EAAE;KACrB;IACD,iBAAiB,EAAE;QACjB,aAAa,EAAE,KAAK;QACpB,cAAc,EAAE,eAAe;KAChC;IACD,WAAW,EAAE;QACX,KAAK,EAAE,KAAK;KACb;IACD,MAAM,EAAE;QACN,cAAc,EAAE,IAAI;KACrB;CACF,CAAC,CAAC;AAEH,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface FillingMethodAlertProps {
|
|
3
|
+
controlEntryId: number;
|
|
4
|
+
visible: boolean;
|
|
5
|
+
setVisible: React.Dispatch<React.SetStateAction<boolean>>;
|
|
6
|
+
}
|
|
7
|
+
declare const FillingMethodAlert: ({ controlEntryId, visible, setVisible, }: FillingMethodAlertProps) => JSX.Element;
|
|
8
|
+
export default FillingMethodAlert;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Axelor Business Solutions
|
|
3
|
+
*
|
|
4
|
+
* Copyright (C) 2024 Axelor (<http://axelor.com>).
|
|
5
|
+
*
|
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License, version 3,
|
|
8
|
+
* as published by the Free Software Foundation.
|
|
9
|
+
*
|
|
10
|
+
* This program is distributed in the hope that it will be useful,
|
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
* GNU Affero General Public License for more details.
|
|
14
|
+
*
|
|
15
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
*/
|
|
18
|
+
import React, { useState } from 'react';
|
|
19
|
+
import { StyleSheet } from 'react-native';
|
|
20
|
+
import { useNavigation, useTranslator } from '@axelor/aos-mobile-core';
|
|
21
|
+
import { Alert, RadioSelect } from '@axelor/aos-mobile-ui';
|
|
22
|
+
import { ControlEntry } from '../../../types';
|
|
23
|
+
const FillingMethodAlert = ({ controlEntryId, visible, setVisible, }) => {
|
|
24
|
+
const navigation = useNavigation();
|
|
25
|
+
const I18n = useTranslator();
|
|
26
|
+
const [selectedMode, setSelectedMode] = useState(null);
|
|
27
|
+
return (<Alert visible={visible} title={I18n.t('Quality_FillingMethod')} style={styles.popup} cancelButtonConfig={{
|
|
28
|
+
width: '15%',
|
|
29
|
+
title: null,
|
|
30
|
+
onPress: () => {
|
|
31
|
+
setVisible(false);
|
|
32
|
+
},
|
|
33
|
+
}} confirmButtonConfig={{
|
|
34
|
+
width: '15%',
|
|
35
|
+
title: null,
|
|
36
|
+
disabled: selectedMode == null,
|
|
37
|
+
onPress: () => {
|
|
38
|
+
setVisible(false);
|
|
39
|
+
navigation.navigate('ControlEntryFormScreen', {
|
|
40
|
+
controlEntryId: controlEntryId,
|
|
41
|
+
selectedMode: selectedMode,
|
|
42
|
+
});
|
|
43
|
+
},
|
|
44
|
+
}}>
|
|
45
|
+
<RadioSelect direction="column" itemStyle={styles.radioSelect} items={ControlEntry.getFillingMethods(I18n)} onChange={setSelectedMode} radioButtonStyle={styles.radioButton}/>
|
|
46
|
+
</Alert>);
|
|
47
|
+
};
|
|
48
|
+
const styles = StyleSheet.create({
|
|
49
|
+
radioSelect: {
|
|
50
|
+
height: 150,
|
|
51
|
+
},
|
|
52
|
+
popup: {
|
|
53
|
+
width: '80%',
|
|
54
|
+
},
|
|
55
|
+
radioButton: {
|
|
56
|
+
width: 200,
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
export default FillingMethodAlert;
|
|
60
|
+
//# sourceMappingURL=FillingMethodAlert.js.map
|