vendor/uvdesk/core-framework/Controller/ReportTicketPost.php line 28

Open in your IDE?
  1. <?php
  2. namespace Webkul\UVDesk\CoreFrameworkBundle\Controller;
  3. use Symfony\Component\Translation\TranslatorInterface;
  4. use Webkul\UVDesk\CoreFrameworkBundle\Form;
  5. use Webkul\UVDesk\CoreFrameworkBundle\Entity\User;
  6. use Webkul\UVDesk\CoreFrameworkBundle\Entity\SupportTeam;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  10. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  11. use Mysqli;
  12. ini_set('display_errors''1');
  13. ini_set('display_startup_errors''1');
  14. error_reporting(E_ALL);
  15. class ReportTicketPost extends Controller
  16. {
  17.     /**
  18.      * @var TranslatorInterface
  19.      */
  20.     public function __construct()
  21.     {
  22.     }
  23.     public function listTeamsReportTickets(Request $request)
  24.     {
  25.         if (!$this->get('user.service')->isAccessAuthorized('ROLE_AGENT_MANAGE_SUB_GROUP')){
  26.             return $this->redirect($this->generateUrl('helpdesk_member_dashboard'));
  27.         }
  28.         return $this->render('@UVDeskCoreFramework/ReportTicketPost/reportTicketPost.html.twig');
  29.     }
  30.     public function createReportTickets(Request $request)
  31.     {
  32.         $from date('Y-m-d 00:00:00'strtotime($request->request->get('from')));
  33.         $to date('Y-m-d 23:59:59'strtotime($request->request->get('to')));
  34.         $customerList "'" implode "', '"$request->request->get('customerList') ) . "'";
  35.         $mysqli $this->conectionTKT();
  36.         $consulta "  SELECT 
  37.             CONCAT(ut.ticket_id,'-',utt.numeracion),
  38.             utst.description ,
  39.             uu.first_name as name_user,
  40.             utt.agent_id as id_user , 
  41.             utt.reference as referencia,
  42.             uun.first_name as agent_first_name,
  43.             utt.created_at as created_at , 
  44.             ut.source as source,
  45.             utp.code as priority, 
  46.             uts.code as status_tkt, 
  47.             utt.group_id as group_id,
  48.             utt.agent_id as id_user,
  49.             utt.agent_id as id_user,
  50.             ut.created_at as created_at , 
  51.             ut.created_by as origen_post,
  52.             TIMESTAMPDIFF(MINUTE, utt.created_at, ut.created_at) AS minutos_diferencia
  53.         FROM `uv_thread` ut 
  54.         LEFT JOIN uv_ticket utt ON utt.id = ut.ticket_id 
  55.         LEFT JOIN uv_user uu ON utt.customer_id = uu.id
  56.         LEFT JOIN uv_user uun ON utt.agent_id = uun.id 
  57.         LEFT JOIN uv_ticket_priority utp ON utp.id = utt.priority_id 
  58.         LEFT JOIN uv_ticket_subtype utst ON utst.id = utt.subtype_id 
  59.         LEFT JOIN uv_ticket_status uts ON uts.id = utt.status_id 
  60.         where utt.is_trashed = 0 AND DATE(utt.created_at) BETWEEN '".$from."' AND '".$to."' ";//ut.thread_type = 'reply' and 
  61.         if($customerList != "''"$consulta .=" AND uu.email IN ($customerList)";
  62.         $consulta .="order by ut.ticket_id DESC,ut.created_at asc ";
  63.         // echo $consulta."<br>";
  64.         // die();limit 0,100 
  65.         if ($resultado $mysqli->query($consulta)) {
  66.             $resultsetData '"TICKET ID"' "\t" '"SUB TIPO"' "\t" .'"ORGANIZACION"' "\t" .'"TIPO"' "\t" '"REFERENCIA"' "\t" '"AGENTE"' "\t"'"FECHA Y HORA INICIO"' "\t"'"CANAL"' "\t"'"PRIORIDAD"' "\t"'"ESTADO"' "\t"'"GRUPO"' "\t"'"EQUIPO"' "\t"'"ETIQUETAS"' "\t"'"FECHA Y HORA POST"' "\t"'"ORIGEN POST"' "\t"'"MINUTOS DIFERENCIA"' "\t";
  67.             $resultsetData .= "\n";
  68.             // $resultsetData .= "<br>";
  69.             $counter 0;
  70.             $actuales 0;
  71.             $min_ateriores 0;
  72.             $resultado_min 0;
  73.             while ($rec mysqli_fetch_row($resultado)) {
  74.                 $row '';
  75.                 $sub_tipo "N/A";
  76.                 $agente "N/A";
  77.                 $actuales $min_ateriores ;
  78.                 foreach ($rec as $data) {
  79.                     $counter++;
  80.                     switch($counter){
  81.                         case 2:
  82.                             if($data != "")$sub_tipo $data;
  83.                             $data '"' .  mb_convert_encoding($sub_tipo,'ISO-8859-1','UTF-8'). '"' "\t";
  84.                             break;
  85.                         case 6:
  86.                             if($data != "")$agente $data;
  87.                             $data '"' .  mb_convert_encoding($agente,'ISO-8859-1','UTF-8'). '"' "\t";
  88.                             break;
  89.                         case 4:
  90.                         case 12:
  91.                                 if($data == "")$data=0;
  92.                                 $sql=  "SELECT usg.name as name_grop_type 
  93.                                 FROM `uv_user_instance` uui 
  94.                                 LEFT JOIN uv_user_support_groups uusg ON uusg.userInstanceId = uui.id 
  95.                                 LEFT JOIN uv_support_group usg ON usg.id = uusg.supportGroupId 
  96.                                 INNER JOIN uv_user uu ON uu.id = uui.user_id 
  97.                                 WHERE uui.user_id = $data";
  98.                                 
  99.                                 $resultado2 $mysqli->query($sql);
  100.                                 if ($fila $resultado2->fetch_assoc()) {
  101.                                     $name_grop_type $fila['name_grop_type'];
  102.                                 }
  103.                                 $data '"' $name_grop_type'"' "\t";
  104.                         break;
  105.                         case 11:
  106.                             if($data == "")$data=0;
  107.                             $sql=  "SELECT usg.name as name_grop from uv_support_group usg WHERE usg.id = $data";
  108.                                 $resultado2 $mysqli->query($sql);
  109.                                 if($fila $resultado2->fetch_assoc()) {
  110.                                     $name_grop $fila['name_grop'];
  111.                                 }
  112.                                 if($name_grop == "")$name_grop "N/A";
  113.                                 $data '"' $name_grop'"' "\t";
  114.                             break;
  115.                         case 13:
  116.                             $data "\t";
  117.                             break;
  118.                         case 16:
  119.                             $min_ateriores $data;
  120.                             if($min_ateriores>0){
  121.                                 $resultado_min $min_ateriores $actuales;
  122.                                 $data $resultado_min ;
  123.                             }elseif ($min_ateriores == 0){
  124.                                 $data $min_ateriores;
  125.                             }
  126.                             // $data = $resultado_min ;
  127.                             $counter 0;
  128.                             break;
  129.                         default:
  130.                             $data '"' .  mb_convert_encoding($data,'ISO-8859-1','UTF-8'). '"' "\t";
  131.                             break;
  132.                     }
  133.                    
  134.                     $row .= $data;
  135.                 }
  136.                 $resultsetData .= trim($row) . "\n";
  137.                 // $resultsetData .= trim($row."\t actuales ->".$actuales. "\tmin_ateriores->".$min_ateriores.  "\t resultado_min ->".$resultado_min) . "<br><br>";
  138.                 // $resultsetData .= trim($row."\t") . "<br><br>";
  139.             }
  140.             // die($resultsetData);
  141.             header("Content-type: application/octet-stream");
  142.             header("Content-Disposition: attachment; filename=Detalle-Tickets_post_".date('Y-m-d H:i:s').".xls");
  143.             header("Pragma: no-cache");
  144.             header("Expires: 0");
  145.             echo ucwords($result) . "\n" $resultsetData "\n";
  146.         }
  147.         $mysqli->close();
  148.         die();
  149.     }
  150.     public function conectionTKT(){
  151.         $mysqli = new mysqli("database-plesk.cfcc6wi065dc.us-east-1.rds.amazonaws.com""ticketera""Qn0is837Zo102""admin_tkt2");
  152.         /* comprobar la conexión */
  153.         if ($mysqli->connect_errno) {
  154.             printf("Falló la conexión: %s\n"$mysqli->connect_error);
  155.             exit();
  156.         }
  157.         return $mysqli;
  158.     }
  159. }