<?php
namespace App\Traits\gmao;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use \Doctrine\ORM\EntityManager;
use admin\GmaoBundle\Compteur;
use App\Constante\gmao\TypeEtat;
use App\Services\user\LoginManager;
use PDO;
use DateInterval;
Trait paramUtilTraitSyst {
/**
* @var string
* Nom du Bundle
*/
protected $stockBundle = 'adminStockBundle:';
protected $moduleTitre = '';
protected $moduleDesc = '';
/**
* @var string
* Nom du Bundle
*/
protected $paramBundle = 'adminParamBundle:';
protected $cmsBundle = 'adminCmsBundle:';
protected $aVenteBundle = 'AppBundle:';
// protected $userBundle = 'App\Entity\user\';
protected $prodBundle = 'adminProdBundle:';
protected $scolariteBundle = 'adminScolariteBundle:';
protected $logisticBundle = 'adminLogisticBundle:';
protected $siteBundle = 'adminSiteBundle:';
/**
* @var string
* Nom du Bundle
*/
protected $messagerieBundle = 'adminMessagerieBundle:';
/**
* Retourne le nom d'une classe à partir de l'espace de nom complet de la classe
* @param type $nameSpace
* @return type
*/
public function getNomClassRun($nameSpace) {
$nom = '';
if (strlen($nameSpace) > 0) {
$tab = explode("\\", $nameSpace);
$taille = count($tab);
if ($taille > 0) {
$nom = $tab[$taille - 1];
}
}
return $nom;
}
public function reinitialiserRef(EntityManager $em, $type = 0, $an = 0, $mois = 0, $entite = 'COMMANDE', $taille = 5, $four) {
$res = '';
$cp = $this->reinitialiser($em, $type, $an, $mois, $entite, $taille, $four);
return $cp;
}
function traiteInfoMois($mois) {
switch ($mois) {
case 1 :
return "JAN";
case 2 :
return "FEV";
case 3 :
return "MAR";
case 4 :
return "AVR";
case 5 :
return "MAI";
case 6 :
return "JUIN";
case 7 :
return "JUIL";
case 8 :
return "AOU";
case 9 :
return "SEP";
case 10 :
return "OCT";
case 11 :
return "NOV";
case 12 :
return "DEC";
}
}
public function getcompteur(EntityManager $em, $type = 0, $an = 0, $mois = 0, $entite = 'COMMANDE', $taille = 5, $four) {
try {
$sqlrech = ' SELECT getcompteur(:p_type ,:p_an ,:p_mois ,:p_entite ,:p_taille, :four) as compteur; ';
$stmt = $em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':p_type', $type, PDO::PARAM_INT);
$stmt->bindValue(':p_an', $an, PDO::PARAM_INT);
$stmt->bindValue(':p_mois', $mois, PDO::PARAM_INT);
$stmt->bindValue(':p_entite', $entite, PDO::PARAM_STR);
$stmt->bindValue(':p_taille', $taille, PDO::PARAM_INT);
$stmt->bindValue(':four', $four, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->fetch(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
}
return $res;
}
public function reinitialiser(EntityManager $em, $type = 0, $an = 0, $mois = 0, $entite = 'COMMANDE', $taille = 5, $four) {
try {
$sqlrech = ' SELECT reinitiation(:p_type ,:p_an ,:p_mois ,:p_entite ,:p_taille, :four) as compteur; ';
$stmt = $this->em->getConnection()->prepare($sqlrech);
$stmt->bindValue(':p_type', $type, PDO::PARAM_INT);
$stmt->bindValue(':p_an', $an, PDO::PARAM_INT);
$stmt->bindValue(':p_mois', $mois, PDO::PARAM_INT);
$stmt->bindValue(':p_entite', $entite, PDO::PARAM_STR);
$stmt->bindValue(':p_taille', $taille, PDO::PARAM_INT);
$stmt->bindValue(':four', $four, PDO::PARAM_INT);
$stmt->execute();
$res = $stmt->fetch(PDO::FETCH_ASSOC);
} catch (\Symfony\Component\Form\Exception\Exception $e) {
$stmt = null;
$res = null;
var_dump($e->getMessage());
}
return $res;
}
public function getNumMvt(EntityManager $em, $type = 0, $an = 0, $mois = 0, $entite = 'COMMANDE', $taille = 5) {
$res = '';
$cp = $this->getcompteur($em, $type, $an, $mois, $entite, $taille, 1);
( array_key_exists('compteur', $cp)) ? $cp = $cp['compteur'] : $cp = '';
($type === 1) ? $res .= 'MVT' : $res .= 'MVT';
return $res . '' . substr($an, -2) . $mois . '' . $cp;
}
public function calculerStatCommande($listeCommande) {
foreach ($listeCommande as $uneCommande) {
$statTab['quantiteTotal'] = $statTab['quantiteTotal'] + $uneCommande->getLignecommandes()[0]->getQuantite();
$statTab['quantiteTotalLivre'] = $statTab['quantiteTotalLivre'] + $uneCommande->getLignecommandes()[0]->getQuantiteLivre();
}
$statTab['pourcentage'] = intval(($statTab['quantiteTotalLivre'] / $statTab['quantiteTotal']) * 100);
return $statTab;
}
function traiterDateFormat($date) {
$tabDate = array();
$tabDate = array_reverse(explode('-', str_replace("/", "-", $date)));
return $tabDate;
}
function affichageCorrectDate($date) {
$tabDate = array();
$tabDate = array_reverse(explode('-', $date));
$tabDateOrd[0] = $tabDate[1];
$tabDateOrd[1] = $tabDate[2];
$tabDateOrd[2] = $tabDate[0];
//var_dump($tabDateOrd);exit;
return implode("/", $tabDateOrd);
}
function dateDuPremierDuMois($dateJour) {
$datedebMois = $dateJour->format("m");
$datedebYear = $dateJour->format("Y");
return new \DateTime($datedebMois . "/01/" . $datedebYear);
}
public function bloquerFournisseur($em, $montantRestant, $montantSessionData, $id) {
if ($montantRestant > $montantSessionData) {
$objetFournisseur = $em->getRepository($this->stockBundle . 'Fournisseur')->find($id);
$objetFournisseur->setEtatFournisseur(TypeEtat::INACTIF);
$em->persist($objetFournisseur);
$em->flush();
return true;
} else {
return false;
}
}
public function getParamLivraisonDate($em, $id) {
$unParam = $em->getRepository($this->stockBundle . 'ParamSystDate')->find($id);
$dateChoisi = $unParam->getDateParam();
return $dateChoisi->format("d/m/Y");
}
public function RecuperCritereRechercheSuivie($em, $datefin, $datedeb, $ville) {
if ($datedeb == 0 && $datefin == 0) {
$dateJour = new \DateTime();
$premierDate = $this->dateDuPremierDuMois($dateJour);
$datedeb = $premierDate->format("d/m/Y");
$dateMoi = $premierDate->add(new DateInterval('P1M'));
$datefin = $dateMoi->format("d/m/Y");
}
$tabRetour = array();
if ($ville != 0) {
$objetVille = $em->getRepository($this->stockBundle . 'Ville')->find($ville);
$tabRetour['nomVille'] = $objetVille->getNomVille();
} else {
$tabRetour['nomVille'] = '-';
}
$tabRetour['dateDebut'] = $datedeb; //$this->affichageCorrectDate($datedeb);
$tabRetour['dateFin'] = $datefin; //$this->affichageCorrectDate($datefin);
return $tabRetour;
}
}