@openmrs/esm-stock-management-app 3.0.1-pre.826 → 3.0.1-pre.833

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.
@@ -29,6 +29,7 @@ const Transactions: React.FC<TransactionsProps> = ({ stockItemUuid }) => {
29
29
  setStockItemUuid,
30
30
  setLocationUuid,
31
31
  binCardHeaders,
32
+ inventory,
32
33
  } = useStockItemsTransactions(stockItemFilter);
33
34
 
34
35
  useEffect(() => {
@@ -38,82 +39,87 @@ const Transactions: React.FC<TransactionsProps> = ({ stockItemUuid }) => {
38
39
  const { control } = useForm({});
39
40
 
40
41
  const tableRows = useMemo(() => {
41
- return items?.map((stockItemTransaction) => ({
42
- ...stockItemTransaction,
43
- id: stockItemTransaction?.uuid,
44
- key: `key-${stockItemTransaction?.uuid}`,
45
- uuid: `${stockItemTransaction?.uuid}`,
46
- date: formatDisplayDate(stockItemTransaction?.dateCreated),
47
- location:
48
- stockItemTransaction.operationSourcePartyName && stockItemTransaction.operationDestinationPartyName ? (
49
- stockItemTransaction.operationSourcePartyName === stockItemTransaction?.partyName ? (
50
- stockItemTransaction.quantity > 0 ? (
51
- <>
52
- <span className="transaction-location">{stockItemTransaction.operationSourcePartyName}</span>
53
- <ArrowLeft size={16} /> {stockItemTransaction.operationDestinationPartyName}
54
- </>
55
- ) : (
56
- <>
57
- <span className="transaction-location">{stockItemTransaction.operationSourcePartyName}</span>
58
- <ArrowLeft size={16} /> {stockItemTransaction.operationDestinationPartyName}
59
- </>
60
- )
61
- ) : stockItemTransaction.operationDestinationPartyName === stockItemTransaction?.partyName ? (
62
- stockItemTransaction.quantity > 0 ? (
63
- <>
64
- <span className="transaction-location">{stockItemTransaction.operationDestinationPartyName}</span>
65
- <ArrowLeft size={16} /> {stockItemTransaction.operationSourcePartyName}
66
- </>
42
+ return items?.map((stockItemTransaction) => {
43
+ const balance = inventory?.total ?? '';
44
+
45
+ return {
46
+ ...stockItemTransaction,
47
+ id: stockItemTransaction?.uuid,
48
+ key: `key-${stockItemTransaction?.uuid}`,
49
+ uuid: `${stockItemTransaction?.uuid}`,
50
+ date: formatDisplayDate(stockItemTransaction?.dateCreated),
51
+ location:
52
+ stockItemTransaction.operationSourcePartyName && stockItemTransaction.operationDestinationPartyName ? (
53
+ stockItemTransaction.operationSourcePartyName === stockItemTransaction?.partyName ? (
54
+ stockItemTransaction.quantity > 0 ? (
55
+ <>
56
+ <span className="transaction-location">{stockItemTransaction.operationSourcePartyName}</span>
57
+ <ArrowLeft size={16} /> {stockItemTransaction.operationDestinationPartyName}
58
+ </>
59
+ ) : (
60
+ <>
61
+ <span className="transaction-location">{stockItemTransaction.operationSourcePartyName}</span>
62
+ <ArrowLeft size={16} /> {stockItemTransaction.operationDestinationPartyName}
63
+ </>
64
+ )
65
+ ) : stockItemTransaction.operationDestinationPartyName === stockItemTransaction?.partyName ? (
66
+ stockItemTransaction.quantity > 0 ? (
67
+ <>
68
+ <span className="transaction-location">{stockItemTransaction.operationDestinationPartyName}</span>
69
+ <ArrowLeft size={16} /> {stockItemTransaction.operationSourcePartyName}
70
+ </>
71
+ ) : (
72
+ <>
73
+ <span className="transaction-location">{stockItemTransaction.operationDestinationPartyName}</span>
74
+ <ArrowLeft size={16} /> {stockItemTransaction.operationSourcePartyName}
75
+ </>
76
+ )
67
77
  ) : (
68
- <>
69
- <span className="transaction-location">{stockItemTransaction.operationDestinationPartyName}</span>
70
- <ArrowLeft size={16} /> {stockItemTransaction.operationSourcePartyName}
71
- </>
78
+ stockItemTransaction?.partyName
72
79
  )
73
80
  ) : (
74
81
  stockItemTransaction?.partyName
75
- )
76
- ) : (
77
- stockItemTransaction?.partyName
78
- ),
79
- transaction: stockItemTransaction?.isPatientTransaction
80
- ? 'Patient Dispense'
81
- : stockItemTransaction.stockOperationTypeName,
82
- quantity: `${stockItemTransaction?.quantity?.toLocaleString()} ${stockItemTransaction?.packagingUomName ?? ''}`,
83
- batch: stockItemTransaction.stockBatchNo
84
- ? `${stockItemTransaction.stockBatchNo}${
85
- stockItemTransaction.expiration ? ` (${formatDisplayDate(stockItemTransaction.expiration)})` : ''
86
- }`
87
- : '',
88
- reference: (
89
- <StockOperationReference
90
- operationUuid={stockItemTransaction?.stockOperationUuid}
91
- operationNumber={stockItemTransaction?.stockOperationNumber}
92
- />
93
- ),
94
- status: stockItemTransaction?.stockOperationStatus ?? '',
95
- in:
96
- stockItemTransaction?.quantity >= 0
97
- ? `${stockItemTransaction?.quantity?.toLocaleString()} ${stockItemTransaction?.packagingUomName ?? ''} of ${
98
- stockItemTransaction.packagingUomFactor
82
+ ),
83
+ transaction: stockItemTransaction?.isPatientTransaction
84
+ ? 'Patient Dispense'
85
+ : stockItemTransaction.stockOperationTypeName,
86
+ quantity: `${stockItemTransaction?.quantity?.toLocaleString()} ${stockItemTransaction?.packagingUomName ?? ''}`,
87
+ batch: stockItemTransaction.stockBatchNo
88
+ ? `${stockItemTransaction.stockBatchNo}${
89
+ stockItemTransaction.expiration ? ` (${formatDisplayDate(stockItemTransaction.expiration)})` : ''
99
90
  }`
100
91
  : '',
101
- out:
102
- stockItemTransaction?.quantity < 0
103
- ? `${(-1 * stockItemTransaction?.quantity)?.toLocaleString()} ${
104
- stockItemTransaction?.packagingUomName ?? ''
105
- } of ${stockItemTransaction.packagingUomFactor}`
106
- : '',
107
- totalin:
108
- stockItemTransaction?.quantity >= 0
109
- ? `${stockItemTransaction?.quantity * Number(stockItemTransaction.packagingUomFactor)}`
110
- : '',
111
- totalout:
112
- stockItemTransaction?.quantity < 0
113
- ? `${-1 * stockItemTransaction?.quantity * Number(stockItemTransaction.packagingUomFactor)}`
114
- : '',
115
- }));
116
- }, [items]);
92
+ reference: (
93
+ <StockOperationReference
94
+ operationUuid={stockItemTransaction?.stockOperationUuid}
95
+ operationNumber={stockItemTransaction?.stockOperationNumber}
96
+ />
97
+ ),
98
+ status: stockItemTransaction?.stockOperationStatus ?? '',
99
+ in:
100
+ stockItemTransaction?.quantity >= 0
101
+ ? `${stockItemTransaction?.quantity?.toLocaleString()} ${stockItemTransaction?.packagingUomName ?? ''} of ${
102
+ stockItemTransaction.packagingUomFactor
103
+ }`
104
+ : '',
105
+ out:
106
+ stockItemTransaction?.quantity < 0
107
+ ? `${(-1 * stockItemTransaction?.quantity)?.toLocaleString()} ${
108
+ stockItemTransaction?.packagingUomName ?? ''
109
+ } of ${stockItemTransaction.packagingUomFactor}`
110
+ : '',
111
+ totalin:
112
+ stockItemTransaction?.quantity >= 0
113
+ ? `${stockItemTransaction?.quantity * Number(stockItemTransaction.packagingUomFactor)}`
114
+ : '',
115
+ totalout:
116
+ stockItemTransaction?.quantity < 0
117
+ ? `${-1 * stockItemTransaction?.quantity * Number(stockItemTransaction.packagingUomFactor)}`
118
+ : '',
119
+ balance: `${balance} ${stockItemTransaction?.packagingUomName ?? ''}`,
120
+ };
121
+ });
122
+ }, [items, inventory]);
117
123
 
118
124
  if (isLoading) {
119
125
  return <DataTableSkeleton role="progressbar" />;
@@ -123,7 +129,12 @@ const Transactions: React.FC<TransactionsProps> = ({ stockItemUuid }) => {
123
129
  <DataList
124
130
  children={() => (
125
131
  <>
126
- <TransactionsPrintAction columns={binCardHeaders} data={tableRows} itemUuid={stockItemUuid} />
132
+ <TransactionsPrintAction
133
+ columns={binCardHeaders}
134
+ data={tableRows}
135
+ itemUuid={stockItemUuid}
136
+ filter={stockItemFilter}
137
+ />
127
138
  <TransactionsLocationsFilter
128
139
  onLocationIdChange={(q) => {
129
140
  setLocationUuid(q);
@@ -1,6 +1,6 @@
1
1
  import { ResourceRepresentation } from '../../../core/api/api';
2
2
  import { useEffect, useMemo, useState } from 'react';
3
- import { type StockItemInventoryFilter, useStockItemTransactions } from '../../stock-items.resource';
3
+ import { StockItemInventoryFilter, useStockItemInventory, useStockItemTransactions } from '../../stock-items.resource';
4
4
 
5
5
  export function useStockItemsTransactions(filter?: StockItemInventoryFilter) {
6
6
  const [stockItemFilter, setStockItemFilter] = useState<StockItemInventoryFilter>({
@@ -37,6 +37,7 @@ export function useStockItemsTransactions(filter?: StockItemInventoryFilter) {
37
37
  }, [searchString, currentPage, currentPageSize, stockItemUuid, partyUuid, locationUuid, stockBatchUuid]);
38
38
 
39
39
  const { items, isLoading, error } = useStockItemTransactions(stockItemFilter);
40
+ const { items: inventory } = useStockItemInventory(stockItemFilter);
40
41
 
41
42
  const tableHeaders = useMemo(
42
43
  () => [
@@ -102,6 +103,10 @@ export function useStockItemsTransactions(filter?: StockItemInventoryFilter) {
102
103
  key: 'batch',
103
104
  header: 'Batch',
104
105
  },
106
+ {
107
+ key: 'balance',
108
+ header: 'Balance',
109
+ },
105
110
  {
106
111
  key: 'reference',
107
112
  header: 'Reference',
@@ -131,5 +136,6 @@ export function useStockItemsTransactions(filter?: StockItemInventoryFilter) {
131
136
  setPartyUuid,
132
137
  setStockBatchUuid,
133
138
  binCardHeaders,
139
+ inventory: inventory,
134
140
  };
135
141
  }
@@ -1,36 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Function to standardize commit message
4
- standardize_commit() {
5
- local msg="$1"
6
-
7
- # Convert to lowercase and remove parentheses
8
- msg=$(echo "$msg" | tr '[:upper:]' '[:lower:]' | sed 's/^(//;s/)$//')
9
-
10
- # Standardize types
11
- msg=$(echo "$msg" | sed -E 's/^(ft|feature):/\1eat:/')
12
- msg=$(echo "$msg" | sed -E 's/^(bug|fix):/\1ix:/')
13
-
14
- # Add space after colon if missing
15
- msg=$(echo "$msg" | sed 's/:/: /')
16
-
17
- # Remove trailing period
18
- msg=$(echo "$msg" | sed 's/\.$//')
19
-
20
- # Convert first word to present tense if it's a past tense verb
21
- msg=$(echo "$msg" | sed -E 's/^(feat|fix|docs|test|refactor): (added|fixed|updated|removed|changed|modified)/\1: add|fix|update|remove|change|modify/')
22
-
23
- echo "$msg"
24
- }
25
-
26
- # Get all commit hashes
27
- git log --pretty=format:"%H" | while read -r commit_hash; do
28
- # Get the commit message
29
- commit_msg=$(git log -1 --pretty=format:"%s" $commit_hash)
30
-
31
- # Standardize the commit message
32
- new_msg=$(standardize_commit "$commit_msg")
33
-
34
- # Update the commit message
35
- git filter-branch -f --msg-filter "if [ \$GIT_COMMIT = '$commit_hash' ]; then echo '$new_msg'; else cat; fi" HEAD^..HEAD
36
- done