@openmrs/esm-stock-management-app 1.0.1-pre.788 → 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.
Files changed (44) hide show
  1. package/dist/493.js +1 -1
  2. package/dist/493.js.map +1 -1
  3. package/dist/880.js +1 -0
  4. package/dist/880.js.map +1 -0
  5. package/dist/942.js +1 -0
  6. package/dist/942.js.map +1 -0
  7. package/dist/main.js +1 -1
  8. package/dist/main.js.map +1 -1
  9. package/dist/openmrs-esm-stock-management-app.js +1 -1
  10. package/dist/openmrs-esm-stock-management-app.js.buildmanifest.json +41 -41
  11. package/dist/routes.json +1 -1
  12. package/package.json +1 -1
  13. package/src/index.ts +15 -21
  14. package/src/routes.json +5 -4
  15. package/src/stock-operations/add-stock-operation/stock-operations-expanded-row/stock-operation-expanded-row.component.tsx +32 -3
  16. package/src/stock-operations/edit-stock-operation/edit-stock-operation-action-menu.component.tsx +2 -2
  17. package/src/stock-operations/stock-operation-actions.component.tsx +81 -0
  18. package/src/stock-operations/stock-operation-links.component.tsx +82 -0
  19. package/src/stock-operations/stock-operation-reference.component.tsx +2 -2
  20. package/src/stock-operations/stock-operation-types-selector/stock-operation-types-selector.component.tsx +2 -2
  21. package/src/stock-operations/stock-operation.utils.tsx +8 -13
  22. package/src/stock-operations/stock-operations-dialog/stock-operations-issue-stock-button.component.tsx +2 -2
  23. package/src/stock-operations/stock-operations-forms/step1.test.tsx +158 -17
  24. package/src/stock-operations/stock-operations-forms/step2.test.tsx +53 -8
  25. package/src/stock-operations/stock-operations-forms/step3.test.tsx +63 -10
  26. package/src/stock-operations/stock-operations-forms/steps/base-operation-details-form-step.tsx +11 -9
  27. package/src/stock-operations/stock-operations-forms/steps/received-items.component.tsx +8 -7
  28. package/src/stock-operations/stock-operations-forms/steps/stock-operation-item-cell.component.tsx +8 -9
  29. package/src/stock-operations/stock-operations-forms/steps/stock-operation-items-form-step.component.tsx +21 -46
  30. package/src/stock-operations/stock-operations-forms/steps/stock-operation-items-form-step.scc.scss +4 -18
  31. package/src/stock-operations/stock-operations-forms/steps/stock-operation-submission-form-step.component.tsx +20 -15
  32. package/src/stock-operations/stock-operations-forms/stock-issue-form-initializer-with-related-requisition-operation.component.tsx +20 -3
  33. package/src/stock-operations/stock-operations-forms/stock-item-form/stock-item-form.workspace.tsx +3 -5
  34. package/src/stock-operations/stock-operations-forms/stock-operation-form.component.tsx +99 -57
  35. package/src/stock-operations/stock-operations-forms/stock-operation-form.scss +5 -24
  36. package/src/stock-operations/stock-operations-forms/stock-operation-related-link.component.tsx +2 -2
  37. package/src/stock-operations/stock-operations-forms/stock-operation-stepper/stepper.scss +14 -11
  38. package/src/stock-operations/stock-operations-forms/stock-operation-stepper/stock-operation-stepper.component.tsx +2 -6
  39. package/src/stock-operations/stock-operations-table.scss +20 -0
  40. package/dist/155.js +0 -1
  41. package/dist/155.js.map +0 -1
  42. package/dist/922.js +0 -1
  43. package/dist/922.js.map +0 -1
  44. package/src/stock-operations/stock-operations-forms/stock-operation-form-header.component.tsx +0 -166
