src/Controller/Widget/WidgetCaController.php line 94

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Widget;
  3. use App\Entity\Articles\FamilleCompta;
  4. use App\Entity\FO\Societe;
  5. use App\Entity\GestionComerciale\Commande;
  6. use App\Entity\Localisation\Zone;
  7. use App\Entity\MarketPlace\CompteMarketPlace;
  8. use App\Form\Clients\ClientType;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. class WidgetCaController extends AbstractController
  14. {
  15.     /**
  16.      * @Route("", name="")
  17.      */
  18.     public function widgetCaAction(Request $request$parametres = [], EntityManagerInterface $em)
  19.     {
  20.         $repo_commande         $em->getRepository(Commande::class);
  21.         $repoCompteMarketPlace $em->getRepository(CompteMarketPlace::class);
  22.         $compteMarketPlace     $repoCompteMarketPlace->findBy(["statut" => 1], ["libelle" => "asc"]);
  23.         if (empty($parametres["date_debut_ca"]) && empty($parametres["date_fin_ca"])) {
  24.             $dateDebut = new \DateTime();
  25.             $dateDebut->setTime(000000);
  26.             $parametres["date_debut_ca"] = $dateDebut->format("d/m/Y");
  27.             $dateFin = new \DateTime();
  28.             $dateFin->setTime(235959);
  29.             $parametres["date_fin_ca"] = $dateFin->format("d/m/Y");
  30.         }
  31.         /*
  32.         $fin = new \Datetime();
  33.         $debut = new \Datetime($fin->format("Y")."-".$fin->format("m")."-01");
  34.         $caMoisEnCours = $repo_commande->getCa($debut,$fin);
  35.         $caComptoirMoisEnCours = $repo_commande->getCaComptoir($debut,$fin);
  36.         $caOrMoisEnCours = $repo_commande->getCaOr($debut,$fin);
  37.         //\Doctrine\Common\Util\Debug::dump($caMoisEnCours);
  38.         $fin = new \Datetime();
  39.         $fin->modify('-1 year');
  40.         $debut = new \Datetime($fin->format("Y")."-".$fin->format("m")."-01");
  41.         $caMoisEnCoursN1 = $repo_commande->getCa($debut,$fin);
  42.         $fin = new \Datetime();
  43.         $debut = new \Datetime($fin->format("Y")."-01-01");
  44.         $caAnneeEnCours = $repo_commande->getCa($debut,$fin);
  45.         $fin = new \Datetime();
  46.         $fin->modify('-1 year');
  47.         $debut = new \Datetime($fin->format("Y")."-01-01");
  48.         $caAnneeEnCoursN1 = $repo_commande->getCa($debut,$fin);
  49.         $fin = new \Datetime();
  50.         $debut = new \Datetime();
  51.         $debut->modify('-30 days');
  52.         $caMoisGlissant = $repo_commande->getCa($debut,$fin);
  53.         $fin = new \Datetime();
  54.         $debut = new \Datetime();
  55.         $debut->modify('-365 days');
  56.         $caAnneeGlissant = $repo_commande->getCa($debut,$fin);
  57.         */
  58.         return $this->render('Widget/Widget/ca.html.twig', [
  59.             "compteMarketPlace" => $compteMarketPlace,
  60.             "parametres"        => $parametres,
  61.         ]);
  62.     }
  63.     /**
  64.      * @Route("", name="")
  65.      */
  66.     public function widgetCaPaysFamilleComptaAction(Request $request$parametres = [], EntityManagerInterface $em)
  67.     {
  68.         set_time_limit(300);
  69.         $repo_commande          $em->getRepository(Commande::class);
  70.         $repo_famille_compta    $em->getRepository(FamilleCompta::class);
  71.         $familleComptaPardefaut $repo_famille_compta->find(1);
  72.         $societe                $em->getRepository(Societe::class)->find(1);
  73.         $paysFrance             $em->getRepository(Zone::class)->find(370095);
  74.         if (empty($parametres["date_debut_ca_pfc"]) && empty($parametres["date_fin_ca_pfc"])) {
  75.             $dateDebut = new \DateTime();
  76.             //$dateDebut->modify('- 1 month');
  77.             $dateDebut->modify('- 1 days');
  78.             $dateDebut->setTime(000000);
  79.             $parametres["date_debut_ca_pfc"] = $dateDebut->format("d/m/Y");
  80.             $dateFin = new \DateTime();
  81.             $dateFin->setTime(235959);
  82.             $parametres["date_fin_ca_pfc"] = $dateFin->format("d/m/Y");
  83.         }
  84.         $caPaysFamilleCompta = [];
  85.         $pays                = [];
  86.         $famillesCompta      $repo_famille_compta->findAll();
  87.         $facturesEtAvoirs $em->getRepository(Commande::class)->getFacturesEtAvoirs($parametres);
  88.         foreach ($facturesEtAvoirs as $facTmp) {
  89.             $paysTmp '';
  90.             if (is_object($facTmp->getPaysLivraison())) {
  91.                 $paysTmp $facTmp->getPaysLivraison();
  92.             }
  93.             if ( ! is_object($paysTmp) && is_object($facTmp->getClient()->getPays())) {
  94.                 $paysTmp $facTmp->getClient()->getPays();
  95.             }
  96.             if ( ! is_object($paysTmp)) {
  97.                 $paysTmp $paysFrance;
  98.             }
  99.             if (is_object($paysTmp)) {
  100.                 $keyPays        $paysTmp->getId();
  101.                 $pays[$keyPays] = $paysTmp->getTitre();
  102.                 //if($paysTmp->getTitre() == 'Luxembourg') dump('Luxembourg : '.$facTmp->getId());
  103.             } else {
  104.                 $keyPays        0;
  105.                 $pays[$keyPays] = 'Non défini';
  106.                 //dump($facTmp->getId());
  107.             }
  108.             //frais de port
  109.             $familleCompta    $societe->getFamilleComptaFraisPort();
  110.             $keyFamilleCompta $familleCompta->getId();
  111.             if ( ! array_key_exists($keyPays$caPaysFamilleCompta) || ! array_key_exists($keyFamilleCompta$caPaysFamilleCompta[$keyPays])) {
  112.                 $caPaysFamilleCompta[$keyPays][$keyFamilleCompta] = $facTmp->getTotalFraisPort();
  113.             } else {
  114.                 $caPaysFamilleCompta[$keyPays][$keyFamilleCompta] += $facTmp->getTotalFraisPort();
  115.             }
  116.             $caPaysFamilleCompta[$keyPays][$keyFamilleCompta] += $facTmp->getFraisPortSupplementaire();
  117.             $acs = [];
  118.             $bls $repo_commande->findByFacture($facTmp);
  119.             if (count($bls)) {
  120.                 foreach ($bls as $bl) {
  121.                     foreach ($bl->getArticleCommande() as $ac) {
  122.                         $acs[] = $ac;
  123.                     }
  124.                 }
  125.             } else {
  126.                 $acs $facTmp->getArticleCommande();
  127.             }
  128.             foreach ($acs as $ac) {
  129.                 $familleCompta $familleComptaPardefaut;
  130.                 if (is_object($ac->getArticle()->getFamilleCompta())) {
  131.                     $familleCompta $ac->getArticle()->getFamilleCompta();
  132.                 }
  133.                 if (is_object($familleCompta)) {
  134.                     $keyFamilleCompta $familleCompta->getId();
  135.                 } else {
  136.                     $keyFamilleCompta 0;
  137.                 }
  138.                 if ( ! array_key_exists($keyPays$caPaysFamilleCompta) || ! array_key_exists($keyFamilleCompta$caPaysFamilleCompta[$keyPays])) {
  139.                     $caPaysFamilleCompta[$keyPays][$keyFamilleCompta] = $ac->getTotalHt();
  140.                 } else {
  141.                     $caPaysFamilleCompta[$keyPays][$keyFamilleCompta] += $ac->getTotalHt();
  142.                 }
  143.             }
  144.         }
  145.         //dump($caPaysFamilleCompta);
  146.         return $this->render('Widget/Widget/ca-pays-famille-compta.html.twig', [
  147.             "caPaysFamilleCompta" => $caPaysFamilleCompta,
  148.             'famillesCompta'      => $famillesCompta,
  149.             'pays'                => $pays,
  150.             "parametres"          => $parametres,
  151.         ]);
  152.     }
  153. }