* * @author Anna Larch * @author Richard Steinmetz * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Affero General Public * License along with this library. If not, see . * */ namespace OCA\Gestion\Service\Order; use OCA\Gestion\Db\OrderBdd; use OCA\Gestion\Helpers\FileExportHelpers; use Psr\Log\LoggerInterface; class OrderService { /** @var \OCA\Gestion\Db\OrderBdd */ private $orderBdd; /** @var LoggerInterface */ private $logger; public function __construct( OrderBdd $orderBdd, LoggerInterface $logger) { $this->logger = $logger; $this->orderBdd = $orderBdd; } public function getOrdersWithDetailsAsArray(){ $orders = $this->orderBdd->getOrdersWithDetails(); foreach($orders as &$order){ $currentOrderProductsReferenceAsString = ""; $currentOrderProductsReferences = []; $currentOrderProducts = $this->orderBdd->getOrderProductsByOrderId($order['id']); foreach($currentOrderProducts as $currentProduct){ $currentOrderProductsReferences[] = $currentProduct["produit_reference"]; } if(!empty($currentOrderProductsReferences)){ $currentOrderProductsReferenceAsString = implode('-',$currentOrderProductsReferences); } $order["product_references"] = $currentOrderProductsReferenceAsString; } return $orders; } public function createDefaultOrder($idNextcloud){ $this->orderBdd->createDefaultOrder($idNextcloud); } public function updateOrderDate($orderId,$date){ $this->orderBdd->updateOrderDateAndSetNewOrderNumber($orderId,$date); } public function getThanatoProductsFees(){ return $this->orderBdd->getThanatoProductDiscountList(); } public function createDefaultThanatoProductFee(){ $this->orderBdd->createDefaultThanatoProductFee(); } public function getOrderCount(){ return $this->orderBdd->getOrderCount(); } public function getThanatoProductFeeCount(){ return $this->orderBdd->getThanatoProductFeeCount(); } public function getOrderByIdWithDetails($orderId){ return $this->orderBdd->getOrderByIdWithDetails($orderId); } public function getOrderProductsById($orderId){ return $this->orderBdd->getOrderProductsByOrderId($orderId); } public function getOrderTotalAmount($orderId,$tva){ return $this->orderBdd->getOrderTotalAmount($orderId,$tva); } public function getOrderPdfData($orderId){ $orderDetails = $this->orderBdd->getOrderByIdWithDetails($orderId); if($orderDetails == null){ return null; } $orderProducts = $this->orderBdd->getOrderProductsByOrderId($orderId); $orderDetails["products"] = $orderProducts; $clientAdresses = FileExportHelpers::GetAddressAndCityFromAddress($orderDetails["client_adresse"]); $orderDetails["client_real_adress"] = $clientAdresses["address"]; $orderDetails["client_adress_city"] = $clientAdresses["city"]; return $orderDetails; } }