@@ -1 +1 @@
1
- var _openmrs_esm_stock_management_app;(()=>{"use strict";var e,r,t,n,o,a,i,l,s,u,f,p,c,d,h,m,v,g={1371:(e,r,t)=>{var n={"./start":()=>Promise.all([t.e(935),t.e(493),t.e(672),t.e(922)]).then((()=>()=>t(6830)))},o=(e,r)=>(t.R=r,r=t.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),a=(e,r)=>{if(t.S){var n="default",o=t.S[n];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[n]=e,t.I(n,r)}};t.d(r,{get:()=>o,init:()=>a})}},b={};function y(e){var r=b[e];if(void 0!==r)return r.exports;var t=b[e]={id:e,loaded:!1,exports:{}};return g[e].call(t.exports,t,t.exports,y),t.loaded=!0,t.exports}y.m=g,y.c=b,y.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return y.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y.t=function(t,n){if(1&n&&(t=this(t)),8&n)return t;if("object"==typeof t&&t){if(4&n&&t.__esModule)return t;if(16&n&&"function"==typeof t.then)return t}var o=Object.create(null);y.r(o);var a={};e=e||[null,r({}),r([]),r(r)];for(var i=2&n&&t;"object"==typeof i&&!~e.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach((e=>a[e]=()=>t[e]));return a.default=()=>t,y.d(o,a),o},y.d=(e,r)=>{for(var t in r)y.o(r,t)&&!y.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},y.f={},y.e=e=>Promise.all(Object.keys(y.f).reduce(((r,t)=>(y.f[t](e,r),r)),[])),y.u=e=>e+".js",y.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),y.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},n="@openmrs/esm-stock-management-app:",y.l=(e,r,o,a)=>{if(t[e])t[e].push(r);else{var i,l;if(void 0!==o)for(var s=document.getElementsByTagName("script"),u=0;u<s.length;u++){var f=s[u];if(f.getAttribute("src")==e||f.getAttribute("data-webpack")==n+o){i=f;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,y.nc&&i.setAttribute("nonce",y.nc),i.setAttribute("data-webpack",n+o),i.src=e),t[e]=[r];var p=(r,n)=>{i.onerror=i.onload=null,clearTimeout(c);var o=t[e];if(delete t[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),r)return r(n)},c=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),l&&document.head.appendChild(i)}},y.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},y.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{y.S={};var e={},r={};y.I=(t,n)=>{n||(n=[]);var o=r[t];if(o||(o=r[t]={}),!(n.indexOf(o)>=0)){if(n.push(o),e[t])return e[t];y.o(y.S,t)||(y.S[t]={});var a=y.S[t],i="@openmrs/esm-stock-management-app",l=(e,r,t,n)=>{var o=a[e]=a[e]||{},l=o[r];(!l||!l.loaded&&(!n!=!l.eager?n:i>l.from))&&(o[r]={get:t,from:i,eager:!!n})},s=[];return"default"===t&&(l("@openmrs/esm-framework","5.7.3-pre.2161",(()=>Promise.all([y.e(793),y.e(672)]).then((()=>()=>y(1793))))),l("dayjs","1.11.10",(()=>y.e(484).then((()=>()=>y(7484))))),l("react-i18next","11.18.6",(()=>Promise.all([y.e(672),y.e(629)]).then((()=>()=>y(707))))),l("react-router-dom","6.21.1",(()=>Promise.all([y.e(26),y.e(935),y.e(672)]).then((()=>()=>y(8026))))),l("react","18.2.0",(()=>y.e(294).then((()=>()=>y(7294))))),l("swr/_internal","2.2.5",(()=>Promise.all([y.e(46),y.e(672)]).then((()=>()=>y(46)))))),e[t]=s.length?Promise.all(s).then((()=>e[t]=1)):1}}})(),(()=>{var e;y.g.importScripts&&(e=y.g.location+"");var r=y.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&!e;)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),y.p=e})(),o=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=t[1]?r(t[1]):[];return t[2]&&(n.length++,n.push.apply(n,r(t[2]))),t[3]&&(n.push([]),n.push.apply(n,r(t[3]))),n},a=(e,r)=>{e=o(e),r=o(r);for(var t=0;;){if(t>=e.length)return t<r.length&&"u"!=(typeof r[t])[0];var n=e[t],a=(typeof n)[0];if(t>=r.length)return"u"==a;var i=r[t],l=(typeof i)[0];if(a!=l)return"o"==a&&"n"==l||"s"==l||"u"==a;if("o"!=a&&"u"!=a&&n!=i)return n<i;t++}},i=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var n=1,o=1;o<e.length;o++)n--,t+="u"==(typeof(l=e[o]))[0]?"-":(n>0?".":"")+(n=2,l);return t}var a=[];for(o=1;o<e.length;o++){var l=e[o];a.push(0===l?"not("+s()+")":1===l?"("+s()+" || "+s()+")":2===l?a.pop()+" "+a.pop():i(l))}return s();function s(){return a.pop().replace(/^\((.+)\)$/,"$1")}},l=(e,r)=>{if(0 in e){r=o(r);var t=e[0],n=t<0;n&&(t=-t-1);for(var a=0,i=1,s=!0;;i++,a++){var u,f,p=i<e.length?(typeof e[i])[0]:"";if(a>=r.length||"o"==(f=(typeof(u=r[a]))[0]))return!s||("u"==p?i>t&&!n:""==p!=n);if("u"==f){if(!s||"u"!=p)return!1}else if(s)if(p==f)if(i<=t){if(u!=e[i])return!1}else{if(n?u>e[i]:u<e[i])return!1;u!=e[i]&&(s=!1)}else if("s"!=p&&"n"!=p){if(n||i<=t)return!1;s=!1,i--}else{if(i<=t||f<p!=n)return!1;s=!1}else"s"!=p&&"n"!=p&&(s=!1,i--)}}var c=[],d=c.pop.bind(c);for(a=1;a<e.length;a++){var h=e[a];c.push(1==h?d()|d():2==h?d()&d():h?l(h,r):!d())}return!!d()},s=(e,r)=>{var t=e[r];return Object.keys(t).reduce(((e,r)=>!e||!t[e].loaded&&a(e,r)?r:e),0)},u=(e,r,t,n)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+i(n)+")",f=(e,r,t,n)=>{var o=s(e,t);return l(n,o)||p(u(e,t,o,n)),c(e[t][o])},p=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},c=e=>(e.loaded=1,e.get()),d=(e=>function(r,t,n,o){var a=y.I(r);return a&&a.then?a.then(e.bind(e,r,y.S[r],t,n,o)):e(0,y.S[r],t,n,o)})(((e,r,t,n,o)=>r&&y.o(r,t)?f(r,0,t,n):o())),h={},m={1672:()=>d("default","react",[1,18],(()=>y.e(294).then((()=>()=>y(7294))))),1914:()=>d("default","react-router-dom",[1,6],(()=>y.e(26).then((()=>()=>y(8026))))),2653:()=>d("default","dayjs",[1,1],(()=>y.e(484).then((()=>()=>y(7484))))),3397:()=>d("default","react-i18next",[1,11],(()=>y.e(707).then((()=>()=>y(707))))),5512:()=>d("default","swr/_internal",[1,2],(()=>y.e(46).then((()=>()=>y(46))))),7248:()=>d("default","@openmrs/esm-framework",[1,5],(()=>y.e(793).then((()=>()=>y(1793)))))},v={672:[1672],922:[1914,2653,3397,5512,7248]},y.f.consumes=(e,r)=>{y.o(v,e)&&v[e].forEach((e=>{if(y.o(h,e))return r.push(h[e]);var t=r=>{h[e]=0,y.m[e]=t=>{delete y.c[e],t.exports=r()}},n=r=>{delete h[e],y.m[e]=t=>{throw delete y.c[e],r}};try{var o=m[e]();o.then?r.push(h[e]=o.then(t).catch(n)):t(o)}catch(e){n(e)}}))},(()=>{var e={122:0};y.f.j=(r,t)=>{var n=y.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else if(672!=r){var o=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=o);var a=y.p+y.u(r),i=new Error;y.l(a,(t=>{if(y.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+a+")",i.name="ChunkLoadError",i.type=o,i.request=a,n[1](i)}}),"chunk-"+r,r)}else e[r]=0};var r=(r,t)=>{var n,o,[a,i,l]=t,s=0;if(a.some((r=>0!==e[r]))){for(n in i)y.o(i,n)&&(y.m[n]=i[n]);l&&l(y)}for(r&&r(t);s<a.length;s++)o=a[s],y.o(e,o)&&e[o]&&e[o][0](),e[o]=0},t=globalThis.webpackChunk_openmrs_esm_stock_management_app=globalThis.webpackChunk_openmrs_esm_stock_management_app||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),y.nc=void 0;var _=y(1371);_openmrs_esm_stock_management_app=_})();
1
+ var _openmrs_esm_stock_management_app;(()=>{"use strict";var e,r,t,n,o,a,i,l,s,u,f,p,c,d,h,m,v,g={1371:(e,r,t)=>{var n={"./start":()=>Promise.all([t.e(935),t.e(493),t.e(672),t.e(942)]).then((()=>()=>t(8600)))},o=(e,r)=>(t.R=r,r=t.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),a=(e,r)=>{if(t.S){var n="default",o=t.S[n];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[n]=e,t.I(n,r)}};t.d(r,{get:()=>o,init:()=>a})}},b={};function y(e){var r=b[e];if(void 0!==r)return r.exports;var t=b[e]={id:e,loaded:!1,exports:{}};return g[e].call(t.exports,t,t.exports,y),t.loaded=!0,t.exports}y.m=g,y.c=b,y.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return y.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y.t=function(t,n){if(1&n&&(t=this(t)),8&n)return t;if("object"==typeof t&&t){if(4&n&&t.__esModule)return t;if(16&n&&"function"==typeof t.then)return t}var o=Object.create(null);y.r(o);var a={};e=e||[null,r({}),r([]),r(r)];for(var i=2&n&&t;"object"==typeof i&&!~e.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach((e=>a[e]=()=>t[e]));return a.default=()=>t,y.d(o,a),o},y.d=(e,r)=>{for(var t in r)y.o(r,t)&&!y.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},y.f={},y.e=e=>Promise.all(Object.keys(y.f).reduce(((r,t)=>(y.f[t](e,r),r)),[])),y.u=e=>e+".js",y.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),y.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},n="@openmrs/esm-stock-management-app:",y.l=(e,r,o,a)=>{if(t[e])t[e].push(r);else{var i,l;if(void 0!==o)for(var s=document.getElementsByTagName("script"),u=0;u<s.length;u++){var f=s[u];if(f.getAttribute("src")==e||f.getAttribute("data-webpack")==n+o){i=f;break}}i||(l=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,y.nc&&i.setAttribute("nonce",y.nc),i.setAttribute("data-webpack",n+o),i.src=e),t[e]=[r];var p=(r,n)=>{i.onerror=i.onload=null,clearTimeout(c);var o=t[e];if(delete t[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),r)return r(n)},c=setTimeout(p.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=p.bind(null,i.onerror),i.onload=p.bind(null,i.onload),l&&document.head.appendChild(i)}},y.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},y.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{y.S={};var e={},r={};y.I=(t,n)=>{n||(n=[]);var o=r[t];if(o||(o=r[t]={}),!(n.indexOf(o)>=0)){if(n.push(o),e[t])return e[t];y.o(y.S,t)||(y.S[t]={});var a=y.S[t],i="@openmrs/esm-stock-management-app",l=(e,r,t,n)=>{var o=a[e]=a[e]||{},l=o[r];(!l||!l.loaded&&(!n!=!l.eager?n:i>l.from))&&(o[r]={get:t,from:i,eager:!!n})},s=[];return"default"===t&&(l("@openmrs/esm-framework","5.7.3-pre.2161",(()=>Promise.all([y.e(793),y.e(672)]).then((()=>()=>y(1793))))),l("dayjs","1.11.10",(()=>y.e(484).then((()=>()=>y(7484))))),l("react-i18next","11.18.6",(()=>Promise.all([y.e(672),y.e(629)]).then((()=>()=>y(707))))),l("react-router-dom","6.21.1",(()=>Promise.all([y.e(26),y.e(935),y.e(672)]).then((()=>()=>y(8026))))),l("react","18.2.0",(()=>y.e(294).then((()=>()=>y(7294))))),l("swr/_internal","2.2.5",(()=>Promise.all([y.e(46),y.e(672)]).then((()=>()=>y(46)))))),e[t]=s.length?Promise.all(s).then((()=>e[t]=1)):1}}})(),(()=>{var e;y.g.importScripts&&(e=y.g.location+"");var r=y.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&!e;)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),y.p=e})(),o=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=t[1]?r(t[1]):[];return t[2]&&(n.length++,n.push.apply(n,r(t[2]))),t[3]&&(n.push([]),n.push.apply(n,r(t[3]))),n},a=(e,r)=>{e=o(e),r=o(r);for(var t=0;;){if(t>=e.length)return t<r.length&&"u"!=(typeof r[t])[0];var n=e[t],a=(typeof n)[0];if(t>=r.length)return"u"==a;var i=r[t],l=(typeof i)[0];if(a!=l)return"o"==a&&"n"==l||"s"==l||"u"==a;if("o"!=a&&"u"!=a&&n!=i)return n<i;t++}},i=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var n=1,o=1;o<e.length;o++)n--,t+="u"==(typeof(l=e[o]))[0]?"-":(n>0?".":"")+(n=2,l);return t}var a=[];for(o=1;o<e.length;o++){var l=e[o];a.push(0===l?"not("+s()+")":1===l?"("+s()+" || "+s()+")":2===l?a.pop()+" "+a.pop():i(l))}return s();function s(){return a.pop().replace(/^\((.+)\)$/,"$1")}},l=(e,r)=>{if(0 in e){r=o(r);var t=e[0],n=t<0;n&&(t=-t-1);for(var a=0,i=1,s=!0;;i++,a++){var u,f,p=i<e.length?(typeof e[i])[0]:"";if(a>=r.length||"o"==(f=(typeof(u=r[a]))[0]))return!s||("u"==p?i>t&&!n:""==p!=n);if("u"==f){if(!s||"u"!=p)return!1}else if(s)if(p==f)if(i<=t){if(u!=e[i])return!1}else{if(n?u>e[i]:u<e[i])return!1;u!=e[i]&&(s=!1)}else if("s"!=p&&"n"!=p){if(n||i<=t)return!1;s=!1,i--}else{if(i<=t||f<p!=n)return!1;s=!1}else"s"!=p&&"n"!=p&&(s=!1,i--)}}var c=[],d=c.pop.bind(c);for(a=1;a<e.length;a++){var h=e[a];c.push(1==h?d()|d():2==h?d()&d():h?l(h,r):!d())}return!!d()},s=(e,r)=>{var t=e[r];return Object.keys(t).reduce(((e,r)=>!e||!t[e].loaded&&a(e,r)?r:e),0)},u=(e,r,t,n)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+i(n)+")",f=(e,r,t,n)=>{var o=s(e,t);return l(n,o)||p(u(e,t,o,n)),c(e[t][o])},p=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},c=e=>(e.loaded=1,e.get()),d=(e=>function(r,t,n,o){var a=y.I(r);return a&&a.then?a.then(e.bind(e,r,y.S[r],t,n,o)):e(0,y.S[r],t,n,o)})(((e,r,t,n,o)=>r&&y.o(r,t)?f(r,0,t,n):o())),h={},m={1672:()=>d("default","react",[1,18],(()=>y.e(294).then((()=>()=>y(7294))))),1914:()=>d("default","react-router-dom",[1,6],(()=>y.e(26).then((()=>()=>y(8026))))),2653:()=>d("default","dayjs",[1,1],(()=>y.e(484).then((()=>()=>y(7484))))),3397:()=>d("default","react-i18next",[1,11],(()=>y.e(707).then((()=>()=>y(707))))),5512:()=>d("default","swr/_internal",[1,2],(()=>y.e(46).then((()=>()=>y(46))))),7248:()=>d("default","@openmrs/esm-framework",[1,5],(()=>y.e(793).then((()=>()=>y(1793)))))},v={672:[1672],942:[1914,2653,3397,5512,7248]},y.f.consumes=(e,r)=>{y.o(v,e)&&v[e].forEach((e=>{if(y.o(h,e))return r.push(h[e]);var t=r=>{h[e]=0,y.m[e]=t=>{delete y.c[e],t.exports=r()}},n=r=>{delete h[e],y.m[e]=t=>{throw delete y.c[e],r}};try{var o=m[e]();o.then?r.push(h[e]=o.then(t).catch(n)):t(o)}catch(e){n(e)}}))},(()=>{var e={122:0};y.f.j=(r,t)=>{var n=y.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else if(672!=r){var o=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=o);var a=y.p+y.u(r),i=new Error;y.l(a,(t=>{if(y.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+a+")",i.name="ChunkLoadError",i.type=o,i.request=a,n[1](i)}}),"chunk-"+r,r)}else e[r]=0};var r=(r,t)=>{var n,o,[a,i,l]=t,s=0;if(a.some((r=>0!==e[r]))){for(n in i)y.o(i,n)&&(y.m[n]=i[n]);l&&l(y)}for(r&&r(t);s<a.length;s++)o=a[s],y.o(e,o)&&e[o]&&e[o][0](),e[o]=0},t=globalThis.webpackChunk_openmrs_esm_stock_management_app=globalThis.webpackChunk_openmrs_esm_stock_management_app||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),y.nc=void 0;var _=y(1371);_openmrs_esm_stock_management_app=_})();
@@ -21,7 +21,7 @@
21
21
  "auxiliaryFiles": [
22
22
  "20.js.map"
23
23
  ],
