<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use \MongoDB\Client as MongoDBClient;
use App\Entity\ImporterCSV;
use App\Entity\Product;
use App\Entity\ProdottiSearch\ProdottiSearchEngine;
use App\Entity\ProdottiSearch\Criterion\SKUCriterion;
use App\Entity\ProdottiSearch\Criterion\HSCodeCriterion;
use App\Entity\Profis\ManebiProfisXML;
use App\Entity\ManebiStats;
use App\Entity\OrderProduct;
use Dompdf\Dompdf;
/**
*
*/
class ProductController extends AdminController
{
public $importKey = 'Prodotti';
public $session = NULL;
/**
*
*/
public function manage(Request $request, ManebiStats $stats, SessionInterface $session)
{
$this->init($session);
$filters = ['prodotti-sku' => []];
$filter_params = [];
$export = false;
if($request->getMethod() == 'POST')
{
$filter_params['filter'] = $request->request->has('filter') ? $request->request->get('filter') : NULL;
$filter_params['filter-products'] = $request->request->has('filter-products') ? $request->request->get('filter-products') : NULL;
$filter_params['filter-type'] = $request->request->has('filter-type') ? $request->request->get('filter-type') : NULL;
}else{
$filter_params['filter'] = $request->query->has('filter') ? $request->query->get('filter') : NULL;
$filter_params['filter-products'] = $request->query->has('filter-products') ? $request->query->get('filter-products') : NULL;
$filter_params['filter-type'] = $request->query->has('filter-type') ? $request->query->get('filter-type') : NULL;
}
$prodottiSearchEngine = new ProdottiSearchEngine($this->getDoctrine()->getManager()->getConnection());
if($filter_params['filter'])
{
if(!empty($filter_params['filter-products']))
{
$SKUCriterion = new SKUCriterion('sku');
$_filtersSKU = $filter_params['filter-products'];
if(!empty($_filtersSKU))
{
foreach($_filtersSKU as $tag)
{
$filters['prodotti-sku'][] = $tag['tag'];
}
}
$SKUCriterion->setSKUs($filters['prodotti-sku']);
$prodottiSearchEngine->addCriterion($SKUCriterion);
}
if(!empty($filter_params['filter-type']))
{
$HSCodeCriterion = new HSCodeCriterion('empty-hscode');
$HSCodeCriterion->withoutHSCode();
$prodottiSearchEngine->addCriterion($HSCodeCriterion);
}
if($prodottiSearchEngine->search())
{
$results = $prodottiSearchEngine->getResults();
return new JsonResponse(['status' => 'OK', 'data' => $results]);
}
}
$params = [];
$params['shop'] = $this->getShop();
$params['id_shop'] = $this->session->get('id_shop');
return $this->render('prodotti.html.twig', $params);
}
/**
*
*/
public function updateHSCode(Request $request, ManebiStats $stats, SessionInterface $session, Product $product)
{
$this->init($session);
$params = [];
if($request->getMethod() == 'POST')
{
$params['sku'] = $request->request->has('sku') ? $request->request->get('sku') : NULL;
$params['hscode'] = $request->request->has('hscode') ? $request->request->get('hscode') : NULL;
$params['coo'] = $request->request->has('coo') ? $request->request->get('coo') : NULL;
}
$res = $product->updateHSCode($params['sku'], $params['hscode'], $params['coo']);
if($res)
{
}
return new JsonResponse(['status' => 'OK', 'data' => $params]);
}
}