@openmrs/esm-stock-management-app 3.1.1-pre.989 → 3.1.1-pre.991

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.
@@ -895,9 +895,9 @@
895
895
  "initial": false,
896
896
  "entry": false,
897
897
  "recorded": false,
898
- "size": 1193640,
898
+ "size": 1194726,
899
899
  "sizes": {
900
- "javascript": 1193640
900
+ "javascript": 1194726
901
901
  },
902
902
  "names": [],
903
903
  "idHints": [],
@@ -910,7 +910,7 @@
910
910
  "auxiliaryFiles": [
911
911
  "5125.js.map"
912
912
  ],
913
- "hash": "208cdc75a033cb08",
913
+ "hash": "c7ede212e13afcf6",
914
914
  "childrenByOrder": {}
915
915
  },
916
916
  {
@@ -1539,10 +1539,10 @@
1539
1539
  "initial": true,
1540
1540
  "entry": true,
1541
1541
  "recorded": false,
1542
- "size": 5542284,
1542
+ "size": 5543370,
1543
1543
  "sizes": {
1544
1544
  "consume-shared": 210,
1545
- "javascript": 5520049,
1545
+ "javascript": 5521135,
1546
1546
  "share-init": 336,
1547
1547
  "runtime": 21689
1548
1548
  },
@@ -1559,7 +1559,7 @@
1559
1559
  "auxiliaryFiles": [
1560
1560
  "main.js.map"
1561
1561
  ],
1562
- "hash": "75bd8aca6005378b",
1562
+ "hash": "48c2a1c503274239",
1563
1563
  "childrenByOrder": {}
1564
1564
  },
