Procházet zdrojové kódy

feat: added server name to kitchen order

Fernando před 4 měsíci
rodič
revize
73b93af4e3

+ 1 - 1
controllers/LoginController.php

@@ -40,7 +40,7 @@ class LoginController
             'role_id' => $user['role_id'],
             'company_id' => $user['company_id'],
             'iat' => time(),
-            'exp' => time() + 3600  // 1 hora
+            'exp' => time() + 14400  // 4 horas
         ];
         $jwt = JWT::encode($payload, $_ENV['JWT_SECRET'], 'HS256');
 

+ 1 - 1
controllers/OrderCreateController.php

@@ -28,7 +28,7 @@ class OrderCreateController
             v::key('table_id', v::intType()->positive())
              ->key('user_name', v::stringType()->notEmpty()->alnum('_'))
              ->key('company_id', v::intType()->positive())
-             ->key('order_name', v::stringType()->notEmpty()->alnum(' '))
+             ->key('order_name', v::stringType()->notEmpty()->regex('/^[\p{L}\p{N}\s\-\'\"]+$/u'))
              ->key('order_phone', v::optional(v::stringType()->notEmpty()->length(8, 20)), false)
              ->key('status_status', v::stringType()->notEmpty()->in(['Aberta', 'Finalizada', 'Cancelada']))
              ->assert($body);

+ 1 - 1
models/OrderItemModel.php

@@ -91,7 +91,7 @@ class OrderItemModel
             DELETE FROM order_item
             WHERE order_item_id = :order_item_id
               AND order_id IN (
-                  SELECT order_id FROM `order` WHERE company_id = :company_id AND order_flag = 'a'
+                  SELECT order_id FROM `order` WHERE company_id = :company_id AND order_flag IN ('a', 'p')
               )
         ");
         $executed = $stmt->execute(['order_item_id' => $orderItemId, 'company_id' => $companyId]);

+ 41 - 32
models/OrderModel.php

@@ -141,7 +141,7 @@ class OrderModel
             $stmt = $this->pdo->prepare("
                 UPDATE `order`
                 SET order_flag = 'd', order_finished_at = :order_finished_at
-                WHERE order_id = :order_id AND company_id = :company_id AND order_flag = 'a'
+                WHERE order_id = :order_id AND company_id = :company_id AND order_flag IN ('a', 'p')
             ");
 
             $executed = $stmt->execute([
@@ -156,49 +156,58 @@ class OrderModel
 
 
     public function getOrders(int $companyId, ?int $statusId = null): array
-    {
-        $sql = "SELECT * FROM `order` WHERE company_id = :company_id AND order_flag = 'a'";
-        $params = ['company_id' => $companyId];
+{
+    $sql = "SELECT * 
+            FROM `order` 
+            WHERE company_id = :company_id 
+              AND order_flag IN ('a', 'p')";
+    $params = ['company_id' => $companyId];
+
+    if ($statusId !== null) {
+        $sql .= " AND status_id = :status_id";
+        $params['status_id'] = $statusId;
+    }
 
-        if ($statusId !== null) {
-            $sql .= " AND status_id = :status_id";
-            $params['status_id'] = $statusId;
-        }
+    $stmt = $this->pdo->prepare($sql);
+    $stmt->execute($params);
+    return $stmt->fetchAll(\PDO::FETCH_ASSOC);
+}
 
-        $stmt = $this->pdo->prepare($sql);
-        $stmt->execute($params);
-        return $stmt->fetchAll(\PDO::FETCH_ASSOC);
+public function getOrdersByTable(int $tableId, int $companyId, ?int $statusId = null): array
+{
+    if (!$this->tableExists($tableId, $companyId)) {
+        error_log("Tentativa de obter pedidos de mesa inválida: table_id={$tableId}, company_id={$companyId}");
+        return [];
     }
 
-    public function getOrdersByTable(int $tableId, int $companyId, ?int $statusId = null): array
-    {
-        if (!$this->tableExists($tableId, $companyId)) {
-            error_log("Tentativa de obter pedidos de mesa inválida: table_id={$tableId}, company_id={$companyId}");
-            return [];
-        }
-
-        $sql = "SELECT * FROM `order` WHERE table_id = :table_id AND company_id = :company_id AND order_flag = 'a'";
-        $params = [
-            'table_id' => $tableId,
-            'company_id' => $companyId
-        ];
+    $sql = "SELECT * 
+            FROM `order` 
+            WHERE table_id = :table_id 
+              AND company_id = :company_id 
+              AND order_flag IN ('a', 'p')";
+    $params = [
+        'table_id' => $tableId,
+        'company_id' => $companyId
+    ];
+
+    if ($statusId !== null) {
+        $sql .= " AND status_id = :status_id";
+        $params['status_id'] = $statusId;
+    }
 
-        if ($statusId !== null) {
-            $sql .= " AND status_id = :status_id";
-            $params['status_id'] = $statusId;
-        }
+    $stmt = $this->pdo->prepare($sql);
+    $stmt->execute($params);
+    return $stmt->fetchAll(\PDO::FETCH_ASSOC);
+}
 
-        $stmt = $this->pdo->prepare($sql);
-        $stmt->execute($params);
-        return $stmt->fetchAll(\PDO::FETCH_ASSOC);
-    }
 
     public function getOrderById(int $orderId, int $companyId, bool $onlyActive = true): ?array
     {
         $sql = "SELECT * FROM `order` WHERE order_id = :order_id AND company_id = :company_id";
         if ($onlyActive) {
-            $sql .= " AND order_flag = 'a'";
+            $sql .= " AND order_flag IN ('a', 'p')";
         }
+
         $stmt = $this->pdo->prepare($sql);
         $stmt->execute(['order_id' => $orderId, 'company_id' => $companyId]);
         $result = $stmt->fetch(\PDO::FETCH_ASSOC);

+ 1 - 1
models/UserModel.php

@@ -88,7 +88,7 @@ class UserModel
 
     public function deleteUserByName(string $username, int $companyId): bool
     {
-        $stmt = $this->pdo->prepare("UPDATE user SET user_flag = 'd' WHERE user_name = :username AND company_id = :company_id AND user_flag = 'a'");
+        $stmt = $this->pdo->prepare("DELETE FROM user WHERE user_name = :username AND company_id = :company_id");
         $stmt->execute([
             'username' => $username,
             'company_id' => $companyId