@openmrs/esm-stock-management-app 1.0.1-pre.791 → 1.0.1-pre.795
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/165.js +2 -0
- package/dist/{140.js.LICENSE.txt → 165.js.LICENSE.txt} +25 -1
- package/dist/165.js.map +1 -0
- package/dist/172.js +1 -1
- package/dist/172.js.map +1 -1
- package/dist/20.js +1 -1
- package/dist/290.js +1 -1
- package/dist/290.js.map +1 -1
- package/dist/574.js +1 -1
- package/dist/600.js +1 -0
- package/dist/{942.js.map → 600.js.map} +1 -1
- package/dist/606.js +1 -1
- package/dist/627.js +1 -1
- package/dist/629.js +1 -1
- package/dist/629.js.map +1 -1
- package/dist/707.js +1 -1
- package/dist/707.js.map +1 -1
- package/dist/793.js +1 -1
- package/dist/793.js.LICENSE.txt +4 -0
- package/dist/793.js.map +1 -1
- package/dist/880.js +1 -1
- package/dist/880.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.LICENSE.txt +25 -1
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-stock-management-app.js +1 -1
- package/dist/openmrs-esm-stock-management-app.js.buildmanifest.json +65 -92
- package/dist/openmrs-esm-stock-management-app.js.map +1 -1
- package/dist/routes.json +1 -1
- package/jest.config.js +4 -4
- package/package.json +5 -5
- package/src/core/components/carbon/controlled-radio-button-group/controlled-radio-button-group.component.tsx +3 -3
- package/src/core/components/side-nav/side-nav.scss +1 -1
- package/src/core/components/table/table.component.tsx +3 -1
- package/src/stock-items/add-stock-item/stock-item-details/stock-item-details.component.tsx +5 -5
- package/src/stock-items/add-stock-item/stock-item-rules/add-stock-rules.scss +1 -1
- package/src/stock-items/add-stock-item/stock-item-rules/stock-item-rules.scss +1 -1
- package/src/stock-operations/stock-operations-forms/input-components/stock-operation-reason-selector.component.tsx +1 -1
- package/src/stock-operations/stock-operations-forms/input-components/unique-batch-no-entry-input.component.tsx +7 -5
- package/src/stock-operations/stock-operations-forms/input-components/users-selector.component.tsx +2 -2
- package/src/stock-operations/stock-operations-forms/step1.test.tsx +14 -13
- package/src/stock-operations/stock-operations-forms/steps/base-operation-details-form-step.tsx +3 -3
- package/src/stock-operations/stock-operations-forms/steps/received-items.component.tsx +8 -3
- package/src/stock-operations/stock-operations-forms/steps/stock-operation-items-form-step.component.tsx +10 -5
- package/src/stock-operations/stock-operations-forms/steps/stock-operation-items-form-step.scc.scss +1 -1
- package/src/stock-operations/stock-operations-forms/steps/stock-operation-submission-form-step.component.tsx +8 -3
- package/src/stock-operations/stock-operations-forms/stock-operation-form.scss +1 -1
- package/src/stock-operations/stock-operations-forms/stock-operation-stepper/stock-operation-stepper.component.tsx +1 -0
- package/src/stock-reports/generate-report/create-stock-report.scss +1 -1
- package/src/stock-sources/stock-sources.scss +1 -1
- package/src/stock-user-role-scopes/add-stock-user-scope/add-stock-user-role-scope.scss +1 -1
- package/tools/setup-tests.ts +5 -0
- package/tools/update-openmrs-deps.mjs +42 -0
- package/translations/en.json +39 -5
- package/tsconfig.json +5 -15
- package/dist/140.js +0 -2
- package/dist/140.js.map +0 -1
- package/dist/46.js +0 -1
- package/dist/46.js.map +0 -1
- package/dist/942.js +0 -1
- package/src/setup-tests.ts +0 -1
- /package/{i18next-parser.config.js → tools/i18next-parser.config.js} +0 -0
@@ -34,22 +34,24 @@ const UniqueBatchNoEntryInput: React.FC<UniqueBatchNoEntryInputProps> = ({
|
|
34
34
|
|
35
35
|
useEffect(() => {
|
36
36
|
if (batchNoAlreadyUsed) {
|
37
|
-
setError('Batch number already used');
|
37
|
+
setError(t('batchNumberAlreadyUsed', 'Batch number already used'));
|
38
38
|
} else {
|
39
39
|
setError(undefined);
|
40
40
|
onValueChange?.(value);
|
41
41
|
}
|
42
|
-
}, [value, onValueChange, batchNoAlreadyUsed, setError]);
|
43
|
-
|
44
|
-
if (isLoading) return <TextInputSkeleton />;
|
42
|
+
}, [value, onValueChange, batchNoAlreadyUsed, setError, t]);
|
45
43
|
|
44
|
+
if (isLoading) {
|
45
|
+
return <TextInputSkeleton />;
|
46
|
+
}
|
46
47
|
return (
|
47
48
|
<TextInput
|
49
|
+
id="batchNumber"
|
48
50
|
maxLength={50}
|
49
51
|
onChange={(e: ChangeEvent<HTMLInputElement>) => setValue(e.target.value)}
|
50
52
|
value={value}
|
51
53
|
invalidText={_error ?? error}
|
52
|
-
invalid={_error
|
54
|
+
invalid={Boolean(_error) || Boolean(error)}
|
53
55
|
placeholder={t('batchNumber', 'Batch Number')}
|
54
56
|
labelText={t('batchNumber', 'Batch Number')}
|
55
57
|
/>
|
package/src/stock-operations/stock-operations-forms/input-components/users-selector.component.tsx
CHANGED
@@ -56,7 +56,7 @@ const UsersSelector = () => {
|
|
56
56
|
titleText={t('responsiblePerson', 'Responsible Person')}
|
57
57
|
name={'responsiblePersonUuid'}
|
58
58
|
id={'responsiblePersonUuid'}
|
59
|
-
size=
|
59
|
+
size="lg"
|
60
60
|
items={[...(userList || []), otherUser]}
|
61
61
|
onChange={(data: { selectedItem: User }) => {
|
62
62
|
field.onChange(data.selectedItem?.uuid);
|
@@ -93,7 +93,7 @@ const UsersSelector = () => {
|
|
93
93
|
disabled={false}
|
94
94
|
id="responsiblePersonOther"
|
95
95
|
name="responsiblePersonOther"
|
96
|
-
size=
|
96
|
+
size="lg"
|
97
97
|
labelText={t('responsiblePerson', 'Responsible Person')}
|
98
98
|
placeholder={t('pleaseSpecify', 'Please Specify')}
|
99
99
|
invalid={error?.message}
|
@@ -184,8 +184,9 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
184
184
|
element.getAttribute('placeholder') === 'chooseASource' && element.getAttribute('name') === 'sourceUuid',
|
185
185
|
});
|
186
186
|
expect(sourceInput).toBeInTheDocument();
|
187
|
-
expect(screen.
|
187
|
+
expect(screen.getByRole('combobox', { name: /from/i })).toBeInTheDocument();
|
188
188
|
});
|
189
|
+
|
189
190
|
it("should render combobox with 'to' name and defaulted to 'main store' location in receipt operation", async () => {
|
190
191
|
(useParties as jest.Mock).mockReturnValue({
|
191
192
|
destinationParties: [],
|
@@ -204,7 +205,7 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
204
205
|
promptBeforeClosing={jest.fn()}
|
205
206
|
/>,
|
206
207
|
);
|
207
|
-
expect(screen.
|
208
|
+
expect(screen.getByRole('combobox', { name: /to/i })).toBeInTheDocument();
|
208
209
|
});
|
209
210
|
|
210
211
|
it("should render combobox with 'destinationUuid' name and 'chooseADestination' placeholder", async () => {
|
@@ -232,7 +233,7 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
232
233
|
element.getAttribute('name') === 'destinationUuid',
|
233
234
|
}),
|
234
235
|
).toBeInTheDocument();
|
235
|
-
expect(screen.
|
236
|
+
expect(screen.getByRole('combobox', { name: /to/i })).toBeInTheDocument();
|
236
237
|
});
|
237
238
|
it("should render combobox with 'sourceUuid' name and 'chooseALocation' placeholder for disposal opertaion", async () => {
|
238
239
|
(useParties as jest.Mock).mockReturnValue({
|
@@ -258,7 +259,7 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
258
259
|
element.getAttribute('placeholder') === 'chooseALocation' && element.getAttribute('name') === 'sourceUuid',
|
259
260
|
}),
|
260
261
|
).toBeInTheDocument();
|
261
|
-
expect(screen.
|
262
|
+
expect(screen.getByRole('combobox', { name: /location/i })).toBeInTheDocument();
|
262
263
|
});
|
263
264
|
|
264
265
|
it('should not render reason input field for receipt operation', async () => {
|
@@ -279,7 +280,7 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
279
280
|
promptBeforeClosing={jest.fn()}
|
280
281
|
/>,
|
281
282
|
);
|
282
|
-
expect(screen.
|
283
|
+
expect(screen.queryByRole('combobox', { name: /reason/i })).not.toBeInTheDocument();
|
283
284
|
});
|
284
285
|
it('should render reason input field for adjustment operation', async () => {
|
285
286
|
(useParties as jest.Mock).mockReturnValue({
|
@@ -299,7 +300,7 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
299
300
|
promptBeforeClosing={jest.fn()}
|
300
301
|
/>,
|
301
302
|
);
|
302
|
-
expect(screen.
|
303
|
+
expect(screen.getByRole('combobox', { name: /reason/i })).toBeInTheDocument();
|
303
304
|
});
|
304
305
|
it('should not render reason input field for opening stock operation', async () => {
|
305
306
|
(useParties as jest.Mock).mockReturnValue({
|
@@ -319,7 +320,7 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
319
320
|
promptBeforeClosing={jest.fn()}
|
320
321
|
/>,
|
321
322
|
);
|
322
|
-
expect(screen.
|
323
|
+
expect(screen.queryByRole('combobox', { name: /reason/i })).not.toBeInTheDocument();
|
323
324
|
});
|
324
325
|
it('should not render reason input field for requisition operation', async () => {
|
325
326
|
(useParties as jest.Mock).mockReturnValue({
|
@@ -339,7 +340,7 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
339
340
|
promptBeforeClosing={jest.fn()}
|
340
341
|
/>,
|
341
342
|
);
|
342
|
-
expect(screen.
|
343
|
+
expect(screen.queryByRole('combobox', { name: /reason/i })).not.toBeInTheDocument();
|
343
344
|
});
|
344
345
|
it('should not render reason input field for return operation', async () => {
|
345
346
|
(useParties as jest.Mock).mockReturnValue({
|
@@ -359,7 +360,7 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
359
360
|
promptBeforeClosing={jest.fn()}
|
360
361
|
/>,
|
361
362
|
);
|
362
|
-
expect(screen.
|
363
|
+
expect(screen.queryByRole('combobox', { name: /reason/i })).not.toBeInTheDocument();
|
363
364
|
});
|
364
365
|
it('should not render reason input field for issue operation', async () => {
|
365
366
|
(useParties as jest.Mock).mockReturnValue({
|
@@ -379,7 +380,7 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
379
380
|
promptBeforeClosing={jest.fn()}
|
380
381
|
/>,
|
381
382
|
);
|
382
|
-
expect(screen.
|
383
|
+
expect(screen.queryByRole('combobox', { name: /reason/i })).not.toBeInTheDocument();
|
383
384
|
});
|
384
385
|
it('should not render reason input field for tranfer out operation', async () => {
|
385
386
|
(useParties as jest.Mock).mockReturnValue({
|
@@ -399,7 +400,7 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
399
400
|
promptBeforeClosing={jest.fn()}
|
400
401
|
/>,
|
401
402
|
);
|
402
|
-
expect(screen.
|
403
|
+
expect(screen.queryByRole('combobox', { name: /reason/i })).not.toBeInTheDocument();
|
403
404
|
});
|
404
405
|
it('should render reason input field for disposal operation', async () => {
|
405
406
|
(useParties as jest.Mock).mockReturnValue({
|
@@ -419,7 +420,7 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
419
420
|
promptBeforeClosing={jest.fn()}
|
420
421
|
/>,
|
421
422
|
);
|
422
|
-
expect(screen.
|
423
|
+
expect(screen.getByRole('combobox', { name: /reason/i })).toBeInTheDocument();
|
423
424
|
});
|
424
425
|
it('should render reason input field for stock take operation', async () => {
|
425
426
|
(useParties as jest.Mock).mockReturnValue({
|
@@ -439,6 +440,6 @@ describe('Stock Operation step 1 (baseoperation details)', () => {
|
|
439
440
|
promptBeforeClosing={jest.fn()}
|
440
441
|
/>,
|
441
442
|
);
|
442
|
-
expect(screen.
|
443
|
+
expect(screen.getByRole('combobox', { name: /reason/i })).toBeInTheDocument();
|
443
444
|
});
|
444
445
|
});
|
package/src/stock-operations/stock-operations-forms/steps/base-operation-details-form-step.tsx
CHANGED
@@ -111,7 +111,7 @@ const BaseOperationDetailsFormStep: FC<BaseOperationDetailsFormStepProps> = ({
|
|
111
111
|
labelText={t('operationDate', 'Operation Date')}
|
112
112
|
invalid={error?.message}
|
113
113
|
invalidText={error?.message}
|
114
|
-
size="
|
114
|
+
size="lg"
|
115
115
|
/>
|
116
116
|
</DatePicker>
|
117
117
|
)}
|
@@ -141,7 +141,7 @@ const BaseOperationDetailsFormStep: FC<BaseOperationDetailsFormStepProps> = ({
|
|
141
141
|
readOnly={field.disabled}
|
142
142
|
name={'sourceUuid'}
|
143
143
|
id={'sourceUuid'}
|
144
|
-
size=
|
144
|
+
size="lg"
|
145
145
|
items={sourceParties}
|
146
146
|
onChange={(data: { selectedItem: Party }) => {
|
147
147
|
field.onChange(data.selectedItem?.uuid);
|
@@ -179,7 +179,7 @@ const BaseOperationDetailsFormStep: FC<BaseOperationDetailsFormStepProps> = ({
|
|
179
179
|
}
|
180
180
|
name={'destinationUuid'}
|
181
181
|
id={'destinationUuid'}
|
182
|
-
size=
|
182
|
+
size="lg"
|
183
183
|
items={destinationParties}
|
184
184
|
onChange={(data: { selectedItem: Party }) => {
|
185
185
|
field.onChange(data.selectedItem?.uuid);
|
@@ -98,9 +98,14 @@ const ReceivedItems: React.FC<ReceivedItemsProps> = ({ stockOperation, onPreviou
|
|
98
98
|
</DataTable>
|
99
99
|
<div className={styles.btnSet}>
|
100
100
|
{typeof onPrevious === 'function' && (
|
101
|
-
<Button
|
102
|
-
|
103
|
-
|
101
|
+
<Button
|
102
|
+
data-testid="previous-btn"
|
103
|
+
hasIconOnly
|
104
|
+
iconDescription={t('previous', 'Previous')}
|
105
|
+
kind="secondary"
|
106
|
+
onClick={onPrevious}
|
107
|
+
renderIcon={ArrowLeft}
|
108
|
+
/>
|
104
109
|
)}
|
105
110
|
</div>
|
106
111
|
</div>
|
@@ -216,7 +216,7 @@ const StockOperationItemsFormStep: React.FC<StockOperationItemsFormStepProps> =
|
|
216
216
|
isSortable: false,
|
217
217
|
})}
|
218
218
|
style={header?.styles}
|
219
|
-
key={
|
219
|
+
key={header.key}
|
220
220
|
>
|
221
221
|
{header.header?.content ?? header?.header}
|
222
222
|
</TableHeader>
|
@@ -225,7 +225,7 @@ const StockOperationItemsFormStep: React.FC<StockOperationItemsFormStepProps> =
|
|
225
225
|
</TableHead>
|
226
226
|
<TableBody>
|
227
227
|
{rows.map((row) => (
|
228
|
-
<TableRow {...getRowProps({ row })}>
|
228
|
+
<TableRow {...getRowProps({ row })} key={row.id}>
|
229
229
|
{row.cells.map((cell) => (
|
230
230
|
<TableCell key={cell.id}>{cell.value}</TableCell>
|
231
231
|
))}
|
@@ -243,9 +243,14 @@ const StockOperationItemsFormStep: React.FC<StockOperationItemsFormStepProps> =
|
|
243
243
|
</Button>
|
244
244
|
)}
|
245
245
|
{typeof onPrevious === 'function' && (
|
246
|
-
<Button
|
247
|
-
|
248
|
-
|
246
|
+
<Button
|
247
|
+
kind="secondary"
|
248
|
+
onClick={onPrevious}
|
249
|
+
renderIcon={ArrowLeft}
|
250
|
+
hasIconOnly
|
251
|
+
data-testid="previous-btn"
|
252
|
+
iconDescription={t('previous', 'Previous')}
|
253
|
+
/>
|
249
254
|
)}
|
250
255
|
</div>
|
251
256
|
</div>
|
@@ -236,9 +236,14 @@ const StockOperationSubmissionFormStep: React.FC<StockOperationSubmissionFormSte
|
|
236
236
|
</Button>
|
237
237
|
)}
|
238
238
|
{typeof onPrevious === 'function' && (
|
239
|
-
<Button
|
240
|
-
|
241
|
-
|
239
|
+
<Button
|
240
|
+
kind="tertiary"
|
241
|
+
onClick={onPrevious}
|
242
|
+
renderIcon={ArrowLeft}
|
243
|
+
hasIconOnly
|
244
|
+
data-testid="previous-btn"
|
245
|
+
iconDescription={t('previous', 'Previous')}
|
246
|
+
/>
|
242
247
|
)}
|
243
248
|
</div>
|
244
249
|
</Stack>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { execSync } from 'node:child_process';
|
2
|
+
|
3
|
+
try {
|
4
|
+
execSync(`yarn up --fixed '@openmrs/esm-framework@next' '@openmrs/esm-styleguide@next' 'openmrs@next'`, {
|
5
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
6
|
+
windowsHide: true,
|
7
|
+
});
|
8
|
+
} catch (error) {
|
9
|
+
console.error(`Error while updating dependencies: ${error.message ?? error}`);
|
10
|
+
process.exit(1);
|
11
|
+
}
|
12
|
+
|
13
|
+
try {
|
14
|
+
execSync(`yarn dedupe`, {
|
15
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
16
|
+
windowsHide: true,
|
17
|
+
});
|
18
|
+
} catch (error) {
|
19
|
+
console.error(`Error while deduplicating dependencies: ${error.message ?? error}`);
|
20
|
+
process.exit(1);
|
21
|
+
}
|
22
|
+
|
23
|
+
try {
|
24
|
+
execSync(`git diff-index --quiet HEAD --`, {
|
25
|
+
stdio: 'ignore',
|
26
|
+
windowsHide: true,
|
27
|
+
});
|
28
|
+
process.exit(0);
|
29
|
+
} catch (error) {
|
30
|
+
// git diff-index --quite HEAD --
|
31
|
+
// exits with status 1 if there are changes; we only need to run yarn verify if there are changes
|
32
|
+
}
|
33
|
+
|
34
|
+
try {
|
35
|
+
execSync(`yarn verify`, {
|
36
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
37
|
+
windowsHide: true,
|
38
|
+
});
|
39
|
+
} catch (error) {
|
40
|
+
console.error(`Error while running yarn verify: ${error.message ?? error}. Updates require manual intervention.`);
|
41
|
+
process.exit(1);
|
42
|
+
}
|
package/translations/en.json
CHANGED
@@ -31,6 +31,8 @@
|
|
31
31
|
"BatchJobSuccess": "Batch job created successfully",
|
32
32
|
"batchNo": "Batch No",
|
33
33
|
"batchNumber": "Batch Number",
|
34
|
+
"batchNumberAlreadyUsed": "Batch number already used",
|
35
|
+
"bincard": "Stock Card",
|
34
36
|
"by": "By",
|
35
37
|
"cancel": "Cancel",
|
36
38
|
"cancelled": "Cancelled",
|
@@ -51,6 +53,7 @@
|
|
51
53
|
"chooseQuantityUnit": "Choose the Unit of Quantity",
|
52
54
|
"chooseSourceType": "Choose a source type",
|
53
55
|
"chooseVendor": "Choose vendor",
|
56
|
+
"clearSearch": "Clear search input",
|
54
57
|
"code": "Code",
|
55
58
|
"comingSoonUnderDev": "Exciting updates are on the way! In the meantime, use the link below to access Admin UI settings.",
|
56
59
|
"commonName": "Common Name",
|
@@ -80,6 +83,8 @@
|
|
80
83
|
"deletingSource": "Delete Source",
|
81
84
|
"deletingstockUserScope": "Delete Stock User Scope",
|
82
85
|
"destination": "Destination",
|
86
|
+
"details": "Details",
|
87
|
+
"discard": "Discard",
|
83
88
|
"dispatch": "Dispatch",
|
84
89
|
"dispatched": "Dispatched",
|
85
90
|
"dispatching": "Dispatching",
|
@@ -99,6 +104,7 @@
|
|
99
104
|
"enabled": "Enabled ?",
|
100
105
|
"endDate": "End Date",
|
101
106
|
"ended": "Ended",
|
107
|
+
"enterRemarks": "Enter remarks",
|
102
108
|
"error": "Error",
|
103
109
|
"errorAddingRule": "Error adding a rule",
|
104
110
|
"errorAddingSource": "Error adding a source",
|
@@ -109,7 +115,8 @@
|
|
109
115
|
"errorDeletingUserScope": "Error deleting a user scope",
|
110
116
|
"errorEditingStockItem": "Error editing a stock Item",
|
111
117
|
"errorLoadingStockOperation": "Error loading stock item",
|
112
|
-
"
|
118
|
+
"errorLoadingStockOperationTypes": "Error loading stock operation types",
|
119
|
+
"errorPrintingStockOperation": "Error printing stock operation",
|
113
120
|
"errorSavingForm": "Error on saving form",
|
114
121
|
"errorSavingUserRoleScope": "Error Saving user role scope",
|
115
122
|
"errorStockMetric": "Error fetching stock metrics",
|
@@ -120,18 +127,20 @@
|
|
120
127
|
"expirationNotice": "Expiration Notice (days)",
|
121
128
|
"expired": "Expired",
|
122
129
|
"expires": "Expires",
|
130
|
+
"expiriation": "Expiration Date",
|
123
131
|
"expiringStock": "Expiring Stock",
|
124
132
|
"expiry": "Expiry",
|
125
133
|
"expiryNoticeDays": "Expiration Notice (days)",
|
126
134
|
"filter": "Filter ...",
|
127
135
|
"filterByLocation": "Filter by Location",
|
136
|
+
"findItems": "Find your items",
|
128
137
|
"formCreated": "Add Location",
|
129
138
|
"from": "From",
|
130
139
|
"fulfillment": "Fulfillment",
|
131
140
|
"fullFulfillment": "Full Fulfillment",
|
132
141
|
"fullName": "Full Name",
|
142
|
+
"generatedMessage": "The card has been electronically generated and is a valid document. It was created by {{userName}} on {{date}}",
|
133
143
|
"genericName": "Generic Name",
|
134
|
-
"goBack": "Go Back",
|
135
144
|
"hasExpiration": "Does the item expire?",
|
136
145
|
"highestServiceVolume": "Out of Stock ",
|
137
146
|
"home": "Home",
|
@@ -149,13 +158,17 @@
|
|
149
158
|
"item": "Item",
|
150
159
|
"itemAlreadyExists": "Item already exits",
|
151
160
|
"itemDetails": "Item Details",
|
161
|
+
"itemname": "Item Name",
|
152
162
|
"itemsAboveMax": "Items Above Max",
|
153
163
|
"itemsBelowMin": "Items Below Min",
|
154
164
|
"itemType": "Item Type",
|
155
165
|
"leastMoving": "Least Moving",
|
156
166
|
"limit": "Limit",
|
157
167
|
"loading": "Loading...",
|
168
|
+
"loading StockoperationLinks": "Loading stock operation links",
|
158
169
|
"loadingData": "Loading data...",
|
170
|
+
"loadingOperationActions": "Loading stock operation actions",
|
171
|
+
"loadingOperationTypes": "Loading operation types",
|
159
172
|
"location": "Location(s)",
|
160
173
|
"locationAndBatchno": "Location and Batch",
|
161
174
|
"locationAndStockItem": "Location and Stock Item",
|
@@ -171,11 +184,12 @@
|
|
171
184
|
"newReport": "New Report",
|
172
185
|
"next": "Next",
|
173
186
|
"no": "No",
|
187
|
+
"noCommonNameAvailable": "No common name available",
|
174
188
|
"noData": "No data to display",
|
189
|
+
"noDrugNameAvailable": "No drug name available",
|
175
190
|
"noItemsToDisplay": "No Stock Items to display",
|
176
191
|
"noneFulfillment": "Non Fulfillment",
|
177
192
|
"noOperationsToDisplay": "No Stock Operations to display",
|
178
|
-
"noUserScopesToDisplay": "No Stock User scopes to display",
|
179
193
|
"noPrivilagesTitle": "",
|
180
194
|
"noReportsToDisplay": "No Stock reports to display",
|
181
195
|
"noRulesToDisplay": "No Stock rules to display",
|
@@ -183,6 +197,7 @@
|
|
183
197
|
"noStockItemsToDisplay": "No stock items to display",
|
184
198
|
"notes": "Please explain the reason:",
|
185
199
|
"notSet": "Not Set",
|
200
|
+
"noUserScopesToDisplay": "No Stock User scopes to display",
|
186
201
|
"noViewPrivilegesDescription": "",
|
187
202
|
"number": "Number",
|
188
203
|
"operationDate": "Operation Date",
|
@@ -195,31 +210,36 @@
|
|
195
210
|
"outofstock": "Out of Stock",
|
196
211
|
"packagingUnit": "Packaging Unit",
|
197
212
|
"packagingUnits": "Packaging Units",
|
213
|
+
"packagingUomError": "Error loading stockItemPackagingUOM name",
|
198
214
|
"packSize": "Pack Size",
|
199
215
|
"panelDescription": "To access stock management features, users must have assigned roles specifying location and stock operation type scopes.",
|
200
216
|
"parameters": "Parameters",
|
201
217
|
"partialFulfillment": "Partial Fulfillment",
|
218
|
+
"partieserror": "Error launching base operation details form",
|
202
219
|
"patients": "Patients",
|
203
220
|
"permanent": "Permanent ?",
|
204
221
|
"pleaseFillField": "",
|
205
222
|
"pleaseSpecify": "Please Specify",
|
206
223
|
"poorquality": "Poor Quality",
|
224
|
+
"previous": "Previous",
|
207
225
|
"print": "Print ",
|
226
|
+
"printbincard": "Print Stock Card",
|
227
|
+
"printBinCard": "Print Bin Card",
|
228
|
+
"printStockCard": "Print Stock Card",
|
208
229
|
"providersAvailableToday": "Disposed Stock ",
|
209
230
|
"purchasePrice": "Purchase Price",
|
210
231
|
"purchasePricePackagingUnit": "Purchase price packaging unit:",
|
211
232
|
"qty": "Qty",
|
212
|
-
"qtyIssued": "Qty Issued",
|
213
233
|
"quantities": "Quantities",
|
214
234
|
"quantity": "Quantity Threshold",
|
215
235
|
"quantityReceived": "Quantity Received",
|
216
|
-
"quantityRequested": "Quantity Requested",
|
217
236
|
"quantitySent": "Quantity Sent",
|
218
237
|
"quantityUnit": "Quantity Unit",
|
219
238
|
"quantityUom": "Qty UoM",
|
220
239
|
"quantityUoM": "Quantity Unit of Measurement(UoM)",
|
221
240
|
"rank": "Rank",
|
222
241
|
"reason": "Reason",
|
242
|
+
"reasonError": "Error loading reasons concepts",
|
223
243
|
"reasonLabel": "Please explain the reason:",
|
224
244
|
"reasonPlaceholder": "Enter reason here",
|
225
245
|
"receivedItems": "Received Items",
|
@@ -230,6 +250,7 @@
|
|
230
250
|
"reject": "Reject ",
|
231
251
|
"rejected": "Rejected",
|
232
252
|
"rejectOrder": "Uploaded Order",
|
253
|
+
"relatedStockRequisitionRequired": "Related stock requisition Required",
|
233
254
|
"remarks": "Remarks",
|
234
255
|
"removePackagingUnit": "Remove Packaging Unit",
|
235
256
|
"removePackagingUnitConfirmation": "",
|
@@ -241,6 +262,7 @@
|
|
241
262
|
"requested": "Requested",
|
242
263
|
"requestedBy": "Requested By",
|
243
264
|
"responsiblePerson": "Responsible Person",
|
265
|
+
"responsiblePersonError": "Error loading responsible person",
|
244
266
|
"return": "Return ",
|
245
267
|
"returned": "Returned",
|
246
268
|
"role": "Role",
|
@@ -253,6 +275,7 @@
|
|
253
275
|
"saveReferenceTitle": "StockItem Reference",
|
254
276
|
"saveStockItemReferenceErrorTitle": "StockItem Reference",
|
255
277
|
"saveStockItemReferenceMessage": "Stock Item Reference saved successfully",
|
278
|
+
"search": "Search",
|
256
279
|
"searchThisList": "Search this list",
|
257
280
|
"SelectOption": "Select an option",
|
258
281
|
"selectTags": "Select tag(s)",
|
@@ -261,18 +284,25 @@
|
|
261
284
|
"startDate": "Start Date",
|
262
285
|
"started": "Started",
|
263
286
|
"status": "Status",
|
287
|
+
"stockAvailabilityError": "Error loading stock availability",
|
288
|
+
"stockIssueError": "StockIssue error",
|
264
289
|
"stockItem": "Stock Item",
|
265
290
|
"stockItemAdded": "Stock Item Added Successfully",
|
266
291
|
"stockItemCategory": "Stock Item Category",
|
267
292
|
"stockItemDetails": "Stock Item Details",
|
268
293
|
"stockItemEdited": "Stock Item Edited Successfully",
|
294
|
+
"stockItemError": "Error loading stock item",
|
269
295
|
"stockItems": "Stock Items",
|
270
296
|
"stockManagement": "Stock Management",
|
271
297
|
"stockOperation": "Stock Operations",
|
272
298
|
"stockOperationAdded": "Stock operation added successfully",
|
273
299
|
"stockOperationEdited": "Stock operation edited successfully",
|
300
|
+
"stockOperationError": "Error loading stock operation types",
|
274
301
|
"stockOperationErrorDescription": "Details: {{message}}",
|
275
302
|
"stockOperationErrorTitle": "Error on saving form",
|
303
|
+
"stockoperationItemDeleteError": "Error deleting stock operation item {{item}}",
|
304
|
+
"stockoperationItemDeletSuccess": "Stock operation item {{item}} deleted succesfully",
|
305
|
+
"stockoperationItems": "Stock operation items",
|
276
306
|
"stockOperationItems": "Items",
|
277
307
|
"stockOperations": "Stock Operations",
|
278
308
|
"stockOperationTrackMovement": "Stock operations to track movement of stock.",
|
@@ -286,9 +316,12 @@
|
|
286
316
|
"stockSourceDestination": "Stock source destination",
|
287
317
|
"stockUserScopeDeletedSuccessfully": "Stock User Scope Deleted Successfully",
|
288
318
|
"submit": "Submit",
|
319
|
+
"submitAndComplete": "Submit/Complete",
|
320
|
+
"submitAndDispatch": "Submit/Dispatch",
|
289
321
|
"submitForReview": "Submit For Review",
|
290
322
|
"submitted": "Submitted",
|
291
323
|
"submittingForReview": "Submitting for review",
|
324
|
+
"success": "Success",
|
292
325
|
"successfullysaved": "You have successfully saved user role scope ",
|
293
326
|
"SuccessfullyUploadedStockItem": "You have successfully uploaded stock items",
|
294
327
|
"tabletOverlay": "Tablet overlay",
|
@@ -299,6 +332,7 @@
|
|
299
332
|
"tradeName": "Trade Name",
|
300
333
|
"transactions": "Transactions",
|
301
334
|
"type": "Type",
|
335
|
+
"uom": "UoM",
|
302
336
|
"updatePackagingUnitErrorMessage": "Error updating package unit {{name}}",
|
303
337
|
"updatePackagingUnitErrorTitle": "Package Unit",
|
304
338
|
"updatePackingUnitMessage": "Package Unit {{ name }} updated successfully",
|
package/tsconfig.json
CHANGED
@@ -1,24 +1,14 @@
|
|
1
1
|
{
|
2
2
|
"compilerOptions": {
|
3
|
-
"esModuleInterop": true,
|
4
|
-
"module": "esnext",
|
5
3
|
"allowSyntheticDefaultImports": true,
|
4
|
+
"esModuleInterop": true,
|
6
5
|
"jsx": "react",
|
7
|
-
"
|
6
|
+
"lib": ["dom", "scripthost", "es2020", "es2021", "es2022"],
|
7
|
+
"module": "esnext",
|
8
8
|
"moduleResolution": "node",
|
9
|
-
"lib": [
|
10
|
-
"dom",
|
11
|
-
"es5",
|
12
|
-
"scripthost",
|
13
|
-
"es2015",
|
14
|
-
"es2015.promise",
|
15
|
-
"es2016.array.include",
|
16
|
-
"es2018",
|
17
|
-
"es2020",
|
18
|
-
"es2021"
|
19
|
-
],
|
20
|
-
"resolveJsonModule": true,
|
21
9
|
"noEmit": true,
|
10
|
+
"resolveJsonModule": true,
|
11
|
+
"skipLibCheck": true,
|
22
12
|
"target": "esnext"
|
23
13
|
}
|
24
14
|
}
|