1565
1565
  {
package/dist/routes.json CHANGED
@@ -1 +1 @@
1
- {"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"fhir2":">=1.2","webservices.rest":"^2.24.0"},"extensions":[{"name":"stock-nav-menu","slot":"stock-sidebar-slot","component":"stockNavMenu","online":true,"offline":true},{"name":"overview-db-link","slot":"stock-page-dashboard-slot","component":"stockOverviewLink","meta":{"name":"overview","slot":"overview-dashboard-slot","title":"overview"},"order":0,"online":true,"offline":true},{"name":"stock-overview-db","slot":"overview-dashboard-slot","component":"stockOverview"},{"name":"operations-db-link","slot":"stock-page-dashboard-slot","component":"stockOperationsLink","meta":{"name":"operations","slot":"operations-dashboard-slot","title":"operations"},"order":2,"online":true,"offline":true},{"name":"stock-operations-db","slot":"operations-dashboard-slot","component":"stockOperations"},{"name":"items-db-link","slot":"stock-page-dashboard-slot","component":"stockItemsLink","meta":{"name":"items","slot":"items-dashboard-slot","title":"items"},"order":1,"online":true,"offline":true},{"name":"stock-items-db","slot":"items-dashboard-slot","component":"stockItems"},{"name":"user-scopes-db-link","slot":"stock-page-dashboard-slot","component":"stockUserScopesLink","meta":{"name":"user-scopes","slot":"user-scopes-dashboard-slot","title":"user-scopes"},"order":3,"online":true,"offline":true},{"name":"stock-user-scopes-db","slot":"user-scopes-dashboard-slot","component":"stockUserScopes"},{"name":"sources-db-link","slot":"stock-page-dashboard-slot","component":"stockSourcesLink","meta":{"name":"sources","slot":"sources-dashboard-slot","title":"Sources"},"order":2,"online":true,"offline":true},{"name":"stock-sources-db","slot":"sources-dashboard-slot","component":"stockSources"},{"name":"reports-db-link","slot":"stock-page-dashboard-slot","component":"stockReportsLink","meta":{"name":"reports","slot":"reports-dashboard-slot","title":"Reports"},"order":5,"online":true,"offline":true},{"name":"stock-reports-db","slot":"reports-dashboard-slot","component":"stockReports"},{"name":"settings-db-link","slot":"stock-page-dashboard-slot","component":"stockSettingsLink","meta":{"name":"settings","slot":"settings-dashboard-slot","title":"Settings"},"order":6,"online":true,"offline":true},{"name":"stock-settings-db","slot":"settings-dashboard-slot","component":"stockSettings"},{"name":"stock-management-admin-card-link","slot":"system-admin-page-card-link-slot","component":"stockManagementAdminCardLink"},{"name":"stock-management-app-menu-item","component":"stockManagementAppMenuItem","slot":"app-menu-item-slot","meta":{"name":" Stock Management"}},{"name":"delete-packaging-unit-button","component":"deletePackagingUnitButton"}],"modals":[{"name":"delete-stock-modal","component":"deleteStockModal"},{"name":"delete-stock-user-scope-modal","component":"deleteUserScopeModal"},{"name":"delete-stock-rule-modal","component":"deleteStockRuleModal"},{"name":"delete-packaging-unit-modal","component":"deletePackagingUnitModal"},{"name":"expired-stock-modal","component":"expiredStockModal"},{"name":"import-bulk-stock-items","component":"importBulkStockItemsModal"},{"name":"receiving-stock-modal","component":"receivingStockModal"},{"name":"stock-operations-modal","component":"stockOperationsModal"},{"name":"transactions-print-bincard-preview-modal","component":"transactionBincardPrintPreviewModal"},{"name":"transactions-print-stockcard-preview-modal","component":"transactionStockcardPrintPreviewModal"}],"workspaces":[{"name":"stock-operation-form-workspace","component":"stockOperationFormWorkspace","title":"Stock Operation","type":"form","canMaximize":true,"width":"extra-wide"},{"name":"stock-item-rules-form-workspace","component":"stockItemRulesFormWorkspace","title":"Stock Item Rules","type":"form"},{"name":"stock-item-form-workspace","component":"stockItemFormWorkspace","title":"Stock Items","type":"form","canMaximize":true,"width":"extra-wide"},{"name":"stock-sources-form-workspace","component":"stockSourcesFormWorkspace","title":"Stock Sources","type":"form","canMaximize":true,"width":"extra-wide"},{"name":"stock-location-form-workspace","component":"stockLocationsFormWorkspace","title":"Stock Locations","type":"form","canMaximize":true,"width":"extra-wide"},{"name":"stock-user-role-scopes-form-workspace","component":"stockUserScopesFormWorkspace","title":"User Role Scopes","type":"form","canMaximize":true,"width":"extra-wide"},{"name":"stock-reports-form-workspace","component":"stockReportsFormWorkspace","title":"Reports","type":"form","canMaximize":true,"width":"extra-wide"}],"pages":[{"component":"root","route":"stock-management"}],"version":"3.1.1-pre.989"}
1
+ {"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"fhir2":">=1.2","webservices.rest":"^2.24.0"},"extensions":[{"name":"stock-nav-menu","slot":"stock-sidebar-slot","component":"stockNavMenu","online":true,"offline":true},{"name":"overview-db-link","slot":"stock-page-dashboard-slot","component":"stockOverviewLink","meta":{"name":"overview","slot":"overview-dashboard-slot","title":"overview"},"order":0,"online":true,"offline":true},{"name":"stock-overview-db","slot":"overview-dashboard-slot","component":"stockOverview"},{"name":"operations-db-link","slot":"stock-page-dashboard-slot","component":"stockOperationsLink","meta":{"name":"operations","slot":"operations-dashboard-slot","title":"operations"},"order":2,"online":true,"offline":true},{"name":"stock-operations-db","slot":"operations-dashboard-slot","component":"stockOperations"},{"name":"items-db-link","slot":"stock-page-dashboard-slot","component":"stockItemsLink","meta":{"name":"items","slot":"items-dashboard-slot","title":"items"},"order":1,"online":true,"offline":true},{"name":"stock-items-db","slot":"items-dashboard-slot","component":"stockItems"},{"name":"user-scopes-db-link","slot":"stock-page-dashboard-slot","component":"stockUserScopesLink","meta":{"name":"user-scopes","slot":"user-scopes-dashboard-slot","title":"user-scopes"},"order":3,"online":true,"offline":true},{"name":"stock-user-scopes-db","slot":"user-scopes-dashboard-slot","component":"stockUserScopes"},{"name":"sources-db-link","slot":"stock-page-dashboard-slot","component":"stockSourcesLink","meta":{"name":"sources","slot":"sources-dashboard-slot","title":"Sources"},"order":2,"online":true,"offline":true},{"name":"stock-sources-db","slot":"sources-dashboard-slot","component":"stockSources"},{"name":"reports-db-link","slot":"stock-page-dashboard-slot","component":"stockReportsLink","meta":{"name":"reports","slot":"reports-dashboard-slot","title":"Reports"},"order":5,"online":true,"offline":true},{"name":"stock-reports-db","slot":"reports-dashboard-slot","component":"stockReports"},{"name":"settings-db-link","slot":"stock-page-dashboard-slot","component":"stockSettingsLink","meta":{"name":"settings","slot":"settings-dashboard-slot","title":"Settings"},"order":6,"online":true,"offline":true},{"name":"stock-settings-db","slot":"settings-dashboard-slot","component":"stockSettings"},{"name":"stock-management-admin-card-link","slot":"system-admin-page-card-link-slot","component":"stockManagementAdminCardLink"},{"name":"stock-management-app-menu-item","component":"stockManagementAppMenuItem","slot":"app-menu-item-slot","meta":{"name":" Stock Management"}},{"name":"delete-packaging-unit-button","component":"deletePackagingUnitButton"}],"modals":[{"name":"delete-stock-modal","component":"deleteStockModal"},{"name":"delete-stock-user-scope-modal","component":"deleteUserScopeModal"},{"name":"delete-stock-rule-modal","component":"deleteStockRuleModal"},{"name":"delete-packaging-unit-modal","component":"deletePackagingUnitModal"},{"name":"expired-stock-modal","component":"expiredStockModal"},{"name":"import-bulk-stock-items","component":"importBulkStockItemsModal"},{"name":"receiving-stock-modal","component":"receivingStockModal"},{"name":"stock-operations-modal","component":"stockOperationsModal"},{"name":"transactions-print-bincard-preview-modal","component":"transactionBincardPrintPreviewModal"},{"name":"transactions-print-stockcard-preview-modal","component":"transactionStockcardPrintPreviewModal"}],"workspaces":[{"name":"stock-operation-form-workspace","component":"stockOperationFormWorkspace","title":"Stock Operation","type":"form","canMaximize":true,"width":"extra-wide"},{"name":"stock-item-rules-form-workspace","component":"stockItemRulesFormWorkspace","title":"Stock Item Rules","type":"form"},{"name":"stock-item-form-workspace","component":"stockItemFormWorkspace","title":"Stock Items","type":"form","canMaximize":true,"width":"extra-wide"},{"name":"stock-sources-form-workspace","component":"stockSourcesFormWorkspace","title":"Stock Sources","type":"form","canMaximize":true,"width":"extra-wide"},{"name":"stock-location-form-workspace","component":"stockLocationsFormWorkspace","title":"Stock Locations","type":"form","canMaximize":true,"width":"extra-wide"},{"name":"stock-user-role-scopes-form-workspace","component":"stockUserScopesFormWorkspace","title":"User Role Scopes","type":"form","canMaximize":true,"width":"extra-wide"},{"name":"stock-reports-form-workspace","component":"stockReportsFormWorkspace","title":"Reports","type":"form","canMaximize":true,"width":"extra-wide"}],"pages":[{"component":"root","route":"stock-management"}],"version":"3.1.1-pre.991"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-stock-management-app",
3
- "version": "3.1.1-pre.989",
3
+ "version": "3.1.1-pre.991",
4
4
  "license": "MPL-2.0",
5
5
  "description": "Stock management microfrontend for OpenMRS 3.x",
6
6
  "browser": "dist/openmrs-esm-stock-management-app.js",
@@ -6,15 +6,15 @@ import { useDisposalList } from './useDisposalList';
6
6
  import { useStockInventory } from './stock-home-inventory-expiry.resource';
7
7
  import { useStockInventoryItems } from './stock-home-inventory-items.resource';
8
8
  import { type StockOperationFilter } from '../stock-operations/stock-operations.resource';
9
- import useStockList from './useStockList';
9
+ import useStockList, { useOutOfStockList } from './useStockList';
10
10
  import MetricsCard from '../core/components/card/metrics-card-component';
11
11
  import styles from './stock-home.scss';
12
12
 
13
13
  const StockManagementMetrics: React.FC = (filter: StockOperationFilter) => {
14
14
  const { t } = useTranslation();
15
- const { stockList: allStocks, error } = useStockList();
16
15
  const { items: expiryItems } = useStockInventory();
17
16
  const { items: stockItems } = useStockInventoryItems();
17
+ const { totalOutOfStock, error: outOfStockError } = useOutOfStockList();
18
18
 
19
19
  const currentDate = new Date();
20
20
 
@@ -39,8 +39,8 @@ const StockManagementMetrics: React.FC = (filter: StockOperationFilter) => {
39
39
  totalCount: true,
40
40
  });
41
41
 
42
- if (error) {
43
- return <ErrorState headerTitle={t('errorStockMetric', 'Error fetching stock metrics')} error={error} />;
42
+ if (outOfStockError) {
43
+ return <ErrorState headerTitle={t('errorStockMetric', 'Error fetching stock metrics')} error={outOfStockError} />;
44
44
  }
45
45
 
46
46
  const filteredItems =
@@ -64,7 +64,7 @@ const StockManagementMetrics: React.FC = (filter: StockOperationFilter) => {
64
64
  itemsBelowMin: [],
65
65
  itemsAboveMax: [],
66
66
  }}
67
- value={allStocks?.length}
67
+ value={totalOutOfStock}
68
68
  />
69
69
  <MetricsCard
70
70
  disposedCount={{
@@ -1,5 +1,6 @@
1
1
  import useSWR from 'swr';
2
- import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
2
+ import { type FetchResponse, openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
3
+ import { type OutofStockListResponse } from '../types';
3
4
 
4
5
  interface StockList {
5
6
  uuid: string;
@@ -31,3 +32,18 @@ const useStockList = () => {
31
32
  };
32
33
 
33
34
  export default useStockList;
35
+
36
+ export const useOutOfStockList = () => {
37
+ const url = `${restBaseUrl}/stockmanagement/metrics/outofstockitemstotal`;
38
+ const { data, error, isLoading, mutate } = useSWR<FetchResponse<OutofStockListResponse>>(url, openmrsFetch);
39
+
40
+ const totalOutOfStock = data?.data.results?.reduce((total, item) => total + item.outOfStock, 0) ?? 0;
41
+
42
+ return {
43
+ outOfStockItemsList: data?.data.results ?? [],
44
+ totalOutOfStock,
45
+ isLoading,
46
+ error,
47
+ mutate,
48
+ };
49
+ };
@@ -3,3 +3,13 @@ export interface DashboardConfig {
3
3
  slot: string;
4
4
  title: string;
5
5
  }
6
+
7
+ export interface OutofStockListResponse {
8
+ results: Array<{
9
+ partyUuid: string;
10
+ locationUuid: string;
11
+ partyId: number;
12
+ partyName: string;
13
+ outOfStock: number;
14
+ }>;
15
+ }