Explorar el Código

Fix transaction getting from analytics into a working state.
Change backend to not order transactions by date.
Add code to frontend to order transactions by date for analytics.
This ensure that the ordering is done by the local time of the machine.

Lee Morgan hace 5 años
padre
commit
f1b095b973

+ 0 - 1
controllers/transactionData.js

@@ -112,7 +112,6 @@ module.exports = {
                 return res.json(response);
             })
             .catch((err)=>{
-                console.log(err);
                 if(typeof(err) === "string"){
                     return res.json(err);
                 }

+ 24 - 18
views/dashboardPage/bundle.js

@@ -3184,30 +3184,36 @@ let analytics = {
                 }else{
                     this.transactionsByDate = [];
 
+                    let startOfDay = new Date(from.getTime());
+                    startOfDay.setHours(0, 0, 0, 0);
+                    let endOfDay = new Date(from.getTime());
+                    endOfDay.setDate(endOfDay.getDate() + 1);
+                    endOfDay.setHours(0, 0, 0, 0);
+                    
+                    let transactionIndex = 0;
+                    while(startOfDay <= to){
+                        let currentTransactions = [];
 
-                    let nextDay = new Date(from.getTime());
-                    nextDay.setDate(nextDay.getDate() + 1);
-                    let currentTransactions = [];
-                    for(let i = 0; i < response.length; i++){
-                        response[i].date = new Date(response[i].date);
-                        if(response[i].date >= from && response[i].date < nextDay){
+                        while(transactionIndex < response.length && new Date(response[transactionIndex].date) < endOfDay){
                             currentTransactions.push(new Transaction(
-                                response[i]._id,
-                                response[i].date,
-                                response[i].recipes,
+                                response[transactionIndex]._id,
+                                response[transactionIndex].date,
+                                response[transactionIndex].recipes,
                                 merchant
                             ));
-                        }else{
-                            this.transactionsByDate.push({
-                                date: new Date(from.getTime()),
-                                transactions: currentTransactions
-                            });
-                            from.setDate(from.getDate() + 1);
-                            nextDay.setDate(nextDay.getDate() + 1);
-                            currentTransactions = [];
+
+                            transactionIndex++;
                         }
-                    }
 
+                        let thing = {
+                            date: new Date(startOfDay.getTime()),
+                            transactions: currentTransactions
+                        };
+                        this.transactionsByDate.push(thing);
+
+                        startOfDay.setDate(startOfDay.getDate() + 1);
+                        endOfDay.setDate(endOfDay.getDate() + 1);
+                    }
                 }
             })
             .catch((err)=>{

+ 25 - 19
views/dashboardPage/js/strands/analytics.js

@@ -72,30 +72,36 @@ let analytics = {
                 }else{
                     this.transactionsByDate = [];
 
-
-                    let nextDay = new Date(from.getTime());
-                    nextDay.setDate(nextDay.getDate() + 1);
-                    let currentTransactions = [];
-                    for(let i = 0; i < response.length; i++){
-                        response[i].date = new Date(response[i].date);
-                        if(response[i].date >= from && response[i].date < nextDay){
+                    let startOfDay = new Date(from.getTime());
+                    startOfDay.setHours(0, 0, 0, 0);
+                    let endOfDay = new Date(from.getTime());
+                    endOfDay.setDate(endOfDay.getDate() + 1);
+                    endOfDay.setHours(0, 0, 0, 0);
+                    
+                    let transactionIndex = 0;
+                    while(startOfDay <= to){
+                        let currentTransactions = [];
+
+                        while(transactionIndex < response.length && new Date(response[transactionIndex].date) < endOfDay){
                             currentTransactions.push(new Transaction(
-                                response[i]._id,
-                                response[i].date,
-                                response[i].recipes,
+                                response[transactionIndex]._id,
+                                response[transactionIndex].date,
+                                response[transactionIndex].recipes,
                                 merchant
                             ));
-                        }else{
-                            this.transactionsByDate.push({
-                                date: new Date(from.getTime()),
-                                transactions: currentTransactions
-                            });
-                            from.setDate(from.getDate() + 1);
-                            nextDay.setDate(nextDay.getDate() + 1);
-                            currentTransactions = [];
+
+                            transactionIndex++;
                         }
-                    }
 
+                        let thing = {
+                            date: new Date(startOfDay.getTime()),
+                            transactions: currentTransactions
+                        };
+                        this.transactionsByDate.push(thing);
+
+                        startOfDay.setDate(startOfDay.getDate() + 1);
+                        endOfDay.setDate(endOfDay.getDate() + 1);
+                    }
                 }
             })
             .catch((err)=>{