<?php namespace App\Http\Controllers;

use App\Custom\SQLConnection;
use App\Custom\Misc;
use DB;
use Request;

class JuiciosLED extends Controller {
    
    
    public static function reporteJuicios() {

      $array_clientes = array(5546348,5281581,1226057645,42014167,7333225,528397,1659303046,515494256,1702664090,6063454,5026361,1956063230,1421956540,1313127297,806892136,2046807993,1530289645,1853132042,882192574,7855254,1811919445,121926175);
      // 2046807993
      $cli = Request::input('cliente');
      $todb = !empty(Request::input('todb')) ? true : false;
      $todb = true;
      
      if ($todb == false && $cli == 'all') {
        $clientes = array($array_clientes[0]);
      }
      if ($todb == true) {
        $clientes = $cli == 'all' ? $array_clientes : array($cli);
      }
    
      //var_dump($clientes);dd();
      foreach($clientes as $cli) {

        $qcli = DB::selectOne('select nombre_cliente from clientes where cliente = ' . $cli );
        $nombre = str_replace(" ", "-", $qcli->nombre_cliente);
          
          $file = '<table border="1">';
          $file .= '<tr><th>CLIENTE</th><th>CONTRAPARTE</th><th>CUIT</th><th>DEMANDADO</th><th>ACTOR</th><th>FECHA CAUSA</th><th>ANO</th>';
          $file .= '<th>TIPO CAUSA</th><th>OTRA PARTE</th><th>EXPEDIENTE</th></tr>';
          
          $contrap = DB::select("select clientes.nombre_cliente,
                                                      padrones.identificacion, padrones.nombre_persona
                                              from LN_contrapartes 
                                              inner join clientes on LN_contrapartes.cliente = clientes.cliente
                                              inner join padrones on LN_contrapartes.id_padron = padrones.id_padron
                                              inner join identificadores on padrones.identificador = identificadores.identificador
                                              inner join LN_gestiones on LN_contrapartes.contraparte = LN_gestiones.contraparte
                                              inner join clientes_productos on LN_contrapartes.cliente = clientes_productos.cliente
                                              where LN_contrapartes.activo = 1 and identificadores.country_code = 'AR'
                                              and LN_contrapartes.cliente NOT IN (2254875,3920694,110864291)
                                              and LN_gestiones.desde <= GETDATE() AND LN_gestiones.hasta >= GETDATE()
                                              and clientes_productos.id_producto = 47
                                              and clientes_productos.activo = 1

                                              and clientes.cliente = " . $cli . " group by clientes.nombre_cliente, padrones.identificacion, padrones.nombre_persona
                                              ORDER BY clientes.nombre_cliente, padrones.nombre_persona");

          foreach($contrap as $data) {
              $cuit = $data->identificacion;
              $razon_social = $data->nombre_persona;
              $nombre_cliente = $data->nombre_cliente;

              $mostrar_todos_los_juicios =  true;
              $mostrar_homonimos = true;
              $cantidad = 10;

              $razon_social               = str_replace('#', 'ñ', $razon_social);
              $malla_razon_social        = $razon_social;
          
          
              //inicio -var- nombres-anteriores
              $razon_social_todos         = [];
              $razon_social_todos[5]      = $razon_social;
              //inicio -var- nombres-anteriores
              $cuit_enmascarado           = $cuit;
              $otros_juicios_comerciales  = [];
              $concursos_quiebras         = [];
              $pedidos_quiebra            = [];
          
              /*if ($mostrar_todos_los_juicios) {
                $demandados                 = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null, 'D', $cuit, 60, 1));
                $actor                      = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null,'A',$cuit, 60, 1));
              } else {
                $demandados                 = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null, 'D', $cuit, 60, 1, $cantidad));
                $actor                      = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null,'A',$cuit, 60, 1, $cantidad));
              }*/
              $dni                        = '';
              $sinonimos                  = [];
              $demandado_homonimo         = [];
              $actores_homonimos          = [];
              //$p_fisica = (substr($cuit,0,1) == 3) ? false : true;
              $fisica_juridica = Misc::tipoPersona($cuit); 
              $p_fisica = ($fisica_juridica == 'F') ? true : false;
          
              $mask = substr( $cuit_enmascarado, 1,1 );
              $mask .= '-';
              $cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, 1,1);
              $mask = substr( $cuit_enmascarado, -1,-1 );
              $mask .= '-';
              $cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, -1,-1);
              $razon_social_completa     = '';
              $resultado_nombres_ant     = []; 
                  $nombres_anteriores = []; 
          
              
              if($p_fisica){
                $dni = (int)substr($cuit, 2,-1);
              }
              
              //if($json == true){
                if($p_fisica == false) {
                  //P Juridica
                  $nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
                  if ($nombres_anteriores) {
                    foreach ($nombres_anteriores as $nombre_ant) {
                        $resultado_nombres_ant[] = $nombre_ant->nombre; 
                    }
                    $resultado_nombres_ant[] = $razon_social;
                  } 
                  //$razon_social = "\"".$razon_social."\"";
                  
                  $sinonimos =  Misc::diccionarioSinonimosTest($resultado_nombres_ant);
                  //print_r("sinonimos: "); 
                  //var_dump($sinonimos); 
                  $count_sinonimo = count($sinonimos)-1;
                  foreach($sinonimos as $key => $rs) {
                    if (strlen($rs) < 3)
                    {
                      continue; 
                    }
                    if(!($key == $count_sinonimo)){
                      $razon_social_completa .= $rs.'OR';
                    }else{
                      $razon_social_completa .= $rs;
                    }
                  }
                
                $razon_social_legales = Misc::diccionarioSinonimos($razon_social);
                if(!$razon_social_completa) { $razon_social_completa = $razon_social_legales; }
                } 
                else {//caso PF
                  $razon_social_completa = "\"".$razon_social."\"";
                }
                //print_r("razon_social: "); 
                //var_dump($razon_social);   
          
                /*
                print_r("razon_social_legales: "); 
                var_dump($razon_social_legales);
                print_r("razon_social_completa: "); 
                var_dump($razon_social_completa);
                */
              
                //dd($razon_social_completa); 
                if (strlen($razon_social_completa) >= 3 && $mostrar_homonimos){
                  if ($mostrar_todos_los_juicios) {
                    //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'D'));
                    //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'A'));
                    // Abril 2019: Se empiezan a mostrar los homonimos de nombres anteriores 
                    // si se quiere que solo se muestre los homonimos de la razon social actual volver a cambiar por las dos lineas anteriores (buscar $razon_social_legales)
                    $demandado_homonimo = SQLConnection::backendStoreProcedure('[obtener_juicios_homonimos_DESDE_LT]', array($razon_social_completa,'D'));
                    $actores_homonimos  = SQLConnection::backendStoreProcedure('[obtener_juicios_homonimos_DESDE_LT]', array($razon_social_completa,'A'));
                  } else {
                    //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'D', $cantidad));
                    //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'A', $cantidad));
                    // Abril 2019: Se empiezan a mostrar los homonimos de nombres anteriores
                    // si se quiere que solo se muestre los homonimos de la razon social actual volver a cambiar por las dos lineas anteriores (buscar $razon_social_legales)
                    $demandado_homonimo = SQLConnection::backendStoreProcedure('[obtener_juicios_homonimos_DESDE_LT]', array($razon_social_completa,'D', $cantidad));
                    $actores_homonimos  = SQLConnection::backendStoreProcedure('[obtener_juicios_homonimos_DESDE_LT]', array($razon_social_completa,'A', $cantidad));
          
                    // foreach ($actores_homonimos as $key => $value) {
                    //  if (isset($value->actor) || isset($value->id_tipo_causa) || isset($value->nombre_causa) || isset($value->tipo_de_novedad) ) {
                    //    $actores_homonimos;
                    //  }else{
                    //    $actores_homonimos = [];
                    //  }
                    // }
                  }
                }
              //}
          
          
              /*
              if ($mostrar_todos_los_juicios) {
                $remates = SQLConnection::obtenerRemates($cuit,$cuit_enmascarado,$dni);
              } else {
                $remates = SQLConnection::backendStoreProcedure('obtener_remates', array($cuit,$cuit_enmascarado,$dni, $cantidad));
              }
          
              if($remates){
                $remates = Misc::ResaltarResultadosRemates($remates,$razon_social);
              }
              */

            //  $concursos_quiebras = SQLConnection::obtenerConcursosQuiebras($cuit);
              /*if($demandados){
                foreach($demandados as $demandado){
                  if($demandado->grupo  == 'OJC'){
                    $otros_juicios_comerciales[]  = $demandado;
                  }elseif($demandado->grupo  == 'CYQ'){
                    $concursos_quiebras[] = $demandado;
                  }elseif($demandado->grupo  == 'PQ'){
                    $pedidos_quiebra[] = $demandado;
                  }
                }
              }*/
          

              if ($todb == false) {
                
                if (!empty($demandado_homonimo)) {
                  
                  foreach($demandado_homonimo as $data) {
                    $file .= '<tr>';
                      $file .= '<td>' . $nombre_cliente . '</td>';
                      $file .= '<td>' . $razon_social . '</td>';
                      $file .= '<td style="text-align:center;">' . $cuit . '</td>';
                      $file .= '<td>' . $data->demandado . '</td>';
                      $file .= '<td></td>';
                      $file .= '<td style="text-align:center;">' . $data->fecha_causa . '</td>';
                      $file .= '<td style="text-align:center;">' . $data->anio . '</td>';
                      $file .= '<td>' . $data->nombre_causa . '</td>';
                      $file .= '<td>' . $data->nombre_otra_parte . '</td>';
                      $file .= '<td>' . $data->expediente . '</td>';
                      $file .= '</tr>';
                      
                  }
                  
                }
              
                if (!empty($actores_homonimos)) {
                  
                  foreach($actores_homonimos as $data) {
                    $file .= '<tr>';
                      $file .= '<td>' . $nombre_cliente . '</td>';
                      $file .= '<td>' . $razon_social . '</td>';
                      $file .= '<td style="text-align:center;">' . $cuit . '</td>';
                      $file .= '<td></td>';
                      $file .= '<td>' . $data->actor . '</td>';
                      $file .= '<td style="text-align:center;">' . $data->fecha_causa . '</td>';
                      $file .= '<td style="text-align:center;">' . $data->anio . '</td>';
                      $file .= '<td>' . $data->nombre_causa . '</td>';
                      $file .= '<td>' . $data->nombre_otra_parte . '</td>';
                      $file .= '<td>' . $data->expediente . '</td>';
                      $file .= '</tr>';
                      
                    }
                    
                }
              
              }

              else {

                if (!empty($demandado_homonimo)) {
                  foreach($demandado_homonimo as $data) {

                    DB::selectOne("insert into reporte_juicios_led 
                                  (id_juicio,created,cliente,nombre_cliente,razon_social,cuit,demandado,actor,fecha_causa,anio,nombre_causa,nombre_otra_parte,expediente)
                                  values
                                  (" . $data->id_juicio.",'".$data->created."',".$cli.",'".$nombre_cliente."','".$razon_social."','".$cuit."','".$data->demandado
                                  ."' ,NULL, '".$data->fecha_causa."',".$data->anio.",'".$data->nombre_causa."','".$data->nombre_otra_parte."','".$data->expediente."')");

                  }
                }
                if (!empty($actores_homonimos)) {
                  
                  foreach($actores_homonimos as $data) {

                    DB::selectOne("insert into reporte_juicios_led 
                                  (id_juicio,created,cliente,nombre_cliente,razon_social,cuit,demandado,actor,fecha_causa,anio,nombre_causa,nombre_otra_parte,expediente)
                                  values
                                  (" . $data->id_juicio.",'".$data->created."',".$cli.",'".$nombre_cliente."','".$razon_social."','".$cuit."', NULL, '".$data->actor
                                  ."','".$data->fecha_causa."',".$data->anio.",'".$data->nombre_causa."','".$data->nombre_otra_parte."','".$data->expediente."')");

                  }
                }


              }


              /*if (!empty($demandado_homonimo) OR !empty($actores_homonimos)) {
                break;
              }*/            
          }
          
          $file .= '</table>';

      if ($todb == false) {

        $fecha = date("Y-m-d");
        header('Content-disposition: attachment; filename=Reporte_Jucios_LED_' . $fecha . '-' . $nombre . '.xls');
        header('Content-type: application/vnd.ms-excel; charset=utf-8');

        $file = utf8_decode($file); 
        /*$response =  array(
          'op' => 'ok',
          'archivo' => 'Reporte_Jucios_LED_' . $fecha . '.xls', 
          'file' => "data:application/vnd.ms-excel;base64,".base64_encode($file)
        );
        echo json_encode($response);*/

        echo $file;
      }

    }

  }



}