<?php
namespace App\Service\Statistiques;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\DependencyInjection\Container;
use App\Entity\GestionComerciale\Commande;
use App\Entity\GestionComerciale\ArticleCommande;
use App\Entity\Articles\MouvementStock;
use Symfony\Component\Form\FormError;
use Symfony\Component\Validator\ExecutionContext;
class StatsService {
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
public function calculCaPeriode($type,$periode,$integreBl=false,$n1=false) {
//echo "[".$type["libelle"]."] :".$periode;
$repo_commande = $this->em->getRepository(Commande::class);
$totalCa = $repo_commande->calculCaPeriode($type,$periode,$integreBl,$n1);
return round($totalCa,2);
}
public function getTopClientn1Details($parametres = [], $article_id, $transporteur_id) {
$parametres["details_ajax"]=1;
$parametres["n1"]=0;
$retour = ["total" =>"", "total_qte" =>""];
$parametres["client"]=$parametres["client_id"];
$parametres["article"]=$article_id;
$dateDebutN1 = \DateTime::createFromFormat('d/m/Y',$parametres['date_debut']);
$dateDebutN1->setTime(00,00,00);
$dateDebutN1->modify('-1 year');
$parametres["date_debut"]=$dateDebutN1->format("d/m/Y");
$dateFinN1 = \DateTime::createFromFormat('d/m/Y',$parametres['date_fin']);
$dateFinN1->setTime(23,59,59);
$dateFinN1->modify('-1 year');
$parametres["date_fin"]=$dateFinN1->format("d/m/Y");
$repoCommande = $this->em->getRepository(Commande::class);
if($transporteur_id != "") {
$parametres_transport = $parametres;
$parametres_transport["transporteur_id"]=$transporteur_id;
$transport = $repoCommande->topClientsDetailsTransport($parametres_transport);
if(is_array($transport) && count($transport)==1) {
$retour["total"] = $transport[0]["total"];
$retour["total_qte"] = $transport[0]["total_qte"];
//return $client[0]["total"];
}
}
else {
$article = $repoCommande->topClientsDetails($parametres);
/*
if($article_id == 213111) {
echo "<br></br>";
print_r($parametres);
echo "<br></br>";
print_r($article);
exit;
}
*/
if(is_array($article) && count($article)==1) {
$retour["total"] = $article[0]["total"];
$retour["total_qte"] = $article[0]["total_qte"];
//return $client[0]["total"];
}
}
return $retour;
}
public function getTopClientn1($parametres = [], $client_id) {
$retour = ["total" =>"", "qte" =>""];
$parametres["client"]=$client_id;
$dateDebutN1 = \DateTime::createFromFormat('d/m/Y',$parametres['date_debut']);
$dateDebutN1->setTime(00,00,00);
$dateDebutN1->modify('-1 year');
$parametres["date_debut"]=$dateDebutN1->format("d/m/Y");
$dateFinN1 = \DateTime::createFromFormat('d/m/Y',$parametres['date_fin']);
$dateFinN1->setTime(23,59,59);
$dateFinN1->modify('-1 year');
$parametres["date_fin"]=$dateFinN1->format("d/m/Y");
$repoCommande = $this->em->getRepository(Commande::class);
$client = [];
$client = $repoCommande->topClients($parametres);
//print_r($client);
if(is_array($client) && count($client)==1) {
$retour["total"] = $client[0]["total"];
$retour["qte"] = $client[0]["qte"];
//return $client[0]["total"];
}
return $retour;
}
public function getTopArticlen1($parametres = [], $article_id) {
$retour = ["total" =>"", "total_quantite" =>""];
$parametres["article"]=$article_id;
$dateDebutN1 = \DateTime::createFromFormat('d/m/Y',$parametres['date_debut']);
$dateDebutN1->setTime(00,00,00);
$dateDebutN1->modify('-1 year');
$parametres["date_debut"]=$dateDebutN1->format("d/m/Y");
$dateFinN1 = \DateTime::createFromFormat('d/m/Y',$parametres['date_fin']);
$dateFinN1->setTime(23,59,59);
$dateFinN1->modify('-1 year');
$parametres["date_fin"]=$dateFinN1->format("d/m/Y");
$repoCommande = $this->em->getRepository(Commande::class);
$article = $repoCommande->topArticles($parametres);
//print_r($article);
/*
total total_quantite
*/
if(is_array($article) && count($article)==1) {
$retour["total"] = $article[0]["total"];
$retour["total_quantite"] = $article[0]["total_quantite"];
//return $client[0]["total"];
}
return $retour;
}
public function getTopMarquen1Details($parametres = [], $article_id) {
$parametres["details_ajax"]=1;
$parametres["n1"]=0;
$retour = ["total" =>"", "total_qte" =>""];
$parametres["marque"]=$parametres["marque_id"];
$parametres["article"]=$article_id;
$dateDebutN1 = \DateTime::createFromFormat('d/m/Y',$parametres['date_debut']);
$dateDebutN1->setTime(00,00,00);
$dateDebutN1->modify('-1 year');
$parametres["date_debut"]=$dateDebutN1->format("d/m/Y");
$dateFinN1 = \DateTime::createFromFormat('d/m/Y',$parametres['date_fin']);
$dateFinN1->setTime(23,59,59);
$dateFinN1->modify('-1 year');
$parametres["date_fin"]=$dateFinN1->format("d/m/Y");
$repoCommande = $this->em->getRepository(Commande::class);
$article = $repoCommande->topMarquesDetails($parametres);
if(is_array($article) && count($article)==1) {
$retour["total"] = $article[0]["total"];
$retour["total_qte"] = $article[0]["total_qte"];
//return $client[0]["total"];
}
return $retour;
}
public function getTopMarquen1($parametres = [], $marque_id) {
$retour = ["total" =>"", "total_quantite" =>""];
$parametres["marque"]=$marque_id;
$dateDebutN1 = \DateTime::createFromFormat('d/m/Y',$parametres['date_debut']);
$dateDebutN1->setTime(00,00,00);
$dateDebutN1->modify('-1 year');
$parametres["date_debut"]=$dateDebutN1->format("d/m/Y");
$dateFinN1 = \DateTime::createFromFormat('d/m/Y',$parametres['date_fin']);
$dateFinN1->setTime(23,59,59);
$dateFinN1->modify('-1 year');
$parametres["date_fin"]=$dateFinN1->format("d/m/Y");
$repoCommande = $this->em->getRepository(Commande::class);
$article = $repoCommande->topMarques($parametres);
//print_r($article);
/*
total total_quantite
*/
if(is_array($article) && count($article)==1) {
$retour["total"] = $article[0]["total"];
$retour["total_quantite"] = $article[0]["total_quantite"];
//return $client[0]["total"];
}
return $retour;
}
/*public function estRembourse(Commande $avoir) {
$repo_acompte = $this->em->getRepository('DTCGestionComercialeBundle:Acompte');
$acompteAvoir = $repo_acompte->findBy(array("commande"=>$avoir->getId()));
$montantrembourse = 0;
foreach($acompteAvoir as $acompte){
$montantrembourse += $acompte->getMontant();
}
$acompteAvoir = $repo_acompte->findBy(array("commande"=>$avoir->getCommande()->getId()));
foreach( $acompteAvoir as $acompte){
$montantrembourse += $acompte->getMontant();
}
if($montantrembourse <= $avoir->getTotalTtc()){
return true;
}else{
return false;
}
}
*/
}