@openmrs/esm-stock-management-app 3.3.1 → 3.3.2-pre.12

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.
Files changed (116) hide show
  1. package/dist/openmrs-esm-stock-management-app.js +1 -1
  2. package/dist/openmrs-esm-stock-management-app.js.map +1 -1
  3. package/dist/routes.json +1 -1
  4. package/package.json +3 -2
  5. package/coverage/__mocks__/index.html +0 -161
  6. package/coverage/__mocks__/index.ts.html +0 -91
  7. package/coverage/__mocks__/operation-type.mock.ts.html +0 -1681
  8. package/coverage/__mocks__/react-i18next.js.html +0 -259
  9. package/coverage/__mocks__/workspace2-props.mock.ts.html +0 -145
  10. package/coverage/base.css +0 -224
  11. package/coverage/block-navigation.js +0 -87
  12. package/coverage/clover.xml +0 -1659
  13. package/coverage/coverage-final.json +0 -69
  14. package/coverage/favicon.png +0 -0
  15. package/coverage/index.html +0 -611
  16. package/coverage/prettify.css +0 -1
  17. package/coverage/prettify.js +0 -2
  18. package/coverage/sort-arrow-sprite.png +0 -0
  19. package/coverage/sorter.js +0 -210
  20. package/coverage/src/constants.ts.html +0 -598
  21. package/coverage/src/core/api/api.ts.html +0 -181
  22. package/coverage/src/core/api/index.html +0 -116
  23. package/coverage/src/core/api/types/BatchJob.ts.html +0 -415
  24. package/coverage/src/core/api/types/index.html +0 -116
  25. package/coverage/src/core/api/types/stockOperation/StockOperationStatus.ts.html +0 -139
  26. package/coverage/src/core/api/types/stockOperation/StockOperationType.ts.html +0 -460
  27. package/coverage/src/core/api/types/stockOperation/index.html +0 -131
  28. package/coverage/src/core/components/carbon/controlled-number-input.component.tsx.html +0 -226
  29. package/coverage/src/core/components/carbon/controlled-radio-button-group.component.tsx.html +0 -253
  30. package/coverage/src/core/components/carbon/controlled-text-input.component.tsx.html +0 -202
  31. package/coverage/src/core/components/carbon/index.html +0 -146
  32. package/coverage/src/core/hooks/debounce-hook.ts.html +0 -181
  33. package/coverage/src/core/hooks/index.html +0 -116
  34. package/coverage/src/core/utils/datetimeUtils.ts.html +0 -289
  35. package/coverage/src/core/utils/index.html +0 -131
  36. package/coverage/src/core/utils/utils.ts.html +0 -382
  37. package/coverage/src/index.html +0 -131
  38. package/coverage/src/stock-items/add-bulk-stock-item/add-stock-items-bulk-import-action-button.component.tsx.html +0 -151
  39. package/coverage/src/stock-items/add-bulk-stock-item/index.html +0 -131
  40. package/coverage/src/stock-items/add-bulk-stock-item/stock-items-bulk-import.modal.tsx.html +0 -340
  41. package/coverage/src/stock-items/add-stock-item/add-stock-action-button.component.tsx.html +0 -145
  42. package/coverage/src/stock-items/add-stock-item/add-stock-item.component.tsx.html +0 -376
  43. package/coverage/src/stock-items/add-stock-item/batch-information/batch-information.resource.ts.html +0 -262
  44. package/coverage/src/stock-items/add-stock-item/batch-information/index.html +0 -116
  45. package/coverage/src/stock-items/add-stock-item/concepts-selector/concepts-selector.component.tsx.html +0 -301
  46. package/coverage/src/stock-items/add-stock-item/concepts-selector/index.html +0 -116
  47. package/coverage/src/stock-items/add-stock-item/drug-selector/drug-selector.component.tsx.html +0 -454
  48. package/coverage/src/stock-items/add-stock-item/drug-selector/index.html +0 -116
  49. package/coverage/src/stock-items/add-stock-item/index.html +0 -131
  50. package/coverage/src/stock-items/add-stock-item/stock-item-category-selector/index.html +0 -116
  51. package/coverage/src/stock-items/add-stock-item/stock-item-category-selector/stock-item-category-selector.component.tsx.html +0 -319
  52. package/coverage/src/stock-items/add-stock-item/stock-item-details/index.html +0 -131
  53. package/coverage/src/stock-items/add-stock-item/stock-item-details/stock-item-details.component.tsx.html +0 -862
  54. package/coverage/src/stock-items/add-stock-item/stock-item-details/stock-item-details.resource.ts.html +0 -142
  55. package/coverage/src/stock-items/components/filter-stock-items/filter-stock-items.component.tsx.html +0 -166
  56. package/coverage/src/stock-items/components/filter-stock-items/index.html +0 -116
  57. package/coverage/src/stock-items/edit-stock-item/edit-stock-item-action-menu.component.tsx.html +0 -169
  58. package/coverage/src/stock-items/edit-stock-item/index.html +0 -116
  59. package/coverage/src/stock-items/index.html +0 -161
  60. package/coverage/src/stock-items/stock-item.utils.tsx.html +0 -103
  61. package/coverage/src/stock-items/stock-items-table.component.tsx.html +0 -910
  62. package/coverage/src/stock-items/stock-items.resource.ts.html +0 -1342
  63. package/coverage/src/stock-items/validationSchema.ts.html +0 -325
  64. package/coverage/src/stock-locations/add-location.modal.tsx.html +0 -289
  65. package/coverage/src/stock-locations/index.html +0 -146
  66. package/coverage/src/stock-locations/location-admin-form.component.tsx.html +0 -574
  67. package/coverage/src/stock-locations/stock-locations-table.resource.ts.html +0 -370
  68. package/coverage/src/stock-lookups/index.html +0 -116
  69. package/coverage/src/stock-lookups/stock-lookups.resource.ts.html +0 -997
  70. package/coverage/src/stock-operations/index.html +0 -131
  71. package/coverage/src/stock-operations/stock-operation.utils.tsx.html +0 -184
  72. package/coverage/src/stock-operations/stock-operations-forms/hooks/index.html +0 -161
  73. package/coverage/src/stock-operations/stock-operations-forms/hooks/useFilterableStockItems.ts.html +0 -211
  74. package/coverage/src/stock-operations/stock-operations-forms/hooks/useOperationTypePermisions.ts.html +0 -172
  75. package/coverage/src/stock-operations/stock-operations-forms/hooks/useSearchUser.ts.html +0 -226
  76. package/coverage/src/stock-operations/stock-operations-forms/hooks/useStockItemBatchNumbers.ts.html +0 -208
  77. package/coverage/src/stock-operations/stock-operations-forms/index.html +0 -116
  78. package/coverage/src/stock-operations/stock-operations-forms/input-components/batch-no-selector.component.tsx.html +0 -439
  79. package/coverage/src/stock-operations/stock-operations-forms/input-components/index.html +0 -176
  80. package/coverage/src/stock-operations/stock-operations-forms/input-components/quantity-uom-selector.component.tsx.html +0 -259
  81. package/coverage/src/stock-operations/stock-operations-forms/input-components/stock-item-search.component.tsx.html +0 -319
  82. package/coverage/src/stock-operations/stock-operations-forms/input-components/stock-operation-reason-selector.component.tsx.html +0 -286
  83. package/coverage/src/stock-operations/stock-operations-forms/input-components/users-selector.component.tsx.html +0 -412
  84. package/coverage/src/stock-operations/stock-operations-forms/steps/base-operation-details-form-step.tsx.html +0 -868
  85. package/coverage/src/stock-operations/stock-operations-forms/steps/index.html +0 -236
  86. package/coverage/src/stock-operations/stock-operations-forms/steps/quantity-uom-cell.component.tsx.html +0 -184
  87. package/coverage/src/stock-operations/stock-operations-forms/steps/received-items.component.tsx.html +0 -433
  88. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-availability-cell.component.tsx.html +0 -238
  89. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-operation-item-batch-no-cell.component.tsx.html +0 -205
  90. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-operation-item-cell.component.tsx.html +0 -232
  91. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-operation-item-expiry-cell.component.tsx.html +0 -208
  92. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-operation-items-form-step.component.tsx.html +0 -910
  93. package/coverage/src/stock-operations/stock-operations-forms/steps/stock-operation-submission-form-step.component.tsx.html +0 -850
  94. package/coverage/src/stock-operations/stock-operations-forms/stock-item-form/index.html +0 -116
  95. package/coverage/src/stock-operations/stock-operations-forms/stock-item-form/stock-item-form.workspace.tsx.html +0 -781
  96. package/coverage/src/stock-operations/stock-operations-forms/stock-operation-form.component.tsx.html +0 -973
  97. package/coverage/src/stock-operations/stock-operations-forms/stock-operation-stepper/index.html +0 -116
  98. package/coverage/src/stock-operations/stock-operations-forms/stock-operation-stepper/stock-operation-stepper.component.tsx.html +0 -238
  99. package/coverage/src/stock-operations/validation-schema.ts.html +0 -847
  100. package/coverage/src/stock-reports/report-list/index.html +0 -116
  101. package/coverage/src/stock-reports/report-list/stock-report-status.utils.ts.html +0 -130
  102. package/coverage/src/stock-sources/add-stock-source-button.component.tsx.html +0 -145
  103. package/coverage/src/stock-sources/add-stock-sources/add-stock-sources.workspace.tsx.html +0 -550
  104. package/coverage/src/stock-sources/add-stock-sources/index.html +0 -116
  105. package/coverage/src/stock-sources/edit-stock-source/edit-stock-source.component.tsx.html +0 -175
  106. package/coverage/src/stock-sources/edit-stock-source/index.html +0 -116
  107. package/coverage/src/stock-sources/index.html +0 -146
  108. package/coverage/src/stock-sources/stock-sources-delete/index.html +0 -116
  109. package/coverage/src/stock-sources/stock-sources-delete/stock-sources-delete.component.tsx.html +0 -277
  110. package/coverage/src/stock-sources/stock-sources-filter/index.html +0 -116
  111. package/coverage/src/stock-sources/stock-sources-filter/stock-sources-filter.component.tsx.html +0 -235
  112. package/coverage/src/stock-sources/stock-sources-items-table.component.tsx.html +0 -661
  113. package/coverage/src/stock-sources/stock-sources.resource.ts.html +0 -295
  114. package/coverage/src/stock-user-role-scopes/delete-stock-user-scope.modal.tsx.html +0 -214
  115. package/coverage/src/stock-user-role-scopes/index.html +0 -116
  116. package/coverage/src/utils.ts.html +0 -133