24
- "hash": "427ebc0f003b7ef5",
24
+ "hash": "add2504aec147665",
25
25
  "childrenByOrder": {}
26
26
  },
27
27
  {
@@ -102,31 +102,7 @@
102
102
  "auxiliaryFiles": [
103
103
  "openmrs-esm-stock-management-app.js.map"
104
104
  ],
105
- "hash": "ed834d45d9bcd330",
106
- "childrenByOrder": {}
107
- },
108
- {
109
- "rendered": true,
110
- "initial": false,
111
- "entry": false,
112
- "recorded": false,
113
- "size": 56544,
114
- "sizes": {
115
- "javascript": 56544
116
- },
117
- "names": [],
118
- "idHints": [],
119
- "runtime": [
120
- "@openmrs/esm-stock-management-app",
121
- "main"
122
- ],
123
- "files": [
124
- "155.js"
125
- ],
126
- "auxiliaryFiles": [
127
- "155.js.map"
128
- ],
129
- "hash": "d2341156343a2948",
105
+ "hash": "27594147963c527b",
130
106
  "childrenByOrder": {}
131
107
  },
132
108
  {
@@ -150,7 +126,7 @@
150
126
  "auxiliaryFiles": [
151
127
  "172.js.map"
152
128
  ],
153
- "hash": "eda57feec50cee3a",
129
+ "hash": "dc1ed22b41ecb9f0",
154
130
  "childrenByOrder": {}
155
131
  },
