From d0f80d415003b2339984c372b0b6bc5cc1e29464 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Tue, 5 Mar 2024 08:43:10 -0700 Subject: [PATCH 1/3] Added Total and Average Cost --- wwwroot/js/vehicle.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/wwwroot/js/vehicle.js b/wwwroot/js/vehicle.js index 1f3ca44..580d46b 100644 --- a/wwwroot/js/vehicle.js +++ b/wwwroot/js/vehicle.js @@ -447,6 +447,7 @@ function getRecordsDeltaStats(recordIds) { } var odometerReadings = []; var dateReadings = []; + var costReadings = []; //get all of the odometer readings recordIds.map(x => { var odometerReading = parseInt($(`tr[data-rowId='${x}'] td[data-column='odometer']`).text()); @@ -457,6 +458,10 @@ function getRecordsDeltaStats(recordIds) { if (!isNaN(dateReading)) { dateReadings.push(dateReading); } + var costReading = globalParseFloat($(`tr[data-rowId='${x}'] td[data-column='cost']`).text()); + if (costReading > 0) { + costReadings.push(costReading); + } }); //get max stats var maxOdo = odometerReadings.length > 0 ? odometerReadings.reduce((a, b) => a > b ? a : b) : 0; @@ -464,14 +469,25 @@ function getRecordsDeltaStats(recordIds) { //get min stats var minOdo = odometerReadings.length > 0 ? odometerReadings.reduce((a, b) => a < b ? a : b) : 0; var minDate = dateReadings.length > 0 ? dateReadings.reduce((a, b) => a < b ? a : b) : 0; + //get sum of costs + var costSum = costReadings.length > 0 ? costReadings.reduce((a, b) => a + b) : 0; var diffOdo = maxOdo - minOdo; var diffDate = maxDate - minDate; var divisibleCount = recordIds.length - 1; var averageOdo = diffOdo > 0 ? (diffOdo / divisibleCount).toFixed(2) : 0; var averageDays = diffDate > 0 ? Math.floor((diffDate / divisibleCount) / 8.64e7) : 0; + var averageSum = costSum > 0 ? (costSum / divisibleCount).toFixed(2) : 0; + costSum = costSum.toFixed(2); Swal.fire({ title: "Record Statistics", - html: `

Average Distance Traveled between Records: ${averageOdo}


Average Days between Records: ${averageDays}

`, + html: `

Average Distance Traveled between Records: ${averageOdo}

+
+

Average Days between Records: ${averageDays}

+
+

Total Cost: ${getGlobalConfig().currencySymbol} ${costSum}

+
+

Average Cost: ${getGlobalConfig().currencySymbol} ${averageSum}

` + , icon: "info" }); } \ No newline at end of file From 04a103fdc08e9f3988b9028c424dc5ec6fecb600 Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Wed, 6 Mar 2024 07:40:18 -0700 Subject: [PATCH 2/3] column specific search --- wwwroot/js/shared.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/wwwroot/js/shared.js b/wwwroot/js/shared.js index aab07da..90d2ad8 100644 --- a/wwwroot/js/shared.js +++ b/wwwroot/js/shared.js @@ -909,6 +909,15 @@ function searchTableRows(tabName) { if (result.isConfirmed) { var rowData = $(`#${tabName} table tbody tr`); var filteredRows = $(`#${tabName} table tbody tr td:contains('${result.value.searchString}')`).parent(); + if (result.value.searchString.includes('=') && result.value.searchString.split('=').length == 2) { + //column specific search. + //get column index + var columns = $(`#${tabName} table th`).toArray().map(x => x.innerText); + var columnName = result.value.searchString.split('=')[0]; + var colSearchString = result.value.searchString.split('=')[1]; + var colIndex = columns.findIndex(x => x == columnName) + 1; + filteredRows = $(`#${tabName} table tbody tr td:nth-child(${colIndex}):contains('${colSearchString}')`).parent(); + } if (result.value.searchString.trim() == '') { rowData.removeClass('override-hide'); } else { From ebe871b82ac8d4d0aec814259da231787557095e Mon Sep 17 00:00:00 2001 From: "DESKTOP-GENO133\\IvanPlex" Date: Wed, 6 Mar 2024 07:42:46 -0700 Subject: [PATCH 3/3] reduced operations --- wwwroot/js/gasrecord.js | 10 ++++++++++ wwwroot/js/shared.js | 7 ++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/wwwroot/js/gasrecord.js b/wwwroot/js/gasrecord.js index c8af6a2..6749cc5 100644 --- a/wwwroot/js/gasrecord.js +++ b/wwwroot/js/gasrecord.js @@ -403,6 +403,16 @@ function searchGasTableRows() { if (result.isConfirmed) { var rowData = $(`#${tabName} table tbody tr`); var filteredRows = $(`#${tabName} table tbody tr td:contains('${result.value.searchString}')`).parent(); + var splitSearchString = result.value.searchString.split('='); + if (result.value.searchString.includes('=') && splitSearchString.length == 2) { + //column specific search. + //get column index + var columns = $(`#${tabName} table th`).toArray().map(x => x.innerText); + var columnName = splitSearchString[0]; + var colSearchString = splitSearchString[1]; + var colIndex = columns.findIndex(x => x == columnName) + 1; + filteredRows = $(`#${tabName} table tbody tr td:nth-child(${colIndex}):contains('${colSearchString}')`).parent(); + } if (result.value.searchString.trim() == '') { rowData.removeClass('override-hide'); } else { diff --git a/wwwroot/js/shared.js b/wwwroot/js/shared.js index 90d2ad8..2bde1c5 100644 --- a/wwwroot/js/shared.js +++ b/wwwroot/js/shared.js @@ -909,12 +909,13 @@ function searchTableRows(tabName) { if (result.isConfirmed) { var rowData = $(`#${tabName} table tbody tr`); var filteredRows = $(`#${tabName} table tbody tr td:contains('${result.value.searchString}')`).parent(); - if (result.value.searchString.includes('=') && result.value.searchString.split('=').length == 2) { + var splitSearchString = result.value.searchString.split('='); + if (result.value.searchString.includes('=') && splitSearchString.length == 2) { //column specific search. //get column index var columns = $(`#${tabName} table th`).toArray().map(x => x.innerText); - var columnName = result.value.searchString.split('=')[0]; - var colSearchString = result.value.searchString.split('=')[1]; + var columnName = splitSearchString[0]; + var colSearchString = splitSearchString[1]; var colIndex = columns.findIndex(x => x == columnName) + 1; filteredRows = $(`#${tabName} table tbody tr td:nth-child(${colIndex}):contains('${colSearchString}')`).parent(); }