From 87f8f8f13e90795d76cef9183089b94b36526ca7 Mon Sep 17 00:00:00 2001 From: analuizaff Date: Wed, 8 Dec 2021 17:57:54 -0300 Subject: [PATCH] sorting pluviometer data in chart according to collection date and time --- src/app/api/Ingestion/sendFormAnswer.js | 2 +- src/app/components/AssembleModalObject.js | 54 +++++++++++++++-------- 2 files changed, 37 insertions(+), 19 deletions(-) diff --git a/src/app/api/Ingestion/sendFormAnswer.js b/src/app/api/Ingestion/sendFormAnswer.js index 48383a6..79dc9ca 100644 --- a/src/app/api/Ingestion/sendFormAnswer.js +++ b/src/app/api/Ingestion/sendFormAnswer.js @@ -3,7 +3,7 @@ import appIngestion from "./appIngestion"; const endpoint = "/api/wpdAppIngestion?"; async function sendFormAnswer(ingestionObject) { - console.log(JSON.stringify(ingestionObject)); + // console.log(JSON.stringify(ingestionObject)); const response = await appIngestion.post( endpoint, diff --git a/src/app/components/AssembleModalObject.js b/src/app/components/AssembleModalObject.js index 6bc0864..2d07d29 100644 --- a/src/app/components/AssembleModalObject.js +++ b/src/app/components/AssembleModalObject.js @@ -60,11 +60,12 @@ function getLogo(name, situation) { } } -function verifymeasureDates(labels, measureDate, day) { +function verifymeasureDates(labels, measureDate, day, dt) { // console.log(measureDate); if (labels == null || !labels.find((f) => f == measureDate)) { labels.push(measureDate); day.label = measureDate; + day.date_format = dt; return true; } @@ -72,14 +73,19 @@ function verifymeasureDates(labels, measureDate, day) { } const getCurrentPluviometer = (pluvForm, userId, data, datapluv) => { - var day = { label: null, values: [] }; + var day = { label: null, date_format: null, values: [] }; var time = null; var dt = null; var measure = { rainGauge: null, dateTime: null, comment: null }; var measureDate = null; + var fieldsAnswers = null; if (pluvForm.formsanswersuserinformer == userId) { pluvForm.array_to_json.find((field) => { if (field.fieldname == "date") { + fieldsAnswers = moment( + field.fieldsanswersvalue, + "DD-MM-YYYY" + ).toObject(); measureDate = moment(field.fieldsanswersvalue, "DD-MM-YYYY").format( "DD/MM" ); @@ -93,6 +99,16 @@ const getCurrentPluviometer = (pluvForm, userId, data, datapluv) => { } }); + var data_sort = new Date( + fieldsAnswers.years, + fieldsAnswers.months, + fieldsAnswers.date, + "13", + "00", + "00", + "00" + ); + // console.log(data_sort); measure.dateTime = moment(dt + "T" + time, "DD-MM-YYYYTHH:mm").format( "DD-MM-YYYYTHH:mm" ); @@ -103,12 +119,7 @@ const getCurrentPluviometer = (pluvForm, userId, data, datapluv) => { measure.rainGauge = field.fieldsanswersvalue ? parseFloat(field.fieldsanswersvalue) : null; - if (verifymeasureDates(data.labels, measureDate, day)) { - // day.values.push( - // field.fieldsanswersvalue - // ? parseFloat(field.fieldsanswersvalue) - // : null - // ); + if (verifymeasureDates(data.labels, measureDate, day, data_sort)) { day.values.push(measure); datapluv.push(day); } else { @@ -174,8 +185,8 @@ const AssembleModalObject = async (response, name, userId, formId) => { (pluvForm) => getCurrentPluviometer(pluvForm, userId, data, datapluv) ); if (datapluv) { - datapluv.sort(function (dataPluv, dataPluvB) { - return dataPluv.label.localeCompare(dataPluvB.label); + datapluv.sort(function (a, b) { + return a.date_format - b.date_format; }); datapluv.forEach((measureDay) => { @@ -183,11 +194,17 @@ const AssembleModalObject = async (response, name, userId, formId) => { return a.dateTime.localeCompare(b.dateTime); }); }); - dtlength = datapluv.length - 1; - val_length = datapluv[dtlength].values.length - 1; + dtlength = datapluv.length > 0 ? datapluv.length - 1 : 0; + if (datapluv[dtlength]?.values) { + val_length = + datapluv[dtlength].values.length > 0 + ? datapluv[dtlength].values.length - 1 + : 0; - comments = datapluv[dtlength].values[val_length].comment; + comments = datapluv[dtlength].values[val_length].comment; + } } + console.log(datapluv); } } } else if (JSON.parse(response).array_to_json) { @@ -202,8 +219,10 @@ const AssembleModalObject = async (response, name, userId, formId) => { f.fieldsanswersdtfilling, "YYYY-MM-DDTHH:mm:ss" ).format("DD/MM"); - - measure.rainGauge = f.fieldsanswersvalue ? parseFloat(f.fieldsanswersvalue) : null; + + measure.rainGauge = f.fieldsanswersvalue + ? parseFloat(f.fieldsanswersvalue) + : null; if (verifymeasureDates(data.labels, measureDate, day)) { day.values.push(measure); @@ -212,8 +231,7 @@ const AssembleModalObject = async (response, name, userId, formId) => { } else { datapluv.forEach((d) => { if (d.label == measureDate) { - d.values.push( - measure); + d.values.push(measure); } }); } @@ -247,7 +265,7 @@ const AssembleModalObject = async (response, name, userId, formId) => { if (f.fieldname == "eventdate") { date = moment(f.fieldsanswersvalue, "DD-MM-YYYY").format( "DD/MM/YYYY" - );; + ); } if (f.fieldname == "eventtime") { time = f.fieldsanswersvalue;