{"version":3,"file":"product-ok8GAiuQ.js","sources":["../../../app/frontend/entrypoints/controllers/erp/stock/overview/relations/product.ts"],"sourcesContent":["import jQuery from 'jquery/dist/jquery';\nimport Utils from '../../../../../utils'\nimport DefaultController from \"../../../../defaultController\";\nexport default class ErpStockProductList {\n tableElem: any;\n datatable: any;\n private parent: any;\n private datatableData: any;\n\n constructor(parent: any) {\n this.parent = parent\n this.init()\n this.bindListeners();\n }\n\n init() {\n this.tableElem = jQuery('.datatables-users')\n this.createTable();\n }\n bindListeners() {\n (document.querySelector(\"body\") as HTMLElement).addEventListener(\"click\", async (e: any) => {\n const target = e.target as HTMLElement;\n if(target && target.classList.contains(\"download-btn\")) {\n let csv = '';\n csv += Object.values(this.datatable.columns().header().map((h: { innerHTML: any; }) => h.innerHTML)).slice(0,this.datatable.columns()[0].length).join(\";\")+\"\\n\";\n this.datatableData.forEach((entry: any) => {\n\n let content = [];\n content = [\n entry.productNumber,\n entry.name,\n this.generateLocation(entry).join(\", \"),\n this.generateStock(entry),\n this.generateStockAvailable(entry),\n ]\n csv += content.join(\";\")+\"\\n\";\n })\n\n await Utils.download(new Blob([\"\\ufeff\", csv]), 'export.csv')\n }\n });\n }\n\n\n\n formatNumber(num: string) {\n return (Math.round(parseFloat(num) * 100) / 100).toFixed(2);\n }\n\n generateLocation(item: any) {\n let locations: string[] = [];\n item.extensions[0].warehouseLocationProductMappings.forEach((mapping: any) => {\n locations.push(mapping.warehouseLocation[0].warehouse[0].shortcode+\"|\"+mapping.warehouseLocation[0].name);\n })\n return locations\n }\n\n generatePriceNet(item: any) {\n return this.formatNumber(item.price[0].net);\n }\n\n generatePriceAll(item: any) {\n return this.formatNumber(item.price[0].gross);\n }\n\n generateStock(item: any) {\n return item.extensions[0].warehouseLocationProductMappings.map((m: { stock: any; }) => m.stock).reduce((pv: any, cv: any) => pv + cv, 0);\n }\n\n generateStockReserved(item: any) {\n return item.extensions[0].warehouseLocationProductMappings.map((m: { stockReserved: any; }) => m.stockReserved && m.stockReserved.length > 0 ? m.stockReserved : 0).reduce((pv: any, cv: any) => pv + cv, 0);\n }\n\n generateStockAvailable(item: any) {\n return this.generateStock(item) - this.generateStockReserved(item);\n }\n\n createTable() {\n this.datatable = new DataTable(this.tableElem, {\n initComplete: () => {\n this.tableElem.closest(\".card\").find(\".loading-body\").addClass(\"d-none\")\n this.tableElem.closest(\".card\").find(\".card-datatable\").removeClass(\"d-none\")\n },\n \"ajax\": {\n \"type\" : \"GET\",\n \"url\" : `/api/v1/erp/exports`,\n \"dataSrc\": ( json: any ) => {\n this.datatableData = json.data;\n return json.data;\n }\n },\n columns: [\n {data: 'productNumber'},\n {data: 'name'},\n {data: 'warehouseLocations'},\n {data: 'stock'},\n {data: 'stockAvailable'},\n ],\n columnDefs: [\n {\n targets: 0,\n render: (data: any, type: any, full: any, meta: any) => {\n return data;\n },\n },\n {\n targets: 1,\n render: (data: any, type: any, full: any, meta: any) => {\n return data;\n },\n },\n {\n targets: 2,\n render: (data: any, type: any, full: any, meta: any) => {\n return this.generateLocation(full).join(\", \");\n },\n },\n {\n targets: 3,\n render: (data: any, type: any, full: any, meta: any) => {\n return this.generateStock(full);\n },\n },\n {\n targets: 4,\n render: (data: any, type: any, full: any, meta: any) => {\n return this.generateStockAvailable(full);\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-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 text: `${Utils.translate('generic.download')}`,\n className: 'dt-button btn btn-primary m-2 download-btn'\n }\n ]\n });\n }\n}"],"names":[],"mappings":"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"}