<?php
/**
* Created by Mediterranean Develup Solutions
* User: jorge.defreitas@develup.solutions
* Date: 04/07/2017
* Time: 17:02
*/
namespace App\Controller;
use App\Entity\Cities;
use App\Entity\Client;
use App\Entity\Country;
use App\Entity\Group;
use App\Entity\Regions;
use App\Entity\User;
use App\Helper\ClientHelper;
use App\MDS\CommercialBundle\Entity\CommercialTracking;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use Symfony\Component\HttpFoundation\ResponseHeaderBag;
use Symfony\Component\HttpFoundation\StreamedResponse;
use Symfony\Contracts\Translation\TranslatorInterface;
class ClientListController extends AbstractController
{
private $translator;
public function __construct(TranslatorInterface $translator) {
$this->translator = $translator;
}
/**
* @Route("/client", name="client_list")
*/
public function ClienteListAction(Request $request)
{
// $data = $this->primtListClientAction($request);
$em = $this->getDoctrine()->getManager();
/* POR GRUPOS EXISTENTES */
// $dql = 'SELECT cl, gr.title, c.country, p.region, r.city
// FROM App\Entity\Client cl
// INNER JOIN App\Entity\Group gr WITH gr.id = cl.groupId
// INNER JOIN App:Country c WITH c.id = cl.country
// INNER JOIN App:Regions p WITH p.id = cl.province
// INNER JOIN App:Cities r WITH r.id = cl.population';
/* ALL LO QUE HAY */
$dql = 'SELECT cl, c.country, p.name, re.region, r.city
FROM App\Entity\Client cl
INNER JOIN App:Country c WITH c.id = cl.country
INNER JOIN App:Regions re WITH re.id = cl.region
INNER JOIN App:Provinces p WITH p.id = cl.province
INNER JOIN App:Cities r WITH r.id = cl.population';
// WHERE p.dateProposedAt >= :desde AND p.dateProposedAt <= :hasta
// ORDER BY p.dateProposedAt DESC';
$query = $em->createQuery($dql);
$clients = $query->getResult();
foreach($clients as $client){
$group = $em->getRepository(Group::class)->findOneById($client[0]->getGroupId());
$parameters = array(
'clientId' => $client[0]->getId()
);
$dqlc = 'SELECT cc, u.name, u.lastname
FROM App\Entity\ClientContact cc
INNER JOIN App\Entity\User u WITH u.id = cc.assignedAgent
WHERE cc.clientId = :clientId ';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$contacts = $queryc->getResult();
$data_clients[] = array(
'client' => $client,
'group' => $group,
'contacts' => $contacts,
);
}
return $this->render('client/clients-general-list.html.twig', array( 'datosclientes' => $data_clients, ) );
}
/**
* @Route("/clientsearch", name="client_search")
*/
public function ClientSearchAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$dql = 'SELECT cl
FROM App\MDS\CommercialBundle\Entity\CommercialTracking cl
GROUP BY cl.createdId';
$query = $em->createQuery($dql);
$comtrack = $query->getResult();
$agents = array();
foreach ($comtrack as $item) {
$userCreator = $em->getRepository(User::class)->findOneById($item->getCreatedId());
if (!empty($userCreator)){ $agents[$userCreator->getName() . ' '. $userCreator->getLastName()] = $userCreator; }
}
ksort($agents);
$background = 'assets/images/bg-10.jpg';
return $this->render('client/clients-search.html.twig', array(
'background' => $background,
'agents' => $agents,
)
);
}
/**
* @Route("/clientsearchzipcode", name="client_search_zipcode")
*/
public function ClientSearchZipCodeAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$dato = $_POST['name'];
$standar = $_POST['criterio'];
$background = 'assets/images/bg-10.jpg';
switch ($standar){
case 'company':
$parameters = array();
$dqlc = "SELECT cc
FROM App\Entity\Client cc
WHERE cc.name LIKE '%".$dato."%' OR cc.title LIKE '%".$dato."%' ";
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$competencyClients = $queryc->getResult();
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'zipCode':
$parameters = array( 'zipCode' => $dato );
$dqlc = 'SELECT cc
FROM App\Entity\Client cc
WHERE cc.zipCode = :zipCode ';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$competencyClients = $queryc->getResult();
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
// $parameters = array( 'zipCode' => $dato );
// $dqlc = 'SELECT cc
// FROM App\Entity\Client cc
// WHERE cc.zipCode = :zipCode ';
//
// $queryc = $em->createQuery($dqlc)->setParameters($parameters);
// $zipCodeClients = $queryc->getResult();
//
// $clientList = array();
//
// foreach($zipCodeClients as $client){
//
// $picture = $client->getPicture();
// if(!empty($picture) or $picture !== null){
// $picture = $client->getPicture();
// }else{
// $picture = 'assets/images/placeholder.jpg';
// }
// $contacts = array();
// $contactsInfo = $em->getRepository('App\Entity\ClientContact')->findByClientId($client->getId());
//
// foreach ($contactsInfo as $contact){
// $contacts[] = array(
// 'name' => $contact->getName().' '.$contact->getLastName(),
// );
// }
// $clientList[] = array(
// 'id' => $client->getId(),
// 'name' => $client->getName(),
// 'title' => $client->getTitle(),
// 'competency' => $client->getCompetency(),
// 'picture' => $picture,
// 'contact' => $contacts,
// 'filter' => 'Código Postal',
// 'data' => $dato,
// );
// }
break;
case 'direction':
$parameters = array();
// ---DIRECCIÓN---
$dqlc = "SELECT cc
FROM App\Entity\Client cc
WHERE cc.address LIKE '%".$dato."%' ";
$queryc = $em->createQuery($dqlc);
$directionsPart1 = $queryc->getResult();
// ---DIRECCIÓN NÚMERO---
$dqlc = "SELECT cc
FROM App\Entity\Client cc
WHERE cc.addressNumber LIKE '%".$dato."%' ";
$queryc = $em->createQuery($dqlc);
$directionsPart2 = $queryc->getResult();
$competencyClients = array_merge($directionsPart1, $directionsPart2);
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'contact':
$arrayDatos = explode(" ", $dato);
$parameters = array();
$clientsContacts = array();
foreach ($arrayDatos as $item){
if (strlen($item) > 3) { // Descartar "la" "de" "del"
$dqlc = "SELECT cc
FROM App\Entity\ClientContact cc
WHERE cc.name LIKE '%" . $item . "%' OR cc.lastName LIKE '%" . $item . "%'";
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$clientsContacts = array_merge($clientsContacts, $queryc->getResult());
}
}
$arrayClients = array();
$competencyClients = array();
foreach ($clientsContacts as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
$competencyClients[] = $cli;
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'competencies':
$parameters = array();
$dqlc = "SELECT cc
FROM App\Entity\Client cc
WHERE cc.competency LIKE '%".$dato."%' ";
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$competencyClients = $queryc->getResult();
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'email':
$parameters = array();
$dqlc = "SELECT cc
FROM App\Entity\ClientContact cc
WHERE cc.email LIKE '%".$dato."%' ";
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$arrayCompetencyClients = $queryc->getResult();
$arrayClients = array();
$competencyClients = array();
foreach ($arrayCompetencyClients as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$dqlc = "SELECT cc
FROM App\Entity\Client cc
WHERE cc.email LIKE '%".$dato."%' ";
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$competencyClients = array_merge($competencyClients, $queryc->getResult());
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'phone':
$parameters = array();
$dqlc = "SELECT cc
FROM App\Entity\ClientContact cc
WHERE cc.phone LIKE '%".$dato."%' OR cc.mobile LIKE '%".$dato."%' ";
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$arrayCompetencyClients = $queryc->getResult();
$arrayClients = array();
$competencyClients = array();
foreach ($arrayCompetencyClients as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$dqlc = "SELECT cc
FROM App\Entity\Client cc
WHERE cc.telephone LIKE '%".$dato."%' ";
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$competencyClients = array_merge($competencyClients, $queryc->getResult());
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'volumeless':
$allComTrack = $em->getRepository(CommercialTracking::class)->findAll();
$arrayComTrack = array();
foreach ($allComTrack as $item){
// 200.000; 1050.000 es numero
// 2.000.000; 200 000; 200,000; 90000 €; Desconocido; Null, no es un numero
$datoVol = str_replace('.','',$item->getVolume()); // Los .
$datoVol = str_replace(' ','',$datoVol); // Los ' '
$datoVol = str_replace(',','',$datoVol); // Los ' '
$datoVol = str_replace('€','',$datoVol); // Los €
$datoVol = str_replace('$','',$datoVol); // Los $
// Se busca hasta el volumen indicado. Victor Muñoz
if (is_numeric($datoVol)){ if ($datoVol <= $dato) { $arrayComTrack[] = $item; } }
}
$arrayClients = array();
$competencyClients = array();
foreach ($arrayComTrack as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'volumegreat':
$allComTrack = $em->getRepository(CommercialTracking::class)->findAll();
$arrayComTrack = array();
foreach ($allComTrack as $item){
// 200.000; 1050.000 es numero
// 2.000.000; 200 000; 200,000; 90000 €; Desconocido; Null, no es un numero
$datoVol = str_replace('.','',$item->getVolume()); // Los .
$datoVol = str_replace(' ','',$datoVol); // Los ' '
$datoVol = str_replace(',','',$datoVol); // Los ' '
$datoVol = str_replace('€','',$datoVol); // Los €
$datoVol = str_replace('$','',$datoVol); // Los $
// Se busca hasta el volumen indicado. Victor Muñoz
if (is_numeric($datoVol)){ if ($datoVol >= $dato) { $arrayComTrack[] = $item; } }
}
$arrayClients = array();
$competencyClients = array();
foreach ($arrayComTrack as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'volumeblone':
// Bloque de 0 a 50K
$allComTrack = $em->getRepository(CommercialTracking::class)->findAll();
$arrayComTrack = array();
foreach ($allComTrack as $item){
// 200.000; 1050.000 es numero
// 2.000.000; 200 000; 200,000; 90000 €; Desconocido; Null, no es un numero
$datoVol = str_replace('.','',$item->getVolume()); // Los .
$datoVol = str_replace(' ','',$datoVol); // Los ' '
$datoVol = str_replace(',','',$datoVol); // Los ' '
$datoVol = str_replace('€','',$datoVol); // Los €
$datoVol = str_replace('$','',$datoVol); // Los $
// Se busca por bloque. Daniel Guerrero
if (is_numeric($datoVol)){ if (($datoVol >= 0) and ($datoVol <= 50000)) { $arrayComTrack[] = $item; } }
}
$arrayClients = array();
$competencyClients = array();
foreach ($arrayComTrack as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'volumebltwo':
// Bloque de 50K a 200K
$allComTrack = $em->getRepository(CommercialTracking::class)->findAll();
$arrayComTrack = array();
foreach ($allComTrack as $item){
// 200.000; 1050.000 es numero
// 2.000.000; 200 000; 200,000; 90000 €; Desconocido; Null, no es un numero
$datoVol = str_replace('.','',$item->getVolume()); // Los .
$datoVol = str_replace(' ','',$datoVol); // Los ' '
$datoVol = str_replace(',','',$datoVol); // Los ' '
$datoVol = str_replace('€','',$datoVol); // Los €
$datoVol = str_replace('$','',$datoVol); // Los $
// Se busca por bloque. Daniel Guerrero
if (is_numeric($datoVol)){ if (($datoVol >= 50000) and ($datoVol <= 200000)) { $arrayComTrack[] = $item; } }
}
$arrayClients = array();
$competencyClients = array();
foreach ($arrayComTrack as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'volumeblthr':
// Bloque de 200K a 500K
$allComTrack = $em->getRepository(CommercialTracking::class)->findAll();
$arrayComTrack = array();
foreach ($allComTrack as $item){
// 200.000; 1050.000 es numero
// 2.000.000; 200 000; 200,000; 90000 €; Desconocido; Null, no es un numero
$datoVol = str_replace('.','',$item->getVolume()); // Los .
$datoVol = str_replace(' ','',$datoVol); // Los ' '
$datoVol = str_replace(',','',$datoVol); // Los ' '
$datoVol = str_replace('€','',$datoVol); // Los €
$datoVol = str_replace('$','',$datoVol); // Los $
// Se busca por bloque. Daniel Guerrero
if (is_numeric($datoVol)){ if (($datoVol >= 200000) and ($datoVol <= 500000)) { $arrayComTrack[] = $item; } }
}
$arrayClients = array();
$competencyClients = array();
foreach ($arrayComTrack as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'volumeblfour':
// Bloque de 500K en adelante
$allComTrack = $em->getRepository(CommercialTracking::class)->findAll();
$arrayComTrack = array();
foreach ($allComTrack as $item){
// 200.000; 1050.000 es numero
// 2.000.000; 200 000; 200,000; 90000 €; Desconocido; Null, no es un numero
$datoVol = str_replace('.','',$item->getVolume()); // Los .
$datoVol = str_replace(' ','',$datoVol); // Los ' '
$datoVol = str_replace(',','',$datoVol); // Los ' '
$datoVol = str_replace('€','',$datoVol); // Los €
$datoVol = str_replace('$','',$datoVol); // Los $
// Se busca por bloque. Daniel Guerrero
if (is_numeric($datoVol)){ if ($datoVol >= 500000) { $arrayComTrack[] = $item; } }
}
$arrayClients = array();
$competencyClients = array();
foreach ($arrayComTrack as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'agent':
$dato = $_POST['agentes'];
$parameters = array( 'userid' => $dato );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.createdId = :userid OR ct.updatedId = :userid';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$arrayComTrack = $queryc->getResult();
$arrayClients = array();
$competencyClients = array();
foreach ($arrayComTrack as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'pay':
$dato = $_POST['pago'];
$parameters = array( 'pay' => $dato );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.payment = :pay';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$arrayComTrack = $queryc->getResult();
$arrayClients = array();
$competencyClients = array();
foreach ($arrayComTrack as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'situation':
$dato = $_POST['situacion'];
$parameters = array( 'situation' => $dato );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.situation = :situation';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$arrayComTrack = $queryc->getResult();
$arrayClients = array();
$competencyClients = array();
foreach ($arrayComTrack as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'competency':
$parameters = array();
$dqlc = "SELECT cc
FROM App\Entity\Client cc
WHERE cc.competency LIKE '%".$dato."%' ";
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$competencyClients = $queryc->getResult();
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
// $parameters = array( 'zipCode' => $dato );
// $dqlc = 'SELECT cc
// FROM App\Entity\Client cc
// WHERE cc.zipCode = :zipCode ';
//
// $queryc = $em->createQuery($dqlc)->setParameters($parameters);
// $zipCodeClients = $queryc->getResult();
//
// $clientList = array();
//
// foreach($zipCodeClients as $client){
//
// $picture = $client->getPicture();
// if(!empty($picture) or $picture !== null){
// $picture = $client->getPicture();
// }else{
// $picture = 'assets/images/placeholder.jpg';
// }
// $contacts = array();
// $contactsInfo = $em->getRepository('App\Entity\ClientContact')->findByClientId($client->getId());
//
// foreach ($contactsInfo as $contact){
// $contacts[] = array(
// 'name' => $contact->getName().' '.$contact->getLastName(),
// );
// }
// $clientList[] = array(
// 'id' => $client->getId(),
// 'name' => $client->getName(),
// 'title' => $client->getTitle(),
// 'competency' => $client->getCompetency(),
// 'picture' => $picture,
// 'contact' => $contacts,
// 'filter' => 'Código Postal',
// 'data' => $dato,
// );
// }
break;
case 'zone':
$parameters = array();
$dqlc = "SELECT cc
FROM App\Entity\Cities cc
WHERE cc.city LIKE '%" . $dato . "%'";
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$arrayCities = $queryc->getResult();
$competencyClients = array();
if(!empty($arrayCities)){
foreach ($arrayCities as $item){
$cli = $em->getRepository(Client::class)->findByPopulation($item->getId());
if (!empty($cli)){ foreach ($cli as $elem) { $competencyClients[] = $elem; } }
}
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
case 'datetracking':
$dato = new \DateTime($_POST['fechaseguimiento']);
$startDate = $dato->setTime(0, 0, 0);
$endDate = clone $startDate;
$endDate = $endDate->modify('+1 day');
$parameters = array( 'startDate' => $startDate, 'endDate' => $endDate );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.createdAt >= :startDate AND ct.createdAt < :endDate';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$arrayComTrack = $queryc->getResult();
$arrayClients = array();
$competencyClients = array();
foreach ($arrayComTrack as $item){ $arrayClients[$item->getClientId()] = $item->getClientId(); }
foreach ($arrayClients as $item){
$cli = $em->getRepository(Client::class)->findOneById($item);
if (!empty($cli)) { $competencyClients[] = $cli; }
}
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){ $picture = $client->getPicture(); } else { $picture = 'assets/images/placeholder.jpg'; }
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL,$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>','',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL,$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
break;
default: break;
};
$clientCount = count($clientList);
$dql = 'SELECT cl
FROM App\MDS\CommercialBundle\Entity\CommercialTracking cl
GROUP BY cl.createdId';
$query = $em->createQuery($dql);
$comtrack = $query->getResult();
$agents = array();
foreach ($comtrack as $item) {
$userCreator = $em->getRepository(User::class)->findOneById($item->getCreatedId());
if (!empty($userCreator)){ $agents[$userCreator->getName() . ' '. $userCreator->getLastName()] = $userCreator; }
}
ksort($agents);
return $this->render('client/clients-find.html.twig',
array(
'clients' => $clientList,
'clientsCount' => $clientCount,
'background' => $background,
'searchCriteria' => $standar,
'dato' => $dato,
'agents' => $agents,
)
);
}
/**
* @Route("/xlsclientsearchcompetencies/", name="client_search_competencies_xls_empty")
* Una busqueda con dato empty da 404, se crea esta ruta para solucionarlo
*/
public function XlsEmptyClientSearchCompetenciesAction(Request $request){
return $this->redirectToRoute('client_search_competencies_xls', array( 'dato' => 'zzz666zzz' ));
}
/**
* @Route("/xlsclientsearchcompetencies/{dato}", name="client_search_competencies_xls")
*/
public function XlsClientSearchCompetenciesAction($dato, Request $request){
$em = $this->getDoctrine()->getManager();
$parameters = array();
$dqlc = "SELECT cc
FROM App\Entity\Client cc
WHERE cc.competency LIKE '%".$dato."%' ";
if ($dato == 'zzz666zzz'){ $dqlc = 'SELECT cc FROM App\Entity\Client cc'; }
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$competencyClients = $queryc->getResult();
$clientList = array();
foreach($competencyClients as $client){
$picture = $client->getPicture();
if(!empty($picture) or $picture !== null){
$picture = $client->getPicture();
}else{
$picture = 'assets/images/placeholder.jpg';
}
//Ordenamos desde el tracking as reciente al mas antiguo
$parameters = array( 'clientId' => $client->getId() );
$dqlc = 'SELECT ct
FROM CommercialBundle:CommercialTracking ct
WHERE ct.clientId = :clientId
ORDER BY ct.dateAt DESC';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$allClientTrackings = $queryc->getResult();
// Por indicaciones de Victor Muñoz solo mostraremos el comercial tracking mas reciente cuando la busqueda es sobre todos los clientes asi se evita error por desbordamiento de memoria
if ($dato == 'zzz666zzz') { if (!empty($allClientTrackings)) { $allClientTrackings = array('0' => reset($allClientTrackings)); } }
$newTableData = array();
$cityClient = $em->getRepository(Cities::class)->findOneById($client->getPopulation());
if (!empty($cityClient)){ $cityClient = $cityClient->getCity(); }
foreach ($allClientTrackings as $track) {
$contactClientInfo = $em->getRepository('App\Entity\ClientContact')->findOneById($track->getContactId());
if (!empty($contactClientInfo)){
// allPhones tendrá los telefonos y moviles
$allPhones = !empty($contactClientInfo->getPhone()) ? $contactClientInfo->getPhone() : null;
$allMob = !empty($contactClientInfo->getMobile()) ? $contactClientInfo->getMobile() : null;
$allPhones = (!empty($allPhones) and !empty($allMob)) ? $allPhones.' - '.$allMob : (!empty($allPhones) ? $allPhones : $allMob);
$arrayContactClientInfo = array(
'fullName' => $contactClientInfo->getName().' '.$contactClientInfo->getLastName(),
'email' => $contactClientInfo->getEmail(),
'allPhones' => $allPhones,
);
} else {
$arrayContactClientInfo = array(
'fullName' => '',
'email' => '',
'allPhones' => '',
);
}
$xlsObservations = $track->getMessage();
if(!empty($xlsObservations)){
$xlsObservations = str_replace('</p><p>',PHP_EOL.' ',$xlsObservations);
$xlsObservations = str_replace('<p>','',$xlsObservations);
$xlsObservations = str_replace('</p>',' ',$xlsObservations);
$xlsObservations = str_replace(' ',' ',$xlsObservations);
$xlsObservations = str_replace('<br>',PHP_EOL.' ',$xlsObservations);
}
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => $track->getVolume(),
'payment' => $track->getPayment(),
'situation' => $track->getSituation(),
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => $arrayContactClientInfo['fullName'],
'email' => $arrayContactClientInfo['email'],
'allPhones' => $arrayContactClientInfo['allPhones'],
'trackMessage' => $xlsObservations,
'trackStatus' => $track->getStatus(),
'trackDateAt' => $track->getDateAt(),
);
}
// Si no hay comercial tracking se debe dejar vacio
if (empty($newTableData)){
$newTableData[] = array(
'id' => $client->getId(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'cityClient' => $cityClient,
'zipCode' => $client->getZipCode(),
'volume' => '',
'payment' => '',
'situation' => '',
'competency' => $client->getCompetency(),
'picture' => $picture,
'contact' => '',
'email' => '',
'allPhones' => '',
'trackMessage' => '',
'trackStatus' => '',
'trackDateAt' => '',
);
}
$clientList[] = $newTableData;
}
if ($dato == 'zzz666zzz'){ $dato = ''; }
// Solicita el servicio de excel
$phpExcelObject = new Spreadsheet();
$phpExcelObject->getProperties()->setCreator("InOut Travel")
->setLastModifiedBy("InOut Travel")
->setTitle("InOut Travel")
->setSubject("InOut Travel")
->setDescription("InOut Travel, generado usando clases de PHP")
->setKeywords("office 2005 openxml php")
->setCategory("Competencias");
$fill = new Fill();
$numberFormat = new NumberFormat();
$alignment = new Alignment();
$estilo = array(
'alignment' => array(
'horizontal' => $alignment::HORIZONTAL_RIGHT,
)
);
$i = 8;
$indiceInicial = 9;
$indiceFinal = 9;
$activesheet = $phpExcelObject->getActiveSheet();
$drawingobject = new Drawing();
$drawingobject->setName('Image name');
$drawingobject->setDescription('Image description');
$drawingobject->setPath(getcwd().'/assets/images/logo/logo2022.png');
$drawingobject->setHeight(60);
$drawingobject->setOffsetY(20);
$drawingobject->setCoordinates('B1');
$drawingobject->setWorksheet($activesheet);
$phpExcelObject
->getActiveSheet()
->getStyle('B6:AH6')
->getFill()
->setFillType($fill::FILL_SOLID)
->getStartColor()
->setRGB('FFA420');
$phpExcelObject->setActiveSheetIndex(0)
->setCellValue('C6','Competencias con "'.$dato.'"')
;
$phpExcelObject
->getActiveSheet()
->getStyle('B'.$i.':AH'.$i)
->getFill()
->setFillType($fill::FILL_SOLID)
->getStartColor()
->setRGB('9c9c9c');
$phpExcelObject->setActiveSheetIndex(0)
->setCellValue('B'.$i, 'Fecha')//
->setCellValue('D'.$i, 'Empresa')
->setCellValue('F'.$i, 'Contacto')
->setCellValue('H'.$i, 'Correo Electrónico')//
->setCellValue('K'.$i, 'Teléfono')
->setCellValue('M'.$i, 'Dirección')
->setCellValue('P'.$i, 'Número')
->setCellValue('Q'.$i, 'Zona')
->setCellValue('S'.$i, 'Código Postal')
->setCellValue('T'.$i, 'Agencia')//
->setCellValue('V'.$i, 'Volumen')
->setCellValue('W'.$i, 'Pago')
->setCellValue('Y'.$i, 'Situación')
// ->setCellValue('X'.$i, 'Prioridad')
->setCellValue('AA'.$i, 'Observaciones')
;
foreach ($clientList as $elem) {
foreach ($elem as $item) {
$xlsDate = empty($item['trackDateAt']) ? '' : $item['trackDateAt']->format('d/m/Y');
$phpExcelObject->setActiveSheetIndex(0)
->setCellValue('B' . ($i + 1), $xlsDate)
->setCellValue('D' . ($i + 1), $item['name'])
->setCellValue('F' . ($i + 1), $item['contact'])
->setCellValue('H' . ($i + 1), $item['email'])
->setCellValue('K' . ($i + 1), $item['allPhones'])
->setCellValue('M' . ($i + 1), $item['address'])
->setCellValue('P' . ($i + 1), $item['addressNumber'])
->setCellValue('Q' . ($i + 1), $item['cityClient'])
->setCellValue('S' . ($i + 1), $item['zipCode'])
->setCellValue('T' . ($i + 1), $item['competency'])
->setCellValue('V' . ($i + 1), $item['volume'])
->setCellValue('W' . ($i + 1), $item['payment'])
->setCellValue('Y' . ($i + 1), $item['situation'])
// ->setCellValue('W'.($i+1), $item['priority'])
->setCellValue('AA' . ($i + 1), $item['trackMessage']);
$i++;
$indiceFinal++;
}
}
$indiceFinal--;
$indicesResta = $indiceFinal - $indiceInicial + 1;
$phpExcelObject->getActiveSheet()->setTitle('Competencias');
// Define el indice de página al número 1, para abrir esa página al abrir el archivo
$phpExcelObject->setActiveSheetIndex(0);
// Crea el writer
$writer = new Xlsx($phpExcelObject);
// Envia la respuesta del controlador
$response = new StreamedResponse(
function () use ($writer) {
$writer->save('php://output');
}
);
// Agrega los headers requeridos
$dispositionHeader = $response->headers->makeDisposition(
ResponseHeaderBag::DISPOSITION_ATTACHMENT,
'InOut_Competencias'.'.xlsx'
);
$response->headers->set('Content-Type', 'application/vnd.ms-excel; charset=utf-8');
$response->headers->set('Pragma', 'public');
$response->headers->set('Cache-Control', 'maxage=1');
$response->headers->set('Content-Disposition', $dispositionHeader);
return $response;
}
/**
* @Route("/clientprofile/{id}", name="client_profile_id")
*/
public function ClientProfileAction(Request $request, $id)
{
$em = $this->getDoctrine()->getManager();
$clientInfo = $em->getRepository(Client::class)->findOneById($id);
$clientContact = $em->getRepository('App\Entity\ClientContact')->findByClientId($id);
$placeholder = 'assets/images/placeholder.jpg';
d($clientInfo);
return $this->render('client/clients-profile.html.twig',
array(
'client' => $clientInfo,
'contacts' => $clientContact,
'placeholder' => $placeholder,
)
);
}
/* Lista Mis Client*/
/**
* @Route("/client/myclients", name="client_list_MyClients")
*/
public function MyClienteListAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
/* Obtengo usuario logueado */
$user_logueado = $this->get('security.token_storage')->getToken()->getUser();
$user_id = $user_logueado->getId();
$parametersA = array(
'assignedAgent' => $user_id
);
/* ALL LO QUE HAY */
$dql = 'SELECT cl, c.country, p.region, r.city, cc.id, pr.name as province
FROM App\Entity\Client cl
INNER JOIN App:Country c WITH c.id = cl.country
INNER JOIN App:Regions p WITH p.id = cl.region
INNER JOIN App:Provinces pr WITH pr.id = cl.province
INNER JOIN App:Cities r WITH r.id = cl.population
INNER JOIN App\Entity\ClientContact cc WITH cc.clientId = cl.id
WHERE cc.assignedAgent = :assignedAgent ';
// ORDER BY p.dateProposedAt DESC';
$query = $em->createQuery($dql)->setParameters($parametersA);;
$clients = $query->getResult();
// Ve todos los clientes, si es un administrador o un usuario especial
if (($user_logueado->getRole() == "ROLE_ADMIN") or ($user_id == 133)){
$parametersA = array();
$dql = 'SELECT cl, c.country, p.region, r.city, cc.id, pr.name as province
FROM App\Entity\Client cl
INNER JOIN App:Country c WITH c.id = cl.country
INNER JOIN App:Regions p WITH p.id = cl.region
INNER JOIN App:Provinces pr WITH pr.id = cl.province
INNER JOIN App:Cities r WITH r.id = cl.population
INNER JOIN App\Entity\ClientContact cc WITH cc.clientId = cl.id
WHERE cc.assignedAgent IS NOT NULL ';
$query = $em->createQuery($dql)->setParameters($parametersA);;
$clients = $query->getResult();
}
$data_clients = array();
foreach($clients as $client){
$group = $em->getRepository(Group::class)->findOneById($client[0]->getGroupId());
$parameters = array(
'clientId' => $client[0]->getId()
);
$dqlc = 'SELECT cc, u.name, u.lastname
FROM App\Entity\ClientContact cc
INNER JOIN App\Entity\User u WITH u.id = cc.assignedAgent
WHERE cc.clientId = :clientId ';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$contacts = $queryc->getResult();
$data_clients[] = array(
'client' => $client,
'group' => $group,
'contacts' => $contacts,
);
}
return $this->render('client/clients-general-list.html.twig', array( 'datosclientes' => $data_clients, )
);
}
/* Lista Yes Client*/
/**
* @Route("/client/yesclient", name="client_list_YesClient")
*/
public function YesClienteListAction(Request $request)
{
// $data = $this->primtListClientAction($request);
$em = $this->getDoctrine()->getManager();
$parametersA = array(
'action' => 'Client'
);
/* ALL LO QUE HAY */
$dql = 'SELECT cl, c.country, p.region, r.city, pr.name as province
FROM App\Entity\Client cl
INNER JOIN App:Country c WITH c.id = cl.country
INNER JOIN App:Regions p WITH p.id = cl.region
INNER JOIN App:Provinces pr WITH pr.id = cl.province
INNER JOIN App:Cities r WITH r.id = cl.population
WHERE cl.action = :action ';
// ORDER BY p.dateProposedAt DESC';
$query = $em->createQuery($dql)->setParameters($parametersA);;
$clients = $query->getResult();
$data_clients= array();
foreach($clients as $client){
$group = $em->getRepository(Group::class)->findOneById($client[0]->getGroupId());
$parameters = array(
'clientId' => $client[0]->getId()
);
$dqlc = 'SELECT cc, u.name, u.lastname
FROM App\Entity\ClientContact cc
INNER JOIN App\Entity\User u WITH u.id = cc.assignedAgent
WHERE cc.clientId = :clientId ';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$contacts = $queryc->getResult();
$data_clients[] = array(
'client' => $client,
'group' => $group,
'contacts' => $contacts,
);
}
return $this->render('client/clients-general-list.html.twig',
array(
'datosclientes' => $data_clients,
)
);
}
/* Lista Not Client*/
/**
* @Route("/client/notclient", name="client_list_NoClient")
*/
public function NotClienteListAction(Request $request)
{
// $data = $this->primtListClientAction($request);
$em = $this->getDoctrine()->getManager();
$parametersA = array(
'action' => 'Not Client'
);
/* ALL LO QUE HAY */
$dql = 'SELECT cl, c.country, re.region, p.name, r.city
FROM App\Entity\Client cl
INNER JOIN App:Country c WITH c.id = cl.country
INNER JOIN App:Regions re WITH re.id = cl.region
INNER JOIN App:Provinces p WITH p.id = cl.province
INNER JOIN App:Cities r WITH r.id = cl.population
WHERE cl.action = :action ';
// ORDER BY p.dateProposedAt DESC';
$query = $em->createQuery($dql)->setParameters($parametersA);;
$clients = $query->getResult();
$data_clients= array(); //Gustavo Ayala: agregué esta línea para incializar el array ya que si no hay clientes, no entraba en el for each y daba error return $this->render('client/clients-general-list.html.twig', array('datosclientes' => $data_clients,) por variable no definida
foreach($clients as $client){
$group = $em->getRepository(Group::class)->findOneById($client[0]->getGroupId());
$parameters = array(
'clientId' => $client[0]->getId()
);
$dqlc = 'SELECT cc, u.name, u.lastname
FROM App\Entity\ClientContact cc
INNER JOIN App\Entity\User u WITH u.id = cc.assignedAgent
WHERE cc.clientId = :clientId ';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$contacts = $queryc->getResult();
$data_clients[] = array(
'client' => $client,
'group' => $group,
'contacts' => $contacts,
);
}
return $this->render('client/clients-general-list.html.twig',
array(
'datosclientes' => $data_clients,
)
);
}
/**
* @Route("/client/map", name="client_map")
*/
public function ClienteMapAction(Request $request)
{
// $data = $this->primtListClientAction($request);
$em = $this->getDoctrine()->getManager();
$clients = $em->getRepository(Client::class)->findAll();
foreach($clients as $client){
$contact = $em->getRepository('App\Entity\ClientContact')->findByClientId($client->getId());
$group = $em->getRepository(Group::class)->findOneById($client->getGroupId());
$data[] = array(
'client' => $client,
'group' => $group,
'contact' => $contact,
);
}
return $this->render('client/clients-general-hierarchy.html.twig',
array(
'datosclientes' => $data,
)
);
}
public function primtListClientAction(Request $request)
{
$em = $this->getDoctrine()->getManager();
$clients = $em->getRepository(Client::class)->findAll();
$data_clients = array();
$datos_agent = array();
foreach($clients as $client){
$idclient = $client->getId();
$idcountry = $client->getCountry();
$contacts = $em->getRepository('App\Entity\ClientContact')->findByClientId($idclient);
/*
* Si tiene contactos el cliente:
*
* */
if (!empty($contacts)){
foreach($contacts as $contact){
$agentid = $contact->getAssignedAgent();
$datos_contacto[$idclient][] = array(
'cid' => $contact->getId(),
'cposition' => $contact->getPosition(),
'cdepartment' => $contact->getDepartment(),
'cname' => $contact->getName(),
'clastname' => $contact->getLastName(),
'cemail' => $contact->getEmail(),
'cphone' => $contact->getPhone(),
'cmobile' => $contact->getMobile(),
'cbirthday' => $contact->getBirthday(),
'cagentlastname' => $contact->getAssignedAgent(),
);
}
$user = $em->getRepository(User::class)->findOneById($agentid);
$datos_agent = array(
'aid' => $user->getId(),
'aname' => $user->getName(),
'alastname' => $user->getLastname(),
);
} else {
$datos_contacto[$idclient][] = array(
'cid' => '0',
'cposition' => $this->translator->trans('Empty'),
'cdepartment' => '',
'cname' => $this->translator->trans('Client Non-contact'),
'clastname' => '',
'cemail' => '',
'cphone' => '',
'cmobile' => '',
'cbirthday' => '',
'cagentlastname' => '',
);
}
if ($client->getGroupId() != 0){
$grupo = $em->getRepository(Group::class)->findOneById($client->getGroupId());
$datos_grupo = array(
'gid' => $grupo->getId(),
'gtitle' => $grupo->getTitle(),
'gdesc' => $grupo->getDescription(),
);
}else{
$datos_grupo = array(
'gid' => '',
'gtitle' => '',
'gdesc' => '',
);
}
$country= $em->getRepository(Country::class)->findOneById($idcountry);
$datos_country= array(
'pid' => $country->getId(),
'iso' => $country->getCode(),
'pname' => $country->getCountry(),
);
$region= $em->getRepository(Regions::class)->findOneById($client->getProvince());
$datos_region= $region->getRegion();
$city= $em->getRepository(Cities::class)->findOneById($client->getPopulation());
$datos_city= $city->getCity();
$data_clients[] = array(
'id' => $client->getId(),
'picture' => $client->getPicture(),
'name' => $client->getName(),
'title' => $client->getTitle(),
'address' => $client->getAddress(),
'addressNumber' => $client->getAddressNumber(),
'googlemap' => str_replace(" ", "+", $client->getAddress()),
'zipcode' => $client->getZipCode(),
'population' => $datos_city,
'province' => $datos_region,
'telephone' => $client->getTelephone(),
'fax' => $client->getFax(),
'email' => $client->getEmail(),
'codegds' => $client->getGds(),
'iddocument' => $client->getIdDocument(),
'observation' => $client->getObservation(),
'competency' => $client->getCompetency(),
'contactos' => $datos_contacto[$idclient],
'grupo' => $datos_grupo,
'agent' => $datos_agent,
'country' => $datos_country,
);
}
return $data_clients;
//d($data_clients);
// return $this->render('client/list-clientgroup-list.html.twig',
// array(
// 'datosclientes' => $data_clients,
// )
// );
}
/**
* @Route("/client/searchForNameOrTitle/", name="client_searchForNameOrTitle")
* @param Request $request
* @return JsonResponse
*/
public function searchForNameOrTitleAction(Request $request) {
$term = $request->query->get('q');
$em = $this->getDoctrine()->getManager();
$clients = [
"items" => array()
]
;
$helper = new ClientHelper($em);
$clientsCollection = $helper->searchForNameOrTitle($term);
/**
* @var Client $client
*/
foreach($clientsCollection as $client) {
// $baseURL = $request->getScheme() . '://' . $request->getHttpHost() . $request->getBasePath() . "/";
// $picture = (is_null($client->getPicture()))
// ? ""
// : $baseURL . $client->getPicture()
// ;
$items = [
"id" => $client->getId(),
"full_name" => $client->getName(),
"description" => $client->getTitle(),
// "img" => $picture,
]
;
$clients["items"][] = $items;
}
$response = new JsonResponse($clients, 200 );
return $response;
}
/**
* @Route("/clientlistsimple/{ind}", defaults={"ind" = 0}, name="client_list_simple")
*/
public function ClientListSimpleAction($ind, Request $request)
{
$em = $this->getDoctrine()->getManager();
/* ALL LO QUE HAY */
$dql = 'SELECT cl, c.country, p.name, re.region, r.city
FROM App\Entity\Client cl
INNER JOIN App:Country c WITH c.id = cl.country
INNER JOIN App:Regions re WITH re.id = cl.region
INNER JOIN App:Provinces p WITH p.id = cl.province
INNER JOIN App:Cities r WITH r.id = cl.population
ORDER BY cl.name ASC ';
$query = $em->createQuery($dql);
$clientsBigArray = $query->getResult();
$ind = $ind * 250;
$clients = array_slice($clientsBigArray, $ind, 250);
// Generando el arreglo de la botonera para los saltos de pagina
$indStart = 0;
$indEndArray = sizeof($clientsBigArray) - 1;
$arrayBoton = array();
for($indStart = 0; $indStart <= $indEndArray; $indStart = $indStart + 250){
if($indStart + 250 > $indEndArray){
//Ya tienes el ultimo elemento
$indEnd = $indEndArray;
} else {
$indEnd = $indStart + 249;
}
//Buscamos las letras y compañias de inicio y fin
$companyInicio = $clientsBigArray[$indStart][0]->getName();
$letraInicio = substr($companyInicio, 0,1);
$companyFin = $clientsBigArray[$indEnd][0]->getName();
$letraFin = substr($companyFin, 0,1);
$elem = array(
'indInicio' => $indStart,
'indFin' => $indEnd,
'letraInicio' => $letraInicio,
'companyInicio' => $companyInicio,
'letraFin' => $letraFin,
'companyFin' => $companyFin,
);
$arrayBoton[] = $elem;
}
$data_clients = array();
foreach($clients as $client){
$group = $em->getRepository(Group::class)->findOneById($client[0]->getGroupId());
$parameters = array(
'clientId' => $client[0]->getId()
);
$dqlc = 'SELECT cc, u.name, u.lastname
FROM App\Entity\ClientContact cc
INNER JOIN App\Entity\User u WITH u.id = cc.assignedAgent
WHERE cc.clientId = :clientId ';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$contacts = $queryc->getResult();
$data_clients[] = array(
'client' => $client,
'group' => $group,
'contacts' => $contacts,
);
}
return $this->render('client/clients-general-list-simple.html.twig',
array(
'datosclientes' => $data_clients,
'arrayBoton' => $arrayBoton,
)
);
}
/**
* @Route("/clientlistsimpleletters/{ind}", name="client_list_simple_letters")
*/
public function clientListSimpleLettersAction($ind, Request $request)
{
$em = $this->getDoctrine()->getManager();
$data_clients = array();
if (true){
// Creacion de la Botonera
$arrayBoton = array();
$elem = array('letra' => '0'); $arrayBoton['0'] = $elem;
$elem = array('letra' => 'A'); $arrayBoton['A'] = $elem;
$elem = array('letra' => 'B'); $arrayBoton['B'] = $elem;
$elem = array('letra' => 'C'); $arrayBoton['C'] = $elem;
$elem = array('letra' => 'D'); $arrayBoton['D'] = $elem;
$elem = array('letra' => 'E'); $arrayBoton['E'] = $elem;
$elem = array('letra' => 'F'); $arrayBoton['F'] = $elem;
$elem = array('letra' => 'G'); $arrayBoton['G'] = $elem;
$elem = array('letra' => 'H'); $arrayBoton['H'] = $elem;
$elem = array('letra' => 'I'); $arrayBoton['I'] = $elem;
$elem = array('letra' => 'J'); $arrayBoton['J'] = $elem;
$elem = array('letra' => 'K'); $arrayBoton['K'] = $elem;
$elem = array('letra' => 'L'); $arrayBoton['L'] = $elem;
$elem = array('letra' => 'M'); $arrayBoton['M'] = $elem;
$elem = array('letra' => 'N'); $arrayBoton['N'] = $elem;
$elem = array('letra' => 'Ñ'); $arrayBoton['Ñ'] = $elem;
$elem = array('letra' => 'O'); $arrayBoton['O'] = $elem;
$elem = array('letra' => 'P'); $arrayBoton['P'] = $elem;
$elem = array('letra' => 'Q'); $arrayBoton['Q'] = $elem;
$elem = array('letra' => 'R'); $arrayBoton['R'] = $elem;
$elem = array('letra' => 'S'); $arrayBoton['S'] = $elem;
$elem = array('letra' => 'T'); $arrayBoton['T'] = $elem;
$elem = array('letra' => 'U'); $arrayBoton['U'] = $elem;
$elem = array('letra' => 'V'); $arrayBoton['V'] = $elem;
$elem = array('letra' => 'W'); $arrayBoton['W'] = $elem;
$elem = array('letra' => 'X'); $arrayBoton['X'] = $elem;
$elem = array('letra' => 'Y'); $arrayBoton['Y'] = $elem;
$elem = array('letra' => 'Z'); $arrayBoton['Z'] = $elem;
}
if ($ind == '0'){
// Caso base, viene vacio se mostraran los que no empiezan por letra
$arrayClientsZero = $em->getRepository(Client::class)->findAll();
$arrayClients = array();
// Creamos un arreglo con los indices
foreach ($arrayClientsZero as $item){
$arrayClients[$item->getId()] = $item;
}
//Eliminamos del arreglo los elelmentos que se deban listar en A,B,C,...,Y,Z
if (true){
$indice = 'a';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'b';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'c';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'd';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'e';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'f';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'g';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'h';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'i';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'j';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'k';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'l';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'm';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'n';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'ñ';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'o';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'p';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'q';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'r';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 's';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 't';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'u';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'v';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'w';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'x';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'y';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
if (true){
$indice = 'z';
$parameters = array(
'namelist' => $indice.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
// Buscamos los elementos de esta letra y los removemos del arreglo
foreach ($clients as $item){
if (array_key_exists($item->getId(),$arrayClients)){
// Si el elemento se encuentra en el arreglo lo quitamos por que pertenece al listado de la letra
unset($arrayClients[$item->getId()]);
}
}
}
$clients = $arrayClients;
} else {
$parameters = array(
'namelist' => $ind.'%'
);
$dql = 'SELECT i
FROM App\Entity\Client i
WHERE i.name LIKE :namelist
ORDER BY i.name ASC';
$query = $em->createQuery($dql)->setParameters($parameters);
$clients = $query->getResult();
}
foreach($clients as $client){
$group = $em->getRepository(Group::class)->findOneById($client->getGroupId());
$parameters = array(
'clientId' => $client->getId()
);
$dqlc = 'SELECT cc, u.name, u.lastname
FROM App\Entity\ClientContact cc
INNER JOIN App\Entity\User u WITH u.id = cc.assignedAgent
WHERE cc.clientId = :clientId ';
$queryc = $em->createQuery($dqlc)->setParameters($parameters);
$contacts = $queryc->getResult();
$data_clients[] = array(
'client' => array( 'id' =>$client->getId(), 'name' => $client->getName(), 'title' => $client->getTitle()),
'group' => $group,
'contacts' => $contacts,
);
}
return $this->render('client/clients-general-list-letters.html.twig',
array(
'datosclientes' => $data_clients,
'arrayBoton' => $arrayBoton,
)
);
}
}