{"version":3,"file":"show-Eb_Nbfvk.js","sources":["../../../app/frontend/entrypoints/controllers/erp/product/overview/show.ts"],"sourcesContent":["\nimport * as bootstrap from 'bootstrap'\nimport Utils from '../../../../utils'\nimport DefaultController from \"../../../defaultController\";\nimport ErpProductEntity from \"../entity\";\nimport ErpProductGeneral from \"./show/general\";\nimport ErpProductErp from \"./show/erp\";\nimport ErpProductStock from \"./show/stock\";\nimport ErpProductSupplier from \"./show/supplier\";\n\n\nexport default class ErpProductShow extends DefaultController {\n private dragElements: any[] = []\n private multiMoveModal: any;\n async init() {\n this.entity = \"erp/products\"\n this.multiMoveModal = bootstrap.Modal.getOrCreateInstance((document.querySelector(\"#erpProductMultiMoveModal\") as HTMLElement))\n this.childs = {\n general: new ErpProductGeneral(this),\n erp: new ErpProductErp(this),\n stock: new ErpProductStock(this),\n supplier: new ErpProductSupplier(this)\n }\n await super.init();\n }\n\n protected getEntityData(elem: any) {\n return ErpProductEntity.getEntityData(elem)\n }\n bindListeners() {\n window.addEventListener(\"dragstart\", (e) => {\n if (e.dataTransfer) {\n const target = e.target as HTMLElement\n e.dataTransfer.dropEffect = \"copy\";\n const customerId = target.getAttribute(\"data-customer-id\");\n const warehouseLocationId = target.getAttribute(\"data-warehouse-location-id\");\n const warehousePalletId = target.getAttribute(\"data-warehouse-location-pallet-id\");\n const serial = target.getAttribute(\"data-serial\")\n const title = serial && serial.length > 0 ? serial : target.getAttribute(\"data-title\")\n e.dataTransfer.setData(\"text/plain\",JSON.stringify({\n title, customerId, warehouseLocationId, warehousePalletId, serial\n }));\n }\n });\n (document.querySelector(\".dropzone\") as HTMLElement).addEventListener(\"dragover\", (e) => {\n e.preventDefault();\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = \"move\";\n }\n });\n (document.querySelector(\".dropzone\") as HTMLElement).addEventListener(\"drop\", (e) => {\n if (e.dataTransfer) {\n const data = JSON.parse(e.dataTransfer.getData(\"text/plain\"));\n let dragElements = JSON.parse(localStorage.getItem(\"tickware_erp_product_multi_move\") as string)\n if (!dragElements) {\n dragElements = {}\n }\n // @ts-ignore\n if (!dragElements[this.id]) {\n // @ts-ignore\n dragElements[this.id] = {\n name: `${this.data.name}, ${this.data.number}`,\n elements: []\n }\n }\n // @ts-ignore\n dragElements[this.id].elements.push(data)\n // @ts-ignore\n dragElements[this.id].elements = dragElements[this.id].elements.filter((value, index, self) =>\n index === self.findIndex((t) => (\n t.serial === value.serial && t.customerId === value.customerId && t.warehouseLocationId === value.warehouseLocationId && t.warehousePalletId === value.warehousePalletId\n ))\n )\n localStorage.setItem(\"tickware_erp_product_multi_move\", JSON.stringify(dragElements))\n this.generateDragTable()\n }\n });\n (document.querySelector(\"#erp_product_save\") as HTMLElement).addEventListener(\"click\", async (e) => {\n e.preventDefault();\n const parent = document.querySelector(\".row[data-entity-id]\");\n await Utils.showLoader();\n const data = this.getEntityData(parent)\n if (data.manufacturerName) {\n const manufacturersResult = await Utils.entity.getAll('erp/product_manufacturers')\n const manufacturers = manufacturersResult.data\n let existingManufacturer = manufacturers.filter((f: any) => {return f.name === data.manufacturerName})[0]\n if (!existingManufacturer) {\n existingManufacturer = await Utils.entity.upsert({\n id: null,\n name: data.manufacturerName\n }, 'erp/product_manufacturers')\n existingManufacturer = existingManufacturer.data\n }\n data.manufacturerId = existingManufacturer.id\n console.log(\"existingManufacturer\", existingManufacturer)\n\n }\n const r = await Utils.entity.upsert(data, this.entity)\n if (r.status === 200) {\n await this.getEntity()\n this.toastr.success(`${Utils.translate('erp.product.name')} ${Utils.translate('generic.saved')}`, `${Utils.translate('generic.success')}`)\n } else {\n const errors: any = [];\n r.data.errors.forEach((err: any) => {\n errors.push(`${Utils.translate(`erp.product.messages.${err.code}`)}`)\n })\n this.toastr.error(`${errors.join(\", \")}`, `${Utils.translate('generic.error')}`)\n await Utils.hideLoader();\n }\n });\n\n (document.querySelector(\"#erp_product_duplicate\") as HTMLElement).addEventListener(\"click\", async (e) => {\n e.preventDefault();\n const parent = document.querySelector(\".row[data-entity-id]\");\n await Utils.showLoader();\n const data = this.getEntityData(parent)\n if (data.manufacturerName) {\n const manufacturersResult = await Utils.entity.getAll('erp/product_manufacturers')\n const manufacturers = manufacturersResult.data\n let existingManufacturer = manufacturers.filter((f: any) => {return f.name === data.manufacturerName})[0]\n if (!existingManufacturer) {\n existingManufacturer = await Utils.entity.upsert({\n id: null,\n name: data.manufacturerName\n }, 'erp/product_manufacturers')\n existingManufacturer = existingManufacturer.data\n }\n data.manufacturerId = existingManufacturer.id\n console.log(\"existingManufacturer\", existingManufacturer)\n\n }\n await Utils.entity.upsert(data, this.entity)\n data.uuid = null;\n data.number = `${data.number}_1`\n const r = await Utils.entity.upsert(data, this.entity)\n if (r.status === 200) {\n this.toastr.success(`${Utils.translate('erp.product.name')} ${Utils.translate('generic.messages.duplicated')}`, `${Utils.translate('generic.success')}`)\n setTimeout(() => {\n document.location.href = `/${(window as any).currentLocale}/erp/products/${r.data[0].uuid}`\n }, 1000)\n }\n });\n\n (document.querySelector(\"#erp_product_print\") as HTMLButtonElement).addEventListener(\"click\", async (e: any) => {\n e.preventDefault();\n const requestData = await Utils.erp.downloadLabel(this.data.id, \"product\")\n if (requestData.status === 200) {\n const pdf = requestData.data.pdf\n const arrayBuffer = Utils.base64ToArrayBuffer(pdf);\n Utils.createAndDownloadBlobFile(arrayBuffer, 'labels');\n }\n });\n\n (document.querySelector(\"#erp_product_delete\") as HTMLElement).addEventListener(\"click\", async (e) => {\n e.preventDefault();\n const parent = document.querySelector(\".row[data-entity-id]\");\n await Utils.showLoader();\n const data = this.getEntityData(parent)\n\n const r = await Utils.entity.destroy(data.id, this.entity)\n if (r.status === 200) {\n\n this.toastr.success(`${Utils.translate('erp.product.name')} ${Utils.translate('generic.deleted')}`, `${Utils.translate('generic.success')}`)\n setTimeout(() => {\n window.history.back()\n }, 1000)\n }\n });\n jQuery(\"body\").delegate(\".delete_drop_row\", \"click\", (e: any) => {\n const data = JSON.parse(e.currentTarget.closest(\"tr\").getAttribute(\"data-data\"));\n const dragElements = JSON.parse(localStorage.getItem(\"tickware_erp_product_multi_move\") as string)\n const productId = e.currentTarget.getAttribute(\"data-product-id\");\n dragElements[productId].elements = dragElements[productId].elements.filter((e) => {\n if(e.warehousePalletId === data.warehousePalletId &&\n e.warehouseLocationId === data.warehouseLocationId &&\n e.customerId === data.customerId &&\n e.serial === data.serial) {\n return false\n } else {\n return true\n }\n })\n if (dragElements[productId].elements.length === 0) {\n delete dragElements[productId]\n }\n localStorage.setItem(\"tickware_erp_product_multi_move\", JSON.stringify(dragElements))\n this.generateDragTable()\n })\n jQuery(\"body\").delegate(\"#erp_product_process_action\", \"click\", (e: any) => {\n const dragElements = JSON.parse(localStorage.getItem(\"tickware_erp_product_multi_move\") as string)\n if(Object.keys(dragElements).length > 0) {\n this.multiMoveModal.show();\n }\n });\n\n (document.querySelector(\"#erp_product_multi_move_form\") as HTMLFormElement).addEventListener(\"submit\", async (e) => {\n e.preventDefault();\n console.log(\"save\")\n const warehouseId = (document.querySelector(\"#erp_product_multi_move_warehouse_id option:checked\") as HTMLSelectElement)?.value;\n const warehouseLocationId = (document.querySelector(\"#erp_product_multi_move_warehouse_location_id option:checked\") as HTMLSelectElement)?.value\n const warehousePalletId = (document.querySelector(\"#erp_product_multi_move_warehouse_location_pallet_id option:checked\") as HTMLSelectElement)?.value\n const customerId = (document.querySelector(\"#erp_product_multi_move_customer_id option:checked\") as HTMLSelectElement)?.value\n Utils.showLoader()\n const dragElements = JSON.parse(localStorage.getItem(\"tickware_erp_product_multi_move\") as string)\n // @ts-ignore\n for (const productId of Object.keys(dragElements)) {\n const dragElement = dragElements[productId]\n await Utils.erp.multiMove(productId, dragElement.elements, warehouseId, warehouseLocationId, warehousePalletId, customerId)\n }\n await this.getEntity()\n this.multiMoveModal.hide()\n localStorage.setItem(\"tickware_erp_product_multi_move\", \"{}\")\n this.generateDragTable()\n Utils.hideLoader()\n });\n\n jQuery(\"#erp_product_multi_move_warehouse_location_id\").on(\"select2:select\", (e: any) => {\n (document.querySelector(\"#erp_product_multi_move_warehouse_location_pallet_id\") as HTMLSelectElement).disabled = false\n });\n }\n onSelectGetFilterOptions(elem: any) {\n if (elem.getAttribute(\"id\") === \"erp_product_multi_move_warehouse_location_id\") {\n return {\n warehouse_id: (document.querySelector(\"#erp_product_multi_move_warehouse_id option:checked\") as HTMLSelectElement)?.value\n }\n } else if (elem.getAttribute(\"id\") === \"erp_product_multi_move_warehouse_location_pallet_id\") {\n return {\n warehouse_location_id: (document.querySelector(\"#erp_product_multi_move_warehouse_location_id option:checked\") as HTMLSelectElement)?.value\n }\n }\n return {}\n }\n\n generateDragTable() {\n let html = \"\"\n const dragElements = JSON.parse(localStorage.getItem(\"tickware_erp_product_multi_move\") as string)\n if (dragElements && Object.keys(dragElements).length > 0) {\n for (const productId of Object.keys(dragElements)) {\n const dragElement = dragElements[productId]\n html += `${dragElement.name}`\n html += ''\n dragElement.elements.forEach((elem: any) => {\n html += ``\n });\n html += '
${elem.title}
';\n }\n\n } else {\n this.multiMoveModal.hide();\n }\n (document.querySelector(\"#erp_product_multi_move_modal_table\") as HTMLElement).innerHTML = html;\n if (html.length > 0) {\n html += '';\n }\n (document.querySelector(\".dropzone\") as HTMLElement).innerHTML = html;\n }\n\n async updateEntity(data: any) {\n await super.updateEntity(data);\n if (data.category) {\n const $newOption = jQuery(\"\").val(data.category.uuid).text(data.category.name)\n jQuery(\"#erp_product_category_id\").append($newOption).trigger('change')\n }\n this.generateDragTable()\n }\n}"],"names":["bootstrap.Modal","e"],"mappings":"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"}