{"version":3,"file":"stock--ExjJe3I.js","sources":["../../../app/frontend/entrypoints/controllers/erp/product/overview/show/stock.ts"],"sourcesContent":["import jQuery from 'jquery/dist/jquery';\nimport * as bootstrap from 'bootstrap'\nimport Utils from '../../../../../utils'\nimport ErpProductEntity from \"../../entity\";\nimport UtilsEntity from \"../../../../../utils/entity\";\nimport {German} from \"flatpickr/dist/l10n/de\";\n\nexport default class ErpProductStock {\n private parent: any;\n private entity = \"erp/product\";\n private toastr: any;\n private datatables = [];\n private detailModal: bootstrap.Modal;\n\n constructor(parent: any) {\n this.parent = parent\n this.toastr = parent.toastr\n this.detailModal = new bootstrap.Modal((document.querySelector(\"#erpProductStockWarehouseLocationModal\") as HTMLElement));\n this.bindListeners();\n }\n\n getEntityData(elem: any) {\n return {...ErpProductEntity.getEntityData(elem), id: this.parent.id}\n }\n\n async getSubentities() {\n const r = await UtilsEntity.getAll(\"product_attributes\");\n if (r.status === 200) {\n return r.data.concat([{name: \"order_number\", editable: true}, {\n name: \"external_order_number\",\n editable: true\n }, {name: \"tracking_company\", editable: true}, {name: \"tracking_number\", editable: true}])\n } else {\n return {}\n }\n }\n\n bindListeners() {\n jQuery(\"#erpProductStockWarehouseLocationModalTable\").delegate(\".payload_changeable\", \"change\", async (e) => {\n e.preventDefault();\n const target = e.currentTarget;\n const value = jQuery(target).val();\n const entity = target.getAttribute(\"data-entity\");\n const mapId = target.closest(\"tr\")?.getAttribute(\"data-id\");\n const mapData = await UtilsEntity.get(mapId, 'erp/stocks', null, null, null, true);\n console.log(\"A\", target, value, entity)\n if (mapData.status === 200) {\n const map = mapData.data[0];\n console.log(\"map\", map)\n let payload = map.payload;\n if (!payload) {\n payload = {}\n }\n payload[entity] = value\n console.log(\"aaa\", payload)\n await UtilsEntity.upsert({\n id: map.uuid,\n uuid: map.uuid,\n payload: payload\n }, 'erp/stocks');\n }\n });\n jQuery(\"#erp-product-supplier-tabs-content\").delegate(\".open_warehouse_location_details\", \"click\", async (e) => {\n e.preventDefault();\n const title = e.currentTarget?.getAttribute(\"data-title\")\n const serial = e.currentTarget?.getAttribute(\"data-serial\")\n const customerId = e.currentTarget?.getAttribute(\"data-customer-id\")\n const warehouseLocationId = e.currentTarget?.getAttribute(\"data-warehouse-location-id\")\n const warehouseLocationPalletId = e.currentTarget?.getAttribute(\"data-warehouse-location-pallet-id\")\n await Utils.showLoader();\n const r = await UtilsEntity.request(`/api/v1/erp/products/${this.parent.id}/stock`, 'POST', {\n customer_id: customerId || null,\n warehouse_location_id: warehouseLocationId || null,\n warehouse_pallet_id: warehouseLocationPalletId || null,\n serial: serial\n });\n\n const subEntries = await this.getSubentities();\n console.log(\"subEntries\", subEntries)\n let html = '';\n if (r && r.status === 200) {\n const data = r.data;\n html += ``\n html += ``\n subEntries.forEach((entity: any) => {\n html += ``\n })\n html += ``;\n data.forEach((d: any, i: number) => {\n const olderDate = new Date(Date.parse(d.stored_at));\n const currentDate = new Date();\n\n // @ts-ignore\n const diff = olderDate - currentDate;\n\n const formatter = new Intl.RelativeTimeFormat('de', {numeric: 'auto'});\n\n html += ``\n html += ``\n html += ``\n subEntries.forEach((key: any) => {\n if (key.editable) {\n if (key.input_type === \"select\") {\n let optionsHtml = '';\n const currentValue = d.payload && d.payload[key.name] ? d.payload[key.name] : ''\n key.options.forEach((opt: any) => {\n optionsHtml += ``\n })\n html += ``\n } else {\n html += ``\n }\n } else {\n html += ``\n }\n })\n html += ``\n })\n html += `
SerialLagerdatum${entity.name.replaceAll(\"_\", \" \")}
${d.serial}${olderDate.toLocaleString()}(${(formatter.format(Math.round(diff / 86400000), 'day'))}) ${d.payload && d.payload[key.name] ? d.payload[key.name] : ''}
`\n }\n const modalTable = document.querySelector(\"#erpProductStockWarehouseLocationModalTable\");\n const modalTitle = document.querySelector(\"#erpProductStockWarehouseLocationModalTitle\");\n if (modalTable) {\n modalTable.innerHTML = html;\n }\n if (modalTitle) {\n modalTitle.innerHTML = title;\n }\n\n new DataTable(\"#erpProductStockWarehouseLocationModalTable table\", {\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-6 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 this.detailModal.show();\n await Utils.hideLoader();\n })\n }\n\n loadDatatables(data: any) {\n this.datatables.forEach((table: any) => {\n table.destroy();\n })\n const elems = document.querySelectorAll(\".datatable-erp-product-stock\") as NodeListOf;\n elems.forEach((elem, i) => {\n //@ts-ignore\n this.datatables.push(new DataTable(elem, {\n initComplete: (r: any) => {\n setTimeout(() => {\n const warehouseId = elem.closest(\"*[data-warehouse-id]\")?.getAttribute(\"data-warehouse-id\");\n const customers = data.warehouse_stock.filter(s => s.uuid === warehouseId)[0].stock.filter(s => s.customer).flatMap(s => s.customer.name)\n if (customers.length > 0) {\n const t = this.datatables[i];\n t.columns().every((col: any) => {\n if (col === 1) {\n const column = t.column(col);\n const header = column.header();\n let filterElem: any = null\n filterElem = document.createElement('select');\n filterElem.multiple = true;\n filterElem.classList.add(\"form-select\")\n header.appendChild(filterElem);\n filterElem.addEventListener(\"click\", (e: any) => {\n e.preventDefault();\n e.stopPropagation();\n })\n filterElem.style.marginTop = \"5px\"\n header.appendChild(filterElem);\n\n const options: any = {}\n options[col] = customers\n Object.keys(options).forEach((key: any) => {\n const v = options[key].filter((value: any, index: any, array: string | any[]) => array.indexOf(value) === index);\n v.forEach((value: any) => {\n filterElem.add(new Option(value, value));\n })\n })\n if (filterElem.nodeName === \"SELECT\") {\n jQuery(filterElem).select2().on('select2:select select2:unselect', (e: any) => {\n //@ts-ignore\n const values = Array.from(filterElem.querySelectorAll(\"option:checked\")).map((e) => {\n return Utils.escapeRegex(e.value)\n })\n column.search(values.join(\"|\").length > 0 ? '^' + values.join(\"|\") + '$' : '', true, false).draw();\n });\n }\n }\n });\n }\n }, 10);\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-6 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 })\n\n }\n\n async update(data: any) {\n const parentHeader = document.querySelector(\"#erp-product-supplier-tabs-header\") as HTMLElement;\n const parentContent = document.querySelector(\"#erp-product-supplier-tabs-content\") as HTMLElement;\n\n parentHeader.innerHTML = \"\";\n parentContent.innerHTML = \"\";\n data.warehouse_stock.forEach((warehouse: any, i: number) => {\n let tr = '';\n const mappedMap: any[] = []\n\n warehouse.stock.forEach((stock: any) => {\n const storedMap = stock.stored_at.reduce((acc: {\n set: (arg0: string, arg1: any) => void;\n get: (arg0: string) => any;\n }, dateString: string | number | Date) => {\n // Convert to JS Date\n const d = new Date(dateString);\n\n // Format according to \"de-DE\" locale\n const formatted = d.toLocaleString(\"de-DE\", {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n });\n\n // Accumulate the count of each formatted date\n acc.set(formatted, (acc.get(formatted) || 0) + 1);\n\n return acc;\n }, new Map());\n let storedText = []\n storedMap.forEach((value: any, key: any) => {\n storedText.push(`${value}x ${key}`)\n });\n const title = `${stock.warehouse_location.name}${stock.warehouse_pallet ? `, ${stock.warehouse_pallet.name}` : ''}`\n const serialHtml: any = [];\n if (stock.serials) {\n const serials = [...new Set(stock.serials.flat())];\n // @ts-ignore\n serials.forEach((serial: string) => {\n if (serial && serial !== \"null\") {\n serialHtml.push(`${serial}`)\n }\n })\n }\n tr += `\n \n \n \n ${stock.customer && stock.customer.name ? stock.customer.name : \"\"}\n ${serialHtml.join(\", \")}\n ${stock.stock}\n ${storedText.join(\"
\")}\n 0\n `\n });\n let headingHtml = `
  • \n \n
  • `;\n let contentHtml = `
    \n \n \n \n \n \n \n \n \n \n \n \n `;\n contentHtml += tr;\n\n contentHtml += `
    ${Utils.translate(\"erp.warehouse_location.name\")}${Utils.translate(\"erp.customer.name\")}${Utils.translate(\"erp.warehouse_location.attributes.serials\")}${Utils.translate(\"erp.export.attributes.stock\")}${Utils.translate(\"erp.warehouse_location.attributes.stored_at\")}${Utils.translate(\"erp.priority.name\")}
    `;\n parentHeader.innerHTML = parentHeader.innerHTML + headingHtml;\n parentContent.innerHTML = parentContent.innerHTML + contentHtml;\n })\n this.loadDatatables(data);\n await Utils.updateElements(data, '', (document.querySelector(\"#erp_product_stock\") as HTMLElement))\n await this.checkParams();\n }\n\n async checkParams() {\n const url = new URL(document.location.href);\n const serial = url.searchParams.get(\"serial\")\n if (serial) {\n let tableMatch = null;\n let paneMatch = null;\n document.querySelector(\"#stock-tab\")?.click();\n console.log(\"datatables\", this.datatables)\n this.datatables.forEach((table: any) => {\n table.search(serial).draw();\n const rows = table.rows({search: 'applied'}).data()\n if (rows.length === 0) {\n table.search('').draw();\n } else {\n tableMatch = table\n paneMatch = table.table().container().closest(\".tab-pane\")\n }\n })\n console.log(\"match\", paneMatch, tableMatch)\n if (paneMatch) {\n const paneId = paneMatch.getAttribute(\"id\");\n const warehouseId = paneMatch.getAttribute(\"data-warehouse-id\");\n document.querySelector(`button[aria-controls='${paneId}']`)?.click();\n const detailButton = tableMatch.rows({search: 'applied'}).nodes()[0].querySelector(\".open_warehouse_location_details\");\n detailButton.setAttribute(\"data-serial\", serial);\n detailButton.click();\n detailButton.removeAttribute(\"data-serial\")\n }\n }\n }\n}"],"names":["bootstrap.Modal","e"],"mappings":"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"}