Selaa lähdekoodia

feat: order item updates using array

Fernando 3 kuukautta sitten
vanhempi
sitoutus
b4a3ccbf83
3 muutettua tiedostoa jossa 32 lisäystä ja 19 poistoa
  1. 10 10
      bin/setup
  2. 12 0
      models/OrderItemModel.php
  3. 10 9
      models/ReportsModel.php

+ 10 - 10
bin/setup

@@ -20,10 +20,10 @@ class OrderItemUpdateController
     public function __invoke(ServerRequestInterface $request)
     {
         $body = json_decode((string)$request->getBody(), true) ?? [];
-
+    
         try {
             v::key('company_id', v::intType()->positive())
-              ->key('order_item_id', v::intType()->positive())
+              ->key('order_item_ids', v::arrayType()->each(v::intType()->positive()))
               ->assert($body);
         } catch (ValidationException $e) {
             return ResponseLib::sendFail(
@@ -32,14 +32,14 @@ class OrderItemUpdateController
                 "E_VALIDATE"
             )->withStatus(400);
         }
-
+    
         $companyId = (int) $body['company_id'];
-        $orderItemId = (int) $body['order_item_id'];
-
-        $updated = $this->model->updateOrderItem($orderItemId, $companyId);
-
-        return $updated
-            ? ResponseLib::sendOk(['updated' => true])
-            : ResponseLib::sendFail("Failed to Update Order Item Flag", [], "E_DATABASE")->withStatus(500);
+        $orderItemIds = $body['order_item_ids'];
+    
+        $results = $this->model->updateOrderItems($orderItemIds, $companyId);
+    
+        return ResponseLib::sendOk([
+            'updated_items' => $results
+        ]);
     }
 }

+ 12 - 0
models/OrderItemModel.php

@@ -221,4 +221,16 @@ class OrderItemModel
         }
         return false;
     }
+
+    public function updateOrderItems(array $orderItemIds, int $companyId): array
+    {
+    $results = [];
+
+    foreach ($orderItemIds as $orderItemId) {
+        $updated = $this->updateOrderItem($orderItemId, $companyId);
+        $results[$orderItemId] = $updated;
+    }
+
+    return $results;
+    }
 }

+ 10 - 9
models/ReportsModel.php

@@ -51,16 +51,17 @@ class ReportsModel
 
         // Lista de pedidos
         $sqlOrders = "
-            SELECT order_id,
-                   order_finished_at,
-                   table_id,
-                   order_name,
-                   order_flag
-            FROM `order`
+            SELECT  o.order_id,
+                    o.order_finished_at,
+                    t.table_number,
+                    o.order_name,
+                    o.order_flag
+            FROM `order` o
             NATURAL JOIN status
-            WHERE company_id = :company_id
-              AND status_status = 'Finalizada'
-            ORDER BY order_finished_at DESC
+            JOIN `table` t USING(table_id)
+            WHERE o.company_id = :company_id
+                AND status_status = 'Finalizada'
+            ORDER BY o.order_finished_at DESC
         ";
 
         $offset = 0;