src/Controller/Articles/MouvementStockSimplifieController.php line 69

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Articles;
  3. use App\Entity\Articles\Article;
  4. use App\Entity\Articles\ArticleComposant;
  5. use App\Entity\Articles\ConditionAchat;
  6. use App\Entity\Articles\MouvementStock;
  7. use App\Entity\GestionComerciale\ArticleCommande;
  8. use App\Form\Articles\MouvementStockSimplifieType;
  9. use App\Service\Articles\ArticleService;
  10. use App\Service\Articles\MouvementStockService;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpFoundation\JsonResponse;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\HttpFoundation\StreamedResponse;
  17. use Symfony\Component\Routing\Annotation\Route;
  18. use Symfony\Component\Validator\Validator\ValidatorInterface;
  19. use Symfony\Contracts\Translation\TranslatorInterface;
  20. class MouvementStockSimplifieController extends AbstractController
  21. {
  22.     /**
  23.      * @Route("/mouvement-stock-simplifie", name="dtc_mouvement_stock_simplifie_scan")
  24.      */
  25.     public function scanAction(Request $requestEntityManagerInterface $emTranslatorInterface $translator)
  26.     {
  27.         $repo_article $em->getRepository(Article::class);
  28.         $errors = [];
  29.         //25112020
  30.         if($request->isMethod('POST')) {
  31.             $bp '';
  32.             $scan trim($request->request->get('scan'));
  33.             if($scan != '')
  34.             {
  35.                 //$article_obj = $repo_article->findOneBy(array("reference"=>$scan));
  36.                 $article_obj $em->getRepository(Article::class)->getArticleParReferenceV2($scan);
  37.             }
  38.             if(is_object($article_obj))
  39.             {
  40.                 return $this->redirectToRoute('dtc_mouvement_stock_simplifie', ["id" =>$article_obj->getId()]);
  41.            }
  42.            else {
  43.                 $route $this->generateUrl('dtc_mouvement_stock_simplifie_scan', []);
  44.                 $message '<br/>Article introuvable ! <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>';
  45.                 $this->addFlash'warning',$translator->trans($message));
  46.                 //$this->addFlash('notice',$translator->trans('Aucun BP à emballer!'));
  47.                 return $this->redirectToRoute('dtcfo_interface_simplifie_validation', ["type" =>"scanArticle",]);
  48.            }
  49.         }
  50.         else
  51.         {
  52.             return $this->render('Articles/MouvementStockSimplifie/scan.html.twig', []);
  53.         }
  54.         return $this->render('Articles/MouvementStockSimplifie/scan.html.twig', ["errors" =>$errors]);
  55.     }
  56.     /**
  57.      * @Route("/mouvement-stock-simplifie/{id}", name="dtc_mouvement_stock_simplifie")
  58.      */
  59.     public function ajouterAction(Request $requestArticle $article$modal=''EntityManagerInterface $emArticleService $articleServiceMouvementStockService $mouvementStockServiceTranslatorInterface $translatorValidatorInterface $validator) {
  60.                 //$modal = $request->query->get('modal');
  61.         $user $this->getUser();
  62.         $ms = new MouvementStock();
  63.         $ms->setArticle($article);
  64.         $ms->setUtilisateur($user);
  65.         $form $this->createForm(MouvementStockSimplifieType::class, $ms);
  66.         $errors "";
  67.             $pump2 $em->getRepository(Article::class)->getPumpR($article->getId());
  68.             if($pump2 == 0$pump2 $articleService->getPrixAchatNetEuro($article->getId());
  69.             $cpump2 $em->getRepository(Article::class)->getPumpC($article->getId());
  70.             //graphiques
  71.             $variationsStock $em->getRepository(MouvementStock::class)->getVariationsStockParMois($article->getId(), 12);
  72.             $variationsPump $em->getRepository(MouvementStock::class)->getVariationsPumpParMois($article->getId(), 12);
  73.             $variationsCpump $em->getRepository(MouvementStock::class)->getVariationsCpumpParMois($article->getId(), 12);
  74.             $repoArticleCommande $em->getRepository(ArticleCommande::class);
  75.             $ralClient $repoArticleCommande->getRalClient($article);
  76.             $total_devise $repoArticleCommande->getDevisArticle($article);
  77.             //reservations de stock
  78.             $repo_article_composant $em->getRepository(ArticleComposant::class);
  79.             //$composants = $repo_article_composant->findByArticle($article);
  80.             $composants $repo_article_composant->getComposantsComposeVirtuel($article)->getQuery()->getResult();
  81.             $reservations $repoArticleCommande->getRalClientEtCmdAssociees($article$composants);
  82.             $reservationsFabrications $repoArticleCommande->getReservationsFabrications($article$composants);
  83.             //\Doctrine\Common\Util\Debug::dump($reservations);
  84.             $form->handleRequest($request);
  85.             if ($form->isSubmitted()) {
  86.             if ($form->isValid()) {
  87.                 $dernierMouvement $em->getRepository(MouvementStock::class)->findOneBy(['article' =>$article], ['id' => 'DESC']);
  88.                 $dernierMouvementDate $em->getRepository(MouvementStock::class)->getDernierMouvementDateHeure($article->getId(),$ms->getDateMvt());
  89.                 //$prixUnitaire = $dernierMouvementDate["pump"];
  90.                 //$stockValorisation = $dernierMouvementDate["stock"];
  91.                 $dernierMouvement$em->getRepository(MouvementStock::class)->find($dernierMouvementDate["id"]);
  92.                 if(is_object($dernierMouvement)) {
  93.                     //$ms->setPrixAchat($dernierMouvement->getPrixAchat());
  94.                      $prixRegulation 0;
  95.                      if($dernierMouvement->getCpump() != NULL && $dernierMouvement->getCpump() != "") {
  96.                          $prixRegulation $dernierMouvement->getCpump();
  97.                      }
  98.                      else if($dernierMouvement->getAnnexe() != NULL && $dernierMouvement->getAnnexe() != "") {
  99.                          $prixRegulation $dernierMouvement->getAnnexe();
  100.                      }
  101.                      else {
  102.                          $repo_condha =$em->getRepository(ConditionAchat::class);
  103.                         $condHa $repo_condha->findOneBy(["article" =>$article"defaut" =>1]);
  104.                         if(is_object($condHa)) {
  105.                             $prix $condHa->getPrixAchatNet();
  106.                             if($condHa->getCoefficientConditionnement() != 0$prix $prix $condHa->getCoefficientConditionnement();
  107.                             $tauxChange 1;
  108.                             $fournisseur $condHa->getFournisseur();
  109.                             if(is_object($fournisseur)) $devise $fournisseur->getDevise();
  110.                             if(is_object($devise) && $devise->getTauxChange() != 0$tauxChange $devise->getTauxChange();
  111.                             $prix $prix $tauxChange;
  112.                             $prixRegulation $prix;
  113.                         }
  114.                         else {
  115.                             $condHa $repo_condha->findOneBy(["article" =>$article]);
  116.                             if(is_object($condHa)) {
  117.                                 $prix $condHa->getPrixAchatNet();
  118.                                 if($condHa->getCoefficientConditionnement() != 0$prix $prix $condHa->getCoefficientConditionnement();
  119.                                 $tauxChange 1;
  120.                                 $fournisseur $condHa->getFournisseur();
  121.                                 if(is_object($fournisseur)) $devise $fournisseur->getDevise();
  122.                                 if(is_object($devise) && $devise->getTauxChange() != 0$tauxChange $devise->getTauxChange();
  123.                                 $prix $prix $tauxChange;
  124.                                 $prixRegulation $prix;
  125.                             }
  126.                         }
  127.                      }
  128.                     //$ms->setPrixAchat($dernierMouvement->getPrixAchat());
  129.                     //$ms->setPrixSansRemise($dernierMouvement->getPrixSansRemise());
  130.                     $ms->setPrixAchat($prixRegulation);
  131.                     $ms->setPrixSansRemise($prixRegulation);
  132.                     //$ms->setRemise($dernierMouvement->getRemise());
  133.                     //$ms->setRemiseSuppl($dernierMouvement->getRemiseSuppl());
  134.                 }
  135.                 //echo $user->getEmail();
  136.                 $ms->setUtilisateur($user);
  137.                 $mouvementStockService->sauvegarder($ms$article,"regulation");
  138.                 $route "";
  139.                 $route $this->generateUrl('dtc_mouvement_stock_simplifie_scan', []);
  140.                 $message '<br/>Mise à jour du stock réalisé 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>';
  141.                 $this->addFlash'notice',$translator->trans($message));
  142.                 return $this->redirectToRoute('dtcfo_interface_simplifie_validation', ["type" =>"emballage"]);
  143.                 //return $this->redirectToRoute('dtc_article_modifier',array('id' => $article->getId(), 'pump2' => $pump2, 'tab' => 'stocks', 'variationsStock' => $variationsStock, 'variationsPump' => $variationsPump));
  144.                 //return $this->redirectToRoute('dtc_article_modifier',array('id' => $article->getId(), 'tab' => 'stocks'));
  145.             }
  146.             else {
  147.                 $errors $validator->validate($ms);
  148.                 //return $this->redirectToRoute('dtc_article_modifier',array('id' => $article->getId(),'forms'=>$form,'tab'=>'stocks', 'pump2' => $pump2, 'variationsStock' => $variationsStock, 'variationsPump' => $variationsPump, 'variationsCpump' => $variationsCpump));
  149.             }
  150.         }
  151.         return $this->render('Articles/MouvementStockSimplifie/ajouter.html.twig', [
  152.             'form' => $form->createView(),
  153.             'errors'=>$errors,
  154.             'article'=>$article,
  155.             'pump2' => $pump2,
  156.             'variationsStock' => $variationsStock,
  157.             'variationsPump' => $variationsPump,
  158.             'variationsCpump' => $variationsCpump,
  159.             'ralClient'=>$ralClient,
  160.             'reservations'=>$reservations,
  161.             'reservationsFabrications' => $reservationsFabrications,
  162.             'modal' => $modal,
  163.             'total_devise'=>$total_devise,
  164.             'composants' => $composants
  165.         ]);
  166.     }
  167. }