src/Controller/CarrelloController.php line 813
<?phpnamespace App\Controller;use App\Entity\Anagrafiche;use App\Entity\AnagraficheIndirizzi;use App\Entity\Articoli;use App\Entity\AssociazioneSpedizioniClienti;use App\Entity\Carrello;use App\Entity\CouponDettaglio;use App\Entity\CouponDettaglioUtilizzo;use App\Entity\Destinazioni;use App\Entity\FiltroVisualizzazioneArticoliClienti;use App\Entity\MailSecondarieUtenti;use App\Entity\MappaCategorieArticoli;use App\Entity\ModalitaPagamento;use App\Entity\ModalitaSpedizione;use App\Entity\Ordini;use App\Entity\Pagamenti;use App\Entity\RigheCarrello;use App\Entity\User;use App\Entity\UserCampiCustomTestata;use App\Entity\UserCampiCustomValori;use App\Model\Carrello\CreaRigaCarrelloValoriOpzionali;use App\Model\Carrello\FunzioniCarrello;use App\Model\Carrello\RitornoConversioneCarrelloInOrdine;use App\Model\Carrello\RitornoGenericoCarrello;use App\Model\Carrello\Validator;use App\Model\ContenitoreCategoriePerFiltri;use App\Model\Costanti;use App\Model\Entita\AlberoCategorie;use App\Model\Entita\AltriDatiUtente;use App\Model\GestioneUtenti;use App\Model\Mailer;use App\Model\RecuperoDati;use App\Model\Translating\Translating;use App\Repository\AssociazioneSpedizioniClientiRepository;use Doctrine\ORM\EntityRepository;use Doctrine\ORM\Mapping\Entity;use Psr\Log\LoggerInterface;use Symfony\Bridge\Doctrine\Form\Type\EntityType;use Symfony\Component\Form\Extension\Core\Type\SubmitType;use Symfony\Component\Form\Extension\Core\Type\TextareaType;use Symfony\Component\Form\Extension\Core\Type\TextType;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\Form\FormFactoryInterface;use Symfony\Component\HttpFoundation\RequestStack;use Symfony\Component\HttpFoundation\Session\SessionInterface;use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;use Twig\Environment;/*** Class CarrelloController* @package App\Controller*/class CarrelloController extends AbstractController{/** @var TokenStorageInterface */private $token;/** @var ServiziController */private $servizi;/** @var ReturnImpostazioniServiceController */private $imp;/** @var Translating */private $translating;/** @var Environment */private $twig;/** @var Mailer */private $mailer;/** @var SessionInterface */private $session;/** @var FormFactoryInterface */private $formFactory;/** @var LoggerInterface */private $logger;/** @var GestioneUtenti */private $gestioneUtenti;/*** CarrelloController constructor.* @param TokenStorageInterface $token* @param ServiziController $servizi* @param ReturnImpostazioniServiceController $imp* @param Translating $translating* @param Environment $twig* @param Mailer $mailer* @param SessionInterface $session* @param LoggerInterface $logger* @param GestioneUtenti $gestioneUtenti*/public function __construct(TokenStorageInterface $token, ServiziController $servizi, ReturnImpostazioniServiceController $imp, Translating $translating, Environment $twig, Mailer $mailer, RequestStack $requestStack, FormFactoryInterface $formFactory, LoggerInterface $logger, GestioneUtenti $gestioneUtenti){$this->token = $token;$this->servizi = $servizi;$this->imp = $imp;$this->translating = $translating;$this->twig = $twig;$this->mailer = $mailer;$this->session = $requestStack->getSession();$this->formFactory = $formFactory;$this->logger = $logger;$this->gestioneUtenti = $gestioneUtenti;}/*** @Route("/cart/empty", name="carrello_svuota_carrello")*/public function svuotaCarrelloAjaxAction(Request $request){$user = $this->servizi->OttieniUtenteCorrente();$secret = "";if(!$user)$secret = $request->cookies->get('secret_user');$repo = $this->servizi->doctrine->getRepository(Carrello::class);$altriDati = AltriDatiUtente::CreaDaUtente($user);if ($user) {if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")) {if ($altriDati && $altriDati->codice != ''){$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($altriDati->codice, $this->servizi->OttieniUtenteCorrente());if ($anagraficaTrovata) {$clienteSelezionatoAgente = $anagraficaTrovata;}$carrello = $repo->findOneBy(array('agente' => $this->servizi->OttieniUtenteCorrente(), 'anagrafica' => $anagraficaTrovata, 'tipoOrdine' => $altriDati->tipoOrdine != '' ? $altriDati->tipoOrdine : null));}else{$carrello = $repo->findOneBy(array('cliente' => $user, 'tipoOrdine' => $altriDati->tipoOrdine != '' ? $altriDati->tipoOrdine : null));}}else{$carrello = $repo->findOneBy(array('cliente' => $user, 'tipoOrdine' => $altriDati->tipoOrdine != '' ? $altriDati->tipoOrdine : null));}}else$carrello = $repo->findOneBy(array('secret' => $secret));$em = $this->servizi->doctrine->getManager();$em->remove($carrello);$em->flush();$this->addFlash('notice', 'Carrello svuotato con successo!');return $this->redirectToRoute('carrello');}/*** @Route("/cart/addFromExcel", name="carrello_aggiungi_da_excel", options={"expose"=true})*/public function aggiungiCodiciDaExcelAction(Request $request){$funzioniCarrello = new FunzioniCarrello($this->servizi->doctrine, $this->imp, $this->servizi);$recuperaDati = new RecuperoDati($this->servizi->doctrine, $this->imp, $this->servizi);$secret = "";/** @var User|null $agente */$agente = null;/** @var Anagrafiche|null $anagrafica */$anagrafica = null;$codiceCliente = "";/** @var \App\Model\Entita\Carrello $carrello */$carrello = null;ini_set('max_execution_time', 180);$this->servizi->doctrine->getConnection()->getConfiguration()->setSQLLogger(null);$em = $this->servizi->doctrine->getManager();$user = $this->servizi->OttieniUtenteCorrente();$errori = array();/** @var RitornoGenericoCarrello[] $ritorniGenericiCarrello */$ritorniGenericiCarrello = array();$batch_size = 100;$count_righe = 1;$row = 0;$now = new \DateTime();$altriDati = AltriDatiUtente::CreaDaUtente($user);if (!$user)$secret = $request->cookies->get('secret_user');else {$codiceCliente = $user->getCodiceCliente();if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")) {$agente = $this->servizi->OttieniUtenteCorrente();if ($altriDati && $altriDati->codice != '') {$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($altriDati->codice, $this->servizi->OttieniUtenteCorrente());if ($anagraficaTrovata) {$codiceCliente = $anagraficaTrovata->getCodice();$anagrafica = $anagraficaTrovata;}}}}/** @var $carrello \App\Model\Entita\Carrello */$carrello = $recuperaDati->recuperaDettagliCarrello($secret, $user, $request->getLocale(), $codiceCliente, $anagrafica, $agente, true, $altriDati->tipoOrdine);$split_linee = explode("\n", $request->get('lista_da_importare'));foreach ($split_linee as $riga) {if ($row == $batch_size) {$row = 0;$em->flush();$em->clear();}try {//CODICE ARTICOLO - QUANTITA - MARCA$colonne = explode("\t", $riga);if ($colonne[0] != "") {$codiceArticolo = $colonne[0];$quantita = str_replace(",", ".", $colonne[1]);$marca = null;if (count($colonne) >= 3)$marca = $colonne[2];$articolo = $this->servizi->doctrine->getRepository(Articoli::class)->findOneBy(array('codice' => $codiceArticolo));if(!$articolo){array_push($errori, "Errore riga: " . $count_righe . " articolo non trovato! Codice: " . $codiceArticolo . ' - Marca: ' . $marca);continue;}/** @var MappaCategorieArticoli $mappa */$mappa = $this->servizi->ritornaMappaCategoriaArticoliSeInserita($articolo, null, null, null, null, $marca ? $marca : null, null);if (!$mappa) {array_push($errori, "Errore riga: " . $count_righe . " mappa categoria articolo non trovato! Codice: " . $codiceArticolo . ' - Marca: ' . $marca);continue;}if($quantita <= 0){array_push($errori, "Errore riga: " . $count_righe . " La quantità deve essere maggiore di 0! Codice: " . $codiceArticolo . ' - Marca: ' . $marca);continue;}$ritornoGenericoCarrello = $funzioniCarrello->CreaRigaCarrello($mappa->getId(),'','',$quantita,$user,$secret,$agente,$anagrafica,new CreaRigaCarrelloValoriOpzionali(),$request->getLocale(),$this->servizi->doctrine->getManager());if(!$ritornoGenericoCarrello->esito){array_push($errori, "Errore riga: " . $count_righe . " Codice: " . $codiceArticolo . " - Marca: " . $marca . " -- Errore: " . $ritornoGenericoCarrello->RitornaStringaCompostaMessaggiSemplificati());}array_push($ritorniGenericiCarrello, $ritornoGenericoCarrello);}}catch (\Exception $ex){array_push($errori, "Errore riga: " . $count_righe . " Codice: " . $codiceArticolo . " - Marca: " . $marca . " -- Errore: Generico");$this->servizi->ScriviRegistroAttivita($request->getClientIp(), "", false, $ex->getTraceAsString(), $user);}$count_righe++;}$em->flush();return new JsonResponse(array('errori' => $errori));}/*** @Route("/agente/spostaCarrello/{idCarrelloOrigine}/{idAnagraficaDestinazione}", name="agente_sposta_carrello", options={"expose"=true})*/public function agenteSpostaCarrello(Request $request, $idCarrelloOrigine, $idAnagraficaDestinazione){$ritorno = array('successo' => 'SI','messaggio' => '');$carrello = $this->servizi->doctrine->getRepository(Carrello::class)->find($idCarrelloOrigine);if($carrello){$anagraficaDestinazione = $this->servizi->doctrine->getRepository(Anagrafiche::class)->find($idAnagraficaDestinazione);if($anagraficaDestinazione) {if (!$this->isGranted("ROLE_ADMIN") && $this->isGranted("ROLE_AGENTE")) {//Verifico che l'agente sia autorizzato a gestire questo carrelloif ($carrello->getAgente() != $this->servizi->OttieniUtenteCorrente() && $carrello->getCliente() != $this->servizi->OttieniUtenteCorrente()) {$ritorno['successo'] = 'NO';$ritorno['messaggio'] = "Autorizzazione negata!";return new JsonResponse($ritorno);}if(!in_array($anagraficaDestinazione->getCodiceAgente(), $this->servizi->ritornaArrayCodiciAssociatiAgenteFornitoreUtente($this->servizi->OttieniUtenteCorrente()))){$ritorno['successo'] = 'NO';$ritorno['messaggio'] = "Autorizzazione negata!";return new JsonResponse($ritorno);}}$funzioniCarrello = new FunzioniCarrello($this->servizi->doctrine, $this->imp, $this->servizi);$spostamentoCarrello = $funzioniCarrello->SpostaERicalcolaCarrello($carrello, $this->servizi->OttieniUtenteCorrente(), $anagraficaDestinazione, $this->servizi->OttieniUtenteCorrente(), $request->getLocale());if($spostamentoCarrello->esito){$ritorno['messaggio'] = 'Carrello spostato correttamente!';return new JsonResponse($ritorno);}else{$ritorno['successo'] = 'NO';$ritorno['messaggio'] = $spostamentoCarrello->RitornaStringaCompostaMessaggiSemplificati();return new JsonResponse($ritorno);}}else{$ritorno['successo'] = 'NO';$ritorno['messaggio'] = "Anagrafica con ID: " . $idAnagraficaDestinazione . ' non trovata!';return new JsonResponse($ritorno);}}else{$ritorno['successo'] = 'NO';$ritorno['messaggio'] = "Carrello con ID: " . $idCarrelloOrigine . ' non trovato!';return new JsonResponse($ritorno);}}/*** @Route("/cart/dettagliJson", name="carrello_dettagli_json", options={"expose"=true})*/public function dettagliCarrelloAjaxJson(Request $request){$user = $this->servizi->OttieniUtenteCorrente();$secret = "";/** @var User $agente */$agente = null;/** @var Anagrafiche $anagrafica */$anagrafica = null;$altriDati = AltriDatiUtente::CreaDaUtente($user);if(!$user)$secret = $request->cookies->get('secret_user');else {if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")) {$agente = $this->servizi->OttieniUtenteCorrente();if ($altriDati && $altriDati->codice != ''){$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($altriDati->codice, $this->servizi->OttieniUtenteCorrente());if ($anagraficaTrovata) {$anagrafica = $anagraficaTrovata;}}}}$repo = $this->servizi->doctrine->getRepository(RigheCarrello::class);/** @var Carrello|null $carrello */$carrello = $this->servizi->RecuperaCarrello($secret, $agente, $anagrafica, $user);$ritorno = array('imponibile' => $carrello ? $carrello->getTotale() : 0,'imposta' => $carrello ? $carrello->getTotaleImposta() : 0,'totale' => $carrello ? $carrello->getTotale() + $carrello->getTotaleImposta() : 0,);return new JsonResponse($ritorno);}/*** @Route("/cart/count", name="carrello_conta_articoli", options={"expose"=true})*/public function contaArticoliCarrelloAjaxAction(Request $request){$user = $this->servizi->OttieniUtenteCorrente();$secret = "";/** @var User $agente */$agente = null;/** @var Anagrafiche $anagrafica */$anagrafica = null;$altriDati = AltriDatiUtente::CreaDaUtente($user);if(!$user)$secret = $request->cookies->get('secret_user');else {if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")) {$agente = $this->servizi->OttieniUtenteCorrente();if ($altriDati && $altriDati->codice != ''){$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($altriDati->codice, $this->servizi->OttieniUtenteCorrente());if ($anagraficaTrovata) {$anagrafica = $anagraficaTrovata;}}}}$repo = $this->servizi->doctrine->getRepository(RigheCarrello::class);if ($user) {$queryBuilder = $repo->createQueryBuilder('righe_carrello')->leftJoin('righe_carrello.carrello', 'carrello')->select('SUM(righe_carrello.quantita), carrello.id');if ($agente && $anagrafica){$queryBuilder = $queryBuilder->where('carrello.agente = :ag')->setParameter('ag', $agente)->andWhere('carrello.anagrafica = :ana')->setParameter('ana', $anagrafica);} else{$queryBuilder = $queryBuilder->where('carrello.cliente = :cliente')->setParameter('cliente', $user)->andWhere('carrello.anagrafica IS NULL');}if($altriDati && $altriDati->tipoOrdine != ''){$queryBuilder = $queryBuilder->andWhere('carrello.tipoOrdine = :tipo')->setParameter('tipo', $altriDati->tipoOrdine);}}else{$queryBuilder = $repo->createQueryBuilder('righe_carrello')->leftJoin('righe_carrello.carrello', 'carrello')->select('SUM(righe_carrello.quantita), carrello.id')->where('carrello.secret = :secret')->setParameter('secret', $secret);}$riga = $queryBuilder->groupBy('carrello.id')->getQuery()->getResult();$ritorno = array('count' => 0,'idCarrello' => 0);if(count($riga) > 0) {$riga = $riga[0];$ritorno = array('count' => round($riga["1"], 0),'idCarrello' => $riga["id"]);}return new JsonResponse($ritorno);}/*** @Route("/cart/deleteRow/{idRiga}/{ajax}", name="carrello_elimina_riga", defaults={"ajax" = 0}, options={"expose"=true})*/public function eliminaRigaiCarrelloAjaxAction(Request $request, $idRiga, $ajax = 0){$user = $this->servizi->OttieniUtenteCorrente();$secret = "";/** @var User|null $agente */$agente = null;/** @var Anagrafiche|null $anagrafica */$anagrafica = null;$altriDati = AltriDatiUtente::CreaDaUtente($user);if(!$user)$secret = $request->cookies->get('secret_user');else {if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")) {$agente = $this->servizi->OttieniUtenteCorrente();if ($altriDati && $altriDati->codice != ''){$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($altriDati->codice, $this->servizi->OttieniUtenteCorrente());if ($anagraficaTrovata) {$anagrafica = $anagraficaTrovata;}}}}$repo = $this->servizi->doctrine->getRepository(RigheCarrello::class);if ($user) {/** @var $queryBuilder RigheCarrello */$queryBuilder = $repo->createQueryBuilder('righe_carrello')->leftJoin('righe_carrello.carrello', 'carrello');if ($agente && $anagrafica){$queryBuilder = $queryBuilder->where('carrello.agente = :ag')->setParameter('ag', $agente)->andWhere('carrello.anagrafica = :ana')->setParameter('ana', $anagrafica)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga);} else{$queryBuilder = $queryBuilder->where('carrello.cliente = :cliente')->setParameter('cliente', $user)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga)->andWhere('carrello.anagrafica IS NULL');}if($altriDati && $altriDati->tipoOrdine != ''){$queryBuilder = $queryBuilder->andWhere('carrello.tipoOrdine = :tipo')->setParameter('tipo', $altriDati->tipoOrdine);}}else{/** @var $queryBuilder RigheCarrello */$queryBuilder = $repo->createQueryBuilder('righe_carrello')->leftJoin('righe_carrello.carrello', 'carrello')->where('carrello.secret = :secret')->setParameter('secret', $secret)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga);}$funzioniCarrello = new FunzioniCarrello($this->servizi->doctrine, $this->imp, $this->servizi);$ritornoGenericoCarrello = $funzioniCarrello->ModificaOEliminaRiga($queryBuilder->getQuery()->getSingleResult(), true);if ($ajax){return new Response("");}if ($ritornoGenericoCarrello->esito){$this->addFlash('notice','Riga eliminata');}else{$this->addFlash('error',$ritornoGenericoCarrello->RitornaStringaCompostaMessaggiSemplificati());}return $this->redirectToRoute('carrello');}/*** @Route("/admin/carrello/elimina/{id}", name="elimina_carrello")*/public function deleteAction(Request $request, $id){$em = $this->servizi->doctrine->getManager();$prom = $em->getRepository(Carrello::class)->find($id);if ($prom) {$sql = "SET FOREIGN_KEY_CHECKS=0;DELETE FROM righe_carrello WHERE carrello_id = ?;DELETE FROM carrello WHERE id = ?;SET FOREIGN_KEY_CHECKS=1";$query = explode(';', $sql);foreach ($query as $item){$conn = $this->servizi->doctrine->getConnection();$stmt = $conn->prepare($item);$stmt->bindValue(1, $id);$stmt->execute();}$em->remove($prom);$em->flush();$this->addFlash('notice','Carrello eliminato');return $this->redirectToRoute('lista_carrelli');}else{$this->addFlash('error',"Carrello con ID: " . $id . " inesistente!");return $this->redirect($this->generateUrl('lista_carrelli'));}}/*** @Route("/cart/editRowNote/{idRiga}/{aziendale}", name="carrello_modifica_nota_riga", defaults={"aziendale" = "0"}, options={"expose"=true})*/public function modificaNotaRigaCarrelloAjaxAction(Request $request, $idRiga, $aziendale = '0'){$user = $this->servizi->OttieniUtenteCorrente();/** @var User|null $agente */$agente = null;/** @var Anagrafiche|null $anagrafica */$anagrafica = null;$altriDati = AltriDatiUtente::CreaDaUtente($user);$secret = "";if(!$user)$secret = $request->cookies->get('secret_user');else {if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")) {$agente = $this->servizi->OttieniUtenteCorrente();if ($altriDati && $altriDati->codice != ''){$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($altriDati->codice, $this->servizi->OttieniUtenteCorrente());if ($anagraficaTrovata) {$anagrafica = $anagraficaTrovata;}}}}$repo = $this->servizi->doctrine->getRepository(RigheCarrello::class);/** @var $queryBuilder RigheCarrello*/if ($user) {$queryBuilder = $repo->createQueryBuilder('righe_carrello')->leftJoin('righe_carrello.carrello', 'carrello');if ($agente && $anagrafica){$queryBuilder = $queryBuilder->where('carrello.agente = :ag')->setParameter('ag', $agente)->andWhere('carrello.anagrafica = :ana')->setParameter('ana', $anagrafica)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga);} else {$queryBuilder = $queryBuilder->where('carrello.cliente = :cliente')->setParameter('cliente', $user)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga)->andWhere('carrello.anagrafica IS NULL');}if($altriDati && $altriDati->tipoOrdine != ''){$queryBuilder = $queryBuilder->andWhere('carrello.tipoOrdine = :tipo')->setParameter('tipo', $altriDati->tipoOrdine);}$queryBuilder = $queryBuilder->getQuery()->getResult();}else{$queryBuilder = $repo->createQueryBuilder('righe_carrello')->leftJoin('righe_carrello.carrello', 'carrello')->where('carrello.secret = :secret')->setParameter('secret', $secret)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga)->getQuery()->getResult();}$data = $request->get('data');if (count($queryBuilder) > 0){$queryBuilder = $queryBuilder[0];$consentiModificaNota = true;if ($queryBuilder->getTipologiaPreimpostata()){if (!$queryBuilder->getTipologiaPreimpostata()->getConsentiModificaNota())$consentiModificaNota = false;}if ($consentiModificaNota) {if($aziendale != '1') {$queryBuilder->setNota($data['nota']);} else {$queryBuilder->setNotaAziendale($data['nota']);}$em = $this->servizi->doctrine->getManager();$em->persist($queryBuilder);$em->flush();}}return new Response("");}/*** @Route("/cart/editDataConsegna/{idRiga}", name="carrello_modifica_data_consegna_riga", options={"expose"=true})*/public function modificaDataConsegnaRigaCarrelloAjaxAction(Request $request, $idRiga){$user = $this->servizi->OttieniUtenteCorrente();/** @var User|null $agente */$agente = null;/** @var Anagrafiche|null $anagrafica */$anagrafica = null;$altriDati = AltriDatiUtente::CreaDaUtente($user);$secret = "";if(!$user)$secret = $request->cookies->get('secret_user');else {if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")) {$agente = $this->servizi->OttieniUtenteCorrente();if ($altriDati && $altriDati->codice != ''){$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($altriDati->codice, $this->servizi->OttieniUtenteCorrente());if ($anagraficaTrovata) {$anagrafica = $anagraficaTrovata;}}}}$repo = $this->servizi->doctrine->getRepository(RigheCarrello::class);/** @var $queryBuilder RigheCarrello*/if ($user) {$queryBuilder = $repo->createQueryBuilder('righe_carrello')->leftJoin('righe_carrello.carrello', 'carrello');if ($agente && $anagrafica){$queryBuilder = $queryBuilder->where('carrello.agente = :ag')->setParameter('ag', $agente)->andWhere('carrello.anagrafica = :ana')->setParameter('ana', $anagrafica)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga);} else{$queryBuilder = $queryBuilder->where('carrello.cliente = :cliente')->setParameter('cliente', $user)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga)->andWhere('carrello.anagrafica = :ana')->setParameter('ana', null);}if($altriDati && $altriDati->tipoOrdine != ''){$queryBuilder = $queryBuilder->andWhere('carrello.tipoOrdine = :tipo')->setParameter('tipo', $altriDati->tipoOrdine);}$queryBuilder = $queryBuilder->getQuery()->getResult();}else{$queryBuilder = $repo->createQueryBuilder('righe_carrello')->leftJoin('righe_carrello.carrello', 'carrello')->where('carrello.secret = :secret')->setParameter('secret', $secret)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga)->getQuery()->getResult();}$data = $request->get('data');if (count($queryBuilder) > 0) {$queryBuilder = $queryBuilder[0];$queryBuilder->setDataConsegna($data['data-consegna'] != '' ? \DateTime::createFromFormat("d/m/Y", $data['data-consegna']) : null);$em = $this->servizi->doctrine->getManager();$em->persist($queryBuilder);$em->flush();}return new Response("");}/*** @Route("/cart/editRowQuantity/{idRiga}", name="carrello_modifica_qta_riga", options={"expose"=true})*/public function modificaQtaRigaCarrelloAjaxAction(Request $request, $idRiga){$user = $this->servizi->OttieniUtenteCorrente();$secret = "";/** @var User|null $agente */$agente = null;/** @var Anagrafiche|null $anagrafica */$anagrafica = null;$altriDati = AltriDatiUtente::CreaDaUtente($user);if(!$user)$secret = $request->cookies->get('secret_user');else {if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")) {$agente = $this->servizi->OttieniUtenteCorrente();if ($altriDati && $altriDati->codice != ''){$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($altriDati->codice, $this->servizi->OttieniUtenteCorrente());if ($anagraficaTrovata) {$anagrafica = $anagraficaTrovata;}}}}$repo = $this->servizi->doctrine->getRepository(RigheCarrello::class);$funzioniCarrello = new FunzioniCarrello($this->servizi->doctrine, $this->imp, $this->servizi);/** @var $queryBuilder RigheCarrello*/if ($user) {$queryBuilder = $repo->createQueryBuilder('righe_carrello')->leftJoin('righe_carrello.carrello', 'carrello');if ($agente && $anagrafica){$queryBuilder = $queryBuilder->where('carrello.agente = :ag')->setParameter('ag', $agente)->andWhere('carrello.anagrafica = :ana')->setParameter('ana', $anagrafica)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga);}else if ($agente){$queryBuilder = $queryBuilder->where('carrello.agente = :ag')->setParameter('ag', $agente)->andWhere('carrello.cliente = :cliente')->setParameter('cliente', $user)->andWhere('carrello.anagrafica IS NULL')->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga);}else{$queryBuilder = $queryBuilder->where('carrello.cliente = :cliente')->setParameter('cliente', $user)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga)->andWhere('carrello.anagrafica IS NULL');}if($altriDati && $altriDati->tipoOrdine != ''){$queryBuilder = $queryBuilder->andWhere('carrello.tipoOrdine = :tipo')->setParameter('tipo', $altriDati->tipoOrdine);}$queryBuilder = $queryBuilder->getQuery()->getSingleResult();}else{$queryBuilder = $repo->createQueryBuilder('righe_carrello')->leftJoin('righe_carrello.carrello', 'carrello')->where('carrello.secret = :secret')->setParameter('secret', $secret)->andWhere('righe_carrello.id = :idRiga')->setParameter('idRiga', $idRiga)->getQuery()->getSingleResult();}$data = $request->get('data');$qtaMod = $data['quantita'];if ($queryBuilder) {$queryBuilder->setQuantita($qtaMod);if ($queryBuilder->getTipologiaPreimpostata()) {$qtaMod = $qtaMod * $queryBuilder->getTipologiaPreimpostata()->getFattoreMoltiplicazione();$queryBuilder->setQuantita($qtaMod);if ($queryBuilder->getTipologiaPreimpostata()->getInserisciQtaAutomatica())$queryBuilder->setNota($data['quantita'] . " PZ " . $queryBuilder->getTipologiaPreimpostata()->getNotaEsportazioneRiga());else$queryBuilder->setNota($queryBuilder->getTipologiaPreimpostata()->getNotaEsportazioneRiga());}$queryBuilder->setTotaleRiga($queryBuilder->getNettoCad() * $queryBuilder->getQuantita());$queryBuilder->setTotaleRigaLordo($queryBuilder->getLordoCad() * $queryBuilder->getQuantita());$queryBuilder->setTotaleImposta($this->servizi->calcolaImpostaSuImporto($queryBuilder->getTotaleRiga(), $queryBuilder->getAliquotaIva()));$ritorno = $funzioniCarrello->ModificaOEliminaRiga($queryBuilder, false, false);$errore = "";if (!$ritorno->esito){foreach ($ritorno->messaggiSemplificati as $msg){$errore .= ($msg . "\n");}}$carrAggiornato = $this->servizi->doctrine->getRepository(Carrello::class)->find($queryBuilder->getCarrello()->getId());return new JsonResponse(array('importoCarrello' => round($carrAggiornato->getTotale(), 2),'impostaCarrello' => round($carrAggiornato->getTotaleImposta(), 2),'totaleCarrello' => round($carrAggiornato->getTotale() + $carrAggiornato->getTotaleImposta(), 2),'errore' => $errore));}else{return new JsonResponse(array('importoCarrello' => '0','impostaCarrello' => '0','totaleCarrello' => '0','errore' => "PERMESSO_NEGATO"));}}/*** @Route("/cart", name="carrello")*/public function mostraCarrello(Request $request){/** @var User $user */$user = $this->servizi->OttieniUtenteCorrente();$recuperaDati = new RecuperoDati($this->servizi->doctrine, $this->imp, $this->servizi);$secret = "";/** @var User|null $agente */$agente = null;/** @var Anagrafiche|null $anagrafica */$anagrafica = null;$codiceCliente = "";/** @var \App\Model\Entita\Carrello $carrello */$carrello = null;$traduci = $this->translating;$traduci->CaricaTraduzioniDaFamiglie(array("carrello", "mail_nuovo_ordine"), $request->getLocale());$filtroComune = $this->imp->ritornaImpostazioneDaNome('FiltroVisualizzazioneArticoloPerShopComune');// FILTRO VISUALIZZAZIONE ARTICOLI CLIENTI$filtroRiferimento = null;if ($user){if ($user->getFiltroVisualizzazioneArticoliClienti()) {if ($user->getFiltroVisualizzazioneArticoliClienti()->getElencoCategorie() != '')$filtroRiferimento = $user->getFiltroVisualizzazioneArticoliClienti();}}else if ($filtroComune != ''){$ffl = $this->servizi->doctrine->getRepository(FiltroVisualizzazioneArticoliClienti::class)->find($filtroComune);if ($ffl && $ffl->getElencoCategorie() != '')$filtroRiferimento = $ffl;}$filtro = new ContenitoreCategoriePerFiltri();/** @var $categorie AlberoCategorie[] */$listaCategorie = $recuperaDati->recuperaAlberoCategorie($filtro, $request->getLocale(), $filtroRiferimento);$listaCategorieChiaviParent = array();foreach ($listaCategorie as $lc){if($lc->parent){$_lc_id = $lc->parent->id;if (key_exists($_lc_id, $listaCategorieChiaviParent)){array_push($listaCategorieChiaviParent[$_lc_id], $lc);}else{$listaCategorieChiaviParent[$_lc_id] = array($lc);}}}$altriDati = AltriDatiUtente::CreaDaUtente($user);if(!$user)$secret = $request->cookies->get('secret_user');else {$codiceCliente = $user->getCodiceCliente();if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")) {$agente = $this->servizi->OttieniUtenteCorrente();if ($altriDati && $altriDati->codice != ''){$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($altriDati->codice, $this->servizi->OttieniUtenteCorrente());if ($anagraficaTrovata) {$codiceCliente = $anagraficaTrovata->getCodice();$anagrafica = $anagraficaTrovata;}}}}/** @var $carrello \App\Model\Entita\Carrello */$carrello = $recuperaDati->recuperaDettagliCarrello($secret, $user, $request->getLocale(), $codiceCliente, $anagrafica, $agente, true, $altriDati ? $altriDati->tipoOrdine : null);/** @var $destinazioni Destinazioni[] */$destinazioni = $this->servizi->doctrine->getRepository(Destinazioni::class)->findBy(array('azienda' => $user));/** @var $modalitaPagamento ModalitaPagamento[] */$modalitaPagamento = $this->servizi->doctrine->getRepository(ModalitaPagamento::class)->findAll();/** @var $associazioneSpedizioneConsegna AssociazioneSpedizioniClienti[] */$associazioneSpedizioneConsegna = $this->servizi->doctrine->getRepository(AssociazioneSpedizioniClienti::class)->findBy(array('azienda' => $user));/** @var $modalitaSpedizione ModalitaSpedizione[] */$modalitaSpedizione = $this->servizi->doctrine->getRepository(ModalitaSpedizione::class)->findAll();if(!$carrello || $carrello->id == '' || count($carrello->righe) <= 0 ){$this->addFlash('error',$traduci->OttieniElementoDizionario('carrello_errore_vuoto', 'carrello')->valoreUscita);return $this->redirectToRoute('home_prodotti');}$abilitaGestioneCoupon = $this->imp->ritornaImpostazioneDaNome("AbilitaUtilizzoCoupon");$parametriLayout = array(Costanti::T_CARRELLO => $carrello,Costanti::T_RIGHE_CARRELLO => $carrello->righe,'destinazioni' => $destinazioni,'anagrafica' => $anagrafica,'modalitaPagamento' => $modalitaPagamento,'associazioneSpedizioneConsegna' => $associazioneSpedizioneConsegna,'modalitaSpedizione' => $modalitaSpedizione,Costanti::T_LISTA_CATEGORIE => $listaCategorie,Costanti::T_LISTA_CATEGORIE_CHIAVI_PARENT => $listaCategorieChiaviParent,Costanti::ID_MODALITA_PAGAMENTO_SELEZIONATA => ($carrello->modalitaPagamento ? $carrello->modalitaPagamento->id : ''),Costanti::ID_MODALITA_SPEDIZIONE_SELEZIONATA => ($carrello->modalitaSpedizione ? $carrello->modalitaSpedizione->id : ''),Costanti::MPSC_RADICE_FORM => null);if (!$user || $user->getUtenteComune() ){$formSpedizionePagamento = $this->formFactory->createNamedBuilder(Costanti::MPSC_RADICE_FORM)->add(Costanti::IO_MODALITA_SPEDIZIONE, EntityType::class, array('required' => false, 'class' => 'App\Entity\ModalitaSpedizione', 'choice_label' => function ($modalita) {return $modalita->getTestoDescrittivo();}, 'label' => $traduci->OttieniElementoDizionario("carrello_modalita_spedizione", "carrello")->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::IO_MODALITA_PAGAMENTO, EntityType::class, array('required' => false, 'class' => 'App\Entity\ModalitaPagamento', 'choice_label' => function ($modalita) {return $modalita->getTestoDescrittivo();}, 'label' => $traduci->OttieniElementoDizionario("carrello_modalita_pagamento", "carrello")->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::MPSC_AGGIORNA_ORDINE, SubmitType::class, array('label' => $traduci->OttieniElementoDizionario("carrello_aggiorna", "carrello")->valoreUscita, 'attr' => array('class' => 'form-inline btn btn-sm btn-success', 'style' => 'margin-top:5px;', 'autocomplete' => 'off')))->getForm();$formSpedizionePagamento->handleRequest($request);if($formSpedizionePagamento->isSubmitted() && $formSpedizionePagamento->isValid()) {$crl = $this->servizi->RecuperaCarrello($secret, $agente, $anagrafica, $user);if($formSpedizionePagamento[Costanti::IO_MODALITA_SPEDIZIONE]->getData()){$crl->setModalitaSpedizione($formSpedizionePagamento[Costanti::IO_MODALITA_SPEDIZIONE]->getData());}if($formSpedizionePagamento[Costanti::IO_MODALITA_PAGAMENTO]->getData()){$crl->setModalitaPagamento($formSpedizionePagamento[Costanti::IO_MODALITA_PAGAMENTO]->getData());}$em = $this->servizi->doctrine->getManager();$em->persist($crl);$em->flush();$funzioniCarrello = new FunzioniCarrello($this->servizi->doctrine, $this->imp, $this->servizi);$funzioniCarrello->AggiornaTotaleCarrello($crl->getId());$carrello = $recuperaDati->recuperaDettagliCarrello($secret, $user, $request->getLocale(), $codiceCliente, $anagrafica, $agente);$parametriLayout[Costanti::T_CARRELLO] = $carrello;$parametriLayout[Costanti::ID_MODALITA_PAGAMENTO_SELEZIONATA] = ($carrello->modalitaPagamento ? $carrello->modalitaPagamento->id : '');$parametriLayout[Costanti::ID_MODALITA_SPEDIZIONE_SELEZIONATA] = ($carrello->modalitaSpedizione ? $carrello->modalitaSpedizione->id : '');}$parametriLayout[Costanti::MPSC_RADICE_FORM] = $formSpedizionePagamento->createView();}if ($abilitaGestioneCoupon == '1') {$couponForm = $this->formFactory->createNamedBuilder(Costanti::CC_RADICE_FORM)->add(Costanti::CC_CODICE_COUPON, TextType::class, array('required' => true, 'label' => "Codice coupon", 'attr' => array('class' => "form-control input-sm", 'autocomplete' => 'off', 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::CC_APPLICA, SubmitType::class, array('label' => "Applica", 'attr' => array('class' => 'form-inline btn btn-sm btn-success', 'style' => 'margin-top:5px;')))->getForm();$couponForm->handleRequest($request);if($couponForm->isSubmitted() && $couponForm->isValid()){/** @var $coupon CouponDettaglio */$coupon = $this->servizi->doctrine->getRepository(CouponDettaglio::class)->findOneBy(array('codice' => $couponForm[Costanti::CC_CODICE_COUPON]->getData()));if ($coupon) {$ritornoValiditaCoupon = $this->servizi->verificaValiditaCoupon($coupon, $carrello);if ($ritornoValiditaCoupon->esito) {$em = $this->servizi->doctrine->getManager();$crl = $carrello->RitornaEntitaDoctrine($this->servizi->doctrine);$utilizzoCoupon = new CouponDettaglioUtilizzo();$utilizzoCoupon->setDettaglioCoupon($coupon);$utilizzoCoupon->setDataUtilizzo(new \DateTime());$utilizzoCoupon->setAgentUtilizzatore($request->headers->get('User-Agent'));$utilizzoCoupon->setLocaleUtilizzatore($request->getLocale());$utilizzoCoupon->setIpUtilizzatore($request->getClientIp());$utilizzoCoupon->setOrdine(null);$utilizzoCoupon->setDataModifica(new \DateTime());$utilizzoCoupon->setDataCreazione(new \DateTime());$utilizzoCoupon->setUtenteModifica($this->servizi->OttieniUtenteCorrente());$em->persist($utilizzoCoupon);$crl->setCouponDettaglioUtilizzo($utilizzoCoupon);$em->persist($crl);$em->flush();$fnzCarrello = new FunzioniCarrello($this->servizi->doctrine, $this->imp, $this->servizi);$fnzCarrello->AggiornaTotaleCarrello($crl->getId());$this->addFlash('notice','Coupon registrato!');} else {$this->addFlash('error',$ritornoValiditaCoupon->messaggio);}} else {$this->addFlash('error','Coupon con codice ' . $couponForm[Costanti::CC_CODICE_COUPON]->getData() . " inesistente");}}$parametriLayout[Costanti::CC_RADICE_FORM] = $couponForm->createView();}return $this->render('ZZ_front_end/carrello/carrello.html.twig', $parametriLayout);}/*** @Route("/shopCM/cart/add/{codice}", name="shopcm_carrello_aggiungi", requirements={"codice"=".+"})*/public function aggiungiCarrelloActionShopComune(Request $request, $codice){$qta = $request->get('qta');$idMappa = $request->get('id-mappa');$idVariante = $request->get('id-variante');$idListaTipologiaPreimpostata = $request->get('id-lista-tipologia-preimpostata', '');$traduci = $this->translating;$traduci->CaricaTraduzioniDaFamiglia('carrello', $request->getLocale());if ($qta > 0 && ($idMappa != '' || $idVariante != '')){if ($idVariante != '' && $idMappa == ''){$variante = $this->servizi->doctrine->getRepository(Varianti::class)->find($idVariante);if ($variante){$idMappa = $variante->getMappa()->getId();}}$lista = array(array('idMappaArticoli' => $idMappa,'idVariante' => $idVariante,'qta' => $qta,'idListaTipologiePreimpostate' => $idListaTipologiaPreimpostata));$request->attributes->set('lista', $lista);/** @var RitornoGenericoCarrello[] $ritorno */$ritorno = $this->aggiungiCarrelloAction($request, true);if (count($ritorno) > 0){$primo = $ritorno[0];if ($primo->esito){$this->addFlash('notice',$traduci->OttieniElementoDizionario('carrello_articolo_aggiunto', 'carrello')->valoreUscita);}else{$this->addFlash('error',$primo->RitornaStringaCompostaMessaggiSemplificati());}}}else{$this->addFlash('error',"Parametri mancanti!");$this->logger->error("Parametri mancanti alla chiamata: '" . $request->getBaseUrl() . $request->getQueryString() . "' . Parametri necessari: qta - id-mappa - id-variante");}return $this->redirect($this->servizi->getRefererRoute($request));}/*** @Route("/shopCM/cart/multipleAdd", name="shopcm_carrello_aggiungi_multiplo")*/public function aggiungiCarrelloShopCmMultiplo(Request $request){$traduci = $this->translating;$traduci->CaricaTraduzioniDaFamiglia('carrello', $request->getLocale());$field = $request->request->all();foreach (array_keys($field) as $key) {$item = $field[$key];//Ipotesi campo <input name="form-ord_idVar" value="">if (strpos($key, 'form-ord') !== false) { //Verifico se la variabile fa parte di quelle da analizzare$idVariante = (explode('_', $key))[1];$qta = $item;if ($qta > 0 && $idVariante != '') {$variante = $this->servizi->doctrine->getRepository(Varianti::class)->find($idVariante);if ($variante) {$idMappa = $variante->getMappa()->getId();}$lista = array(array('idMappaArticoli' => $idMappa,'idVariante' => $idVariante,'qta' => $qta,'idListaTipologiePreimpostate' => ''));$request->attributes->set('lista', $lista);/** @var RitornoGenericoCarrello[] $ritorno */$ritorno = $this->aggiungiCarrelloAction($request, true);if (count($ritorno) > 0) {$primo = $ritorno[0];if ($primo->esito) {$this->addFlash('notice',$traduci->OttieniElementoDizionario('carrello_articolo_aggiunto', 'carrello')->valoreUscita);} else {$this->addFlash('error',$primo->RitornaStringaCompostaMessaggiSemplificati());}}}}}return $this->redirect($this->servizi->getRefererRoute($request));}/*** @Route("/cart/fast/add/{codice}/{qta}", name="carrello_fast_aggiungi", defaults={"qta"="1"})*/public function aggiungiFastCarrelloAction(Request $request, $codice, $qta = 1){/** @var MappaCategorieArticoli|null $mappa */$mappa = null;$ris = $this->servizi->doctrine->getRepository(MappaCategorieArticoli::class)->createQueryBuilder('mappa')->leftJoin('mappa.articolo', 'articolo')->where('articolo.codice = :cod')->setParameter('cod', $codice)->setMaxResults(1)->getQuery()->getResult();if(count($ris) > 0){/** @var MappaCategorieArticoli $mappa */$mappa = $ris[0];$arr = [['idMappaArticoli' => $mappa->getId(),'idVariante' => '','idListaTipologiePreimpostate' => '','qta' => $qta]];$request->attributes->set('lista', $arr);/** @var RitornoGenericoCarrello[] $ritorniCarrrello */$ritorniCarrrello = $this->aggiungiCarrelloAction($request, true);$procedi = true;$mess = '';foreach ($ritorniCarrrello as $item){if($procedi && !$item->esito){$procedi = false;$mess = implode(' ', $item->messaggiSemplificati);}}if($procedi) {$this->addFlash('info', 'Articolo con codice: ' . $codice . ' aggiunto al carrello!');}else{$this->addFlash('error', 'Errore aggiunta articolo con codice: ' . $codice . ': ' . $mess);}return $this->redirectToRoute('carrello');}else{$this->addFlash('error', 'Articolo con codice: ' . $codice . ' non trovato!');return $this->redirectToRoute('homepage');}}/*** @Route("/cart/add", name="carrello_aggiungi", options={"expose"=true})*/public function aggiungiCarrelloAction(Request $request, $ritornoArray = false){$lista = $request->get('lista');$user = $this->servizi->OttieniUtenteCorrente();$anagraficaTrovata = null;$agente = null;$secret = "";$altriDati = AltriDatiUtente::CreaDaUtente($user);if(!$user)$secret = $request->cookies->get('secret_user');else{if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")){$agente = $this->servizi->OttieniUtenteCorrente();if ($altriDati && $altriDati->codice != ''){$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($altriDati->codice, $this->servizi->OttieniUtenteCorrente());if ($anagraficaTrovata){$clienteSelezionatoAgente = $anagraficaTrovata;}}}}/** @var $ritornoGenericoCarrello RitornoGenericoCarrello[] */$ritorniGenericiCarrello = array();foreach ($lista as $item){$funzioniCarrello = new FunzioniCarrello($this->servizi->doctrine, $this->imp, $this->servizi);$em = $this->servizi->doctrine->getManager();$ritornoGenericoCarrello = $funzioniCarrello->CreaRigaCarrello($item["idMappaArticoli"],$item["idVariante"],$item["idListaTipologiePreimpostate"],$item["qta"],$user,$secret,$agente,$anagraficaTrovata,new CreaRigaCarrelloValoriOpzionali(),$request->getLocale(),$em);$em->clear();array_push($ritorniGenericiCarrello, $ritornoGenericoCarrello);}if ($ritornoArray){return $ritorniGenericiCarrello;}else {return new JsonResponse($ritorniGenericiCarrello);}}/*** @Route("/cart/checkout", name="carrello_finalizza")*/public function finalizzaCarrello(Request $request){/** @var $user User */$user = $this->servizi->OttieniUtenteCorrente();$arrayChiaviControllo = array();$recuperaDati = new RecuperoDati($this->servizi->doctrine, $this->imp, $this->servizi);/** @var Anagrafiche|null $anagrafica */$anagrafica = null;/** @var User|null $agente */$agente = null;$codiceCliente = "";/** @var Carrello|null $carrello */$carrello = null;$this->imp->caricaCacheImpostazioniDaNomi(array('PermettiModificaSpedizioneAgenti', 'PermettiModificaPagamentoAgenti'));$consentiAgentiModificaSpedizione = $this->imp->ritornaImpostazioneDaNome('PermettiModificaSpedizioneAgenti');$consentiAgentiModificaPagamento = $this->imp->ritornaImpostazioneDaNome('PermettiModificaPagamentoAgenti');$dataConsegnaObbligatoria = $this->imp->ritornaImpostazioneDaNome('OrdiniWebDataConsegnaObbligatoria');$filtro = new ContenitoreCategoriePerFiltri();/** @var $categorie AlberoCategorie[] */$listaCategorie = $recuperaDati->recuperaAlberoCategorie($filtro, $request->getLocale());$listaCategorieChiaviParent = array();foreach ($listaCategorie as $lc){if($lc->parent){$_lc_id = $lc->parent->id;if (key_exists($_lc_id, $listaCategorieChiaviParent)){array_push($listaCategorieChiaviParent[$_lc_id], $lc);}else{$listaCategorieChiaviParent[$_lc_id] = array($lc);}}}$traduci = $this->translating;$traduci->CaricaTraduzioniDaFamiglia("carrello", $request->getLocale(), false);$secret = "";$altriDati = AltriDatiUtente::CreaDaUtente($user);if(!$user)$secret = $request->cookies->get('secret_user');else {$codiceCliente = $user->getCodiceCliente();if ($this->isGranted("ROLE_ADMIN") || $this->isGranted("ROLE_AGENTE") || $this->isGranted("ROLE_COMMERCIALE")) {$agente = $this->servizi->OttieniUtenteCorrente();if ($altriDati && $altriDati->codice != ''){$anagraficaTrovata = $this->servizi->ritornaAnagraficaShopSelezionataDaCookieIdentificativo($altriDati->codice, $this->servizi->OttieniUtenteCorrente());if ($anagraficaTrovata) {$codiceCliente = $anagraficaTrovata->getCodice();$anagrafica = $anagraficaTrovata;}}}}/** @var $carrello \App\Model\Entita\Carrello */$carrelloEntita = $recuperaDati->recuperaDettagliCarrello($secret, $user, $request->getLocale(), $codiceCliente, $anagrafica, $agente, true, $altriDati ? $altriDati->tipoOrdine : null);$carrello = null;if($carrelloEntita != null && $carrelloEntita->id != '')$carrello = $this->servizi->doctrine->getRepository(Carrello::class)->find($carrelloEntita->id);if(!$carrello || count($carrello->getRighe()) <= 0 ){$this->addFlash('error',$traduci->OttieniElementoDizionario('carrello_errore_vuoto', 'carrello')->valoreUscita);return $this->redirectToRoute('home_prodotti');}$validazioneCarrello = Validator::ValidaCarrello($carrello, $this->servizi->doctrine, $this->imp, $this->servizi, $this->servizi->OttieniUtenteCorrente());if($validazioneCarrello->bloccante){$this->addFlash('error',join('<br>', $validazioneCarrello->messaggiSemplificatiPerUtente));return $this->redirectToRoute('carrello');}/** @var UserCampiCustomTestata[] $campiCustomUser */$campiCustomUser = $this->servizi->doctrine->getRepository(UserCampiCustomTestata::class)->findBy(array('luogoVisualizzazione' => 'registrazioneUtente'));$chiaviCampiCustom = array();foreach ($campiCustomUser as $tst) {$chiaviCampiCustom = array_merge($this->servizi->RitornaChiaviUserCampiCustom($tst), $chiaviCampiCustom);}$formBuilder = $this->createFormBuilder();if (!$user){foreach ($campiCustomUser as $itm){$formBuilder = $this->servizi->AggiungiChildAFormUserCampiCustom($itm, $formBuilder);}$formBuilder = $formBuilder->add(Costanti::IO_RIFERIMENTO_ORDINE, TextType::class, array('required' => false, 'label' => $traduci->OttieniElementoDizionario("carrello_riferimento_ordine", "carrello")->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::IO_MODALITA_SPEDIZIONE, EntityType::class, array('required' => true, 'class' => 'App\Entity\ModalitaSpedizione', 'choice_label' => function ($modalita) {return $modalita->getTestoDescrittivo();}, 'label' => $traduci->OttieniElementoDizionario("carrello_modalita_spedizione", "carrello")->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::IO_MODALITA_PAGAMENTO, EntityType::class, array('required' => true, 'class' => 'App\Entity\ModalitaPagamento', 'choice_label' => function ($modalita) {return $modalita->getTestoDescrittivo();}, 'label' => $traduci->OttieniElementoDizionario("carrello_modalita_pagamento", "carrello")->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::IO_NOTE, TextareaType::class, array('required' => false, 'label' => $traduci->OttieniElementoDizionario("carrello_note", "carrello")->valoreUscita, 'attr' => array('class' => "form-control", 'rows' => '6', 'style' => 'padding-left:5px;padding-right:5px;')))->add('applica', SubmitType::class, array('label' => $traduci->OttieniElementoDizionario("carrello_completa_btn", "carrello")->valoreUscita, 'attr' => array('class' => 'form-inline btn btn-large btn-success', 'style' => 'margin-top:2em;float:right;')));$this->servizi->RitornaFormCompletoRegistrazioneUtente($formBuilder, $request->getLocale());} else {$formBuilder = $formBuilder->add(Costanti::IO_DATA_SPEDIZIONE_RITIRO, TextType::class, array('required' => ($dataConsegnaObbligatoria == '1' ? true : false), 'label' => $traduci->OttieniElementoDizionario("carrello_data_spedizione_ritiro_richiesta", "carrello")->valoreUscita, 'attr' => array('class' => "form-control input-sm input-data", 'autocomplete' => 'off', 'style' => 'padding-left:5px;padding-right:5px;')))->add(Costanti::IO_RIFERIMENTO_ORDINE, TextType::class, array('required' => false, 'label' => $traduci->OttieniElementoDizionario("carrello_riferimento_ordine", "carrello")->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')));if ($user->getUtenteComune() || $anagrafica) {if($consentiAgentiModificaSpedizione || $user->getUtenteComune()) {$formBuilder = $formBuilder->add(Costanti::IO_MODALITA_SPEDIZIONE, EntityType::class, array('required' => true, 'class' => 'App\Entity\ModalitaSpedizione', 'choice_label' => function ($modalita) {return $modalita->getTestoDescrittivo();}, 'label' => $traduci->OttieniElementoDizionario("carrello_modalita_spedizione", "carrello")->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')));}if ($anagrafica){if($consentiAgentiModificaPagamento) {$formBuilder->add(Costanti::IO_PAGAMENTO, EntityType::class, array('required' => true, 'class' => 'App\Entity\Pagamenti', 'choice_label' => function ($pagamento) {return $pagamento->getNome();}, 'label' => $traduci->OttieniElementoDizionario("carrello_modalita_pagamento", "carrello")->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')));$arrayChiaviControllo = array_merge($arrayChiaviControllo, array('pagamento'));}$formBuilder = $formBuilder->add(Costanti::IO_NOTE_AZIENDALI, TextareaType::class, array('required' => false, 'label' => $traduci->OttieniElementoDizionario("carrello_note_aziendali", "carrello")->valoreUscita, 'attr' => array('class' => "form-control", 'rows' => '6', 'style' => 'padding-left:5px;padding-right:5px;')));}else {$formBuilder->add(Costanti::IO_MODALITA_PAGAMENTO, EntityType::class, array('required' => true, 'class' => 'App\Entity\ModalitaPagamento', 'choice_label' => function ($modalita) {return $modalita->getTestoDescrittivo();}, 'label' => $traduci->OttieniElementoDizionario("carrello_modalita_pagamento", "carrello")->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')));$arrayChiaviControllo = array_merge($arrayChiaviControllo, array('modalitaPagamento'));}$arrayChiaviControllo = array_merge($arrayChiaviControllo, array('modalitaSpedizione'));} else {$formBuilder = $formBuilder->add(Costanti::IO_SPEDIZIONE_CONSEGNA, EntityType::class, array('required' => true, 'class' => 'App\Entity\AssociazioneSpedizioniClienti', 'query_builder' => function (EntityRepository $er) use ($user) {return $er->createQueryBuilder('u')->where('u.azienda = :azienda')->leftJoin('u.spedizione', 'sped')->leftJoin('u.consegna', 'cons')->setParameter('azienda', $user->getId());}, 'choice_label' => function ($sped) {return $sped->getSpedizione()->getDescrizione() . ' - ' . $sped->getConsegna()->getDescrizione();}, 'label' => $traduci->OttieniElementoDizionario("carrello_modalita_spedizione", "carrello")->valoreUscita, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')));$arrayChiaviControllo = array_merge($arrayChiaviControllo, array('spedizioneConsegna'));}$formBuilder = $formBuilder->add(Costanti::IO_NOTE, TextareaType::class, array('required' => false, 'label' => $traduci->OttieniElementoDizionario("carrello_note", "carrello")->valoreUscita, 'attr' => array('class' => "form-control", 'rows' => '6', 'style' => 'padding-left:5px;padding-right:5px;')));if ($carrello && $carrello->getAnagrafica()){/** @var AnagraficheIndirizzi[] $destinazioni */$formBuilder = $formBuilder->add(Costanti::IO_DESTINAZIONI, EntityType::class, array('required' => false, 'class' => 'App\Entity\AnagraficheIndirizzi', 'label' => $traduci->OttieniElementoDizionario("carrello_destinazioni", "carrello")->valoreUscita, 'query_builder' => function (EntityRepository $er) use ($carrello) {return $er->createQueryBuilder('destinazioni')->where('destinazioni.codice = :cod')->setParameter('cod', $carrello->getAnagrafica()->getCodice());}, 'placeholder' => '', 'choice_label' => function ($destinazione, $key, $value) {/** @var AnagraficheIndirizzi $destinazione */return "(" . $destinazione->getTipoIndirizzo() . ") ". $destinazione->getRagioneSociale() . " ". $destinazione->getIndirizzo() . " - ". $destinazione->getCitta() . " (" . $destinazione->getProvincia() . ") " . $destinazione->getCap() . " - ". $destinazione->getNazione();}, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')));}else{$formBuilder = $formBuilder->add(Costanti::IO_DESTINAZIONI, EntityType::class, array('required' => false, 'class' => 'App\Entity\Destinazioni', 'label' => $traduci->OttieniElementoDizionario("carrello_destinazioni", "carrello")->valoreUscita, 'query_builder' => function (EntityRepository $er) use ($user) {return $er->createQueryBuilder('destinazioni')->where('destinazioni.azienda = :azie')->setParameter('azie', $user);}, 'placeholder' => '' , 'choice_label' => function ($destinazione, $key, $value) {/** @var Destinazioni $destinazione */return "(" . $destinazione->getDenominazioneDestinazioneDiversa() . ") ". $destinazione->getRagioneSociale() . " ". $destinazione->getIndirizzo() . " - ". $destinazione->getCitta() . " (" . $destinazione->getProvincia() . ") " . $destinazione->getCap() . " - ". $destinazione->getStato();}, 'attr' => array('class' => "form-control input-sm", 'style' => 'padding-left:5px;padding-right:5px;')));}$formBuilder = $formBuilder->add(Costanti::IO_INVIO_ORDINE, SubmitType::class, array('label' => $traduci->OttieniElementoDizionario("carrello_completa_btn", "carrello")->valoreUscita, 'attr' => array('class' => 'form-inline btn btn-large btn-success', 'style' => 'margin-top:2em;float:right;')));}$formBuilder = $formBuilder->getForm();$formBuilder->handleRequest($request);/** @var User $utenteOrdine */$utenteOrdine = $this->servizi->OttieniUtenteCorrente();/** @var Destinazioni|AnagraficheIndirizzi $destinazioneOrdine */$destinazioneOrdine = null;/** @var ModalitaSpedizione $modalitaSpedizioneOrdine */$modalitaSpedizioneOrdine = null;/** @var ModalitaPagamento $modalitaPagamentoOrdine */$modalitaPagamentoOrdine = null;/** @var AssociazioneSpedizioniClienti $spedizioneConsegnaOrdine */$spedizioneConsegnaOrdine = null;/** @var Pagamenti $pagamentoAzienda */$pagamentoAzienda = null;/** @var \DateTime $dataSpedizioneOrdine */$dataSpedizioneOrdine = new \DateTime();$errori_validazione = array();$noteAziendali = '';$problemaUtenteGiaEsistente = false;if ($formBuilder->isSubmitted() && $formBuilder->isValid()) {foreach ($formBuilder as $key => $value) {if ($formBuilder[$key]->getData() == "" && (in_array($key, $arrayChiaviControllo))) {array_push($errori_validazione, $key);}}if (count($errori_validazione) <= 0) {$gestioneUtenti = $this->gestioneUtenti;if (!$user) {$utenteGiaEsistente = $this->servizi->doctrine->getRepository(User::class)->findOneBy(array('username' => strtolower($formBuilder[Costanti::RU_USERNAME]->getData())));if(!$utenteGiaEsistente){$utenteGiaEsistente = $this->servizi->doctrine->getRepository(User::class)->findOneBy(array('email' => strtolower($formBuilder[Costanti::RU_INDIRIZZO_MAIL]->getData())));}if (!$utenteGiaEsistente) {$privato = $formBuilder[Costanti::RU_AZIENDA_O_PRIVATO]->getData() == "privato" ? true : false;$ragioneSociale = $formBuilder[Costanti::RU_RAGIONE_SOCIALE]->getData();if ($privato) {$ragioneSociale = $formBuilder[Costanti::RU_NOME]->getData() . ' ' . $formBuilder[Costanti::RU_COGNOME]->getData();}$nuovoUtente = $gestioneUtenti->CreaUtente($ragioneSociale,$formBuilder[Costanti::RU_NOME]->getData(),$formBuilder[Costanti::RU_COGNOME]->getData(),$formBuilder[Costanti::RU_INDIRIZZO_MAIL]->getData(),$formBuilder[Costanti::RU_INDIRIZZO]->getData(),$formBuilder[Costanti::RU_CITTA]->getData(),$formBuilder[Costanti::RU_CAP]->getData(),$formBuilder[Costanti::RU_PROVINCIA]->getData(),($formBuilder[Costanti::RU_STATO]->getData())->getDescrizione(),$formBuilder[Costanti::RU_TELEFONO]->getData(),$formBuilder[Costanti::RU_CODICE_FISCALE]->getData(),$formBuilder[Costanti::RU_PARTITA_IVA]->getData(),$formBuilder[Costanti::RU_PASSWORD]->getData(),$formBuilder[Costanti::RU_USERNAME]->getData(),$formBuilder[Costanti::RU_INDIRIZZO_PEC]->getData(),$formBuilder[Costanti::RU_CODICE_DESTINATARIO_FATTURAZIONE_ELETTRONICA]->getData(),$privato,'',null,true);//Verifico se ci sono dei campi custom da inserire nel dbif (count($chiaviCampiCustom) > 0) {$em = $this->servizi->doctrine->getManager();foreach ($chiaviCampiCustom as $cmpCst) {$dettaglioCampoCustom = $this->servizi->RitornaDettaglioUserCampiCustom($cmpCst);$campo = $dettaglioCampoCustom->getCampo();if ($campo) {if ($formBuilder[$cmpCst]->getData() != '') {$campoCustom = new UserCampiCustomValori();$campoCustom->setDataCreazione(new \DateTime());$campoCustom->setDataModifica(new \DateTime());$campoCustom->setUser($nuovoUtente);$campoCustom->setTestata($dettaglioCampoCustom->getTestata());$campoCustom->setCampo($dettaglioCampoCustom->getCampo());$campoCustom->setUtenteModifica($this->servizi->OttieniUtenteCorrente());$campoCustom->setTipoDato($dettaglioCampoCustom->getCampo()->getTipoDato());$campoCustom->setTestoVisualizzato($dettaglioCampoCustom->getCampo()->getTestoVisualizzato());$campoCustom->setValore($formBuilder[$cmpCst]->getData());$em->persist($campoCustom);}}}$em->flush();}$utenteOrdine = $nuovoUtente; //Setto l'utente dell'ordine con l'utente appena creato//effettuo automaticamente il login per il nuovo utente creato$token = new UsernamePasswordToken($nuovoUtente, 'main', $nuovoUtente->getRoles());$this->token->setToken($token);$this->session->set('_security_main', serialize($token));/** @var $destinazione Destinazioni */$destinazione = null;//Aggiungo la destinazione base$destinazione = $gestioneUtenti->CreaDestinazione($nuovoUtente, $nuovoUtente->getRagioneSociale(), $nuovoUtente->getIndirizzo(), $nuovoUtente->getCitta(), $nuovoUtente->getProvincia(),$nuovoUtente->getCap(), $nuovoUtente->getTelefono(), $nuovoUtente->getNazione(), $nuovoUtente->getEmail());if ($formBuilder[Costanti::RU_DESTINAZIONE_DIVERSA]->getData() == true) {$destinazione = $gestioneUtenti->CreaDestinazione($nuovoUtente, $formBuilder[Costanti::RU_DD_RAGIONE_SOCIALE]->getData(), $formBuilder[Costanti::RU_DD_INDIRIZZO]->getData(), $formBuilder[Costanti::RU_DD_CITTA]->getData(),$formBuilder[Costanti::RU_DD_PROVINCIA]->getData(), $formBuilder[Costanti::RU_DD_CAP]->getData(), $formBuilder[Costanti::RU_DD_TELEFONO]->getData(), ($formBuilder[Costanti::RU_DD_STATO]->getData() ? $formBuilder[Costanti::RU_DD_STATO]->getData()->getDescrizione() : ''),$formBuilder[Costanti::RU_DD_INDIRIZZO_MAIL]->getData(), $formBuilder[Costanti::RU_DD_CITTA]->getData());}$destinazioneOrdine = $destinazione;$modalitaPagamentoOrdine = $formBuilder[Costanti::IO_MODALITA_PAGAMENTO]->getData();$modalitaSpedizioneOrdine = $formBuilder[Costanti::IO_MODALITA_SPEDIZIONE]->getData();} else {$problemaUtenteGiaEsistente = true;}} else {if ($utenteOrdine->getUtenteComune() || $anagrafica) {$noteAziendali = $formBuilder[Costanti::IO_NOTE_AZIENDALI]->getData();if ($consentiAgentiModificaSpedizione)$modalitaSpedizioneOrdine = $formBuilder[Costanti::IO_MODALITA_SPEDIZIONE]->getData();if ($anagrafica) {if ($consentiAgentiModificaPagamento)$pagamentoAzienda = $formBuilder[Costanti::IO_PAGAMENTO]->getData();} else {$modalitaPagamentoOrdine = $formBuilder[Costanti::IO_MODALITA_PAGAMENTO]->getData();}} else {$spedizioneConsegnaOrdine = $formBuilder[Costanti::IO_SPEDIZIONE_CONSEGNA]->getData();}$dataSpedizioneOrdine = \DateTime::createFromFormat("d/m/Y", $formBuilder[Costanti::IO_DATA_SPEDIZIONE_RITIRO]->getData());$destinazioneOrdine = $formBuilder[Costanti::IO_DESTINAZIONI]->getData();}if (!$problemaUtenteGiaEsistente) {$noteOrdine = $formBuilder[Costanti::IO_NOTE]->getData();$riferimentoOrdine = $formBuilder[Costanti::IO_RIFERIMENTO_ORDINE]->getData();$funzioniCarrello = new FunzioniCarrello($this->servizi->doctrine, $this->imp, $this->servizi);/** @var RitornoConversioneCarrelloInOrdine $ritornoConversioneCarrelloOrdine */$ritornoConversioneCarrelloOrdine = $funzioniCarrello->ConvertiCarrelloInOrdine($utenteOrdine, $carrello, $destinazioneOrdine, $modalitaSpedizioneOrdine, $modalitaPagamentoOrdine,$spedizioneConsegnaOrdine, $dataSpedizioneOrdine, $riferimentoOrdine, $noteOrdine, $pagamentoAzienda, $request, $noteAziendali);$ordine = $ritornoConversioneCarrelloOrdine->ordine;$noteInvioOrdine = "";foreach ($ritornoConversioneCarrelloOrdine->listaMessaggiConversione as $str) {$noteInvioOrdine .= $str;}$inviaConfermaOrdine = $this->imp->ritornaImpostazioneDaNome("InviaConfermaOrdineCliente");$nomeShop = $this->imp->ritornaImpostazioneDaNome("NomeShop");$inviaConfermaAgente = $this->imp->ritornaImpostazioneDaNome('InviaConfermaOrdineAgente');$translator = $traduci;$translator->CaricaTraduzioniDaFamiglia("mail_nuovo_ordine", $request->getLocale());$header = $translator->OttieniElementoDizionario("mail_nuovo_ordine_header", "mail_nuovo_ordine")->valoreUscita;if ($inviaConfermaOrdine == 1) {$inviaCopiaConfermaASede = $this->imp->ritornaImpostazioneDaNome("InviaCopiaConfermaOrdineClienteSede");$mailFrom = $this->imp->ritornaImpostazioneDaNome("IndirizzoMailFromInvioComunicazioni");$mailer = new Mailer($this->imp, $this->twig, $this->servizi);$listaMailSecondarie = $this->servizi->doctrine->getRepository(MailSecondarieUtenti::class)->findBy(array('azienda' => $user, 'inviaConfermaOrdine' => true));$adresses = array();foreach ($listaMailSecondarie as $ms) {array_push($adresses, $ms->getIndirizzoMail());}if($ordine->getAnagrafica()){$elencoAltreMail = explode(';', $ordine->getAnagrafica()->getIndirizziMail());foreach ($elencoAltreMail as $ml){if(!in_array($ml, $adresses)){array_push($adresses, $ml);}}}$ordineFormattato = $ordine;if ($ordine instanceof Ordini) {$ordineFormattato = $recuperaDati->recuperaDettagliOrdine($ordine->getId(), $ordine->getUtente(), $request->getLocale());}$mailToPrima = $anagrafica && count($adresses) ? $adresses[0] : $utenteOrdine->getEmail();array_shift($adresses);//INVIO MAIL A CLIENTE$mailer->SendMail($header . " " . $nomeShop,$this->renderView('email/ordini/nuovo_ordine.html.twig',array('ordine_inviato_azienda' => false,'ordine' => $ordineFormattato,'utente' => $user,'noteInvioOrdine' => $noteInvioOrdine,)),$mailToPrima,$adresses,$mailFrom,"text/html",false,$this->servizi->OttieniUtenteCorrente());if ($inviaCopiaConfermaASede == 1 || $inviaConfermaAgente == 1) {$cc = array();//Compongo l'header$header2 = 'Nuovo ordine cliente WEB - ';if($ordine->getAnagrafica()){$header2 .= ($ordine->getAnagrafica()->getCodice() . " - " . $ordine->getAnagrafica()->getRagioneSociale());}else if ($ordine->getAzienda()){$header2 .= ($ordine->getAzienda()->getCodiceCliente() . " - " . $ordine->getAzienda()->getRagioneSociale());}if($inviaCopiaConfermaASede == 1) {//INVIO MAIL AZIENDA.$mailer->SendMail($header2,$this->renderView('email/ordini/nuovo_ordine.html.twig',array('ordine_inviato_azienda' => true,'ordine' => $ordineFormattato,'user' => $user,'utente' => $user,'noteInvioOrdine' => $noteInvioOrdine,)),$mailFrom,$cc,$mailFrom,"text/html",false,$this->servizi->OttieniUtenteCorrente());}if ($inviaConfermaAgente == 1){$cc = array();$mailAgente = "";if($ordine->getAgente() && $ordine->getAgente()->getEmail() != '')$mailAgente = $ordine->getAgente()->getEmail();//INVIO MAIL AZIENDA.$mailer->SendMail($header2,$this->renderView('email/ordini/nuovo_ordine.html.twig',array('ordine_inviato_azienda' => true,'ordine' => $ordineFormattato,'user' => $user,'utente' => $user,'noteInvioOrdine' => $noteInvioOrdine,)),$mailAgente,$cc,$mailFrom,"text/html",false,$this->servizi->OttieniUtenteCorrente());}}}if ($modalitaPagamentoOrdine && $modalitaPagamentoOrdine->getServizioPagamentoAutomatico() != '') {return $this->redirectToRoute('checkout_ordine', array('id_ordine' => $ordine->getId()));} else {$this->addFlash('notice',$traduci->OttieniElementoDizionario('carrello_ordine_inserito', 'carrello')->valoreUscita);return $this->redirectToRoute('dettagli_storico', array('id' => $ordine->getId()));}} else {$this->addFlash('error',$traduci->OttieniElementoDizionario('carrello_errore_mail_o_user_in_uso', 'carrello')->valoreUscita);}}}/** @var $destinazioni Destinazioni[] */$destinazioni = $this->servizi->doctrine->getRepository(Destinazioni::class)->findBy(array('azienda' => $user));return $this->render('ZZ_front_end/carrello/carrello_finalizza.html.twig', array(Costanti::T_CARRELLO => $carrelloEntita,Costanti::T_RIGHE_CARRELLO => $carrelloEntita->righe,'carrelloEntita' => $carrelloEntita,'completato' => false,'checkout' => 1,'anagrafica' => $anagrafica,'user' => $user,Costanti::IO_DESTINAZIONI => $destinazioni,Costanti::IO_RADICE_FORM => $formBuilder->createView(),'errori_validazione' => $errori_validazione,'campiCustomUser' => $chiaviCampiCustom,Costanti::T_LISTA_CATEGORIE => $listaCategorie,Costanti::T_LISTA_CATEGORIE_CHIAVI_PARENT => $listaCategorieChiaviParent,'consentiModificaPagamento' => $consentiAgentiModificaPagamento,'consentiModificaSpedizione' => $consentiAgentiModificaSpedizione,Costanti::ID_MODALITA_PAGAMENTO_SELEZIONATA => ($carrello->getModalitaPagamento() ? $carrello->getModalitaPagamento()->getId() : ''),Costanti::ID_MODALITA_SPEDIZIONE_SELEZIONATA => ($carrello->getModalitaSpedizione() ? $carrello->getModalitaSpedizione()->getId() : '')));}}