<?php 
require_once('../../config/Conexion.php');
// Encabezados para el archivo Excel
header("Content-type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=excel_recaudo.xls");

$fecha_inicio = isset($_GET['fechainicio']) ? $_GET['fechainicio'] : '';
$fecha_fin = isset($_GET['fechafinal']) ? $_GET['fechafinal'] : '';



// Configurar la conexión para usar UTF-8
mysqli_set_charset($conexion, "utf8");

        function reemplazarCaracteresEspeciales($cadena) {
            // Reemplazo de caracteres acentuados y caracteres especiales
            $originales = array('Á', 'É', 'Í', 'Ó', 'Ú', 'á', 'é', 'í', 'ó', 'ú', 'Ñ', 'ñ', 'Ü', 'ü');
            $reemplazos = array('A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u', 'N', 'n', 'U', 'u');
            
            return str_replace($originales, $reemplazos, $cadena);
        }

// Generar el contenido del archivo Excel
echo "Codigo Cliente\tDni/ Ruc\tApellido Paterno\tApellido Materno\tNombres\tNombre Cliente\tDomicilio\tCodigo Moneda 1/2\tTotal Cobro\tPrioridad 1\tPeriodo Pago\tFecha Vencimiento\tTipo Mora\tValor de Mora\n";                        
            
        $query1 = "SELECT c.idcuota,p.nombre as cliente,o.nrocontrato,p.num_documento,d.description,c.monto,c.fecha_pago,c.montocuota,c.fechainicial
            FROM cuota c 
            JOIN contrato o ON c.idcontrato=o.idcontrato 
            JOIN persona p ON o.idcliente=p.idpersona
            LEFT JOIN detalle_direccion d ON o.iddireccion=d.iddireccion 
            WHERE date(c.fecha_pago) BETWEEN '$fecha_inicio' AND '$fecha_fin' and c.estado_cuota='1' and c.estado_contrato='1'";
            
              $result = mysqli_query($conexion,$query1);

                while ($row5 = mysqli_fetch_assoc($result)){
                  $suma1=$row5['monto']+$row5['montocuota'];

                      // Separar el nombre en partes
                      	$partesNombre = explode(' ', $row5['cliente']);
                        $nombreFinal = [];
                        $apellidoMaterno = '';
                        $apellidoPaterno = '';
                        $nombreSeparado1 = '';
                        $nombreSeparado2 = '';
                        
                        // Definir palabras clave que podrían formar parte de un apellido compuesto
                        $palabrasClave = ['de', 'la', 'del', 'los', 'las', 'san', 'santa'];
                        
                        $i = 0;
                        while ($i < count($partesNombre)) {
                            $palabra = strtolower($partesNombre[$i]);
                        
                            // Si la palabra actual es clave y la siguiente palabra existe, combinar ambas
                            if (in_array($palabra, $palabrasClave) && isset($partesNombre[$i + 1])) {
                                $nombreCompuesto = $partesNombre[$i] . ' ' . $partesNombre[$i + 1];
                                $i += 2; // Saltar las dos palabras (la clave y la siguiente)
                                
                                // Si hay una tercera palabra (e.g., "De la Cruz"), combinarla también
                                if (isset($partesNombre[$i]) && ctype_upper($partesNombre[$i][0])) {
                                    $nombreCompuesto .= ' ' . $partesNombre[$i];
                                    $i++;
                                }
                        
                                $nombreFinal[] = $nombreCompuesto;
                            } else {
                                $nombreFinal[] = $partesNombre[$i];
                                $i++;
                            }
                        }
			
                      // Asignar los valores finales según el arreglo reagrupado
                      $apellidoMaterno = isset($nombreFinal[0]) ? $nombreFinal[0] : '';
                      $apellidoPaterno = isset($nombreFinal[1]) ? $nombreFinal[1] : '';
                      $nombreSeparado1 = isset($nombreFinal[2]) ? $nombreFinal[2] : '';
                      $nombreSeparado2 = isset($nombreFinal[3]) ? $nombreFinal[3] : '';
                      $nombreconcat = trim("$nombreSeparado1 $nombreSeparado2");
                      
                       $fechavence =$row5['fecha_pago'];
                       $fechaFormateada = strftime("%d/%m/%Y", strtotime($fechavence));
                       $partesFecha = explode('-', $row5['fecha_pago']);   
                       $anio = explode('-', $row5['fechainicial'])[0];
                       $mes = explode('-', $row5['fechainicial'])[1]; 

                       $codigoe =$row5['nrocontrato']; 
                       $documento = '="' . $row5['num_documento'] . '"';
                       $nombre =$row5['cliente'];                    
                       $domicilio =$row5['description'];
                       $codigom =1;
                       $cuota =$suma1;
                       $prioridad =1;
                       $periodo =$anio.''.$mes;                         
                       $tipomora =0;
                       $mora =0;
                       
                       // Reemplazar caracteres especiales antes de imprimir
                      $apellidoPaterno1 = reemplazarCaracteresEspeciales($apellidoPaterno);
                      $apellidoMaterno1 = reemplazarCaracteresEspeciales($apellidoMaterno);
                      $nombreconcat1 = reemplazarCaracteresEspeciales($nombreconcat);
                      $nombre1 = reemplazarCaracteresEspeciales($nombre);
                      $domicilio1 = reemplazarCaracteresEspeciales($domicilio);
                       
                       
                       echo $codigoe . "\t" . $documento . "\t" . $apellidoPaterno1 . "\t" . $apellidoMaterno1 . "\t" . $nombreconcat1 . "\t" . $nombre1 . "\t" .  $domicilio1 . "\t" .  $codigom . "\t" . $cuota . "\t" . $prioridad . "\t" . $periodo . "\t" . $fechaFormateada . "\t" . $tipomora . "\t" . $mora . "\n";
                    }
                    $conexion->close();
                    ?>