Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
331 changes: 327 additions & 4 deletions loginPLED/preventivatore/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -1643,10 +1969,7 @@ function create_payback(){
$createdAt[] = $row["created_at"];
}
echo "<script>";
echo "var array_id_utenti = " . json_encode($id) . ";";
echo "var array_username = " . json_encode($username) . ";";
echo "var array_password = " . json_encode($password) . ";";
echo "var array_createdAt = " . json_encode($createdAt) . ";";
echo "var utente = '" . $_SESSION['username'] . "';";
echo "</script>";
} else {
echo "0 results users";
Expand Down