|
|
@@ -18,41 +18,55 @@ class ProductModel
|
|
|
{
|
|
|
$stmt = $this->pdo->prepare("SELECT * FROM product WHERE company_id = :company_id AND product_flag = 'a'");
|
|
|
$stmt->execute(['company_id' => $companyId]);
|
|
|
- return $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
|
|
+
|
|
|
+ $products = $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
|
|
+
|
|
|
+ foreach ($products as &$product) {
|
|
|
+ $product['product_is_kitchen'] = (bool) $product['product_is_kitchen'];
|
|
|
+ }
|
|
|
+
|
|
|
+ return $products;
|
|
|
}
|
|
|
|
|
|
- public function createProduct(string $name, float $price, int $categoryId, int $companyId): bool
|
|
|
+ public function createProduct(string $name, float $price, int $categoryId, int $companyId, bool $productIsKitchen): bool
|
|
|
{
|
|
|
- $stmt = $this->pdo->prepare("INSERT INTO product (product_name, product_price, category_id, company_id, product_flag)
|
|
|
- VALUES (:name, :price, :category_id, :company_id, 'a')");
|
|
|
+ $stmt = $this->pdo->prepare("INSERT INTO product (product_name, product_price, category_id, company_id, product_flag, product_is_kitchen)
|
|
|
+ VALUES (:name, :price, :category_id, :company_id, 'a', :product_is_kitchen)");
|
|
|
return $stmt->execute([
|
|
|
'name' => $name,
|
|
|
'price' => $price,
|
|
|
'category_id' => $categoryId,
|
|
|
- 'company_id' => $companyId
|
|
|
+ 'company_id' => $companyId,
|
|
|
+ 'product_is_kitchen' => $productIsKitchen ? 1 : 0
|
|
|
]);
|
|
|
}
|
|
|
|
|
|
- public function updateProduct(int $productId, int $companyId, ?string $productName = null, ?float $productPrice = null): bool
|
|
|
+ public function updateProduct(int $productId, int $companyId, ?string $productName = null, ?float $productPrice = null, ?bool $productIsKitchen = null): bool
|
|
|
{
|
|
|
$sql = "UPDATE product SET ";
|
|
|
$params = [];
|
|
|
+ $updates = [];
|
|
|
+
|
|
|
if ($productName !== null) {
|
|
|
- $sql .= "product_name = :product_name";
|
|
|
+ $updates[] = "product_name = :product_name";
|
|
|
$params['product_name'] = $productName;
|
|
|
}
|
|
|
+
|
|
|
if ($productPrice !== null) {
|
|
|
- if ($productName !== null) {
|
|
|
- $sql .= ", ";
|
|
|
- }
|
|
|
- $sql .= "product_price = :product_price";
|
|
|
+ $updates[] = "product_price = :product_price";
|
|
|
$params['product_price'] = $productPrice;
|
|
|
}
|
|
|
|
|
|
- if (empty($params)) {
|
|
|
- return false; // Nothing to update
|
|
|
+ if ($productIsKitchen !== null) {
|
|
|
+ $updates[] = "product_is_kitchen = :product_is_kitchen";
|
|
|
+ $params['product_is_kitchen'] = $productIsKitchen ? 1 : 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (empty($updates)) {
|
|
|
+ return false; // nada para atualizar
|
|
|
}
|
|
|
|
|
|
+ $sql .= implode(', ', $updates);
|
|
|
$sql .= " WHERE product_id = :product_id AND company_id = :company_id AND product_flag = 'a'";
|
|
|
$params['product_id'] = $productId;
|
|
|
$params['company_id'] = $companyId;
|
|
|
@@ -64,15 +78,14 @@ class ProductModel
|
|
|
public function deleteProduct(int $productId, int $companyId): bool
|
|
|
{
|
|
|
$stmt = $this->pdo->prepare("UPDATE product SET product_flag = 'd'
|
|
|
- WHERE product_id = :product_id AND company_id = :company_id AND product_flag = 'a'");
|
|
|
+ WHERE product_id = :product_id AND company_id = :company_id AND product_flag = 'a'");
|
|
|
return $stmt->execute(['product_id' => $productId, 'company_id' => $companyId]);
|
|
|
}
|
|
|
|
|
|
- // NOVO MÉTODO PARA DELETAR POR NOME
|
|
|
public function deleteProductByName(string $productName, int $companyId): bool
|
|
|
{
|
|
|
$stmt = $this->pdo->prepare("UPDATE product SET product_flag = 'd'
|
|
|
- WHERE product_name = :product_name AND company_id = :company_id AND product_flag = 'a'");
|
|
|
+ WHERE product_name = :product_name AND company_id = :company_id AND product_flag = 'a'");
|
|
|
return $stmt->execute(['product_name' => $productName, 'company_id' => $companyId]);
|
|
|
}
|
|
|
-}
|
|
|
+}
|