@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.
Files changed (112) hide show
  1. package/README.md +44 -0
  2. package/lib/api/control-entry-api.d.ts +19 -0
  3. package/lib/api/control-entry-api.js +83 -0
  4. package/lib/api/control-entry-api.js.map +1 -0
  5. package/lib/api/control-entry-sample-api.d.ts +4 -0
  6. package/lib/api/control-entry-sample-api.js +37 -0
  7. package/lib/api/control-entry-sample-api.js.map +1 -0
  8. package/lib/api/control-entry-sample-line-api.d.ts +13 -0
  9. package/lib/api/control-entry-sample-line-api.js +96 -0
  10. package/lib/api/control-entry-sample-line-api.js.map +1 -0
  11. package/lib/api/control-plan-api.d.ts +3 -0
  12. package/lib/api/control-plan-api.js +26 -0
  13. package/lib/api/control-plan-api.js.map +1 -0
  14. package/lib/api/index.d.ts +4 -0
  15. package/lib/api/index.js +22 -0
  16. package/lib/api/index.js.map +1 -0
  17. package/lib/components/atoms/ControlEntryCard/ControlEntryCard.d.ts +11 -0
  18. package/lib/components/atoms/ControlEntryCard/ControlEntryCard.js +99 -0
  19. package/lib/components/atoms/ControlEntryCard/ControlEntryCard.js.map +1 -0
  20. package/lib/components/atoms/ControlEntryHeader/ControlEntryHeader.d.ts +2 -0
  21. package/lib/components/atoms/ControlEntryHeader/ControlEntryHeader.js +47 -0
  22. package/lib/components/atoms/ControlEntryHeader/ControlEntryHeader.js.map +1 -0
  23. package/lib/components/atoms/ControlEntrySampleCard/ControlEntrySampleCard.d.ts +8 -0
  24. package/lib/components/atoms/ControlEntrySampleCard/ControlEntrySampleCard.js +86 -0
  25. package/lib/components/atoms/ControlEntrySampleCard/ControlEntrySampleCard.js.map +1 -0
  26. package/lib/components/atoms/ControlEntrySampleLineHeader/ControlEntrySampleLineHeader.d.ts +2 -0
  27. package/lib/components/atoms/ControlEntrySampleLineHeader/ControlEntrySampleLineHeader.js +52 -0
  28. package/lib/components/atoms/ControlEntrySampleLineHeader/ControlEntrySampleLineHeader.js.map +1 -0
  29. package/lib/components/atoms/NavigationButton/NavigationButton.d.ts +7 -0
  30. package/lib/components/atoms/NavigationButton/NavigationButton.js +40 -0
  31. package/lib/components/atoms/NavigationButton/NavigationButton.js.map +1 -0
  32. package/lib/components/atoms/index.d.ts +5 -0
  33. package/lib/components/atoms/index.js +23 -0
  34. package/lib/components/atoms/index.js.map +1 -0
  35. package/lib/components/index.d.ts +2 -0
  36. package/lib/components/index.js +20 -0
  37. package/lib/components/index.js.map +1 -0
  38. package/lib/components/molecules/ControlEntryDetailsButtons/ControlEntryDetailsButtons.d.ts +2 -0
  39. package/lib/components/molecules/ControlEntryDetailsButtons/ControlEntryDetailsButtons.js +38 -0
  40. package/lib/components/molecules/ControlEntryDetailsButtons/ControlEntryDetailsButtons.js.map +1 -0
  41. package/lib/components/molecules/ControlEntryDetailsHeader/ControlEntryDetailsHeader.d.ts +5 -0
  42. package/lib/components/molecules/ControlEntryDetailsHeader/ControlEntryDetailsHeader.js +72 -0
  43. package/lib/components/molecules/ControlEntryDetailsHeader/ControlEntryDetailsHeader.js.map +1 -0
  44. package/lib/components/molecules/ControlEntryFormButtons/ControlEntryFormButtons.d.ts +12 -0
  45. package/lib/components/molecules/ControlEntryFormButtons/ControlEntryFormButtons.js +66 -0
  46. package/lib/components/molecules/ControlEntryFormButtons/ControlEntryFormButtons.js.map +1 -0
  47. package/lib/components/molecules/ControlEntryFormHeader/ControlEntryFormHeader.d.ts +8 -0
  48. package/lib/components/molecules/ControlEntryFormHeader/ControlEntryFormHeader.js +54 -0
  49. package/lib/components/molecules/ControlEntryFormHeader/ControlEntryFormHeader.js.map +1 -0
  50. package/lib/components/molecules/FillingMethodAlert/FillingMethodAlert.d.ts +8 -0
  51. package/lib/components/molecules/FillingMethodAlert/FillingMethodAlert.js +60 -0
  52. package/lib/components/molecules/FillingMethodAlert/FillingMethodAlert.js.map +1 -0
  53. package/lib/components/molecules/index.d.ts +5 -0
  54. package/lib/components/molecules/index.js +23 -0
  55. package/lib/components/molecules/index.js.map +1 -0
  56. package/lib/features/asyncFunctions-index.d.ts +4 -0
  57. package/lib/features/asyncFunctions-index.js +22 -0
  58. package/lib/features/asyncFunctions-index.js.map +1 -0
  59. package/lib/features/controlEntrySampleLineSlice.d.ts +26 -0
  60. package/lib/features/controlEntrySampleLineSlice.js +66 -0
  61. package/lib/features/controlEntrySampleLineSlice.js.map +1 -0
  62. package/lib/features/controlEntrySampleSlice.d.ts +16 -0
  63. package/lib/features/controlEntrySampleSlice.js +49 -0
  64. package/lib/features/controlEntrySampleSlice.js.map +1 -0
  65. package/lib/features/controlEntrySlice.d.ts +38 -0
  66. package/lib/features/controlEntrySlice.js +81 -0
  67. package/lib/features/controlEntrySlice.js.map +1 -0
  68. package/lib/features/controlPlanSlice.d.ts +14 -0
  69. package/lib/features/controlPlanSlice.js +48 -0
  70. package/lib/features/controlPlanSlice.js.map +1 -0
  71. package/lib/features/index.d.ts +4 -0
  72. package/lib/features/index.js +22 -0
  73. package/lib/features/index.js.map +1 -0
  74. package/lib/hooks/use-quality-header-actions.d.ts +1 -0
  75. package/lib/hooks/use-quality-header-actions.js +50 -0
  76. package/lib/hooks/use-quality-header-actions.js.map +1 -0
  77. package/lib/i18n/en.json +29 -0
  78. package/lib/i18n/fr.json +29 -0
  79. package/lib/index.d.ts +7 -0
  80. package/lib/index.js +60 -0
  81. package/lib/index.js.map +1 -0
  82. package/lib/models/index.d.ts +3 -0
  83. package/lib/models/index.js +21 -0
  84. package/lib/models/index.js.map +1 -0
  85. package/lib/models/objectFields.d.ts +2 -0
  86. package/lib/models/objectFields.js +51 -0
  87. package/lib/models/objectFields.js.map +1 -0
  88. package/lib/models/searchFields.d.ts +2 -0
  89. package/lib/models/searchFields.js +21 -0
  90. package/lib/models/searchFields.js.map +1 -0
  91. package/lib/models/sortFields.d.ts +2 -0
  92. package/lib/models/sortFields.js +26 -0
  93. package/lib/models/sortFields.js.map +1 -0
  94. package/lib/screens/ControlEntryDetailsScreen.d.ts +4 -0
  95. package/lib/screens/ControlEntryDetailsScreen.js +49 -0
  96. package/lib/screens/ControlEntryDetailsScreen.js.map +1 -0
  97. package/lib/screens/ControlEntryFormScreen.d.ts +5 -0
  98. package/lib/screens/ControlEntryFormScreen.js +190 -0
  99. package/lib/screens/ControlEntryFormScreen.js.map +1 -0
  100. package/lib/screens/ControlEntryListScreen.d.ts +4 -0
  101. package/lib/screens/ControlEntryListScreen.js +78 -0
  102. package/lib/screens/ControlEntryListScreen.js.map +1 -0
  103. package/lib/screens/index.d.ts +35 -0
  104. package/lib/screens/index.js +48 -0
  105. package/lib/screens/index.js.map +1 -0
  106. package/lib/types/controlEntry.d.ts +45 -0
  107. package/lib/types/controlEntry.js +155 -0
  108. package/lib/types/controlEntry.js.map +1 -0
  109. package/lib/types/index.d.ts +1 -0
  110. package/lib/types/index.js +19 -0
  111. package/lib/types/index.js.map +1 -0
  112. package/package.json +50 -0
