diff --git a/loginPLED/preventivatore/index.php b/loginPLED/preventivatore/index.php index 258d8da..9b73b07 100644 --- a/loginPLED/preventivatore/index.php +++ b/loginPLED/preventivatore/index.php @@ -1209,6 +1209,332 @@ function toStampaPDF(){ } } + function getDatiRisparmio(){ + var data = []; + var spesa_annua_attuale; + var spesa_annua_led; + var totale_attuale = 0; + var totale_led = 0; + var risparmio = 0; + for (var i = 0; i < N_analogic_bulb; i++){ + spesa_annua_attuale = StatoAttualeArray[i][1] * StatoAttualeArray[i][3] * StatoAttualeArray[i][4] * StatoAttualeArray[i][5] * costoKWH / 1000; + spesa_annua_led = selezionati_consumo[i] * SolPLEDArray[i][1] * StatoAttualeArray[i][4] * StatoAttualeArray[i][5] * costoKWH / 1000; + totale_attuale += spesa_annua_attuale; + totale_led += spesa_annua_led; + risparmio += spesa_annua_led - spesa_annua_attuale; + data.push({ + sostLED: SolPLEDArray[i][0], + consumo: selezionati_consumo[i], + ore: selezionati_durata[i] + " h", + PL: SolPLEDArray[i][1], + spesa_att: "€ " + Number(spesa_annua_attuale.toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2}), + spesa_led: "€ " + Number(spesa_annua_led.toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2}), + risparmio: "€ " + Number((spesa_annua_led - spesa_annua_attuale).toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2}), + perc: Math.round(spesa_annua_led / spesa_annua_attuale * 100 - 100) + " %" + }); + } + + risparmio -= risparmio_manutenzione; + + data.push({ + sostLED: "Risparmio manutenzione annua", + risparmio: "€ " + Number((-risparmio_manutenzione).toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2}) + }); + + data.push({ + sostLED: "TOTALI", + spesa_att: "€ " + Number(totale_attuale.toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2}), + spesa_led: "€ " + Number(totale_led.toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2}), + risparmio: "€ " + Number((risparmio).toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2}) + }) + + return data; + } + + function create_tabella_conti() { + var doc = new jsPDF("l"); + var totalPagesExp = "{total_pages_count_string}"; + var columns1 = [ + "Illuminazione attuale", + "Consumo reale in Watt", + "Ore \ndurata media", + "Punti luce", + "Giorni di funz.", + "Ore di funz." + ]; + /*var columns2 = [ + "Sostituzione LED", + "Consumo in Watt", + "Ore durata \nmedia", + "Punti luce", + "Spesa annua \nattuale", + "Spesa annua \ncon LED", + "Risparmio annuo \ncon LED", + "%" + ];*/ + + var getColumns = function () { + return [ + {title: "Sostituzione LED", dataKey: "sostLED"}, + {title: "Consumo in Watt", dataKey: "consumo"}, + {title: "Ore durata \nmedia", dataKey: "ore"}, + {title: "Punti luce", dataKey: "PL"}, + {title: "Spesa annua \nattuale", dataKey: "spesa_att"}, + {title: "Spesa annua \ncon LED", dataKey: "spesa_led"}, + {title: "Risparmio annuo \ncon LED", dataKey: "risparmio"}, + {title: "%", dataKey: "perc"} + ]; + }; + var rows1 = new Array(); + //var rows2 = new Array(); + var data = getDatiRisparmio(); + var finalY; + var finalX; + var risparmio = 0; + + for (var i = 0; i < N_analogic_bulb; i++){ + var spesa_annua_attuale = StatoAttualeArray[i][1] * StatoAttualeArray[i][3] * StatoAttualeArray[i][4] * StatoAttualeArray[i][5] * costoKWH / 1000; + var spesa_annua_led = selezionati_consumo[i] * SolPLEDArray[i][1] * StatoAttualeArray[i][4] * StatoAttualeArray[i][5] * costoKWH / 1000; + risparmio += spesa_annua_attuale - spesa_annua_led; + rows1[i] = [ + StatoAttualeArray[i][0], + StatoAttualeArray[i][1], + StatoAttualeArray[i][2], + StatoAttualeArray[i][3], + StatoAttualeArray[i][4], + StatoAttualeArray[i][5] + ]; + /*rows2[i] = [ + SolPLEDArray[i][0], + selezionati_consumo[i], + selezionati_durata[i] + " h", + SolPLEDArray[i][1], + "€ " + Number(spesa_annua_attuale.toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2}), + "€ " + Number(spesa_annua_led.toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2}), + "€ " + Number((spesa_annua_attuale - spesa_annua_led).toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2}), + Math.round(spesa_annua_led / spesa_annua_attuale * 100 - 100) + " %" + ];*/ + } + + + /*rows2[i] = [ + "", + "", + "", + "", + "", + "", + "€ " + Number((risparmio_manutenzione).toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2}), + "" + ];*/ + + var pageContent = function (data) { + // HEADER + doc.setFontSize(9); + doc.setTextColor(40); + doc.setFontStyle('normal'); + // Purple + + if (imgLogo) { + doc.addImage(imgLogo, 'JPEG', doc.internal.pageSize.width/2-50, 5, 100, 15); + } + doc.setFontType('bold'); + doc.text("PROFESSIONAL LED SRL\n", data.settings.margin.left, 30); + doc.setFontType('normal'); + doc.text("Sede Legale: Via Filippo Beroaldo, 38 - 40127 Bologna (BO)\nSede Operativa: Via Palazzetti, 5/F - 40068 San Lazzaro di Savena (BO)\nReg. Impr. BO P.I. e C.F.  03666271204 – REA 537385 – C.S. € 10.000,00 (i.v.)\nTel +39 051-625.55.83\nmail: info@professional-led.it", data.settings.margin.left, 34); + doc.text("Spett.le\n"+nome_azienda+"\n"+indirizzo_azienda+"\n"+cap_azienda+"\n\n"+nome_referente+"\n"+mail_referente,doc.internal.pageSize.width/2+40, 30); + // FOOTER + var str = "Page " + data.pageCount; + // Total page number plugin only available in jspdf v1.0+ + doc.setTextColor(201,201,201); + if (typeof doc.putTotalPages === 'function') { + str = str + " of " + totalPagesExp; + } + doc.setFontSize(10); + doc.text(str, data.settings.margin.left, doc.internal.pageSize.height - 10); + }; + + var today = new Date(); + + doc.setFontSize(10); + doc.setFontType('bold'); + doc.text(14,60,"Soluzione ACQUISTO"); + + doc.setFontType('normal'); + doc.text(85,60,"Data: "+today.getDate()+"/"+(today.getMonth()+1)+"/"+today.getFullYear()); + + doc.text(175,60,""+Math.floor(numero_preventivo)+"-"+today.getFullYear()+"/"+utente + " rev. 1"); + + + var leftPos = 4; + doc.autoTable(columns1, rows1, { + //styles: {fillColor: [154, 216, 25]}, + //columnStyles: { + // id: {fillColor: [0, 0, 0]} + //}, + theme: 'grid', + styles: {overflow: 'linebreak'}, + margin: {top: 70,bottom: 20, right: 160, left: leftPos}, + headerStyles: {fillColor: [0, 77, 126]}, + addPageContent: pageContent + }); + + /*doc.autoTable(columns2, rows2, { + //styles: {fillColor: [154, 216, 25]}, + //columnStyles: { + // id: {fillColor: [0, 0, 0]} + //}, + theme: 'grid', + styles: {overflow: 'linebreak'}, + margin: {top: 70,bottom: 20, left: 139, right: 4}, + headerStyles: {fillColor: [0, 77, 126]}, + });*/ + + finalY = doc.autoTable.previous.finalY; + finalX = doc.autoTable.previous.finalX; + + doc.setDrawColor(201,201,201); + doc.setFillColor(255, 255, 255); + doc.rect(leftPos, finalY+5, 60, 10, 'FD'); + doc.rect(leftPos + 60, finalY+5, 10 + (costoKWH + "").length * 1.5, 10, 'FD'); + + doc.setFontType('normal'); + doc.setTextColor(0, 0, 0); + doc.setFontSize(10); + doc.text(leftPos + 3, finalY+12, "Costo energia elettrica in Kw/h."); + doc.setTextColor(0, 0, 0); + doc.setFontSize(10); + doc.text(leftPos + 63, finalY+12, costoKWH + ""); + + doc.autoTable(getColumns(), data, { + //styles: {fillColor: [154, 216, 25]}, + //columnStyles: { + // id: {fillColor: [0, 0, 0]} + //} + drawRow: function(row, data){ + if (data.row.index === N_analogic_bulb) { + doc.setFontStyle('bold'); + doc.setTextColor(200, 0, 0); + doc.rect(data.settings.margin.left, row.y, data.table.width, 10, 'S'); + data.cursor.y += 10; + } + }, + createdCell: function (cell, data) { + if (data.row.index >= N_analogic_bulb) { + cell.styles.fontStyle = 'bold'; + + } + }, + theme: 'grid', + styles: {overflow: 'linebreak'}, + margin: {top: 70,bottom: 20, left: 139, right: 4}, + headerStyles: {fillColor: [0, 77, 126]}, + }); + + var result = [doc, totalPagesExp, data[data.length-1]["risparmio"]]; + + return result; + } + + function create_acquisto_conti(){ + var result = create_tabella_conti(); + var doc = result[0]; + var totalPagesExp = result[1]; + + var finalY = doc.autoTable.previous.finalY; + var finalX = doc.autoTable.previous.finalX; + + doc.setFontType('bold'); + doc.setDrawColor(201,201,201); + doc.setFillColor(255, 255, 255); + doc.rect(10, finalY+35, doc.internal.pageSize.width-20, 11, 'FD'); + doc.rect(11, finalY+36, doc.internal.pageSize.width-22, 9, 'FD'); + + doc.setTextColor(0); + doc.setFontSize(12); + doc.text(doc.internal.pageSize.width / 2 - 50,finalY+42,"Legge finanziaria 2018: ammortamento cespite 130% annuo") + + if (typeof doc.putTotalPages === 'function') { + doc.putTotalPages(totalPagesExp); + } + pdf_as_string = doc.output('datauristring'); + + if (typeof(Storage) !== "undefined") { + localStorage.setItem('pdf', JSON.stringify(pdf_as_string)); + window.open("./toPrint.html"); + } else { + alert("Impossile stampare, prego scaricare ultima versione di Chrome"); + } + } + + function create_noleggio_conti(){ + var result = create_tabella_conti(); + var doc = result[0]; + var totalPagesExp = result[1]; + var risparmio_totale = result[2]; + var risparmio_mensile = parseFloat(risparmio_totale.substring(2, risparmio_totale.length).replace('.', '').replace(',', '.')) / 12; + + var finalY = doc.autoTable.previous.finalY; + var finalX = doc.autoTable.previous.finalX; + + doc.setDrawColor(201,201,201); + doc.setFillColor(255, 255, 255); + doc.rect(doc.internal.pageSize.width / 2 - 50, finalY+10, 113, 9, 'FD'); + doc.rect(doc.internal.pageSize.width / 2 + 63, finalY+10, 27.8, 9, 'FD'); + + doc.setFontType('bold'); + doc.setTextColor(0, 0, 0); + doc.setFontSize(9); + doc.text(doc.internal.pageSize.width / 2 - 47, finalY+17, "RISPARMIO ANNUO"); + doc.setTextColor(255,0, 0); + doc.setFontSize(12); + doc.text(doc.internal.pageSize.width / 2 + 66, finalY+17, risparmio_totale); + + doc.setDrawColor(201,201,201); + doc.setFillColor(255, 255, 255); + doc.rect(doc.internal.pageSize.width / 2 - 50, finalY+29, 113, 9, 'FD'); + doc.rect(doc.internal.pageSize.width / 2 + 63, finalY+29, 27.8, 9, 'FD'); + + doc.setFontType('bold'); + doc.setTextColor(0, 0, 0); + doc.setFontSize(9); + doc.text(doc.internal.pageSize.width / 2 - 47, finalY+36, "RISPARMIO MENSILE"); + doc.setTextColor(255, 0, 0); + doc.setFontSize(12); + doc.text(doc.internal.pageSize.width / 2 + 66, finalY+36, "€ " + Number((risparmio_mensile).toFixed(2)).toLocaleString("it-IT", {minimumFractionDigits: 2})); + + + doc.setDrawColor(201,201,201); + doc.setFillColor(255, 255, 255); + doc.rect(doc.internal.pageSize.width / 2 - 50, finalY+48, 140.8, 9, 'FD'); + + doc.setFontType('bold'); + doc.setTextColor(0, 0, 0); + doc.setFontSize(9); + doc.text(doc.internal.pageSize.width / 2 - 47, finalY+55, "CANONE NOLEGGIO MENSILE"); + + doc.setDrawColor(201,201,201); + doc.setFillColor(255, 255, 255); + doc.rect(doc.internal.pageSize.width / 2 - 50, finalY+67, 140.8, 9, 'FD'); + + doc.setFontType('bold'); + doc.setTextColor(0, 0, 0); + doc.setFontSize(9); + doc.text(doc.internal.pageSize.width / 2 - 47, finalY+74, "DEDUCIBILITA' CANONI: 100%"); + + if (typeof doc.putTotalPages === 'function') { + doc.putTotalPages(totalPagesExp); + } + pdf_as_string = doc.output('datauristring'); + + if (typeof(Storage) !== "undefined") { + localStorage.setItem('pdf', JSON.stringify(pdf_as_string)); + window.open("./toPrint.html"); + } else { + alert("Impossile stampare, prego scaricare ultima versione di Chrome"); + } + } + function create_payback(){ var pdf_as_url; var doc = new jsPDF(); @@ -1643,10 +1969,7 @@ function create_payback(){ $createdAt[] = $row["created_at"]; } echo ""; } else { echo "0 results users";