156
132
  {
@@ -158,10 +134,10 @@
158
134
  "initial": true,
159
135
  "entry": true,
160
136
  "recorded": false,
161
- "size": 5785832,
137
+ "size": 5475157,
162
138
  "sizes": {
163
139
  "consume-shared": 252,
164
- "javascript": 5763883,
140
+ "javascript": 5453208,
165
141
  "share-init": 252,
166
142
  "runtime": 21445
167
143
  },
@@ -178,7 +154,7 @@
178
154
  "auxiliaryFiles": [
179
155
  "main.js.map"
180
156
  ],
181
- "hash": "db105aa271d284d7",
157
+ "hash": "7b3183dec6dd1de5",
182
158
  "childrenByOrder": {}
183
159
  },
184
160
  {
@@ -224,7 +200,7 @@
224
200
  "auxiliaryFiles": [
225
201
  "290.js.map"
226
202
  ],
227
- "hash": "25d983f736972775",
203
+ "hash": "420ca348ca485d8c",
228
204
  "childrenByOrder": {}
229
205
  },
230
206
  {
@@ -342,7 +318,7 @@
342
318
  "auxiliaryFiles": [
343
319
  "493.js.map"
344
320
  ],
345
- "hash": "0d62292b71e1e667",
321
+ "hash": "77e751713e51d802",
346
322
  "childrenByOrder": {}
347
323
  },
