src/Controller/OrdineVeloceController.php line 36
<?php
namespace App\Controller;
use App\Entity\MappaCategorieArticoli;
use App\Entity\User;
use App\Model\FiltroRicerca;
use App\Model\RecuperoDati;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
class OrdineVeloceController extends AbstractController
{
/** @var ReturnImpostazioniServiceController */
private $imp;
/** @var ServiziController */
private $servizi;
/**
* OrdineVeloceController constructor.
* @param ReturnImpostazioniServiceController $imp
* @param ServiziController $servizi
*/
public function __construct(ReturnImpostazioniServiceController $imp, ServiziController $servizi)
{
$this->imp = $imp;
$this->servizi = $servizi;
}
/**
* @Route("/ordineVeloce", name="ordine_veloce")
*/
public function ordineVeloceAction(Request $request)
{
return $this->render('ordine_veloce/ordine_veloce.html.twig');
}
/**
* @Route("/ordineVeloce/cercaMappa", name="ordine_veloce_cerca_mappa", options={"expose"=true})
*/
public function ordineVeloceCercaTipoParte(Request $request)
{
$user = $this->servizi->OttieniUtenteCorrente();
$data = $request->get('data');
$codiceArticolo = $data['codice'];
$codiceMarca = $data['marca'];
$recuperoDati = new RecuperoDati($this->servizi->doctrine, $this->imp, $this->servizi);
/** @var $cliente User */
$cliente = $this->servizi->OttieniUtenteCorrente();
$clienteSelezionatoAgente = null;
$codiceCliente = "";
if($cliente){
$codiceCliente = $cliente->getCodiceCliente();
if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")){
$altriDati = $this->servizi->OttieniUtenteCorrente() ? $this->servizi->OttieniUtenteCorrente()->getAltriDati() : null;
if ($altriDati && $altriDati != null){
$json = json_decode($altriDati, true);
$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($json['codice'], $this->servizi->OttieniUtenteCorrente());
if ($anagraficaTrovata){
$clienteSelezionatoAgente = $anagraficaTrovata;
$codiceCliente = $clienteSelezionatoAgente->getCodice();
}
}
}
}
$filtroRicerca = array();
if ($codiceArticolo && $codiceArticolo != ''){
$f = new FiltroRicerca();
$f->soloSearchEngine = true;
$f->stringaSearchEngine = ('(@codice ' . $codiceArticolo . ') | ((@assArtCli_codiceAnagrafica ' . $codiceCliente . ') (@assArtCli_codice ' . $codiceArticolo . ')) ');
array_push($filtroRicerca, $f);
}
if ($codiceMarca && $codiceMarca != ''){
$f = new FiltroRicerca();
$f->colonne = array('LOWER(mappa.marca)');
$f->operatore = '=';
$f->valore = strtolower($codiceMarca);
array_push($filtroRicerca, $f);
}
$ritornoRighe = $recuperoDati->recuperaRigheShop($filtroRicerca, 0, 1, $request->getLocale(), $codiceCliente, array(), $this->servizi->OttieniUtenteCorrente(), false, false, false, true, true);
$mappa = null;
$ritorno = array();
if (count($ritornoRighe->righe) > 0) {
$mappa = $ritornoRighe->righe[0];
$servizi = $this->servizi;
$prezzo = $servizi->calcolaPrezzoNettoMappaOVariante($mappa, null);
$ritorno['id_mappa'] = $mappa->id;
$ritorno['descrizione'] = $mappa->articolo->nome;
$ritorno['marca'] = $mappa->marca;
$ritorno['tipo_parte'] = $mappa->articolo->macroCategoria;
$ritorno['disponibile'] = str_replace(".", ",", $mappa->disponibile);
$ritorno['in_arrivo'] = str_replace(".", ",", $mappa->ordiniFornitori);
$ritorno['prezzo_listino'] = str_replace(".", ",", $prezzo->prezzoLordo);
$ritorno['prezzo_netto'] = str_replace(".", ",", $prezzo->prezzoNetto);
$ritorno['numero_decimali'] = $mappa->articolo->um->numeroDecimali;
}
return new Response(json_encode($ritorno));
}
}