瀏覽代碼

Fix order creation from spreadsheet to accurately take in the date.

Lee Morgan 5 年之前
父節點
當前提交
f6c18826a6

+ 18 - 6
controllers/orderData.js

@@ -178,6 +178,23 @@ module.exports = {
             }
         }
 
+        let spreadsheetDate = {};
+        let keys = Object.keys(workbook.Sheets.Order);
+        for(let i = 0; i < keys.length; i++){
+            if(keys[i][0] === "!"){
+                continue;
+            }
+
+            if(workbook.Sheets.Order[keys[i]].w.toLowerCase() === "date"){
+                spreadsheetDate = new Date(workbook.Sheets.Order[`${keys[i][0]}2`].w);
+                let serverOffset = new Date().getTimezoneOffset();
+                spreadsheetDate.setMinutes(spreadsheetDate.getMinutes()  - serverOffset);
+                spreadsheetDate.setMinutes(spreadsheetDate.getMinutes() + parseFloat(req.body.timeOffset));
+                break;
+            }
+        }
+
+
         const array = xlsx.utils.sheet_to_json(sheet, {
             header: 1
         });
@@ -213,17 +230,12 @@ module.exports = {
                         currentOrder = {
                             merchant: req.session.user,
                             name: array[i][locations.name],
+                            date: spreadsheetDate,
                             taxes: parseInt(array[i][locations.taxes] * 100),
                             fees: parseInt(array[i][locations.fees] * 100),
                             ingredients: []
                         }
 
-                        if(array[i][locations.date] === undefined){
-                            currentOrder.date = new Date();
-                        }else{
-                            currentOrder.date = new Date(array[i][locations.date]);
-                        }
-
                         orders.push(currentOrder);
                     }
 

二進制
uploads/5f2caaab266e959f1ad46bc264d2dc7d


+ 5 - 4
views/dashboardPage/bundle.js

@@ -1439,7 +1439,7 @@ controller = {
                 orderFilter.display(Order);
                 break;
             case "newOrder":
-                newOrder.display(Order);
+                newOrder.display();
                 break;
             case "orderCalculator":
                 orderCalculator.display();
@@ -2149,7 +2149,7 @@ let newIngredient = {
 module.exports = newIngredient;
 },{}],11:[function(require,module,exports){
 let newOrder = {
-    display: function(Order){
+    display: function(){
         document.getElementById("sidebarDiv").classList.add("sidebarWide");
         document.getElementById("newOrderIngredientList").style.display = "flex";
         document.getElementById("orderFileUpload").addEventListener("click", ()=>{controller.openModal("orderSpreadsheet")});
@@ -2172,7 +2172,7 @@ let newOrder = {
             ingredientList.appendChild(ingredient);
         }
 
-        document.getElementById("submitNewOrder").onclick = ()=>{this.submit(Order)};
+        document.getElementById("submitNewOrder").onclick = ()=>{this.submit()};
     },
 
     addIngredient: function(ingredient, element){
@@ -2198,7 +2198,7 @@ let newOrder = {
         element.style.display = "block";
     },
 
-    submit: function(Order){
+    submit: function(){
         let date = document.getElementById("newOrderDate").value;
         let taxes = document.getElementById("orderTaxes").value * 100;
         let fees = document.getElementById("orderFees").value * 100;
@@ -2300,6 +2300,7 @@ let newOrder = {
         const file = document.getElementById("spreadsheetInput").files[0];
         let data = new FormData();
         data.append("orders", file);
+        data.append("timeOffset", new Date().getTimezoneOffset());
 
         let loader = document.getElementById("loaderContainer");
         loader.style.display = "flex";

+ 1 - 1
views/dashboardPage/js/dashboard.js

@@ -133,7 +133,7 @@ controller = {
                 orderFilter.display(Order);
                 break;
             case "newOrder":
-                newOrder.display(Order);
+                newOrder.display();
                 break;
             case "orderCalculator":
                 orderCalculator.display();

+ 4 - 3
views/dashboardPage/js/sidebars/newOrder.js

@@ -1,5 +1,5 @@
 let newOrder = {
-    display: function(Order){
+    display: function(){
         document.getElementById("sidebarDiv").classList.add("sidebarWide");
         document.getElementById("newOrderIngredientList").style.display = "flex";
         document.getElementById("orderFileUpload").addEventListener("click", ()=>{controller.openModal("orderSpreadsheet")});
@@ -22,7 +22,7 @@ let newOrder = {
             ingredientList.appendChild(ingredient);
         }
 
-        document.getElementById("submitNewOrder").onclick = ()=>{this.submit(Order)};
+        document.getElementById("submitNewOrder").onclick = ()=>{this.submit()};
     },
 
     addIngredient: function(ingredient, element){
@@ -48,7 +48,7 @@ let newOrder = {
         element.style.display = "block";
     },
 
-    submit: function(Order){
+    submit: function(){
         let date = document.getElementById("newOrderDate").value;
         let taxes = document.getElementById("orderTaxes").value * 100;
         let fees = document.getElementById("orderFees").value * 100;
@@ -150,6 +150,7 @@ let newOrder = {
         const file = document.getElementById("spreadsheetInput").files[0];
         let data = new FormData();
         data.append("orders", file);
+        data.append("timeOffset", new Date().getTimezoneOffset());
 
         let loader = document.getElementById("loaderContainer");
         loader.style.display = "flex";