348
324
  {
@@ -388,7 +364,7 @@
388
364
  "auxiliaryFiles": [
389
365
  "606.js.map"
390
366
  ],
391
- "hash": "457d1c263d4f3ba6",
367
+ "hash": "022a67bbd27dc006",
392
368
  "childrenByOrder": {}
393
369
  },
394
370
  {
@@ -412,7 +388,7 @@
412
388
  "auxiliaryFiles": [
413
389
  "627.js.map"
414
390
  ],
415
- "hash": "ab3fb08b12303a19",
391
+ "hash": "d3973cdee8608ee7",
416
392
  "childrenByOrder": {}
417
393
  },
418
394
  {
@@ -604,23 +580,23 @@
604
580
  "initial": false,
605
581
  "entry": false,
606
582
  "recorded": false,
607
- "size": 2042659,
583
+ "size": 372135,
608
584
  "sizes": {
609
- "javascript": 2042449,
610
- "consume-shared": 210
585
+ "javascript": 372135
611
586
  },
612
587
  "names": [],
613
588
  "idHints": [],
614
589
  "runtime": [
615
- "@openmrs/esm-stock-management-app"
590
+ "@openmrs/esm-stock-management-app",
591
+ "main"
616
592
  ],
617
593
  "files": [
618
- "922.js"
594
+ "880.js"
619
595
  ],
620
596
  "auxiliaryFiles": [
621
- "922.js.map"
597
+ "880.js.map"
622
598
  ],
623
- "hash": "7bfc983f0ab1d304",
599
+ "hash": "ef3d62ebaa78c122",
624
600
  "childrenByOrder": {}
625
601
  },
626
602
  {
@@ -649,6 +625,30 @@
649
625
  ],
650
626
  "hash": "ec5f549cbfd789c7",
651
627
  "childrenByOrder": {}
628
+ },
629
+ {
630
+ "rendered": true,
631
+ "initial": false,
632
+ "entry": false,
633
+ "recorded": false,
634
+ "size": 1731984,
635
+ "sizes": {
636
+ "javascript": 1731774,
637
+ "consume-shared": 210
638
+ },
639
+ "names": [],
640
+ "idHints": [],
641
+ "runtime": [
642
+ "@openmrs/esm-stock-management-app"
643
+ ],
644
+ "files": [
645
+ "942.js"
646
+ ],
647
+ "auxiliaryFiles": [
648
+ "942.js.map"
649
+ ],
650
+ "hash": "12ff7ea2b5964123",
651
+ "childrenByOrder": {}
652
652
  }
653
653
  ]
654
654
  }
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":"locations-db-link","slot":"stock-page-dashboard-slot","component":"stockLocationsLink","meta":{"name":"locations","slot":"locations-dashboard-slot","title":"Locations"},"order":4,"online":true,"offline":true},{"name":"stock-locations-db","slot":"locations-dashboard-slot","component":"stockLocations"},{"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":"import-bulk-stock-items","component":"importBulkStockItemsModal"},{"name":"stock-operation-dialog","component":"stockOperationModal"},{"name":"transactions-print-bincard-preview-modal","component":"transactionBincardPrintPreviewModal"},{"name":"transactions-print-stockcard-preview-modal","component":"transactionStockcardPrintPreviewModal"}],"workspaces":[{"name":"stock-operation-stock-items-form","component":"stockOperationStockItemForm","title":"Stock Items","type":"form","width":"wider"}],"pages":[{"component":"root","route":"stock-management"}],"version":"1.0.1-pre.788"}
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":"locations-db-link","slot":"stock-page-dashboard-slot","component":"stockLocationsLink","meta":{"name":"locations","slot":"locations-dashboard-slot","title":"Locations"},"order":4,"online":true,"offline":true},{"name":"stock-locations-db","slot":"locations-dashboard-slot","component":"stockLocations"},{"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":"import-bulk-stock-items","component":"importBulkStockItemsModal"},{"name":"stock-operation-dialog","component":"stockOperationModal"},{"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"}],"pages":[{"component":"root","route":"stock-management"}],"version":"1.0.1-pre.790"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openmrs/esm-stock-management-app",
3
- "version": "1.0.1-pre.788",
3
+ "version": "1.0.1-pre.790",
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",
package/src/index.ts CHANGED
@@ -1,27 +1,22 @@
1
1
  import { defineConfigSchema, getAsyncLifecycle, getSyncLifecycle } from '@openmrs/esm-framework';
2
2
  import { configSchema } from './config-schema';
3
- import appMenu from './stock-app-menu-item/item.component';
4
- import bulkImportComponent from './stock-items/add-bulk-stock-item/stock-items-bulk-import.component';
5
- import deleteUserModalComponent from './stock-user-role-scopes/delete-stock-user-scope-modal.component';
6
- import deleteStockModalComponent from './stock-sources/delete-stock-modal.component';
7
- import stockOperationDialogComponent from './stock-operations/stock-operations-dialog/stock-operations-dialog.component';
8
- import stockManagementComponent from './stock-management.component';
9
- import stockManagementAdminCardLinkComponent from './stock-management-admin-card-link.component';
10
- import deletePackagingUnitModalButtonComponent from './stock-items/add-stock-item/packaging-units/packaging-units-delete-modal-button.component';
11
- import deletePackagingUnitComponent from './stock-items/add-stock-item/packaging-units/packaging-units-delete-modal.component';
12
- import Root from './root.component';
13
- import StockHomeLandingPage from './stock-home/stock-home-landing-page-component';
14
3
  import { createDashboardLink } from './createDashboardLink';
