{"version":3,"file":"list-yIpqQCU6.js","sources":["../../../app/frontend/entrypoints/controllers/reporting/order/overview/list.ts"],"sourcesContent":["import jQuery from 'jquery/dist/jquery';\nimport Utils from '../../../../utils'\nimport DefaultController from \"../../../defaultController\";\n\nexport default class ReportingOrderList extends DefaultController {\n tables: any;\n elements: any;\n tableNames: any;\n columns: any;\n //@ts-ignore\n private initComplete: boolean;\n\n async init() {\n this.initComplete = false;\n this.tableNames = [\"orders\"]\n this.bindListeners();\n this.setFilters();\n await this.loadTables();\n await this.configureColumns();\n }\n\n getEntityData(elem: any) {\n return {}\n }\n\n loadFilters() {\n const tableName = \"orders\"\n this.tables[tableName].columns().every(async (col: any) => {\n if (col !== 0) {\n const column = this.tables[tableName].column(col);\n const header = document.querySelector(`li.table_toggler[data-column='${col}']`) as HTMLElement\n let filterElem: any = null\n if (col === 2 || col === 4 || col === 5 || col === 8) {\n filterElem = document.createElement('select');\n filterElem.classList.add(\"form-select\")\n filterElem.multiple = true\n filterElem.add(new Option(\"[Leer]\", \"\"));\n header.appendChild(filterElem);\n filterElem.addEventListener(\"click\", (e: any) => {\n e.preventDefault();\n e.stopPropagation();\n })\n }\n const options: any = {}\n if (col === 2) {\n options[2] = (await Utils.entity.getAll(\"customers\")).data.map(d => d.name)\n }\n this.tables[tableName].data().unique().sort().each((d: any, j: any) => {\n if (col === 4) {\n if (!options[col]) {\n options[col] = []\n }\n options[col].push(d.status.name);\n } else if (col === 5) {\n if (!options[col]) {\n options[col] = ['']\n }\n options[col].push(d.delivery_status.name);\n } else if (col === 8) {\n if (!options[col]) {\n options[col] = ['']\n }\n const products = d.items.map(d => d.product)\n products.forEach((product: any) => {\n options[col].push(product.name);\n })\n }\n });\n Object.keys(options).forEach((key: any) => {\n const v = options[key].filter((value: any, index: any, array: string | any[]) => array.indexOf(value) === index).filter((n: any) => n).sort();\n v.forEach((value: any) => {\n filterElem.add(new Option(value, value));\n })\n })\n\n const savedFilters = JSON.parse(localStorage.getItem(`tickware_export_filter_${tableName}`) as string)\n if (savedFilters && savedFilters[`col-${col}`]) {\n const values = savedFilters[`col-${col}`].split(\"|\")\n values.forEach((v: any) => {\n if (filterElem.querySelector(`option[value='${v}']`)) {\n filterElem.querySelector(`option[value='${v}']`).setAttribute(\"selected\", \"true\")\n }\n })\n const ev = new Event(\"change\")\n filterElem.dispatchEvent(ev)\n }\n\n jQuery(filterElem).select2().on('select2:select select2:unselect', (e) => {\n console.log(\"filterElem\", filterElem)\n //@ts-ignore\n const values = Array.from(filterElem.querySelectorAll(\"option:checked\")).map((e) => {\n return Utils.escapeRegex(e.value)\n })\n let savedFilters = JSON.parse(localStorage.getItem(`tickware_export_filter_${tableName}`) as string)\n if (!savedFilters) {\n savedFilters = {}\n }\n savedFilters[`col-${col}`] = values.join(\"|\")\n localStorage.setItem(`tickware_export_filter_${tableName}`, JSON.stringify(savedFilters))\n if (col === 8) {\n column.search(values.join(\"|\").length > 0 ? values.join(\"|\") : '', true, false).draw();\n } else {\n column.search(values.join(\"|\").length > 0 ? '^' + values.join(\"|\") + '$' : '', true, false).draw();\n }\n console.log(\"search\", values.length > 0 ? '^' + values.join(\"|\") + '$' : '', column)\n });\n }\n });\n }\n\n async loadTables() {\n this.elements = {};\n this.tables = {};\n this.columns = {};\n await this.loadTicketTable();\n }\n\n setFilters() {\n this.tableNames.forEach((tableName: string) => {\n let currentStorage = localStorage.getItem(`tickware_export_settings_${tableName}`)\n if (!currentStorage) {\n currentStorage = '{}'\n }\n let currentStorageO = JSON.parse(currentStorage)\n Object.keys(currentStorageO).forEach((storageIndex: any) => {\n const storageValue = currentStorageO[storageIndex]\n let htmlElement = document.querySelector(`li[data-table='${tableName}'][data-column='${storageIndex}']`)\n if (htmlElement) {\n const icon = htmlElement.querySelector(\"i\") as HTMLElement;\n if (storageValue) {\n icon.classList.remove(\"ti-eye-off\")\n icon.classList.add(\"ti-eye\")\n } else {\n icon.classList.add(\"ti-eye-off\")\n icon.classList.remove(\"ti-eye\")\n }\n }\n })\n })\n }\n\n async configureColumns() {\n this.tableNames.forEach((tableName: string) => {\n let currentStorage = localStorage.getItem(`tickware_export_settings_${tableName}`)\n if (!currentStorage) {\n currentStorage = '{}'\n }\n let currentStorageO = JSON.parse(currentStorage)\n Object.keys(currentStorageO).forEach((storageIndex: any) => {\n const storageValue = currentStorageO[storageIndex]\n const table = this.tables[tableName]\n let column = table.column(storageIndex);\n column.visible(storageValue);\n })\n })\n }\n\n async loadTicketTable() {\n const tableName = \"orders\"\n this.columns[tableName] = []\n this.elements[tableName] = jQuery(`.table-${tableName} table`);\n this.tables[tableName] = new DataTable(this.elements[tableName], {\n deferRender: false,\n pageLength: 25,\n colReorder: true,\n ordering: false,\n initComplete: (r: any) => {\n this.elements[tableName].closest(\".card\").find(\".loading-body\").addClass(\"d-none\")\n this.elements[tableName].closest(\".card\").find(\".card-datatable\").removeClass(\"d-none\")\n this.loadFilters();\n if (!this.initComplete) {\n this.initComplete = true\n Utils.hideLoader();\n }\n },\n serverSide: true,\n ajax: {\n url: `/api/v1/erp/${tableName}/report`,\n dataType: 'json',\n // @ts-ignore\n data: (params: { length: any; start: any; draw: any; order: any; search: any; }) => {\n return {\n length: params.length,\n draw: params.draw,\n start: params.start,\n search: params.search ? params.search.value : null,\n sort: params.order ? params.order[0] : [],\n columns: params.columns\n };\n },\n // @ts-ignore\n dataSrc: (data: any, params: any) => {\n if(data.status === 200) {\n data[\"recordsTotal\"] = data.meta.total;\n data[\"recordsFiltered\"] = data.meta.total;\n data[\"draw\"] = data.meta.draw;\n }\n return data.data;\n },\n cache: true\n },\n order: [[0, 'desc']],\n columns: [\n {data: 'uuid'},\n {data: 'uuid'},\n {data: 'uuid'},\n {data: 'uuid'},\n {data: 'uuid'},\n {data: 'uuid'},\n {data: 'uuid'},\n {data: 'uuid'},\n {data: 'uuid'},\n {data: 'uuid'},\n {data: 'uuid'}\n ],\n columnDefs: [\n {\n targets: 0,\n render: (data: any, type: any, full: any, meta: any) => {\n return `${full.number}`;\n },\n },\n {\n targets: 1,\n render: (data: any, type: any, full: any, meta: any) => {\n const d = new Date(full.created_at)\n return `${d.toLocaleString(\"de-DE\", {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n })}`;\n },\n },\n {\n targets: 2,\n render: (data: any, type: any, full: any, meta: any) => {\n return full.customer ? full.customer.name : \"\";\n },\n },\n {\n targets: 3,\n render: (data: any, type: any, full: any, meta: any) => {\n return `0€`;\n },\n },\n {\n targets: 4,\n render: (data: any, type: any, full: any, meta: any) => {\n return `${full.status.name}`;\n },\n },\n {\n targets: 5,\n render: (data: any, type: any, full: any, meta: any) => {\n return `${full.delivery_status.name}`;\n },\n },\n {\n targets: 6,\n render: (data: any, type: any, full: any, meta: any) => {\n return `${full.documents.map(d => d.number).join(\", \")}`;\n },\n },\n {\n targets: 7,\n render: (data: any, type: any, full: any, meta: any) => {\n return full.ticket ? full.ticket.title : \"\";\n },\n },\n {\n targets: 8,\n render: (data: any, type: any, full: any, meta: any) => {\n let str: any = [];\n full.items.forEach((item: any) => {\n let s = item.product.name;\n if (item.data.length > 1) {\n s = `${item.data.length}x ${item.product.name}`\n }\n const serials = item.data.map(d => d.serial).filter(n => n)\n if (serials.length > 0) {\n s += `(${serials.join(\", \")})`\n }\n str.push(s)\n });\n return str.join(\"
\");\n },\n },\n {\n targets: 9,\n render: (data: any, type: any, full: any, meta: any) => {\n let str: any = [];\n full.items.forEach((item: any) => {\n let s = \"\";\n const assetTags = item.data.filter(d => d.payload && d.payload[\"asset-tag\"]).map(d => d.payload[\"asset-tag\"])\n if (assetTags.length > 0) {\n s = `${assetTags.join(\", \")}`\n }\n str.push(s)\n });\n return str.join(\"
\");\n },\n },\n {\n targets: 10,\n render: (data: any, type: any, full: any, meta: any) => {\n let str: any = [];\n full.items.forEach((item: any) => {\n let s = \"\";\n const assetTags = item.data.filter(d => d.payload && d.payload[\"external_order_number\"]).map(d => d.payload[\"external_order_number\"])\n if (assetTags.length > 0) {\n s = `${assetTags.join(\", \")}`\n }\n str.push(s)\n });\n return str.join(\"
\");\n },\n },\n ],\n processing: true,\n dom:\n '<\"row me-2 align-items-center\"' +\n '<\"col-md-2\"<\"me-3 m-3\"l>>' +\n '<\"col-md-10\"<\"dt-action-buttons text-xl-end text-lg-start text-md-end text-start d-flex align-items-center justify-content-end flex-md-row flex-column mb-3 mb-md-0\"fB>>' +\n '>t' +\n '<\"row mx-2 align-items-center justify-content-between\"' +\n '<\"col-6\"i>' +\n '<\"col-2 mt-3\"p>' +\n '>',\n language: {\n sLengthMenu: '_MENU_',\n search: '',\n searchPlaceholder: `${Utils.translate('generic.search')}...`,\n \"zeroRecords\": `${Utils.translate('generic.datatable.no_results')}`,\n \"emptyTable\": `${Utils.translate('generic.datatable.no_results')}`,\n \"paginate\": {\n \"first\": `${Utils.translate('generic.datatable.pagination.first')}`,\n \"last\": `${Utils.translate('generic.datatable.pagination.last')}`,\n \"next\": `${Utils.translate('generic.datatable.pagination.next')}`,\n \"previous\": `${Utils.translate('generic.datatable.pagination.previous')}`\n },\n \"info\": `${Utils.translate('generic.datatable.info.info')}`,\n \"infoEmpty\": `${Utils.translate('generic.datatable.info.empty')}`,\n \"infoFiltered\": `${Utils.translate('generic.datatable.info.filtered')}`,\n },\n buttons: [\n {\n text: `${Utils.translate('generic.download')}`,\n className: 'dt-button btn btn-primary m-2 download-btn',\n attr: {\n \"data-table\": tableName\n }\n }\n ]\n });\n\n this.columns[tableName] = this.tables[tableName].columns()[0];\n this.tables[tableName].on('column-reorder', (e: any, settings: any, details: any) => {\n this.columns[tableName] = Utils.arrayMove(this.columns[tableName], details.from, details.to)\n localStorage.setItem(`tickware_export_columns_${tableName}`, JSON.stringify(this.columns[tableName]))\n });\n const columnMapping = localStorage.getItem(`tickware_export_columns_${tableName}`)\n if (columnMapping) {\n const columnMappingO = JSON.parse(columnMapping)\n this.tables[tableName].colReorder.order(columnMappingO);\n this.columns[tableName] = columnMappingO\n }\n }\n\n bindListeners() {\n (document.querySelector(\"body\") as HTMLElement).addEventListener(\"click\", async (e: any) => {\n let target = e.target as HTMLElement;\n let element: any = null;\n if (target && target.classList.contains(\"download-btn\")) {\n element = target\n //@ts-ignore\n } else if(target && target.parentNode.classList.contains(\"download-btn\")) {\n element = target.parentNode\n }\n if(element) {\n const tableName = element.getAttribute(\"data-table\") as string;\n const table = this.tables[tableName];\n if (table) {\n let csv = '';\n const csvHeader: any = []\n table.columns().header().each((column: any, i: number) => {\n const visible = table.column(i).visible();\n if (visible) {\n let content = column.innerHTML\n if (content.indexOf(\"(.*)<\\/span> {\n let data: any = [];\n table.columns().every((colIndex: number) => {\n const col = table.column(colIndex)\n const visible = col.visible()\n if (visible) {\n let content = table.cell(rowIndex,colIndex).node() ? table.cell(rowIndex,colIndex).node().innerHTML : \"\";\n if (content.indexOf(\"(.*)<\\/span/)[1]\n }\n data.push(content.replaceAll(\"&\", \"&\").replaceAll(\";\", \"\"))\n }\n });\n csv += `${data.join(\";\")}\\n`\n });\n await Utils.download(new Blob([\"\\ufeff\", csv]), 'export.csv')\n }\n }\n });\n\n document.querySelectorAll('li.table_toggler').forEach((el) => {\n el.addEventListener('click', (e) => {\n e.preventDefault();\n //@ts-ignore\n if (e.target && e.target.nodeName !== \"LI\" && e.target.nodeName !== \"I\" ) {\n return;\n }\n const target = e.currentTarget as HTMLElement;\n let columnIdx = target.getAttribute('data-column') as string;\n let tableName = target.getAttribute('data-table') as string;\n const table = this.tables[tableName];\n if (table) {\n const actualColumnIdx = this.columns[tableName].indexOf(parseInt(columnIdx))\n let column = table.column(actualColumnIdx);\n column.visible(!column.visible());\n const icon = target.querySelector(\"i\") as HTMLElement;\n if (column.visible()) {\n icon.classList.remove(\"ti-eye-off\")\n icon.classList.add(\"ti-eye\")\n } else {\n icon.classList.add(\"ti-eye-off\")\n icon.classList.remove(\"ti-eye\")\n }\n let currentStorage = localStorage.getItem(`tickware_export_settings_${tableName}`)\n if (!currentStorage) {\n currentStorage = '{}'\n }\n let currentStorageO = JSON.parse(currentStorage)\n currentStorageO[columnIdx] = column.visible()\n localStorage.setItem(`tickware_export_settings_${tableName}`, JSON.stringify(currentStorageO))\n }\n });\n });\n (document.querySelector(\"#orders_export_from\") as HTMLInputElement).addEventListener(\"change\", (e) => {\n this.updateContent(\"orders\")\n });\n (document.querySelector(\"#orders_export_to\") as HTMLInputElement).addEventListener(\"change\", (e) => {\n this.updateContent(\"orders\")\n });\n }\n\n async updateContent(tableName: string) {\n const from = (document.querySelector(`#${tableName}_export_from`) as HTMLInputElement).value;\n const to = (document.querySelector(`#${tableName}_export_to`) as HTMLInputElement).value;\n const table = this.tables[tableName]\n let currentUrl = table.ajax.url();\n if (currentUrl.indexOf(\"?\") !== -1) {\n currentUrl = currentUrl.split(\"?\")[0]\n }\n const newUrl = `${currentUrl}?from=${btoa(from)}&to=${btoa(to)}`\n this.elements[tableName].closest(\".card\").find(\".loading-body\").removeClass(\"d-none\")\n this.elements[tableName].closest(\".card\").find(\".card-datatable\").addClass(\"d-none\")\n await table.ajax.url(newUrl).load(() => {\n this.elements[tableName].closest(\".card\").find(\".loading-body\").addClass(\"d-none\")\n this.elements[tableName].closest(\".card\").find(\".card-datatable\").removeClass(\"d-none\")\n })\n }\n}"],"names":["d","e","savedFilters"],"mappings":"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"}