@openmrs/esm-stock-management-app 1.0.1-pre.543 → 1.0.1-pre.548
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/271.js +1 -1
- package/dist/{157.js → 281.js} +1 -1
- package/dist/281.js.map +1 -0
- package/dist/319.js +1 -1
- package/dist/460.js +1 -1
- package/dist/574.js +1 -1
- package/dist/757.js +1 -1
- package/dist/788.js +1 -1
- package/dist/807.js +1 -1
- package/dist/833.js +1 -1
- package/dist/main.js +1 -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 +52 -52
- package/dist/routes.json +1 -1
- package/package.json +1 -1
- package/src/stock-home/stock-home-detail-cards.component.tsx +3 -3
- package/src/stock-home/stock-home-metrics.tsx +6 -1
- package/src/stock-items/add-stock-item/packaging-units/packaging-units-delete-modal.component.tsx +4 -1
- package/src/stock-items/add-stock-item/stock-item-details/stock-item-details.component.tsx +1 -1
- package/src/stock-items/add-stock-item/stock-item-units-edit/stock-item-units-edit.component.tsx +20 -15
- package/src/stock-operations/add-stock-operation/base-operation-details.component.tsx +4 -4
- package/src/stock-operations/add-stock-operation/received-items.component.tsx +6 -3
- package/src/stock-operations/add-stock-operation/stock-items-addition.component.tsx +3 -3
- package/src/stock-operations/stock-operation-types-selector/stock-operation-types-selector.component.tsx +2 -2
- package/src/stock-operations/stock-operations-dialog/stock-operations-dialog.component.tsx +16 -6
- package/src/stock-operations/stock-operations-filters.component.tsx +1 -1
- package/src/stock-operations/stock-operations-table.component.tsx +82 -122
- package/src/stock-operations/stock-operations-table.scss +61 -0
- package/src/stock-operations/stock-operations.resource.ts +0 -1
- package/translations/am.json +20 -11
- package/translations/ar.json +24 -15
- package/translations/en.json +20 -11
- package/translations/es.json +25 -16
- package/translations/fr.json +32 -23
- package/translations/he.json +21 -12
- package/translations/km.json +22 -13
- package/translations/zh.json +20 -11
- package/dist/157.js.map +0 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { useCallback,
|
1
|
+
import React, { useCallback, useMemo, useState } from "react";
|
2
2
|
import { useStockOperationPages } from "./stock-operations-table.resource";
|
3
3
|
import { ResourceRepresentation } from "../core/api/api";
|
4
4
|
import {
|
@@ -30,10 +30,10 @@ import {
|
|
30
30
|
DatePicker,
|
31
31
|
TableToolbarMenu,
|
32
32
|
TableToolbarAction,
|
33
|
+
InlineLoading,
|
33
34
|
} from "@carbon/react";
|
34
35
|
import { ArrowRight } from "@carbon/react/icons";
|
35
36
|
import { formatDisplayDate } from "../core/utils/datetimeUtils";
|
36
|
-
import styles from "../stock-items/stock-items-table.scss";
|
37
37
|
import {
|
38
38
|
StockOperationStatusCancelled,
|
39
39
|
StockOperationStatusNew,
|
@@ -43,8 +43,8 @@ import {
|
|
43
43
|
import {
|
44
44
|
isDesktop,
|
45
45
|
restBaseUrl,
|
46
|
-
showModal,
|
47
46
|
useConfig,
|
47
|
+
showModal,
|
48
48
|
} from "@openmrs/esm-framework";
|
49
49
|
import StockOperationTypesSelector from "./stock-operation-types-selector/stock-operation-types-selector.component";
|
50
50
|
import { launchAddOrEditDialog } from "./stock-operation.utils";
|
@@ -59,6 +59,9 @@ import {
|
|
59
59
|
StockFilters,
|
60
60
|
} from "../constants";
|
61
61
|
import { handleMutate } from "../utils";
|
62
|
+
|
63
|
+
import styles from "./stock-operations-table.scss";
|
64
|
+
|
62
65
|
interface StockOperationsTableProps {
|
63
66
|
status?: string;
|
64
67
|
}
|
@@ -95,6 +98,12 @@ const StockOperations: React.FC<StockOperationsTableProps> = () => {
|
|
95
98
|
[]
|
96
99
|
);
|
97
100
|
|
101
|
+
const [selectedFromDate, setSelectedFromDate] = useState(null);
|
102
|
+
const [selectedToDate, setSelectedToDate] = useState(null);
|
103
|
+
const [selectedSources, setSelectedSources] = useState<string[]>([]);
|
104
|
+
const [selectedStatus, setSelectedStatus] = useState<string[]>([]);
|
105
|
+
const [selectedOperations, setSelectedOperations] = useState<string[]>([]);
|
106
|
+
|
98
107
|
const {
|
99
108
|
items,
|
100
109
|
tableHeaders,
|
@@ -108,17 +117,24 @@ const StockOperations: React.FC<StockOperationsTableProps> = () => {
|
|
108
117
|
} = useStockOperationPages({
|
109
118
|
v: ResourceRepresentation.Full,
|
110
119
|
totalCount: true,
|
120
|
+
operationDateMin: selectedFromDate?.toISOString(),
|
121
|
+
operationDateMax: selectedToDate?.toISOString(),
|
122
|
+
status: selectedStatus.join(","),
|
123
|
+
sourceTypeUuid: selectedSources.join(","),
|
124
|
+
operationTypeUuid: selectedOperations.join(","),
|
111
125
|
});
|
112
126
|
|
113
|
-
const
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
127
|
+
const filterApplied =
|
128
|
+
selectedFromDate ||
|
129
|
+
selectedToDate ||
|
130
|
+
selectedSources.length ||
|
131
|
+
selectedStatus.length ||
|
132
|
+
selectedOperations.length;
|
133
|
+
|
119
134
|
const config = useConfig();
|
120
135
|
|
121
136
|
let operations: StockOperationType[] | null | undefined;
|
137
|
+
|
122
138
|
const handleOnComplete = () => {
|
123
139
|
const dispose = showModal("stock-operation-dialog", {
|
124
140
|
title: "complete",
|
@@ -127,19 +143,6 @@ const StockOperations: React.FC<StockOperationsTableProps> = () => {
|
|
127
143
|
handleMutate(`${restBaseUrl}/stockmanagement/stockoperation`);
|
128
144
|
};
|
129
145
|
|
130
|
-
useEffect(() => {
|
131
|
-
filterItems();
|
132
|
-
}, [
|
133
|
-
selectedFromDate,
|
134
|
-
selectedToDate,
|
135
|
-
selectedSources,
|
136
|
-
selectedStatus,
|
137
|
-
selectedOperations,
|
138
|
-
currentPage,
|
139
|
-
currentPageSize,
|
140
|
-
items,
|
141
|
-
]);
|
142
|
-
|
143
146
|
const handleOnFilterChange = useCallback((selectedItems, filterType) => {
|
144
147
|
if (filterType === StockFilters.SOURCES) {
|
145
148
|
setSelectedSources(selectedItems);
|
@@ -165,51 +168,15 @@ const StockOperations: React.FC<StockOperationsTableProps> = () => {
|
|
165
168
|
}
|
166
169
|
};
|
167
170
|
|
168
|
-
const filterItems = () => {
|
169
|
-
let filtered = items;
|
170
|
-
|
171
|
-
if (selectedSources.length > 0) {
|
172
|
-
filtered = filtered.filter((row) =>
|
173
|
-
selectedSources.includes(row.sourceName)
|
174
|
-
);
|
175
|
-
}
|
176
|
-
if (selectedOperations.length > 0) {
|
177
|
-
filtered = filtered.filter((row) =>
|
178
|
-
selectedOperations.includes(row.operationTypeName)
|
179
|
-
);
|
180
|
-
}
|
181
|
-
if (selectedStatus.length > 0) {
|
182
|
-
filtered = filtered.filter((row) => selectedStatus.includes(row.status));
|
183
|
-
}
|
184
|
-
if (selectedFromDate && selectedToDate) {
|
185
|
-
filtered = filtered.filter((row) => {
|
186
|
-
const itemDate = new Date(row.operationDate);
|
187
|
-
return itemDate >= selectedFromDate && itemDate <= selectedToDate;
|
188
|
-
});
|
189
|
-
} else if (selectedFromDate) {
|
190
|
-
filtered = filtered.filter((row) => {
|
191
|
-
const itemDate = new Date(row.operationDate);
|
192
|
-
return itemDate >= selectedFromDate;
|
193
|
-
});
|
194
|
-
} else if (selectedToDate) {
|
195
|
-
filtered = filtered.filter((row) => {
|
196
|
-
const itemDate = new Date(row.operationDate);
|
197
|
-
return itemDate <= selectedToDate;
|
198
|
-
});
|
199
|
-
}
|
200
|
-
|
201
|
-
setFilteredItems(filtered);
|
202
|
-
};
|
203
|
-
|
204
171
|
const tableRows = useMemo(() => {
|
205
|
-
return
|
172
|
+
return items?.map((stockOperation, index) => ({
|
206
173
|
...stockOperation,
|
207
174
|
id: stockOperation?.uuid,
|
208
175
|
key: `key-${stockOperation?.uuid}`,
|
209
176
|
operationTypeName: `${stockOperation?.operationTypeName}`,
|
210
177
|
operationNumber: (
|
211
178
|
<EditStockOperationActionMenu
|
212
|
-
model={
|
179
|
+
model={items[index]}
|
213
180
|
operations={operations}
|
214
181
|
/>
|
215
182
|
),
|
@@ -348,7 +315,7 @@ const StockOperations: React.FC<StockOperationsTableProps> = () => {
|
|
348
315
|
onClick={() => {
|
349
316
|
launchAddOrEditDialog(
|
350
317
|
t,
|
351
|
-
|
318
|
+
items[index],
|
352
319
|
true,
|
353
320
|
operation,
|
354
321
|
operations,
|
@@ -359,9 +326,9 @@ const StockOperations: React.FC<StockOperationsTableProps> = () => {
|
|
359
326
|
</OverflowMenu>
|
360
327
|
),
|
361
328
|
}));
|
362
|
-
}, [
|
329
|
+
}, [items, operation, operations, t]);
|
363
330
|
|
364
|
-
if (isLoading) {
|
331
|
+
if (isLoading && !filterApplied) {
|
365
332
|
return (
|
366
333
|
<DataTableSkeleton
|
367
334
|
className={styles.dataTableSkeleton}
|
@@ -531,47 +498,39 @@ const StockOperations: React.FC<StockOperationsTableProps> = () => {
|
|
531
498
|
<StructuredListBody>
|
532
499
|
<StructuredListRow>
|
533
500
|
<StructuredListCell noWrap>
|
534
|
-
{
|
535
|
-
? formatDisplayDate(
|
536
|
-
filteredItems[index]?.dateCreated
|
537
|
-
)
|
501
|
+
{items[index]?.dateCreated
|
502
|
+
? formatDisplayDate(items[index]?.dateCreated)
|
538
503
|
: ""}
|
539
504
|
|
540
|
-
{
|
505
|
+
{items[index]?.dateCreated ? "By" : ""}
|
541
506
|
|
542
|
-
{
|
543
|
-
?
|
507
|
+
{items[index]?.dateCreated
|
508
|
+
? items[index]?.creatorFamilyName
|
544
509
|
: ""}
|
545
510
|
</StructuredListCell>
|
546
511
|
<StructuredListCell>
|
547
|
-
{
|
512
|
+
{items[index]?.completedDate
|
548
513
|
? formatDisplayDate(
|
549
|
-
|
514
|
+
items[index]?.completedDate
|
550
515
|
)
|
551
516
|
: ""}
|
552
517
|
|
553
|
-
{
|
554
|
-
? "By"
|
555
|
-
: ""}
|
518
|
+
{items[index]?.completedDate ? "By" : ""}
|
556
519
|
|
557
|
-
{
|
558
|
-
?
|
520
|
+
{items[index]?.completedDate
|
521
|
+
? items[index]?.creatorFamilyName
|
559
522
|
: ""}
|
560
523
|
</StructuredListCell>
|
561
524
|
<StructuredListCell>
|
562
|
-
{
|
563
|
-
?
|
564
|
-
index
|
565
|
-
].stockOperationItems?.map(
|
525
|
+
{items[index]?.stockOperationItems
|
526
|
+
? items[index].stockOperationItems?.map(
|
566
527
|
(item) => item.batchNo
|
567
528
|
)[0]
|
568
529
|
: ""}
|
569
530
|
</StructuredListCell>
|
570
531
|
<StructuredListCell>
|
571
|
-
{
|
572
|
-
?
|
573
|
-
index
|
574
|
-
].stockOperationItems?.map(
|
532
|
+
{items[index]?.stockOperationItems
|
533
|
+
? items[index].stockOperationItems?.map(
|
575
534
|
(item) => item.quantity
|
576
535
|
)[0]
|
577
536
|
: ""}
|
@@ -579,61 +538,55 @@ const StockOperations: React.FC<StockOperationsTableProps> = () => {
|
|
579
538
|
</StructuredListRow>
|
580
539
|
<StructuredListRow>
|
581
540
|
<StructuredListCell noWrap>
|
582
|
-
{
|
541
|
+
{items[index]?.stockOperationItems.map(
|
583
542
|
(item) => item.quantity
|
584
543
|
)[1]
|
585
|
-
? formatDisplayDate(
|
586
|
-
filteredItems[index]?.dateCreated
|
587
|
-
)
|
544
|
+
? formatDisplayDate(items[index]?.dateCreated)
|
588
545
|
: ""}
|
589
546
|
|
590
|
-
{
|
547
|
+
{items[index]?.stockOperationItems.map(
|
591
548
|
(item) => item.quantity
|
592
549
|
)[1]
|
593
550
|
? "By"
|
594
551
|
: ""}
|
595
552
|
|
596
|
-
{
|
553
|
+
{items[index]?.stockOperationItems.map(
|
597
554
|
(item) => item.quantity
|
598
555
|
)[1]
|
599
|
-
?
|
556
|
+
? items[index]?.creatorFamilyName
|
600
557
|
: ""}
|
601
558
|
</StructuredListCell>
|
602
559
|
<StructuredListCell>
|
603
|
-
{
|
560
|
+
{items[index]?.stockOperationItems.map(
|
604
561
|
(item) => item.quantity
|
605
562
|
)[1]
|
606
563
|
? formatDisplayDate(
|
607
|
-
|
564
|
+
items[index]?.completedDate
|
608
565
|
)
|
609
566
|
: ""}
|
610
567
|
|
611
|
-
{
|
568
|
+
{items[index]?.stockOperationItems.map(
|
612
569
|
(item) => item.quantity
|
613
|
-
)[1] &&
|
570
|
+
)[1] && items[index]?.completedDate
|
614
571
|
? "By"
|
615
572
|
: ""}
|
616
573
|
|
617
|
-
{
|
574
|
+
{items[index]?.stockOperationItems.map(
|
618
575
|
(item) => item.quantity
|
619
|
-
)[1] &&
|
576
|
+
)[1] && items[index]?.completedDate
|
620
577
|
? items[index]?.creatorFamilyName
|
621
578
|
: ""}
|
622
579
|
</StructuredListCell>
|
623
580
|
<StructuredListCell>
|
624
|
-
{
|
625
|
-
?
|
626
|
-
index
|
627
|
-
].stockOperationItems?.map(
|
581
|
+
{items[index]?.stockOperationItems
|
582
|
+
? items[index].stockOperationItems?.map(
|
628
583
|
(item) => item.batchNo
|
629
584
|
)[1]
|
630
585
|
: ""}
|
631
586
|
</StructuredListCell>
|
632
587
|
<StructuredListCell>
|
633
|
-
{
|
634
|
-
?
|
635
|
-
index
|
636
|
-
].stockOperationItems?.map(
|
588
|
+
{items[index]?.stockOperationItems
|
589
|
+
? items[index].stockOperationItems?.map(
|
637
590
|
(item) => item.quantity
|
638
591
|
)[1]
|
639
592
|
: ""}
|
@@ -647,7 +600,7 @@ const StockOperations: React.FC<StockOperationsTableProps> = () => {
|
|
647
600
|
})}
|
648
601
|
</TableBody>
|
649
602
|
</Table>
|
650
|
-
{rows.length === 0 ? (
|
603
|
+
{rows.length === 0 && !isLoading ? (
|
651
604
|
<div className={styles.tileContainer}>
|
652
605
|
<Tile className={styles.tile}>
|
653
606
|
<div className={styles.tileContent}>
|
@@ -661,24 +614,31 @@ const StockOperations: React.FC<StockOperationsTableProps> = () => {
|
|
661
614
|
</Tile>
|
662
615
|
</div>
|
663
616
|
) : null}
|
617
|
+
{filterApplied && isLoading && (
|
618
|
+
<div className={styles.rowLoadingContainer}>
|
619
|
+
<InlineLoading description={t("loading", "Loading...")} />
|
620
|
+
</div>
|
621
|
+
)}
|
664
622
|
</TableContainer>
|
665
623
|
)}
|
666
624
|
></DataTable>
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
|
625
|
+
{items.length > 0 && (
|
626
|
+
<Pagination
|
627
|
+
page={currentPage}
|
628
|
+
pageSize={currentPageSize}
|
629
|
+
pageSizes={pageSizes}
|
630
|
+
totalItems={totalItems}
|
631
|
+
onChange={({ pageSize, page }) => {
|
632
|
+
if (pageSize !== currentPageSize) {
|
633
|
+
setPageSize(pageSize);
|
634
|
+
}
|
635
|
+
if (page !== currentPage) {
|
636
|
+
goTo(page);
|
637
|
+
}
|
638
|
+
}}
|
639
|
+
className={styles.paginationOverride}
|
640
|
+
/>
|
641
|
+
)}
|
682
642
|
</div>
|
683
643
|
);
|
684
644
|
};
|
@@ -0,0 +1,61 @@
|
|
1
|
+
@use '@carbon/styles/scss/spacing';
|
2
|
+
@use '@carbon/styles/scss/type';
|
3
|
+
@import "~@openmrs/esm-styleguide/src/vars";
|
4
|
+
@import '../root.scss';
|
5
|
+
|
6
|
+
.tileContainer {
|
7
|
+
background-color: $ui-02;
|
8
|
+
border-top: 1px solid $ui-03;
|
9
|
+
padding: 5rem 0;
|
10
|
+
}
|
11
|
+
|
12
|
+
.tile {
|
13
|
+
margin: auto;
|
14
|
+
width: fit-content;
|
15
|
+
}
|
16
|
+
|
17
|
+
.tileContent {
|
18
|
+
display: flex;
|
19
|
+
flex-direction: column;
|
20
|
+
align-items: center;
|
21
|
+
}
|
22
|
+
|
23
|
+
.content {
|
24
|
+
@include type.type-style('heading-compact-02');
|
25
|
+
color: $text-02;
|
26
|
+
margin-bottom: 0.5rem;
|
27
|
+
}
|
28
|
+
|
29
|
+
.helper {
|
30
|
+
@include type.type-style('body-compact-01');
|
31
|
+
color: $text-02;
|
32
|
+
}
|
33
|
+
|
34
|
+
.toolbarContent {
|
35
|
+
display: flex;
|
36
|
+
align-items: center;
|
37
|
+
}
|
38
|
+
|
39
|
+
.filterContainer {
|
40
|
+
display: flex;
|
41
|
+
align-items: center;
|
42
|
+
}
|
43
|
+
|
44
|
+
.dateAlign {
|
45
|
+
padding-top: spacing.$spacing-03;
|
46
|
+
height: 100%;
|
47
|
+
}
|
48
|
+
|
49
|
+
.filterContainer {
|
50
|
+
display: flex;
|
51
|
+
align-items: center;
|
52
|
+
justify-content: space-between;
|
53
|
+
margin-bottom: spacing.$spacing-05;
|
54
|
+
}
|
55
|
+
|
56
|
+
.rowLoadingContainer {
|
57
|
+
text-align: center;
|
58
|
+
padding: 5rem 2rem;
|
59
|
+
margin: auto;
|
60
|
+
width: 20%;
|
61
|
+
}
|
@@ -7,7 +7,6 @@ import useSWR from "swr";
|
|
7
7
|
import { ResourceFilterCriteria, toQueryParams } from "../core/api/api";
|
8
8
|
import { PageableResult } from "../core/api/types/PageableResult";
|
9
9
|
import { StockOperationDTO } from "../core/api/types/stockOperation/StockOperationDTO";
|
10
|
-
import { StockOperationLinkDTO } from "../core/api/types/stockOperation/StockOperationLinkDTO";
|
11
10
|
import { StopOperationAction } from "../core/api/types/stockOperation/StockOperationAction";
|
12
11
|
import { InventoryGroupBy } from "../core/api/types/stockItem/StockItem";
|
13
12
|
|
package/translations/am.json
CHANGED
@@ -23,6 +23,7 @@
|
|
23
23
|
"alertRole": "እርምጃ ሚና",
|
24
24
|
"all": "ሁሉም",
|
25
25
|
"approve": "ተግባር",
|
26
|
+
"batch": "ባች ቁጥር",
|
26
27
|
"batchInformation": "የአጠቃላይ መረጃ",
|
27
28
|
"batchJob": "አጠቃላይ ስራ",
|
28
29
|
"batchJobErrorMessage": "የአጠቃላይ ስራ መፍጠር ስህተት",
|
@@ -33,6 +34,7 @@
|
|
33
34
|
"by": "በ",
|
34
35
|
"cancel": "ሰርዝ",
|
35
36
|
"cancelled": "ተሰርዝ",
|
37
|
+
"category": "ምድብ",
|
36
38
|
"checkFilters": "ላይ ያሉትን ስንስና ይፈትሹ",
|
37
39
|
"childLocations": "የሕፃናት ቦታዎች",
|
38
40
|
"chooseACategory": "አንድ ክፍል ይምረጡ",
|
@@ -61,6 +63,7 @@
|
|
61
63
|
"dateCompleted": "ቀን ተጠናቋል",
|
62
64
|
"dateCreated": "ቀን ተፈጠረ",
|
63
65
|
"dateRequested": "ቀን ተጠየቀ",
|
66
|
+
"defaultStockOperationsPackagingUnit": "ነባሪ የአክሲዮን ኦፕሬሽኖች ማሸጊያ ክፍል",
|
64
67
|
"defaultStockOperationsUoMName": "በትር ማስገባት",
|
65
68
|
"delete": "አጥፋ",
|
66
69
|
"deleteConfirmationText": "እርስዎ ይህን የተጠቃሚ እንደምን ያጥፋሉ? ይህ እርምጃ አይመለስም።",
|
@@ -111,14 +114,12 @@
|
|
111
114
|
"errorDeletingRule": "ህግ ማጥፋት ስህተት",
|
112
115
|
"errorDeletingSource": "ምንጭ ማጥፋት ስህተት",
|
113
116
|
"errorDeletingUserScope": "የተጠቃሚ ወሰን መሰረዝ ላይ ስህተት",
|
114
|
-
"errorDescription": "",
|
115
|
-
"errorDescriptionTitle": "በቅጽ መጠቀም ላይ ስህተት",
|
116
117
|
"errorEditingStockItem": "የተመንዝር እቃ ማስተካከያ ስህተት",
|
117
118
|
"errorLoadingStockOperation": "የተመንዝር እቃ ማስገባት ስህተት",
|
118
119
|
"errorSavingBaseOperation": "በመሠረት እንዴት መቆርጣት ስህተት",
|
119
120
|
"errorSavingForm": "ቅጽ መቆርጣት ስህተት",
|
120
121
|
"errorSavingUserRoleScope": "የተጠቃሚ ሚና ድርጊት መቆርጣት ስህተት",
|
121
|
-
"errorStockMetric": "",
|
122
|
+
"errorStockMetric": "Error fetching stock metrics",
|
122
123
|
"errorUploadingItems": "የአክሲዮን ንጥሎችን በመስቀል ላይ ስህተት ተፈጥሯል።",
|
123
124
|
"evaluationFrequency": "የእንቅስቃሴ እንደምን ተግባር (ደቂቀ ደቂቀ)",
|
124
125
|
"expirationNotice": "የመጨረሻ ማስታወቂያ (ቀን)",
|
@@ -142,11 +143,11 @@
|
|
142
143
|
"importStockItems": "የተመንዝር እቃዎችን አስመጣ",
|
143
144
|
"in6Months": "በ 6 ወራት ውስጥ",
|
144
145
|
"includeChildLocations": "የልጆች አካባቢዎችን ያካትቱ",
|
145
|
-
"
|
146
|
+
"inventory Alerts": "የእቃ ዝርዝር ማንቂያዎች",
|
146
147
|
"inventoryAlertNull": "የእንቅስቃሴ ማስጠንቀቂያ የለም",
|
147
148
|
"inventoryBy": "እንቅስቃሴ እንደ",
|
148
149
|
"issueStock": "የተመንዝር ማቅረብ",
|
149
|
-
"
|
150
|
+
"issuing": "በማውጣት ላይ",
|
150
151
|
"issuingNull": "የማቅረብ የለም",
|
151
152
|
"item": "እቃ",
|
152
153
|
"itemAlreadyExists": "እቃው ቀድሞ አለ",
|
@@ -185,6 +186,9 @@
|
|
185
186
|
"noViewPrivilegesDescription": "ትርጉም አልተሰጠም",
|
186
187
|
"number": "ቁጥር",
|
187
188
|
"operationDate": "የእንቅስቃሴ ቀን",
|
189
|
+
"operationModalTitle": "{{title}} ኦፕሬሽን",
|
190
|
+
"operationSuccessful": "በተሳካ ሁኔታ አለህ {{title}} ኦፕሬሽን",
|
191
|
+
"operationSuccessTitle": "{{title}} ኦፕሬሽን",
|
188
192
|
"orderLevel": "እንደ መዝገብ አስተካክል:",
|
189
193
|
"other": "ሌላ",
|
190
194
|
"outofstock": "የተጠናቀቀ",
|
@@ -203,30 +207,35 @@
|
|
203
207
|
"providersAvailableToday": "የተዘገበ እንደምንዝር",
|
204
208
|
"purchasePrice": "የግዢ ዋጋ",
|
205
209
|
"purchasePricePackagingUnit": "የግዢ ዋጋ የጥቅም እቃ:",
|
206
|
-
"qty": "ብዛት",
|
207
|
-
"qtyIssued": "ብዛት እንደምንዝር",
|
208
210
|
"quantities": "ብዛቶች",
|
209
211
|
"quantity": "ብዛት ድንጋይ",
|
212
|
+
"quantityIssued": "የተሰጠው ብዛት",
|
213
|
+
"quantityReceived": "የተቀበለው መጠን",
|
210
214
|
"quantityRequested": "የተጠየቀ ብዛት",
|
215
|
+
"quantitySent": "ብዛት ተልኳል።",
|
211
216
|
"quantityUnit": "የብዛት እቃ",
|
212
|
-
"
|
217
|
+
"quantityUoM": "የመለኪያ ብዛት (UoM)",
|
213
218
|
"rank": "እኩል",
|
214
219
|
"reason": "ምክንያት",
|
215
220
|
"reasonLabel": "እቅድ ያስረዱኝ:",
|
216
221
|
"reasonPlaceholder": "ምክንያት እዚህ ግብዣ",
|
222
|
+
"receivedItems": "የተቀበሉት እቃዎች",
|
217
223
|
"receivedNull": "የተቀበለ የለም",
|
218
224
|
"receivedView": "ሁሉንም ይያዙ",
|
219
|
-
"
|
225
|
+
"receiving": "መቀበል",
|
220
226
|
"references": "እቅድ",
|
221
227
|
"reject": "ድርስ",
|
222
228
|
"rejected": "ተከስቷል",
|
223
229
|
"rejectOrder": "የማድረግ ትእዛዝ",
|
230
|
+
"remarks": "አስተያየቶች",
|
224
231
|
"removePackagingUnit": "የጥቅም እቃን አስወግድ",
|
225
232
|
"removePackagingUnitConfirmation": "እቅድ አስወግድ",
|
226
233
|
"reorderLevel": "እንደ ተደርጓል",
|
234
|
+
"reorderLevelPackagingUnit": "የማሸጊያ ክፍልን እንደገና ይዘዙ",
|
227
235
|
"report": "ሪፖርት",
|
228
236
|
"ReportDescription": "ተጠየቁት ሪፖርቶች ዝርዝር",
|
229
237
|
"reportName": "ሪፖርት",
|
238
|
+
"requested": "ተጠይቋል",
|
230
239
|
"requestedBy": "በሚጠየቁት",
|
231
240
|
"responsiblePerson": "የተጠቃሚ ሰው",
|
232
241
|
"return": "እንደምንዝር",
|
@@ -259,6 +268,8 @@
|
|
259
268
|
"stockOperation": "የተመንዝር እንቅስቃሴ",
|
260
269
|
"stockOperationAdded": "የተመንዝር እንቅስቃሴ በተሳካ ሁኔታ ተጨምሯል",
|
261
270
|
"stockOperationEdited": "የተመንዝር እንቅስቃሴ በተሳካ ሁኔታ ተለዋዋጭነት ሰጠ",
|
271
|
+
"stockOperationErrorDescription": "ዝርዝሮች፡ {{message}}",
|
272
|
+
"stockOperationErrorTitle": "ቅጽ በማስቀመጥ ላይ ስህተት",
|
262
273
|
"stockOperations": "የተመንዝር እንቅስቃሴዎች",
|
263
274
|
"stockOperationTrackMovement": "የአክሲዮን እንቅስቃሴን ለመከታተል የአክሲዮን ክንዋኔዎች።",
|
264
275
|
"stockRuleAddedSuccessfully": "የአክሲዮን ደንብ በተሳካ ሁኔታ ታክሏል።",
|
@@ -272,10 +283,8 @@
|
|
272
283
|
"submitted": "ተጠይቷል",
|
273
284
|
"successfullysaved": "የተጠቃሚ ሚና አካባቢ በተሳካ ሁኔታ ተስተካክሏል",
|
274
285
|
"SuccessfullyUploadedStockItem": "የአክሲዮን ንጥሎችን በተሳካ ሁኔታ ሰቅለዋል።",
|
275
|
-
"successMessage": "ተጠቃሚ ሚና እንደምንዝር",
|
276
286
|
"tabletOverlay": "ታብሌት አውርስ",
|
277
287
|
"tags": "ታጣቂዎች",
|
278
|
-
"title": "ርዕስ",
|
279
288
|
"toggleMessage": "ይህንን አስተዋውቅ በተመረጡት ቦታ ላይ ይጠቀሙ።",
|
280
289
|
"tradeName": "የንግድ ስም",
|
281
290
|
"transactions": "ግብይቶች",
|