@openmrs/esm-stock-management-app 1.0.1-pre.785 → 1.0.1-pre.790
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/493.js +1 -1
- package/dist/493.js.map +1 -1
- package/dist/880.js +1 -0
- package/dist/880.js.map +1 -0
- package/dist/942.js +1 -0
- package/dist/942.js.map +1 -0
- 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 +41 -41
- package/dist/routes.json +1 -1
- package/package.json +1 -1
- package/src/config-schema.ts +6 -0
- package/src/index.ts +15 -21
- package/src/routes.json +5 -4
- package/src/stock-operations/add-stock-operation/stock-operations-expanded-row/stock-items-table.scss +34 -0
- package/src/stock-operations/add-stock-operation/stock-operations-expanded-row/stock-items-table.tsx +111 -0
- package/src/stock-operations/add-stock-operation/stock-operations-expanded-row/stock-operation-expanded-row.component.tsx +116 -0
- package/src/stock-operations/add-stock-operation/stock-operations-expanded-row/stock-operation-expanded-row.scss +31 -0
- package/src/stock-operations/add-stock-operation/stock-operations-expanded-row/stock-operations-status.tsx +45 -0
- package/src/stock-operations/edit-stock-operation/edit-stock-operation-action-menu.component.tsx +2 -2
- package/src/stock-operations/stock-operation-actions.component.tsx +81 -0
- package/src/stock-operations/stock-operation-links.component.tsx +82 -0
- package/src/stock-operations/stock-operation-reference.component.tsx +2 -2
- package/src/stock-operations/stock-operation-types-selector/stock-operation-types-selector.component.tsx +2 -2
- package/src/stock-operations/stock-operation.utils.tsx +8 -13
- package/src/stock-operations/stock-operations-dialog/stock-operations-issue-stock-button.component.tsx +2 -2
- package/src/stock-operations/stock-operations-forms/input-components/stock-item-search.component.tsx +30 -7
- package/src/stock-operations/stock-operations-forms/step1.test.tsx +158 -17
- package/src/stock-operations/stock-operations-forms/step2.test.tsx +59 -10
- package/src/stock-operations/stock-operations-forms/step3.test.tsx +63 -10
- package/src/stock-operations/stock-operations-forms/steps/base-operation-details-form-step.tsx +11 -9
- package/src/stock-operations/stock-operations-forms/steps/received-items.component.tsx +111 -0
- package/src/stock-operations/stock-operations-forms/steps/stock-operation-item-cell.component.tsx +20 -9
- package/src/stock-operations/stock-operations-forms/steps/stock-operation-items-form-step.component.tsx +21 -46
- package/src/stock-operations/stock-operations-forms/steps/stock-operation-items-form-step.scc.scss +4 -18
- package/src/stock-operations/stock-operations-forms/steps/stock-operation-submission-form-step.component.tsx +22 -10
- package/src/stock-operations/stock-operations-forms/stock-issue-form-initializer-with-related-requisition-operation.component.tsx +20 -3
- package/src/stock-operations/stock-operations-forms/stock-item-form/stock-item-form.workspace.tsx +19 -7
- package/src/stock-operations/stock-operations-forms/stock-operation-form.component.tsx +114 -67
- package/src/stock-operations/stock-operations-forms/stock-operation-form.scss +5 -24
- package/src/stock-operations/stock-operations-forms/stock-operation-related-link.component.tsx +2 -2
- package/src/stock-operations/stock-operations-forms/stock-operation-stepper/stepper.scss +14 -11
- package/src/stock-operations/stock-operations-forms/stock-operation-stepper/stock-operation-stepper.component.tsx +2 -6
- package/src/stock-operations/stock-operations-table.component.tsx +39 -38
- package/src/stock-operations/stock-operations-table.scss +20 -0
- package/dist/155.js +0 -1
- package/dist/155.js.map +0 -1
- package/dist/914.js +0 -1
- package/dist/914.js.map +0 -1
- package/src/stock-operations/received-items.component.tsx +0 -93
- package/src/stock-operations/stock-operations-forms/stock-operation-form-header.component.tsx +0 -166
@@ -1,93 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { useTranslation } from 'react-i18next';
|
3
|
-
import { StockOperationDTO } from '../core/api/types/stockOperation/StockOperationDTO';
|
4
|
-
import {
|
5
|
-
DataTable,
|
6
|
-
Table,
|
7
|
-
TableBody,
|
8
|
-
TableContainer,
|
9
|
-
TableHead,
|
10
|
-
TableHeader,
|
11
|
-
TableRow,
|
12
|
-
TableCell,
|
13
|
-
DataTableSkeleton,
|
14
|
-
} from '@carbon/react';
|
15
|
-
|
16
|
-
const formatDate = (date: Date | string | null) => {
|
17
|
-
if (!date) return ' ';
|
18
|
-
const d = new Date(date);
|
19
|
-
const day = String(d.getDate()).padStart(2, '0');
|
20
|
-
const month = String(d.getMonth() + 1).padStart(2, '0');
|
21
|
-
const year = d.getFullYear();
|
22
|
-
return `${month}/${day}/${year}`;
|
23
|
-
};
|
24
|
-
|
25
|
-
interface ReceivedItemsProps {
|
26
|
-
model?: StockOperationDTO;
|
27
|
-
}
|
28
|
-
|
29
|
-
const ReceivedItems: React.FC<ReceivedItemsProps> = ({ model }) => {
|
30
|
-
const { t } = useTranslation();
|
31
|
-
|
32
|
-
const headers = [
|
33
|
-
{ key: 'item', header: t('item', 'Item') },
|
34
|
-
{ key: 'requested', header: t('requested', 'Requested') },
|
35
|
-
{ key: 'batch', header: t('batch', 'Batch No') },
|
36
|
-
{ key: 'expiry', header: t('expiry', 'Expiry Date') },
|
37
|
-
{ key: 'qtySent', header: t('quantitySent', 'Quantity Sent') },
|
38
|
-
{ key: 'qtyReceived', header: t('quantityReceived', 'Quantity Received') },
|
39
|
-
{
|
40
|
-
key: 'qtyUoM',
|
41
|
-
header: t('quantityUoM', 'Quantity Unit of Measurement(UoM)'),
|
42
|
-
},
|
43
|
-
];
|
44
|
-
|
45
|
-
const rows =
|
46
|
-
model?.stockOperationItems?.map((item) => ({
|
47
|
-
id: item.uuid,
|
48
|
-
item: item.stockItemName,
|
49
|
-
requested: item.quantityRequested || ' ',
|
50
|
-
batch: item.batchNo,
|
51
|
-
expiry: formatDate(item.expiration),
|
52
|
-
qtySent: item.quantity || ' ',
|
53
|
-
qtyReceived: item.quantityReceived || ' ',
|
54
|
-
qtyUoM: item.quantityReceivedPackagingUOMName,
|
55
|
-
})) || [];
|
56
|
-
|
57
|
-
if (!model) {
|
58
|
-
return <DataTableSkeleton role="progressbar" />;
|
59
|
-
}
|
60
|
-
|
61
|
-
return (
|
62
|
-
<div style={{ margin: '10px' }}>
|
63
|
-
<DataTable rows={rows} headers={headers}>
|
64
|
-
{({ rows, headers, getHeaderProps, getTableProps, getRowProps }) => (
|
65
|
-
<TableContainer>
|
66
|
-
<Table {...getTableProps()}>
|
67
|
-
<TableHead>
|
68
|
-
<TableRow>
|
69
|
-
{headers.map((header) => (
|
70
|
-
<TableHeader {...getHeaderProps({ header })} key={header.key}>
|
71
|
-
{header.header}
|
72
|
-
</TableHeader>
|
73
|
-
))}
|
74
|
-
</TableRow>
|
75
|
-
</TableHead>
|
76
|
-
<TableBody>
|
77
|
-
{rows.map((row) => (
|
78
|
-
<TableRow {...getRowProps({ row })} key={row.id}>
|
79
|
-
{row.cells.map((cell) => (
|
80
|
-
<TableCell key={cell.id}>{cell.value}</TableCell>
|
81
|
-
))}
|
82
|
-
</TableRow>
|
83
|
-
))}
|
84
|
-
</TableBody>
|
85
|
-
</Table>
|
86
|
-
</TableContainer>
|
87
|
-
)}
|
88
|
-
</DataTable>
|
89
|
-
</div>
|
90
|
-
);
|
91
|
-
};
|
92
|
-
|
93
|
-
export default ReceivedItems;
|
package/src/stock-operations/stock-operations-forms/stock-operation-form-header.component.tsx
DELETED
@@ -1,166 +0,0 @@
|
|
1
|
-
import React, { useMemo } from 'react';
|
2
|
-
import { useTranslation } from 'react-i18next';
|
3
|
-
import { StockOperationDTO } from '../../core/api/types/stockOperation/StockOperationDTO';
|
4
|
-
import {
|
5
|
-
operationFromString,
|
6
|
-
OperationType,
|
7
|
-
StockOperationType,
|
8
|
-
StockOperationTypeHasPrint,
|
9
|
-
} from '../../core/api/types/stockOperation/StockOperationType';
|
10
|
-
import StockOperationApprovalButton from '../stock-operations-dialog/stock-operations-approve-button.component';
|
11
|
-
import StockOperationApproveDispatchButton from '../stock-operations-dialog/stock-operations-approve-dispatch-button.component';
|
12
|
-
import StockOperationCancelButton from '../stock-operations-dialog/stock-operations-cancel-button.component';
|
13
|
-
import StockOperationCompleteDispatchButton from '../stock-operations-dialog/stock-operations-completed-dispatch-button.component';
|
14
|
-
import StockOperationIssueStockButton from '../stock-operations-dialog/stock-operations-issue-stock-button.component';
|
15
|
-
import StockOperationPrintButton from '../stock-operations-dialog/stock-operations-print-button.component';
|
16
|
-
import StockOperationRejectButton from '../stock-operations-dialog/stock-operations-reject-button.component';
|
17
|
-
import StockOperationReturnButton from '../stock-operations-dialog/stock-operations-return-button.component';
|
18
|
-
import { operationStatusColor } from '../stock-operations.resource';
|
19
|
-
import useOperationTypePermisions from './hooks/useOperationTypePermisions';
|
20
|
-
import useStockOperationLinks from './hooks/useStockOperationLinks';
|
21
|
-
import styles from './stock-operation-form.scss';
|
22
|
-
import StockOperationRelatedLink from './stock-operation-related-link.component';
|
23
|
-
import StockOperationStatusRow from '../stock-operation-status/stock-operation-status-row';
|
24
|
-
|
25
|
-
type Props = {
|
26
|
-
stockOperation: StockOperationDTO;
|
27
|
-
stockOperationType: StockOperationType;
|
28
|
-
};
|
29
|
-
|
30
|
-
const StockOperationFormHeader: React.FC<Props> = ({ stockOperationType, stockOperation }) => {
|
31
|
-
const operationTypePermision = useOperationTypePermisions(stockOperationType);
|
32
|
-
const operationType = useMemo(() => {
|
33
|
-
return operationFromString(stockOperationType.operationType);
|
34
|
-
}, [stockOperationType]);
|
35
|
-
const requisitionOperationUuid = useMemo(() => {
|
36
|
-
if (
|
37
|
-
stockOperationType?.operationType === OperationType.REQUISITION_OPERATION_TYPE ||
|
38
|
-
stockOperation?.operationType === OperationType.REQUISITION_OPERATION_TYPE ||
|
39
|
-
stockOperationType?.operationType === OperationType.STOCK_ISSUE_OPERATION_TYPE ||
|
40
|
-
stockOperation?.operationType === OperationType.STOCK_ISSUE_OPERATION_TYPE
|
41
|
-
) {
|
42
|
-
return stockOperation.uuid;
|
43
|
-
}
|
44
|
-
return null;
|
45
|
-
}, [stockOperationType, stockOperation]);
|
46
|
-
const { error, isLoading, operationLinks } = useStockOperationLinks(requisitionOperationUuid);
|
47
|
-
const { t } = useTranslation();
|
48
|
-
if (isLoading || error) return null;
|
49
|
-
|
50
|
-
return (
|
51
|
-
<div>
|
52
|
-
<div className={styles.statusBody}>
|
53
|
-
<div className={styles.operationlinkscontainer}>
|
54
|
-
<div className={styles.statusLabel}>
|
55
|
-
<span className={styles.textHeading}>{t('status', 'Status ')}:</span>
|
56
|
-
<span
|
57
|
-
style={{
|
58
|
-
marginLeft: '2px',
|
59
|
-
color: `${operationStatusColor(stockOperation?.status)}`,
|
60
|
-
}}
|
61
|
-
>
|
62
|
-
{stockOperation?.status}
|
63
|
-
</span>
|
64
|
-
</div>
|
65
|
-
<StockOperationStatusRow stockOperation={stockOperation} />
|
66
|
-
</div>
|
67
|
-
|
68
|
-
{((!stockOperation.permission?.canEdit &&
|
69
|
-
(stockOperation.permission?.canApprove || stockOperation.permission?.canReceiveItems)) ||
|
70
|
-
stockOperation.permission?.canEdit ||
|
71
|
-
StockOperationTypeHasPrint(operationType) ||
|
72
|
-
(stockOperation?.permission?.isRequisitionAndCanIssueStock ?? false) ||
|
73
|
-
stockOperation.permission?.isRequisitionAndCanIssueStock) && (
|
74
|
-
<div className={styles.actionBtns}>
|
75
|
-
<>
|
76
|
-
{!stockOperation.permission?.canEdit && stockOperation.permission?.canApprove && (
|
77
|
-
<>
|
78
|
-
{!operationTypePermision.requiresDispatchAcknowledgement && (
|
79
|
-
<StockOperationApprovalButton operation={stockOperation} />
|
80
|
-
)}
|
81
|
-
|
82
|
-
{operationTypePermision.requiresDispatchAcknowledgement && (
|
83
|
-
<StockOperationApproveDispatchButton operation={stockOperation} />
|
84
|
-
)}
|
85
|
-
|
86
|
-
<StockOperationRejectButton operation={stockOperation} />
|
87
|
-
<StockOperationReturnButton operation={stockOperation} />
|
88
|
-
<StockOperationCancelButton operation={stockOperation} />
|
89
|
-
</>
|
90
|
-
)}
|
91
|
-
|
92
|
-
{!stockOperation.permission?.canEdit && stockOperation.permission?.canReceiveItems && (
|
93
|
-
<>
|
94
|
-
<StockOperationCompleteDispatchButton operation={stockOperation} reason={false} />
|
95
|
-
<StockOperationReturnButton operation={stockOperation} />
|
96
|
-
</>
|
97
|
-
)}
|
98
|
-
|
99
|
-
{stockOperation.permission?.canEdit && <StockOperationCancelButton operation={stockOperation} />}
|
100
|
-
{stockOperation.permission?.isRequisitionAndCanIssueStock && (
|
101
|
-
<StockOperationIssueStockButton operation={stockOperation} />
|
102
|
-
)}
|
103
|
-
{(stockOperation.permission?.isRequisitionAndCanIssueStock ||
|
104
|
-
stockOperation.operationType === OperationType.STOCK_ISSUE_OPERATION_TYPE ||
|
105
|
-
stockOperation.operationType === OperationType.REQUISITION_OPERATION_TYPE ||
|
106
|
-
stockOperation.operationType === OperationType.RECEIPT_OPERATION_TYPE ||
|
107
|
-
stockOperation.operationType === OperationType.TRANSFER_OUT_OPERATION_TYPE) && (
|
108
|
-
<StockOperationPrintButton operation={stockOperation} />
|
109
|
-
)}
|
110
|
-
</>
|
111
|
-
</div>
|
112
|
-
)}
|
113
|
-
</div>
|
114
|
-
{operationLinks && operationLinks.length > 0 && (
|
115
|
-
<div className={styles.operationlinkscontainer}>
|
116
|
-
<h6 className={styles.relatedTransactionHeader}>Related Transactions:</h6>
|
117
|
-
{operationLinks.map(
|
118
|
-
(item) =>
|
119
|
-
(stockOperation.uuid === item?.parentUuid || stockOperationType?.uuid === item?.parentUuid) && (
|
120
|
-
<React.Fragment key={item.uuid}>
|
121
|
-
<span>{item?.childOperationTypeName}</span>
|
122
|
-
<span className={item?.childVoided ? 'voided' : ''}>
|
123
|
-
{' '}
|
124
|
-
{item?.childVoided && item?.childOperationNumber}
|
125
|
-
{!item?.childVoided && (
|
126
|
-
<span className={styles.relatedLink}>
|
127
|
-
<StockOperationRelatedLink
|
128
|
-
stockOperationUuid={item?.childUuid}
|
129
|
-
operationNumber={item?.childOperationNumber}
|
130
|
-
/>
|
131
|
-
</span>
|
132
|
-
)}
|
133
|
-
</span>{' '}
|
134
|
-
<span>[{item?.childStatus}]</span>
|
135
|
-
</React.Fragment>
|
136
|
-
),
|
137
|
-
)}
|
138
|
-
<span> </span>
|
139
|
-
{operationLinks.map(
|
140
|
-
(item) =>
|
141
|
-
(stockOperation.uuid === item?.childUuid || stockOperationType.uuid === item?.childUuid) && (
|
142
|
-
<React.Fragment key={item.uuid}>
|
143
|
-
<span>{item?.parentOperationTypeName}</span>
|
144
|
-
<span className={item?.parentVoided ? 'voided' : ''}>
|
145
|
-
{' '}
|
146
|
-
{item?.parentVoided && item?.parentOperationNumber}
|
147
|
-
{!item?.parentVoided && (
|
148
|
-
<span className={styles.relatedLink}>
|
149
|
-
<StockOperationRelatedLink
|
150
|
-
stockOperationUuid={item?.parentUuid}
|
151
|
-
operationNumber={item?.parentOperationNumber}
|
152
|
-
/>
|
153
|
-
</span>
|
154
|
-
)}
|
155
|
-
</span>{' '}
|
156
|
-
<span>[{item?.parentStatus}]</span>
|
157
|
-
</React.Fragment>
|
158
|
-
),
|
159
|
-
)}
|
160
|
-
</div>
|
161
|
-
)}
|
162
|
-
</div>
|
163
|
-
);
|
164
|
-
};
|
165
|
-
|
166
|
-
export default StockOperationFormHeader;
|