4
+ import Root from './root.component';
15
5
  import SideMenu from './side-menu/side-menu.component';
16
- import StockOperationsComponent from './stock-operations/stock-operations.component';
6
+ import appMenu from './stock-app-menu-item/item.component';
7
+ import StockHomeLandingPage from './stock-home/stock-home-landing-page-component';
8
+ import deletePackagingUnitModalButtonComponent from './stock-items/add-stock-item/packaging-units/packaging-units-delete-modal-button.component';
9
+ import TransactionsBincardPrintPreview from './stock-items/add-stock-item/transactions/printout/transactions-print-bincard-preview.modal';
10
+ import TransactionsStockcardPrintPreview from './stock-items/add-stock-item/transactions/printout/transactions-print-stockcard-preview.modal';
17
11
  import StockItems from './stock-items/stock-items.component';
18
- import StockUserScopes from './stock-user-role-scopes/stock-user-role-scopes.component';
19
- import StockSources from './stock-sources/stock-sources.component';
20
12
  import StockLocations from './stock-locations/stock-locations.component';
13
+ import stockManagementAdminCardLinkComponent from './stock-management-admin-card-link.component';
14
+ import stockManagementComponent from './stock-management.component';
15
+ import StockOperationsComponent from './stock-operations/stock-operations.component';
21
16
  import StockReports from './stock-reports/report-list/stock-reports.component';
22
17
  import StockSettings from './stock-settings/stock-settings.component';
23
- import TransactionsBincardPrintPreview from './stock-items/add-stock-item/transactions/printout/transactions-print-bincard-preview.modal';
24
- import TransactionsStockcardPrintPreview from './stock-items/add-stock-item/transactions/printout/transactions-print-stockcard-preview.modal';
18
+ import StockSources from './stock-sources/stock-sources.component';
19
+ import StockUserScopes from './stock-user-role-scopes/stock-user-role-scopes.component';
25
20
 
26
21
  const moduleName = '@openmrs/esm-stock-management-app';
27
22
 
@@ -130,13 +125,12 @@ export const deletePackagingUnitButton = getSyncLifecycle(deletePackagingUnitMod
130
125
 
131
126
  export const stockManagementAppMenuItem = getSyncLifecycle(appMenu, options);
132
127
 
133
- export const stockOperationStockItemForm = getAsyncLifecycle(
134
- () => import('./stock-operations/stock-operations-forms/stock-item-form/stock-item-form.workspace'),
135
- options,
136
- );
137
128
  export const transactionBincardPrintPreviewModal = getSyncLifecycle(TransactionsBincardPrintPreview, options);
138
129
  export const transactionStockcardPrintPreviewModal = getSyncLifecycle(TransactionsStockcardPrintPreview, options);
139
-
130
+ export const stockOperationFormWorkspace = getAsyncLifecycle(
131
+ () => import('./stock-operations/stock-operations-forms/stock-operation-form.component'),
132
+ options,
133
+ );
140
134
  export function startupApp() {
141
135
  defineConfigSchema(moduleName, configSchema);
142
136
  }
package/src/routes.json CHANGED
@@ -210,11 +210,12 @@
210
210
  ],
211
211
  "workspaces": [
212
212
  {
213
- "name": "stock-operation-stock-items-form",
214
- "component": "stockOperationStockItemForm",
215
- "title": "Stock Items",
213
+ "name": "stock-operation-form-workspace",
214
+ "component": "stockOperationFormWorkspace",
215
+ "title": "Stock Operation",
216
216
  "type": "form",
217
- "width": "wider"
217
+ "canMaximize": true,
218
+ "width": "extra-wide"
218
219
  }
219
220
  ],
