src/Controller/OrdineVeloceController.php line 36

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\MappaCategorieArticoli;
  4. use App\Entity\User;
  5. use App\Model\FiltroRicerca;
  6. use App\Model\RecuperoDati;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class OrdineVeloceController extends AbstractController
  12. {
  13.     /** @var ReturnImpostazioniServiceController */
  14.     private $imp;
  15.     /** @var ServiziController */
  16.     private $servizi;
  17.     /**
  18.      * OrdineVeloceController constructor.
  19.      * @param ReturnImpostazioniServiceController $imp
  20.      * @param ServiziController $servizi
  21.      */
  22.     public function __construct(ReturnImpostazioniServiceController $imp, ServiziController $servizi)
  23.     {
  24.         $this->imp = $imp;
  25.         $this->servizi = $servizi;
  26.     }
  27.     /**
  28.      * @Route("/ordineVeloce", name="ordine_veloce")
  29.      */
  30.     public function ordineVeloceAction(Request $request)
  31.     {
  32.         return $this->render('ordine_veloce/ordine_veloce.html.twig');
  33.     }
  34.     /**
  35.      * @Route("/ordineVeloce/cercaMappa", name="ordine_veloce_cerca_mappa", options={"expose"=true})
  36.      */
  37.     public function ordineVeloceCercaTipoParte(Request $request)
  38.     {
  39.         $user = $this->servizi->OttieniUtenteCorrente();
  40.         $data = $request->get('data');
  41.         $codiceArticolo = $data['codice'];
  42.         $codiceMarca = $data['marca'];
  43.         $recuperoDati = new RecuperoDati($this->servizi->doctrine, $this->imp, $this->servizi);
  44.         /** @var  $cliente User */
  45.         $cliente = $this->servizi->OttieniUtenteCorrente();
  46.         $clienteSelezionatoAgente = null;
  47.         $codiceCliente = "";
  48.         if($cliente){
  49.             $codiceCliente = $cliente->getCodiceCliente();
  50.             if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")){
  51.                 $altriDati = $this->servizi->OttieniUtenteCorrente() ? $this->servizi->OttieniUtenteCorrente()->getAltriDati() : null;
  52.                 if ($altriDati && $altriDati != null){
  53.                     $json = json_decode($altriDati, true);
  54.                     $anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($json['codice'], $this->servizi->OttieniUtenteCorrente());
  55.                     if ($anagraficaTrovata){
  56.                         $clienteSelezionatoAgente = $anagraficaTrovata;
  57.                         $codiceCliente = $clienteSelezionatoAgente->getCodice();
  58.                     }
  59.                 }
  60.             }
  61.         }
  62.         $filtroRicerca = array();
  63.         if ($codiceArticolo && $codiceArticolo != ''){
  64.             $f = new FiltroRicerca();
  65.             $f->soloSearchEngine = true;
  66.             $f->stringaSearchEngine = ('(@codice ' . $codiceArticolo . ') | ((@assArtCli_codiceAnagrafica ' . $codiceCliente . ') (@assArtCli_codice ' . $codiceArticolo . ')) ');
  67.             array_push($filtroRicerca, $f);
  68.         }
  69.         if ($codiceMarca && $codiceMarca != ''){
  70.             $f = new FiltroRicerca();
  71.             $f->colonne = array('LOWER(mappa.marca)');
  72.             $f->operatore = '=';
  73.             $f->valore = strtolower($codiceMarca);
  74.             array_push($filtroRicerca, $f);
  75.         }
  76.         $ritornoRighe = $recuperoDati->recuperaRigheShop($filtroRicerca, 0, 1, $request->getLocale(), $codiceCliente, array(), $this->servizi->OttieniUtenteCorrente(), false, false, false, true, true);
  77.         $mappa = null;
  78.         $ritorno = array();
  79.         if (count($ritornoRighe->righe) > 0) {
  80.             $mappa = $ritornoRighe->righe[0];
  81.             $servizi = $this->servizi;
  82.             $prezzo = $servizi->calcolaPrezzoNettoMappaOVariante($mappa, null);
  83.             $ritorno['id_mappa'] = $mappa->id;
  84.             $ritorno['descrizione'] = $mappa->articolo->nome;
  85.             $ritorno['marca'] = $mappa->marca;
  86.             $ritorno['tipo_parte'] = $mappa->articolo->macroCategoria;
  87.             $ritorno['disponibile'] = str_replace(".", ",", $mappa->disponibile);
  88.             $ritorno['in_arrivo'] = str_replace(".", ",", $mappa->ordiniFornitori);
  89.             $ritorno['prezzo_listino'] = str_replace(".", ",", $prezzo->prezzoLordo);
  90.             $ritorno['prezzo_netto'] = str_replace(".", ",", $prezzo->prezzoNetto);
  91.             $ritorno['numero_decimali'] = $mappa->articolo->um->numeroDecimali;
  92.         }
  93.         return new Response(json_encode($ritorno));
  94.     }
  95. }