<?php
namespace App\Controller\GestionComerciale;
use App\Entity\Articles\Article;
use App\Entity\Articles\ConditionAchat;
use App\Entity\Articles\NumeroSerie;
use App\Entity\Etiquettes\Etiquette;
use App\Entity\Fournisseurs\Fournisseur;
use App\Entity\GestionComerciale\ArticleCommande;
use App\Entity\GestionComerciale\Commande;
use App\Entity\GestionComerciale\CommandeFournisseur;
use App\Entity\GestionComerciale\Reception;
use App\Entity\GestionComerciale\StatutCommandeFournisseur;
use App\Entity\Rangements\Emplacement;
use App\Entity\Rangements\NiveauDeux;
use App\Entity\Rangements\NiveauQuatre;
use App\Entity\Rangements\NiveauTrois;
use App\Entity\Rangements\NiveauUn;
use App\Library\Datatable\Util\Datatable;
use App\Service\GestionComerciale\CommandeFournisseurService;
use App\Service\GestionComerciale\EtatCommandeService;
use App\Service\GestionComerciale\NumerotationDocumentService;
use App\Service\Utilisateur\ColonneTableauService;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
class CommandeFournisseurSimplifieController extends AbstractController
{
/**
* @Route("/achat-simplifie/commande", name="dtc_commande_fournisseur_simplifie_liste")
*/
public function listerAction(Request $request, $article = '', EntityManagerInterface $em, Datatable $datatable, TranslatorInterface $translator)
{
$statutCommande = $request->query->get('statutCommande');
$tableau_class_cellule = [];
$tableau_class_cellule[] = ["orderable" => false, "className" => "colonne_id", "targets" => [0], "visible" => true];
$tableau_class_cellule[] = ["orderable" => false, "className" => "colonne_id", "targets" => [1], "visible" => false];
$tableau_class_cellule[] = ["orderable" => true, "className" => "colonne_id text-center", "targets" => [2], "visible" => true];
$tableau_class_cellule[] = ["orderable" => true, "className" => "colonne_id text-center", "targets" => [3], "visible" => true];
$tableau_class_cellule[] = ["orderable" => true, "className" => "colonne_id text-center", "targets" => [4], "visible" => true];
$tableau_class_cellule[] = ["orderable" => true, "className" => "colonne_id", "targets" => [5], "visible" => true];
$tableau_class_cellule[] = ["orderable" => true, "className" => "colonne_id", "targets" => [6], "visible" => true, "searchable" => true];
$tableau_class_cellule[] = ["orderable" => true, "className" => "colonne_id", "targets" => [7], "visible" => true, "searchable" => true];
$this->datatable($request, $datatable, $translator);
$param = $request->query->all();
$repo_statut = $em->getRepository(StatutCommandeFournisseur::class);
$liste_statut = $repo_statut->findBy(['id' => [6, 2, 3, 4, 5]]);
$affichageParDefaut = true;
foreach ($param as $key => $par) {
$pos = strpos($key, 'statut_commande_');
//var_dump($key);
if ($pos !== false) {
$affichageParDefaut = false;
break;
}
}
$param['affichageParDefaut'] = $affichageParDefaut;
$repo_fournisseur = $em->getRepository(Fournisseur::class);
$fournisseurs = $repo_fournisseur->findBy([], ['libelle' => 'ASC']);
return $this->render(
'GestionComerciale/CommandeFournisseurSimplifie/lister.html.twig',
[
'liste_statut' => $liste_statut,
'parametres' => $param,
"fournisseurs" => $fournisseurs,
'tableauClassColonne' => $tableau_class_cellule,
'statutCommande' => $statutCommande,
]
);
}
/**
* set datatable configs
*
* @return \App\Library\Datatable\Util\Datatable
*/
private function datatable(Request $request, Datatable $datatable, TranslatorInterface $translator)
{
$param = $request->query->all();
$datatable
->setDatatableId('dta-commandes-fournisseur-simplifie')
->setEntity(CommandeFournisseur::class, "x")
->setFields(
[
$translator->trans("Actions") => 'x.id',
$translator->trans("ID") => 'x.id',
$translator->trans("Date") => 'x.date',
$translator->trans("Date de réception estimée") => 'x.dateApproximativeReception',
$translator->trans("Date réception") => 'x.id',
$translator->trans("Réf") => 'x.reference',
$translator->trans("Fournisseur") => 'f.libelle',
$translator->trans("Statut") => 's.id',
"_identifier_" => 'x.id',
]
)
->addJoin('x.statutCommande', 's', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('x.fournisseur', 'f', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->setRenderers(
[
2 => [
'view' => 'FO/DataTable/heure.html.twig',
],
3 => [
'view' => 'FO/DataTable/date.html.twig',
],
4 => [
'view' => 'FO/DataTable/date_reception_cmde_fournisseur.html.twig',
],
5 => [
'view' => 'FO/DataTable/avec_lien_edit_route.html.twig',
'params' => ['edit_route' => 'dtc_commande_fournisseur_simplifie_reception', 'nouvelOnglet' => false],
],
7 => [
'view' => 'FO/DataTable/statut-commande-fournisseur.html.twig',
],
0 => [
'view' => 'FO/DataTable/actions-interface-simplifie.html.twig',
'params' => [
'edit_route' => 'dtc_commande_fournisseur_simplifie_reception',
//'supprimer_route' => 'dtc_commande_fournisseur_supprimer',
'objet' => CommandeFournisseur::class,
'deplierFournisseur' => true,
],
],
]
)
/*
->setMultiple(
array(
'delete' => array(
'title' => 'Supprimer',
'route' => 'dtc_commande_liste_supprimer'
),
)
)
*
*/
->setOrder("x.dateApproximativeReception", "asc")
->setSearch(true)
->setSearchFields([5, 6]);
$where = '';
$parameters = [];
if (is_object($request)) {
$article = $request->query->get('article');
if ($article != '') {
$datatable->addJoin('x.articleCommande', 'ac', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('ac.article', 'a', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)/*->setWhere( // set your dql where statement
'a.id = :article',
array('article' => $article)
)*/
;
$where .= 'a.id = :article';
$parameters['article'] = $article;
}
/*
$statutCommande = $request->query->get('statutCommande');
if ($statutCommande == '' || $statutCommande == '3'){
if ($where != '') $where .= ' AND ';
$where .= 's.ordre IN (:statutCommande)';
$parameters['statutCommande'] = array(5,1);
} else {
if ($where != '') $where .= ' AND ';
$where .= 's.ordre IN (:statutCommande)';
$parameters['statutCommande'] = array($statutCommande);
}
*/
} else {
$datatable->setMultiple(
[
'delete' => [
'title' => 'Supprimer',
'route' => 'dtc_commande_liste_supprimer',
],
]
);
//$where .= 's.ordre IN (:statutCommande)';
//$parameters['statutCommande'] = array(5,1);
}
if (array_key_exists('parametres', $param)) {
if (array_key_exists('fournisseur', $param["parametres"]) and $param["parametres"]["fournisseur"] > 0) {
//$datatable->addJoin('x.client', 'client', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN);
$parameters["fournisseur"] = $param["parametres"]["fournisseur"];
if ($where != "") {
$where .= " AND ";
}
$where .= "f.id = :fournisseur";
}
if (array_key_exists('date_debut', $param["parametres"]) and $param["parametres"]["date_debut"] != "") {
$param["parametres"]["date_debut"] = \DateTime::createFromFormat('d/m/Y', $param["parametres"]["date_debut"]);
$param["parametres"]["date_debut"]->setTime(00, 00, 00);
$parameters["date_debut"] = $param["parametres"]["date_debut"];
if ($where != "") {
$where .= " AND ";
}
$where .= "x.date >= :date_debut";
}
if (array_key_exists('date_fin', $param["parametres"]) and $param["parametres"]["date_fin"] != "") {
$param["parametres"]["date_fin"] = \DateTime::createFromFormat('d/m/Y', $param["parametres"]["date_fin"]);
$param["parametres"]["date_fin"]->setTime(23, 59, 59);
$parameters["date_fin"] = $param["parametres"]["date_fin"];
if ($where != "") {
$where .= " AND ";
}
$where .= "x.date <= :date_fin";
}
foreach ($param['parametres'] as $key => $par) {
$pos = strpos($key, 'statut_commande_');
if ($pos !== false) {
$statutsCommande[] = str_replace('statut_commande_', '', $key);
}
}
}
if (empty($statutsCommande)) {
$statutsCommande = [1, 2];
}
if (count($statutsCommande)) {
if ($where != '') {
$where .= ' AND ';
}
$where .= 's.id IN (:statutsCommande)';
$parameters['statutsCommande'] = $statutsCommande;
}
//echo $where;
//print_r($parameters['statutsCommande']);
if ($where != '') {
$datatable->setWhere($where, $parameters);
}
//$datatable->setSearchFields(array(0,2));
return $datatable;
}
/**
* @Route("/achat-simplifie/commande/grid", name="dtc_commande_fournisseur_simplifie_liste_grid")
*/
public function gridAction(Request $request, Datatable $datatable, TranslatorInterface $translator)
{
return $this->datatable($request, $datatable, $translator)->execute();
}
/**
* @Route("/achat-simplifie/commande/{id}/reception", name="dtc_commande_fournisseur_simplifie_reception")
*/
public function receptionAction(Request $request, CommandeFournisseur $commande, EntityManagerInterface $em, TranslatorInterface $translator,
ColonneTableauService $serviceColonne, CommandeFournisseurService $commandeFournisseurService, NumerotationDocumentService $numerotationService,
EtatCommandeService $etatCommandeService
) {
set_time_limit(600);
$articles_array_pour_bp_auto = [];
$repo_article = $em->getRepository(Article::class);
$repo_article_commande = $em->getRepository(ArticleCommande::class);
$user = $this->getUser();
$commande->setUtilisateur($user);
//$request = $request;
$errors = "";
$colspan = 13;
$tabColonneUser = [];
$tabColonneUser["id"] = 1;
$tabColonneUser["reference"] = 1;
$tabColonneUser["libelle"] = 1;
$tabColonneUser["referenceF"] = 1;
$tabColonneUser["libelleF"] = 1;
$tabColonneUser["qteStockCommande"] = 1;
$tabColonneUser["uniteVente"] = 1;
$tabColonneUser["qte"] = 1;
$tabColonneUser["uniteAchat"] = 1;
$tabColonneUser["ralF"] = 1;
$tabColonneUser["qtéreceptionn"] = 1;
$tabColonneUser["prixHT"] = 1;
$tabColonneUser["txRem"] = 1;
$tabColonneUser["txRemSuppl"] = 1;
$tabColonneUser["fraisAnnexes"] = 1;
$tabColonneUser["prixAchatUnitaire"] = 1;
$tabColonneUser["montantHt"] = 1;
$tabColonneUser["totalHt"] = 1;
$tabColonneUser["CC"] = 1;
$tabColonneUser["qteMiniAchat"] = 1;
$tabColonneUser["conditionnement"] = 1;
$tabColonneUser["etiquettes"] = 1;
$tabColonneUser['coefficientConditionnement'] = 1;
// TODO Change this
$colonneUtilisateur = Reception::class; //"DTCGestionComercialeBundle:ReceptionCommandeFournisseur";
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'id') == false) {
$colspan--;
$tabColonneUser["id"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'reference') == false) {
$colspan--;
$tabColonneUser["reference"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'libelle') == false) {
$colspan--;
$tabColonneUser["libelle"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'referenceF') == false) {
$colspan--;
$tabColonneUser["referenceF"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'libelleF') == false) {
$colspan--;
$tabColonneUser["libelleF"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'qteStockCommande') == false) {
$colspan--;
$tabColonneUser["qteStockCommande"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'uniteVente') == false) {
$colspan--;
$tabColonneUser["uniteVente"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'qte') == false) {
$colspan--;
$tabColonneUser["qte"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'uniteAchat') == false) {
$colspan--;
$tabColonneUser["uniteAchat"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'ralF') == false) {
$colspan--;
$tabColonneUser["ralF"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'qtéreceptionn') == false) {
$colspan--;
$tabColonneUser["qtéreceptionn"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'prixHT') == false) {
$colspan--;
$tabColonneUser["prixHT"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'txRem') == false) {
$colspan--;
$tabColonneUser["txRem"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'txRemSuppl') == false) {
$colspan--;
$tabColonneUser["txRemSuppl"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'fraisAnnexes') == false) {
$colspan--;
$tabColonneUser["fraisAnnexes"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'prixAchatUnitaire') == false) {
$colspan--;
$tabColonneUser["prixAchatUnitaire"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'montantHt') == false) {
$colspan--;
$tabColonneUser["montantHt"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'totalHt') == false) {
$colspan--;
$tabColonneUser["totalHt"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'CC') == false) {
$colspan--;
$tabColonneUser["CC"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'qteMiniAchat') == false) {
$colspan--;
$tabColonneUser["qteMiniAchat"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'conditionnement') == false) {
$colspan--;
$tabColonneUser["conditionnement"] = 0;
}
if ($serviceColonne->getColonneUtilisateur($colonneUtilisateur, 'coefficientConditionnement') == false) {
$colspan--;
$tabColonneUser["coefficientConditionnement"] = 0;
}
if ($request->isMethod('POST')) {
$prixCalc = str_replace(" ", "", $request->request->get('prix'));
$prixCalc = str_replace(chr(194).chr(160), '', $prixCalc);
$commentaireReception = $request->request->get('commentaireReception');
$articles = [
'ids' => $request->request->get('ids'),
'commentaire' => $request->request->get('commentaire'),
'libelles' => $request->request->get('libelles'),
'tva' => $request->request->get('tva'),
//'remiseSuppl'=>$request->request->get('remiseSuppl'),
'prix' => $prixCalc,
'qte' => $request->request->get('qte'),
'rals' => $request->request->get('rals'),
//'nvellesCond'=>$request->request->get('NvellesCondition'),
'conditionsAchat' => $request->request->get('conditionsAchat'),
'etiquettes' => $request->request->get('etiquettes'),
'remises' => $request->request->get('remises'),
'remisesSuppl' => $request->request->get('remisesSuppl'),
'receptions' => $request->request->get('receptions'),
'fabrications' => $request->request->get('fabrications'),
'emplacement' => $request->request->get('emplacement'),
'nbEmplacement' => $request->request->get('nbEmplacement'),
'fraisAnnexes' => $request->request->get('fraisAnnexes'),
'articlesCommande' => $request->request->get('articlesCommande'),
'articlesCommandeRepris' => $request->request->get('articlesCommandeRepris'),
'coefficientsConditionnement' => $request->request->get('coefficientsConditionnement'),
'ecocontribution' => $request->request->get('ecocontribution'),
'emplacementSimplifie' => $request->request->get('emplacementSimplifie')
//'numero_serie'=>$request->request->get('numero_serie'),
//'duree_garantie'=>$request->request->get('duree_garantie'),
];
$BL = $request->request->get('BL');
$dateReceptionTxt = $request->request->get('dateReception');
$dateReception = date_create_from_format('d/m/Y H:i', $dateReceptionTxt);
if ($BL == '') {
$BL = $dateReception->format('Ymd-His');
}
if (count($articles['ids']) > 0) {
foreach ($articles['ids'] as $key => $article) {
if ($articles['qte'][$key] > 0) {
$articles_array_pour_bp_auto = $articles['ids'][$key];
}
if ($articles['conditionsAchat'][$key] == "") {
$id = $articles['ids'][$key];
$art = $repo_article->find($id);
if ($art->getDivers() == 1) {
$repo_cond = $em->getRepository(ConditionAchat::class);
$cond = $repo_cond->findOneBy(['article' => $art]);
if (is_object($cond)) {
$articles['conditionsAchat'][$key] = $cond->getId();
}
}
}
}
}
$valeurs = ["articles" => $articles, 'typeDocument' => 'commande', 'BL' => $BL, 'dateReception' => $dateReception];
$reception = new Reception();
$reception->setCommandeFournisseur($commande);
$reception->setFraisPortSupplementaire($commande->getFraisPortSupplementaire());
$reception->setFraisFixe($commande->getFraisFixe());
$reception->setFraisApproche($commande->getFraisApproche());
$reception->setCommentaire($commentaireReception);
$reception->setFournisseur($commande->getFournisseur());
$reception->setBonLivraison($BL);
if (is_object($dateReception)) {
$reception->setDate($dateReception);
}
$reception->setReference($numerotationService->generer($reception));
$em->persist($reception);
//les numéros de série
$numeraux_serie = $request->request->get('numero_serie');
$durees_garantie = $request->request->get('duree_garantie');
if (is_array($numeraux_serie) && count($numeraux_serie) > 0) {
foreach ($numeraux_serie as $articleCommandeId => $numerauxByArticle) {
foreach ($numerauxByArticle as $numero_serie) {
if ($numero_serie != '') {
$ac = $repo_article_commande->find($articleCommandeId);
$duree = $durees_garantie[$articleCommandeId];
$numeroSerie = new NumeroSerie();
$numeroSerie->setDureeGarantie($duree);
if (is_object($ac)) {
$numeroSerie->setArticleCommande($ac);
}
$numeroSerie->setNumero($numero_serie);
$em->persist($numeroSerie);
}
}
}
}
$em->flush();
$commandeFournisseurService->creerMvtStock($commande, $valeurs, $reception);
$message = '';
if (count($articles['ids']) > 0) {
foreach ($articles['ids'] as $key => $article) {
$conditionAchat = $articles['conditionsAchat'][$key];
$actionAmener = $request->request->get('condAchat_'.$conditionAchat);
$message .= $conditionAchat.' - '.$actionAmener.' - ';
if ($actionAmener != 1) {
$donnees['prix'] = $articles['prix'][$key];
$donnees['fraisAnnexes'] = $articles['fraisAnnexes'][$key];
$message .= $donnees['prix'];
$commandeFournisseurService->creerOuMajConditionAchat($conditionAchat, $actionAmener, $donnees);
}
$message .= ' / ';
}
}
$repo_commande = $em->getRepository(Commande::class);
if (is_array($articles_array_pour_bp_auto) && count($articles_array_pour_bp_auto) > 0) {
$commandesEnCours = $repo_commande->listeCommandeEnCoursPourReception($articles_array_pour_bp_auto);
foreach ($commandesEnCours as $c) {
$etatCommandeService->calculerEtatCommande($c, $creer_bon = false);
}
}
$route = $this->generateUrl('dtc_commande_fournisseur_simplifie_liste', []);
$message = '<br/>Réception de la marchandise réalisée avec succès ! <br/> Vous allez être automatiquement redirigé dans 5 secondes. <br/> <div style="text-align:center;margin-top:5px;"><a id="lien_suivant" href="'.$route.'" >Ne pas attendre</a></div>';
$this->addFlash('notice', $translator->trans($message));
$url = $this->generateUrl('dtcfo_interface_simplifie_validation', []);
$commandeFournisseurService->creerHistorique($commande, 3);
return new JsonResponse(['rendu' => '', 'valide' => '1', 'url' => $url]);
}
$etiquettes = $repo_commande = $em->getRepository(Etiquette::class)->findAll();
return $this->render('GestionComerciale/CommandeFournisseurSimplifie/reception.html.twig', [
'etiquettes' => $etiquettes,
'errors' => $errors,
'commande' => $commande,
'tabColonneUser' => $tabColonneUser,
'modalWidth' => 800,
]);
}
/**
* @Route("", name="")
*/
public function receptionnerEmplacementAction(Request $request, Article $article, $idArticleCommande, EntityManagerInterface $em, TranslatorInterface $translator
) {
$titre_modal = $translator->trans("Nouvel emplacement");
$get = $request->query->all();
$user = $this->getUser();
$codeBarre = trim($request->request->get('codeBarre'));
$codeBarreId = trim($request->request->get('codeBarreId'));
if ($request->isMethod('post')) {
if ( ! empty($codeBarreId) and 1 != 1) {
$emplacement_article = $em->getRepository(Emplacement::class)->find($codeBarreId);
$donneesEmplacement = [
'niveauUn' => '',
'niveauDeux' => '',
'niveauTrois' => '',
'niveauQuatre' => '',
];
if (is_object($emplacement_article)) {
if (is_object($emplacement_article->getNiveauQuatre())) {
$donneesEmplacement['niveauQuatre'] = $emplacement_article->getNiveauQuatre()->getId();
}
if (is_object($emplacement_article->getNiveauTrois())) {
$donneesEmplacement['niveauTrois'] = $emplacement_article->getNiveauTrois()->getId();
}
if (is_object($emplacement_article->getNiveauDeux())) {
$donneesEmplacement['niveauDeux'] = $emplacement_article->getNiveauDeux()->getId();
}
if (is_object($emplacement_article->getNiveauUn())) {
$donneesEmplacement['niveauUn'] = $emplacement_article->getNiveauUn()->getId();
}
}
return new Response(
json_encode(
[
'rendu' => '',
'valide' => '0',
'url' => '',
'titre' => '',
'type' => 'callBackEmplacementCommandeFournisseur',
'emplacement' => $donneesEmplacement,
]
),
200,
['Content-Type' => 'application/json']
);
} elseif ( ! empty($request->request->get('codeBarre'))) {
$niveau = 1;
$emplacement = $em->getRepository(NiveauUn::class)->findOneBy(['codeBarres' => $codeBarre]);
if ( ! is_object($emplacement)) {
$emplacement = $em->getRepository(NiveauDeux::class)->findOneBy(['codeBarres' => $codeBarre]);
$niveau++;
}
if ( ! is_object($emplacement)) {
$emplacement = $em->getRepository(NiveauTrois::class)->findOneBy(['codeBarres' => $codeBarre]);
$niveau++;
}
if ( ! is_object($emplacement)) {
$emplacement = $em->getRepository(NiveauQuatre::class)->findOneBy(['codeBarres' => $codeBarre]);
$niveau++;
}
if (is_object($emplacement)) {
$donneesEmplacement = [
'niveauUn' => null,
'niveauDeux' => null,
'niveauTrois' => null,
'niveauQuatre' => null,
];
if ($niveau == 1) {
$donneesEmplacement['niveauUn'] = $emplacement;
}
if ($niveau == 2) {
if (is_object($emplacement->getNiveauUn())) {
$donneesEmplacement['niveauUn'] = $emplacement->getNiveauUn()->getId();
}
$donneesEmplacement['niveauDeux'] = $emplacement;
}
if ($niveau == 3) {
if (is_object($emplacement->getNiveauUn())) {
$donneesEmplacement['niveauUn'] = $emplacement->getNiveauUn()->getId();
}
if (is_object($emplacement->getNiveauDeux())) {
$donneesEmplacement['niveauDeux'] = $emplacement->getNiveauDeux()->getId();
}
$donneesEmplacement['niveauTrois'] = $emplacement;
}
if ($niveau == 4) {
if (is_object($emplacement->getNiveauUn())) {
$donneesEmplacement['niveauUn'] = $emplacement->getNiveauUn()->getId();
}
if (is_object($emplacement->getNiveauDeux())) {
$donneesEmplacement['niveauDeux'] = $emplacement->getNiveauDeux()->getId();
}
if (is_object($emplacement->getNiveauTrois())) {
$donneesEmplacement['niveauTrois'] = $emplacement->getNiveauTrois()->getId();
}
$donneesEmplacement['niveauQuatre'] = $emplacement;
}
$emplacement_obj = new Emplacement();
$emplacement_obj->setArticle($article);
$emplacement_obj->setVisibilite(true);
$emplacement_obj->setStock(0);
$emplacement_obj->setStockReserve(0);
$emplacement_obj->setNiveauUn($donneesEmplacement['niveauUn']);
$emplacement_obj->setNiveauDeux($donneesEmplacement['niveauDeux']);
$emplacement_obj->setNiveauTrois($donneesEmplacement['niveauTrois']);
$emplacement_obj->setNiveauQuatre($donneesEmplacement['niveauQuatre']);
$titreEmplacement = "";
if (is_object($emplacement_obj->getNiveauUn())) {
$titreEmplacement .= " ".$emplacement_obj->getNiveauUn()->getLibelle();
}
if (is_object($emplacement_obj->getNiveauDeux())) {
$titreEmplacement .= " ".$emplacement_obj->getNiveauDeux()->getLibelle();
}
if (is_object($emplacement_obj->getNiveauTrois())) {
$titreEmplacement .= " ".$emplacement_obj->getNiveauTrois()->getLibelle();
}
if (is_object($emplacement_obj->getNiveauQuatre())) {
$titreEmplacement .= " ".$emplacement_obj->getNiveauQuatre()->getLibelle();
}
$emplacement_obj->setLibelle($titreEmplacement);
$em->persist($emplacement_obj);
$em->flush();
$em->refresh($emplacement_obj);
return new Response(
json_encode(
[
"idArticleCommande" => $idArticleCommande,
'libelleEmplacement' => $emplacement_obj->getLibelle(),
'idEmplacement' => $emplacement_obj->getId(),
'rendu' => '',
'valide' => '0',
'url' => '',
'titre' => '',
'type' => 'callBackEmplacementCommandeFournisseur',
'emplacement' => $donneesEmplacement,
]
),
200,
['Content-Type' => 'application/json']
);
}
}
$this->addFlash('warning', 'Emplacement non reconnu ('.$request->request->get('codeBarre').').');
}
$rendu = $this->renderView('GestionComerciale/CommandeFournisseurSimplifie/reception-emplacement.html.twig', ['article' => $article]);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]);
}
}