{"version":3,"sources":["webpack:///./src/components/SmiConsumptionLogStockQuantityInput.vue?3898","webpack:///./src/components/SmiConsumptionLogStockQuantityInput.vue","webpack:///./src/components/SmiConsumptionLogStockQuantityInput.vue?9c9a","webpack:///./src/components/SmiConsumptionLogStockQuantityInput.vue?9645","webpack:///./src/components/general/Table.vue?29db","webpack:///./src/components/general/Table.vue","webpack:///./src/components/general/Table.vue?a476","webpack:///./src/components/general/Table.vue?ee0b","webpack:///./src/components/SmiWarehousePerformanceCharts.vue?d1e2","webpack:///./src/components/SmiWarehousePerformanceCharts.vue","webpack:///./src/components/SmiWarehousePerformanceCharts.vue?af03","webpack:///./src/components/SmiWarehousePerformanceCharts.vue?1609","webpack:///./src/utils/SmiHelpers.ts","webpack:///./src/services/SmiWarehouseService.ts","webpack:///./src/components/SmiWarehouseStockReportModal.vue?f867","webpack:///./src/components/SmiWarehouseStockReportModal.vue","webpack:///./src/components/SmiWarehouseStockReportModal.vue?12e5","webpack:///./src/components/SmiWarehouseStockReportModal.vue?7a89","webpack:///./src/filters/week.ts","webpack:///./src/components/SmiWarehouseProductsDetails.vue?79bc","webpack:///./src/components/SmiWarehouseStockChart.vue?3be4","webpack:///./src/components/SmiWarehouseStockChart.vue","webpack:///./src/components/SmiWarehouseStockChart.vue?f090","webpack:///./src/components/SmiWarehouseStockChart.vue?6f87","webpack:///./src/components/SmiWarehouseEstimatedStockReachChart.vue?b082","webpack:///./src/components/SmiWarehouseEstimatedStockReachChart.vue","webpack:///./src/components/SmiWarehouseEstimatedStockReachChart.vue?a6b5","webpack:///./src/components/SmiWarehouseEstimatedStockReachChart.vue?de66","webpack:///./src/components/SmiWarehouseProductsDetails.vue","webpack:///./src/components/SmiWarehouseProductsDetails.vue?c124","webpack:///./src/components/SmiWarehouseProductsDetails.vue?0658","webpack:///./src/components/SmiWarehouseDeliveries.vue?9199","webpack:///./src/models/Smi/Warehouses/SmiWarehouseDeliveryCarrier.ts","webpack:///./src/components/SmiWarehouseDeliveryCard.vue","webpack:///./src/components/SmiWarehouseDeliveryCard.vue?12a4","webpack:///./src/components/SmiWarehouseDeliveryCard.vue?b914","webpack:///./src/components/SmiWarehouseDeliveryCard.vue?f04e","webpack:///./src/store/modules/smiWarehouseDeliveries.ts","webpack:///./src/store/modules/smiWarehouseReceivedDeliveries.ts","webpack:///./src/components/SmiWarehouseOrderCard.vue?e29e","webpack:///./src/components/SmiWarehouseOrderCard.vue","webpack:///./src/components/SmiWarehouseOrderCard.vue?c967","webpack:///./src/components/SmiWarehouseOrderCard.vue?9d04","webpack:///./src/components/SmiWarehouseDeliveries.vue","webpack:///./src/components/SmiWarehouseDeliveries.vue?9e3f","webpack:///./src/components/SmiWarehouseDeliveries.vue?b7ac"],"names":["render","_vm","this","_h","$createElement","_c","_self","attrs","validationRules","scopedSlots","_u","key","fn","ref","failed","staticClass","class","invalid","changedWithOkNumber","disabled","domProps","value","on","$event","target","blur","select","onInput","staticRenderFns","isNaN","undefined","originalValue","Number","event","indexOf","replaceAll","$emit","$refs","theInput","focus","required","default","component","anyCheckedRows","disableCheckedActionButton","onCheckedActionButtonClick","_v","_s","checkedActionButtonText","_e","expandable","_t","directives","name","rawName","expression","Array","isArray","checkAll","_i","$$a","$$el","$$c","checked","$$v","$$i","concat","slice","onCheckAllChange","_l","column","index","isSortable","isSorted_ByAsc","fixedOnMobile","onColumnClick","text","row","rowIndex","childRows","length","isClickable","onRowClick","stopPropagation","isChecked","$set","onRowIsCheckedChange","columnIndex","alignRight","getValue","childRow","childRowIndex","isHidden","getChildValue","usePagination","rows","startingPageSize","pageIndex","pageCount","pageSize","pageSizeOptions","onPageSizeChanged","onPageIndexChanged","Math","ceil","checkedRows","customSorting","sortColumn","theColumns","find","c","sort","a","b","sortOrder","properties","property","sortedRows","initialize","columns","map","sortBy","sortAsc","forEach","theColumn","push","checkedRowIndex","findIndex","checkedRow","splice","shownRows","newPageIndex","newPageSize","immediate","deep","components","Pagination","smallHeaders","tag","$t","forecastVsSalesAgreementChartOptions","consumptionVsForecastChartOptions","consumptionVsSalesAgreementChartOptions","chart","height","chartHeight","spacing","chartSpacing","backgroundColor","title","plotOptions","gauge","dataLabels","borderWidth","style","fontSize","format","verticalAlign","wrap","dial","baseWidth","topWidth","rearLength","radius","pivot","pane","startAngle","endAngle","background","tooltip","enabled","credits","time","useUTC","chartOptions","performance","forecastVsSalesAgreementDiffInPercent","forecastVsSalesAgreementStatusBand","consumptionVsForecastDiffInPercent","consumptionVsForecastStatusBand","consumptionVsSalesAgreementDiffInPercent","consumptionVsSalesAgreementStatusBand","diffInPercentValue","statusBand","customOptions","yAxis","min","max","tickInterval","tickPositions","tickPosition","tickWidth","labels","distance","lineWidth","plotBands","from","to","color","RedBelowOrEqualTo90","red","sodraBlack10","innerRadius","borderColor","white","YellowBetween90And95","yellow","Green","limeGreen","YellowBetween100And105","RedAboveOrEqualTo110","series","type","data","commonChartOptions","highcharts","SmiDiffInPercentStatusColors","SmiDiffInPercentStatusBand","getSmiDiffInPercentStatusColors","Red","Yellow","getSmiDiffInPercentStatusBand","SmiWarehouseService","get","then","response","catch","error","Promise","reject","id","post","productNames","reportedStockDeviation","smiWarehouseService","productDisplayName","currentStockQuantity","stockLevelToReport","saving","onReportStockQuantityInput","anyChanges","stockLevelReportIsInvalid","proxy","errorSaving","preventDefault","onSubmit","apply","arguments","onClose","modal","showModal","stockDetails","smiWarehouseId","productNumber","reportStockDeviation","originalQuantity","reportedQuantity","reportStockDeviations","hideModal","finally","Modal","SmiConsumptionLogStockQuantityInput","weekFilter","isoWeek","filter","productDetails","displayName","productPerformance","hasEstimatedStockReach","isAllowedToEdit","openStockReportModal","maxQuantity","valueSpacing","totalValue","inTransitQuantity","xAxis","visible","gridLineWidth","startOnTick","endOnTick","maxValue","plotLines","legend","reversed","stacking","formatter","number","y","enableMouseTracking","showInLegend","fillUpValue","pointWidth","backgroundColorLightGrey","toString","Helpers","AddAlphaToColor","Config","getProductColor","colorCategory","minQuantity","getPlotLineOptions","labelText","width","zIndex","label","textAlign","rotation","getPlotLineLabelText","i18nKey","quantity","categories","estimatedStockReachWeeks","week","weekNumber","align","reserveSpace","x","blue50","SmiWarehousePerformanceCharts","SmiWarehouseStockChart","SmiWarehouseEstimatedStockReachChart","SmiWarehouseStockReportModal","DefaultLayout","SmiWarehouseDeliveryCarrier","SmiWarehouseDeliveryCardType","deliveriesLoading","deliveriesError","upcoming","order","inTransit","delivery","Shipped","received","receivedDeliveriesLoading","receivedDeliveriesError","Received","loadMore","carrierIcon","shippedDate","carNumber","receivedWeek","customerReference","customerRequisition","qDataRoute","navigate","carrier","Rail","Truck","Intermodal","Lorry","Barge","Vessel","receivedDate","date","Permissions","validate","authRequirements","valid","params","deliveryMessageNumber","common","getDataFor","payload","setLoading","setLoadingComplete","setLoadingError","hasFreshDataFor","resolve","item","currentlyLoadingPromise","isCurrentlyLoading","loadingPromise","getDeliveries","warehouseId","commitSetLoadingComplete","Consoler","debugLog","debugWarn","commitSetLoadingError","commitSetLoading","clearData","namespaced","dynamic","store","smiWarehouseDeliveriesModule","loading","search","setLoadedDate","clearLoadedDate","clearLoading","setLoadingPromise","getId","needToReLoad","loadingId","commitClearDeliveries","getReceivedDeliveries","results","commitSetDeliveries","commitSetLoadedDate","commitClearLoading","commitSetLoadingPromise","loadingPromiseForId","smiWarehouseReceivedDeliveriesModule","dateRange","startOf","endOf","products","o","some","p","s","receivedDeliveries","receivedDeliveriesPageIndex","dispatchLoad","product","productName","items","SmiWarehouseOrderCard","SmiWarehouseDeliveryCard"],"mappings":"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","file":"js/smi~smiAdmin.3571de91.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ValidationProvider',{attrs:{\"name\":\"consumption-report-stock-quantity\",\"rules\":_vm.validationRules,\"tag\":\"div\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar failed = ref.failed;\nreturn [_c('input',{ref:\"theInput\",staticClass:\"o-text-input o-text-input--light-grey u-text-right\",class:{\n invalid: failed,\n 'u-background-color-lime-green-20': !failed && _vm.changedWithOkNumber,\n },attrs:{\"type\":\"text\",\"inputmode\":\"numeric\",\"disabled\":_vm.disabled,\"required\":false,\"autocomplete\":\"chrome-off\",\"data-lpignore\":\"true\"},domProps:{\"value\":_vm.value},on:{\"wheel\":function($event){return $event.target.blur()},\"focus\":function($event){return $event.target.select()},\"input\":_vm.onInput}})]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\n\r\n@Component\r\nexport default class SmiConsumptionLogStockQuantityInput extends Vue {\r\n @Prop({ required: true })\r\n public value!: number | null;\r\n @Prop({ required: true })\r\n public disabled!: boolean;\r\n @Prop({ required: false, default: () => undefined })\r\n public originalValue!: number | undefined;\r\n\r\n private readonly validationRules = 'min_value:0|maxThreeDecimals';\r\n\r\n private get changedWithOkNumber(): boolean {\r\n return (\r\n this.value !== null &&\r\n !isNaN(this.value) &&\r\n this.value >= 0 &&\r\n (this.originalValue === undefined ||\r\n this.originalValue !== Number(this.value))\r\n );\r\n }\r\n\r\n private onInput(event: Event) {\r\n const target = event.target as HTMLInputElement;\r\n if (target.value.indexOf(',') !== -1) {\r\n target.value = target.value.replaceAll(',', '.');\r\n }\r\n this.$emit('input', target.value);\r\n }\r\n\r\n public focus(): void {\r\n (this.$refs.theInput as HTMLInputElement)?.focus();\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiConsumptionLogStockQuantityInput.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiConsumptionLogStockQuantityInput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiConsumptionLogStockQuantityInput.vue?vue&type=template&id=9177aefe&\"\nimport script from \"./SmiConsumptionLogStockQuantityInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiConsumptionLogStockQuantityInput.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.checkable)?_c('button',{staticClass:\"o-button o-button--black mb-2\",attrs:{\"type\":\"button\",\"disabled\":!_vm.anyCheckedRows || _vm.disableCheckedActionButton},on:{\"click\":_vm.onCheckedActionButtonClick}},[_vm._v(\" \"+_vm._s(_vm.checkedActionButtonText)+\" \")]):_vm._e(),_c('div',{staticClass:\"c-table c-table--no-divider\",class:{ 'js-table js-table-expandable': _vm.expandable }},[_c('div',{staticClass:\"c-table__scroll-container\"},[_c('table',[_c('thead',[_c('tr',[_vm._t(\"columns\",function(){return [(_vm.checkable)?_c('th',[(_vm.checkable)?_c('label',{staticClass:\"o-checkbox\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.checkAll),expression:\"checkAll\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.checkAll)?_vm._i(_vm.checkAll,null)>-1:(_vm.checkAll)},on:{\"change\":[function($event){var $$a=_vm.checkAll,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.checkAll=$$a.concat([$$v]))}else{$$i>-1&&(_vm.checkAll=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.checkAll=$$c}},_vm.onCheckAllChange]}}),_c('span',{staticClass:\"checkmark\"})]):_vm._e()]):_vm._e(),_vm._l((_vm.theColumns),function(column,index){return _c('th',{key:index,class:{\n 'c-table__sort-column': column.isSortable,\n 'is-asc':\n column.isSortable && column.isSorted_ByAsc === true,\n 'is-desc':\n column.isSortable && column.isSorted_ByAsc === false,\n 'is-main-column': column.fixedOnMobile,\n },on:{\"click\":function($event){return _vm.onColumnClick(column)}}},[_vm._v(\" \"+_vm._s(column.text)+\" \")])})]})],2)]),_c('tbody',[_vm._l((_vm.shownRows),function(row,rowIndex){return [_c('tr',{key:rowIndex,class:{\n 'c-table__primary':\n _vm.expandable && row.childRows && row.childRows.length,\n 'c-table__clickable-row':\n (!_vm.expandable && row.isClickable) ||\n (_vm.expandable && row.childRows && row.childRows.length),\n },on:{\"click\":function($event){return _vm.onRowClick(row)}}},[(_vm.checkable)?_c('td',[(_vm.checkable)?_c('label',{staticClass:\"o-checkbox\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(row.isChecked),expression:\"row.isChecked\"}],attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(row.isChecked)?_vm._i(row.isChecked,null)>-1:(row.isChecked)},on:{\"change\":[function($event){var $$a=row.isChecked,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(row, \"isChecked\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(row, \"isChecked\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(row, \"isChecked\", $$c)}},function($event){return _vm.onRowIsCheckedChange(row)}]}}),_c('span',{staticClass:\"checkmark\"})]):_vm._e()]):_vm._e(),_vm._l((_vm.columns),function(column,columnIndex){return _c('td',{key:(rowIndex + \"|\" + columnIndex),class:{\n 'u-text-right': column.alignRight,\n 'is-main-column': column.fixedOnMobile,\n }},[_vm._t(\"default\",function(){return [_vm._v(\" \"+_vm._s(_vm.getValue(row, column))+\" \")]},{\"row\":row,\"column\":column})],2)})],2),(_vm.expandable && row.childRows && row.childRows.length)?_vm._l((row.childRows),function(childRow,childRowIndex){return _c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(childRow.isHidden !== true),expression:\"childRow.isHidden !== true\"}],key:(rowIndex + \"|\" + childRowIndex + \"|details\"),staticClass:\"c-table__secondary\"},_vm._l((_vm.columns),function(column,columnIndex){return _c('td',{key:(rowIndex + \"|\" + childRowIndex + \"|\" + columnIndex),class:{\n 'u-text-right': column.alignRight,\n }},[_vm._t(\"childRow\",function(){return [_vm._v(\" \"+_vm._s(_vm.getChildValue(childRow, column))+\" \")]},{\"row\":row,\"childRow\":childRow,\"column\":column})],2)}),0)}):_vm._e()]})],2),_vm._t(\"footer\")],2)])]),(_vm.usePagination && _vm.rows.length > _vm.startingPageSize)?_c('Pagination',{staticClass:\"mt-3\",attrs:{\"pageIndex\":_vm.pageIndex,\"pageCount\":_vm.pageCount,\"pageSize\":_vm.pageSize,\"pageSizeOptions\":_vm.pageSizeOptions},on:{\"pageSizeChanged\":_vm.onPageSizeChanged,\"pageIndexChanged\":_vm.onPageIndexChanged}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport Pagination from '@/components/general/Pagination.vue';\r\nimport { SelectOption } from './SelectBox.vue';\r\nimport { PageSizeOptions } from '@/models/Pagination';\r\n\r\nexport interface TableColumn {\r\n text: string;\r\n property: string;\r\n isSortable?: boolean;\r\n alignRight?: boolean;\r\n fixedOnMobile?: boolean;\r\n}\r\n\r\nexport interface TableRow {\r\n properties: { [key: string]: string | number };\r\n isClickable?: boolean;\r\n isChecked?: boolean;\r\n childRows?: TableChildRow[];\r\n}\r\n\r\nexport interface TableChildRow {\r\n properties: { [key: string]: string | number };\r\n isHidden?: boolean;\r\n}\r\n\r\nexport interface SortableTableColumn extends TableColumn {\r\n isSorted_ByAsc?: boolean;\r\n}\r\n\r\nexport interface CustomTableSorting {\r\n sortBy: string;\r\n sortAsc: boolean;\r\n}\r\n\r\n@Component({\r\n components: {\r\n Pagination,\r\n },\r\n})\r\nexport default class Table extends Vue {\r\n @Prop({ required: true })\r\n private columns!: TableColumn[];\r\n @Prop({ required: true })\r\n private rows!: TableRow[];\r\n\r\n @Prop({ required: false, default: () => false })\r\n private usePagination!: boolean;\r\n @Prop({ required: false, default: () => 10 })\r\n private startingPageSize!: number;\r\n @Prop({ required: false, default: () => PageSizeOptions })\r\n private pageSizeOptions!: SelectOption[];\r\n @Prop({ required: false, default: () => null })\r\n private customSorting!: CustomTableSorting | null;\r\n @Prop({ required: false, default: () => false })\r\n private checkable!: boolean;\r\n @Prop({ required: false, default: () => '' })\r\n private checkedActionButtonText!: string;\r\n @Prop({ required: false, default: () => false })\r\n private disableCheckedActionButton!: boolean;\r\n @Prop({ required: false, default: () => false })\r\n private expandable!: boolean;\r\n\r\n private pageIndex: number = 0;\r\n private pageSize: number = 0;\r\n private theColumns: SortableTableColumn[] = [];\r\n\r\n private checkAll: boolean = false;\r\n private checkedRows: TableRow[] = [];\r\n\r\n private get pageCount(): number {\r\n if (this.rows.length === 0) {\r\n return 0;\r\n }\r\n return Math.ceil(this.rows.length / this.pageSize);\r\n }\r\n\r\n private get anyCheckedRows(): boolean {\r\n return this.checkedRows.length > 0;\r\n }\r\n\r\n private get sortedRows(): TableRow[] {\r\n if (this.customSorting !== null) {\r\n return this.rows;\r\n }\r\n const sortColumn = this.theColumns.find(\r\n (c) => c.isSorted_ByAsc !== undefined\r\n );\r\n\r\n if (sortColumn) {\r\n return [...this.rows].sort((a, b) => {\r\n let sortOrder = 0;\r\n\r\n if (\r\n a.properties[sortColumn.property] > b.properties[sortColumn.property]\r\n ) {\r\n sortOrder = 1;\r\n }\r\n\r\n if (\r\n a.properties[sortColumn.property] < b.properties[sortColumn.property]\r\n ) {\r\n sortOrder = -1;\r\n }\r\n\r\n return sortColumn.isSorted_ByAsc ? sortOrder : sortOrder * -1;\r\n });\r\n } else {\r\n return this.rows;\r\n }\r\n }\r\n\r\n private get shownRows(): TableRow[] {\r\n if (this.usePagination) {\r\n return this.sortedRows.slice(\r\n this.pageIndex * this.pageSize,\r\n (this.pageIndex + 1) * this.pageSize\r\n );\r\n } else {\r\n return this.sortedRows;\r\n }\r\n }\r\n\r\n private created(): void {\r\n this.pageSize = this.startingPageSize;\r\n this.initialize();\r\n }\r\n\r\n @Watch('columns', { immediate: false, deep: true })\r\n private onColumnsChange() {\r\n this.initialize();\r\n }\r\n\r\n private initialize(): void {\r\n this.theColumns = this.columns.map((column) => ({\r\n text: column.text,\r\n property: column.property,\r\n isSortable: column.isSortable,\r\n isSorted_ByAsc:\r\n this.customSorting !== null &&\r\n this.customSorting.sortBy === column.property\r\n ? this.customSorting.sortAsc\r\n : undefined,\r\n fixedOnMobile: column.fixedOnMobile,\r\n }));\r\n }\r\n\r\n private getValue(row: TableRow, column: TableColumn): string | number {\r\n return row.properties[column.property];\r\n }\r\n\r\n private getChildValue(\r\n childRow: TableChildRow,\r\n column: TableColumn\r\n ): string | number {\r\n return childRow.properties[column.property];\r\n }\r\n\r\n private onColumnClick(column: SortableTableColumn) {\r\n if (column.isSortable) {\r\n column.isSorted_ByAsc =\r\n column.isSorted_ByAsc === false ? undefined : !column.isSorted_ByAsc;\r\n\r\n this.theColumns.forEach((theColumn) => {\r\n if (theColumn !== column) {\r\n theColumn.isSorted_ByAsc = undefined;\r\n }\r\n });\r\n\r\n this.$emit(\r\n 'sort',\r\n column.isSorted_ByAsc === undefined ? undefined : column\r\n );\r\n }\r\n }\r\n\r\n private onRowIsCheckedChange(row: TableRow) {\r\n if (row.isChecked) {\r\n this.checkedRows.push(row);\r\n } else {\r\n this.checkAll = false;\r\n\r\n const checkedRowIndex = this.checkedRows.findIndex(\r\n (checkedRow) => checkedRow === row\r\n );\r\n if (checkedRowIndex >= 0) {\r\n this.checkedRows.splice(checkedRowIndex, 1);\r\n }\r\n }\r\n }\r\n\r\n private onRowClick(row: TableRow) {\r\n if (\r\n !this.expandable ||\r\n row.childRows === undefined ||\r\n row.childRows.length === 0\r\n ) {\r\n this.$emit('rowClick', row);\r\n }\r\n }\r\n\r\n private onCheckAllChange() {\r\n this.shownRows.forEach((row) => {\r\n row.isChecked = this.checkAll;\r\n });\r\n if (this.checkAll) {\r\n this.checkedRows = this.shownRows.slice();\r\n } else {\r\n this.checkedRows = [];\r\n }\r\n\r\n this.$emit('checkedAll', this.checkAll);\r\n }\r\n\r\n private onCheckedActionButtonClick() {\r\n this.$emit('checkedActionClick', this.checkedRows);\r\n }\r\n\r\n private onPageIndexChanged(newPageIndex: number) {\r\n this.pageIndex = newPageIndex;\r\n }\r\n\r\n private onPageSizeChanged(newPageSize: number) {\r\n this.pageSize = newPageSize;\r\n this.pageIndex = 0;\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Table.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Table.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Table.vue?vue&type=template&id=48fe3eb2&\"\nimport script from \"./Table.vue?vue&type=script&lang=ts&\"\nexport * from \"./Table.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-sm-4 col-lg-4 u-text-center u-margin-top-auto mb-3 mb-sm-0\"},[_c(_vm.smallHeaders ? 'h4' : 'h3',{tag:\"component\",class:{\n 't-heading-5': !_vm.smallHeaders,\n 't-heading-6 u-thin': _vm.smallHeaders,\n }},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehousePerformanceCharts.forecastVsSalesAgreement'))+\" \")]),_c('highcharts',{attrs:{\"options\":_vm.forecastVsSalesAgreementChartOptions}})],1),_c('div',{staticClass:\"col-12 col-sm-4 col-lg-4 u-text-center u-margin-top-auto mb-3 mb-sm-0\"},[_c(_vm.smallHeaders ? 'h4' : 'h3',{tag:\"component\",class:{\n 't-heading-5': !_vm.smallHeaders,\n 't-heading-6 u-thin': _vm.smallHeaders,\n }},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehousePerformanceCharts.consumptionVsForecast'))+\" \")]),_c('highcharts',{attrs:{\"options\":_vm.consumptionVsForecastChartOptions}})],1),_c('div',{staticClass:\"col-12 col-sm-4 col-lg-4 u-text-center u-margin-top-auto mb-3 mb-sm-0\"},[_c(_vm.smallHeaders ? 'h4' : 'h3',{tag:\"component\",class:{\n 't-heading-5': !_vm.smallHeaders,\n 't-heading-6 u-thin': _vm.smallHeaders,\n }},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehousePerformanceCharts.consumptionVsSalesAgreement'))+\" \")]),_c('highcharts',{attrs:{\"options\":_vm.consumptionVsSalesAgreementChartOptions}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { Chart } from 'highcharts-vue';\r\nimport { Options } from 'highcharts';\r\nimport { Colors } from '@/utils/Constants';\r\nimport {\r\n getSmiDiffInPercentStatusBand,\r\n SmiDiffInPercentStatusBand,\r\n} from '@/utils/SmiHelpers';\r\nimport { SmiPerformance } from '@/models/Smi/SmiPerformance';\r\n\r\n@Component({\r\n components: {\r\n highcharts: Chart,\r\n },\r\n})\r\nexport default class SmiWarehousePerformanceCharts extends Vue {\r\n @Prop({ required: true })\r\n public performance!: SmiPerformance;\r\n @Prop({ required: false, default: () => false })\r\n public smallHeaders!: boolean;\r\n\r\n private readonly chartHeight = 250;\r\n private readonly chartSpacing = [10, 12, 0, 12];\r\n\r\n private get forecastVsSalesAgreementChartOptions(): Options {\r\n return this.chartOptions(\r\n this.performance.forecastVsSalesAgreementDiffInPercent,\r\n this.forecastVsSalesAgreementStatusBand\r\n );\r\n }\r\n private get consumptionVsForecastChartOptions(): Options {\r\n return this.chartOptions(\r\n this.performance.consumptionVsForecastDiffInPercent,\r\n this.consumptionVsForecastStatusBand\r\n );\r\n }\r\n private get consumptionVsSalesAgreementChartOptions(): Options {\r\n return this.chartOptions(\r\n this.performance.consumptionVsSalesAgreementDiffInPercent,\r\n this.consumptionVsSalesAgreementStatusBand\r\n );\r\n }\r\n\r\n private get forecastVsSalesAgreementStatusBand():\r\n | SmiDiffInPercentStatusBand\r\n | undefined {\r\n return getSmiDiffInPercentStatusBand(\r\n this.performance.forecastVsSalesAgreementDiffInPercent\r\n );\r\n }\r\n\r\n private get consumptionVsForecastStatusBand():\r\n | SmiDiffInPercentStatusBand\r\n | undefined {\r\n return getSmiDiffInPercentStatusBand(\r\n this.performance.consumptionVsForecastDiffInPercent\r\n );\r\n }\r\n\r\n private get consumptionVsSalesAgreementStatusBand():\r\n | SmiDiffInPercentStatusBand\r\n | undefined {\r\n return getSmiDiffInPercentStatusBand(\r\n this.performance.consumptionVsSalesAgreementDiffInPercent\r\n );\r\n }\r\n\r\n private readonly commonChartOptions: Options = {\r\n chart: {\r\n height: this.chartHeight,\r\n spacing: this.chartSpacing,\r\n backgroundColor: 'transparent',\r\n },\r\n title: {\r\n text: undefined,\r\n },\r\n plotOptions: {\r\n gauge: {\r\n dataLabels: {\r\n borderWidth: 0,\r\n style: {\r\n fontSize: '18px',\r\n },\r\n format: '{y}%',\r\n verticalAlign: 'bottom',\r\n },\r\n wrap: false,\r\n dial: {\r\n baseWidth: 4,\r\n topWidth: 6,\r\n rearLength: '-25%',\r\n radius: '100%',\r\n },\r\n pivot: {\r\n radius: 0,\r\n },\r\n },\r\n },\r\n pane: {\r\n startAngle: -170,\r\n endAngle: 170,\r\n background: [\r\n {\r\n backgroundColor: 'transparent',\r\n borderWidth: 0,\r\n },\r\n ],\r\n },\r\n tooltip: {\r\n enabled: false,\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n time: {\r\n useUTC: false,\r\n },\r\n };\r\n\r\n private chartOptions(\r\n diffInPercentValue?: number,\r\n statusBand?: SmiDiffInPercentStatusBand\r\n ): Options {\r\n const customOptions: Options =\r\n statusBand !== undefined\r\n ? {\r\n yAxis: {\r\n min: 87,\r\n max: 113,\r\n tickInterval: 0,\r\n tickPositions: [90, 95, 100, 105, 110],\r\n tickPosition: 'outside',\r\n tickWidth: 0,\r\n labels: {\r\n distance: 15,\r\n format: '{value}%',\r\n },\r\n lineWidth: 0,\r\n plotBands: [\r\n {\r\n from: 0,\r\n to: 90,\r\n color:\r\n statusBand ===\r\n SmiDiffInPercentStatusBand.RedBelowOrEqualTo90\r\n ? Colors.red\r\n : Colors.sodraBlack10,\r\n innerRadius: '50%',\r\n borderWidth: 5,\r\n borderColor: Colors.white,\r\n },\r\n {\r\n from: 90,\r\n to: 95,\r\n color:\r\n statusBand ===\r\n SmiDiffInPercentStatusBand.YellowBetween90And95\r\n ? Colors.yellow\r\n : Colors.sodraBlack10,\r\n innerRadius: '50%',\r\n borderWidth: 5,\r\n borderColor: Colors.white,\r\n },\r\n {\r\n from: 95,\r\n to: 105,\r\n color:\r\n statusBand === SmiDiffInPercentStatusBand.Green\r\n ? Colors.limeGreen\r\n : Colors.sodraBlack10,\r\n innerRadius: '50%',\r\n borderWidth: 5,\r\n borderColor: Colors.white,\r\n },\r\n {\r\n from: 105,\r\n to: 110,\r\n color:\r\n statusBand ===\r\n SmiDiffInPercentStatusBand.YellowBetween100And105\r\n ? Colors.yellow\r\n : Colors.sodraBlack10,\r\n innerRadius: '50%',\r\n borderWidth: 5,\r\n borderColor: Colors.white,\r\n },\r\n {\r\n from: 110,\r\n to: 9999,\r\n color:\r\n statusBand ===\r\n SmiDiffInPercentStatusBand.RedAboveOrEqualTo110\r\n ? Colors.red\r\n : Colors.sodraBlack10,\r\n innerRadius: '50%',\r\n borderWidth: 5,\r\n borderColor: Colors.white,\r\n },\r\n ],\r\n },\r\n series: [\r\n {\r\n type: 'gauge',\r\n data: [diffInPercentValue ?? 0],\r\n },\r\n ],\r\n }\r\n : {};\r\n\r\n return { ...this.commonChartOptions, ...customOptions };\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehousePerformanceCharts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehousePerformanceCharts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiWarehousePerformanceCharts.vue?vue&type=template&id=22f6572f&\"\nimport script from \"./SmiWarehousePerformanceCharts.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiWarehousePerformanceCharts.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export enum SmiDiffInPercentStatusColors {\r\n Red,\r\n Yellow,\r\n Green,\r\n}\r\n\r\nexport enum SmiDiffInPercentStatusBand {\r\n RedBelowOrEqualTo90,\r\n YellowBetween90And95,\r\n Green,\r\n YellowBetween100And105,\r\n RedAboveOrEqualTo110,\r\n}\r\n\r\nexport function getSmiDiffInPercentStatusColors(\r\n value?: number\r\n): SmiDiffInPercentStatusColors | undefined {\r\n if (value === undefined) {\r\n return undefined;\r\n } else if (value <= 90 || value >= 110) {\r\n return SmiDiffInPercentStatusColors.Red;\r\n } else if ((value > 90 && value <= 95) || (value >= 105 && value < 110)) {\r\n return SmiDiffInPercentStatusColors.Yellow;\r\n } else {\r\n return SmiDiffInPercentStatusColors.Green;\r\n }\r\n}\r\n\r\nexport function getSmiDiffInPercentStatusBand(\r\n value?: number\r\n): SmiDiffInPercentStatusBand | undefined {\r\n if (value === undefined) {\r\n return undefined;\r\n } else if (value <= 90) {\r\n return SmiDiffInPercentStatusBand.RedBelowOrEqualTo90;\r\n } else if (value > 90 && value <= 95) {\r\n return SmiDiffInPercentStatusBand.YellowBetween90And95;\r\n } else if (value >= 105 && value < 110) {\r\n return SmiDiffInPercentStatusBand.YellowBetween100And105;\r\n } else if (value >= 110) {\r\n return SmiDiffInPercentStatusBand.RedAboveOrEqualTo110;\r\n } else {\r\n return SmiDiffInPercentStatusBand.Green;\r\n }\r\n}\r\n","import { arrayParamsSerializer, BaseServiceDefinition } from './BaseService';\r\nimport { SmiWarehouses } from '@/models/Smi/Warehouses/SmiWarehouses';\r\nimport { SmiWarehouseDetails } from '@/models/Smi/Warehouses/SmiWarehouseDetails';\r\nimport { SmiWarehouseDelivery } from '@/models/Smi/Warehouses/SmiWarehouseDelivery';\r\nimport { SmiWarehouseOrder } from '@/models/Smi/Warehouses/SmiWarehouseOrder';\r\nimport { PaginatedResult } from '@/models/PaginatedResult{T}';\r\nimport { SmiWarehouseStockDeviation } from '@/models/Smi/Warehouses/SmiWarehouseStockDeviation';\r\nimport { SmiWarehouseReportStockDeviation } from '@/models/Smi/Warehouses/SmiWarehouseReportStockDeviation';\r\n\r\nclass SmiWarehouseService extends BaseServiceDefinition {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public getWarehouses(): Promise {\r\n return this.get('/api/v1/smi/warehouses')\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public getWarehouse(id: number): Promise {\r\n return this.get(`/api/v1/smi/warehouses/${id}`)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public updateStockLevel(id: number): Promise {\r\n return this.post(`/api/v1/smi/warehouses/${id}/updateStock`).catch(\r\n (error) => {\r\n return Promise.reject(error);\r\n }\r\n );\r\n }\r\n\r\n public getDeliveries(\r\n id: number,\r\n productNames: string[]\r\n ): Promise<{\r\n upcoming: SmiWarehouseOrder[];\r\n inTransit: SmiWarehouseDelivery[];\r\n }> {\r\n return this.get(\r\n `/api/v1/smi/warehouses/${id}/deliveries`,\r\n {\r\n productNames,\r\n },\r\n arrayParamsSerializer\r\n )\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public getReceivedDeliveries(\r\n id: number,\r\n productNames: string[],\r\n pageIndex: number,\r\n pageSize: number\r\n ): Promise<{ received: PaginatedResult }> {\r\n return this.get(\r\n `/api/v1/smi/warehouses/${id}/deliveries/received`,\r\n {\r\n productNames,\r\n pageIndex,\r\n pageSize,\r\n },\r\n arrayParamsSerializer\r\n )\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public getStockDeviations(id: number): Promise {\r\n return this.get(`/api/v1/smi/warehouses/${id}/stockDeviations`)\r\n .then((response) => {\r\n return response.data;\r\n })\r\n .catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n\r\n public reportStockDeviations(\r\n id: number,\r\n reportedStockDeviation: SmiWarehouseReportStockDeviation\r\n ): Promise {\r\n return this.post(\r\n `/api/v1/smi/warehouses/${id}/stockDeviations`,\r\n reportedStockDeviation\r\n ).catch((error) => {\r\n return Promise.reject(error);\r\n });\r\n }\r\n}\r\n\r\nconst smiWarehouseService: SmiWarehouseService = new SmiWarehouseService();\r\n\r\nexport default smiWarehouseService;\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',{ref:\"modal\",attrs:{\"id\":\"smiWarehouseStockReportModal\",\"title\":_vm.$t('smiWarehouseStockReportModal.title'),\"showFooter\":true,\"closeableByOutsideClickAndEscKey\":false},scopedSlots:_vm._u([{key:\"body\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-row align-items-center\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.productDisplayName)+\" \")]),_c('SmiConsumptionLogStockQuantityInput',{staticClass:\"ml-2\",attrs:{\"originalValue\":_vm.currentStockQuantity,\"value\":_vm.stockLevelToReport,\"disabled\":_vm.saving},on:{\"input\":_vm.onReportStockQuantityInput}}),_c('span',{staticClass:\"ml-1\"},[_vm._v(\"t\")])],1),(_vm.anyChanges && !_vm.stockLevelReportIsInvalid)?_c('div',{staticClass:\"u-color-red\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseStockReportModal.deviationInfo'))+\" \")]):(_vm.stockLevelReportIsInvalid && _vm.anyChanges)?_c('div',{staticClass:\"u-color-red\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseStockReportModal.invalidInput'))+\" \")]):(_vm.stockLevelToReport == _vm.currentStockQuantity)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseStockReportModal.noChanges'))+\" \")]):_vm._e()]},proxy:true},{key:\"footer\",fn:function(){return [(_vm.errorSaving)?_c('div',{staticClass:\"c-alert c-alert--red mb-3\",attrs:{\"data-element-id\":\"smiWarehouseStockReportModal-errorAlert\"}},[_c('span',{staticClass:\"c-alert__text\"},[_vm._v(_vm._s(_vm.$t('smiWarehouseStockReportModal.error')))]),_c('span',{staticClass:\"js-toggle-hidden c-alert__close\",attrs:{\"data-element-id\":\"smiWarehouseStockReportModal-errorAlert\"},on:{\"click\":function($event){_vm.errorSaving = false}}})]):_vm._e(),_c('button',{staticClass:\"o-button o-button--lime-green mr-2\",attrs:{\"disabled\":!_vm.anyChanges || _vm.saving || _vm.stockLevelReportIsInvalid},on:{\"click\":function($event){$event.preventDefault();return _vm.onSubmit.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseStockReportModal.button.submit'))+\" \")]),_c('button',{staticClass:\"o-button o-button--white mr-2\",attrs:{\"disabled\":_vm.saving},on:{\"click\":function($event){$event.preventDefault();return _vm.onClose.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseStockReportModal.button.cancel'))+\" \")])]},proxy:true}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport Modal from '@/components/general/Modal.vue';\r\nimport { SmiWarehouseReportStockDeviation } from '@/models/Smi/Warehouses/SmiWarehouseReportStockDeviation';\r\nimport smiWarehouseService from '@/services/SmiWarehouseService';\r\nimport SmiConsumptionLogStockQuantityInput from './SmiConsumptionLogStockQuantityInput.vue';\r\nimport { SmiWarehouseStockDetails } from '@/models/Smi/Warehouses/SmiWarehouseStockDetails';\r\n\r\n@Component({\r\n components: {\r\n Modal,\r\n SmiConsumptionLogStockQuantityInput,\r\n },\r\n})\r\nexport default class SmiWarehouseStockReportModal extends Vue {\r\n @Prop({ required: true }) private smiWarehouseId!: number;\r\n @Prop({ required: true }) private productNumber!: number;\r\n @Prop({ required: true }) private productDisplayName!: string;\r\n @Prop({ required: true }) private stockDetails!:\r\n | SmiWarehouseStockDetails\r\n | undefined;\r\n\r\n private saving: boolean = false;\r\n private errorSaving: boolean = false;\r\n private stockLevelToReport: number | string | null = null;\r\n\r\n public show(): void {\r\n this.initialize();\r\n\r\n (this.$refs.modal as Modal).showModal();\r\n }\r\n\r\n private get currentStockQuantity(): number | undefined {\r\n return this.stockDetails?.currentStockQuantity;\r\n }\r\n\r\n private get stockLevelReportIsInvalid(): boolean {\r\n return (\r\n this.stockLevelToReport === null ||\r\n this.stockLevelToReport === '' ||\r\n isNaN(Number(this.stockLevelToReport)) ||\r\n this.stockLevelToReport < 0\r\n );\r\n }\r\n\r\n private get anyChanges(): boolean {\r\n return (\r\n this.stockLevelToReport != this.currentStockQuantity &&\r\n this.stockLevelToReport != null\r\n );\r\n }\r\n\r\n private initialize(): void {\r\n if (this.smiWarehouseId === null || this.productNumber === null) {\r\n return;\r\n }\r\n\r\n this.errorSaving = false;\r\n this.stockLevelToReport = null;\r\n }\r\n\r\n private onSubmit() {\r\n if (\r\n this.productNumber === null ||\r\n this.currentStockQuantity === undefined ||\r\n this.smiWarehouseId === null ||\r\n this.stockLevelToReport === null ||\r\n this.stockLevelReportIsInvalid ||\r\n !this.anyChanges\r\n ) {\r\n return;\r\n }\r\n this.saving = true;\r\n this.errorSaving = false;\r\n\r\n var reportStockDeviation: SmiWarehouseReportStockDeviation = {\r\n productNumber: this.productNumber,\r\n originalQuantity: this.currentStockQuantity,\r\n reportedQuantity: Number(this.stockLevelToReport),\r\n };\r\n\r\n smiWarehouseService\r\n .reportStockDeviations(this.smiWarehouseId, reportStockDeviation)\r\n .then(() => {\r\n (this.$refs.modal as Modal).hideModal();\r\n })\r\n .catch(() => {\r\n this.errorSaving = true;\r\n })\r\n .finally(() => {\r\n this.saving = false;\r\n });\r\n }\r\n\r\n private onReportStockQuantityInput(value: any): void {\r\n this.stockLevelToReport = value ? value : null;\r\n }\r\n\r\n private onClose() {\r\n (this.$refs.modal as Modal).hideModal();\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseStockReportModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseStockReportModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiWarehouseStockReportModal.vue?vue&type=template&id=e87a0b4a&\"\nimport script from \"./SmiWarehouseStockReportModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiWarehouseStockReportModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import moment from 'moment';\r\nimport Vue from 'vue';\r\n\r\nVue.filter('week', (value: string) => weekFilter(value));\r\n\r\nexport function weekFilter(value: moment.MomentInput): number {\r\n return moment(value).isoWeek();\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',[_c('h3',{staticClass:\"t-heading-5\"},[_vm._v(\" \"+_vm._s(_vm.productDetails.displayName)+\" \")]),_c('div',{staticClass:\"u-background-color-white p-4\"},[_c('div',{staticClass:\"row\"},[(_vm.productDetails.productPerformance)?_c('div',{staticClass:\"col-12 col-lg-8 order-lg-last u-margin-top-auto u-margin-bottom-auto\"},[_c('SmiWarehousePerformanceCharts',{attrs:{\"performance\":_vm.productDetails.productPerformance,\"smallHeaders\":true}})],1):_vm._e(),_c('div',{staticClass:\"col-12 col-lg-4 mt-4 mt-lg-0\"},[_c('div',{class:{\n row: _vm.hasEstimatedStockReach,\n 'u-full-height': !_vm.hasEstimatedStockReach,\n }},[_c('div',{class:{\n 'col-12 col-sm-6 col-lg-12': _vm.hasEstimatedStockReach,\n 'u-full-height': !_vm.hasEstimatedStockReach,\n }},[_c('div',{staticClass:\"d-flex flex-column u-full-height\"},[_c('h4',{staticClass:\"t-heading-6 u-thin flex-fill\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseProductsDetails.stockDetails'))+\" \")]),_c('SmiWarehouseStockChart',{attrs:{\"productDetails\":_vm.productDetails}}),_c('div',{staticClass:\"flex-fill u-text-center\",class:{ 'mt-1': _vm.isAllowedToEdit }},[(_vm.isAllowedToEdit)?_c('a',{staticClass:\"o-text-link t-body-regular-small-bold\",on:{\"click\":_vm.openStockReportModal}},[_vm._v(_vm._s(_vm.$t('smiWarehouseProductsDetails.reportStock')))]):_vm._e()])],1)]),(_vm.hasEstimatedStockReach)?_c('div',{staticClass:\"col-12 col-sm-6 col-lg-12 mt-3 mt-sm-0 mt-lg-3\"},[_c('h4',{staticClass:\"t-heading-6 u-thin\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseProductsDetails.estimatedStockReach'))+\" \")]),_c('SmiWarehouseEstimatedStockReachChart',{attrs:{\"productDetails\":_vm.productDetails}})],1):_vm._e()])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('highcharts',{attrs:{\"options\":_vm.chartOptions}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { Chart } from 'highcharts-vue';\r\nimport {\r\n Options,\r\n SeriesOptionsType,\r\n YAxisPlotLinesOptions,\r\n} from 'node_modules/highcharts/highcharts';\r\nimport { Colors } from '@/utils/Constants';\r\nimport { Config } from '@/utils/Config';\r\nimport { numberFilter } from '@/filters/number';\r\nimport { Helpers } from '@/utils/Helpers';\r\nimport { SmiWarehouseProductDetails } from '@/models/Smi/Warehouses/SmiWarehouseProductDetails';\r\n\r\n@Component({\r\n components: {\r\n highcharts: Chart,\r\n },\r\n})\r\nexport default class SmiWarehouseStockChart extends Vue {\r\n @Prop({ required: true }) public productDetails!: SmiWarehouseProductDetails;\r\n\r\n private get fillUpValue(): number {\r\n if (this.productDetails.stockDetails?.maxQuantity === undefined) {\r\n return 0;\r\n }\r\n return (\r\n this.productDetails.stockDetails.maxQuantity +\r\n this.valueSpacing -\r\n this.totalValue\r\n );\r\n }\r\n\r\n private get valueSpacing(): number {\r\n if (this.productDetails.stockDetails?.maxQuantity === undefined) {\r\n return 0;\r\n }\r\n return this.productDetails.stockDetails.maxQuantity * 0.15;\r\n }\r\n\r\n private get totalValue(): number {\r\n return (\r\n (this.productDetails.stockDetails?.currentStockQuantity ?? 0) +\r\n (this.productDetails.inTransitQuantity ?? 0)\r\n );\r\n }\r\n\r\n private get maxValue(): number {\r\n return this.productDetails.stockDetails?.maxQuantity === undefined ||\r\n this.totalValue > this.productDetails.stockDetails.maxQuantity\r\n ? this.totalValue\r\n : this.productDetails.stockDetails.maxQuantity + this.valueSpacing;\r\n }\r\n\r\n private get chartOptions(): Options {\r\n const customOptions: Options = {\r\n chart: {\r\n height: 140,\r\n spacing: [35, 5, 0, 5],\r\n type: 'bar',\r\n backgroundColor: 'transparent',\r\n },\r\n title: {\r\n text: undefined,\r\n },\r\n xAxis: {\r\n visible: false,\r\n labels: {\r\n enabled: false,\r\n },\r\n },\r\n yAxis: {\r\n gridLineWidth: 0,\r\n startOnTick: false,\r\n endOnTick: false,\r\n max: this.maxValue,\r\n min: 0,\r\n labels: {\r\n enabled: false,\r\n },\r\n title: {\r\n text: null,\r\n },\r\n plotLines: this.plotLines,\r\n },\r\n legend: {\r\n enabled: true,\r\n reversed: true,\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n time: {\r\n useUTC: false,\r\n },\r\n plotOptions: {\r\n series: {\r\n stacking: 'normal',\r\n },\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return numberFilter(this.y) + ' t';\r\n },\r\n },\r\n series: this.series,\r\n };\r\n\r\n return { ...customOptions };\r\n }\r\n\r\n private get series(): SeriesOptionsType[] {\r\n const series: SeriesOptionsType[] = [\r\n {\r\n name: undefined,\r\n enableMouseTracking: false,\r\n showInLegend: false,\r\n type: 'bar',\r\n data: [this.fillUpValue],\r\n pointWidth: 45,\r\n color: Colors.sodraBlack10,\r\n borderColor: Colors.backgroundColorLightGrey,\r\n },\r\n ];\r\n\r\n if (\r\n this.productDetails.inTransitQuantity !== undefined &&\r\n this.productDetails.inTransitQuantity > 0\r\n ) {\r\n series.push({\r\n name: this.$t('smiWarehouseStockChart.tonnesInTransit', [\r\n numberFilter(this.productDetails.inTransitQuantity),\r\n ]).toString(),\r\n type: 'bar',\r\n data: [this.productDetails.inTransitQuantity],\r\n color: Helpers.AddAlphaToColor(\r\n Config.getProductColor(this.productDetails.colorCategory),\r\n 0.5\r\n ),\r\n pointWidth: 55,\r\n });\r\n }\r\n\r\n series.push({\r\n name: this.$t('smiWarehouseStockChart.tonnesInStock', [\r\n numberFilter(this.productDetails.stockDetails?.currentStockQuantity) ??\r\n 0,\r\n ]).toString(),\r\n type: 'bar',\r\n data: [this.productDetails.stockDetails?.currentStockQuantity ?? 0],\r\n color: Config.getProductColor(this.productDetails.colorCategory),\r\n pointWidth: 55,\r\n });\r\n\r\n return series;\r\n }\r\n\r\n private get plotLines(): YAxisPlotLinesOptions[] {\r\n if (\r\n this.productDetails.stockDetails === undefined ||\r\n (this.productDetails.stockDetails.minQuantity === undefined &&\r\n this.productDetails.stockDetails.maxQuantity === undefined)\r\n ) {\r\n return [];\r\n }\r\n\r\n function getPlotLineOptions(\r\n value: number | undefined,\r\n labelText: string\r\n ): YAxisPlotLinesOptions {\r\n return {\r\n color: Colors.red,\r\n width: 2,\r\n value,\r\n zIndex: 4,\r\n label: {\r\n textAlign: 'center',\r\n y: -20,\r\n rotation: 0,\r\n text: labelText,\r\n },\r\n };\r\n }\r\n\r\n if (\r\n this.productDetails.stockDetails.minQuantity ===\r\n this.productDetails.stockDetails.maxQuantity\r\n ) {\r\n return [\r\n getPlotLineOptions(\r\n this.productDetails.stockDetails.minQuantity,\r\n this.getPlotLineLabelText(\r\n 'smiWarehouseStockChart.minAndMax',\r\n this.productDetails.stockDetails.minQuantity\r\n )\r\n ),\r\n ];\r\n } else {\r\n return [\r\n getPlotLineOptions(\r\n this.productDetails.stockDetails.minQuantity,\r\n this.getPlotLineLabelText(\r\n 'smiWarehouseStockChart.min',\r\n this.productDetails.stockDetails.minQuantity\r\n )\r\n ),\r\n getPlotLineOptions(\r\n this.productDetails.stockDetails.maxQuantity,\r\n this.getPlotLineLabelText(\r\n 'smiWarehouseStockChart.max',\r\n this.productDetails.stockDetails.maxQuantity\r\n )\r\n ),\r\n ];\r\n }\r\n }\r\n\r\n private getPlotLineLabelText(i18nKey: string, quantity?: number): string {\r\n return `${this.$t(i18nKey)}
${numberFilter(quantity)} t
`;\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseStockChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseStockChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiWarehouseStockChart.vue?vue&type=template&id=263ed9e4&\"\nimport script from \"./SmiWarehouseStockChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiWarehouseStockChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('highcharts',{attrs:{\"options\":_vm.chartOptions}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { Chart } from 'highcharts-vue';\r\nimport { Options, YAxisPlotLinesOptions } from 'highcharts/highcharts';\r\nimport { Colors } from '@/utils/Constants';\r\nimport { numberFilter } from '@/filters/number';\r\nimport { SmiWarehouseProductDetails } from '@/models/Smi/Warehouses/SmiWarehouseProductDetails';\r\n\r\n@Component({\r\n components: {\r\n highcharts: Chart,\r\n },\r\n})\r\nexport default class SmiWarehouseEstimatedStockReachChart extends Vue {\r\n @Prop({ required: true }) public productDetails!: SmiWarehouseProductDetails;\r\n\r\n private get chartOptions(): Options {\r\n return {\r\n chart: {\r\n height: 200,\r\n spacing: [30, 10, 0, 0],\r\n type: 'column',\r\n backgroundColor: 'transparent',\r\n },\r\n title: {\r\n text: undefined,\r\n },\r\n xAxis: {\r\n categories: this.productDetails.estimatedStockReachWeeks?.map((week) =>\r\n this.$t('smiWarehouseEstimatedStockReachChart.week', [\r\n week.weekNumber,\r\n ]).toString()\r\n ),\r\n },\r\n yAxis: {\r\n startOnTick: false,\r\n endOnTick: false,\r\n title: {\r\n text: this.$t(\r\n 'smiWarehouseEstimatedStockReachChart.tonnes'\r\n ).toString(),\r\n align: 'high',\r\n textAlign: 'left',\r\n reserveSpace: false,\r\n rotation: 0,\r\n y: -10,\r\n x: 2,\r\n },\r\n plotLines: this.plotLines,\r\n tickInterval: 1000,\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n time: {\r\n useUTC: false,\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return numberFilter(this.y) + ' t';\r\n },\r\n },\r\n series: [\r\n {\r\n name: 'weeks',\r\n type: 'column',\r\n data: this.productDetails.estimatedStockReachWeeks?.map((week) => ({\r\n y: week.value,\r\n })),\r\n color: Colors.blue50,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n private get plotLines(): YAxisPlotLinesOptions[] {\r\n if (\r\n this.productDetails.stockDetails === undefined ||\r\n (this.productDetails.stockDetails.minQuantity === undefined &&\r\n this.productDetails.stockDetails.maxQuantity === undefined)\r\n ) {\r\n return [];\r\n }\r\n\r\n function getPlotLineOptions(\r\n value: number | undefined,\r\n labelText: string\r\n ): YAxisPlotLinesOptions {\r\n return {\r\n color: Colors.red,\r\n width: 2,\r\n value: value,\r\n zIndex: 4,\r\n label: {\r\n align: 'right',\r\n y: -20,\r\n rotation: 0,\r\n text: labelText,\r\n },\r\n };\r\n }\r\n\r\n if (\r\n this.productDetails.stockDetails.minQuantity ===\r\n this.productDetails.stockDetails.maxQuantity\r\n ) {\r\n return [\r\n getPlotLineOptions(\r\n this.productDetails.stockDetails.minQuantity,\r\n this.getPlotLineLabelText(\r\n 'smiWarehouseEstimatedStockReachChart.minAndMax',\r\n this.productDetails.stockDetails.minQuantity\r\n )\r\n ),\r\n ];\r\n } else {\r\n return [\r\n getPlotLineOptions(\r\n this.productDetails.stockDetails.minQuantity,\r\n this.getPlotLineLabelText(\r\n 'smiWarehouseEstimatedStockReachChart.min',\r\n this.productDetails.stockDetails.minQuantity\r\n )\r\n ),\r\n getPlotLineOptions(\r\n this.productDetails.stockDetails.maxQuantity,\r\n this.getPlotLineLabelText(\r\n 'smiWarehouseEstimatedStockReachChart.max',\r\n this.productDetails.stockDetails.maxQuantity\r\n )\r\n ),\r\n ];\r\n }\r\n }\r\n\r\n private getPlotLineLabelText(i18nKey: string, quantity?: number): string {\r\n return `${this.$t(i18nKey)}
${numberFilter(quantity)} t
`;\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseEstimatedStockReachChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseEstimatedStockReachChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiWarehouseEstimatedStockReachChart.vue?vue&type=template&id=16d20390&\"\nimport script from \"./SmiWarehouseEstimatedStockReachChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiWarehouseEstimatedStockReachChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\nimport SmiWarehousePerformanceCharts from '@/components/SmiWarehousePerformanceCharts.vue';\r\nimport SmiWarehouseStockChart from '@/components/SmiWarehouseStockChart.vue';\r\nimport SmiWarehouseEstimatedStockReachChart from '@/components/SmiWarehouseEstimatedStockReachChart.vue';\r\nimport { SmiWarehouseProductDetails } from '@/models/Smi/Warehouses/SmiWarehouseProductDetails';\r\nimport SmiWarehouseStockReportModal from './SmiWarehouseStockReportModal.vue';\r\nimport DefaultLayout from '@/layouts/DefaultLayout.vue';\r\n\r\n@Component({\r\n components: {\r\n SmiWarehousePerformanceCharts,\r\n SmiWarehouseStockChart,\r\n SmiWarehouseEstimatedStockReachChart,\r\n SmiWarehouseStockReportModal,\r\n DefaultLayout,\r\n },\r\n})\r\nexport default class SmiWarehouseProductsDetails extends Vue {\r\n @Prop({ required: true })\r\n public productDetails!: SmiWarehouseProductDetails;\r\n @Prop({ required: true })\r\n public smiWarehouseId!: number;\r\n @Prop({ required: true })\r\n public isAllowedToEdit!: boolean;\r\n\r\n private get hasEstimatedStockReach(): boolean {\r\n return (\r\n this.productDetails.estimatedStockReachWeeks !== undefined &&\r\n this.productDetails.estimatedStockReachWeeks.length > 0\r\n );\r\n }\r\n\r\n private openStockReportModal() {\r\n this.$emit('openStockReportModal', this.productDetails);\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseProductsDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseProductsDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiWarehouseProductsDetails.vue?vue&type=template&id=9a8270d4&\"\nimport script from \"./SmiWarehouseProductsDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiWarehouseProductsDetails.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-md-6 col-lg-4\"},[_c('div',{staticClass:\"d-flex\"},[_c('h2',{staticClass:\"t-heading-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveries.ordered'))+\" \")])]),(_vm.deliveriesLoading && !_vm.deliveriesError)?_c('div',{staticClass:\"u-text-center\"},[_c('span',{staticClass:\"o-loader o-loader--medium\"})]):_c('div',[(_vm.upcoming.length == 0)?_c('span',{staticClass:\"u-sans-serif\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveries.noDeliveriesOrdered'))+\" \")]):_vm._l((_vm.upcoming),function(order,index){return _c('SmiWarehouseOrderCard',{key:index,staticClass:\"u-background-color-white\",attrs:{\"order\":order}})})],2)]),_c('div',{staticClass:\"col-12 col-md-6 col-lg-4\"},[_c('div',{staticClass:\"d-flex\"},[_c('h2',{staticClass:\"t-heading-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveries.shipped'))+\" \")])]),(_vm.deliveriesLoading && !_vm.deliveriesError)?_c('div',{staticClass:\"u-text-center\"},[_c('span',{staticClass:\"o-loader o-loader--medium\"})]):_c('div',[(_vm.inTransit.length == 0)?_c('span',{staticClass:\"u-sans-serif\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveries.noDeliveriesShipped'))+\" \")]):_vm._l((_vm.inTransit),function(delivery,index){return _c('SmiWarehouseDeliveryCard',{key:index,staticClass:\"u-background-color-white\",attrs:{\"delivery\":delivery,\"type\":_vm.SmiWarehouseDeliveryCardType.Shipped}})})],2)]),_c('div',{staticClass:\"col-12 col-md-6 col-lg-4\"},[_c('div',{staticClass:\"d-flex\"},[_c('h2',{staticClass:\"t-heading-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveries.received'))+\" \")]),_c('h3',{staticClass:\"t-heading-5 align-self-center ml-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveries.receivedWeeks'))+\" \")])]),(\n _vm.received.length == 0 &&\n _vm.receivedDeliveriesLoading &&\n !_vm.receivedDeliveriesError\n )?_c('div',{staticClass:\"u-text-center\"},[_c('span',{staticClass:\"o-loader o-loader--medium\"})]):_c('div',[(_vm.received.length == 0)?_c('span',{staticClass:\"u-sans-serif\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveries.noDeliveriesReceived'))+\" \")]):_vm._l((_vm.received),function(delivery,index){return _c('SmiWarehouseDeliveryCard',{key:index,staticClass:\"u-background-color-white\",attrs:{\"delivery\":delivery,\"type\":_vm.SmiWarehouseDeliveryCardType.Received}})}),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasMore),expression:\"hasMore\"}],staticClass:\"o-button o-button--loader o-button--white u-full-width\",attrs:{\"disabled\":_vm.receivedDeliveriesLoading},on:{\"click\":_vm.loadMore}},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.receivedDeliveriesLoading),expression:\"receivedDeliveriesLoading\"}],staticClass:\"o-loader\"}),_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveries.loadMore'))+\" \")])],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export enum SmiWarehouseDeliveryCarrier {\r\n Rail = 'Rail',\r\n Truck = 'Truck',\r\n Intermodal = 'Intermodal',\r\n Barge = 'Barge',\r\n Vessel = 'Vessel',\r\n Lorry = 'Lorry',\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { weekFilter } from '@/filters/week';\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { dateFilter } from '@/filters/date';\r\nimport { SmiWarehouseDelivery } from '@/models/Smi/Warehouses/SmiWarehouseDelivery';\r\nimport { authRequirementsForQData } from '@/router/authRequirements';\r\nimport { Permissions } from '@/utils/Permissions';\r\nimport { routeNameQDataDelivery } from '@/router/routes';\r\nimport { SmiWarehouseDeliveryCarrier } from '@/models/Smi/Warehouses/SmiWarehouseDeliveryCarrier';\r\n\r\nexport enum SmiWarehouseDeliveryCardType {\r\n Shipped = 'shipped',\r\n Received = 'received',\r\n}\r\n\r\n@Component\r\nexport default class SmiWarehouseDeliveryCard extends Vue {\r\n @Prop({ required: true })\r\n public delivery!: SmiWarehouseDelivery;\r\n @Prop({ required: true })\r\n public type!: SmiWarehouseDeliveryCardType;\r\n\r\n private get shipped(): boolean {\r\n return this.type === SmiWarehouseDeliveryCardType.Shipped;\r\n }\r\n\r\n private get received(): boolean {\r\n return this.type === SmiWarehouseDeliveryCardType.Received;\r\n }\r\n\r\n private get carrierIcon(): string | undefined {\r\n switch (this.delivery.carrier) {\r\n case SmiWarehouseDeliveryCarrier.Rail:\r\n return 'train';\r\n case SmiWarehouseDeliveryCarrier.Truck:\r\n case SmiWarehouseDeliveryCarrier.Intermodal:\r\n case SmiWarehouseDeliveryCarrier.Lorry:\r\n return 'local_shipping';\r\n case SmiWarehouseDeliveryCarrier.Barge:\r\n case SmiWarehouseDeliveryCarrier.Vessel:\r\n return 'directions_boat';\r\n default:\r\n return undefined;\r\n }\r\n }\r\n\r\n private get receivedWeek(): number {\r\n return weekFilter(this.delivery.receivedDate);\r\n }\r\n\r\n private get shippedDate(): string {\r\n return dateFilter(this.delivery.shippedDate);\r\n }\r\n\r\n private get hasQDataPermission(): boolean {\r\n return Permissions.validate(authRequirementsForQData).valid;\r\n }\r\n\r\n private get qDataRoute(): any {\r\n return {\r\n name: routeNameQDataDelivery,\r\n params: { deliveryMessageNumber: this.delivery.number },\r\n };\r\n }\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"px-4 py-3 mb-2\"},[_c('div',{staticClass:\"mb-2 u-tiny\"},[(_vm.shipped)?_c('div',{staticClass:\"d-flex\"},[_c('span',{staticClass:\"u-bold flex-grow-1\"},[(_vm.carrierIcon)?_c('i',{staticClass:\"material-icons\"},[_vm._v(_vm._s(_vm.carrierIcon))]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveryCard.shipped', [_vm.shippedDate]))+\" \")]),(_vm.delivery.carNumber)?_c('span',{staticClass:\"u-text-muted\"},[_vm._v(\" \"+_vm._s(_vm.delivery.carNumber)+\" \")]):_vm._e()]):(_vm.received)?_c('div',[_c('span',{staticClass:\"u-bold\"},[(_vm.carrierIcon)?_c('i',{staticClass:\"material-icons\"},[_vm._v(_vm._s(_vm.carrierIcon))]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveryCard.received', [_vm.receivedWeek]))+\" \")])]):_vm._e()]),_c('div',{staticClass:\"d-flex align-items-center\"},[_c('span',{staticClass:\"t-heading-3 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.delivery.productDisplayName)+\" \")]),_c('span',{staticClass:\"t-heading-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveryCard.quantity', [_vm.delivery.quantity]))+\" \")])]),_c('div',{staticClass:\"d-flex flex-row justify-content-between align-items-center\"},[_c('div',{staticClass:\"d-flex flex-column\"},[_c('span',{staticClass:\"u-tiny flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.delivery.number)+\" \")]),(_vm.shipped)?_c('span',{staticClass:\"u-tiny flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveryCard.yourReference', [ _vm.delivery.customerReference ? _vm.delivery.customerReference : '-' ]))+\" \")]):_vm._e(),(_vm.shipped)?_c('span',{staticClass:\"u-tiny flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveryCard.customerRequisition', [ _vm.delivery.customerRequisition ? _vm.delivery.customerRequisition : '-' ]))+\" \")]):_vm._e()]),(_vm.hasQDataPermission)?_c('router-link',{staticClass:\"o-button o-button--blue o-button--small\",attrs:{\"to\":_vm.qDataRoute},on:{\"click\":function($event){$event.stopPropagation();return _vm.navigate.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseDeliveryCard.qualityData'))+\" \")]):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseDeliveryCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseDeliveryCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiWarehouseDeliveryCard.vue?vue&type=template&id=732b5407&\"\nimport script from \"./SmiWarehouseDeliveryCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiWarehouseDeliveryCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { store } from '@/store';\r\n\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport smiWarehouseService from '@/services/SmiWarehouseService';\r\nimport { SmiWarehouseOrder } from '@/models/Smi/Warehouses/SmiWarehouseOrder';\r\nimport { SmiWarehouseDelivery } from '@/models/Smi/Warehouses/SmiWarehouseDelivery';\r\nimport { CommonArrayStore } from '../commonArrayStore';\r\nimport { Consoler } from '@/utils/Consoler';\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'smiWarehouseDeliveries',\r\n dynamic: true,\r\n store,\r\n})\r\nclass SmiWarehouseDeliveriesModule extends VuexModule {\r\n private common = new CommonArrayStore<\r\n {\r\n upcoming: SmiWarehouseOrder[];\r\n inTransit: SmiWarehouseDelivery[];\r\n },\r\n {\r\n warehouseId: number;\r\n }\r\n >(10, ['warehouseId']); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get item(): (id: { warehouseId: number }) => {\r\n upcoming: SmiWarehouseOrder[];\r\n inTransit: SmiWarehouseDelivery[];\r\n } | null {\r\n return (id: { warehouseId: number }) => this.common.getDataFor(id);\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation private commitSetLoading(payload: {\r\n id: { warehouseId: number };\r\n loadingPromise: Promise<{\r\n upcoming: SmiWarehouseOrder[];\r\n inTransit: SmiWarehouseDelivery[];\r\n }>;\r\n clearData?: boolean;\r\n }): void {\r\n this.common.setLoading(payload);\r\n }\r\n @Mutation private commitSetLoadingComplete(payload: {\r\n id: { warehouseId: number };\r\n data: {\r\n upcoming: SmiWarehouseOrder[];\r\n inTransit: SmiWarehouseDelivery[];\r\n };\r\n }): void {\r\n this.common.setLoadingComplete(payload);\r\n }\r\n\r\n @Mutation private commitSetLoadingError(payload: {\r\n id: { warehouseId: number };\r\n error?: any;\r\n clearData?: boolean;\r\n }): void {\r\n this.common.setLoadingError(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(\r\n id: {\r\n warehouseId: number;\r\n },\r\n productNames: string[]\r\n ): Promise<{\r\n upcoming: SmiWarehouseOrder[];\r\n inTransit: SmiWarehouseDelivery[];\r\n }> {\r\n if (this.common.hasFreshDataFor(id)) {\r\n return Promise.resolve(this.item(id)!);\r\n }\r\n\r\n const currentlyLoadingPromise = this.common.isCurrentlyLoading(id);\r\n\r\n if (currentlyLoadingPromise) {\r\n return currentlyLoadingPromise;\r\n }\r\n\r\n const loadingPromise = smiWarehouseService\r\n .getDeliveries(id.warehouseId, productNames)\r\n .then((response) => {\r\n this.commitSetLoadingComplete({\r\n id: id,\r\n data: response,\r\n });\r\n\r\n Consoler.debugLog('Load deliveries succeeded', response);\r\n\r\n return Promise.resolve(response);\r\n })\r\n .catch((error) => {\r\n Consoler.debugWarn('Load deliveries failed', error);\r\n\r\n this.commitSetLoadingError({ id: id, error });\r\n\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoading({\r\n id: id,\r\n loadingPromise,\r\n clearData: true,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n}\r\n\r\nexport const smiWarehouseDeliveriesModule = getModule(\r\n SmiWarehouseDeliveriesModule\r\n);\r\n","import { CommonStore, LoadingStatus } from '@/store/common';\r\nimport { store } from '@/store';\r\n\r\nimport {\r\n Module,\r\n VuexModule,\r\n Mutation,\r\n Action,\r\n getModule,\r\n} from 'vuex-module-decorators';\r\nimport smiWarehouseService from '@/services/SmiWarehouseService';\r\nimport { PaginatedResult } from '@/models/PaginatedResult{T}';\r\nimport { SmiWarehouseDelivery } from '@/models/Smi/Warehouses/SmiWarehouseDelivery';\r\n\r\ninterface Search {\r\n warehouseId: number;\r\n productNames: string[];\r\n pageIndex: number;\r\n pageSize: number;\r\n results: PaginatedResult;\r\n}\r\n\r\n@Module({\r\n namespaced: true,\r\n name: 'smiWarehouseReceivedDeliveries',\r\n dynamic: true,\r\n store,\r\n})\r\nclass SmiWarehouseReceivedDeliveriesModule extends VuexModule {\r\n public search: Search | null = null;\r\n\r\n private common = new CommonStore(10); // reLoadMinMinutesInterval\r\n\r\n // ---------------\r\n // ### Getters ###\r\n // ---------------\r\n\r\n public get loading(): LoadingStatus {\r\n return this.common.loading;\r\n }\r\n\r\n // -----------------\r\n // ### Mutations ###\r\n // -----------------\r\n\r\n @Mutation public commitSetDeliveries(payload: Search): void {\r\n this.search = payload;\r\n }\r\n\r\n @Mutation public commitClearDeliveries(): void {\r\n this.search = null;\r\n }\r\n\r\n // From common:\r\n @Mutation private commitSetLoadedDate(): void {\r\n this.common.setLoadedDate();\r\n }\r\n @Mutation private commitClearLoadedDate(): void {\r\n this.common.clearLoadedDate();\r\n }\r\n @Mutation private commitSetLoadingError(payload: { error: any }): void {\r\n this.common.setLoadingError(payload);\r\n }\r\n @Mutation private commitSetLoading(): void {\r\n this.common.setLoading();\r\n }\r\n @Mutation private commitClearLoading(): void {\r\n this.common.clearLoading();\r\n }\r\n @Mutation private commitSetLoadingPromise(payload: {\r\n loadingPromise: Promise;\r\n loadingPromiseForId: any;\r\n }): void {\r\n this.common.setLoadingPromise(payload);\r\n }\r\n\r\n // ---------------\r\n // ### Actions ###\r\n // ---------------\r\n\r\n @Action\r\n public async dispatchLoad(payload: {\r\n warehouseId: number;\r\n productNames: string[];\r\n pageIndex: number;\r\n pageSize: number;\r\n }): Promise {\r\n const getId = (\r\n data: {\r\n warehouseId: number;\r\n productNames: string[];\r\n pageIndex: number;\r\n pageSize: number;\r\n } | null\r\n ): string => {\r\n return [\r\n data?.warehouseId,\r\n (data?.productNames ?? []).sort(),\r\n data?.pageIndex,\r\n data?.pageSize,\r\n ].toString();\r\n };\r\n\r\n if (getId(payload) === getId(this.search) && !this.common.needToReLoad()) {\r\n return Promise.resolve();\r\n }\r\n\r\n const loadingId = getId(payload);\r\n\r\n if (this.common.isCurrentlyLoading(loadingId)) {\r\n return this.common.loading.loadingPromise;\r\n }\r\n\r\n this.commitSetLoading();\r\n this.commitClearDeliveries();\r\n\r\n const loadingPromise = smiWarehouseService\r\n .getReceivedDeliveries(\r\n payload.warehouseId,\r\n payload.productNames,\r\n payload.pageIndex,\r\n payload.pageSize\r\n )\r\n .then((response) => {\r\n const search: Search = {\r\n warehouseId: payload.warehouseId,\r\n productNames: payload.productNames,\r\n pageIndex: payload.pageIndex,\r\n pageSize: payload.pageSize,\r\n results: response.received,\r\n };\r\n\r\n this.commitSetDeliveries(search);\r\n this.commitSetLoadedDate();\r\n this.commitClearLoading();\r\n })\r\n .catch((error) => {\r\n this.commitSetLoadingError({ error });\r\n\r\n return Promise.reject(error);\r\n });\r\n\r\n this.commitSetLoadingPromise({\r\n loadingPromise,\r\n loadingPromiseForId: loadingId,\r\n });\r\n\r\n return loadingPromise;\r\n }\r\n}\r\n\r\nexport const smiWarehouseReceivedDeliveriesModule = getModule(\r\n SmiWarehouseReceivedDeliveriesModule\r\n);\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"px-4 py-3 mb-2\"},[_c('div',{staticClass:\"mb-2 u-tiny\"},[_c('span',{staticClass:\"u-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseOrderCard.receivedDate', [_vm.week, _vm.dateRange]))+\" \")])]),_c('div',{staticClass:\"d-flex align-items-center\"},[_c('span',{staticClass:\"t-heading-3 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.order.productDisplayName)+\" \")]),_c('span',{staticClass:\"t-heading-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseOrderCard.quantity', [_vm.order.quantity]))+\" \")])]),_c('div',{staticClass:\"d-flex align-items-center\"},[_c('span',{staticClass:\"t-body-regular-small flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.order.id)+\" \")])]),_c('div',{staticClass:\"d-flex flex-column mt-1\"},[_c('span',{staticClass:\"t-body-regular-small flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseOrderCard.yourReference', [ _vm.order.customerReference ? _vm.order.customerReference : '-' ]))+\" \")]),_c('span',{staticClass:\"t-body-regular-small flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('smiWarehouseOrderCard.customerRequisition', [ _vm.order.customerRequisition ? _vm.order.customerRequisition : '-' ]))+\" \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { weekFilter } from '@/filters/week';\r\nimport { Component, Vue, Prop } from 'vue-property-decorator';\r\nimport { dateRangeFilter } from '@/filters/dateRange';\r\nimport { SmiWarehouseOrder } from '@/models/Smi/Warehouses/SmiWarehouseOrder';\r\nimport moment from 'moment';\r\n\r\n@Component\r\nexport default class SmiWarehouseOrderCard extends Vue {\r\n @Prop({ required: true })\r\n public order!: SmiWarehouseOrder;\r\n\r\n private get week(): number {\r\n return weekFilter(this.order.receivedDate);\r\n }\r\n\r\n private get dateRange(): string {\r\n return dateRangeFilter(\r\n moment(this.order.receivedDate).startOf('week'),\r\n moment(this.order.receivedDate).endOf('week')\r\n );\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseOrderCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseOrderCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiWarehouseOrderCard.vue?vue&type=template&id=38a1b776&\"\nimport script from \"./SmiWarehouseOrderCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiWarehouseOrderCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { SmiWarehouseDelivery } from '@/models/Smi/Warehouses/SmiWarehouseDelivery';\r\nimport { SmiWarehouseOrder } from '@/models/Smi/Warehouses/SmiWarehouseOrder';\r\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\r\nimport SmiWarehouseDeliveryCard, {\r\n SmiWarehouseDeliveryCardType,\r\n} from './SmiWarehouseDeliveryCard.vue';\r\nimport { smiWarehouseDeliveriesModule } from '@/store/modules/smiWarehouseDeliveries';\r\nimport { smiWarehouseReceivedDeliveriesModule } from '@/store/modules/smiWarehouseReceivedDeliveries';\r\nimport SmiWarehouseOrderCard from './SmiWarehouseOrderCard.vue';\r\nimport { SmiWarehouseProductDetails } from '@/models/Smi/Warehouses/SmiWarehouseProductDetails';\r\n\r\n@Component({\r\n components: {\r\n SmiWarehouseOrderCard,\r\n SmiWarehouseDeliveryCard,\r\n },\r\n})\r\nexport default class SmiWarehouseDeliveries extends Vue {\r\n @Prop({ required: true })\r\n public warehouseId!: number;\r\n\r\n @Prop({ required: false, default: () => [] })\r\n public products!: SmiWarehouseProductDetails[];\r\n\r\n @Watch('products', { immediate: false, deep: true })\r\n private onProductNamesChanged(): void {\r\n this.initialize;\r\n }\r\n\r\n SmiWarehouseDeliveryCardType = SmiWarehouseDeliveryCardType;\r\n\r\n private deliveriesLoading: boolean = false;\r\n private deliveriesError: boolean = false;\r\n\r\n private receivedDeliveriesLoading: boolean = false;\r\n private receivedDeliveriesError: boolean = false;\r\n\r\n private receivedDeliveriesPageIndex: number = 0;\r\n private receivedDeliveries: SmiWarehouseDelivery[] = [];\r\n\r\n private get upcoming(): SmiWarehouseOrder[] {\r\n if (this.products.length > 0) {\r\n return (\r\n this.item?.upcoming.filter((o) =>\r\n this.products.some((p) => p.productNumber == o.productNumber)\r\n ) ?? []\r\n );\r\n } else {\r\n return this.item?.upcoming ?? [];\r\n }\r\n }\r\n\r\n private get inTransit(): SmiWarehouseDelivery[] {\r\n if (this.products.length > 0) {\r\n return (\r\n this.item?.inTransit.filter((s) =>\r\n this.products.some((p) => p.productNumber == s.productNumber)\r\n ) ?? []\r\n );\r\n } else {\r\n return this.item?.inTransit ?? [];\r\n }\r\n }\r\n\r\n private get received(): SmiWarehouseDelivery[] {\r\n return this.receivedDeliveries;\r\n }\r\n\r\n private get item(): {\r\n upcoming: SmiWarehouseOrder[];\r\n inTransit: SmiWarehouseDelivery[];\r\n } | null {\r\n return smiWarehouseDeliveriesModule.item({\r\n warehouseId: this.warehouseId,\r\n });\r\n }\r\n\r\n private get hasMore(): boolean {\r\n return (\r\n (smiWarehouseReceivedDeliveriesModule.search?.results?.pageCount ?? 0) <\r\n this.receivedDeliveriesPageIndex\r\n );\r\n }\r\n\r\n private created(): void {\r\n this.initialize();\r\n }\r\n\r\n private initialize(): void {\r\n this.receivedDeliveriesPageIndex = 0;\r\n this.receivedDeliveries = [];\r\n\r\n this.getDeliveries();\r\n this.getReceivedDeliveries();\r\n }\r\n\r\n private async loadMore(): Promise {\r\n await this.getReceivedDeliveries();\r\n }\r\n\r\n private async getDeliveries(): Promise {\r\n try {\r\n this.deliveriesLoading = true;\r\n this.deliveriesError = false;\r\n\r\n await smiWarehouseDeliveriesModule.dispatchLoad(\r\n {\r\n warehouseId: this.warehouseId,\r\n },\r\n this.products.map((product) => product.productName)\r\n );\r\n } catch {\r\n this.deliveriesError = true;\r\n }\r\n\r\n this.deliveriesLoading = false;\r\n }\r\n\r\n private async getReceivedDeliveries(): Promise {\r\n try {\r\n this.receivedDeliveriesLoading = true;\r\n this.receivedDeliveriesError = false;\r\n\r\n await smiWarehouseReceivedDeliveriesModule.dispatchLoad({\r\n warehouseId: this.warehouseId,\r\n productNames: this.products.map((product) => product.productName),\r\n pageIndex: this.receivedDeliveriesPageIndex,\r\n pageSize: 10,\r\n });\r\n\r\n if (smiWarehouseReceivedDeliveriesModule.search?.results) {\r\n if (\r\n smiWarehouseReceivedDeliveriesModule.search.pageIndex <=\r\n smiWarehouseReceivedDeliveriesModule.search.results.pageCount\r\n ) {\r\n this.receivedDeliveriesPageIndex++;\r\n }\r\n\r\n this.receivedDeliveries = this.receivedDeliveries.concat(\r\n smiWarehouseReceivedDeliveriesModule.search.results.items\r\n );\r\n }\r\n } catch {\r\n this.receivedDeliveriesError = true;\r\n }\r\n\r\n this.receivedDeliveriesLoading = false;\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseDeliveries.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmiWarehouseDeliveries.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SmiWarehouseDeliveries.vue?vue&type=template&id=3d58616e&\"\nimport script from \"./SmiWarehouseDeliveries.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmiWarehouseDeliveries.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}