package/lib/index.js ADDED
@@ -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 QualityScreens from './screens';
19
+ import enTranslations from './i18n/en.json';
20
+ import frTranslations from './i18n/fr.json';
21
+ import { quality_modelAPI, quality_searchFields, quality_sortFields, } from './models';
22
+ import * as qualityReducers from './features';
23
+ import { useQualityHeaders } from './hooks/use-quality-header-actions';
24
+ export const QualityModule = {
25
+ name: 'app-quality',
26
+ title: 'Quality_Quality',
27
+ subtitle: 'Quality_Quality',
28
+ icon: 'clipboard-check',
29
+ compatibilityAOS: {
30
+ moduleName: 'axelor-quality',
31
+ downToVersion: '8.0.0',
32
+ },
33
+ translations: {
34
+ en: enTranslations,
35
+ fr: frTranslations,
36
+ },
37
+ menus: {
38
+ quality_menu_controlEntry: {
39
+ title: 'Quality_ControlEntries',
40
+ icon: 'card-checklist',
41
+ screen: 'ControlEntryListScreen',
42
+ },
43
+ },
44
+ screens: {
45
+ ...QualityScreens,
46
+ },
47
+ reducers: { ...qualityReducers },
48
+ models: {
49
+ objectFields: { ...quality_modelAPI },
50
+ sortFields: { ...quality_sortFields },
51
+ searchFields: { ...quality_searchFields },
52
+ headerRegisters: useQualityHeaders,
53
+ },
54
+ };
55
+ export * from './api';
56
+ export * from './components';
57
+ export * from './features/asyncFunctions-index';
58
+ export * from './screens';
59
+ export * from './types';
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,cAAc,MAAM,WAAW,CAAC;AACvC,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,cAAc,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,eAAe,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,oCAAoC,CAAC;AAErE,MAAM,CAAC,MAAM,aAAa,GAAW;IACnC,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,iBAAiB;IAC3B,IAAI,EAAE,iBAAiB;IACvB,gBAAgB,EAAE;QAChB,UAAU,EAAE,gBAAgB;QAC5B,aAAa,EAAE,OAAO;KACvB;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,cAAc;QAClB,EAAE,EAAE,cAAc;KACnB;IACD,KAAK,EAAE;QACL,yBAAyB,EAAE;YACzB,KAAK,EAAE,wBAAwB;YAC/B,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,wBAAwB;SACjC;KACF;IACD,OAAO,EAAE;QACP,GAAG,cAAc;KAClB;IACD,QAAQ,EAAE,EAAC,GAAG,eAAe,EAAC;IAC9B,MAAM,EAAE;QACN,YAAY,EAAE,EAAC,GAAG,gBAAgB,EAAC;QACnC,UAAU,EAAE,EAAC,GAAG,kBAAkB,EAAC;QACnC,YAAY,EAAE,EAAC,GAAG,oBAAoB,EAAC;QACvC,eAAe,EAAE,iBAAiB;KACnC;CACF,CAAC;AAEF,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,iCAAiC,CAAC;AAChD,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { quality_searchFields } from './searchFields';
2
+ export { quality_sortFields } from './sortFields';
3
+ export { quality_modelAPI } from './objectFields';
@@ -0,0 +1,21 @@
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 { quality_searchFields } from './searchFields';
19
+ export { quality_sortFields } from './sortFields';
20
+ export { quality_modelAPI } from './objectFields';
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAC,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAChD,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ObjectFields } from '@axelor/aos-mobile-core';
2
+ export declare const quality_modelAPI: ObjectFields;
@@ -0,0 +1,51 @@
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 { schemaContructor } from '@axelor/aos-mobile-core';
19
+ export const quality_modelAPI = {
20
+ quality_controlEntry: schemaContructor.object({
21
+ inspector: schemaContructor.subObject(),
22
+ name: schemaContructor.string(),
23
+ controlEntrySamplesList: schemaContructor
24
+ .array()
25
+ .of(schemaContructor.subObject()),
26
+ entryDateTime: schemaContructor.string(),
27
+ statusSelect: schemaContructor.number(),
28
+ sampleCount: schemaContructor.number(),
29
+ controlPlan: schemaContructor.subObject(),
30
+ }),
31
+ quality_controlEntrySample: schemaContructor.object({
32
+ fullName: schemaContructor.string(),
33
+ resultSelect: schemaContructor.number(),
34
+ entrySampleNbr: schemaContructor.number(),
35
+ }),
36
+ quality_controlEntrySampleLine: schemaContructor.object({
37
+ name: schemaContructor.string(),
38
+ resultSelect: schemaContructor.number(),
39
+ controlPlanLine: schemaContructor.subObject().concat(schemaContructor.object({
40
+ characteristic: schemaContructor.subObject('name'),
41
+ })),
42
+ controlEntrySample: schemaContructor.subObject('fullName'),
43
+ }),
44
+ quality_controlPlan: schemaContructor.object({
45
+ name: schemaContructor.string(),
46
+ controlPlanLinesList: schemaContructor
47
+ .array()
48
+ .of(schemaContructor.subObject()),
49
+ }),
50
+ };
51
+ //# sourceMappingURL=objectFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objectFields.js","sourceRoot":"","sources":["../../src/models/objectFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAe,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAEvE,MAAM,CAAC,MAAM,gBAAgB,GAAiB;IAC5C,oBAAoB,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAC5C,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE;QACvC,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;QAC/B,uBAAuB,EAAE,gBAAgB;aACtC,KAAK,EAAE;aACP,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QACnC,aAAa,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACxC,YAAY,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACvC,WAAW,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACtC,WAAW,EAAE,gBAAgB,CAAC,SAAS,EAAE;KAC1C,CAAC;IACF,0BAA0B,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAClD,QAAQ,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACnC,YAAY,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACvC,cAAc,EAAE,gBAAgB,CAAC,MAAM,EAAE;KAC1C,CAAC;IACF,8BAA8B,EAAE,gBAAgB,CAAC,MAAM,CAAC;QACtD,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;QAC/B,YAAY,EAAE,gBAAgB,CAAC,MAAM,EAAE;QACvC,eAAe,EAAE,gBAAgB,CAAC,SAAS,EAAE,CAAC,MAAM,CAClD,gBAAgB,CAAC,MAAM,CAAC;YACtB,cAAc,EAAE,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC;SACnD,CAAC,CACH;QACD,kBAAkB,EAAE,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC;KAC3D,CAAC;IACF,mBAAmB,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAC3C,IAAI,EAAE,gBAAgB,CAAC,MAAM,EAAE;QAC/B,oBAAoB,EAAE,gBAAgB;aACnC,KAAK,EAAE;aACP,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;KACpC,CAAC;CACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { SearchFields } from '@axelor/aos-mobile-core';
2
+ export declare const quality_searchFields: SearchFields;
@@ -0,0 +1,21 @@
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 const quality_searchFields = {
19
+ quality_controlEntry: ['entryDateTime'],
20
+ };
21
+ //# sourceMappingURL=searchFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchFields.js","sourceRoot":"","sources":["../../src/models/searchFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,CAAC,MAAM,oBAAoB,GAAiB;IAChD,oBAAoB,EAAE,CAAC,eAAe,CAAC;CACxC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { SortFields } from '@axelor/aos-mobile-core';
2
+ export declare const quality_sortFields: SortFields;
@@ -0,0 +1,26 @@
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 const quality_sortFields = {
19
+ quality_controlEntry: ['-entryDateTime', '-createdOn'],
20
+ quality_controlEntrySample: ['entrySampleNbr'],
21
+ quality_controlEntrySampleLine: [
22
+ 'controlEntrySample.id',
23
+ 'controlPlanLine.id',
24
+ ],
25
+ };
26
+ //# sourceMappingURL=sortFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortFields.js","sourceRoot":"","sources":["../../src/models/sortFields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAe;IAC5C,oBAAoB,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;IACtD,0BAA0B,EAAE,CAAC,gBAAgB,CAAC;IAC9C,8BAA8B,EAAE;QAC9B,uBAAuB;QACvB,oBAAoB;KACrB;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export default ControlEntryDetailsScreen;
2
+ declare function ControlEntryDetailsScreen({ route }: {
3
+ route: any;
4
+ }): JSX.Element;
@@ -0,0 +1,49 @@
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, useEffect } from 'react';
19
+ import { HeaderContainer, ScrollList } from '@axelor/aos-mobile-ui';
20
+ import { useDispatch, useSelector, useTranslator, FocusScreen, } from '@axelor/aos-mobile-core';
21
+ import { ControlEntryDetailsButtons, ControlEntryDetailsHeader, ControlEntrySampleCard, } from '../components';
22
+ import { searchControlEntrySample } from '../features/controlEntrySampleSlice';
23
+ import { fetchControlEntryById } from '../features/controlEntrySlice';
24
+ import { ControlEntry } from '../types';
25
+ const ControlEntryDetailsScreen = ({ route }) => {
26
+ const { controlEntryId } = route.params;
27
+ const dispatch = useDispatch();
28
+ const I18n = useTranslator();
29
+ const { controlEntrySampleList, loadingControlEntrySampleList, moreLoading, isListEnd, } = useSelector(state => state.controlEntrySample);
30
+ const { controlEntry } = useSelector(state => state.controlEntry);
31
+ const fetchControlEntrySampleAPI = useCallback((page = 0) => {
32
+ dispatch(searchControlEntrySample({
33
+ page: page,
34
+ controlEntryId: controlEntry?.id,
35
+ }));
36
+ }, [dispatch, controlEntry]);
37
+ useEffect(() => {
38
+ dispatch(fetchControlEntryById({ controlEntryId: controlEntryId }));
39
+ }, [controlEntryId, dispatch]);
40
+ if (controlEntry?.id !== controlEntryId) {
41
+ return null;
42
+ }
43
+ return (<FocusScreen fetcher={fetchControlEntrySampleAPI} removeSpaceOnTop fixedItems={controlEntry.statusSelect === ControlEntry.status.InProgress && (<ControlEntryDetailsButtons />)}>
44
+ <HeaderContainer expandableFilter={false} fixedItems={<ControlEntryDetailsHeader controlEntryId={controlEntry.id} name={controlEntry.name} statusSelect={controlEntry.statusSelect} entryDateTime={controlEntry.entryDateTime} sampleCount={controlEntry.sampleCount} controlPlanName={controlEntry.controlPlan?.name}/>}/>
45
+ <ScrollList loadingList={loadingControlEntrySampleList} data={controlEntrySampleList} fetchData={fetchControlEntrySampleAPI} moreLoading={moreLoading} isListEnd={isListEnd} translator={I18n.t} renderItem={({ item }) => (<ControlEntrySampleCard controlEntrySampleId={item.id} resultSelect={item.resultSelect} samplefullName={item.fullName}/>)}/>
46
+ </FocusScreen>);
47
+ };
48
+ export default ControlEntryDetailsScreen;
49
+ //# sourceMappingURL=ControlEntryDetailsScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlEntryDetailsScreen.js","sourceRoot":"","sources":["../../src/screens/ControlEntryDetailsScreen.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export default ControlEntryFormScreen;
2
+ declare function ControlEntryFormScreen({ navigation, route }: {
3
+ navigation: any;
4
+ route: any;
5
+ }): JSX.Element;
@@ -0,0 +1,190 @@
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, useEffect, useMemo, useState } from 'react';
19
+ import { HeaderContainer, Screen } from '@axelor/aos-mobile-ui';
20
+ import { CustomFieldForm, showToastMessage, useDispatch, useSelector, useTranslator, } from '@axelor/aos-mobile-core';
21
+ import { ControlEntryFormButtons, ControlEntryFormHeader } from '../components';
22
+ import { fetchControlEntrySampleLine, searchControlEntrySampleLineOfControlEntry as searchControlEntrySampleLine, } from '../features/controlEntrySampleLineSlice';
23
+ import { fetchControlPlanById } from '../features/controlPlanSlice';
24
+ import { ControlEntry } from '../types';
25
+ import { checkComformity, getProgressValuesApi } from '../api';
26
+ const ControlEntryFormScreen = ({ navigation, route }) => {
27
+ const { selectedMode } = route.params;
28
+ const I18n = useTranslator();
29
+ const dispatch = useDispatch();
30
+ const { controlEntry } = useSelector(state => state.controlEntry);
31
+ const { controlPlan } = useSelector(state => state.controlPlan);
32
+ const { sampleLine } = useSelector(state => state.controlEntrySampleLine);
33
+ const { sampleLineOfEntryList } = useSelector(state => state.controlEntrySampleLine);
34
+ const [categoryIndex, setCategoryIndex] = useState(null);
35
+ const [currentIndex, setCurrentIndex] = useState(null);
36
+ const [itemSet, setItemSet] = useState([]);
37
+ const [categorySet, setCategorySet] = useState([]);
38
+ const [progressData, setProgressData] = useState({
39
+ topProgressBar: 0,
40
+ bottomProgressBar: 0,
41
+ });
42
+ const isReadonly = useMemo(() => controlEntry.statusSelect === ControlEntry.status.Completed ||
43
+ controlEntry.statusSelect === ControlEntry.status.Canceled, [controlEntry.statusSelect]);
44
+ useEffect(() => {
45
+ dispatch(fetchControlPlanById({ id: controlEntry.controlPlan?.id }));
46
+ dispatch(searchControlEntrySampleLine({ controlEntryId: controlEntry.id }));
47
+ }, [controlEntry?.controlPlan?.id, controlEntry?.id, dispatch]);
48
+ useEffect(() => {
49
+ if (Array.isArray(sampleLineOfEntryList)) {
50
+ const _itemSet = sampleLineOfEntryList
51
+ .map(_item => _item[ControlEntry.getMethodAssociatedAttribut(selectedMode)].id)
52
+ .filter((_item, _index, self) => self.indexOf(_item) === _index);
53
+ setCategoryIndex(0);
54
+ setCategorySet(_itemSet);
55
+ }
56
+ else {
57
+ setCategorySet([]);
58
+ }
59
+ }, [sampleLineOfEntryList, selectedMode]);
60
+ useEffect(() => {
61
+ fetchSampleLine(itemSet, currentIndex);
62
+ }, [fetchSampleLine, itemSet, currentIndex]);
63
+ const fetchSampleLine = useCallback((_set, _index) => {
64
+ if (Array.isArray(_set) && _set.length > 0) {
65
+ dispatch(fetchControlEntrySampleLine({ id: _set[_index].id }));
66
+ }
67
+ }, [dispatch]);
68
+ useEffect(() => {
69
+ if (Array.isArray(sampleLineOfEntryList) &&
70
+ categorySet?.[categoryIndex] != null) {
71
+ const _itemSet = sampleLineOfEntryList.filter(_item => _item[ControlEntry.getMethodAssociatedAttribut(selectedMode)].id ===
72
+ categorySet?.[categoryIndex]);
73
+ setCurrentIndex(0);
74
+ setItemSet(_itemSet);
75
+ }
76
+ else {
77
+ setItemSet([]);
78
+ }
79
+ }, [categoryIndex, categorySet, sampleLineOfEntryList, selectedMode]);
80
+ const { nbItemInCategory, nbCategories } = useMemo(() => {
81
+ const nbSample = controlEntry?.controlEntrySamplesList?.length;
82
+ const nbCharacteristic = controlPlan?.controlPlanLinesList?.length;
83
+ return ControlEntry.getMethodTotals(selectedMode, nbCharacteristic, nbSample);
84
+ }, [
85
+ controlEntry?.controlEntrySamplesList?.length,
86
+ controlPlan?.controlPlanLinesList?.length,
87
+ selectedMode,
88
+ ]);
89
+ const isLastItem = useMemo(() => (currentIndex + 1) % nbItemInCategory === 0, [currentIndex, nbItemInCategory]);
90
+ const isFirstItem = useMemo(() => currentIndex === 0, [currentIndex]);
91
+ const canNext = useMemo(() => !isLastItem || categoryIndex + 1 !== nbCategories, [categoryIndex, isLastItem, nbCategories]);
92
+ const handleNext = useCallback(() => {
93
+ setCurrentIndex(_current => {
94
+ if ((_current + 1) % nbItemInCategory === 0) {
95
+ setCategoryIndex(_cIndex => {
96
+ if (_cIndex !== nbCategories - 1) {
97
+ return _cIndex + 1;
98
+ }
99
+ return _cIndex;
100
+ });
101
+ return _current;
102
+ }
103
+ return _current + 1;
104
+ });
105
+ }, [nbCategories, nbItemInCategory]);
106
+ const handlePrevious = () => {
107
+ setCurrentIndex(_current => {
108
+ if (_current === 0) {
109
+ setCategoryIndex(_cIndex => {
110
+ if (_cIndex !== 0) {
111
+ return _cIndex - 1;
112
+ }
113
+ return _cIndex;
114
+ });
115
+ return _current;
116
+ }
117
+ return _current - 1;
118
+ });
119
+ };
120
+ const getValuesProgressBar = useCallback(param => {
121
+ getProgressValuesApi(param)
122
+ .then(response => {
123
+ setProgressData({
124
+ bottomProgressBar: selectedMode === ControlEntry.fillingMethod.Sample
125
+ ? response?.data?.characteristicControlledOnSample
126
+ : response?.data?.sampleControlledOnCharacteristic,
127
+ topProgressBar: selectedMode === ControlEntry.fillingMethod.Sample
128
+ ? response?.data?.sampleCompletelyControlled
129
+ : response?.data?.characteristicCompletelyControlled,
130
+ });
131
+ })
132
+ .catch(() => setProgressData({ bottomProgressBar: 0, topProgressBar: 0 }));
133
+ }, [selectedMode]);
134
+ useEffect(() => {
135
+ if (selectedMode === ControlEntry.fillingMethod.Sample &&
136
+ sampleLine?.controlEntrySample?.id != null) {
137
+ getValuesProgressBar({
138
+ controlEntryId: controlEntry?.id,
139
+ sampleId: sampleLine?.controlEntrySample?.id,
140
+ });
141
+ }
142
+ if (selectedMode === ControlEntry.fillingMethod.Characteristic &&
143
+ controlPlan?.controlPlanLinesList != null) {
144
+ getValuesProgressBar({
145
+ controlEntryId: controlEntry?.id,
146
+ characteristicId: controlPlan?.controlPlanLinesList?.[categoryIndex]?.id,
147
+ });
148
+ }
149
+ }, [
150
+ categoryIndex,
151
+ controlEntry,
152
+ controlPlan,
153
+ getValuesProgressBar,
154
+ sampleLine,
155
+ selectedMode,
156
+ ]);
157
+ const handleValidation = useCallback(() => {
158
+ if (canNext) {
159
+ handleNext();
160
+ }
161
+ else {
162
+ navigation.pop();
163
+ }
164
+ }, [canNext, handleNext, navigation]);
165
+ return (<Screen removeSpaceOnTop>
166
+ <HeaderContainer expandableFilter={false} fixedItems={<ControlEntryFormHeader mode={selectedMode} currentIndex={currentIndex} categoryIndex={categoryIndex} nbItemInCategory={nbItemInCategory} nbCategories={nbCategories} progressData={progressData}/>}/>
167
+ {categorySet[categoryIndex] != null && itemSet[currentIndex] != null && (<CustomFieldForm model="com.axelor.apps.quality.db.ControlEntryPlanLine" fieldType="entryAttrs" modelId={itemSet[currentIndex].id} additionalActions={[
168
+ {
169
+ key: 'customAction',
170
+ useDefaultAction: true,
171
+ showToast: false,
172
+ postActions: async (res) => {
173
+ await checkComformity({ object: res }).then(result => {
174
+ showToastMessage({
175
+ type: ControlEntry.getSampleResultType(result),
176
+ position: 'bottom',
177
+ bottomOffset: 80,
178
+ text1: `${I18n.t('Quality_ConformityResult')}`,
179
+ text2: ControlEntry.getSampleResultTitle(result, I18n),
180
+ });
181
+ });
182
+ handleValidation();
183
+ },
184
+ customComponent: (<ControlEntryFormButtons handleNext={handleNext} handlePrevious={handlePrevious} mode={selectedMode} isLastItem={isLastItem} isFirstItem={isFirstItem} canNext={canNext} canPrevious={!isFirstItem || categoryIndex !== 0}/>),
185
+ },
186
+ ]} readonly={isReadonly}/>)}
187
+ </Screen>);
188
+ };
189
+ export default ControlEntryFormScreen;
190
+ //# sourceMappingURL=ControlEntryFormScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlEntryFormScreen.js","sourceRoot":"","sources":["../../src/screens/ControlEntryFormScreen.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export default ControlEntryListScreen;
2
+ declare function ControlEntryListScreen({ navigation }: {
3
+ navigation: any;
4
+ }): JSX.Element;
@@ -0,0 +1,78 @@
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, useState } from 'react';
19
+ import { Dimensions, StyleSheet, View } from 'react-native';
20
+ import { ChipSelect, HeaderContainer, Screen, ScrollList, ToggleButton, useThemeColor, } from '@axelor/aos-mobile-ui';
21
+ import { DateInput, useDispatch, useSelector, useTranslator, } from '@axelor/aos-mobile-core';
22
+ import { searchControlEntry } from '../features/controlEntrySlice';
23
+ import { ControlEntryCard } from '../components';
24
+ import { ControlEntry } from '../types';
25
+ const ControlEntryListScreen = ({ navigation }) => {
26
+ const Colors = useThemeColor();
27
+ const I18n = useTranslator();
28
+ const dispatch = useDispatch();
29
+ const { userId } = useSelector(state => state.auth);
30
+ const { controlEntryList, loadingControlEntryList, moreLoading, isListEnd } = useSelector(state => state.controlEntry);
31
+ const [isInspectorFilter, setIsInspectorFilter] = useState(false);
32
+ const [dateFilter, setDateFilter] = useState(null);
33
+ const [selectedStatus, setSelectedStatus] = useState([]);
34
+ const statusListItems = useMemo(() => {
35
+ return ControlEntry.getStatusList(Colors, I18n);
36
+ }, [Colors, I18n]);
37
+ const fetchControlEntryAPI = useCallback((page = 0) => {
38
+ dispatch(searchControlEntry({
39
+ page: page,
40
+ isInspector: isInspectorFilter,
41
+ userId: userId,
42
+ date: dateFilter,
43
+ selectedStatus: selectedStatus,
44
+ }));
45
+ }, [dispatch, isInspectorFilter, userId, dateFilter, selectedStatus]);
46
+ return (<Screen removeSpaceOnTop={true}>
47
+ <HeaderContainer expandableFilter={false} fixedItems={<View style={styles.headerContainer}>
48
+ <ToggleButton isActive={isInspectorFilter} onPress={() => setIsInspectorFilter(current => !current)} activeColor={Colors.successColor} buttonConfig={{
49
+ iconName: 'person-fill',
50
+ width: '10%',
51
+ style: styles.toggleButton,
52
+ }}/>
53
+ <DateInput style={styles.dateInput} nullable={true} onDateChange={setDateFilter} mode="date" popup/>
54
+ </View>} chipComponent={<ChipSelect mode="multi" selectionItems={statusListItems} width={Dimensions.get('window').width * 0.25} onChangeValue={setSelectedStatus}/>}/>
55
+ <ScrollList loadingList={loadingControlEntryList} data={controlEntryList} renderItem={({ item }) => (<ControlEntryCard sampleCount={item.sampleCount} entryDateTime={item.entryDateTime} statusSelect={item.statusSelect} name={item.name} controlEntryId={item.id} onPress={() => {
56
+ navigation.navigate('ControlEntryDetailsScreen', {
57
+ controlEntryId: item.id,
58
+ });
59
+ }}/>)} fetchData={fetchControlEntryAPI} moreLoading={moreLoading} isListEnd={isListEnd} translator={I18n.t}/>
60
+ </Screen>);
61
+ };
62
+ const styles = StyleSheet.create({
63
+ headerContainer: {
64
+ width: '90%',
65
+ flexDirection: 'row',
66
+ justifyContent: 'space-between',
67
+ alignSelf: 'center',
68
+ alignItems: 'center',
69
+ },
70
+ toggleButton: {
71
+ height: 40,
72
+ },
73
+ dateInput: {
74
+ width: '85%',
75
+ },
76
+ });
77
+ export default ControlEntryListScreen;
78
+ //# sourceMappingURL=ControlEntryListScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlEntryListScreen.js","sourceRoot":"","sources":["../../src/screens/ControlEntryListScreen.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ declare namespace _default {
2
+ namespace ControlEntryListScreen {
3
+ export let title: string;
4
+ export { ControlEntryListScreen as component };
5
+ export namespace options {
6
+ let shadedHeader: boolean;
7
+ }
8
+ }
9
+ namespace ControlEntryDetailsScreen {
10
+ let title_1: string;
11
+ export { title_1 as title };
12
+ export { ControlEntryDetailsScreen as component };
13
+ export let actionID: string;
14
+ export namespace options_1 {
15
+ let shadedHeader_1: boolean;
16
+ export { shadedHeader_1 as shadedHeader };
17
+ }
18
+ export { options_1 as options };
19
+ }
20
+ namespace ControlEntryFormScreen {
21
+ let title_2: string;
22
+ export { title_2 as title };
23
+ export { ControlEntryFormScreen as component };
24
+ export namespace options_2 {
25
+ let shadedHeader_2: boolean;
26
+ export { shadedHeader_2 as shadedHeader };
27
+ }
28
+ export { options_2 as options };
29
+ }
30
+ }
31
+ export default _default;
32
+ import ControlEntryListScreen_1 from './ControlEntryListScreen';
33
+ import ControlEntryDetailsScreen_1 from './ControlEntryDetailsScreen';
34
+ import ControlEntryFormScreen_1 from './ControlEntryFormScreen';
35
+ export { ControlEntryListScreen_1 as ControlEntryListScreen, ControlEntryDetailsScreen_1 as ControlEntryDetailsScreen, ControlEntryFormScreen_1 as ControlEntryFormScreen };