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\SAGE\GACCDUDATE;
  5. use App\Entity\SAGE\GACCENTRYA;
  6. use App\Entity\SAGE\GACCENTRY as sageGaccentries;
  7. use App\Entity\SAGE\GACCENTRYD as sageGaccentryd;
  8. use App\Entity\Bpartner;
  9. use App\Entity\Gaccentry as outputGaccentries;
  10. use App\Entity\CompteTier;
  11. use App\Entity\Gaccentryd;
  12. use App\Entity\Genratenum;
  13. use App\Entity\Partenaire;
  14. use Psr\Log\LoggerInterface;
  15. use Doctrine\DBAL\Connection;
  16. use Doctrine\ORM\Query\Expr\Join;
  17. use App\Service\ConnectionService;
  18. use Doctrine\DBAL\Driver\Exception;
  19. use Doctrine\Persistence\ManagerRegistry;
  20. use Symfony\Component\HttpFoundation\Request;
  21. use Symfony\Component\HttpFoundation\Response;
  22. use Symfony\Component\Routing\Annotation\Route;
  23. use Symfony\Component\HttpFoundation\JsonResponse;
  24. use Symfony\Contracts\HttpClient\HttpClientInterface;
  25. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  26. class EDIController extends AbstractController
  27. {
  28.     private $em;
  29.     private $client;
  30.     public function __construct(ConnectionService $em,HttpClientInterface $client)
  31.     {
  32.         $this->em $em;
  33.         $this->client $client;
  34.     }
  35.     #[Route('/edi'name'app_edi')]
  36.     public function index(): Response
  37.     {
  38.         return $this->render('edi/index.html.twig', [
  39.             'controller_name' => 'EDIController',
  40.         ]);
  41.     }
  42.     #[Route('/getCodeAdonix'name'app_getCodeAdonix')]
  43.     public function getCodeAdonix(): Response
  44.     {
  45.         $results $this->em->getEntity()->getRepository(outputGaccentries::class)->findByDate(); // Adjust the method to match your repository
  46.         // dd($results);
  47.         foreach ($results as $entry) {
  48.             $num $entry->getNum();
  49.     
  50.             // Use $num in your SQL query
  51.             $searchAdonix $this->em->getSage()->fetchAllAssociative("SELECT REF_0, NUM_0 FROM HCZ.GACCENTRY WHERE REF_0 = '".$num."' ");
  52.             
  53.             if ($searchAdonix) {
  54.                 $entry->setObservationFczFlag6($searchAdonix[0]['NUM_0']);
  55.                 $entry->setFczFlag6(8);
  56.                 $this->em->getEntity()->persist($entry);
  57.                 
  58.             }
  59.         }
  60.         $this->em->getEntity()->flush();
  61.         return new Response('ok');
  62.     }
  63.     #[Route('/sage/accnum'name'app_sage_accnum')]
  64.     public function accnum()
  65.     {
  66.         try {
  67.             $this->em->getInterface()->beginTransaction();
  68.             $accnum $this->em->getEntity()->getRepository(Genratenum::class)->findLastAccnum();
  69.                 // dd($accnum);
  70.             $pieceCaImport $this->em->getEntity()->getRepository(outputGaccentries::class)->findCaAccnum();
  71.             // dd($pieceCaImport);
  72.         
  73.             foreach ($pieceCaImport as $piece) {
  74.                 // dd($piece);
  75.                 $piece->setFczFlag3(1);
  76.                 $Gaccentryds $piece->getGaccentryds();
  77.         
  78.                 foreach ($Gaccentryds as $det) {
  79.                     $accnum++;
  80.                     $det->setPcg($accnum);
  81.                     $accnum++;
  82.                     $det->setPca($accnum);
  83.                     // dd($det);
  84.                 }
  85.             }
  86.         
  87.             $this->em->getEntity()->flush();
  88.             
  89.             $updateAccnum $this->em->getInterface()->fetchAssociative("UPDATE genratenum SET type = '".$accnum."' WHERE id = 810699");    
  90.             
  91.             $this->em->getInterface()->commit();
  92.     
  93.         } catch (Exception $e) {
  94.                 if ($this->em->getInterface()->isTransactionActive()) {
  95.                     $this->em->getInterface()->rollBack();
  96.                 }
  97.                 
  98.                 return new JsonResponse("Error: " $e->getMessage());
  99.         }
  100.             // return new JsonResponse($accnum);
  101.             return new JsonResponse("ok");
  102.     }
  103.     #[Route('/sage/collectif'name'app_sage_collectif')]
  104.     public function collectif()
  105.     {
  106.         try {
  107.             $this->em->getInterface()->beginTransaction();
  108.             $pieceCaImport $this->em->getEntity()->getRepository(outputGaccentries::class)->findCaCollectif();
  109.             // dd($pieceCaImport);
  110.         
  111.             foreach ($pieceCaImport as $piece) {
  112.                 // dd($piece);
  113.                 $piece->setFczFlag1(7);
  114.                 $Gaccentryds $piece->getGaccentryds();
  115.         
  116.                 foreach ($Gaccentryds as $det) {
  117.                     if ($det->getBpr()) {
  118.                         // dd($det);
  119.                         $compteCollectif $this->em->getEntity()->getRepository(CompteTier::class)->findSacByAcc($det->getAcc());
  120.                         $det->SetSac($compteCollectif->getPca());
  121.                     }
  122.                     continue;
  123.                 }
  124.             }
  125.         
  126.             $this->em->getEntity()->flush();
  127.             $this->em->getInterface()->commit();
  128.     
  129.         } catch (Exception $e) {
  130.                 if ($this->em->getInterface()->isTransactionActive()) {
  131.                     $this->em->getInterface()->rollBack();
  132.                 }
  133.                 
  134.                 return new JsonResponse("Error: " $e->getMessage());
  135.         }
  136.             // return new JsonResponse($accnum);
  137.             return new JsonResponse("ok");
  138.     }
  139.     #[Route('/anomalie'name'app_anomalie')]
  140.     public function anomalie(Request $request): Response
  141.     {
  142.         // Construire la requĂȘte Doctrine pour chercher les anomalies
  143.         $queryBuilder $this->em->getEntity()->createQueryBuilder()
  144.         ->select('g.typ''g.num''g.accdat''g.desvcr''g.observation_fcz_flag6')
  145.         ->from(outputGaccentries::class, 'g')
  146.         ->where('g.fcz_flag6 = 9')
  147.         ->andWhere('g.fczFlag5 = 1')
  148.         ->andWhere('g.fczFlag3 = 0');
  149.         // Execute the main query
  150.         $results $queryBuilder->getQuery()->getResult();
  151.         foreach ($results as &$row) {
  152.             $row['accdat'] = $row['accdat']->format('Y-m-d'); // Adjust format as needed
  153.         }
  154.         // Return the response
  155.         return new JsonResponse($results);
  156.     }
  157.     
  158.     #[Route('/anomalie/observationPiece'name'app_anomalie_observationPiece')]
  159.     public function observationPiece(Request $request): JsonResponse
  160.     {
  161.         $qb $this->em->getEntity()->createQueryBuilder();
  162.         $qb->select('DISTINCT CASE
  163.                                 WHEN o.observation_fcz_flag6 LIKE :date THEN :dateLabel
  164.                                 WHEN o.observation_fcz_flag6 LIKE :fournisseur THEN :fournisseurLabel
  165.                                 WHEN o.observation_fcz_flag6 LIKE :client THEN :clientLabel
  166.                                 WHEN o.observation_fcz_flag6 LIKE :type THEN :typeLabel
  167.                                 WHEN o.observation_fcz_flag6 LIKE :desequilibrees THEN :desequilibreesLabel
  168.                                 WHEN o.observation_fcz_flag6 LIKE :det THEN :detLabel
  169.                                 WHEN o.observation_fcz_flag6 LIKE :acc THEN :cmpLabel
  170.                                 ELSE :otherLabel 
  171.                             END AS Observ')
  172.             ->from('App\Entity\Gaccentry''o')
  173.             ->where('o.fczFlag3 = :fczFlag3')
  174.             ->andWhere('o.fcz_flag6 = :fczFlag6')
  175.             ->andWhere('o.fczFlag5 = :fczFlag2')
  176.             ->setParameter('date''%DATE%')
  177.             ->setParameter('dateLabel''DATE')
  178.             ->setParameter('fournisseur''%FOURNISSEUR%')
  179.             ->setParameter('fournisseurLabel''FOURNISSEUR')
  180.             ->setParameter('client''%CLIENT%')
  181.             ->setParameter('clientLabel''CLIENT')
  182.             ->setParameter('acc''%ACC N EXISTE%')
  183.             ->setParameter('cmpLabel''compte')
  184.             ->setParameter('type''%TYPE%')
  185.             ->setParameter('typeLabel''TYPE')
  186.             ->setParameter('desequilibrees''%DESEQUILIBREES%')
  187.             ->setParameter('desequilibreesLabel''PIECE DESEQUILIBREES')
  188.             ->setParameter('det''%DET%')
  189.             ->setParameter('detLabel''SANS DET')
  190.             ->setParameter('otherLabel''OTHER')
  191.             ->setParameter('fczFlag3'0)
  192.             ->setParameter('fczFlag6'9)
  193.             ->setParameter('fczFlag2'1);
  194.         $observationFlags $qb->getQuery()->getResult();
  195.         $options = [];
  196.         foreach ($observationFlags as $flag) {
  197.             $options[] = $flag['Observ'];
  198.         }
  199.     
  200.         return new JsonResponse($options);
  201.     }
  202.     #[Route('/suivi/returnPiece'name'app_suivi_returnPiece')]
  203.     public function suiviReturnPiece(Request $request): Response
  204.     {
  205.         // Step 1: Retrieve the $num parameter from the query string
  206.         $num $request->query->get('num');
  207.         
  208.         // Step 2: Check if $num is present; return an error if it's missing
  209.         if (!$num) {
  210.             return new JsonResponse(['error' => 'Missing num parameter'], 400);
  211.         }
  212.         // Step 3: Perform the database queries using $num
  213.         $queryBuilderGaccentry $this->em->getEntity()->createQueryBuilder()
  214.             ->select('g.num''g.desvcr''g.accdat''g.observation_fcz_flag6','g.id')
  215.             ->from(outputGaccentries::class, 'g')
  216.             ->where('g.num = :num')
  217.             ->setParameter('num'$num);
  218.         $queryBuilderGaccentryd $this->em->getEntity()->createQueryBuilder()
  219.             ->select('d.typ0''d.cce0''d.acc''d.bpr''d.amtcur''d.acc''d.sns''d.lin''d.id')
  220.             ->from(outputGaccentries::class, 'd')
  221.             ->where('d.num = :num')
  222.             ->setParameter('num'$num);
  223.         // Step 4: Execute the queries
  224.         $outputGaccentry $queryBuilderGaccentry->getQuery()->getResult();
  225.         $outputGaccentryd $queryBuilderGaccentryd->getQuery()->getResult();
  226.         // Step 5: Format the accdat field in the result
  227.         foreach ($outputGaccentry as &$entry) {
  228.             if ($entry['accdat'] instanceof \DateTime) {
  229.                 // Format the DateTime object to 'Y-m-d H:i:s.u' format
  230.                 $entry['accdat'] = $entry['accdat']->format('Y-m-d H:i:s');  // Example: '2024-01-02 00:00:00.0'
  231.             }
  232.         }
  233.         // Step 6: Prepare the data for the response
  234.         $data = [
  235.             'outputGaccentry' => $outputGaccentry,
  236.             'outputGaccentryd' => $outputGaccentryd,
  237.         ];
  238.         // Step 3: Send the formatted data as a JSON response
  239.         return new JsonResponse($data);
  240.     }
  241.     #[Route('/bpsupplier'name'opp_bpsupplier')]
  242.     public function bpsupplier(Request $request): JsonResponse
  243.     {
  244.         $bpsupplierAdonix $this->em->getSage()->fetchAllAssociative("SELECT BPSNUM_0 , ENAFLG_0 FROM HCZ.BPSUPPLIER");
  245.         // Fetching all existing suppliers of type 'SUPPLIER' in one query
  246.         $bPartnerRepository $this->em->getEntity()->getRepository(Bpartner::class);
  247.         $existingSuppliers  $bPartnerRepository->findBy(['type' => 'SUPPLIER']);
  248.         // Creating a map of existing suppliers for fast lookup
  249.         $existingSuppliersMap = [];
  250.         foreach ($existingSuppliers as $supplier) {
  251.             $existingSuppliersMap[$supplier->getPartner()] = $supplier;
  252.         }
  253.         // Processing the bpsupplierAdonix data
  254.         foreach ($bpsupplierAdonix as $bpsupplier) {
  255.             $partner $bpsupplier["BPSNUM_0"];
  256.             $active $bpsupplier["ENAFLG_0"];
  257.             if (isset($existingSuppliersMap[$partner])) {
  258.                 $supplier $existingSuppliersMap[$partner];
  259.                 if ($supplier->getActive() !== $active) {
  260.                     $supplier->setActive($active);
  261.                     $this->em->getEntity()->persist($supplier); // Persist only when there's a change
  262.                 }
  263.             } else {
  264.                 $creationSupplier = new Bpartner();
  265.                 $creationSupplier->setPartner($partner);
  266.                 $creationSupplier->setActive($active);
  267.                 $creationSupplier->setType("SUPPLIER");
  268.                 $this->em->getEntity()->persist($creationSupplier);
  269.             }
  270.         }
  271.         // Flush all changes at once
  272.         $this->em->getEntity()->flush();
  273.         return new JsonResponse(['message' => 'Process supplier completed successfully']);
  274.     }
  275.     #[Route('/bpcustomer'name'app_bpcustomer')]
  276.     public function bpcustomer(Request $request): Response
  277.     {
  278.         $bpcustomerAdonix $this->em->getSage()->fetchAllAssociative("SELECT BPCNUM_0 , BPCSTA_0 FROM HCZ.BPCUSTOMER");
  279.         // Fetching all existing customers of type 'SUPPLIER' in one query
  280.         $bPartnerRepository $this->em->getEntity()->getRepository(Bpartner::class);
  281.         $existingCustomers $bPartnerRepository->findBy(['type' => 'CUSTOMER']);
  282.         // Creating a map of existing customers for fast lookup
  283.         $existingCustomersMap = [];
  284.         foreach ($existingCustomers as $customer) {
  285.             $existingCustomersMap[$customer->getPartner()] = $customer;
  286.         }
  287.         // Processing the bpcustomerAdonix data
  288.         foreach ($bpcustomerAdonix as $bpcustomer) {
  289.             $partner $bpcustomer["BPCNUM_0"];
  290.             $active $bpcustomer["BPCSTA_0"];
  291.             if (isset($existingCustomersMap[$partner])) {
  292.                 $customer $existingCustomersMap[$partner];
  293.                 if ($customer->getActive() !== $active) {
  294.                     $customer->setActive($active);
  295.                     $this->em->getEntity()->persist($customer); // Persist only when there's a change
  296.                 }
  297.             } else {
  298.                 $creationCustomer = new Bpartner();
  299.                 $creationCustomer->setPartner($partner);
  300.                 $creationCustomer->setActive($active);
  301.                 $creationCustomer->setType("CUSTOMER");
  302.                 $this->em->getEntity()->persist($creationCustomer);
  303.             }
  304.         }
  305.         // Flush all changes at once
  306.         $this->em->getEntity()->flush();
  307.         return new JsonResponse(['message' => 'Process customer completed successfully']);
  308.     }
  309.     #[Route('/PieceControle'name'app_PieceControle')]
  310.     public function PieceControle(): Response
  311.     {
  312.         $conditionMet false;
  313.         $Gaccentries  $this->em->getEntity()->getRepository(outputGaccentries::class)->findPieceValid();
  314.         // dd($Gaccentries);
  315.             $sumArray = [];
  316.             foreach ($Gaccentries as $key => $Gac) {
  317.                 // fcz_flag6 = 8 Is Exsit In Table ComptabilitĂ© sage
  318.                 // dd($Gac);
  319.                 $num $Gac->getNum();
  320.                 $RefCheck $this->em->getSage()->fetchAllAssociative("SELECT REF_0,NUM_0 FROM HCZ.GACCENTRY WHERE REF_0 = '".$num."' ");
  321.                 foreach ($RefCheck as $key => $value) {
  322.                     if ($RefCheck) {
  323.                         $Gac->setObservationFczFlag6($value['NUM_0']);
  324.                         $Gac->setFczFlag6(8);
  325.                         $conditionMet true;
  326.                     }
  327.                 }
  328.             // fcz_flag6 = 4 Is Exsit In dbcom 
  329.                 $NumCheck $this->em->getDbcom()->fetchAllAssociative("SELECT NUM_0,NUMX3_0 FROM YGAS WHERE NUM_0 = '".$num."' ");
  330.                 // dd($NumCheck);
  331.                 foreach ($NumCheck as $key => $value) {
  332.                     if ($NumCheck) {
  333.                         $Gac->setObservationFczFlag6(empty($value['NUMX3_0']) ? $value['NUM_0'] : $Gac->getObservationFczFlag6());
  334.                         $Gac->setFczFlag6(4);
  335.                         $Gac->setFczFlag3(1);
  336.                         $conditionMet true;
  337.                     }
  338.                 }
  339.             // fcz_flag6 = 9 Piece a Probleme 
  340.                 $jouCheck          $Gac->getJou();
  341.                 $matchingJournals  $this->em->getEntity()->getRepository(JOURNAL::class)->findJournal($jouCheck);
  342.                 if (!$matchingJournals) {
  343.                     $Gac->setObservationFczFlag6('JOURNAL N EXISTE PAS DANS SAGE' ' ' $jouCheck);
  344.                     $Gac->setFczFlag6(9);
  345.                     $conditionMet true;
  346.                 } 
  347.                 $cpy1Check    $Gac->getCpy1();
  348.                 $matchingCpy  $this->em->getEntity()->getRepository(Partenaire::class)->findCpy($cpy1Check);
  349.                 if (!$matchingCpy) {
  350.                     $Gac->setObservationFczFlag6('DOSSIER N EXISTE PAS DANS SAGE' ' ' $cpy1Check);
  351.                     $Gac->setFczFlag6(9);
  352.                     $conditionMet true;
  353.                 } 
  354.                 $fcy1Check    $Gac->getFcy1();
  355.                 $matchingFcy  $this->em->getEntity()->getRepository(Partenaire::class)->findFcy($fcy1Check);
  356.                 if (!$matchingFcy) {
  357.                     $Gac->setObservationFczFlag6('SOUS DOSSIER N EXISTE PAS DANS SAGE' ' ' $fcy1Check);
  358.                     $Gac->setFczFlag6(9);
  359.                     $conditionMet true;
  360.                 } 
  361.                 if (strlen($Gac->getBprvcr()) > 20) {
  362.                     $Gac->setObservationFczFlag6('BPRVCR PLUS QUE 20: ' $Gac->getBprvcr());
  363.                     $Gac->setFczFlag6(9);
  364.                     $conditionMet true;
  365.                 }
  366.                 if ($Gac->getCur() != 'MAD') {
  367.                     $Gac->setObservationFczFlag6('DEVISE NON MAD' ' ' $Gac->getCur());
  368.                     $Gac->setFczFlag6(9);
  369.                     $conditionMet true;
  370.                 }
  371.                 
  372.                 $Year = (int) $Gac->getAccdat()->format('Y');
  373.                 // if ($Year < 2023 || $Year > 2025 || $Year == 2023) {
  374.                 if ($Year 2026 || $Year 2026 || $Year == 2025) {
  375.                     $Gac->setObservationFczFlag6('DIFFÉRENCE DE DATE DE 2026');
  376.                     $Gac->setFczFlag6(9);
  377.                     $conditionMet true;
  378.                 }
  379.                 if ($Gac->getDesvcr() && strpos($Gac->getDesvcr(), ';') !== false) {
  380.                     $Gac->setObservationFczFlag6('DÉSIGNATION AVEC POINT-VIRGULE');
  381.                     $Gac->setFczFlag6(9);
  382.                     $conditionMet true;
  383.                 }
  384.                 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') ) {
  385.                     // dd($Gac->getAccdat(),$Gad->getAccdat());
  386.                     $Gac->setObservationFczFlag6('DIFFÉRENCE DATE');
  387.                     $Gac->setFczFlag6(9);
  388.                     $conditionMet true;
  389.                 }
  390.                 $typCheck $Gac->getTyp1();
  391.                 $sum "0";
  392.                 $matchingType  $this->em->getEntity()->getRepository(JOURNAL::class)->findType($typCheck);
  393.                 if ($matchingType) {
  394.                     $Gaccentryds  $Gac->getGaccentryds();
  395.                     // dd($Gaccentryds);
  396.                     if ($Gaccentryds->isEmpty()) {
  397.                         $Gac->setObservationFczFlag6('PIÈCE SANS DET');
  398.                         $Gac->setFczFlag6(9);
  399.                         $conditionMet true;
  400.                     }else {
  401.                         foreach ($Gaccentryds as $key => $Gad) {
  402.                             // dd($Gad);
  403.                             if ($Gac->getTyp1() !== $Gad->getTyp0()) {
  404.                                 $Gac->setObservationFczFlag6('TYPES NE SONT PAS LES MÊMES' ' ' .$Gac->getTyp1() . ' ' $Gad->getTyp0() );
  405.                                 $Gac->setFczFlag6(9);
  406.                                 $conditionMet true;
  407.                             }                        
  408.                             if ($Gac->getAccdat()->format('Y-m-d H:i:s') !== $Gad->getAccdat()->format('Y-m-d H:i:s')) {
  409.                                 // dd($Gac->getAccdat(),$Gad->getAccdat());
  410.                                 $Gac->setObservationFczFlag6('DIFFÉRENCE DATE CAB ET DET');
  411.                                 $Gac->setFczFlag6(9);
  412.                                 $conditionMet true;
  413.                             }
  414.                             
  415.                             // dd("Hi date");
  416.                             if ($Gad->getAmtcur() < 0) {   
  417.                                 $Gac->setObservationFczFlag6('MONTANT NÉGATIF' ' ' $Gad->getAmtcur());
  418.                                 $Gac->setFczFlag6(9);
  419.                                 $conditionMet true;
  420.                             }
  421.                             if ($Gad->getSns() !== && $Gad->getSns() !== -1  ) {
  422.                                 $Gac->setObservationFczFlag6('SENS DIFFÉRENCE DE 1 ET -1' ' ' $Gad->getSns());
  423.                                 $Gac->setFczFlag6(9);
  424.                                 $conditionMet true;
  425.                             }
  426.                             $cceCheck     $Gad->getCce0();
  427.                             $matchingCce  $this->em->getEntity()->getRepository(Partenaire::class)->findCce($cceCheck);
  428.                             if (!$matchingCce) {
  429.                                 $Gac->setObservationFczFlag6('CCE N EXISTE PAS DANS SAGE' ' ' $cceCheck);
  430.                                 $Gac->setFczFlag6(9);
  431.                                 $conditionMet true;
  432.                             } 
  433.                             $accCheck     $Gad->getAcc();
  434.                             $cleanaccCheck str_replace(array("\r""\n"), ''$accCheck);
  435.                             $matchingAcc  $this->em->getEntity()->getRepository(CompteTier::class)->findAccByAcc($cleanaccCheck);
  436.                             if (!$matchingAcc) {
  437.                                 $Gac->setObservationFczFlag6('ACC N EXISTE PAS DANS SAGE' ' ' $Gad->getAcc());
  438.                                 $Gac->setFczFlag6(9);
  439.                                 $conditionMet true;
  440.                             } 
  441.                             foreach ($matchingAcc as $key => $value) {
  442.                                 if ($value['sac'] == '2') {
  443.                                     if (substr($Gad->getAcc(), 01) == '3') {
  444.                                         if ($Gad->getBpr()) {
  445.                                             $customerCheck $Gad->getBpr();
  446.                                             $cleanaccCheckCustomer str_replace(array("\r""\n"), ''$customerCheck);
  447.                                             $matchingCustomer  $this->em->getEntity()->getRepository(Bpartner::class)->findCustomer($cleanaccCheckCustomer);
  448.                                             if (!$matchingCustomer) {
  449.                                                 $Gac->setObservationFczFlag6('CLIENT N EXISTE PAS DANS SAGE ' ' ' $Gad->getBpr());
  450.                                                 $Gac->setFczFlag6(9);
  451.                                                 $conditionMet true;
  452.                                                 // if ($matchingCustomer->getActive() == 1) {
  453.                                                 //     // dd($matchingSupplier);
  454.                                                 //     $Gac->setObservationFczFlag6('CUSTOMER NOT ACTIVE IN SAGE' . ' ' . $Gad->getBpr());
  455.                                                 //     $Gac->setFczFlag6(9);
  456.                                                 //     $conditionMet = true;
  457.                                                 // }
  458.                                                 
  459.                                             }
  460.                                             elseif ($matchingCustomer?->getActive() === 1) {
  461.                                                 // dd($matchingCustomer);
  462.                                                 $Gac->setObservationFczFlag6('CLIENT NON ACTIF DANS SAGE' ' ' $Gad->getBpr());
  463.                                                 $Gac->setFczFlag6(9);
  464.                                                 $conditionMet true;
  465.                                             }
  466.                                         }else {
  467.                                             $Gac->setObservationFczFlag6('COMPTE CLIENT COLLECTIF SANS TIER' ' ' $Gad->getAcc());
  468.                                             $Gac->setFczFlag6(9);
  469.                                             $conditionMet true;
  470.                                         }
  471.                                     }if (substr($Gad->getAcc(), 01) == '4') {
  472.                                         if ($Gad->getBpr()) {
  473.                                             $supplierCheck    $Gad->getBpr();
  474.                                             $cleanaccCheckSupplier str_replace(array("\r""\n"), ''$supplierCheck);
  475.                                             $matchingSupplier $this->em->getEntity()->getRepository(Bpartner::class)->findSupplier($cleanaccCheckSupplier);
  476.                                             if (!$matchingSupplier) {
  477.                                                 $Gac->setObservationFczFlag6('FOURNISSEUR N EXISTE PAS DANS SAGE' ' ' $Gad->getBpr());
  478.                                                 $Gac->setFczFlag6(9);
  479.                                                 $conditionMet true;
  480.                                             }
  481.                                             elseif ($matchingSupplier->getActive() == 1) {
  482.                                                 $Gac->setObservationFczFlag6('FOURNISSEUR NON ACTIF DANS SAGE' ' ' $Gad->getBpr());
  483.                                                 $Gac->setFczFlag6(9);
  484.                                                 $conditionMet true;
  485.                                             }
  486.                                             //     dd($matchingSupplier);
  487.                                             // if ($matchingSupplier->getActive() == 1) {
  488.                                             //     // dd($matchingSupplier);
  489.                                             //     $Gac->setObservationFczFlag6('SUPPLIER NOT ACTIVE IN SAGE' . ' ' . $Gad->getBpr());
  490.                                             //     $Gac->setFczFlag6(9);
  491.                                             //     $conditionMet = true;
  492.                                             // }
  493.                                             // elseif($matchingSupplier->getActive() == null) {
  494.                                             //     $Gac->setObservationFczFlag6('SUPPLIER IS NUL' . ' ' . $Gad->getBpr());
  495.                                             //     $Gac->setFczFlag6(9);
  496.                                             //     $conditionMet = true;
  497.                                             // }
  498.                                         }else {
  499.                                             $Gac->setObservationFczFlag6('COMPTE FOURNISSEUR COLLECTIF SANS TIER' ' ' $Gad->getAcc());
  500.                                             $Gac->setFczFlag6(9);
  501.                                             $conditionMet true;
  502.                                         }
  503.                                     }
  504.                                 }
  505.                                 $all_acc substr($Gad->getAcc(), 01);
  506.                                 if ($all_acc == '5' || $all_acc == '6' || $all_acc == '7' || $all_acc == '2' || $all_acc == '1') {
  507.                                     if ($Gad->getBpr()) {
  508.                                         // dd($Gac->getBpr());
  509.                                         $Gac->setObservationFczFlag6('COMPTE' $Gad->getAcc() . 'AVEC TIER ' $Gad->getBpr());
  510.                                         $Gac->setFczFlag6(9);
  511.                                         $conditionMet true;
  512.                                     }
  513.                                 }
  514.                                 // if ($all_acc == '7' || $all_acc == '2' || $all_acc == '1') {
  515.                                 //     if ($Gad->getBpr()) {
  516.                                 //         $Gac->setObservationFczFlag6('ACC ' . $Gad->getAcc() . ' HAS TIER '. $Gad->getBpr());
  517.                                 //         $Gac->setFczFlag6(9);
  518.                                 //         $conditionMet = true;
  519.                                 //     }
  520.                                 // }
  521.                             }
  522.                             // $amtcur = round($Gad->getAmtcur(), 2);
  523.                             // if ($Gad->getSns() === -1) {
  524.                             //     $amtcur = -$amtcur;
  525.                             // }
  526.                         
  527.                             // $sum += $amtcur;
  528.                             // $amtcurFormatted = number_format($amtcur, 2, '.', ''); // Format as a number with two decimal places.
  529.                             // array_push($sumArray, $amtcurFormatted);
  530.                             $amtcur $Gad->getAmtcur();
  531.                             $sens $Gad->getSns();
  532.             
  533.                             $montant =$amtcur $sens;
  534.                             $sum += $montant;
  535.                         }
  536.                 }
  537.                 $finalBalance round($sum2); // Round to 2 decimal places for final balance
  538.                     if ($finalBalance != || $finalBalance != -) {
  539.                         $Gac->setObservationFczFlag6('PIECE DESEQUILIBREES' ' ' $finalBalance);
  540.                         $Gac->setFczFlag6(9);
  541.                         $conditionMet true;
  542.                     }
  543.                 }else {
  544.                     $Gac->setObservationFczFlag6('TYPE DOES NOT EXIST' ' ' $typCheck);
  545.                     $Gac->setFczFlag6(9);
  546.                     $conditionMet true;
  547.                 }
  548.                 // fcz_flag6 = 2 Piece Sans Probleme 
  549.                 if (!$conditionMet) {
  550.                     $Gac->setObservationFczFlag6('CONTROLLE DONE');
  551.                     $Gac->setFczFlag6(2);
  552.                 }
  553.                 $this->em->getEntity()->persist($Gac);
  554.             }
  555.             $this->em->getEntity()->flush();
  556.         return new Response('ok');
  557.     }
  558.     #[Route('/sage/inserted'name'app_sage_inserted')]
  559.     public function inserted()
  560.     {
  561.         try {
  562.             ini_set('memory_limit''512M');
  563.             $this->em->getSage()->beginTransaction();
  564.             $this->em->getInterface()->beginTransaction();
  565.             $pieceCaImport $this->em->getEntity()->getRepository(outputGaccentries::class)->findCAUgouv();
  566.             // dd($pieceCaImport);
  567.             if ($pieceCaImport) {
  568.                 foreach ($pieceCaImport as $piece) {
  569.                     $piece->setFczFlag5(1);
  570.                     $piece->setFczFlag3(7);
  571.                     $piece->setFczFlag6(2);
  572.                     $adonixGaccentry = new sageGaccentries();
  573.                         $adonixGaccentry->setUPDTICK0("1");
  574.                         $adonixGaccentry->setTYP0($piece->getTyp());
  575.                         $adonixGaccentry->setNUM0($piece->getNum());
  576.                         $adonixGaccentry->setCPY0($piece->getCpy1());
  577.                         $adonixGaccentry->setFCY0($piece->getFcy1());
  578.                         $adonixGaccentry->setJOU0($piece->getJou());
  579.                         $adonixGaccentry->setFIY0(11);
  580.                         $adonixGaccentry->setPER0(12);
  581.                         $adonixGaccentry->setBOLLATO0('');
  582.                         $adonixGaccentry->setYREFE30('');
  583.                         $adonixGaccentry->setYREFE20('');
  584.                         $adonixGaccentry->setYREFE10('');
  585.                         $adonixGaccentry->setYREFE0($piece->getId());
  586.                         $adonixGaccentry->setACCDAT0($this->dateString($piece->getAccdat()));
  587.                         $adonixGaccentry->setENTDAT0($this->dateString($piece->getAccdat()));
  588.                         $adonixGaccentry->setVALDAT0($this->dateString($piece->getAccdat()));
  589.                         $adonixGaccentry->setDUDDAT0($this->dateString($piece->getAccdat()));
  590.                         $adonixGaccentry->setBANDAT0($this->dateString($piece->getAccdat()));
  591.                         $adonixGaccentry->setRATDAT0($this->dateString($piece->getAccdat()));
  592.                         $adonixGaccentry->setCAT0(1);
  593.                         $adonixGaccentry->setSTA0(1);
  594.                         $adonixGaccentry->setFNLPSTDAT0('1753-01-01 00:00:00.000');
  595.                         $adonixGaccentry->setORIMOD0(2);
  596.                         $adonixGaccentry->setDACDIA0('STDCO');
  597.                         $adonixGaccentry->setFLGDAS0(1);
  598.                         $adonixGaccentry->setFLGFUP0(1);
  599.                         $adonixGaccentry->setFLGPAZ0(4);
  600.                         $adonixGaccentry->setFLGREP0(1);
  601.                         $adonixGaccentry->setFLGGEN0(1);
  602.                         $adonixGaccentry->setTYPDUD0(2);
  603.                         $adonixGaccentry->setBANCIB0('');
  604.                         $adonixGaccentry->setCUR0('MAD');
  605.                         $adonixGaccentry->setTYPRAT0(1);
  606.                         $adonixGaccentry->setLED0('RFG');
  607.                         $adonixGaccentry->setLED1('RFA');
  608.                         $adonixGaccentry->setLED2('');
  609.                         $adonixGaccentry->setLED3('');
  610.                         $adonixGaccentry->setLED4('');
  611.                         $adonixGaccentry->setLED5('');
  612.                         $adonixGaccentry->setLED6('');
  613.                         $adonixGaccentry->setLED7('');
  614.                         $adonixGaccentry->setLED8('');
  615.                         $adonixGaccentry->setLED9('');
  616.                         $adonixGaccentry->setCURLED0('MAD');
  617.                         $adonixGaccentry->setCURLED1('MAD');
  618.                         $adonixGaccentry->setCURLED2('');
  619.                         $adonixGaccentry->setCURLED3('');
  620.                         $adonixGaccentry->setCURLED4('');
  621.                         $adonixGaccentry->setCURLED5('');
  622.                         $adonixGaccentry->setCURLED6('');
  623.                         $adonixGaccentry->setCURLED7('');
  624.                         $adonixGaccentry->setCURLED8('');
  625.                         $adonixGaccentry->setCURLED9('');
  626.                         $adonixGaccentry->setRATMLT0(1);
  627.                         $adonixGaccentry->setRATMLT1(0);
  628.                         $adonixGaccentry->setRATMLT2(0);
  629.                         $adonixGaccentry->setRATMLT3(0);
  630.                         $adonixGaccentry->setRATMLT4(0);
  631.                         $adonixGaccentry->setRATMLT5(0);
  632.                         $adonixGaccentry->setRATMLT6(0);
  633.                         $adonixGaccentry->setRATMLT7(0);
  634.                         $adonixGaccentry->setRATMLT8(0);
  635.                         $adonixGaccentry->setRATMLT9(0);
  636.                         $adonixGaccentry->setRATDIV0(1);
  637.                         $adonixGaccentry->setRATDIV1(0);
  638.                         $adonixGaccentry->setRATDIV2(0);
  639.                         $adonixGaccentry->setRATDIV3(0);
  640.                         $adonixGaccentry->setRATDIV4(0);
  641.                         $adonixGaccentry->setRATDIV5(0);
  642.                         $adonixGaccentry->setRATDIV6(0);
  643.                         $adonixGaccentry->setRATDIV7(0);
  644.                         $adonixGaccentry->setRATDIV8(0);
  645.                         $adonixGaccentry->setRATDIV9(0);
  646.                         $adonixGaccentry->setDESVCR0($this->cleanText($piece->getDesvcr(), 100) ?? '');
  647.                         $adonixGaccentry->setREF0($piece->getRef());
  648.                         $adonixGaccentry->setBPRVCR0('');
  649.                         $adonixGaccentry->setBPRDATVCR0('1753-01-01 00:00:00.000');
  650.                         $adonixGaccentry->setREFSIM0('');
  651.                         $adonixGaccentry->setREFINT0('');
  652.                         $adonixGaccentry->setNUMDCL0(0);
  653.                         $adonixGaccentry->setRVS0(0);
  654.                         $adonixGaccentry->setRVSDAT0('1753-01-01 00:00:00.000');
  655.                         $adonixGaccentry->setRVSORITYP0('');
  656.                         $adonixGaccentry->setRVSORINUM0('');
  657.                         $adonixGaccentry->setEXPNUM0(1);
  658.                         $adonixGaccentry->setCREDAT0((new \DateTime())->format('Y-m-d'));
  659.                         $adonixGaccentry->setCREUSR0('AHAZ');
  660.                         $adonixGaccentry->setUPDDAT0((new \DateTime())->format('Y-m-d'));
  661.                         $adonixGaccentry->setUPDUSR0('AHAZ');
  662.                         $adonixGaccentry->setORIGIN0(3);
  663.                         $adonixGaccentry->setCREDATTIM0((new \DateTime())->format('Y-m-d H:i:s'));  // For current date and time
  664.                         $adonixGaccentry->setUPDDATTIM0((new \DateTime())->format('Y-m-d H:i:s'));
  665.                         $adonixGaccentry->setAUUID0(3);
  666.                         $adonixGaccentry->setFNLPSTNUM0('');
  667.                         $adonixGaccentry->setFNLPSTNUM1('');
  668.                         $adonixGaccentry->setFNLPSTNUM2('');
  669.                         $adonixGaccentry->setFNLPSTNUM3('');
  670.                         $adonixGaccentry->setFNLPSTNUM4('');
  671.                         $adonixGaccentry->setFNLPSTNUM5('');
  672.                         $adonixGaccentry->setFNLPSTNUM6('');
  673.                         $adonixGaccentry->setFNLPSTNUM7('');
  674.                         $adonixGaccentry->setFNLPSTNUM8('');
  675.                         $adonixGaccentry->setFNLPSTNUM9('');
  676.                         $adonixGaccentry->setPJT0('');
  677.                         $adonixGaccentry->setORICOD0("YGASANA");
  678.                         $adonixGaccentry->setYPCNUM0($piece->getCode());
  679.                         $adonixGaccentry->setYFLG0(0);
  680.                     $this->em->getAdonix()->persist($adonixGaccentry);
  681.                     foreach ($piece->getGaccentryds() as $key => $det) {
  682.                         $adonixGaccentrydPcg = new sageGaccentryd();
  683.                             $adonixGaccentrydPcg->setUPDTICK0(1);
  684.                             $adonixGaccentrydPcg->setTYP0($det->getTyp0());
  685.                             $adonixGaccentrydPcg->setNUM0($det->getNum());
  686.                             $adonixGaccentrydPcg->setLIN0($det->getLin());
  687.                             $adonixGaccentrydPcg->setLEDTYP0(1);
  688.                             $adonixGaccentrydPcg->setLED0('RFG');
  689.                             $adonixGaccentrydPcg->setACCNUM0($det->getPcg());
  690.                             $adonixGaccentrydPcg->setCHRNUM0('');
  691.                             $adonixGaccentrydPcg->setIDTLIN0($det->getLin());
  692.                             $adonixGaccentrydPcg->setCPY0($piece->getCpy1());
  693.                             $adonixGaccentrydPcg->setFCYLIN0($piece->getFcy1());
  694.                             $adonixGaccentrydPcg->setACCDAT0($this->dateString($piece->getAccdat()));
  695.                             $adonixGaccentrydPcg->setFIY0(11);
  696.                             $adonixGaccentrydPcg->setPER0(12);
  697.                             $adonixGaccentrydPcg->setCOA0('PCG');
  698.                             $adonixGaccentrydPcg->setSAC0($det->getSac() ?? '');
  699.                             $adonixGaccentrydPcg->setACC0($det->getAcc());
  700.                             $adonixGaccentrydPcg->setBPR0($det->getBpr() ?? '');
  701.                             $adonixGaccentrydPcg->setDSP0('');
  702.                             $adonixGaccentrydPcg->setSNS0($det->getSns());
  703.                             $adonixGaccentrydPcg->setCUR0('MAD');
  704.                             $adonixGaccentrydPcg->setAMTCUR0($det->getamtcur());
  705.                             $adonixGaccentrydPcg->setCURLED0('MAD');
  706.                             $adonixGaccentrydPcg->setAMTLED0($det->getamtcur());
  707.                             $adonixGaccentrydPcg->setAMTFLG0(0);
  708.                             $adonixGaccentrydPcg->setAMTLED10(0);
  709.                             $adonixGaccentrydPcg->setUOM0('');
  710.                             $adonixGaccentrydPcg->setQTY0(1);
  711.                             $adonixGaccentrydPcg->setDES0($this->cleanText($det->getDes(), 100) ?? '');
  712.                             $adonixGaccentrydPcg->setREFINTLIN0('');
  713.                             $adonixGaccentrydPcg->setOFFACC0('');
  714.                             $adonixGaccentrydPcg->setCSLCOD0('');
  715.                             $adonixGaccentrydPcg->setCSLFLO0('');
  716.                             $adonixGaccentrydPcg->setSTT10('');
  717.                             $adonixGaccentrydPcg->setSTT20('');
  718.                             $adonixGaccentrydPcg->setSTT30('');
  719.                             $adonixGaccentrydPcg->setMTC0('');
  720.                             $adonixGaccentrydPcg->setMTCDAT0('1753-01-01 00:00:00');
  721.                             $adonixGaccentrydPcg->setMTCDATMIN0('1753-01-01 00:00:00');
  722.                             $adonixGaccentrydPcg->setMTCDATMAX0('1753-01-01 00:00:00');
  723.                             $adonixGaccentrydPcg->setFLGMTC0(0);
  724.                             $adonixGaccentrydPcg->setFREREF0($det->getFreref0() ?? '');
  725.                             $adonixGaccentrydPcg->setCHK0('');
  726.                             $adonixGaccentrydPcg->setCHKDAT0('1753-01-01 00:00:00');
  727.                             $adonixGaccentrydPcg->setMRK0('');
  728.                             $adonixGaccentrydPcg->setTAX0('');
  729.                             $adonixGaccentrydPcg->setTAX20('');
  730.                             $adonixGaccentrydPcg->setTAX30('');
  731.                             $adonixGaccentrydPcg->setAMTVAT0(0);
  732.                             $adonixGaccentrydPcg->setINDEDVAT0(0);
  733.                             $adonixGaccentrydPcg->setEXPNUM0(1);
  734.                             $adonixGaccentrydPcg->setACCNUMORI0(0);
  735.                             $adonixGaccentrydPcg->setACCNUMDOE0(0);
  736.                             $adonixGaccentrydPcg->setCAPFLOTYP0('');
  737.                             $adonixGaccentrydPcg->setVATRAT0(0);
  738.                             $adonixGaccentrydPcg->setVATDEDRAT0(0);
  739.                             $adonixGaccentrydPcg->setCREDATTIM0((new \DateTime())->format('Y-m-d H:i:s'));
  740.                             $adonixGaccentrydPcg->setUPDDATTIM0((new \DateTime())->format('Y-m-d H:i:s'));
  741.                             $adonixGaccentrydPcg->setAUUID0(3);
  742.                             $adonixGaccentrydPcg->setCREUSR0('AHAZ');
  743.                             $adonixGaccentrydPcg->setUPDUSR0('AHAZ');
  744.                             $adonixGaccentrydPcg->setCSLBPR0('');
  745.                             $adonixGaccentrydPcg->setPJTLIN0('');
  746.                             $adonixGaccentrydPcg->setPCCCOD0('');
  747.                             $adonixGaccentrydPcg->setBSITRS0('');
  748.                             $adonixGaccentrydPcg->setYLETTR0('');
  749.                             $adonixGaccentrydPcg->setYBPCANC0('');
  750.                             $adonixGaccentrydPcg->setYREFE0($piece->getId());
  751.                             $adonixGaccentrydPcg->setYREFE10($det->getId());
  752.                             $adonixGaccentrydPcg->setYREFE20('');
  753.                             $adonixGaccentrydPcg->setYREFE30(mb_substr($det->getFczAccLibelle() ?? ''055));
  754.                             $adonixGaccentrydPcg->setAMTCURHIS0(0);
  755.                             $adonixGaccentrydPcg->setCCE00($det->getcce0());
  756.                             $adonixGaccentrydPcg->setBPRINIT0($det->getBpr() ?? '');
  757.                             $adonixGaccentrydPcg->setHISACC0($det->getAcc());
  758.                             
  759.                             
  760.                         $this->em->getAdonix()->persist($adonixGaccentrydPcg);
  761.                         $adonixGaccentrydPca = clone $adonixGaccentrydPcg;
  762.                             $adonixGaccentrydPca->setBPR0('');
  763.                             $adonixGaccentrydPca->setSAC0('');
  764.                             $adonixGaccentrydPca->setLED0('RFA');
  765.                             $adonixGaccentrydPca->setCOA0('PCA');
  766.                             $adonixGaccentrydPca->setACCNUM0($det->getPca());
  767.                             $adonixGaccentrydPca->setLEDTYP0(2);
  768.                         $this->em->getAdonix()->persist($adonixGaccentrydPca);
  769.                         $adonixGaccentrya = new GACCENTRYA();
  770.                             $adonixGaccentrya->setUPDTICK0(1);
  771.                             $adonixGaccentrya->setTYP0($det->getTyp0());
  772.                             $adonixGaccentrya->setNUM0($det->getNum());
  773.                             $adonixGaccentrya->setLIN0($det->getLin());
  774.                             $adonixGaccentrya->setLEDTYP0(2);
  775.                             $adonixGaccentrya->setANALIN0(1);
  776.                             $adonixGaccentrya->setIDTLIN0($det->getLin());
  777.                             $adonixGaccentrya->setLED0('RFA');
  778.                             $adonixGaccentrya->setCPY0($piece->getCpy1());
  779.                             $adonixGaccentrya->setFCYLIN0($piece->getFcy1());
  780.                             $adonixGaccentrya->setACCDAT0($this->dateString($piece->getAccdat()));
  781.                             $adonixGaccentrya->setACCNUM0($det->getPca());
  782.                             $adonixGaccentrya->setCOA0('PCA');
  783.                             $adonixGaccentrya->setACC0($det->getAcc());
  784.                             $adonixGaccentrya->setBPR0('');
  785.                             $adonixGaccentrya->setDIE0('CCT');
  786.                             $adonixGaccentrya->setDIE1('');
  787.                             $adonixGaccentrya->setDIE2('');
  788.                             $adonixGaccentrya->setDIE3('');
  789.                             $adonixGaccentrya->setDIE4('');
  790.                             $adonixGaccentrya->setDIE5('');
  791.                             $adonixGaccentrya->setDIE6('');
  792.                             $adonixGaccentrya->setDIE7('');
  793.                             $adonixGaccentrya->setDIE8('');
  794.                             $adonixGaccentrya->setCCE0($det->getcce0());
  795.                             $adonixGaccentrya->setCCE1('');
  796.                             $adonixGaccentrya->setCCE2('');
  797.                             $adonixGaccentrya->setCCE3('');
  798.                             $adonixGaccentrya->setCCE4('');
  799.                             $adonixGaccentrya->setCCE5('');
  800.                             $adonixGaccentrya->setCCE6('');
  801.                             $adonixGaccentrya->setCCE7('');
  802.                             $adonixGaccentrya->setCCE8('');
  803.                             $adonixGaccentrya->setSNS0($det->getSns());
  804.                             $adonixGaccentrya->setCUR0('MAD');
  805.                             $adonixGaccentrya->setAMTCUR0($det->getamtcur());
  806.                             $adonixGaccentrya->setCURLED0('MAD');
  807.                             $adonixGaccentrya->setAMTLED0($det->getamtcur());
  808.                             $adonixGaccentrya->setUOM0('');
  809.                             $adonixGaccentrya->setQTY0(0);
  810.                             $adonixGaccentrya->setACCNUMDOE0(0);
  811.                             $adonixGaccentrya->setCREDATTIM0((new \DateTime())->format('Y-m-d H:i:s'));
  812.                             $adonixGaccentrya->setUPDDATTIM0((new \DateTime())->format('Y-m-d H:i:s'));
  813.                             $adonixGaccentrya->setAUUID0(3);
  814.                             $adonixGaccentrya->setCREUSR0('ADMIN');
  815.                             $adonixGaccentrya->setUPDUSR0('ADMIN');
  816.                             $adonixGaccentrya->setYREFE0(0);
  817.                             $adonixGaccentrya->setYREFE10(0);
  818.                             $adonixGaccentrya->setYREFE20('');
  819.                             $adonixGaccentrya->setYREFE30('');
  820.                             $adonixGaccentrya->setAMTCURHIS0(0);
  821.                             $adonixGaccentrya->setHISACC0('');
  822.                         $this->em->getAdonix()->persist($adonixGaccentrya);
  823.                         if (!empty($det->getBpr())) {
  824.                             // dd("gaccdudate");
  825.                             $ACCNUM1 $det->getPcg();
  826.                             $A7 "1";
  827.                             $NUMDUD_0 $ACCNUM1 '/' $A7;
  828.                             $adonixGaccdudate = new GACCDUDATE();
  829.                                 $adonixGaccdudate->setUPDTICK0(1);
  830.                                 $adonixGaccdudate->setTYP0($det->getTyp0());
  831.                                 $adonixGaccdudate->setNUM0($det->getNum());
  832.                                 $adonixGaccdudate->setLIG0($det->getLin());
  833.                                 $adonixGaccdudate->setDUDLIG0(1);
  834.                                 $adonixGaccdudate->setACCNUM0($det->getPcg());
  835.                                 $adonixGaccdudate->setCPY0($piece->getCpy1());
  836.                                 $adonixGaccdudate->setFCY0($piece->getFcy1());
  837.                                 $adonixGaccdudate->setCUR0('MAD');
  838.                                 $adonixGaccdudate->setSAC0($det->getSac());
  839.                                 $adonixGaccdudate->setBPR0($det->getBpr());
  840.                                 $adonixGaccdudate->setBPRTYP0(2);
  841.                                 $adonixGaccdudate->setBPRPAY0($det->getBpr());
  842.                                 $adonixGaccdudate->setBPAPAY0('A01');
  843.                                 $adonixGaccdudate->setDUDDAT0($this->dateString($piece->getAccdat()));
  844.                                 $adonixGaccdudate->setPAM0('CHQ');
  845.                                 $adonixGaccdudate->setPAMTYP0(1);
  846.                                 $adonixGaccdudate->setDEP0('');
  847.                                 $adonixGaccdudate->setSNS0($det->getSns());
  848.                                 $adonixGaccdudate->setAMTCUR0($det->getAmtcur());
  849.                                 $adonixGaccdudate->setAMTLOC0($det->getAmtcur());
  850.                                 $adonixGaccdudate->setPAYCUR0(0);
  851.                                 $adonixGaccdudate->setPAYLOC0(0);
  852.                                 $adonixGaccdudate->setTMPCUR0(0);
  853.                                 $adonixGaccdudate->setTMPLOC0(0);
  854.                                 $adonixGaccdudate->setFLGFUP0(0);
  855.                                 $adonixGaccdudate->setLEVFUP0(0);
  856.                                 $adonixGaccdudate->setDATFUP0('1753-01-01 00:00:00');
  857.                                 $adonixGaccdudate->setDPTCOD0('');
  858.                                 $adonixGaccdudate->setFLGPAZ0(4);
  859.                                 $adonixGaccdudate->setSOI0(1);
  860.                                 $adonixGaccdudate->setSOINUM0('');
  861.                                 $adonixGaccdudate->setDUDSTA0(2);
  862.                                 $adonixGaccdudate->setDINAMT0(0);
  863.                                 $adonixGaccdudate->setIBDAMT0(0);
  864.                                 $adonixGaccdudate->setVAT0(0);
  865.                                 $adonixGaccdudate->setFIY0(11);
  866.                                 $adonixGaccdudate->setPER0(12);
  867.                                 $adonixGaccdudate->setEXPSENDAT0('1753-01-01 00:00:00');
  868.                                 $adonixGaccdudate->setSENDAT0('1753-01-01 00:00:00');
  869.                                 $adonixGaccdudate->setSENINS0(0);
  870.                                 $adonixGaccdudate->setBPRFCT0('');
  871.                                 $adonixGaccdudate->setFCTVCR0('');
  872.                                 $adonixGaccdudate->setFLGCLE0(1);
  873.                                 $adonixGaccdudate->setPAYDAT0('1753-01-01 00:00:00');
  874.                                 $adonixGaccdudate->setTYPDUD0(3);
  875.                                 $adonixGaccdudate->setNUMDUD0($NUMDUD_0);
  876.                                 $adonixGaccdudate->setCREDAT0((new \DateTime())->format('Y-m-d'));
  877.                                 $adonixGaccdudate->setCREUSR0('AHAZ');
  878.                                 $adonixGaccdudate->setCREDATTIM0((new \DateTime())->format('Y-m-d H:i:s'));
  879.                                 $adonixGaccdudate->setUPDDATTIM0((new \DateTime())->format('Y-m-d H:i:s'));
  880.                                 $adonixGaccdudate->setAUUID0(3);
  881.                                 $adonixGaccdudate->setUPDUSR0('AHAZ');
  882.                                 $adonixGaccdudate->setUMRNUM0('');
  883.                                 $adonixGaccdudate->setBELVCS0('');
  884.                                 $adonixGaccdudate->setBIDNUMMAN0('');
  885.                                 $adonixGaccdudate->setBADBTRULE0(0);
  886.                                 $adonixGaccdudate->setYREFE0(0);
  887.                                 $adonixGaccdudate->setYREFE10(0);
  888.                                 $adonixGaccdudate->setYREFE20('');
  889.                                 $adonixGaccdudate->setYREFE30('');
  890.                                 $adonixGaccdudate->setAMTCURHIS0(0);
  891.                                 $adonixGaccdudate->setHISACC0('');
  892.                             $this->em->getAdonix()->persist($adonixGaccdudate);
  893.                             // dd("gaccdudateHi");
  894.                         }else {
  895.                             continue;
  896.                         }
  897.                     }
  898.                 }
  899.             }
  900.             // dd($adonixGaccdudate);
  901.             $this->em->getAdonix()->flush();
  902.             $this->em->getEntity()->flush();
  903.             $this->em->getInterface()->commit();
  904.         } catch (Exception $e) {
  905.             // dd($e);
  906.             $this->em->getInterface()->rollBack();
  907.             $this->em->getAdonix()->clear();
  908.             // continue;
  909.             return new JsonResponse("Error: " $e->getMessage());
  910.         }
  911.         return new JsonResponse('ok');
  912.     }
  913.     function dateString($date){
  914.                 
  915.         if($date)
  916.             if ($date->format('Y') == '-0001' )  return '';
  917.             else return $date->format('Y-m-d') ;
  918.         else return '';
  919.     }
  920.     private function cleanText(?string $textint $max 100): ?string
  921.     {
  922.         if(!$text){
  923.             return null;
  924.         }
  925.         $text str_replace("'"""$text);
  926.         $text mb_substr($text0$max);
  927.         return $text;
  928.     }
  929. }