220
221
  "pages": [
@@ -1,9 +1,12 @@
1
- import { Layer, Row } from '@carbon/react';
2
- import React from 'react';
1
+ import { InlineLoading, Layer, Row } from '@carbon/react';
2
+ import React, { useMemo } from 'react';
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import { StockOperationDTO } from '../../../core/api/types/stockOperation/StockOperationDTO';
5
- import styles from './stock-operation-expanded-row.scss';
5
+ import { useStockOperationTypes } from '../../../stock-lookups/stock-lookups.resource';
6
+ import StockoperationActions from '../../stock-operation-actions.component';
7
+ import StockOperationLinks from '../../stock-operation-links.component';
6
8
  import StockItemsTable from './stock-items-table';
9
+ import styles from './stock-operation-expanded-row.scss';
7
10
  import StockOpertationStatus from './stock-operations-status';
8
11
 
9
12
  interface StockOperationExpandedRowProps {
@@ -12,6 +15,10 @@ interface StockOperationExpandedRowProps {
12
15
 
13
16
  const StockOperationExpandedRow: React.FC<StockOperationExpandedRowProps> = (props) => {
14
17
  const { t } = useTranslation();
18
+ const { types, isLoading, error } = useStockOperationTypes();
19
+ const currentOperationType = useMemo(() => {
20
+ return types?.results?.find(({ uuid }) => props.model.operationTypeUuid === uuid);
21
+ }, [props.model.operationTypeUuid, types?.results]);
15
22
  return (
16
23
  <>
17
24
  <Layer className={styles.statusContainer}>
@@ -76,9 +83,31 @@ const StockOperationExpandedRow: React.FC<StockOperationExpandedRowProps> = (pro
76
83
  />
77
84
  )}
78
85
  </Row>
86
+ <Row className={styles.statusContainerRow}>
87
+ {isLoading && (
88
+ <InlineLoading
89
+ description={t('loading StockoperationLinks', 'Loading stock operation links') + '...'}
90
+ iconDescription={t('loading StockoperationLinks', 'Loading stock operation links')}
91
+ />
92
+ )}
93
+ {currentOperationType && (
94
+ <StockOperationLinks stockOperationType={currentOperationType} stockOperation={props.model} />
95
+ )}
96
+ </Row>
79
97
  <Row className={styles.statusContainerRow}>
80
98
  <StockItemsTable items={props.model.stockOperationItems} />
81
99
  </Row>
100
+ <Row className={styles.statusContainerRow}>
101
+ {isLoading && (
102
+ <InlineLoading
103
+ description={t('loadingOperationActions', 'Loading stock operation actions') + '...'}
104
+ iconDescription={t('loadingOperationActions', 'Loading stock operation actions')}
105
+ />
106
+ )}
107
+ {currentOperationType && (
108
+ <StockoperationActions stockOperationType={currentOperationType} stockOperation={props.model} />
109
+ )}
110
+ </Row>
82
111
  </Layer>
83
112
  </>
84
113
  );
@@ -4,7 +4,7 @@ import { showSnackbar } from '@openmrs/esm-framework';
4
4
  import React, { useCallback, useEffect, useMemo } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
6
6
  import { StockOperationDTO } from '../../core/api/types/stockOperation/StockOperationDTO';
7
- import { launchStockoperationAddOrEditDialog } from '../stock-operation.utils';
7
+ import { launchStockoperationAddOrEditWorkSpace } from '../stock-operation.utils';
8
8
  import useFilteredOperationTypesByRoles from '../stock-operations-forms/hooks/useFilteredOperationTypesByRoles';
9
9
  import { useStockOperationAndItems } from '../stock-operations.resource';
10
10
 
@@ -32,7 +32,7 @@ const EditStockOperationActionMenu: React.FC<EditStockOperationActionMenuProps>
32
32
  );
33
33
 
34
34
  const handleEdit = useCallback(() => {
35
- launchStockoperationAddOrEditDialog(
35
+ launchStockoperationAddOrEditWorkSpace(
36
36
  t,
37
37
  activeOperationType,
38
38
  stockOperation,
@@ -0,0 +1,81 @@
1
+ import React, { useMemo } from 'react';
2
+ import { StockOperationDTO } from '../core/api/types/stockOperation/StockOperationDTO';
3
+ import {
4
+ operationFromString,
5
+ OperationType,
6
+ StockOperationType,
7
+ StockOperationTypeHasPrint,
8
+ } from '../core/api/types/stockOperation/StockOperationType';
9
+ import StockOperationApprovalButton from './stock-operations-dialog/stock-operations-approve-button.component';
10
+ import StockOperationApproveDispatchButton from './stock-operations-dialog/stock-operations-approve-dispatch-button.component';
11
+ import StockOperationCancelButton from './stock-operations-dialog/stock-operations-cancel-button.component';
12
+ import StockOperationCompleteDispatchButton from './stock-operations-dialog/stock-operations-completed-dispatch-button.component';
13
+ import StockOperationIssueStockButton from './stock-operations-dialog/stock-operations-issue-stock-button.component';
14
+ import StockOperationPrintButton from './stock-operations-dialog/stock-operations-print-button.component';
15
+ import StockOperationRejectButton from './stock-operations-dialog/stock-operations-reject-button.component';
16
+ import StockOperationReturnButton from './stock-operations-dialog/stock-operations-return-button.component';
17
+ import useOperationTypePermisions from './stock-operations-forms/hooks/useOperationTypePermisions';
18
+ import styles from './stock-operations-table.scss';
19
+
20
+ type Props = {
21
+ stockOperation: StockOperationDTO;
22
+ stockOperationType: StockOperationType;
23
+ };
24
+
25
+ const StockoperationActions: React.FC<Props> = ({ stockOperation, stockOperationType }) => {
26
+ const operationTypePermision = useOperationTypePermisions(stockOperationType);
27
+ const operationType = useMemo(() => {
28
+ return operationFromString(stockOperationType.operationType);
29
+ }, [stockOperationType]);
30
+ return (
31
+ <>
32
+ {((!stockOperation.permission?.canEdit &&
33
+ (stockOperation.permission?.canApprove || stockOperation.permission?.canReceiveItems)) ||
34
+ stockOperation.permission?.canEdit ||
35
+ StockOperationTypeHasPrint(operationType) ||
36
+ (stockOperation?.permission?.isRequisitionAndCanIssueStock ?? false) ||
37
+ stockOperation.permission?.isRequisitionAndCanIssueStock) && (
38
+ <div className={styles.actionBtns}>
39
+ <>
40
+ {!stockOperation.permission?.canEdit && stockOperation.permission?.canApprove && (
41
+ <>
42
+ {!operationTypePermision.requiresDispatchAcknowledgement && (
43
+ <StockOperationApprovalButton operation={stockOperation} />
44
+ )}
45
+
46
+ {operationTypePermision.requiresDispatchAcknowledgement && (
47
+ <StockOperationApproveDispatchButton operation={stockOperation} />
48
+ )}
49
+
50
+ <StockOperationRejectButton operation={stockOperation} />
51
+ <StockOperationReturnButton operation={stockOperation} />
52
+ <StockOperationCancelButton operation={stockOperation} />
53
+ </>
54
+ )}
55
+
56
+ {!stockOperation.permission?.canEdit && stockOperation.permission?.canReceiveItems && (
57
+ <>
58
+ <StockOperationCompleteDispatchButton operation={stockOperation} reason={false} />
59
+ <StockOperationReturnButton operation={stockOperation} />
60
+ </>
61
+ )}
62
+
63
+ {stockOperation.permission?.canEdit && <StockOperationCancelButton operation={stockOperation} />}
64
+ {stockOperation.permission?.isRequisitionAndCanIssueStock && (
65
+ <StockOperationIssueStockButton operation={stockOperation} />
66
+ )}
67
+ {(stockOperation.permission?.isRequisitionAndCanIssueStock ||
68
+ stockOperation.operationType === OperationType.STOCK_ISSUE_OPERATION_TYPE ||
69
+ stockOperation.operationType === OperationType.REQUISITION_OPERATION_TYPE ||
70
+ stockOperation.operationType === OperationType.RECEIPT_OPERATION_TYPE ||
71
+ stockOperation.operationType === OperationType.TRANSFER_OUT_OPERATION_TYPE) && (
72
+ <StockOperationPrintButton operation={stockOperation} />
73
+ )}
74
+ </>
75
+ </div>
76
+ )}
77
+ </>
78
+ );
79
+ };
80
+
81
+ export default StockoperationActions;
@@ -0,0 +1,82 @@
1
+ import React, { useMemo } from 'react';
2
+ import { StockOperationDTO } from '../core/api/types/stockOperation/StockOperationDTO';
3
+ import { OperationType, StockOperationType } from '../core/api/types/stockOperation/StockOperationType';
4
+ import useStockOperationLinks from './stock-operations-forms/hooks/useStockOperationLinks';
5
+ import styles from './stock-operations-table.scss';
6
+ import StockOperationRelatedLink from './stock-operations-forms/stock-operation-related-link.component';
7
+
8
+ type Props = {
9
+ stockOperation: StockOperationDTO;
10
+ stockOperationType: StockOperationType;
11
+ };
12
+
13
+ const StockOperationLinks: React.FC<Props> = ({ stockOperation, stockOperationType }) => {
14
+ const requisitionOperationUuid = useMemo(() => {
15
+ if (
16
+ stockOperationType?.operationType === OperationType.REQUISITION_OPERATION_TYPE ||
17
+ stockOperation?.operationType === OperationType.REQUISITION_OPERATION_TYPE ||
18
+ stockOperationType?.operationType === OperationType.STOCK_ISSUE_OPERATION_TYPE ||
19
+ stockOperation?.operationType === OperationType.STOCK_ISSUE_OPERATION_TYPE
20
+ ) {
21
+ return stockOperation.uuid;
22
+ }
23
+ return null;
24
+ }, [stockOperationType, stockOperation]);
25
+ const { error, isLoading, operationLinks } = useStockOperationLinks(requisitionOperationUuid);
26
+ if (isLoading || error) return null;
27
+ return (
28
+ <div>
29
+ {' '}
30
+ {operationLinks && operationLinks.length > 0 && (
31
+ <div>
32
+ <h6 className={styles.relatedTransactionHeader}>Related Transactions:</h6>
33
+ {operationLinks.map(
34
+ (item) =>
35
+ (stockOperation.uuid === item?.parentUuid || stockOperationType?.uuid === item?.parentUuid) && (
36
+ <React.Fragment key={item.uuid}>
37
+ <span>{item?.childOperationTypeName}</span>
38
+ <span className={item?.childVoided ? 'voided' : ''}>
39
+ {' '}
40
+ {item?.childVoided && item?.childOperationNumber}
41
+ {!item?.childVoided && (
42
+ <span className={styles.relatedLink}>
43
+ <StockOperationRelatedLink
44
+ stockOperationUuid={item?.childUuid}
45
+ operationNumber={item?.childOperationNumber}
46
+ />
47
+ </span>
48
+ )}
49
+ </span>{' '}
50
+ <span>[{item?.childStatus}]</span>
51
+ </React.Fragment>
52
+ ),
53
+ )}
54
+ <span> </span>
55
+ {operationLinks.map(
56
+ (item) =>
57
+ (stockOperation.uuid === item?.childUuid || stockOperationType.uuid === item?.childUuid) && (
58
+ <React.Fragment key={item.uuid}>
59
+ <span>{item?.parentOperationTypeName}</span>
60
+ <span className={item?.parentVoided ? 'voided' : ''}>
61
+ {' '}
62
+ {item?.parentVoided && item?.parentOperationNumber}
63
+ {!item?.parentVoided && (
64
+ <span className={styles.relatedLink}>
65
+ <StockOperationRelatedLink
66
+ stockOperationUuid={item?.parentUuid}
67
+ operationNumber={item?.parentOperationNumber}
68
+ />
69
+ </span>
70
+ )}
71
+ </span>{' '}
72
+ <span>[{item?.parentStatus}]</span>
73
+ </React.Fragment>
74
+ ),
75
+ )}
76
+ </div>
77
+ )}
78
+ </div>
79
+ );
80
+ };
81
+
82
+ export default StockOperationLinks;
@@ -3,7 +3,7 @@ import { showSnackbar } from '@openmrs/esm-framework';
3
3
  import React, { useCallback, useEffect } from 'react';
4
4
  import { useTranslation } from 'react-i18next';
5
5
  import { useStockOperationTypes } from '../stock-lookups/stock-lookups.resource';
6
- import { launchStockoperationAddOrEditDialog } from './stock-operation.utils';
6
+ import { launchStockoperationAddOrEditWorkSpace } from './stock-operation.utils';
7
7
  import { useStockOperationAndItems } from './stock-operations.resource';
8
8
 
9
9
  interface StockOperationReferenceProps {
@@ -25,7 +25,7 @@ const StockOperationReference = ({ operationNumber, operationUuid }: StockOperat
25
25
  if (!operationType) {
26
26
  return;
27
27
  }
28
- launchStockoperationAddOrEditDialog(
28
+ launchStockoperationAddOrEditWorkSpace(
29
29
  t,
30
30
  operationType,
31
31
  stockOperation,
@@ -4,7 +4,7 @@ import { showSnackbar } from '@openmrs/esm-framework';
4
4
  import React, { useCallback, useEffect } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
6
6
  import { OperationType, StockOperationType } from '../../core/api/types/stockOperation/StockOperationType';
7
- import { launchStockoperationAddOrEditDialog } from '../stock-operation.utils';
7
+ import { launchStockoperationAddOrEditWorkSpace } from '../stock-operation.utils';
8
8
  import useFilteredOperationTypesByRoles from '../stock-operations-forms/hooks/useFilteredOperationTypesByRoles';
9
9
 
10
10
  const StockOperationTypesSelector = () => {
@@ -15,7 +15,7 @@ const StockOperationTypesSelector = () => {
15
15
  (stockOperationType: StockOperationType) => {
16
16
  const isStockIssueOperation = stockOperationType.operationType === OperationType.STOCK_ISSUE_OPERATION_TYPE;
17
17
 
18
- launchStockoperationAddOrEditDialog(t, stockOperationType, undefined);
18
+ launchStockoperationAddOrEditWorkSpace(t, stockOperationType, undefined);
19
19
  },
20
20
  [t],
21
21
  );