@@ -1,850 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/stock-operations/stock-operations-forms/steps/stock-operation-submission-form-step.component.tsx</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../../../prettify.css" />
9
- <link rel="stylesheet" href="../../../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../../../index.html">All files</a> / <a href="index.html">src/stock-operations/stock-operations-forms/steps</a> stock-operation-submission-form-step.component.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">38.29% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>18/47</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">45.45% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>25/55</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">27.77% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>5/18</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">38.63% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>17/44</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line low'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-neutral">&nbsp;</span>
347
- <span class="cline-any cline-yes">3x</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-yes">10x</span>
355
- <span class="cline-any cline-yes">10x</span>
356
- <span class="cline-any cline-yes">10x</span>
357
- <span class="cline-any cline-yes">10x</span>
358
- <span class="cline-any cline-yes">10x</span>
359
- <span class="cline-any cline-yes">10x</span>
360
- <span class="cline-any cline-yes">10x</span>
361
- <span class="cline-any cline-yes">6x</span>
362
- <span class="cline-any cline-neutral">&nbsp;</span>
363
- <span class="cline-any cline-neutral">&nbsp;</span>
364
- <span class="cline-any cline-yes">10x</span>
365
- <span class="cline-any cline-yes">4x</span>
366
- <span class="cline-any cline-neutral">&nbsp;</span>
367
- <span class="cline-any cline-neutral">&nbsp;</span>
368
- <span class="cline-any cline-yes">10x</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-no">&nbsp;</span>
371
- <span class="cline-any cline-no">&nbsp;</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-no">&nbsp;</span>
375
- <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-no">&nbsp;</span>
377
- <span class="cline-any cline-no">&nbsp;</span>
378
- <span class="cline-any cline-no">&nbsp;</span>
379
- <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-no">&nbsp;</span>
381
- <span class="cline-any cline-neutral">&nbsp;</span>
382
- <span class="cline-any cline-neutral">&nbsp;</span>
383
- <span class="cline-any cline-no">&nbsp;</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-no">&nbsp;</span>
386
- <span class="cline-any cline-no">&nbsp;</span>
387
- <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-neutral">&nbsp;</span>
401
- <span class="cline-any cline-neutral">&nbsp;</span>
402
- <span class="cline-any cline-neutral">&nbsp;</span>
403
- <span class="cline-any cline-no">&nbsp;</span>
404
- <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-neutral">&nbsp;</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span>
407
- <span class="cline-any cline-neutral">&nbsp;</span>
408
- <span class="cline-any cline-neutral">&nbsp;</span>
409
- <span class="cline-any cline-neutral">&nbsp;</span>
410
- <span class="cline-any cline-no">&nbsp;</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-neutral">&nbsp;</span>
415
- <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-no">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-no">&nbsp;</span>
421
- <span class="cline-any cline-no">&nbsp;</span>
422
- <span class="cline-any cline-no">&nbsp;</span>
423
- <span class="cline-any cline-no">&nbsp;</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-no">&nbsp;</span>
435
- <span class="cline-any cline-no">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-neutral">&nbsp;</span>
439
- <span class="cline-any cline-neutral">&nbsp;</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-no">&nbsp;</span>
442
- <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-neutral">&nbsp;</span>
444
- <span class="cline-any cline-no">&nbsp;</span>
445
- <span class="cline-any cline-neutral">&nbsp;</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-yes">10x</span>
448
- <span class="cline-any cline-no">&nbsp;</span>
449
- <span class="cline-any cline-no">&nbsp;</span>
450
- <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-yes">10x</span>
453
- <span class="cline-any cline-no">&nbsp;</span>
454
- <span class="cline-any cline-no">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-neutral">&nbsp;</span>
457
- <span class="cline-any cline-yes">10x</span>
458
- <span class="cline-any cline-no">&nbsp;</span>
459
- <span class="cline-any cline-no">&nbsp;</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-yes">10x</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-neutral">&nbsp;</span>
466
- <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-neutral">&nbsp;</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-neutral">&nbsp;</span>
470
- <span class="cline-any cline-neutral">&nbsp;</span>
471
- <span class="cline-any cline-neutral">&nbsp;</span>
472
- <span class="cline-any cline-neutral">&nbsp;</span>
473
- <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-neutral">&nbsp;</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-neutral">&nbsp;</span>
477
- <span class="cline-any cline-yes">4x</span>
478
- <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-neutral">&nbsp;</span>
480
- <span class="cline-any cline-neutral">&nbsp;</span>
481
- <span class="cline-any cline-neutral">&nbsp;</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-neutral">&nbsp;</span>
485
- <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-neutral">&nbsp;</span>
502
- <span class="cline-any cline-neutral">&nbsp;</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-neutral">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-neutral">&nbsp;</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-neutral">&nbsp;</span>
525
- <span class="cline-any cline-neutral">&nbsp;</span>
526
- <span class="cline-any cline-neutral">&nbsp;</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-neutral">&nbsp;</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-neutral">&nbsp;</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-neutral">&nbsp;</span>
543
- <span class="cline-any cline-neutral">&nbsp;</span>
544
- <span class="cline-any cline-neutral">&nbsp;</span>
545
- <span class="cline-any cline-neutral">&nbsp;</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-neutral">&nbsp;</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { useCallback, useMemo, useState } from 'react';
577
- import { Button, Column, InlineLoading, RadioButton, RadioButtonGroup, Stack } from '@carbon/react';
578
- import { ArrowLeft, ArrowRight, Departure, ListChecked, Save, SendFilled } from '@carbon/react/icons';
579
- import { useFormContext } from 'react-hook-form';
580
- import { useTranslation } from 'react-i18next';
581
- import { restBaseUrl, showSnackbar } from '@openmrs/esm-framework';
582
- import { createStockOperation, deleteStockOperationItem, updateStockOperation } from '../../stock-operations.resource';
583
- import { extractErrorMessagesFromResponse } from '../../../constants';
584
- import { useHandleMutate } from '../../../utils';
585
- import { OperationType, type StockOperationType } from '../../../core/api/types/stockOperation/StockOperationType';
586
- import { otherUser } from '../../../core/utils/utils';
587
- import { launchStockOperationsModal } from '../../stock-operation.utils';
588
- import { type StockOperationDTO } from '../../../core/api/types/stockOperation/StockOperationDTO';
589
- import { type StockOperationItemDTO } from '../../../core/api/types/stockOperation/StockOperationItemDTO';
590
- import { type StockOperationItemDtoSchema } from '../../validation-schema';
591
- import useOperationTypePermisions from '../hooks/useOperationTypePermisions';
592
- import styles from '../stock-operation-form.scss';
593
- &nbsp;
594
- type StockOperationSubmissionFormStepProps = {
595
- onPrevious?: () =&gt; void;
596
- stockOperation?: StockOperationDTO;
597
- stockOperationType: StockOperationType;
598
- onNext?: () =&gt; void;
599
- dismissWorkspace?: () =&gt; void;
600
- };
601
- &nbsp;
602
- const StockOperationSubmissionFormStep: React.FC&lt;StockOperationSubmissionFormStepProps&gt; = ({
603
- onPrevious,
604
- stockOperationType,
605
- stockOperation,
606
- onNext,
607
- dismissWorkspace,
608
- }) =&gt; {
609
- const { t } = useTranslation();
610
- const handleMutate = useHandleMutate();
611
- const operationTypePermision = useOperationTypePermisions(stockOperationType);
612
- const editable = useMemo(() =&gt; !stockOperation || <span class="branch-1 cbranch-no" title="branch not covered" >stockOperation.status === 'NEW', [</span>stockOperation]);
613
- const form = useFormContext&lt;StockOperationItemDtoSchema&gt;();
614
- const [approvalRequired, setApprovalRequired] = useState&lt;boolean | null&gt;(stockOperation?.approvalRequired);
615
- const isStockIssueOperation = useMemo(
616
- () =&gt; OperationType.STOCK_ISSUE_OPERATION_TYPE === stockOperationType.operationType,
617
- [stockOperationType],
618
- );
619
- const handleRadioButtonChange = (selectedItem: boolean) =&gt; {
620
- setApprovalRequired(selectedItem);
621
- };
622
- &nbsp;
623
- const handleSave = useCallback(<span class="fstat-no" title="function not covered" >async () =&gt; {</span>
624
- let result: StockOperationDTO; // To store the result for returning
625
- <span class="cstat-no" title="statement not covered" > await form.handleSubmit(<span class="fstat-no" title="function not covered" >async (f</span>ormData) =&gt; {</span>
626
- <span class="cstat-no" title="statement not covered" > try {</span>
627
- // Get deleted items (items in stock operation bt not i form data)
628
- const itemsToDelete =
629
- <span class="cstat-no" title="statement not covered" > stockOperation?.stockOperationItems?.<span class="fstat-no" title="function not covered" >reduce&lt;Array&lt;StockOperationItemDTO&gt;&gt;((p</span>rev, curr) =&gt; {</span>
630
- const itemDoNotExistInFormData =
631
- <span class="cstat-no" title="statement not covered" > formData.stockOperationItems.<span class="fstat-no" title="function not covered" >findIndex((i</span>tem) =&gt; <span class="cstat-no" title="statement not covered" >item.uuid === curr.uuid) </span>=== -1;</span>
632
- <span class="cstat-no" title="statement not covered" > if (itemDoNotExistInFormData) {</span>
633
- <span class="cstat-no" title="statement not covered" > return [...prev, curr];</span>
634
- }
635
- <span class="cstat-no" title="statement not covered" > return prev;</span>
636
- }, []) ?? [];
637
- // Delete them from backend asynchronosely
638
- const deleted = <span class="cstat-no" title="statement not covered" >await Promise.allSettled(itemsToDelete.<span class="fstat-no" title="function not covered" >map((<span class="cstat-no" title="statement not covered" >i</span>tem) =&gt; deleteStockOperationItem(item.uuid))</span>);</span>
639
- // Give delete status on completion
640
- <span class="cstat-no" title="statement not covered" > deleted.<span class="fstat-no" title="function not covered" >forEach((d</span>el, index) =&gt; {</span>
641
- <span class="cstat-no" title="statement not covered" > showSnackbar({</span>
642
- kind: del.status === 'rejected' ? 'error' : 'success',
643
- title:
644
- del.status === 'rejected'
645
- ? t('stockOperationItemDeleteError', 'Error deleting stock operation item {{item}}', {
646
- item: itemsToDelete[index].commonName,
647
- })
648
- : t('success', 'Success'),
649
- subtitle:
650
- del.status === 'rejected'
651
- ? del.reason?.message
652
- : t('stockOperationItemDeleteSuccess', 'Stock operation item {{item}} deleted successfully', {
653
- item: itemsToDelete[index].commonName,
654
- }),
655
- });
656
- });
657
- // construct update payload
658
- const payload = <span class="cstat-no" title="statement not covered" >{</span>
659
- ...formData,
660
- // Remove other uuid if responsible person is set to other
661
- responsiblePersonUuid:
662
- formData.responsiblePersonUuid === otherUser.uuid ? undefined : formData.responsiblePersonUuid,
663
- approvalRequired: approvalRequired ? true : false,
664
- stockOperationItems: [
665
- ...formData.stockOperationItems.<span class="fstat-no" title="function not covered" >map((i</span>tem) =&gt; (<span class="cstat-no" title="statement not covered" >{</span>
666
- ...item,
667
- uuid:
668
- item.uuid.startsWith('new-item-') || (!stockOperation &amp;&amp; isStockIssueOperation) ? undefined : item.uuid, // Remove uuid for newly inserted items and stock issue items derived from requisition to avoid foreign key constraint lookup error
669
- })),
670
- ],
671
- };
672
- const resp = <span class="cstat-no" title="statement not covered" >await (stockOperation</span>
673
- ? updateStockOperation(stockOperation, payload as any)
674
- : createStockOperation(payload as any));
675
- <span class="cstat-no" title="statement not covered" > result = resp.data; // Store the response data</span>
676
- <span class="cstat-no" title="statement not covered" > handleMutate(`${restBaseUrl}/stockmanagement/stockoperation`);</span>
677
- <span class="cstat-no" title="statement not covered" > dismissWorkspace?.();</span>
678
- <span class="cstat-no" title="statement not covered" > showSnackbar({</span>
679
- isLowContrast: true,
680
- title: stockOperation
681
- ? t('editStockOperation', 'Edit stock operation')
682
- : t('addStockOperation', 'Add stock operation'),
683
- kind: 'success',
684
- subtitle: stockOperation
685
- ? t('stockOperationEdited', 'Stock operation edited successfully')
686
- : t('stockOperationAdded', 'Stock operation added successfully'),
687
- });
688
- } catch (error) {
689
- const <span class="cstat-no" title="statement not covered" >errorMessages = extractErrorMessagesFromResponse(error);</span>
690
- <span class="cstat-no" title="statement not covered" > showSnackbar({</span>
691
- subtitle: errorMessages.join(', '),
692
- title: t('errorSavingForm', 'Error on saving form'),
693
- kind: 'error',
694
- isLowContrast: true,
695
- });
696
- <span class="cstat-no" title="statement not covered" > throw error;</span>
697
- }
698
- })(); // Call handleSubmit to trigger validation and submission
699
- <span class="cstat-no" title="statement not covered" > return result; // Return the result after handleSubmit completes</span>
700
- }, [form, stockOperation, t, approvalRequired, isStockIssueOperation, dismissWorkspace, handleMutate]);
701
- &nbsp;
702
- const handleComplete = <span class="fstat-no" title="function not covered" >useCallback(() =&gt; {</span>
703
- <span class="cstat-no" title="statement not covered" > handleSave().<span class="fstat-no" title="function not covered" >then((o</span>peration) =&gt; {</span>
704
- <span class="cstat-no" title="statement not covered" > launchStockOperationsModal('Complete', false, { ...operation, status: 'COMPLETED' });</span>
705
- });
706
- }, [handleSave]);
707
- const handleSubmitForReview = <span class="fstat-no" title="function not covered" >useCallback(() =&gt; {</span>
708
- <span class="cstat-no" title="statement not covered" > handleSave().<span class="fstat-no" title="function not covered" >then((o</span>peration) =&gt; {</span>
709
- <span class="cstat-no" title="statement not covered" > launchStockOperationsModal('Submit', false, { ...operation, status: 'SUBMITTED' });</span>
710
- });
711
- }, [handleSave]);
712
- const handleDispatch = <span class="fstat-no" title="function not covered" >useCallback(() =&gt; {</span>
713
- <span class="cstat-no" title="statement not covered" > handleSave().<span class="fstat-no" title="function not covered" >then((o</span>peration) =&gt; {</span>
714
- <span class="cstat-no" title="statement not covered" > launchStockOperationsModal('Dispatch', false, { ...operation, status: 'DISPATCHED' });</span>
715
- });
716
- }, [handleSave]);
717
- &nbsp;
718
- return (
719
- &lt;Stack gap={4} className={styles.grid}&gt;
720
- &lt;div className={styles.heading}&gt;
721
- &lt;h4&gt;
722
- {operationTypePermision?.requiresDispatchAcknowledgement
723
- ? t('submitAndDispatch', 'Submit/Dispatch')
724
- : t('submitAndComplete', 'Submit/Complete')}
725
- &lt;/h4&gt;
726
- &lt;/div&gt;
727
- &nbsp;
728
- &lt;Column&gt;
729
- &lt;RadioButtonGroup
730
- name="rbgApprovelRequired"
731
- legendText={t('doesThisTransactionRequireApproval', 'Does the transaction require approval ?')}
732
- onChange={(value) =&gt; handleRadioButtonChange(value === 'true')}
733
- readOnly={!editable}
734
- valueSelected={approvalRequired === true ? 'true' : approvalRequired === false ? 'false' : null}
735
- &gt;
736
- &lt;RadioButton value="true" id="rbgApprovelRequired-true" labelText={t('yes', 'Yes')} /&gt;
737
- &lt;RadioButton value="false" id="rbgApprovelRequired-false" labelText={t('no', 'No')} /&gt;
738
- &lt;/RadioButtonGroup&gt;
739
- &lt;/Column&gt;
740
- {editable &amp;&amp; (
741
- &lt;Column&gt;
742
- {approvalRequired != null &amp;&amp; (
743
- &lt;&gt;
744
- {!operationTypePermision.requiresDispatchAcknowledgement &amp;&amp; !approvalRequired &amp;&amp; (
745
- &lt;Button
746
- name="complete"
747
- data-testid="complete-button"
748
- type="button"
749
- style={{ margin: '4px' }}
750
- className="submitButton"
751
- kind="primary"
752
- onClick={handleComplete}
753
- renderIcon={ListChecked}
754
- &gt;
755
- {t('complete', 'Complete')}
756
- &lt;/Button&gt;
757
- )}
758
- {operationTypePermision.requiresDispatchAcknowledgement &amp;&amp; !approvalRequired &amp;&amp; (
759
- &lt;Button
760
- name="dispatch"
761
- type="button"
762
- style={{ margin: '4px' }}
763
- data-testid="dipatch-button"
764
- className="submitButton"
765
- kind="primary"
766
- onClick={handleDispatch}
767
- renderIcon={Departure}
768
- &gt;
769
- {form.formState.isSubmitting ? (
770
- <span class="branch-0 cbranch-no" title="branch not covered" > &lt;InlineLoading description={t('dispatching', 'Dispatching')} /&gt;</span>
771
- ) : (
772
- t('dispatch', 'Dispatch')
773
- )}
774
- &lt;/Button&gt;
775
- )}
776
- {approvalRequired &amp;&amp; (
777
- &lt;Button
778
- name="submit"
779
- type="button"
780
- style={{ margin: '4px' }}
781
- className="submitButton"
782
- kind="primary"
783
- onClick={handleSubmitForReview}
784
- renderIcon={SendFilled}
785
- &gt;
786
- {form.formState.isSubmitting ? (
787
- <span class="branch-0 cbranch-no" title="branch not covered" > &lt;InlineLoading description={t('submittingForReview', 'Submitting for review')} /&gt;</span>
788
- ) : (
789
- t('submitForReview', 'Submit For Review')
790
- )}
791
- &lt;/Button&gt;
792
- )}
793
- &lt;/&gt;
794
- )}
795
- &lt;Button
796
- name="save"
797
- type="button"
798
- className="submitButton"
799
- style={{ margin: '4px' }}
800
- disabled={form.formState.isSubmitting}
801
- kind="secondary"
802
- onClick={handleSave}
803
- renderIcon={Save}
804
- &gt;
805
- {form.formState.isSubmitting ? <span class="branch-0 cbranch-no" title="branch not covered" >&lt;InlineLoading /&gt; : t</span>('save', 'Save')}
806
- &lt;/Button&gt;
807
- &lt;/Column&gt;
808
- )}
809
- &lt;div className={styles.btnSet}&gt;
810
- {typeof onNext === 'function' &amp;&amp; (
811
- <span class="branch-1 cbranch-no" title="branch not covered" > &lt;Button kind="tertiary" onClick={onNext} renderIcon={ArrowRight}&gt;</span>
812
- {t('nextButton', 'Next')}
813
- &lt;/Button&gt;
814
- )}
815
- {typeof onPrevious === 'function' &amp;&amp; (
816
- &lt;Button
817
- kind="tertiary"
818
- onClick={onPrevious}
819
- renderIcon={ArrowLeft}
820
- hasIconOnly
821
- data-testid="previous-btn"
822
- iconDescription={t('previousButton', 'Previous')}
823
- /&gt;
824
- )}
825
- &lt;/div&gt;
826
- &lt;/Stack&gt;
827
- );
828
- };
829
- &nbsp;
830
- export default StockOperationSubmissionFormStep;
831
- &nbsp;</pre></td></tr></table></pre>
832
-
833
- <div class='push'></div><!-- for sticky footer -->
834
- </div><!-- /wrapper -->
835
- <div class='footer quiet pad2 space-top1 center small'>
836
- Code coverage generated by
837
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
838
- at 2026-10-19T11:46:33.626Z
839
- </div>
840
- <script src="../../../../prettify.js"></script>
841
- <script>
842
- window.onload = function () {
843
- prettyPrint();
844
- };
845
- </script>
846
- <script src="../../../../sorter.js"></script>
847
- <script src="../../../../block-navigation.js"></script>
848
- </body>
849
- </html>
850
-