<?php
namespace App\Controller\MarketPlace;
use App\Entity\Articles\Article;
use App\Entity\MarketPlace\ErreurPublicationArticleMarketPlace;
use App\Form\MarketPlace\ProfilType;
use App\Library\Datatable\Util\Datatable;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
//use DTC\ArticlesBundle\Form\SupprimerMarketPlaceType;
class ErreurPublicationArticleMarketPlaceController extends AbstractController
{
/**
* @Route("/marketplace/erreurs/multiple", name="dtc_erreur_article_market_place_changer_statut_multiple")
*/
public function changeStatutMultipleAction(Request $request, $dataId = [], $parameters = [], EntityManagerInterface $em)
{
if (count($dataId) > 0) {
$ids = $dataId;
} else {
$data = $request->get('dataTables');
$ids = $data['actions'];
}
for ($i = 0; $i < count($ids); $i++) {
$repo = $em->getRepository(ErreurPublicationArticleMarketPlace::class);
$erreurPublicationArticleMarketPlace = $repo->find($ids[$i]);
if (is_object($erreurPublicationArticleMarketPlace)) {
$erreurPublicationArticleMarketPlace->setVerifie(1);
$em->persist($erreurPublicationArticleMarketPlace);
}
}
$em->flush();
$url = $this->generateUrl('dtcfo_homepage');
return new JsonResponse(['url' => $url, 'valide' => '1']);
}
/**
* @Route("/marketplace/erreurs/afficher/{id}", name="dtc_erreur_article_market_place_afficher")
*/
public function afficherAction(Request $request, ErreurPublicationArticleMarketPlace $erreurPublicationArticleMarketPlace)
{
$response = new Response($erreurPublicationArticleMarketPlace->getLogs());
//$response->headers->set('Content-Type', 'application/xml; charset=utf-8');
$response->headers->add(['Content-Type' => 'application/xml']);
return $response;
return $this->render('MarketPlace/ErreurPublicationArticleMarketPlace/afficher.html.twig', ['erreurPublicationArticleMarketPlace' => $erreurPublicationArticleMarketPlace]);
}
/**
* @Route("", name="")
*/
public function listerAction(Request $request, $id, $type = "", EntityManagerInterface $em, Datatable $datatable)
{
$repo_objet = $em->getRepository(Article::class);
$objet = $repo_objet->find($id);
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [0], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [1], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [2], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [3], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [4], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [5], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [6], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["orderable" => false, "className" => "colonne_id", "targets" => [7], "visible" => true];
$tableau_class_cellule = [];
$this->datatable($datatable, $objet);
return $this->render('MarketPlace/ErreurPublicationArticleMarketPlace/lister.html.twig', ['tableauClassColonne' => $tableau_class_cellule, "id" => $id]);
}
/**
* @Route("", name="")
*/
public function listerDashboardAction(Request $request, Datatable $datatable)
{
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [0], "visible" => true, "orderable" => false, "searchable" => false];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [1], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [2], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [3], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [4], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [5], "visible" => true, "orderable" => false, "searchable" => false];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [6], "visible" => true, "orderable" => false, "searchable" => false];
//$tableau_class_cellule = array();
$this->datatableDashboard($datatable);
return $this->render('MarketPlace/ErreurPublicationArticleMarketPlace/lister_dashboard.html.twig', ['tableauClassColonne' => $tableau_class_cellule]);
}
/**
* set datatable configs
*
* @return \App\Library\Datatable\Util\Datatable
*/
private function datatableDashboard(Datatable $datatable)
{
$parametres = ["verifie" => "0"];
$where = "x.verifie = :verifie";
$datatable->setDatatableId('dta-erreur')
->setEntity(ErreurPublicationArticleMarketPlace::class, "x")
->setFields(
[
//"ID" => 'x.id',
"Id" => 'x.id',
"Date" => 'x.date',
"Libelle" => 'x.id',
"Market place" => 'cmp.libelle',
"Vérifié" => 'x.verifie',
"Actions" => 'x.id',
"_identifier_" => 'x.id',
]
)
->addJoin('x.articleMarketPlace', 'amp', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('amp.compteMarketPlace', 'cmp', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->setWhere(
$where,
$parametres
)
->setRenderers(
[
1 => [
'view' => 'FO/DataTable/heure.html.twig',
'params' => [],
],
2 => [
'view' => 'FO/DataTable/libelle_erreur_market_place.html.twig',
'params' => [],
],
4 => [
'view' => 'FO/DataTable/erreur_market_place_statut.html.twig',
'params' => [
'edit_route' => 'dtc_erreur_article_market_place_changer_statut',
//'compteMarketPlaceId' => 5
],
],
5 => [
'view' => 'FO/DataTable/actions_erreurs_market_place.html.twig',
'params' => [
'edit_route' => 'dtc_erreur_article_market_place_changer_statut_multiple',
//'supprimer_route' => 'dtc_adresse_supprimer',
],
],
]
)
->setMultiple(
[
'delete' => [
'title' => 'Marqué comme vu',
'route' => 'dtc_erreur_article_market_place_changer_statut_multiple',
],
]
)
->setOrder("x.id", "desc")
->setSearch(true)
->setSearchFields([2, 3]);
return $datatable;
}
/**
* set datatable configs
*
* @return \App\Library\Datatable\Util\Datatable
*/
private function datatable(Datatable $datatable, $objet, $type = "article")
{
$type_jointure = 'x.'.$type;
$datatable->setDatatableId('dta-erreur')
->setEntity(ErreurPublicationArticleMarketPlace::class, "x")
->setFields(
[
//"ID" => 'x.id',
"Id" => 'x.id',
"Date" => 'x.date',
"Vérifié" => 'x.verifie',
"Actions" => 'x.id',
"_identifier_" => 'x.id',
]
)
//->addJoin('x.ville', 'v', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->setWhere(
$type_jointure.' = :objet',
['objet' => $objet]
)
->setRenderers(
[
1 => [
'view' => 'FO/DataTable/heure.html.twig',
'params' => [],
],
2 => [
'view' => 'FO/DataTable/booleen.html.twig',
'params' => [],
],
3 => [
'view' => 'FO/DataTable/actions.html.twig',
'params' => [
'edit_route' => 'dtc_erreur_article_market_place_afficher',
//'supprimer_route' => 'dtc_adresse_supprimer',
'target' => "_blank",
'id' => $objet->getId(),
'type' => "",
'entite' => 'ErreurPublicationArticleMarketPlace',
'objet' => ErreurPublicationArticleMarketPlace::class,
],
],
]
)
->setOrder("x.id", "desc")
->setSearch(true)
->setSearchFields([1]);
return $datatable;
}
/**
* Grid action
* @return Response
*/
/**
* @Route("/marketplace/erreurs/dashboard/grid", name="dtc_erreur_article_market_place_liste_dashboard_grid")
*/
public function gridDashboardAction(Request $request, Datatable $datatable)
{
return $this->datatableDashboard($datatable)->execute();
}
/**
* Grid action
* @return Response
*/
/**
* @Route("/marketplace/erreurs/grid/{id}", name="dtc_erreur_article_market_place_liste_grid")
*/
public function gridAction(Request $request, $id = "", EntityManagerInterface $em, Datatable $datatable)
{
$repo_objet = $em->getRepository(Article::class);
$objet = $repo_objet->find($id);
return $this->datatable($datatable, $objet)->execute();
}
/**
* Grid action
* @return Response
*/
/**
* @Route("/marketplace/erreurs/annonces/grid", name="dtc_erreur_article_market_place_annonces_liste_grid")
*/
public function gridErreursAction(Request $request, Datatable $datatable)
{
return $this->datatableErreurs($datatable)->execute();
}
/**
* @Route("/marketplace/erreurs/annonces/{page}", name="dtc_erreur_article_market_place_annonces_liste", defaults={"page":1})
*/
public function listerErreursAction(Request $request, Datatable $datatable)
{
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [0], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [1], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [2], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [3], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["className" => "visible_export colonne_id", "targets" => [4], "visible" => true, "orderable" => true, "searchable" => true];
$tableau_class_cellule[] = ["orderable" => false, "className" => "colonne_id", "targets" => [5], "visible" => true];
//$tableau_class_cellule = array();
$this->datatableErreurs($datatable);
return $this->render('MarketPlace/ErreurPublicationArticleMarketPlace/lister_erreurs.html.twig', ['tableauClassColonne' => $tableau_class_cellule]);
}
/**
* set datatable configs
*
* @return \App\Library\Datatable\Util\Datatable
*/
private function datatableErreurs(Datatable $datatable)
{
$datatable->setDatatableId('dta-erreur')
->setEntity(ErreurPublicationArticleMarketPlace::class, "x")
->setFields(
[
//"ID" => 'x.id',
"Id" => 'x.id',
"Date" => 'x.date',
"Libelle" => 'x.id',
"Market Place" => 'cmp.libelle',
"Marqué comme vu" => 'x.verifie',
"Actions" => 'x.id',
"_identifier_" => 'x.id',
]
)
->addJoin('x.rapport', 'r', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
->addJoin('r.compteMarketPlace', 'cmp', \Doctrine\ORM\Query\Expr\Join::LEFT_JOIN)
/*
->setWhere(
$type_jointure.' = :objet',
array('objet' => $objet)
)
*/
->setRenderers(
[
1 => [
'view' => 'FO/DataTable/heure.html.twig',
'params' => [],
],
2 => [
'view' => 'FO/DataTable/libelle_erreur_market_place.html.twig',
'params' => [//'edit_route' => 'dtc_erreur_article_market_place_changer_statut',
],
],
4 => [
'view' => 'FO/DataTable/statut.html.twig',
'params' => [
'edit_route' => 'dtc_erreur_article_market_place_changer_statut',
],
],
5 => [
'view' => 'FO/DataTable/actions.html.twig',
'params' => [
'afficher_route' => 'dtc_erreur_article_market_place_afficher',
//'supprimer_route' => 'dtc_adresse_supprimer',
'target' => "_blank",
//'id' => $objet->getId(),
'type' => "",
'entite' => 'ErreurPublicationArticleMarketPlace',
'objet' => ErreurPublicationArticleMarketPlace::class,
],
],
]
)
->setOrder("x.id", "desc")
->setSearch(true)
->setSearchFields([2, 3]);
return $datatable;
}
/**
* @Route("/marketplace/erreurs/{id}", name="dtc_erreur_article_market_place_changer_statut")
*/
public function changeStatutAction(Request $request, ErreurPublicationArticleMarketPlace $erreurPublicationArticleMarketPlace, EntityManagerInterface $em)
{
if ($erreurPublicationArticleMarketPlace->getVerifie() == 1) {
$erreurPublicationArticleMarketPlace->setVerifie(0);
} else {
$erreurPublicationArticleMarketPlace->setVerifie(1);
}
$em->persist($erreurPublicationArticleMarketPlace);
$em->flush();
$headers = [
'Content-Type' => 'application/json',
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => 'POST',
];
return new JsonResponse(['data' => '1'], 200, $headers);
}
}