<?php
namespace App\Service\Articles;
use App\Entity\Articles\Article;
use App\Entity\Articles\Categorie;
use App\Entity\MarketPlace\ArticleMarketPlace;
use App\Entity\MarketPlace\ArticleMarketPlaceCaracteristique;
use App\Entity\MarketPlace\Caracteristiques;
use App\Entity\MarketPlace\Profil;
use Doctrine\ORM\EntityManagerInterface;
class CategorieService
{
private $em;
public function __construct(EntityManagerInterface $em)
{
$this->em = $em;
}
public function getObjet($id)
{
$repoCategorie = $this->em->getRepository(Categorie::class);
$categorie = $repoCategorie->find($id);
return $categorie;
}
public function getProfilsMarketPlace($idMarket)
{
$repoProfils = $this->em->getRepository(Profil::class);
$profils = $repoProfils->findAll();
return $profils;
}
public function getCaracteristiqueCategorie($categorie)
{
$repoCaracteristique = $this->em->getRepository(Caracteristiques::class);
$tab_categories = [];
$tab_categories[] = $categorie;
while (is_object($categorie->getCategorieParent())) {
$tab_categories[] = $categorie->getCategorieParent();
$categorie = $categorie->getCategorieParent();
}
$caracteristiques = $repoCaracteristique->findBy(["categorie" => $tab_categories], ['obligatoire' => 'DESC']);
//$caracteristiques = $repoCaracteristique->findBy(array('id'=>56571));
//$caracteristiques = $repoCaracteristique->findBy(array("categorie"=>$categorie));
return $caracteristiques;
}
public function getValeurCaracteristique($type = "article", $idArticleMarketPlace, $caracteristique)
{
$repoCaracteristique = $this->em->getRepository(ArticleMarketPlaceCaracteristique::class);
$repoArticleMarketPlace = $this->em->getRepository(ArticleMarketPlace::class);
$repoArticle = $this->em->getRepository(Article::class);
if ($type == "article") {
$article = $repoArticle->find($idArticleMarketPlace);
$caracteristique = $repoCaracteristique->findOneBy(["article" => $article, "caracteristique" => $caracteristique]);
} else {
$articleMarketPlace = $repoArticleMarketPlace->find($idArticleMarketPlace);
$caracteristique = $repoCaracteristique->findOneBy(["articleMarketPlace" => $articleMarketPlace, "caracteristique" => $caracteristique]);
}
return $caracteristique;
}
public function getArticleMarketPlace($idArticleMarketPlace)
{
$repoArticleMarketPlace = $this->em->getRepository(ArticleMarketPlace::class);
$articleMarketPlace = $repoArticleMarketPlace->find($idArticleMarketPlace);
return $articleMarketPlace;
}
}