<?php
namespace App\Controller\GestionComerciale;
use App\Entity\Articles\Article;
use App\Entity\Articles\Type;
use App\Entity\Etiquettes\Etiquette;
use App\Entity\GestionComerciale\Commande;
use App\Entity\GestionComerciale\Fabrication;
use App\Entity\GestionComerciale\FabricationMultiple;
use App\Entity\GestionComerciale\StatutFabrication;
use App\Entity\Rangements\NiveauDeux;
use App\Entity\Rangements\NiveauQuatre;
use App\Entity\Rangements\NiveauTrois;
use App\Entity\Rangements\NiveauUn;
use App\Entity\Utilisateur\Utilisateur;
use App\Form\Fabrication\SearchEtiquetteType;
use App\Library\Datatable\Util\Datatable;
use App\Repository\GestionComerciale\FabricationRepository;
use App\Service\GestionComerciale\CommandeService;
use App\Service\GestionComerciale\FabricationService;
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\Form\Extension\Validator\ViolationMapper\ViolationMapper;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Validator\Validation;
use Symfony\Component\Validator\ConstraintViolation;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
class FabricationSimplifieFraisageController extends AbstractController
{
/**
* @Route("/fabrication-simplifie/fraisage/liste", name="dtc_fabrication_fraisage_simplifie_liste")
*/
public function listeFraisageAction(Request $request, $fabricationParente = '', $fabricationMultiple = '', $prestation = '', $commandeFournisseur = '', EntityManagerInterface $em,
Datatable $datatable, TranslatorInterface $translator, FabricationService $fabricationService, CommandeService $commandeService
) {
$this->datatable($request, $datatable, $translator);
$tableauClassColonne = [];
$prestationId = $request->query->get('prestationId');
$ref_bloquante = $request->query->get('ref_bloquante');
$ref_bloquante_label = $request->query->get('ref_bloquante_label');
$fabricable = $request->query->get('fabricable');
$type = $request->query->get('type');
$fabricationMultiple = $request->query->get('fabricationMultiple');
if ($request->isMethod('POST')) {
$etiquettes=[];
//$articleCommandeIds = $request->request->all('dataTables')['actions'];
$repo = $em->getRepository(Fabrication::class);
$fabricationMultiple_obj = $em->getRepository(FabricationMultiple::class)->find($fabricationMultiple);
if(count($fabricationMultiple_obj->getFabrications())) {
foreach($fabricationMultiple_obj->getFabrications() as $fabrication) {
if($fabrication->getStatutFabrication()->getId() != 10) {
$this->addFlash('warning', "Impossible de désassembler l'élément (".$fabrication->getId().") ".$fabrication->getArticleCommandeCommandeClient()->getArticle()->getLibelle()." de la commande ".$fabrication->getArticleCommandeCommandeClient()->getCommande()->getReference()." car le statut de la fabrication est ".$fabrication->getStatutFabrication()->getLibelle().".");
}
else {
if(!is_object($fabrication->getRaisonAnomalie()) or 1==1) {
$fabricationService->creerMvtStock($fabrication);
$etiquettes[]=$fabrication->getFabricationEtiquette();
$donnees=[];
$donnees["message"]=" : ".$fabrication->getReference()." ".$fabrication->getArticleCommandeCommandeClient()->getReference()." (id:".$fabrication->getArticleCommandeCommandeClient()->getId().")";
$commandeService->creerHistorique($fabrication->getArticleCommandeCommandeClient()->getCommande(), 'desassemblage_disque',$donnees);
}
}
}
}
/*
for ($i = 0; $i < count($articleCommandeIds); $i++) {
$fabrication = $repo->find($articleCommandeIds[$i]);
if (is_object($fabrication)) {
$fabricationService->creerMvtStock($fabrication);
$etiquettes[]=$fabrication->getFabricationEtiquette();
$donnees=[];
$donnees["message"]=" : ".$fabrication->getReference()." ".$fabrication->getArticleCommandeCommandeClient()->getReference()." (id:".$fabrication->getArticleCommandeCommandeClient()->getId().")";
$commandeService->creerHistorique($fabrication->getArticleCommandeCommandeClient()->getCommande(), 'desassemblage_disque',$donnees);
}
}
*/
$this->addFlash('notice', "Désassemblage du disque réalisé avec succès !");
return $this->redirectToRoute('dtc_fabrication_multiple_simplifie_fraisage_liste', ['step' => 2,"etiquette"=>$etiquettes]);
}
$tableauClassColonne = [];
$tableauClassColonne[] = ["className" => "colonne_id masquer_colonne", "targets" => [0], "visible" => true, "orderable" => false];
$tableauClassColonne[] = ["className" => "colonne_id text-center", "targets" => [1], "visible" => true, "orderable" => false];
$tableauClassColonne[] = ["className" => "colonne_id ", "targets" => [2], "visible" => true, "orderable" => true];
$tableauClassColonne[] = ["className" => "colonne_id text-center", "targets" => [3], "visible" => true, "orderable" => true];
$tableauClassColonne[] = ["className" => "colonne_id", "targets" => [4], "visible" => true, "orderable" => true];
$tableauClassColonne[] = ["className" => "colonne_id", "targets" => [5], "visible" => true, "orderable" => true];
$tableauClassColonne[] = ["className" => "colonne_id text-center", "targets" => [5], "visible" => true, "orderable" => true];
$tableauClassColonne[] = ["className" => "colonne_id text-center", "targets" => [11], "visible" => true, "orderable" => true];
//if($fabricable == 1) $fabricable = 0; else $fabricable = 1;
$repo_article = $em->getRepository(Article::class);
$repo_type_article = $em->getRepository(Type::class);
$repo_fabrication_multiple = $em->getRepository(FabricationMultiple::class);
// if ($fabricationParente != '' || $fabricationMultiple != '' || $prestation != '' || $commandeFournisseur != '') {
//// $template = 'GestionComerciale/FabricationSimplifie/lister-datatable.html.twig';
// } else {
$template = 'GestionComerciale/FabricationSimplifie/deductive.lister.html.twig';
// }
return $this->render($template, [
'tableauClassColonne' => $tableauClassColonne,
'fabricationParente' => $fabricationParente,
'fabricationMultiple' => $fabricationMultiple,
'fabricationMultipleEntity' => (is_numeric($fabricationMultiple)) ? $repo_fabrication_multiple->find($fabricationMultiple) : null,
'typePrestations' => $repo_article->findBy(['prestation' => 1], ['libelle' => 'ASC']),
'prestationId' => $prestationId,
'prestation' => $prestation,
'commandeFournisseur' => $commandeFournisseur,
'ref_bloquante' => $ref_bloquante,
'ref_bloquante_label' => $ref_bloquante_label,
'fabricable' => $fabricable,
'type' => $type,
'typesArticle' => $repo_type_article->findAll(),
]);
}
/**
* @Route("/fabrication-simplifie/fraisage/grid", name="dtc_fabrication_simplifie_fraisage_liste_grid")
*/
public function gridAction(Request $request, Datatable $datatable, TranslatorInterface $translator)
{
$fabricationParente = $request->query->get('fabricationParente');
$fabricationMultiple = $request->query->get('fabricationMultiple');
$prestationId = $request->query->get('prestationId');
$prestation = $request->query->get('prestation');
$commandeFournisseur = $request->query->get('commandeFournisseur');
$ref_bloquante = $request->query->get('ref_bloquante');
$fabricable = $request->query->get('fabricable');
$type = $request->query->get('type');
$typeFabrication = $request->query->get('typeFabrication');
return $this->datatable(
$request,
$datatable,
$translator,
$fabricationParente,
$fabricationMultiple,
$prestationId,
$prestation,
$commandeFournisseur,
$ref_bloquante,
$fabricable,
$type,
$typeFabrication
)->execute();
}
/**
* set datatable configs
*
* @return \App\Library\Datatable\Util\Datatable
*/
private function datatable(Request $request, Datatable $datatable, TranslatorInterface $translator, $fabricationParente = '', $fabricationMultiple = '', $prestationId = '',
$prestation = '', $commandeFournisseur = '', $ref_bloquante = '', $fabricable = '',
$type = '', $typeFabrication = ''
) {
$get = $request->query->all();
//print_r($get);
$parameters = [];
$datatable->setEntity(Fabrication::class, "f")
->setDatatableId('dta-desassemblage-ofm')
->setFields(
[
$translator->trans("Actions") => 'f.id',
$translator->trans("Réf") => 'f.reference',
$translator->trans("Date usinage") => 'f.dateFabrication',
$translator->trans("Commande") => 'cde.reference',
$translator->trans("Client") => 'clt.nom',
$translator->trans("Libellé") => "a.libelle",
$translator->trans("Réf article") => "a.reference",
$translator->trans("Teinte") => "a.id",
$translator->trans("NBE") => "a.id",
$translator->trans("NBET") => "a.id",
$translator->trans("TRP") => "tr.libelle",
$translator->trans("COMM CLIENT") => "cde.commentaire",
$translator->trans("FLAG") => "ac.fabricationEtiquette",
$translator->trans("STL") => 'fi.id',
"_identifier_" => 'f.id',
]
)
//->addJoin('ac.commande', 'c', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('f.statutFabrication', 's', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('f.article', 'a', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('f.articleCommandeCommandeClient', 'ac', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('ac.commande', 'cde', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('cde.transporteur', 'tr', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('cde.client', 'clt', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('ac.fichier', 'fi', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('f.fabricationMultiple', 'fm', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('a.type', 't', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->setRenderers(
[
0 => [
'view' => 'FO/DataTable/actions-interface-simplifie.html.twig',
'params' => [
'imprimer_flag' => true,
'afficher_icone_reception' => false,
//'edit_route' => 'dtc_fabrication_simplifie_fraisage_reception',
//'supprimer_route' => 'dtc_fabrication_supprimer',
'objet' => Fabrication::class,
'fabrication' => true,
'afficher_icone_anomalie_of' => true,
'table' => 'dta-desassemblage-ofm',
'fabricationMultiple' => $fabricationMultiple,
],
],
2 => [
'view' => 'FO/DataTable/date.html.twig',//'DTCFO/DataTable/choix_fournisseur_controller.html.twig'
],
4 => [
'view' => 'FO/DataTable/client.html.twig',
'params' => [
'edit_route' => 'dtc_client_modifier',
'typeDocument' => 'client',
],
],
7 => [
'view' => 'FO/DataTable/article_attribute.html.twig',
'params' => ['article_id' => 'a.id', 'attribute_libelle' =>'TEINTE'],
],
8 => [
'view' => 'FO/DataTable/article_attribute.html.twig',
'params' => ['article_id' => 'a.id', 'attribute_libelle' =>'NBE'],
],
9 => [
'view' => 'FO/DataTable/article_attribute.html.twig',
'params' => ['article_id' => 'a.id', 'attribute_libelle' =>'NBET'],
],
13 => [
'view' => 'FO/DataTable/article_commande_file.html.twig',
'params' => ['pageCible' => 'desassemblage_disque'],
],
]
)
->setSearch(true)
->setSearchFields([])
->setOrder('f.dateFabrication', 'ASC')
->setMultiple(
[
'fabriquer' => [
'title' => 'Creer une fabrication',
'route' => 'dtc_fabrication_fraisage_simplifie_liste',
],
]
);
$where = 's.id = 10';
//$parametres['article']= 'test';
if ($fabricable != '') {
$where .= ' AND f.fabriquable = 2';
}
$where .= ' AND f.typeFabrication = :typeFabrication';
$parameters['typeFabrication'] = Fabrication::DEDUCTIVE;
if ($fabricationMultiple != '') {
//$datatable->addJoin('f.fabricationMultiple', 'fm', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN);
$where .= ' AND fm.id = '.$fabricationMultiple;
}
if ($where != '') {
$datatable->setWhere($where, $parameters);
}
return $datatable;
}
/**
* @Route("/fabrication-simplifie/fraisage/reception/{id}", name="dtc_fabrication_simplifie_fraisage_reception")
*/
public function receptionnerAction(Request $request, Fabrication $fabrication, EntityManagerInterface $em, TranslatorInterface $translator, FabricationService $fabricationService)
{
$pid = getmypid();
$user = $this->getUser();
//$fabrication->setUtilisateur($user);
$errors = "";
$repo_utilisateur = $em->getRepository(Utilisateur::class);
$repo_commande = $em->getRepository(Commande::class);
$utilisateurs = $repo_utilisateur->findAll();
if ($request->isMethod('POST')) {
$post = $request->request->all();
$articles = [
'ids' => $request->request->get('ids'),
'commentaires' => $request->request->get('commentaires'),
'qtes' => $request->request->get('qtes'),
'qtesCmdes' => $request->request->get('qtesCmdes'),
'pumps' => $request->request->get('pumps'),
'cumps' => $request->request->get('cumps'),
'typesMvt' => $request->request->get('typesMvt'),
'emplacement' => $request->request->get('emplacement'),
];
$valeurs = [
"articles" => $articles,
'niveauUn' => $request->request->get('niveauUn'),
'niveauDeux' => $request->request->get('niveauDeux'),
'niveauTrois' => $request->request->get('niveauTrois'),
'niveauQuatre' => $request->request->get('niveauQuatre'),
];
// dd($articles, $valeurs);
$equipier = $repo_utilisateur->find($request->request->get('equipier'));
//Tester si la fabrication a été modifiée à la réception
// Si la fabrication a été modifiée on crée une nouvelle fabrication correspondant à cette réception et on modifie la réception existante
$newFabrication = false;
foreach ($fabrication->getArticleCommande() as $ac) {
$articleId = $ac->getArticle()->getId();
if ( ! in_array($articleId, $articles['ids'])) {
$newFabrication = true;
}
}
if ($newFabrication == true) {
//Création de la nouvelle fabrication
$valeurs['receptionnee'] = true;
$newFabrication = $fabricationService->modifierFabricationEtCreerNewFabrication($fabrication, $articles, $equipier);
$this->addFlash('notice', $translator->trans('Nouvel ordre de fabrication créé !'));
$url = $this->generateUrl('dtc_fabrication_modifier', ["id" => $newFabrication->getId(), 'tabs' => '#fabrications']);
//$url = $this->generateUrl('dtc_fabrication_modifier',array("id"=>$fabrication->getId(), 'tabs'=>'#fabrications'));
return new JsonResponse(['rendu' => '', 'valide' => '1', 'url' => $url]);
} else {
$fabricationService->creerMvtStock($fabrication, $valeurs, '', $equipier);
//echo 'test';
//$this->addFlash('notice', 'Réception de la fabrication '.$fabrication->getReference().' réalisée avec succès !' );
$url = $this->generateUrl('dtc_fabrication_modifier', ["id" => $fabrication->getId()]);
if ($request->query->get('commandeFournisseur') != '') {
$url = $this->generateUrl('dtc_commande_fournisseur_modifier', ["id" => $request->query->get('commandeFournisseur'), 'tabs' => '#fabrications']);
} elseif ($request->query->get('fabricationMultiple') != '') {
$url = $this->generateUrl('dtc_fabrication_multiple_modifier', ["id" => $request->query->get('fabricationMultiple'), 'tabs' => '#fabrications']);
}
//$url = $this->generateUrl('dtc_fabrication_simplifie_liste',array());
$url = $this->generateUrl('dtcfo_interface_simplifie_validation', []);
$route = $this->generateUrl('dtc_fabrication_simplifie_fraisage_liste', []);
$message = '<br/>Fabrication réceptionné 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));
// TODO refactor commande
// $builder = new ProcessBuilder();
// $builder->setArguments(['php', '../app/console', 'articlesComposesModifierCondHa:maj']);
// $builder->getProcess()->start();
//exit;
return new JsonResponse(['rendu' => '', 'valide' => '1', 'url' => $url]);
}
}
$etiquettes = $repo_commande = $em->getRepository(Etiquette::class)->findAll();
$titre_modal = $translator->trans('Voulez-vous générer les mouvements de stock ?');
return $this->render(
'GestionComerciale/FabricationSimplifie/deductive.reception.html.twig',
['pid' => $pid, 'errors' => $errors, 'fabrication' => $fabrication, 'user' => $user, 'utilisateurs' => $utilisateurs, 'etiquettes' => $etiquettes]
);//'form' => $form->createView(),
//$rendu = $this->renderView('GestionComerciale/FabricationSimplifie/reception.html.twig', array('errors'=>$errors,'fabrication'=>$fabrication,'user'=>$user, 'utilisateurs'=>$utilisateurs, 'etiquettes'=>$etiquettes));//'form' => $form->createView(),
//return new Response(json_encode(array('rendu'=>$rendu,'valide'=>'0','url'=>'','titre'=>$titre_modal)), 200, array('Content-Type'=>'application/json'));
}
/**
* @Route("", name="")
*/
public function ____receptionnerEmplacementAction(Request $request, Fabrication $fabrication, EntityManagerInterface $em, TranslatorInterface $translator, ValidatorInterface $validator)
{
//$emplacement = $objet;
$titre_modal = $translator->trans("Ou allez-vous déposer la marchandise fabriquée ?");
$get = $request->query->all();
$user = $this->getUser();
//$rendu = $this->renderView('Rangements/Rangement/ajouter.html.twig', array('fabrication' => $fabrication));
$rendu = $this->renderView('GestionComerciale/FabricationSimplifie/reception-emplacement.html.twig', ['fabrication' => $fabrication]);
return new Response(json_encode(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]));
}
/**
* @Route("/fabrication-simplifie-emplacement/fraisage/reception/{id}", name="dtc_fabrication_simplifie_fraisage_reception_emplacement")
*/
public function receptionnerEmplacementAction(Request $request, Fabrication $fabrication, EntityManagerInterface $em, TranslatorInterface $translator)
{
$titre_modal = $translator->trans("Ou allez-vous déposer la marchandise fabriquée ?");
$get = $request->query->all();
$user = $this->getUser();
$codeBarre = trim($request->request->get('codeBarre'));
if ($request->isMethod('post')) {
if ( ! 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' => '',
'niveauDeux' => '',
'niveauTrois' => '',
'niveauQuatre' => '',
];
if ($niveau == 1) {
$donneesEmplacement['niveauUn'] = $emplacement->getId();
}
if ($niveau == 2) {
if (is_object($emplacement->getNiveauUn())) {
$donneesEmplacement['niveauUn'] = $emplacement->getNiveauUn()->getId();
}
$donneesEmplacement['niveauDeux'] = $emplacement->getId();
}
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->getId();
}
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->getId();
}
return new JsonResponse(
[
'rendu' => '',
'valide' => '0',
'url' => '',
'titre' => '',
'type' => 'callBackEmplacementFabrication',
'emplacement' => $donneesEmplacement,
]
);
}
}
$this->addFlash('warning', 'Emplacement non reconnu ('.$request->request->get('codeBarre').').');
}
$rendu = $this->renderView('GestionComerciale/FabricationSimplifie/reception-emplacement.html.twig', ['fabrication' => $fabrication]);
return new JsonResponse(['rendu' => $rendu, 'valide' => '0', 'url' => '', 'titre' => $titre_modal]);
}
/**
* @Route("/fabrication-simplifie/fraisage/liste/", name="dtc_fabrication_simplifie_fraisage_liste")
*/
public function listFabricationMultipleFraisage(Request $request, $fabricationParente = '', $fabricationMultiple = '', $prestation = '', $commandeFournisseur = '',
EntityManagerInterface $em,
Datatable $datatable, TranslatorInterface $translator
) {
$this->datatableOFM($request, $datatable, $translator, Fabrication::DEDUCTIVE);
$tableauClassColonne = [];
$tableauClassColonne = [];
$tableauClassColonne[] = ["className" => "colonne_id", "targets" => [0], "visible" => false, "orderable" => false];
$tableauClassColonne[] = ["className" => "colonne_id text-center", "targets" => [1], "visible" => true, "orderable" => false];
$tableauClassColonne[] = ["className" => "colonne_id text-center", "targets" => [2], "visible" => true, "orderable" => true];
$tableauClassColonne[] = ["className" => "colonne_id", "targets" => [3], "visible" => true, "orderable" => true];
$tableauClassColonne[] = ["className" => "colonne_id", "targets" => [4], "visible" => true, "orderable" => true];
// $tableauClassColonne[] = ["className" => "colonne_id", "targets" => [5], "visible" => true, "orderable" => true];
// $tableauClassColonne[] = ["className" => "colonne_id text-center", "targets" => [6], "visible" => true, "orderable" => true];
// $tableauClassColonne[] = ["className" => "colonne_id text-center", "targets" => [7], "visible" => true, "orderable" => true];
$tableauClassColonne[] = ["className" => "colonne_id text-center", "targets" => [5], "visible" => true, "orderable" => true];
$tableauClassColonne[] = ["className" => "colonne_id text-left", "targets" => [6], "visible" => true, "orderable" => true];
// $tableauClassColonne[] = ["className" => "colonne_id", "targets" => [7], "visible" => true, "orderable" => false];
$prestationId = $request->query->get('prestationId');
$ref_bloquante = $request->query->get('ref_bloquante');
$ref_bloquante_label = $request->query->get('ref_bloquante_label');
$fabricable = $request->query->get('fabricable');
$type = $request->query->get('type');
//if($fabricable == 1) $fabricable = 0; else $fabricable = 1;
$repo_article = $em->getRepository(Article::class);
$repo_type_article = $em->getRepository(Type::class);
if ($fabricationParente != '' || $fabricationMultiple != '' || $prestation != '' || $commandeFournisseur != '') {
$template = 'GestionComerciale/FabricationSimplifie/lister-datatable.html.twig';
} else {
$template = 'GestionComerciale/FabricationSimplifie/lister.html.twig';
}
return $this->render($template, [
'tableauClassColonne' => $tableauClassColonne,
'fabricationParente' => $fabricationParente,
'fabricationMultiple' => $fabricationMultiple,
'typePrestations' => $repo_article->findBy(['prestation' => 1], ['libelle' => 'ASC']),
'prestationId' => $prestationId,
'prestation' => $prestation,
'commandeFournisseur' => $commandeFournisseur,
'ref_bloquante' => $ref_bloquante,
'ref_bloquante_label' => $ref_bloquante_label,
'fabricable' => $fabricable,
'type' => $type,
'typesArticle' => $repo_type_article->findAll(),
]);
}
/**
* @Route("/fabrication-simplifie/fraisage/desassemblage/recherche/", name="dtc_fabrication_simplifie_fraisage_disassembled_recherche_etiquette")
*/
public function searchFromEtiquette(Request $request, FabricationRepository $fabricationRepository
) {
$fabricationType = $request->query->getInt('step', 1);
$form = $this->createForm(SearchEtiquetteType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
$etiqueetteFabrication = $data['etiquette'];
$fabrication = $fabricationRepository->searchFromEtiquette($etiqueetteFabrication, ($fabricationType === 1) ? 5 : 1);
if ($fabrication === null) {
$this->addFlash('warning', 'Aucune fabrication avec cette etiquette');
return $this->redirectToRoute('dtc_fabrication_simplifie_disassembled_recherche_etiquette', ['step' => $fabricationType]);
} else {
if ($fabricationType === 1) {
return $this->render(
'GestionComerciale/FabricationSimplifie/desassemblage.html.twig',
[
'form' => $form->createView(),
'fabrication' => $fabrication,
]
);
} else {
return $this->redirectToRoute(
'dtc_fabrication_simplifie_reception',
[
'id' => $fabrication->getId(),
]
);
}
}
}
return $this->render('GestionComerciale/FabricationSimplifie/recherche_etiquette.html.twig', [
'form' => $form->createView(),
]);
}
/**
* @Route("/fabrication-simplifie/fraisage/desassemblage/{id}", name="dtc_fabrication_simplifie_desassemblage_fraisage")
*/
public function setFabicrationDisassembled(Request $request, Fabrication $fabrication, EntityManagerInterface $entityManager, FabricationRepository $fabricationRepository)
{
$fabrication->setStatutFabrication($entityManager->getReference(StatutFabrication::class, 9));
$entityManager->flush();
$this->addFlash('success', 'Fabrication mis a jour avec succes');
if ($fabricationRepository->getNbFabricationAdditiveNotDisasembled($fabrication->getFabricationMultiple()->getId()) === 0) {
$this->addFlash('success', 'Toutes les fabrication additives sont désassemblées');
$fabrication->getFabricationMultiple()->setStatutFabricationMultiple($entityManager->getReference(StatutFabrication::class, 8));
$entityManager->flush();
return $this->redirectToRoute('dtcfo_homepage', ['ms' => 1]);
}
return $this->redirectToRoute('dtc_fabrication_simplifie_fraisage_liste', ['fabricationMultiple' => $fabrication->getFabricationMultiple()->getId()]);
}
}