src\Controller\EDIController.php line 42

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\JOURNAL;
  4. use App\Entity\Bpartner;
  5. use App\Entity\Gaccentry;
  6. use App\Entity\CompteTier;
  7. use App\Entity\Gaccentryd;
  8. use App\Entity\Partenaire;
  9. use Psr\Log\LoggerInterface;
  10. use Doctrine\DBAL\Connection;
  11. use Doctrine\ORM\Query\Expr\Join;
  12. use App\Service\ConnectionService;
  13. use Doctrine\Persistence\ManagerRegistry;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. use Symfony\Component\HttpFoundation\JsonResponse;
  18. use Symfony\Contracts\HttpClient\HttpClientInterface;
  19. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  20. class EDIController extends AbstractController
  21. {
  22.     private $em;
  23.     public function __construct(ConnectionService $em)
  24.     {
  25.         $this->em $em;
  26.     }
  27.     #[Route('/edi'name'app_edi')]
  28.     public function index(): Response
  29.     {
  30.         return $this->render('edi/index.html.twig', [
  31.             'controller_name' => 'EDIController',
  32.         ]);
  33.     }
  34.     #[Route('/getCodeAdonix'name'app_getCodeAdonix')]
  35.     public function getCodeAdonix(): Response
  36.     {
  37.         $results $this->em->getEntity()->getRepository(Gaccentry::class)->findByDate(); // Adjust the method to match your repository
  38.         // dd($results);
  39.         foreach ($results as $entry) {
  40.             // Access properties using getters or directly
  41.             $num $entry->getNum(); // Assuming you have a getNum() method
  42.     
  43.             // Use $num in your SQL query
  44.             $searchAdonix $this->em->getSage()->fetchAllAssociative("SELECT REF_0, NUM_0 FROM HCZ.GACCENTRY WHERE REF_0 = '".$num."' ");
  45.             
  46.             if ($searchAdonix) {
  47.                 # code...
  48.                 // dd($searchAdonix);
  49.                 $entry->setObservationFczFlag6($searchAdonix[0]['NUM_0']);
  50.                 $entry->setFczFlag6(8);
  51.                 $this->em->getEntity()->persist($entry);
  52.                 
  53.             }
  54.         }
  55.         $this->em->getEntity()->flush();
  56.         return new Response('ok');
  57.     }
  58.     
  59.     #[Route('/PieceControle'name'app_PieceControle')]
  60.     public function PieceControle(): Response
  61.     {
  62.         $conditionMet false;
  63.         $Gaccentries  $this->em->getEntity()->getRepository(Gaccentry::class)->findPieceValid();
  64.         // dd($Gaccentries);
  65.             $sumArray = [];
  66.             foreach ($Gaccentries as $key => $Gac) {
  67.                 // fcz_flag6 = 8 Is Exsit In Table Comptabilité sage
  68.                 $num $Gac->getNum();
  69.                 $RefCheck $this->em->getSage()->fetchAllAssociative("SELECT REF_0,NUM_0 FROM HCZ.GACCENTRY WHERE REF_0 = '".$num."' ");
  70.                 foreach ($RefCheck as $key => $value) {
  71.                     if ($RefCheck) {
  72.                         $Gac->setObservationFczFlag6($value['NUM_0']);
  73.                         $Gac->setFczFlag6(8);
  74.                         $conditionMet true;
  75.                     }
  76.                 }
  77.             // fcz_flag6 = 4 Is Exsit In dbcom 
  78.                 $NumCheck $this->em->getDbcom()->fetchAllAssociative("SELECT NUM_0,NUMX3_0 FROM YGAS WHERE NUM_0 = '".$num."' ");
  79.                 // dd($NumCheck);
  80.                 foreach ($NumCheck as $key => $value) {
  81.                     if ($NumCheck) {
  82.                         $Gac->setObservationFczFlag6(empty($value['NUMX3_0']) ? $value['NUM_0'] : $Gac->getObservationFczFlag6());
  83.                         $Gac->setFczFlag6(4);
  84.                         $Gac->setFczFlag3(1);
  85.                         $conditionMet true;
  86.                     }
  87.                 }
  88.             // fcz_flag6 = 9 Piece a Probleme 
  89.                 $jouCheck          $Gac->getJou();
  90.                 $matchingJournals  $this->em->getEntity()->getRepository(JOURNAL::class)->findJournal($jouCheck);
  91.                 if (!$matchingJournals) {
  92.                     $Gac->setObservationFczFlag6('JOURNAL N EXISTE PAS DANS SAGE' ' ' $jouCheck);
  93.                     $Gac->setFczFlag6(9);
  94.                     $conditionMet true;
  95.                 } 
  96.                 $cpy1Check    $Gac->getCpy1();
  97.                 $matchingCpy  $this->em->getEntity()->getRepository(Partenaire::class)->findCpy($cpy1Check);
  98.                 if (!$matchingCpy) {
  99.                     $Gac->setObservationFczFlag6('DOSSIER N EXISTE PAS DANS SAGE' ' ' $cpy1Check);
  100.                     $Gac->setFczFlag6(9);
  101.                     $conditionMet true;
  102.                 } 
  103.                 $fcy1Check    $Gac->getFcy1();
  104.                 $matchingFcy  $this->em->getEntity()->getRepository(Partenaire::class)->findFcy($fcy1Check);
  105.                 if (!$matchingFcy) {
  106.                     $Gac->setObservationFczFlag6('SOUS DOSSIER N EXISTE PAS DANS SAGE' ' ' $fcy1Check);
  107.                     $Gac->setFczFlag6(9);
  108.                     $conditionMet true;
  109.                 } 
  110.                 if ($Gac->getCur() != 'MAD') {
  111.                     $Gac->setObservationFczFlag6('DEVISE NON MAD' ' ' $Gac->getCur());
  112.                     $Gac->setFczFlag6(9);
  113.                     $conditionMet true;
  114.                 }
  115.                 
  116.                 $Year = (int) $Gac->getAccdat()->format('Y');
  117.                 if ($Year 2023 || $Year 2024 || $Year == 2023) {
  118.                 // if ($Year < 2023 || $Year > 2024 ) {
  119.                     // dd('Hi');
  120.                     $Gac->setObservationFczFlag6('DIFFÉRENCE DE DATE DE 2024');
  121.                     $Gac->setFczFlag6(9);
  122.                     $conditionMet true;
  123.                 }
  124.                 if ($Gac->getDesvcr() && strpos($Gac->getDesvcr(), ';') !== false) {
  125.                     $Gac->setObservationFczFlag6('DÉSIGNATION AVEC POINT-VIRGULE');
  126.                     $Gac->setFczFlag6(9);
  127.                     $conditionMet true;
  128.                 }
  129.                 if ($Gac->getAccdat()->format('Y-m-d H:i:s') !== $Gac->getDuddat()->format('Y-m-d H:i:s') || $Gac->getAccdat()->format('Y-m-d H:i:s') !== $Gac->getRatdat()->format('Y-m-d H:i:s') ) {
  130.                     // dd($Gac->getAccdat(),$Gad->getAccdat());
  131.                     $Gac->setObservationFczFlag6('DIFFÉRENCE DATE');
  132.                     $Gac->setFczFlag6(9);
  133.                     $conditionMet true;
  134.                 }
  135.                 $typCheck $Gac->getTyp1();
  136.                 $sum "0";
  137.                 $matchingType  $this->em->getEntity()->getRepository(JOURNAL::class)->findType($typCheck);
  138.                 if ($matchingType) {
  139.                     $Gaccentryds  $Gac->getGaccentryds();
  140.                     if ($Gaccentryds->isEmpty()) {
  141.                         $Gac->setObservationFczFlag6('PIÈCE SANS DET');
  142.                         $Gac->setFczFlag6(9);
  143.                         $conditionMet true;
  144.                     }else {
  145.                         foreach ($Gaccentryds as $key => $Gad) {
  146.                             if ($Gac->getTyp1() !== $Gad->getTyp0()) {
  147.                                 $Gac->setObservationFczFlag6('TYPES NE SONT PAS LES MÊMES' ' ' .$Gac->getTyp1() . ' ' $Gad->getTyp0() );
  148.                                 $Gac->setFczFlag6(9);
  149.                                 $conditionMet true;
  150.                             }
  151.                             if ($Gac->getAccdat()->format('Y-m-d H:i:s') !== $Gad->getAccdat()->format('Y-m-d H:i:s')) {
  152.                                 // dd($Gac->getAccdat(),$Gad->getAccdat());
  153.                                 $Gac->setObservationFczFlag6('DIFFÉRENCE DE 2024');
  154.                                 $Gac->setFczFlag6(9);
  155.                                 $conditionMet true;
  156.                             }
  157.                             
  158.                             // dd("Hi date");
  159.                             if ($Gad->getAmtcur() < 0) {   
  160.                                 $Gac->setObservationFczFlag6('MONTANT NÉGATIF' ' ' $Gad->getAmtcur());
  161.                                 $Gac->setFczFlag6(9);
  162.                                 $conditionMet true;
  163.                             }
  164.                             if ($Gad->getSns() !== && $Gad->getSns() !== -1  ) {
  165.                                 $Gac->setObservationFczFlag6('SENS DIFFÉRENCE DE 1 ET -1' ' ' $Gad->getSns());
  166.                                 $Gac->setFczFlag6(9);
  167.                                 $conditionMet true;
  168.                             }
  169.                             $cceCheck     $Gad->getCce0();
  170.                             $matchingCce  $this->em->getEntity()->getRepository(Partenaire::class)->findCce($cceCheck);
  171.                             if (!$matchingCce) {
  172.                                 $Gac->setObservationFczFlag6('CCE N EXISTE PAS DANS SAGE' ' ' $cceCheck);
  173.                                 $Gac->setFczFlag6(9);
  174.                                 $conditionMet true;
  175.                             } 
  176.                             $accCheck     $Gad->getAcc();
  177.                             $cleanaccCheck str_replace(array("\r""\n"), ''$accCheck);
  178.                             $matchingAcc  $this->em->getEntity()->getRepository(CompteTier::class)->findAccByAcc($cleanaccCheck);
  179.                             if (!$matchingAcc) {
  180.                                 $Gac->setObservationFczFlag6('ACC N EXISTE PAS DANS SAGE' ' ' $Gad->getAcc());
  181.                                 $Gac->setFczFlag6(9);
  182.                                 $conditionMet true;
  183.                             } 
  184.                             foreach ($matchingAcc as $key => $value) {
  185.                                 if ($value['sac'] == '2') {
  186.                                     if (substr($Gad->getAcc(), 01) == '3') {
  187.                                         if ($Gad->getBpr()) {
  188.                                             $customerCheck $Gad->getBpr();
  189.                                             $cleanaccCheckCustomer str_replace(array("\r""\n"), ''$customerCheck);
  190.                                             $matchingCustomer  $this->em->getEntity()->getRepository(Bpartner::class)->findCustomer($cleanaccCheckCustomer);
  191.                                             if (!$matchingCustomer) {
  192.                                                 $Gac->setObservationFczFlag6('CLIENT N EXISTE PAS DANS SAGE ' ' ' $Gad->getBpr());
  193.                                                 $Gac->setFczFlag6(9);
  194.                                                 $conditionMet true;
  195.                                                 // if ($matchingCustomer->getActive() == 1) {
  196.                                                 //     // dd($matchingSupplier);
  197.                                                 //     $Gac->setObservationFczFlag6('CUSTOMER NOT ACTIVE IN SAGE' . ' ' . $Gad->getBpr());
  198.                                                 //     $Gac->setFczFlag6(9);
  199.                                                 //     $conditionMet = true;
  200.                                                 // }
  201.                                                 
  202.                                             }
  203.                                             elseif ($matchingCustomer?->getActive() === 1) {
  204.                                                 // dd($matchingCustomer);
  205.                                                 $Gac->setObservationFczFlag6('CLIENT NON ACTIF DANS SAGE' ' ' $Gad->getBpr());
  206.                                                 $Gac->setFczFlag6(9);
  207.                                                 $conditionMet true;
  208.                                             }
  209.                                         }else {
  210.                                             $Gac->setObservationFczFlag6('COMPTE CLIENT COLLECTIF SANS TIER' ' ' $Gad->getAcc());
  211.                                             $Gac->setFczFlag6(9);
  212.                                             $conditionMet true;
  213.                                         }
  214.                                     }if (substr($Gad->getAcc(), 01) == '4') {
  215.                                         if ($Gad->getBpr()) {
  216.                                             $supplierCheck    $Gad->getBpr();
  217.                                             $cleanaccCheckSupplier str_replace(array("\r""\n"), ''$supplierCheck);
  218.                                             $matchingSupplier $this->em->getEntity()->getRepository(Bpartner::class)->findSupplier($cleanaccCheckSupplier);
  219.                                             if (!$matchingSupplier) {
  220.                                                 $Gac->setObservationFczFlag6('FOURNISSEUR N EXISTE PAS DANS SAGE' ' ' $Gad->getBpr());
  221.                                                 $Gac->setFczFlag6(9);
  222.                                                 $conditionMet true;
  223.                                             }
  224.                                             elseif ($matchingSupplier->getActive() == 1) {
  225.                                                 $Gac->setObservationFczFlag6('FOURNISSEUR NON ACTIF DANS SAGE' ' ' $Gad->getBpr());
  226.                                                 $Gac->setFczFlag6(9);
  227.                                                 $conditionMet true;
  228.                                             }
  229.                                             //     dd($matchingSupplier);
  230.                                             // if ($matchingSupplier->getActive() == 1) {
  231.                                             //     // dd($matchingSupplier);
  232.                                             //     $Gac->setObservationFczFlag6('SUPPLIER NOT ACTIVE IN SAGE' . ' ' . $Gad->getBpr());
  233.                                             //     $Gac->setFczFlag6(9);
  234.                                             //     $conditionMet = true;
  235.                                             // }
  236.                                             // elseif($matchingSupplier->getActive() == null) {
  237.                                             //     $Gac->setObservationFczFlag6('SUPPLIER IS NUL' . ' ' . $Gad->getBpr());
  238.                                             //     $Gac->setFczFlag6(9);
  239.                                             //     $conditionMet = true;
  240.                                             // }
  241.                                         }else {
  242.                                             $Gac->setObservationFczFlag6('COMPTE FOURNISSEUR COLLECTIF SANS TIER' ' ' $Gad->getAcc());
  243.                                             $Gac->setFczFlag6(9);
  244.                                             $conditionMet true;
  245.                                         }
  246.                                     }
  247.                                 }
  248.                                 $all_acc substr($Gad->getAcc(), 01);
  249.                                 if ($all_acc == '5' || $all_acc == '6' || $all_acc == '7' || $all_acc == '2' || $all_acc == '1') {
  250.                                     if ($Gad->getBpr()) {
  251.                                         // dd($Gac->getBpr());
  252.                                         $Gac->setObservationFczFlag6('COMPTE' $Gad->getAcc() . 'AVEC TIER ' $Gad->getBpr());
  253.                                         $Gac->setFczFlag6(9);
  254.                                         $conditionMet true;
  255.                                     }
  256.                                 }
  257.                                 // if ($all_acc == '7' || $all_acc == '2' || $all_acc == '1') {
  258.                                 //     if ($Gad->getBpr()) {
  259.                                 //         $Gac->setObservationFczFlag6('ACC ' . $Gad->getAcc() . ' HAS TIER '. $Gad->getBpr());
  260.                                 //         $Gac->setFczFlag6(9);
  261.                                 //         $conditionMet = true;
  262.                                 //     }
  263.                                 // }
  264.                             }
  265.                             // $amtcur = round($Gad->getAmtcur(), 2);
  266.                             // if ($Gad->getSns() === -1) {
  267.                             //     $amtcur = -$amtcur;
  268.                             // }
  269.                         
  270.                             // $sum += $amtcur;
  271.                             // $amtcurFormatted = number_format($amtcur, 2, '.', ''); // Format as a number with two decimal places.
  272.                             // array_push($sumArray, $amtcurFormatted);
  273.                             $amtcur $Gad->getAmtcur();
  274.                             $sens $Gad->getSns();
  275.             
  276.                             $montant =$amtcur $sens;
  277.                             $sum += $montant;
  278.                         }
  279.                 }
  280.                 $finalBalance round($sum2); // Round to 2 decimal places for final balance
  281.                     if ($finalBalance != || $finalBalance != -) {
  282.                         $Gac->setObservationFczFlag6('PIECE DESEQUILIBREES' ' ' $finalBalance);
  283.                         $Gac->setFczFlag6(9);
  284.                         $conditionMet true;
  285.                     }
  286.                 }else {
  287.                     $Gac->setObservationFczFlag6('TYPE DOES NOT EXIST' ' ' $typCheck);
  288.                     $Gac->setFczFlag6(9);
  289.                     $conditionMet true;
  290.                 }
  291.                 // fcz_flag6 = 2 Piece Sans Probleme 
  292.                 if (!$conditionMet) {
  293.                     $Gac->setObservationFczFlag6('CONTROLLE DONE');
  294.                     $Gac->setFczFlag6(2);
  295.                 }
  296.                 $this->em->getEntity()->persist($Gac);
  297.             }
  298.             $this->em->getEntity()->flush();
  299.         return new Response('ok');
  300.     }
  301. }