stockInWorker = $stockInWorker; } /** * @return \Symfony\Component\HttpFoundation\Response * * @Route("/_warehouse/check-app/addEan") */ public function addEanAction(Request $request) { $jsonResponse = json_decode($request->getContent()); return new JsonResponse($this->stockInWorker->addEan($jsonResponse->id, $jsonResponse->ean)); } /** * @return \Symfony\Component\HttpFoundation\Response * * @Route("/_warehouse/check-app/generateEan") */ public function generateEanAction(Request $request) { $jsonRequest = json_decode($request->getContent()); return new JsonResponse($this->stockInWorker->generateEan($jsonRequest->id)); } /** * @return \Symfony\Component\HttpFoundation\Response * * @Route("/_warehouse/check-app/getOrderCheckData") * * @throws \Exception */ public function GetOrderCheckDataAction(Request $request, OrderCheckoutWorker $orderCheckoutWorker) { $jsonResponse = json_decode($request->getContent()); $result = true; $order = null; /** @var $order \Order */ if (!$error = $orderCheckoutWorker->checkOrder($jsonResponse->id, $order)) { $data = $orderCheckoutWorker->getOrderCheckData($order->id); if ($data === false) { $data = []; $result = false; } } else { $result = false; } $packages = 1; if ($order) { $packages = $order->getData('balikobot')['packages'] ?? 1; } return new JsonResponse([ 'id' => $jsonResponse->id, 'id_order' => $order->id ?? $jsonResponse->id, 'order_no' => $order->order_no ?? '', 'packages' => $packages, 'items' => $data ?? [], 'error' => $error, 'result' => $result, ]); } /** * @return \Symfony\Component\HttpFoundation\Response * * @Route("/_warehouse/check-app/submitOrderCheckout") */ public function submitOrderCheckout(Request $request, OrderCheckoutWorker $orderCheckoutWorker) { $jsonResponse = json_decode($request->getContent()); try { if (findModule(\Modules::PRODUCTS_SERIAL_NUMBERS)) { $orderCheckoutWorker->checkoutOrderSerialNumbers($jsonResponse->items); } if ($jsonResponse->packages) { $order = \Order::createFromDbOrderNo($jsonResponse->id); $data = $order->getData('balikobot'); $data = $data ? $data : []; $data['packages'] = $jsonResponse->packages; $order->setData('balikobot', $data); } return new JsonResponse($orderCheckoutWorker->checkoutOrder($jsonResponse->id)); } catch (OrderCheckException $e) { return new JsonResponse([ 'result' => false, 'keepState' => true, 'message' => $e->getMessage(), ]); } } /** * @return \Symfony\Component\HttpFoundation\Response * * @Route("/_warehouse/check-app/getReturnCheckData") * * @throws \Exception */ public function GetReturnCheckDataAction(Request $request, ReturnCheckoutWorker $returnCheckoutWorker) { $jsonResponse = json_decode($request->getContent()); $data = $returnCheckoutWorker->getReturnCheckData($jsonResponse->id); return new JsonResponse([ 'id' => $jsonResponse->id, 'items' => $data ?? [], 'error' => null, 'result' => !empty($data), ]); } /** * @return \Symfony\Component\HttpFoundation\Response * * @Route("/_warehouse/check-app/submitReturnCheckout") */ public function submitReturnCheckout(Request $request, ReturnCheckoutWorker $returnCheckoutWorker) { $jsonResponse = json_decode($request->getContent()); try { if (findModule(\Modules::PRODUCTS_SERIAL_NUMBERS)) { $returnCheckoutWorker->checkoutReturnSerialNumbers($jsonResponse->items); } if (findModule(\Modules::PRODUCTS_BATCHES)) { $returnCheckoutWorker->checkoutReturnBatchNumbers($jsonResponse->items); } return new JsonResponse($returnCheckoutWorker->checkoutReturn($jsonResponse->id, $jsonResponse->items)); } catch (OrderCheckException $e) { return new JsonResponse([ 'result' => false, 'keepState' => true, 'message' => $e->getMessage(), ]); } } /** * @return \Symfony\Component\HttpFoundation\Response * * @Route("/_warehouse/check-app/getStockInData") * * @throws \Exception */ public function GetStockInDataAction(Request $request, StockInWorker $stockInWorker) { $jsonResponse = json_decode($request->getContent()); $stockIn = $stockInWorker->getStockIn($jsonResponse->id); if (empty($stockIn['code'])) { $result = false; $error = 'Naskladňující faktura nemá vyplněné "Číslo faktury"!'; return new JsonResponse([ 'id' => $jsonResponse->id, 'items' => [], 'result' => $result, 'error' => $error, ]); } $data = $stockInWorker->getStockInData($jsonResponse->id); $result = !empty($data); $error = null; return new JsonResponse([ 'id' => $jsonResponse->id, 'items' => $data, 'result' => $result, 'error' => $error, ]); } /** * @return \Symfony\Component\HttpFoundation\Response * * @Route("/_warehouse/check-app/submitStockIn") * * @throws \Exception */ public function submitStockInAction(Request $request, StockInWorker $stockInWorker) { $jsonResponse = json_decode($request->getContent()); try { $result = ['result' => $stockInWorker->submitStockIn($jsonResponse->id, $jsonResponse->items)]; } catch (StockInException $e) { $result = [ 'result' => false, 'message' => 'message: '.$e->getMessage(), ]; } return new JsonResponse($result); } /** * @return \Symfony\Component\HttpFoundation\Response * * @Route("/_warehouse/check-app/getReclamationSupplierCheckData") * * @throws \Exception */ public function getReclamationSupplierCheckDataAction(Request $request, ReclamationSupplierCheckoutWorker $reclamationSupplierCheckoutWorker) { $jsonResponse = json_decode($request->getContent()); $data = $reclamationSupplierCheckoutWorker->getReclamationSupplierCheckData($jsonResponse->id); return new JsonResponse([ 'id' => $jsonResponse->id, 'items' => $data ?? [], 'error' => null, 'result' => !empty($data), ]); } /** * @return \Symfony\Component\HttpFoundation\Response * * @Route("/_warehouse/check-app/submitReclamationSupplierCheckout") */ public function submitReclamationSupplierCheckout(Request $request, ReclamationSupplierCheckoutWorker $reclamationSupplierCheckoutWorker) { $jsonResponse = json_decode($request->getContent()); try { return new JsonResponse($reclamationSupplierCheckoutWorker->checkoutReclamationSupplier($jsonResponse->id, $jsonResponse->items)); } catch (OrderCheckException $e) { return new JsonResponse([ 'result' => false, 'keepState' => true, 'message' => $e->getMessage(), ]); } } }