|
|
@@ -88,7 +88,17 @@ export class AssetsComponent implements OnInit {
|
|
|
|
|
|
// Observable of two objects
|
|
|
forkJoin([plants, energy_produced]).subscribe(results => {
|
|
|
- this.listAssets = results[0]["assets"];
|
|
|
+ if (localStorage.getItem("email") == "inverlec@grupomerelec.com"){
|
|
|
+ this.listAssets = [{
|
|
|
+ name: "Inversiones MERELEC S.A de C.V",
|
|
|
+ id: 1
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ else {
|
|
|
+
|
|
|
+ this.listAssets = results[0]["assets"];
|
|
|
+ }
|
|
|
+
|
|
|
this.listEnergyProduced = results[1];
|
|
|
},
|
|
|
(err) => {
|
|
|
@@ -99,7 +109,7 @@ export class AssetsComponent implements OnInit {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
- setTimeout(()=>{
|
|
|
+
|
|
|
this.isActive = [false, false, true, false];
|
|
|
this.logsService.getEnergyProducedByMonth().toPromise()
|
|
|
.then((data: any) => {
|
|
|
@@ -115,7 +125,8 @@ export class AssetsComponent implements OnInit {
|
|
|
|
|
|
// Json object construction for passing its values to the chartjs datasets according to its requirements
|
|
|
for (let prop in meterKeys2) {
|
|
|
- this.metersData.push({"label": this.metersKeys[prop], backgroundColor: this.barChartColors[prop], data: this.metersValues[prop].map(obj => obj.total_energy_kWh).reverse()});
|
|
|
+ let label = localStorage.getItem("email") == "inverlec@grupomerelec.com" ? `INVERLEC ${prop}` : this.metersKeys[prop];
|
|
|
+ this.metersData.push({"label": label, backgroundColor: this.barChartColors[prop], data: this.metersValues[prop].map(obj => obj.total_energy_kWh).reverse()});
|
|
|
this.barChartLabels = this.metersValues[prop].map(obj => formatDate(obj.dateMax, 'dd/MM','es-Es','-0600')).reverse();
|
|
|
}
|
|
|
|
|
|
@@ -167,8 +178,9 @@ export class AssetsComponent implements OnInit {
|
|
|
this.chartjs = true;
|
|
|
});
|
|
|
this.chartjs = true;
|
|
|
- Swal.close();
|
|
|
- }, 2000);
|
|
|
+ setTimeout(()=>{
|
|
|
+ Swal.close();
|
|
|
+ }, 2700);
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -181,7 +193,11 @@ export class AssetsComponent implements OnInit {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private onMeasureClickDay(): void {
|
|
|
+ onChangeObj(event) {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ onMeasureClickDay(): void {
|
|
|
console.log("DAY");
|
|
|
Swal.fire({
|
|
|
allowOutsideClick: false,
|
|
|
@@ -192,78 +208,80 @@ export class AssetsComponent implements OnInit {
|
|
|
this.isActive = [true, false, false, false];
|
|
|
this.chart1.destroy();
|
|
|
|
|
|
- setTimeout(()=>{
|
|
|
- this.logsService.getEnergyProducedByDay().toPromise()
|
|
|
- .then((data: any) => {
|
|
|
- // Get all the keys(each meter name) of the returned promise
|
|
|
- this.metersKeys = Object.keys(data["1D"]);
|
|
|
-
|
|
|
- // Get all the values according to each index (meter)
|
|
|
- this.metersValues = Object.values(data["1D"]).map(sub => sub);
|
|
|
- let meterKeys2 = Object.keys(this.metersValues);
|
|
|
-
|
|
|
- // Re-Initialize Json object
|
|
|
- this.metersData = [];
|
|
|
-
|
|
|
- // Json object construction for passing its values to the chartjs datasets according to its requirements
|
|
|
- for (let prop in meterKeys2) {
|
|
|
- this.metersData.push({"label": this.metersKeys[prop], backgroundColor: this.barChartColors[prop], data: this.metersValues[prop].map(obj => obj.total_energy_kWh).reverse()});
|
|
|
- this.barChartLabels = this.metersValues[prop].map(obj => formatDate(obj.dateMin, 'hh:mm:ss','es-Es','-0600')).reverse();
|
|
|
- }
|
|
|
- this.chart1.destroy();
|
|
|
- this.chart1 = undefined;
|
|
|
- // Chart draw
|
|
|
- this.chart1 = new Chart('canvas', {
|
|
|
- type: 'bar',
|
|
|
- options: {
|
|
|
- title: {
|
|
|
- display: true,
|
|
|
- },
|
|
|
- tooltips: {
|
|
|
- mode: 'index',
|
|
|
- callbacks: {
|
|
|
- // Get the total of the energy produced in every point and show it in the hover tooltip
|
|
|
- label: function (tooltipItem, data) {
|
|
|
- var label = data.datasets[tooltipItem.datasetIndex].label || '';
|
|
|
- var value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
|
|
|
- var total = 0;
|
|
|
-
|
|
|
- for (var i = 0; i < data.datasets.length; i++)
|
|
|
- total += +data.datasets[i].data[tooltipItem.index];
|
|
|
-
|
|
|
- if (tooltipItem.datasetIndex !== data.datasets.length - 1) {
|
|
|
- return label + " : " + value;
|
|
|
- }
|
|
|
- else {
|
|
|
- return [label + " : " + value, "TOTAL : " + Math.round(total)];
|
|
|
- }
|
|
|
+
|
|
|
+ this.logsService.getEnergyProducedByDay().toPromise()
|
|
|
+ .then((data: any) => {
|
|
|
+ // Get all the keys(each meter name) of the returned promise
|
|
|
+ this.metersKeys = Object.keys(data["1D"]);
|
|
|
+
|
|
|
+ // Get all the values according to each index (meter)
|
|
|
+ this.metersValues = Object.values(data["1D"]).map(sub => sub);
|
|
|
+ let meterKeys2 = Object.keys(this.metersValues);
|
|
|
+
|
|
|
+ // Re-Initialize Json object
|
|
|
+ this.metersData = [];
|
|
|
+
|
|
|
+ // Json object construction for passing its values to the chartjs datasets according to its requirements
|
|
|
+ for (let prop in meterKeys2) {
|
|
|
+ let label = localStorage.getItem("email") == "inverlec@grupomerelec.com" ? `INVERLEC ${prop}` : this.metersKeys[prop];
|
|
|
+ this.metersData.push({"label": label, backgroundColor: this.barChartColors[prop], data: this.metersValues[prop].map(obj => obj.total_energy_kWh).reverse()});
|
|
|
+ this.barChartLabels = this.metersValues[prop].map(obj => formatDate(obj.dateMin, 'hh:mm:ss','es-Es','-0600')).reverse();
|
|
|
+ }
|
|
|
+ this.chart1.destroy();
|
|
|
+ this.chart1 = undefined;
|
|
|
+ // Chart draw
|
|
|
+ this.chart1 = new Chart('canvas', {
|
|
|
+ type: 'bar',
|
|
|
+ options: {
|
|
|
+ title: {
|
|
|
+ display: true,
|
|
|
+ },
|
|
|
+ tooltips: {
|
|
|
+ mode: 'index',
|
|
|
+ callbacks: {
|
|
|
+ // Get the total of the energy produced in every point and show it in the hover tooltip
|
|
|
+ label: function (tooltipItem, data) {
|
|
|
+ var label = data.datasets[tooltipItem.datasetIndex].label || '';
|
|
|
+ var value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
|
|
|
+ var total = 0;
|
|
|
+
|
|
|
+ for (var i = 0; i < data.datasets.length; i++)
|
|
|
+ total += +data.datasets[i].data[tooltipItem.index];
|
|
|
+
|
|
|
+ if (tooltipItem.datasetIndex !== data.datasets.length - 1) {
|
|
|
+ return label + " : " + value;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return [label + " : " + value, "TOTAL : " + Math.round(total)];
|
|
|
}
|
|
|
}
|
|
|
- },
|
|
|
- responsive: true,
|
|
|
- maintainAspectRatio: false,
|
|
|
- scales: {
|
|
|
- xAxes: [{
|
|
|
- stacked: true,
|
|
|
- }],
|
|
|
- yAxes: [{
|
|
|
- stacked: true
|
|
|
- }]
|
|
|
}
|
|
|
},
|
|
|
- data: {
|
|
|
- labels: this.barChartLabels,
|
|
|
- datasets:
|
|
|
- this.metersData,
|
|
|
- },
|
|
|
- });
|
|
|
- this.chartjs = true;
|
|
|
+ responsive: true,
|
|
|
+ maintainAspectRatio: false,
|
|
|
+ scales: {
|
|
|
+ xAxes: [{
|
|
|
+ stacked: true,
|
|
|
+ }],
|
|
|
+ yAxes: [{
|
|
|
+ stacked: true
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ labels: this.barChartLabels,
|
|
|
+ datasets:
|
|
|
+ this.metersData,
|
|
|
+ },
|
|
|
});
|
|
|
+ this.chartjs = true;
|
|
|
+ });
|
|
|
+ setTimeout(()=>{
|
|
|
Swal.close();
|
|
|
- }, 2000);
|
|
|
+ }, 2700)
|
|
|
}
|
|
|
|
|
|
- private onMeasureClickWeek(): void {
|
|
|
+ onMeasureClickWeek(): void {
|
|
|
console.log("WEEK");
|
|
|
|
|
|
Swal.fire({
|
|
|
@@ -274,84 +292,81 @@ export class AssetsComponent implements OnInit {
|
|
|
Swal.showLoading();
|
|
|
this.isActive = [false, true, false, false];
|
|
|
this.chart1.destroy();
|
|
|
-
|
|
|
- setTimeout(()=>{
|
|
|
- this.logsService.getEnergyProducedByWeek().toPromise()
|
|
|
- .then((data: any) => {
|
|
|
- // Get all the keys(each meter name) of the returned promise
|
|
|
- this.metersKeys = Object.keys(data["7D"]);
|
|
|
-
|
|
|
- // Get all the values according to each index (meter)
|
|
|
- this.metersValues = Object.values(data["7D"]).map(sub => sub);
|
|
|
- let meterKeys2 = Object.keys(this.metersValues);
|
|
|
-
|
|
|
- // Re-Initialize Json object
|
|
|
- this.metersData = [];
|
|
|
-
|
|
|
- // Json object construction for passing its values to the chartjs datasets according to its requirements
|
|
|
- for (let prop in meterKeys2) {
|
|
|
- this.metersData.push({"label": this.metersKeys[prop], backgroundColor: this.barChartColors[prop], data: this.metersValues[prop].map(obj => obj.total_energy_kWh).reverse()});
|
|
|
- this.barChartLabels = this.metersValues[prop].map(obj => formatDate(obj.dateMax, 'EEEE dd','es-Es','-0600')).reverse();
|
|
|
- }
|
|
|
- this.chart1.destroy();
|
|
|
- this.chart1 = undefined;
|
|
|
- // Chart draw
|
|
|
- this.chart1 = new Chart('canvas', {
|
|
|
- type: 'bar',
|
|
|
- options: {
|
|
|
- title: {
|
|
|
- display: true,
|
|
|
- },
|
|
|
- tooltips: {
|
|
|
- mode: 'index',
|
|
|
- callbacks: {
|
|
|
- // Get the total of the energy produced in every point and show it in the hover tooltip
|
|
|
- label: function (tooltipItem, data) {
|
|
|
- var label = data.datasets[tooltipItem.datasetIndex].label || '';
|
|
|
- var value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
|
|
|
- var total = 0;
|
|
|
-
|
|
|
- for (var i = 0; i < data.datasets.length; i++)
|
|
|
- total += +data.datasets[i].data[tooltipItem.index];
|
|
|
-
|
|
|
- if (tooltipItem.datasetIndex !== data.datasets.length - 1) {
|
|
|
- return label + " : " + value;
|
|
|
- }
|
|
|
- else {
|
|
|
- return [label + " : " + value, "TOTAL : " + Math.round(total)];
|
|
|
- }
|
|
|
+
|
|
|
+ this.logsService.getEnergyProducedByWeek().toPromise()
|
|
|
+ .then((data: any) => {
|
|
|
+ // Get all the keys(each meter name) of the returned promise
|
|
|
+ this.metersKeys = Object.keys(data["7D"]);
|
|
|
+
|
|
|
+ // Get all the values according to each index (meter)
|
|
|
+ this.metersValues = Object.values(data["7D"]).map(sub => sub);
|
|
|
+ let meterKeys2 = Object.keys(this.metersValues);
|
|
|
+
|
|
|
+ // Re-Initialize Json object
|
|
|
+ this.metersData = [];
|
|
|
+
|
|
|
+ // Json object construction for passing its values to the chartjs datasets according to its requirements
|
|
|
+ for (let prop in meterKeys2) {
|
|
|
+ let label = localStorage.getItem("email") == "inverlec@grupomerelec.com" ? `INVERLEC ${prop}` : this.metersKeys[prop];
|
|
|
+ this.metersData.push({"label": label, backgroundColor: this.barChartColors[prop], data: this.metersValues[prop].map(obj => obj.total_energy_kWh).reverse()});
|
|
|
+ this.barChartLabels = this.metersValues[prop].map(obj => formatDate(obj.dateMax, 'EEEE dd','es-Es','-0600')).reverse();
|
|
|
+ }
|
|
|
+ this.chart1.destroy();
|
|
|
+ this.chart1 = undefined;
|
|
|
+ // Chart draw
|
|
|
+ this.chart1 = new Chart('canvas', {
|
|
|
+ type: 'bar',
|
|
|
+ options: {
|
|
|
+ title: {
|
|
|
+ display: true,
|
|
|
+ },
|
|
|
+ tooltips: {
|
|
|
+ mode: 'index',
|
|
|
+ callbacks: {
|
|
|
+ // Get the total of the energy produced in every point and show it in the hover tooltip
|
|
|
+ label: function (tooltipItem, data) {
|
|
|
+ var label = data.datasets[tooltipItem.datasetIndex].label || '';
|
|
|
+ var value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
|
|
|
+ var total = 0;
|
|
|
+
|
|
|
+ for (var i = 0; i < data.datasets.length; i++)
|
|
|
+ total += +data.datasets[i].data[tooltipItem.index];
|
|
|
+
|
|
|
+ if (tooltipItem.datasetIndex !== data.datasets.length - 1) {
|
|
|
+ return label + " : " + value;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return [label + " : " + value, "TOTAL : " + Math.round(total)];
|
|
|
}
|
|
|
}
|
|
|
- },
|
|
|
- responsive: true,
|
|
|
- maintainAspectRatio: false,
|
|
|
- scales: {
|
|
|
- xAxes: [{
|
|
|
- stacked: true,
|
|
|
- }],
|
|
|
- yAxes: [{
|
|
|
- stacked: true
|
|
|
- }]
|
|
|
}
|
|
|
},
|
|
|
- data: {
|
|
|
- labels: this.barChartLabels,
|
|
|
- datasets:
|
|
|
- this.metersData,
|
|
|
- },
|
|
|
- });
|
|
|
- this.chartjs = true;
|
|
|
+ responsive: true,
|
|
|
+ maintainAspectRatio: false,
|
|
|
+ scales: {
|
|
|
+ xAxes: [{
|
|
|
+ stacked: true,
|
|
|
+ }],
|
|
|
+ yAxes: [{
|
|
|
+ stacked: true
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ labels: this.barChartLabels,
|
|
|
+ datasets:
|
|
|
+ this.metersData,
|
|
|
+ },
|
|
|
});
|
|
|
this.chartjs = true;
|
|
|
- Swal.close();
|
|
|
- }, 2000);
|
|
|
-
|
|
|
-
|
|
|
+ });
|
|
|
|
|
|
-
|
|
|
+ setTimeout(()=>{
|
|
|
+ Swal.close();
|
|
|
+ }, 2700)
|
|
|
}
|
|
|
|
|
|
- private onMeasureClickMonth(): void {
|
|
|
+ onMeasureClickMonth(): void {
|
|
|
Swal.fire({
|
|
|
allowOutsideClick: false,
|
|
|
type: 'info',
|
|
|
@@ -360,81 +375,82 @@ export class AssetsComponent implements OnInit {
|
|
|
Swal.showLoading();
|
|
|
this.isActive = [false, false, true, false];
|
|
|
this.chart1.destroy();
|
|
|
-
|
|
|
- setTimeout(()=>{
|
|
|
- this.logsService.getEnergyProducedByMonth().toPromise()
|
|
|
- .then((data: any) => {
|
|
|
- // Get all the keys(each meter name) of the returned promise
|
|
|
- this.metersKeys = Object.keys(data["1M"]);
|
|
|
-
|
|
|
- // Get all the values according to each index (meter)
|
|
|
- this.metersValues = Object.values(data["1M"]).map(sub => sub);
|
|
|
- let meterKeys2 = Object.keys(this.metersValues);
|
|
|
-
|
|
|
- // Re-Initialize Json object
|
|
|
- this.metersData = [];
|
|
|
-
|
|
|
- // Json object construction for passing its values to the chartjs datasets according to its requirements
|
|
|
- for (let prop in meterKeys2) {
|
|
|
- this.metersData.push({"label": this.metersKeys[prop], backgroundColor: this.barChartColors[prop], data: this.metersValues[prop].map(obj => obj.total_energy_kWh).reverse()});
|
|
|
- this.barChartLabels = this.metersValues[prop].map(obj => formatDate(obj.dateMax, 'dd/MM','es-Es','-0600')).reverse();
|
|
|
- }
|
|
|
- this.chart1.destroy();
|
|
|
- this.chart1 = undefined;
|
|
|
- // Chart draw
|
|
|
- this.chart1 = new Chart('canvas', {
|
|
|
- type: 'bar',
|
|
|
- options: {
|
|
|
- title: {
|
|
|
- display: true,
|
|
|
- },
|
|
|
- tooltips: {
|
|
|
- mode: 'index',
|
|
|
- callbacks: {
|
|
|
- // Get the total of the energy produced in every point and show it in the hover tooltip
|
|
|
- label: function (tooltipItem, data) {
|
|
|
- var label = data.datasets[tooltipItem.datasetIndex].label || '';
|
|
|
- var value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
|
|
|
- var total = 0;
|
|
|
-
|
|
|
- for (var i = 0; i < data.datasets.length; i++)
|
|
|
- total += +data.datasets[i].data[tooltipItem.index];
|
|
|
-
|
|
|
- if (tooltipItem.datasetIndex !== data.datasets.length - 1) {
|
|
|
- return label + " : " + value;
|
|
|
- }
|
|
|
- else {
|
|
|
- return [label + " : " + value, "TOTAL : " + Math.round(total)];
|
|
|
- }
|
|
|
+
|
|
|
+ this.logsService.getEnergyProducedByMonth().toPromise()
|
|
|
+ .then((data: any) => {
|
|
|
+ // Get all the keys(each meter name) of the returned promise
|
|
|
+ this.metersKeys = Object.keys(data["1M"]);
|
|
|
+
|
|
|
+ // Get all the values according to each index (meter)
|
|
|
+ this.metersValues = Object.values(data["1M"]).map(sub => sub);
|
|
|
+ let meterKeys2 = Object.keys(this.metersValues);
|
|
|
+
|
|
|
+ // Re-Initialize Json object
|
|
|
+ this.metersData = [];
|
|
|
+
|
|
|
+ // Json object construction for passing its values to the chartjs datasets according to its requirements
|
|
|
+ for (let prop in meterKeys2) {
|
|
|
+ let label = localStorage.getItem("email") == "inverlec@grupomerelec.com" ? `INVERLEC ${prop}` : this.metersKeys[prop];
|
|
|
+ this.metersData.push({"label": label, backgroundColor: this.barChartColors[prop], data: this.metersValues[prop].map(obj => obj.total_energy_kWh).reverse()});
|
|
|
+ this.barChartLabels = this.metersValues[prop].map(obj => formatDate(obj.dateMax, 'dd/MM','es-Es','-0600')).reverse();
|
|
|
+ }
|
|
|
+ this.chart1.destroy();
|
|
|
+ this.chart1 = undefined;
|
|
|
+ // Chart draw
|
|
|
+ this.chart1 = new Chart('canvas', {
|
|
|
+ type: 'bar',
|
|
|
+ options: {
|
|
|
+ title: {
|
|
|
+ display: true,
|
|
|
+ },
|
|
|
+ tooltips: {
|
|
|
+ mode: 'index',
|
|
|
+ callbacks: {
|
|
|
+ // Get the total of the energy produced in every point and show it in the hover tooltip
|
|
|
+ label: function (tooltipItem, data) {
|
|
|
+ var label = data.datasets[tooltipItem.datasetIndex].label || '';
|
|
|
+ var value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
|
|
|
+ var total = 0;
|
|
|
+
|
|
|
+ for (var i = 0; i < data.datasets.length; i++)
|
|
|
+ total += +data.datasets[i].data[tooltipItem.index];
|
|
|
+
|
|
|
+ if (tooltipItem.datasetIndex !== data.datasets.length - 1) {
|
|
|
+ return label + " : " + value;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return [label + " : " + value, "TOTAL : " + Math.round(total)];
|
|
|
}
|
|
|
}
|
|
|
- },
|
|
|
- responsive: true,
|
|
|
- maintainAspectRatio: false,
|
|
|
- scales: {
|
|
|
- xAxes: [{
|
|
|
- stacked: true,
|
|
|
- }],
|
|
|
- yAxes: [{
|
|
|
- stacked: true
|
|
|
- }]
|
|
|
}
|
|
|
},
|
|
|
- data: {
|
|
|
- labels: this.barChartLabels,
|
|
|
- datasets:
|
|
|
- this.metersData,
|
|
|
- },
|
|
|
- });
|
|
|
- this.chartjs = true;
|
|
|
+ responsive: true,
|
|
|
+ maintainAspectRatio: false,
|
|
|
+ scales: {
|
|
|
+ xAxes: [{
|
|
|
+ stacked: true,
|
|
|
+ }],
|
|
|
+ yAxes: [{
|
|
|
+ stacked: true
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ labels: this.barChartLabels,
|
|
|
+ datasets:
|
|
|
+ this.metersData,
|
|
|
+ },
|
|
|
});
|
|
|
this.chartjs = true;
|
|
|
+ });
|
|
|
+
|
|
|
+ setTimeout(()=>{
|
|
|
Swal.close();
|
|
|
- }, 2000);
|
|
|
+ }, 2700)
|
|
|
|
|
|
}
|
|
|
|
|
|
- private onMeasureYear(): void {
|
|
|
+ onMeasureYear(): void {
|
|
|
|
|
|
Swal.fire({
|
|
|
allowOutsideClick: false,
|
|
|
@@ -446,76 +462,76 @@ export class AssetsComponent implements OnInit {
|
|
|
this.isActive = [false, false, false, true];
|
|
|
this.chart1.destroy();
|
|
|
|
|
|
- setTimeout(()=>{
|
|
|
-
|
|
|
- this.http.get(`${environment.apiUrl}/logs/energyProduced/YTD`).toPromise()
|
|
|
- .then((data: any) => {
|
|
|
- // Get all the keys(each meter name) of the returned promise
|
|
|
- this.metersKeys = Object.keys(data["YTD"]);
|
|
|
-
|
|
|
- // Get all the values according to each index (meter)
|
|
|
- this.metersValues = Object.values(data["YTD"]).map(sub => sub);
|
|
|
- let meterKeys2 = Object.keys(this.metersValues);
|
|
|
-
|
|
|
- // Re-Initialize Json object
|
|
|
- this.metersData = [];
|
|
|
-
|
|
|
- // Json object construction for passing its values to the chartjs datasets according to its requirements
|
|
|
- for (let prop in meterKeys2) {
|
|
|
- this.metersData.push({"label": this.metersKeys[prop], backgroundColor: this.barChartColors[prop], data: this.metersValues[prop].map(obj => obj.total_energy_kWh).reverse()});
|
|
|
- this.barChartLabels = this.metersValues[prop].map(obj => formatDate(obj.dateMax, 'MMM','es-Es','-0600')).reverse();
|
|
|
- }
|
|
|
- this.chart1.destroy();
|
|
|
- this.chart1 = undefined;
|
|
|
- // Chart draw
|
|
|
- this.chart1 = new Chart('canvas', {
|
|
|
- type: 'bar',
|
|
|
- options: {
|
|
|
- title: {
|
|
|
- display: true,
|
|
|
- },
|
|
|
- tooltips: {
|
|
|
- mode: 'index',
|
|
|
- callbacks: {
|
|
|
- // Get the total of the energy produced in every point and show it in the hover tooltip
|
|
|
- label: function (tooltipItem, data) {
|
|
|
- var label = data.datasets[tooltipItem.datasetIndex].label || '';
|
|
|
- var value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
|
|
|
- var total = 0;
|
|
|
-
|
|
|
- for (var i = 0; i < data.datasets.length; i++)
|
|
|
- total += +data.datasets[i].data[tooltipItem.index];
|
|
|
+ this.http.get(`${environment.apiUrl}/logs/energyProduced/YTD`).toPromise()
|
|
|
+ .then((data: any) => {
|
|
|
+ // Get all the keys(each meter name) of the returned promise
|
|
|
+ this.metersKeys = Object.keys(data["YTD"]);
|
|
|
|
|
|
- if (tooltipItem.datasetIndex !== data.datasets.length - 1) {
|
|
|
- return label + " : " + value;
|
|
|
- }
|
|
|
- else {
|
|
|
- return [label + " : " + value, "TOTAL : " + Math.round(total)];
|
|
|
- }
|
|
|
+ // Get all the values according to each index (meter)
|
|
|
+ this.metersValues = Object.values(data["YTD"]).map(sub => sub);
|
|
|
+ let meterKeys2 = Object.keys(this.metersValues);
|
|
|
+
|
|
|
+ // Re-Initialize Json object
|
|
|
+ this.metersData = [];
|
|
|
+
|
|
|
+ // Json object construction for passing its values to the chartjs datasets according to its requirements
|
|
|
+ for (let prop in meterKeys2) {
|
|
|
+ let label = localStorage.getItem("email") == "inverlec@grupomerelec.com" ? `INVERLEC ${prop}` : this.metersKeys[prop];
|
|
|
+ this.metersData.push({"label": label, backgroundColor: this.barChartColors[prop], data: this.metersValues[prop].map(obj => obj.total_energy_kWh).reverse()});
|
|
|
+ this.barChartLabels = this.metersValues[prop].map(obj => formatDate(obj.dateMax, 'MMM','es-Es','-0600')).reverse();
|
|
|
+ }
|
|
|
+ this.chart1.destroy();
|
|
|
+ this.chart1 = undefined;
|
|
|
+ // Chart draw
|
|
|
+ this.chart1 = new Chart('canvas', {
|
|
|
+ type: 'bar',
|
|
|
+ options: {
|
|
|
+ title: {
|
|
|
+ display: true,
|
|
|
+ },
|
|
|
+ tooltips: {
|
|
|
+ mode: 'index',
|
|
|
+ callbacks: {
|
|
|
+ // Get the total of the energy produced in every point and show it in the hover tooltip
|
|
|
+ label: function (tooltipItem, data) {
|
|
|
+ var label = data.datasets[tooltipItem.datasetIndex].label || '';
|
|
|
+ var value = data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];
|
|
|
+ var total = 0;
|
|
|
+
|
|
|
+ for (var i = 0; i < data.datasets.length; i++)
|
|
|
+ total += +data.datasets[i].data[tooltipItem.index];
|
|
|
+
|
|
|
+ if (tooltipItem.datasetIndex !== data.datasets.length - 1) {
|
|
|
+ return label + " : " + value;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ return [label + " : " + value, "TOTAL : " + Math.round(total)];
|
|
|
}
|
|
|
}
|
|
|
- },
|
|
|
- responsive: true,
|
|
|
- maintainAspectRatio: false,
|
|
|
- scales: {
|
|
|
- xAxes: [{
|
|
|
- stacked: true,
|
|
|
- }],
|
|
|
- yAxes: [{
|
|
|
- stacked: true
|
|
|
- }]
|
|
|
}
|
|
|
},
|
|
|
- data: {
|
|
|
- labels: this.barChartLabels,
|
|
|
- datasets:
|
|
|
- this.metersData,
|
|
|
- },
|
|
|
- });
|
|
|
- this.chartjs = true;
|
|
|
+ responsive: true,
|
|
|
+ maintainAspectRatio: false,
|
|
|
+ scales: {
|
|
|
+ xAxes: [{
|
|
|
+ stacked: true,
|
|
|
+ }],
|
|
|
+ yAxes: [{
|
|
|
+ stacked: true
|
|
|
+ }]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ labels: this.barChartLabels,
|
|
|
+ datasets:
|
|
|
+ this.metersData,
|
|
|
+ },
|
|
|
});
|
|
|
this.chartjs = true;
|
|
|
+ });
|
|
|
+
|
|
|
+ setTimeout(()=>{
|
|
|
Swal.close();
|
|
|
- }, 2000);
|
|
|
+ }, 3200)
|
|
|
}
|
|
|
}
|