<?php 
require_once('../../../includes/load.php');
require_once('../../../vendor/autoload.php');
 

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;


$OpcionesAnio = $_POST['opciones'];
$OpcionesSemana = $_POST['opciones1'];


// Verificar si se seleccionaron opciones
if (!empty($OpcionesAnio) && !empty($OpcionesSemana)) {
    // Crear la parte de la consulta SQL con el IN
    $OpcionesAnio = implode(',', array_map('intval', $OpcionesAnio));
    $OpcionesSemana = implode(',', array_map('intval', $OpcionesSemana));

    // Realizar la consulta SELECT con el IN
    $consulta = $db->query("SELECT date_format(programa.ProFechaInicioLimpieza, '%d-%m-%Y') as ProFechaInicioLimpieza, programa.Campana, programa.SemanaRptPrograma, programa.IdAnio, actividad.ANombre, granja.GNombre, programa.Mes, dt.id AS Expr1,date_format(dt.FechaRegistroDetallePrograma, '%d-%m-%Y') as FechaRegistroDetallePrograma, date_format(dt.FechaRecursoProgramaDiario, '%d-%m-%Y') as FechaRecursoProgramaDiario, dt.JornalesOperariosProgramaDiario, dt.TractorPotencia75HPProgramaDiario, dt.TractorPotencia95HPProgramaDiario, dt.TractorPotencia110HPProgramaDiario, dt.RoticultorInicialProgramaDiario, dt.CarretaProgramaDiario, dt.RufaInicialProgramaDiario, dt.ComposteadoraProgramaDiario, dt.AireadorProgramaDiario, dt.RedDragonProgramaDiario, dt.MotofumigadoraProgramaDiario,dt.ClasificadorProgramaDiario, dt.CaleadoraProgramaDiario, dt.TrituradoraProgramaDiario, dt.LaminaProgramaDiario, dt.RebobinadoraProgramaDiario, dt.MinitractorProgramaDiario, dt.IdPrograma, dt.IdActividad, dt.JornalesTractoristaProgramaDiario, dt.RoticultorFinalProgramaDiario, dt.RufaTumbadoProgramaDiario, dt.IdAnio, dt.IdSemanaRptPrograma, dt.IdMes, dt.DotacionProgramaDiario, dt.ImplementoProgramaDiario, dt.TractoresProgramaDiario, dt.PTotalTractorCombustible, dt.PCombustible75HPProgramaDiario, dt.PCombustible95HPProgramaDiario, dt.PCombustible110HPProgramaDiario, dt.PCombustibleMinitTractorHPProgramaDiario, zona.ZNombre FROM  actividad INNER JOIN detalleprograma AS dt ON actividad.IdActividad = dt.IdActividad INNER JOIN programa ON dt.IdPrograma = programa.id INNER JOIN granja ON programa.IdGranja = granja.IdGranja INNER JOIN zona ON granja.IdZona = zona.IdZona WHERE  (dt.IdAnio IN ($OpcionesAnio)) AND (dt.IdSemanaRptPrograma IN ($OpcionesSemana)) ORDER BY  programa.SemanaRptPrograma DESC, FechaRecursoProgramaDiario DESC, GNombre, ZNombre,Expr1");
 

    $documento = new Spreadsheet();

    $sheet = $documento->getActiveSheet();
    # Se usa para ponerle un titulo a la hoja de excel 
    $sheet->setTitle("TABLERO");
   //TItulo
   $sheet->mergeCells('A1:AI1');
   $sheet->setCellValue('A1', 'PROGRAMA SEMANAL DE LIMPIEZA DE GRANJA');
   $sheet->getStyle('A1:AI1')->getFont()->setSize(20)->setBold(true); // Establece el color en blanco (código RGB hexadecimal para
   // Quitar los bordes exteriores de la tabla
   $sheet->getStyle('A1:AI2')->getBorders()->getOutline()->setBorderStyle(\PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE);
   $sheet->mergeCells('A2:H2');
    // Encabezados de columna
    $sheet->setCellValue('A3', 'SEMANA');
    $sheet->setCellValue('B3', 'FECHA');
    $sheet->setCellValue('C3', 'ZONA');
    $sheet->setCellValue('D3', 'GRANJA');
    $sheet->setCellValue('E3', 'RECURSO');
    $sheet->setCellValue('F3', 'CAMPAÑA');
    $sheet->setCellValue('G3', 'ACTIVIDAD');
    $sheet->setCellValue('H3', 'INGRESO');

    $sheet->mergeCells('I2:K2');
    $sheet->setCellValue('I2', 'DOTACION');
    $sheet->setCellValue('I3', 'TOTAL');
    $sheet->setCellValue('J3', 'OPERARIO');
    $sheet->setCellValue('K3', 'TRACTORISTA');


    $sheet->mergeCells('L2:P2');
    $sheet->setCellValue('L2', 'TRACTORES');
    $sheet->setCellValue('L3', 'TOTAL');
    $sheet->setCellValue('M3', 'TRACTOR 75HP');
    $sheet->setCellValue('N3', 'TRACTOR 95HP');
    $sheet->setCellValue('O3', 'TRACTOR 110 HP');
    $sheet->setCellValue('P3', 'MINITRACTOR');


    $sheet->mergeCells('Q2:U2');
    $sheet->setCellValue('Q2', 'COMBUSTIBLE');
    $sheet->setCellValue('Q3', 'TOTAL');
    $sheet->setCellValue('R3', 'GLN TRAC. 75 HP');
    $sheet->setCellValue('S3', 'GLN TRAC. 95 HP');
    $sheet->setCellValue('T3', 'GLN TRAC. 110 HP');
    $sheet->setCellValue('U3', 'GLN MINITRACTOR');

    $sheet->mergeCells('V2:AJ2');
    $sheet->setCellValue('V2', 'IMPLEMENTOS');
    $sheet->setCellValue('V3', 'TOTAL');
    $sheet->setCellValue('W3', 'ROTICULTOR');
    $sheet->setCellValue('X3', 'ROTICULTOR FINAL');
    $sheet->setCellValue('Y3', 'CARRETA');
    $sheet->setCellValue('Z3', 'RUFA INICIAL');
    $sheet->setCellValue('AA3', 'RUFA TUMBADO');
    $sheet->setCellValue('AB3', 'COMPOSTEADORA');
    $sheet->setCellValue('AC3', 'AIREADOR');
    $sheet->setCellValue('AD3', 'RED DRAGON');
    $sheet->setCellValue('AE3', 'MOTOFUMIGADORA');
    $sheet->setCellValue('AF3', 'CLASIFICADOR');
    $sheet->setCellValue('AG3', 'CALEADORA');
    $sheet->setCellValue('AH3', 'TRITURADORA');
    $sheet->setCellValue('AI3', 'LAM. BORDEADORA');
    $sheet->setCellValue('AJ3', 'REBOBINADORA');


    $sheet->getStyle('I2:AJ2')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('afeeee');
    $sheet->getStyle('I2:AJ2')->getFont()->setBold(true);

    $sheet->getStyle('A3:H3')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('008080');
    $sheet->getStyle('A3:H3')->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
    $sheet->getStyle('I3')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('5f9ea0');
    $sheet->getStyle('I3')->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
    $sheet->getStyle('J3:K3')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('008080');
    $sheet->getStyle('J3:K3')->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
    $sheet->getStyle('L3')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('5f9ea0');
    $sheet->getStyle('L3')->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
    $sheet->getStyle('L3:P3')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('008080');
    $sheet->getStyle('L3:P3')->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
    $sheet->getStyle('Q3')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('5f9ea0');
    $sheet->getStyle('Q3')->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
    $sheet->getStyle('R3:T3')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('008080');
    $sheet->getStyle('R3:T3')->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
    $sheet->getStyle('V3')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('5f9ea0');
    $sheet->getStyle('V3')->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
    $sheet->getStyle('U3:AJ3')->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB('008080');
    $sheet->getStyle('U3:AJ3')->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
   

    $row = 4; // Fila inicial para los datos

    // Variable auxiliar para rastrear el año anterior y el mes anterior
    $anteriorSemana = null;
    $anteriorFecha = null;
    $anteriorZona = null;
    $anteriorGranja = null;

    $filaVaciaSemana = false;
    $filaVaciaFecha = false;
    $filaVaciaZona = false;
    $filaVaciaGranja = false;

    $mergeStartRowSemana = null;
    $mergeStartRowFecha = null;
    $mergeStartRowZona = null;
    $mergeStartRowGranja = null;  
 	
// Recorrer los resultados y agregar los datos a la tabla
while ($rowData = $consulta->fetch_assoc()) {
    // Verificar si el año actual es diferente al año anterior
    if ($rowData['SemanaRptPrograma'] !== $anteriorSemana) {
        // Insertar una fila vacía antes de cada nuevo grupo de datos de SemanaRptPrograma
        if ($filaVaciaGranja) {
        	$sheet->insertNewRowBefore($row);
            // Combinar toda la fila
            $sheet->setCellValue('I' . $row, $sumDotacionGranja);
            $sheet->setCellValue('J' . $row, $sumOperarioGranja);
            $sheet->setCellValue('K' . $row, $sumTractoristaGranja);
            $sheet->setCellValue('L' . $row, $sumProgramaDGranja);
            $sheet->setCellValue('M' . $row, $sumTractor75Granja);
            $sheet->setCellValue('N' . $row, $sumTractor95Granja);
            $sheet->setCellValue('O' . $row, $sumTractor110Granja);
            $sheet->setCellValue('P' . $row, $sumMinitractorGranja);
            $sheet->setCellValue('Q' . $row, $sumTractorCGranja);
            $sheet->setCellValue('R' . $row, $sumGalon75Granja);
            $sheet->setCellValue('S' . $row, $sumGalon95Granja);
            $sheet->setCellValue('T' . $row, $sumGalon110Granja);
            $sheet->setCellValue('U' . $row, $sumGalonMiniGranja);
            $sheet->setCellValue('V' . $row, $sumImplementoGranja);
            $sheet->setCellValue('W' . $row, $sumRoticultorGranja);
            $sheet->setCellValue('X' . $row, $sumRoticultorFGranja);
            $sheet->setCellValue('Y' . $row, $sumCarreteraGranja);
            $sheet->setCellValue('Z' . $row, $sumRufaIGranja);
            $sheet->setCellValue('AA' . $row, $sumRufaTGranja);
            $sheet->setCellValue('AB' . $row, $sumComposteadoraGranja);
            $sheet->setCellValue('AC' . $row, $sumAireadorGranja);
            $sheet->setCellValue('AD' . $row, $sumRedGranja);
            $sheet->setCellValue('AE' . $row, $sumMotofumiGranja);
            $sheet->setCellValue('AF' . $row, $sumClasificadorGranja);
            $sheet->setCellValue('AG' . $row, $sumCaleadoraGranja);
            $sheet->setCellValue('AH' . $row, $sumTrituradoraGranja);
            $sheet->setCellValue('AI' . $row, $sumLaminaGranja);
            $sheet->setCellValue('AJ' . $row, $sumRebobinadoraGranja);

            // Define the color for the row
            $rowColor = 'afeeee'; // Change the color as desired (in this example, red)
          
            // Set the fill color for the entire row
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getFont()->setBold(true);
            $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
            $sheet->setCellValue('E' . $row, 'TOTAL ZONA');
            $lastRow = $row++;
            $sheet->mergeCells('E' . $lastRow . ':H' . $lastRow);
            // Combinar las celdas para el ZNombre anterior
            if ($mergeStartRowGranja !== null && $row - $mergeStartRowGranja > 0) {
                $mergeEndRowGranja = $row - 1;
                $sheet->mergeCells('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja);
                $sheet->getStyle('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
                $sheet->getStyle('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja)->getFont()->setBold(true);
                
            }
        }
        if ($filaVaciaZona) {     
            $sheet->insertNewRowBefore($row);
            // Combinar toda la fila
            $sheet->setCellValue('I' . $row, $sumDotacionZona);
            $sheet->setCellValue('J' . $row, $sumOperarioZona);
            $sheet->setCellValue('K' . $row, $sumTractoristaZona);
            $sheet->setCellValue('L' . $row, $sumProgramaDZona);
            $sheet->setCellValue('M' . $row, $sumTractor75Zona);
            $sheet->setCellValue('N' . $row, $sumTractor95Zona);
            $sheet->setCellValue('O' . $row, $sumTractor110Zona);
            $sheet->setCellValue('P' . $row, $sumMinitractorZona); 
            $sheet->setCellValue('Q' . $row, $sumTractorCZona);
            $sheet->setCellValue('R' . $row, $sumGalon75Zona);
            $sheet->setCellValue('S' . $row, $sumGalon95Zona);
            $sheet->setCellValue('T' . $row, $sumGalon110Zona);
            $sheet->setCellValue('U' . $row, $sumGalonMiniZona);
            $sheet->setCellValue('V' . $row, $sumImplementoZona);
            $sheet->setCellValue('W' . $row, $sumRoticultorZona);
            $sheet->setCellValue('X' . $row, $sumRoticultorFZona);
            $sheet->setCellValue('Y' . $row, $sumCarreteraZona);
            $sheet->setCellValue('Z' . $row, $sumRufaIZona);
            $sheet->setCellValue('AA' . $row, $sumRufaTZona);
            $sheet->setCellValue('AB' . $row, $sumComposteadoraZona);
            $sheet->setCellValue('AC' . $row, $sumAireadorZona);
            $sheet->setCellValue('AD' . $row, $sumRedZona);
            $sheet->setCellValue('AE' . $row, $sumMotofumiZona);
            $sheet->setCellValue('AF' . $row, $sumClasificadorZona);
            $sheet->setCellValue('AG' . $row, $sumCaleadoraZona);
            $sheet->setCellValue('AH' . $row, $sumTrituradoraZona);
            $sheet->setCellValue('AI' . $row, $sumLaminaZona);
            $sheet->setCellValue('AJ' . $row, $sumRebobinadoraZona);   
            // Define the color for the row
            $rowColor = 'add8e6'; // Change the color as desired (in this example, red)
          
            // Set the fill color for the entire row
            $sheet->getStyle('D' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
            $sheet->getStyle('D' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
            $sheet->getStyle('D' . $row . ':AJ' . $row)->getFont()->setBold(true);
            $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
            $sheet->setCellValue('D' . $row, 'TOTAL GRANJA');
            $lastRow = $row++;
            $sheet->mergeCells('D' . $lastRow . ':H' . $lastRow);
            // Combinar las celdas para el TipoGranja anterior
            if ($mergeStartRowZona !== null && $row - $mergeStartRowZona > 0) {
                $mergeEndRowZona = $row - 1;
                $sheet->mergeCells('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona);
                $sheet->getStyle('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
                $sheet->getStyle('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona)->getFont()->setBold(true);            
            }
        }
        if ($filaVaciaFecha) {       
            $sheet->insertNewRowBefore($row);
            // Combinar toda la fila
            $sheet->setCellValue('I' . $row, $sumDotacionFecha);
            $sheet->setCellValue('J' . $row, $sumOperarioFecha);
            $sheet->setCellValue('K' . $row, $sumTractoristaFecha);
            $sheet->setCellValue('L' . $row, $sumProgramaDFecha);
            $sheet->setCellValue('M' . $row, $sumTractor75Fecha);
            $sheet->setCellValue('N' . $row, $sumTractor95Fecha);
            $sheet->setCellValue('O' . $row, $sumTractor110Fecha);
            $sheet->setCellValue('P' . $row, $sumMinitractorFecha); 
            $sheet->setCellValue('Q' . $row, $sumTractorCFecha);
            $sheet->setCellValue('R' . $row, $sumGalon75Fecha);
            $sheet->setCellValue('S' . $row, $sumGalon95Fecha);
            $sheet->setCellValue('T' . $row, $sumGalon110Fecha);
            $sheet->setCellValue('U' . $row, $sumGalonMiniFecha);
            $sheet->setCellValue('V' . $row, $sumImplementoFecha);
            $sheet->setCellValue('W' . $row, $sumRoticultorFecha);
            $sheet->setCellValue('X' . $row, $sumRoticultorFFecha);
            $sheet->setCellValue('Y' . $row, $sumCarreteraFecha);
            $sheet->setCellValue('Z' . $row, $sumRufaIFecha);
            $sheet->setCellValue('AA' . $row, $sumRufaTFecha);
            $sheet->setCellValue('AB' . $row, $sumComposteadoraFecha);
            $sheet->setCellValue('AC' . $row, $sumAireadorFecha);
            $sheet->setCellValue('AD' . $row, $sumRedFecha);
            $sheet->setCellValue('AE' . $row, $sumMotofumiFecha); 
            $sheet->setCellValue('AF' . $row, $sumClasificadorFecha);
            $sheet->setCellValue('AG' . $row, $sumCaleadoraFecha);
            $sheet->setCellValue('AH' . $row, $sumTrituradoraFecha);
            $sheet->setCellValue('AI' . $row, $sumLaminaFecha);
            $sheet->setCellValue('AJ' . $row, $sumRebobinadoraFecha); 
            // Define the color for the row
            $rowColor = '5f9ea0'; // Change the color as desired (in this example, red)
          
            // Set the fill color for the entire row
            $sheet->getStyle('C' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
            $sheet->getStyle('C' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
            $sheet->getStyle('C' . $row . ':AJ' . $row)->getFont()->setBold(true);
            $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
            $sheet->setCellValue('C' . $row, 'TOTAL FECHA');
            $lastRow = $row++;
            $sheet->mergeCells('C' . $lastRow . ':H' . $lastRow);
            // Combinar las celdas para el Mes anterior
            if ($mergeStartRowFecha !== null && $row - $mergeStartRowFecha > 0) {
                $mergeEndRowFecha = $row - 1;
                $sheet->mergeCells('B' . $mergeStartRowFecha . ':B' . $mergeEndRowFecha);
                $sheet->getStyle('B' . $mergeStartRowFecha . ':B' . $mergeEndRowFecha)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
                $sheet->getStyle('B' . $mergeStartRowFecha . ':B' . $mergeEndRowFecha)->getFont()->setBold(true);
            }
        } 
        if ($filaVaciaSemana) {
        	$sheet->insertNewRowBefore($row);
            // Combinar toda la fila
            $sheet->setCellValue('I' . $row, $sumDotacionSemana);
            $sheet->setCellValue('J' . $row, $sumOperarioSemana);
            $sheet->setCellValue('K' . $row, $sumTractoristaSemana);
            $sheet->setCellValue('L' . $row, $sumProgramaDSemana);
            $sheet->setCellValue('M' . $row, $sumTractor75Semana);
            $sheet->setCellValue('N' . $row, $sumTractor95Semana);
            $sheet->setCellValue('O' . $row, $sumTractor110Semana);
            $sheet->setCellValue('P' . $row, $sumMinitractorSemana); 
            $sheet->setCellValue('Q' . $row, $sumTractorCSemana);
            $sheet->setCellValue('R' . $row, $sumGalon75Semana);
            $sheet->setCellValue('S' . $row, $sumGalon95Semana);
            $sheet->setCellValue('T' . $row, $sumGalon110Semana);
            $sheet->setCellValue('U' . $row, $sumGalonMiniSemana);
            $sheet->setCellValue('V' . $row, $sumImplementoSemana);
            $sheet->setCellValue('W' . $row, $sumRoticultorSemana);
            $sheet->setCellValue('X' . $row, $sumRoticultorFSemana);
            $sheet->setCellValue('Y' . $row, $sumCarreteraSemana);
            $sheet->setCellValue('Z' . $row, $sumRufaISemana);
            $sheet->setCellValue('AA' . $row, $sumRufaTSemana);
            $sheet->setCellValue('AB' . $row, $sumComposteadoraSemana);
            $sheet->setCellValue('AC' . $row, $sumAireadorSemana);
            $sheet->setCellValue('AD' . $row, $sumRedSemana);
            $sheet->setCellValue('AE' . $row, $sumMotofumiSemana);
            $sheet->setCellValue('AF' . $row, $sumClasificadorSemana);
            $sheet->setCellValue('AG' . $row, $sumCaleadoraSemana);
            $sheet->setCellValue('AH' . $row, $sumTrituradoraSemana);
            $sheet->setCellValue('AI' . $row, $sumLaminaSemana);
            $sheet->setCellValue('AJ' . $row, $sumRebobinadoraSemana);
            // Define the color for the row
            $rowColor = '008080'; // Change the color as desired (in this example, red)
          
            // Set the fill color for the entire row
            $sheet->getStyle('B' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
            $sheet->getStyle('B' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
            $sheet->getStyle('B' . $row . ':AJ' . $row)->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
            $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
            $sheet->setCellValue('B' . $row, 'TOTAL SEMANA');
            $lastRow = $row++;
            $sheet->mergeCells('B' . $lastRow . ':H' . $lastRow); 
            // Agregar la suma de Galpon al final del grupo de Año
            $mergeEndRowSemana = $row - 1;
            $sheet->mergeCells('A' . $mergeStartRowSemana . ':A' . $mergeEndRowSemana);
            $sheet->getStyle('A' . $mergeStartRowSemana . ':A' . $mergeEndRowSemana)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
            $sheet->getStyle('A' . $mergeStartRowSemana . ':A' . $mergeEndRowSemana)->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
            
        }
        else {
            $filaVaciaSemana = true;
        }
        // Combinar las celdas para el Año anterior
        if ($mergeStartRowSemana !== null && $row - $mergeStartRowSemana > 0) {
            $mergeEndRowSemana = $row - 1;
            $sheet->mergeCells('A' . $mergeStartRowSemana . ':A' . $mergeEndRowSemana);
        }
        // Actualizar la fila de inicio para combinar celdas de Año
        $mergeStartRowSemana = $row;
        // Actualizar el año anterior
        $anteriorSemana = $rowData['SemanaRptPrograma'];
        // Agregar el valor del año actual en la celda correspondiente
        $sheet->setCellValue('A' . $row, $rowData['SemanaRptPrograma']);
        // Reiniciar el mes anterior
        $anteriorFecha = null;
        // Reiniciar las variables de fila vacía
        $filaVaciaFecha = false;
        $filaVaciaZona = false;
        $filaVaciaGranja = false;
        //Variable para la Suma de Galpon
	    $sumDotacionSemana = 0;
	    $sumDotacionFecha = 0;
	    $sumDotacionZona = 0;
	    $sumDotacionGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumOperarioSemana = 0;
	    $sumOperarioFecha = 0;
	    $sumOperarioZona = 0;
	    $sumOperarioGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractoristaSemana = 0;
	    $sumTractoristaFecha = 0;
	    $sumTractoristaZona = 0;
	    $sumTractoristaGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumProgramaDSemana = 0;
	    $sumProgramaDFecha = 0;
	    $sumProgramaDZona = 0;
	    $sumProgramaDGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractor75Semana = 0;
	    $sumTractor75Fecha = 0;
	    $sumTractor75Zona = 0;
	    $sumTractor75Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractor95Semana = 0;
	    $sumTractor95Fecha = 0;
	    $sumTractor95Zona = 0;
	    $sumTractor95Granja= 0;
	    //Variable para la Suma de Galpon
	    $sumTractor110Semana = 0;
	    $sumTractor110Fecha = 0;
	    $sumTractor110Zona = 0;
	    $sumTractor110Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractorCSemana = 0;
	    $sumTractorCFecha = 0;
	    $sumTractorCZona = 0;
	    $sumTractorCGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon75Semana = 0;
	    $sumGalon75Fecha = 0;
	    $sumGalon75Zona = 0;
	    $sumGalon75Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon95Semana = 0;
	    $sumGalon95Fecha = 0;
	    $sumGalon95Zona = 0;
	    $sumGalon95Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon110Semana = 0;
	    $sumGalon110Fecha = 0;
	    $sumGalon110Zona = 0;
	    $sumGalon110Granja = 0;
        //Variable para la Suma de Galpon
        $sumGalonMiniSemana = 0;
        $sumGalonMiniFecha = 0;
        $sumGalonMiniZona = 0;
        $sumGalonMiniGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumImplementoSemana = 0;
	    $sumImplementoFecha = 0;
	    $sumImplementoZona = 0;
	    $sumImplementoGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRoticultorSemana = 0;
	    $sumRoticultorFecha = 0;
	    $sumRoticultorZona = 0;
	    $sumRoticultorGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRoticultorFSemana = 0;
	    $sumRoticultorFFecha = 0;
	    $sumRoticultorFZona = 0;
	    $sumRoticultorFGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumCarreteraSemana = 0;
	    $sumCarreteraFecha = 0;
	    $sumCarreteraZona = 0;
	    $sumCarreteraGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRufaISemana = 0;
	    $sumRufaIFecha = 0;
	    $sumRufaIZona = 0;
	    $sumRufaIGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRufaTSemana = 0;
	    $sumRufaTFecha = 0;
	    $sumRufaTZona = 0;
	    $sumRufaTGranja = 0;
	    //Variable para laGranja Suma de Galpon
	    $sumComposteadoraSemana = 0;
	    $sumComposteadoraFecha = 0;
	    $sumComposteadoraZona = 0;
	    $sumComposteadoraGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumAireadorSemana = 0;
	    $sumAireadorFecha = 0;
	    $sumAireadorZona = 0;
	    $sumAireadorGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRedSemana = 0;
	    $sumRedFecha = 0;
	    $sumRedZona = 0;
	    $sumRedGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumMotofumiSemana= 0;
	    $sumMotofumiFecha = 0;
	    $sumMotofumiZona = 0;
	    $sumMotofumiGranja = 0;
        //Variable para la Suma de Galpon
        $sumClasificadorSemana= 0;
        $sumClasificadorFecha = 0;
        $sumClasificadorZona = 0;
        $sumClasificadorGranja = 0;
        //Variable para la Suma de Galpon
        $sumCaleadoraSemana= 0;
        $sumCaleadoraFecha = 0;
        $sumCaleadoraZona = 0;
        $sumCaleadoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumTrituradoraSemana= 0;
        $sumTrituradoraFecha = 0;
        $sumTrituradoraZona = 0;
        $sumTrituradoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumLaminaSemana= 0;
        $sumLaminaFecha = 0;
        $sumLaminaZona = 0;
        $sumLaminaGranja = 0;
        //Variable para la Suma de Galpon
        $sumRebobinadoraSemana= 0;
        $sumRebobinadoraFecha = 0;
        $sumRebobinadoraZona = 0;
        $sumRebobinadoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumMinitractorSemana= 0;
        $sumMinitractorFecha = 0;
        $sumMinitractorZona = 0;
        $sumMinitractorGranja = 0;
    }

    // Verificar si el mes actual es diferente al mes anterior
    if ($rowData['FechaRecursoProgramaDiario'] !== $anteriorFecha) {

        // Insertar una fila vacía antes de la fila de SemanaRptPrograma
        if ($filaVaciaGranja) {
        	$sheet->insertNewRowBefore($row);
            // Combinar toda la fila
            $sheet->setCellValue('I' . $row, $sumDotacionGranja);
            $sheet->setCellValue('J' . $row, $sumOperarioGranja);
            $sheet->setCellValue('K' . $row, $sumTractoristaGranja);
            $sheet->setCellValue('L' . $row, $sumProgramaDGranja);
            $sheet->setCellValue('M' . $row, $sumTractor75Granja);
            $sheet->setCellValue('N' . $row, $sumTractor95Granja);
            $sheet->setCellValue('O' . $row, $sumTractor110Granja);
            $sheet->setCellValue('P' . $row, $sumMinitractorGranja);
            $sheet->setCellValue('Q' . $row, $sumTractorCGranja);
            $sheet->setCellValue('R' . $row, $sumGalon75Granja);
            $sheet->setCellValue('S' . $row, $sumGalon95Granja);
            $sheet->setCellValue('T' . $row, $sumGalon110Granja);
            $sheet->setCellValue('U' . $row, $sumGalonMiniGranja);
            $sheet->setCellValue('V' . $row, $sumImplementoGranja);
            $sheet->setCellValue('W' . $row, $sumRoticultorGranja);
            $sheet->setCellValue('X' . $row, $sumRoticultorFGranja);
            $sheet->setCellValue('Y' . $row, $sumCarreteraGranja);
            $sheet->setCellValue('Z' . $row, $sumRufaIGranja);
            $sheet->setCellValue('AA' . $row, $sumRufaTGranja);
            $sheet->setCellValue('AB' . $row, $sumComposteadoraGranja);
            $sheet->setCellValue('AC' . $row, $sumAireadorGranja);
            $sheet->setCellValue('AD' . $row, $sumRedGranja);
            $sheet->setCellValue('AE' . $row, $sumMotofumiGranja);
            $sheet->setCellValue('AF' . $row, $sumClasificadorGranja);
            $sheet->setCellValue('AG' . $row, $sumCaleadoraGranja);
            $sheet->setCellValue('AH' . $row, $sumTrituradoraGranja);
            $sheet->setCellValue('AI' . $row, $sumLaminaGranja);
            $sheet->setCellValue('AJ' . $row, $sumRebobinadoraGranja);
            // Define the color for the row
            $rowColor = 'afeeee'; // Change the color as desired (in this example, red)
          
            // Set the fill color for the entire row
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getFont()->setBold(true);
            $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
            $sheet->setCellValue('E' . $row, 'TOTAL ZONA');
            $lastRow = $row++;
            $sheet->mergeCells('E' . $lastRow . ':H' . $lastRow);
            // Combinar las celdas para el ZNombre anterior
            if ($mergeStartRowGranja !== null && $row - $mergeStartRowGranja > 0) {
                $mergeEndRowGranja = $row - 1;
                $sheet->mergeCells('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja);
                $sheet->getStyle('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
                $sheet->getStyle('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja)->getFont()->setBold(true);
                
            }
        }
        if ($filaVaciaZona) {
        	$sheet->insertNewRowBefore($row);
            // Combinar toda la fila
            $sheet->setCellValue('I' . $row, $sumDotacionZona);
            $sheet->setCellValue('J' . $row, $sumOperarioZona);
            $sheet->setCellValue('K' . $row, $sumTractoristaZona);
            $sheet->setCellValue('L' . $row, $sumProgramaDZona);
            $sheet->setCellValue('M' . $row, $sumTractor75Zona);
            $sheet->setCellValue('N' . $row, $sumTractor95Zona);
            $sheet->setCellValue('O' . $row, $sumTractor110Zona);
            $sheet->setCellValue('P' . $row, $sumMinitractorZona); 
            $sheet->setCellValue('Q' . $row, $sumTractorCZona);
            $sheet->setCellValue('R' . $row, $sumGalon75Zona);
            $sheet->setCellValue('S' . $row, $sumGalon95Zona);
            $sheet->setCellValue('T' . $row, $sumGalon110Zona);
            $sheet->setCellValue('U' . $row, $sumGalonMiniZona);
            $sheet->setCellValue('V' . $row, $sumImplementoZona);
            $sheet->setCellValue('W' . $row, $sumRoticultorZona);
            $sheet->setCellValue('X' . $row, $sumRoticultorFZona);
            $sheet->setCellValue('Y' . $row, $sumCarreteraZona);
            $sheet->setCellValue('Z' . $row, $sumRufaIZona);
            $sheet->setCellValue('AA' . $row, $sumRufaTZona);
            $sheet->setCellValue('AB' . $row, $sumComposteadoraZona);
            $sheet->setCellValue('AC' . $row, $sumAireadorZona);
            $sheet->setCellValue('AD' . $row, $sumRedZona);
            $sheet->setCellValue('AE' . $row, $sumMotofumiZona);
            $sheet->setCellValue('AF' . $row, $sumClasificadorZona);
            $sheet->setCellValue('AG' . $row, $sumCaleadoraZona);
            $sheet->setCellValue('AH' . $row, $sumTrituradoraZona);
            $sheet->setCellValue('AI' . $row, $sumLaminaZona);
            $sheet->setCellValue('AJ' . $row, $sumRebobinadoraZona);
            // Define the color for the row
            $rowColor = 'add8e6'; // Change the color as desired (in this example, red)
          
            // Set the fill color for the entire row
            $sheet->getStyle('D' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
            $sheet->getStyle('D' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
            $sheet->getStyle('D' . $row . ':AJ' . $row)->getFont()->setBold(true);
            $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
            $sheet->setCellValue('D' . $row, 'TOTAL GRANJA');
            $lastRow = $row++;
            $sheet->mergeCells('D' . $lastRow . ':H' . $lastRow);
            // Combinar las celdas para el ZNombre anterior
            if ($mergeStartRowZona !== null && $row - $mergeStartRowZona > 0) {
                $mergeEndRowZona = $row - 1;
                $sheet->mergeCells('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona);
                $sheet->getStyle('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
                $sheet->getStyle('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona)->getFont()->setBold(true);            
            }
        } 
        if ($filaVaciaFecha) {
        	$sheet->insertNewRowBefore($row);
            // Combinar toda la fila
            $sheet->setCellValue('I' . $row, $sumDotacionFecha);
            $sheet->setCellValue('J' . $row, $sumOperarioFecha);
            $sheet->setCellValue('K' . $row, $sumTractoristaFecha);
            $sheet->setCellValue('L' . $row, $sumProgramaDFecha);
            $sheet->setCellValue('M' . $row, $sumTractor75Fecha);
            $sheet->setCellValue('N' . $row, $sumTractor95Fecha);
            $sheet->setCellValue('O' . $row, $sumTractor110Fecha);
            $sheet->setCellValue('P' . $row, $sumMinitractorFecha); 
            $sheet->setCellValue('Q' . $row, $sumTractorCFecha);
            $sheet->setCellValue('R' . $row, $sumGalon75Fecha);
            $sheet->setCellValue('S' . $row, $sumGalon95Fecha);
            $sheet->setCellValue('T' . $row, $sumGalon110Fecha);
            $sheet->setCellValue('U' . $row, $sumGalonMiniFecha);
            $sheet->setCellValue('V' . $row, $sumImplementoFecha);
            $sheet->setCellValue('W' . $row, $sumRoticultorFecha);
            $sheet->setCellValue('X' . $row, $sumRoticultorFFecha);
            $sheet->setCellValue('Y' . $row, $sumCarreteraFecha);
            $sheet->setCellValue('Z' . $row, $sumRufaIFecha);
            $sheet->setCellValue('AA' . $row, $sumRufaTFecha);
            $sheet->setCellValue('AB' . $row, $sumComposteadoraFecha);
            $sheet->setCellValue('AC' . $row, $sumAireadorFecha);
            $sheet->setCellValue('AD' . $row, $sumRedFecha);
            $sheet->setCellValue('AE' . $row, $sumMotofumiFecha); 
            $sheet->setCellValue('AF' . $row, $sumClasificadorFecha);
            $sheet->setCellValue('AG' . $row, $sumCaleadoraFecha);
            $sheet->setCellValue('AH' . $row, $sumTrituradoraFecha);
            $sheet->setCellValue('AI' . $row, $sumLaminaFecha);
            $sheet->setCellValue('AJ' . $row, $sumRebobinadoraFecha);
            // Define the color for the row
            $rowColor = '5f9ea0'; // Change the color as desired (in this example, red)
          
            // Set the fill color for the entire row
            $sheet->getStyle('C' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
            $sheet->getStyle('C' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
            $sheet->getStyle('C' . $row . ':AJ' . $row)->getFont()->setBold(true);
            $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
            $sheet->setCellValue('C' . $row, 'TOTAL FECHA');
            $lastRow = $row++;
            $sheet->mergeCells('C' . $lastRow . ':H' . $lastRow);
            // Combinar las celdas para el Mes anterior
            if ($mergeStartRowFecha !== null && $row - $mergeStartRowFecha > 0) {
                $mergeEndRowFecha = $row - 1;
                $sheet->mergeCells('B' . $mergeStartRowFecha . ':B' . $mergeEndRowFecha);
                $sheet->getStyle('B' . $mergeStartRowFecha . ':B' . $mergeEndRowFecha)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
                $sheet->getStyle('B' . $mergeStartRowFecha . ':B' . $mergeEndRowFecha)->getFont()->setBold(true);
            }
        } 
        else {
            $filaVaciaFecha = true;
        }
        
        // Actualizar la fila de inicio para combinar celdas de Mes
        $mergeStartRowFecha = $row;
        // Actualizar el mes anterior
        $anteriorFecha = $rowData['FechaRecursoProgramaDiario'];
        // Agregar el valor del mes actual en la celda correspondiente
        $sheet->setCellValue('B' . $row, $rowData['FechaRecursoProgramaDiario']);
        // Reiniciar el mes anterior
        $anteriorZona = null;
        // Reiniciar las variables de fila vacía
        $filaVaciaZona = false;
        $filaVaciaGranja = false;
        //Variable para la Suma de Galpon
	    $sumDotacionFecha = 0;
	    $sumDotacionZona = 0;
	    $sumDotacionGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumOperarioFecha = 0;
	    $sumOperarioZona = 0;
	    $sumOperarioGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractoristaFecha = 0;
	    $sumTractoristaZona = 0;
	    $sumTractoristaGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumProgramaDFecha = 0;
	    $sumProgramaDZona = 0;
	    $sumProgramaDGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractor75Fecha = 0;
	    $sumTractor75Zona = 0;
	    $sumTractor75Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractor95Fecha = 0;
	    $sumTractor95Zona = 0;
	    $sumTractor95Granja= 0;
	    //Variable para la Suma de Galpon
	    $sumTractor110Fecha = 0;
	    $sumTractor110Zona = 0;
	    $sumTractor110Granja = 0;
        //Variable para la Suma de Galpon
        $sumGalonMiniFecha = 0;
        $sumGalonMiniZona = 0;
        $sumGalonMiniGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractorCFecha = 0;
	    $sumTractorCZona = 0;
	    $sumTractorCGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon75Fecha = 0;
	    $sumGalon75Zona = 0;
	    $sumGalon75Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon95Fecha = 0;
	    $sumGalon95Zona = 0;
	    $sumGalon95Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon110Fecha = 0;
	    $sumGalon110Zona = 0;
	    $sumGalon110Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumImplementoFecha = 0;
	    $sumImplementoZona = 0;
	    $sumImplementoGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRoticultorFecha = 0;
	    $sumRoticultorZona = 0;
	    $sumRoticultorGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRoticultorFFecha = 0;
	    $sumRoticultorFZona = 0;
	    $sumRoticultorFGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumCarreteraFecha = 0;
	    $sumCarreteraZona = 0;
	    $sumCarreteraGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRufaIFecha = 0;
	    $sumRufaIZona = 0;
	    $sumRufaIGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRufaTFecha = 0;
	    $sumRufaTZona = 0;
	    $sumRufaTGranja = 0;
	    //Variable para laGranja Suma de Galpon
	    $sumComposteadoraFecha = 0;
	    $sumComposteadoraZona = 0;
	    $sumComposteadoraGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumAireadorFecha = 0;
	    $sumAireadorZona = 0;
	    $sumAireadorGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRedFecha = 0;
	    $sumRedZona = 0;
	    $sumRedGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumMotofumiFecha = 0;
	    $sumMotofumiZona = 0;
	    $sumMotofumiGranja = 0;
        //Variable para la Suma de Galpon
        $sumClasificadorFecha = 0;
        $sumClasificadorZona = 0;
        $sumClasificadorGranja = 0;
        //Variable para la Suma de Galpon
        $sumCaleadoraFecha = 0;
        $sumCaleadoraZona = 0;
        $sumCaleadoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumTrituradoraSemana= 0;
        $sumTrituradoraFecha = 0;
        $sumTrituradoraZona = 0;
        $sumTrituradoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumLaminaFecha = 0;
        $sumLaminaZona = 0;
        $sumLaminaGranja = 0;
        //Variable para la Suma de Galpon
        $sumRebobinadoraFecha = 0;
        $sumRebobinadoraZona = 0;
        $sumRebobinadoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumMinitractorFecha = 0;
        $sumMinitractorZona = 0;
        $sumMinitractorGranja = 0;


    }   
    // Verificar si el ZNombre ha cambiado
    if ($rowData['ZNombre'] !== $anteriorZona) {
        // Insertar una fila vacía antes de la fila de SemanaRptPrograma
        if ($filaVaciaGranja) {
        	$sheet->insertNewRowBefore($row);
            // Combinar toda la fila
            $sheet->setCellValue('I' . $row, $sumDotacionGranja);
            $sheet->setCellValue('J' . $row, $sumOperarioGranja);
            $sheet->setCellValue('K' . $row, $sumTractoristaGranja);
            $sheet->setCellValue('L' . $row, $sumProgramaDGranja);
            $sheet->setCellValue('M' . $row, $sumTractor75Granja);
            $sheet->setCellValue('N' . $row, $sumTractor95Granja);
            $sheet->setCellValue('O' . $row, $sumTractor110Granja);
            $sheet->setCellValue('P' . $row, $sumMinitractorGranja);
            $sheet->setCellValue('Q' . $row, $sumTractorCGranja);
            $sheet->setCellValue('R' . $row, $sumGalon75Granja);
            $sheet->setCellValue('S' . $row, $sumGalon95Granja);
            $sheet->setCellValue('T' . $row, $sumGalon110Granja);
            $sheet->setCellValue('U' . $row, $sumGalonMiniGranja);
            $sheet->setCellValue('V' . $row, $sumImplementoGranja);
            $sheet->setCellValue('W' . $row, $sumRoticultorGranja);
            $sheet->setCellValue('X' . $row, $sumRoticultorFGranja);
            $sheet->setCellValue('Y' . $row, $sumCarreteraGranja);
            $sheet->setCellValue('Z' . $row, $sumRufaIGranja);
            $sheet->setCellValue('AA' . $row, $sumRufaTGranja);
            $sheet->setCellValue('AB' . $row, $sumComposteadoraGranja);
            $sheet->setCellValue('AC' . $row, $sumAireadorGranja);
            $sheet->setCellValue('AD' . $row, $sumRedGranja);
            $sheet->setCellValue('AE' . $row, $sumMotofumiGranja);
            $sheet->setCellValue('AF' . $row, $sumClasificadorGranja);
            $sheet->setCellValue('AG' . $row, $sumCaleadoraGranja);
            $sheet->setCellValue('AH' . $row, $sumTrituradoraGranja);
            $sheet->setCellValue('AI' . $row, $sumLaminaGranja);
            $sheet->setCellValue('AJ' . $row, $sumRebobinadoraGranja);
            // Define the color for the row
            $rowColor = 'afeeee'; // Change the color as desired (in this example, red)
          
            // Set the fill color for the entire row
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getFont()->setBold(true);
            $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
            $sheet->setCellValue('E' . $row, 'TOTAL ZONA');
            $lastRow = $row++;
            $sheet->mergeCells('E' . $lastRow . ':H' . $lastRow);
            // Combinar las celdas para el ZNombre anterior
            if ($mergeStartRowGranja !== null && $row - $mergeStartRowGranja > 0) {
                $mergeEndRowGranja = $row - 1;
                $sheet->mergeCells('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja);
                $sheet->getStyle('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
                $sheet->getStyle('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja)->getFont()->setBold(true);
                
            }
        }
        if ($filaVaciaZona) {
        	$sheet->insertNewRowBefore($row);
            // Combinar toda la fila
            $sheet->setCellValue('I' . $row, $sumDotacionZona);
            $sheet->setCellValue('J' . $row, $sumOperarioZona);
            $sheet->setCellValue('K' . $row, $sumTractoristaZona);
            $sheet->setCellValue('L' . $row, $sumProgramaDZona);
            $sheet->setCellValue('M' . $row, $sumTractor75Zona);
            $sheet->setCellValue('N' . $row, $sumTractor95Zona);
            $sheet->setCellValue('O' . $row, $sumTractor110Zona);
            $sheet->setCellValue('P' . $row, $sumMinitractorZona); 
            $sheet->setCellValue('Q' . $row, $sumTractorCZona);
            $sheet->setCellValue('R' . $row, $sumGalon75Zona);
            $sheet->setCellValue('S' . $row, $sumGalon95Zona);
            $sheet->setCellValue('T' . $row, $sumGalon110Zona);
            $sheet->setCellValue('U' . $row, $sumGalonMiniZona);
            $sheet->setCellValue('V' . $row, $sumImplementoZona);
            $sheet->setCellValue('W' . $row, $sumRoticultorZona);
            $sheet->setCellValue('X' . $row, $sumRoticultorFZona);
            $sheet->setCellValue('Y' . $row, $sumCarreteraZona);
            $sheet->setCellValue('Z' . $row, $sumRufaIZona);
            $sheet->setCellValue('AA' . $row, $sumRufaTZona);
            $sheet->setCellValue('AB' . $row, $sumComposteadoraZona);
            $sheet->setCellValue('AC' . $row, $sumAireadorZona);
            $sheet->setCellValue('AD' . $row, $sumRedZona);
            $sheet->setCellValue('AE' . $row, $sumMotofumiZona);
            $sheet->setCellValue('AF' . $row, $sumClasificadorZona);
            $sheet->setCellValue('AG' . $row, $sumCaleadoraZona);
            $sheet->setCellValue('AH' . $row, $sumTrituradoraZona);
            $sheet->setCellValue('AI' . $row, $sumLaminaZona);
            $sheet->setCellValue('AJ' . $row, $sumRebobinadoraZona); 
            // Define the color for the row
            $rowColor = 'add8e6'; // Change the color as desired (in this example, red)
          
            // Set the fill color for the entire row
            $sheet->getStyle('D' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
            $sheet->getStyle('D' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
            $sheet->getStyle('D' . $row . ':AJ' . $row)->getFont()->setBold(true);
            $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
            $sheet->setCellValue('D' . $row, 'TOTAL GRANJA');
            $lastRow = $row++;
            $sheet->mergeCells('D' . $lastRow . ':H' . $lastRow);
            // Combinar las celdas para el ZNombre anterior
            if ($mergeStartRowZona !== null && $row - $mergeStartRowZona > 0) {
                $mergeEndRowZona = $row - 1;
                $sheet->mergeCells('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona);
                $sheet->getStyle('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
                $sheet->getStyle('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona)->getFont()->setBold(true);            
            }
        } 
        else {
            $filaVaciaZona = true;
        }
        
        // Actualizar la fila de inicio para combinar celdas de ZNombre
        $mergeStartRowZona = $row; 

        // Actualizar el ZNombre actual
        $anteriorZona = $rowData['ZNombre'];
        // Agregar el valor del mes actual en la celda correspondiente
        $sheet->setCellValue('C' . $row, $rowData['ZNombre']);

        // Reiniciar el mes anterior
        $anteriorGranja = null;

        // Reiniciar las variables de fila vacía
        $filaVaciaGranja = false;
        //Variable para la Suma de Galpon
	    $sumDotacionZona = 0;
	    $sumDotacionGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumOperarioZona = 0;
	    $sumOperarioGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractoristaZona = 0;
	    $sumTractoristaGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumProgramaDZona = 0;
	    $sumProgramaDGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractor75Zona = 0;
	    $sumTractor75Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractor95Zona = 0;
	    $sumTractor95Granja= 0;
	    //Variable para la Suma de Galpon
	    $sumTractor110Zona = 0;
	    $sumTractor110Granja = 0;
        //Variable para la Suma de Galpon
        $sumGalonMiniZona = 0;
        $sumGalonMiniGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractorCZona = 0;
	    $sumTractorCGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon75Zona = 0;
	    $sumGalon75Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon95Zona = 0;
	    $sumGalon95Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon110Zona = 0;
	    $sumGalon110Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumImplementoZona = 0;
	    $sumImplementoGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRoticultorZona = 0;
	    $sumRoticultorGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRoticultorFZona = 0;
	    $sumRoticultorFGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumCarreteraZona = 0;
	    $sumCarreteraGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRufaIZona = 0;
	    $sumRufaIGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRufaTZona = 0;
	    $sumRufaTGranja = 0;
	    //Variable para laGranja Suma de Galpon
	    $sumComposteadoraZona = 0;
	    $sumComposteadoraGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumAireadorZona = 0;
	    $sumAireadorGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRedZona = 0;
	    $sumRedGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumMotofumiZona = 0;
	    $sumMotofumiGranja = 0;
        //Variable para la Suma de Galpon
        $sumClasificadorZona = 0;
        $sumClasificadorGranja = 0;
        //Variable para la Suma de Galpon
        $sumCaleadoraZona = 0;
        $sumCaleadoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumTrituradoraZona = 0;
        $sumTrituradoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumLaminaZona = 0;
        $sumLaminaGranja = 0;
        //Variable para la Suma de Galpon
        $sumRebobinadoraZona = 0;
        $sumRebobinadoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumMinitractorZona = 0;
        $sumMinitractorGranja = 0;

    }
    // Verificar si el GNombre ha cambiado
    if ($rowData['GNombre'] !== $anteriorGranja) {
        // Insertar una fila vacía antes de la fila de SemanaRptPrograma
        if ($filaVaciaGranja) {
        	$sheet->insertNewRowBefore($row);
            // Combinar toda la fila
            $sheet->setCellValue('I' . $row, $sumDotacionGranja);
            $sheet->setCellValue('J' . $row, $sumOperarioGranja);
            $sheet->setCellValue('K' . $row, $sumTractoristaGranja);
            $sheet->setCellValue('L' . $row, $sumProgramaDGranja);
            $sheet->setCellValue('M' . $row, $sumTractor75Granja);
            $sheet->setCellValue('N' . $row, $sumTractor95Granja);
            $sheet->setCellValue('O' . $row, $sumTractor110Granja);
            $sheet->setCellValue('P' . $row, $sumMinitractorGranja);
            $sheet->setCellValue('Q' . $row, $sumTractorCGranja);
            $sheet->setCellValue('R' . $row, $sumGalon75Granja);
            $sheet->setCellValue('S' . $row, $sumGalon95Granja);
            $sheet->setCellValue('T' . $row, $sumGalon110Granja);
            $sheet->setCellValue('U' . $row, $sumGalonMiniGranja);
            $sheet->setCellValue('V' . $row, $sumImplementoGranja);
            $sheet->setCellValue('W' . $row, $sumRoticultorGranja);
            $sheet->setCellValue('X' . $row, $sumRoticultorFGranja);
            $sheet->setCellValue('Y' . $row, $sumCarreteraGranja);
            $sheet->setCellValue('Z' . $row, $sumRufaIGranja);
            $sheet->setCellValue('AA' . $row, $sumRufaTGranja);
            $sheet->setCellValue('AB' . $row, $sumComposteadoraGranja);
            $sheet->setCellValue('AC' . $row, $sumAireadorGranja);
            $sheet->setCellValue('AD' . $row, $sumRedGranja);
            $sheet->setCellValue('AE' . $row, $sumMotofumiGranja);
            $sheet->setCellValue('AF' . $row, $sumClasificadorGranja);
            $sheet->setCellValue('AG' . $row, $sumCaleadoraGranja);
            $sheet->setCellValue('AH' . $row, $sumTrituradoraGranja);
            $sheet->setCellValue('AI' . $row, $sumLaminaGranja);
            $sheet->setCellValue('AJ' . $row, $sumRebobinadoraGranja);
            // Define the color for the row
            $rowColor = 'afeeee'; // Change the color as desired (in this example, red)
          
            // Set the fill color for the entire row
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
            $sheet->getStyle('E' . $row . ':AJ' . $row)->getFont()->setBold(true);
            $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
            $sheet->setCellValue('E' . $row, 'TOTAL ZONA');
            $lastRow = $row++;
            $sheet->mergeCells('E' . $lastRow . ':H' . $lastRow);
            // Combinar las celdas para el GNombre anterior
            if ($mergeStartRowGranja !== null && $row - $mergeStartRowGranja > 0) {
                $mergeEndRowGranja = $row - 1;
                $sheet->mergeCells('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja);
                $sheet->getStyle('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
                $sheet->getStyle('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja)->getFont()->setBold(true);
                
            }
        }
        else {
            $filaVaciaGranja = true;
        }

        
        $mergeStartRowGranja = $row; // Actualizar la fila de inicio para combinar celdas de GNombre
        // Actualizar el GNombre actual
        $anteriorGranja = $rowData['GNombre'];
        // Agregar el valor del mes actual en la celda correspondiente
        $sheet->setCellValue('D' . $row, $rowData['GNombre']);

        //Variable para la Suma de Galpon
	    $sumDotacionGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumOperarioGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractoristaGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumProgramaDGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractor75Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractor95Granja= 0;
	    //Variable para la Suma de Galpon
	    $sumTractor110Granja = 0;
        //Variable para la Suma de Galpon
        $sumGalonMiniGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumTractorCGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon75Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon95Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumGalon110Granja = 0;
	    //Variable para la Suma de Galpon
	    $sumImplementoGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRoticultorGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRoticultorFGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumCarreteraGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRufaIGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRufaTGranja = 0;
	    //Variable para laGranja Suma de Galpon
	    $sumComposteadoraGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumAireadorGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumRedGranja = 0;
	    //Variable para la Suma de Galpon
	    $sumMotofumiGranja = 0;
        //Variable para la Suma de Galpon
        $sumClasificadorGranja = 0;
        //Variable para la Suma de Galpon
        $sumCaleadoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumTrituradoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumLaminaGranja = 0;
        //Variable para la Suma de Galpon
        $sumRebobinadoraGranja = 0;
        //Variable para la Suma de Galpon
        $sumMinitractorGranja = 0;
   }

    
    // Agregar los datos a las celdas correspondientes
    $sheet->setCellValue('A' . $row, $rowData['SemanaRptPrograma']);
    $sheet->setCellValue('E' . $row, $rowData['Expr1']);
    $sheet->setCellValue('F' . $row, $rowData['Campana']);
    $sheet->setCellValue('G' . $row, $rowData['ANombre']);
    $sheet->setCellValue('H' . $row, \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($rowData['ProFechaInicioLimpieza']));
    $sheet->getStyle('H'.$row)->getNumberFormat()->setFormatCode('dd/mm/yyyy');
    $sheet->setCellValue('I' . $row, $rowData['DotacionProgramaDiario']);
    // Define the color for the row
    $rowColor = 'afeeee'; // Change the color as desired
    $cellStyle = $sheet->getStyle('I' . $row);
    $cellStyle->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB($rowColor);
    //
    $sheet->setCellValue('J' . $row, $rowData['JornalesOperariosProgramaDiario']);
    $sheet->setCellValue('K' . $row, $rowData['JornalesTractoristaProgramaDiario']);
    $sheet->setCellValue('L' . $row, $rowData['TractoresProgramaDiario']);
    // Define the color for the row
    $rowColor = 'afeeee'; // Change the color as desired
    $cellStyle = $sheet->getStyle('L' . $row);
    $cellStyle->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB($rowColor);
    //
    $sheet->setCellValue('M' . $row, $rowData['TractorPotencia75HPProgramaDiario']);
    $sheet->setCellValue('N' . $row, $rowData['TractorPotencia95HPProgramaDiario']);
    $sheet->setCellValue('O' . $row, $rowData['TractorPotencia110HPProgramaDiario']);
    $sheet->setCellValue('P' . $row, $rowData['MinitractorProgramaDiario']);

    $sheet->setCellValue('Q' . $row, $rowData['PTotalTractorCombustible']);
    // Define the color for the row
    $rowColor = 'afeeee'; // Change the color as desired
    $cellStyle = $sheet->getStyle('Q' . $row);
    $cellStyle->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB($rowColor);
    //
    $sheet->setCellValue('R' . $row, $rowData['PCombustible75HPProgramaDiario']);
    $sheet->setCellValue('S' . $row, $rowData['PCombustible95HPProgramaDiario']);
    $sheet->setCellValue('T' . $row, $rowData['PCombustible110HPProgramaDiario']);
    $sheet->setCellValue('U' . $row, $rowData['PCombustibleMinitTractorHPProgramaDiario']);
    $sheet->setCellValue('V' . $row, $rowData['ImplementoProgramaDiario']);
    // Define the color for the row
    $rowColor = 'afeeee'; // Change the color as desired
    $cellStyle = $sheet->getStyle('V' . $row);
    $cellStyle->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setRGB($rowColor);
    //
    $sheet->setCellValue('W' . $row, $rowData['RoticultorInicialProgramaDiario']);
    $sheet->setCellValue('X' . $row, $rowData['RoticultorFinalProgramaDiario']);
    $sheet->setCellValue('Y' . $row, $rowData['CarretaProgramaDiario']);
    $sheet->setCellValue('Z' . $row, $rowData['RufaInicialProgramaDiario']);
    $sheet->setCellValue('AA' . $row, $rowData['RufaTumbadoProgramaDiario']);
    $sheet->setCellValue('AB' . $row, $rowData['ComposteadoraProgramaDiario']);
    $sheet->setCellValue('AC' . $row, $rowData['AireadorProgramaDiario']);
    $sheet->setCellValue('AD' . $row, $rowData['RedDragonProgramaDiario']);
    $sheet->setCellValue('AE' . $row, $rowData['MotofumigadoraProgramaDiario']);
    $sheet->setCellValue('AF' . $row, $rowData['ClasificadorProgramaDiario']);
    $sheet->setCellValue('AG' . $row, $rowData['CaleadoraProgramaDiario']);
    $sheet->setCellValue('AH' . $row, $rowData['TrituradoraProgramaDiario']);
    $sheet->setCellValue('AI' . $row, $rowData['LaminaProgramaDiario']);
    $sheet->setCellValue('AJ' . $row, $rowData['RebobinadoraProgramaDiario']);
    

    // Sumar el valor de DotacionProgramaDiario al total del Año actual
    $sumDotacionSemana += $rowData['DotacionProgramaDiario'];

    // Sumar el valor de DotacionProgramaDiario al total del Mes actual
    $sumDotacionFecha += $rowData['DotacionProgramaDiario'];

    // Sumar el valor de DotacionProgramaDiario al total del Año actual
    $sumDotacionZona += $rowData['DotacionProgramaDiario'];

    // Sumar el valor de DotacionProgramaDiario al total del Mes actual
    $sumDotacionGranja += $rowData['DotacionProgramaDiario'];


    // Sumar el valor de JornalesOperariosProgramaDiario al total del Año actual
    $sumOperarioSemana += $rowData['JornalesOperariosProgramaDiario'];

    // Sumar el valor de JornalesOperariosProgramaDiario al total del Mes actual
    $sumOperarioFecha += $rowData['JornalesOperariosProgramaDiario'];

    // Sumar el valor de JornalesOperariosProgramaDiario al total del Año actual
    $sumOperarioZona += $rowData['JornalesOperariosProgramaDiario'];

    // Sumar el valor de JornalesOperariosProgramaDiario al total del Mes actual
    $sumOperarioGranja += $rowData['JornalesOperariosProgramaDiario'];


    // Sumar el valor de JornalesTractoristaProgramaDiario al total del Año actual
    $sumTractoristaSemana += $rowData['JornalesTractoristaProgramaDiario'];

    // Sumar el valor de JornalesTractoristaProgramaDiario al total del Mes actual
    $sumTractoristaFecha += $rowData['JornalesTractoristaProgramaDiario'];

    // Sumar el valor de JornalesTractoristaProgramaDiario al total del Año actual
    $sumTractoristaZona += $rowData['JornalesTractoristaProgramaDiario'];

    // Sumar el valor de JornalesTractoristaProgramaDiario al total del Mes actual
    $sumTractoristaGranja += $rowData['JornalesTractoristaProgramaDiario'];


    // Sumar el valor de TractoresProgramaDiario al total del Año actual
    $sumProgramaDSemana += $rowData['TractoresProgramaDiario'];

    // Sumar el valor de TractoresProgramaDiario al total del Mes actual
    $sumProgramaDFecha += $rowData['TractoresProgramaDiario'];

    // Sumar el valor de TractoresProgramaDiario al total del Año actual
    $sumProgramaDZona += $rowData['TractoresProgramaDiario'];

    // Sumar el valor de TractoresProgramaDiario al total del Mes actual
    $sumProgramaDGranja += $rowData['TractoresProgramaDiario'];


    // Sumar el valor de TractorPotencia75HPProgramaDiario al total del Año actual
    $sumTractor75Semana += $rowData['TractorPotencia75HPProgramaDiario'];

    // Sumar el valor de TractorPotencia75HPProgramaDiario al total del Mes actual
    $sumTractor75Fecha += $rowData['TractorPotencia75HPProgramaDiario'];

    // Sumar el valor de TractorPotencia75HPProgramaDiario al total del Año actual
    $sumTractor75Zona += $rowData['TractorPotencia75HPProgramaDiario'];

    // Sumar el valor de TractorPotencia75HPProgramaDiario al total del Mes actual
    $sumTractor75Granja += $rowData['TractorPotencia75HPProgramaDiario'];


    // Sumar el valor de TractorPotencia95HPProgramaDiario al total del Año actual
    $sumTractor95Semana += $rowData['TractorPotencia95HPProgramaDiario'];

    // Sumar el valor de TractorPotencia95HPProgramaDiario al total del Mes actual
    $sumTractor95Fecha += $rowData['TractorPotencia95HPProgramaDiario'];

    // Sumar el valor de TractorPotencia95HPProgramaDiario al total del Año actual
    $sumTractor95Zona += $rowData['TractorPotencia95HPProgramaDiario'];

    // Sumar el valor de TractorPotencia95HPProgramaDiario al total del Mes actual
    $sumTractor95Granja += $rowData['TractorPotencia95HPProgramaDiario'];


    // Sumar el valor de TractorPotencia110HPProgramaDiario al total del Año actual
    $sumTractor110Semana += $rowData['TractorPotencia110HPProgramaDiario'];

    // Sumar el valor de TractorPotencia110HPProgramaDiario al total del Mes actual
    $sumTractor110Fecha += $rowData['TractorPotencia110HPProgramaDiario'];

    // Sumar el valor de TractorPotencia110HPProgramaDiario al total del Año actual
    $sumTractor110Zona += $rowData['TractorPotencia110HPProgramaDiario'];

    // Sumar el valor de TractorPotencia110HPProgramaDiario al total del Mes actual
    $sumTractor110Granja += $rowData['TractorPotencia110HPProgramaDiario'];


    // Sumar el valor de MinitractorProgramaDiario al total del Año actual
    $sumMinitractorSemana += $rowData['MinitractorProgramaDiario'];

    // Sumar el valor de MinitractorProgramaDiario al total del Mes actual
    $sumMinitractorFecha += $rowData['MinitractorProgramaDiario'];

    // Sumar el valor de MinitractorProgramaDiario al total del Año actual
    $sumMinitractorZona += $rowData['MinitractorProgramaDiario'];

    // Sumar el valor de MinitractorProgramaDiario al total del Mes actual
    $sumMinitractorGranja += $rowData['MinitractorProgramaDiario'];


    // Sumar el valor de PTotalTractorCombustible al total del Año actual
    $sumTractorCSemana += $rowData['PTotalTractorCombustible'];

    // Sumar el valor de PTotalTractorCombustible al total del Mes actual
    $sumTractorCFecha += $rowData['PTotalTractorCombustible'];

    // Sumar el valor de PTotalTractorCombustible al total del Año actual
    $sumTractorCZona += $rowData['PTotalTractorCombustible'];

    // Sumar el valor de PTotalTractorCombustible al total del Mes actual
    $sumTractorCGranja += $rowData['PTotalTractorCombustible'];



    // Sumar el valor de PCombustible75HPProgramaDiario al total del Año actual
    $sumGalon75Semana += $rowData['PCombustible75HPProgramaDiario'];

    // Sumar el valor de PCombustible75HPProgramaDiario al total del Mes actual
    $sumGalon75Fecha += $rowData['PCombustible75HPProgramaDiario'];

    // Sumar el valor de PCombustible75HPProgramaDiario al total del Año actual
    $sumGalon75Zona += $rowData['PCombustible75HPProgramaDiario'];

    // Sumar el valor de PCombustible75HPProgramaDiario al total del Mes actual
    $sumGalon75Granja += $rowData['PCombustible75HPProgramaDiario'];


    // Sumar el valor de PCombustible95HPProgramaDiario al total del Año actual
    $sumGalon95Semana += $rowData['PCombustible95HPProgramaDiario'];

    // Sumar el valor de PCombustible95HPProgramaDiario al total del Mes actual
    $sumGalon95Fecha += $rowData['PCombustible95HPProgramaDiario'];

    // Sumar el valor de PCombustible95HPProgramaDiario al total del Año actual
    $sumGalon95Zona += $rowData['PCombustible95HPProgramaDiario'];

    // Sumar el valor de PCombustible95HPProgramaDiario al total del Mes actual
    $sumGalon95Granja += $rowData['PCombustible95HPProgramaDiario'];


    // Sumar el valor de PCombustible110HPProgramaDiario al total del Año actual
    $sumGalon110Semana += $rowData['PCombustible110HPProgramaDiario'];

    // Sumar el valor de PCombustible110HPProgramaDiario al total del Mes actual
    $sumGalon110Fecha += $rowData['PCombustible110HPProgramaDiario'];

    // Sumar el valor de PCombustible110HPProgramaDiario al total del Año actual
    $sumGalon110Zona += $rowData['PCombustible110HPProgramaDiario'];

    // Sumar el valor de PCombustible110HPProgramaDiario al total del Mes actual
    $sumGalon110Granja += $rowData['PCombustible110HPProgramaDiario'];


    // Sumar el valor de PCombustibleMinitTractorHPProgramaDiario al total del Año actual
    $sumGalonMiniSemana += $rowData['PCombustibleMinitTractorHPProgramaDiario'];

    // Sumar el valor de PCombustibleMinitTractorHPProgramaDiario al total del Mes actual
    $sumGalonMiniFecha += $rowData['PCombustibleMinitTractorHPProgramaDiario'];

    // Sumar el valor de PCombustibleMinitTractorHPProgramaDiario al total del Año actual
    $sumGalonMiniZona += $rowData['PCombustibleMinitTractorHPProgramaDiario'];

    // Sumar el valor de PCombustibleMinitTractorHPProgramaDiario al total del Mes actual
    $sumGalonMiniGranja += $rowData['PCombustibleMinitTractorHPProgramaDiario'];



    // Sumar el valor de ImplementoProgramaDiario al total del Año actual
    $sumImplementoSemana += $rowData['ImplementoProgramaDiario'];

    // Sumar el valor de ImplementoProgramaDiario al total del Mes actual
    $sumImplementoFecha += $rowData['ImplementoProgramaDiario'];

    // Sumar el valor de ImplementoProgramaDiario al total del Año actual
    $sumImplementoZona += $rowData['ImplementoProgramaDiario'];

    // Sumar el valor de ImplementoProgramaDiario al total del Mes actual
    $sumImplementoGranja += $rowData['ImplementoProgramaDiario'];


    // Sumar el valor de RoticultorInicialProgramaDiario al total del Año actual
    $sumRoticultorSemana += $rowData['RoticultorInicialProgramaDiario'];

    // Sumar el valor de RoticultorInicialProgramaDiario al total del Mes actual
    $sumRoticultorFecha += $rowData['RoticultorInicialProgramaDiario'];

    // Sumar el valor de RoticultorInicialProgramaDiario al total del Año actual
    $sumRoticultorZona += $rowData['RoticultorInicialProgramaDiario'];

    // Sumar el valor de RoticultorInicialProgramaDiario al total del Mes actual
    $sumRoticultorGranja += $rowData['RoticultorInicialProgramaDiario'];


    // Sumar el valor de RoticultorFinalProgramaDiario al total del Año actual
    $sumRoticultorFSemana += $rowData['RoticultorFinalProgramaDiario'];

    // Sumar el valor de RoticultorFinalProgramaDiario al total del Mes actual
    $sumRoticultorFFecha += $rowData['RoticultorFinalProgramaDiario'];

    // Sumar el valor de RoticultorFinalProgramaDiario al total del Año actual
    $sumRoticultorFZona += $rowData['RoticultorFinalProgramaDiario'];

    // Sumar el valor de RoticultorFinalProgramaDiario al total del Mes actual
    $sumRoticultorFGranja += $rowData['RoticultorFinalProgramaDiario'];



    // Sumar el valor de CarretaProgramaDiario al total del Año actual
    $sumCarreteraSemana += $rowData['CarretaProgramaDiario'];

    // Sumar el valor de CarretaProgramaDiario al total del Mes actual
    $sumCarreteraFecha += $rowData['CarretaProgramaDiario'];

    // Sumar el valor de CarretaProgramaDiario al total del Año actual
    $sumCarreteraZona += $rowData['CarretaProgramaDiario'];

    // Sumar el valor de CarretaProgramaDiario al total del Mes actual
    $sumCarreteraGranja += $rowData['CarretaProgramaDiario'];


    // Sumar el valor de RufaInicialProgramaDiario al total del Año actual
    $sumRufaISemana += $rowData['RufaInicialProgramaDiario'];

    // Sumar el valor de RufaInicialProgramaDiario al total del Mes actual
    $sumRufaIFecha += $rowData['RufaInicialProgramaDiario'];

    // Sumar el valor de RufaInicialProgramaDiario al total del Año actual
    $sumRufaIZona += $rowData['RufaInicialProgramaDiario'];

    // Sumar el valor de RufaInicialProgramaDiario al total del Mes actual
    $sumRufaIGranja += $rowData['RufaInicialProgramaDiario'];



    // Sumar el valor de RufaTumbadoProgramaDiario al total del Año actual
    $sumRufaTSemana += $rowData['RufaTumbadoProgramaDiario'];

    // Sumar el valor de RufaTumbadoProgramaDiario al total del Mes actual
    $sumRufaTFecha += $rowData['RufaTumbadoProgramaDiario'];

    // Sumar el valor de RufaTumbadoProgramaDiario al total del Año actual
    $sumRufaTZona += $rowData['RufaTumbadoProgramaDiario'];

    // Sumar el valor de RufaTumbadoProgramaDiario al total del Mes actual
    $sumRufaTGranja += $rowData['RufaTumbadoProgramaDiario'];



    // Sumar el valor de ComposteadoraProgramaDiario al total del Año actual
    $sumComposteadoraSemana += $rowData['ComposteadoraProgramaDiario'];

    // Sumar el valor de ComposteadoraProgramaDiario al total del Mes actual
    $sumComposteadoraFecha += $rowData['ComposteadoraProgramaDiario'];

    // Sumar el valor de ComposteadoraProgramaDiario al total del Año actual
    $sumComposteadoraZona += $rowData['ComposteadoraProgramaDiario'];

    // Sumar el valor de ComposteadoraProgramaDiario al total del Mes actual
    $sumComposteadoraGranja += $rowData['ComposteadoraProgramaDiario'];



    // Sumar el valor de AireadorProgramaDiario al total del Año actual
    $sumAireadorSemana += $rowData['AireadorProgramaDiario'];

    // Sumar el valor de AireadorProgramaDiario al total del Mes actual
    $sumAireadorFecha += $rowData['AireadorProgramaDiario'];

    // Sumar el valor de AireadorProgramaDiario al total del Año actual
    $sumAireadorZona += $rowData['AireadorProgramaDiario'];

    // Sumar el valor de AireadorProgramaDiario al total del Mes actual
    $sumAireadorGranja += $rowData['AireadorProgramaDiario'];



    // Sumar el valor de RedDragonProgramaDiario al total del Año actual
    $sumRedSemana += $rowData['RedDragonProgramaDiario'];

    // Sumar el valor de RedDragonProgramaDiario al total del Mes actual
    $sumRedFecha += $rowData['RedDragonProgramaDiario'];

    // Sumar el valor de RedDragonProgramaDiario al total del Año actual
    $sumRedZona += $rowData['RedDragonProgramaDiario'];

    // Sumar el valor de RedDragonProgramaDiario al total del Mes actual
    $sumRedGranja += $rowData['RedDragonProgramaDiario'];



    // Sumar el valor de MotofumigadoraProgramaDiario al total del Año actual
    $sumMotofumiSemana += $rowData['MotofumigadoraProgramaDiario'];

    // Sumar el valor de MotofumigadoraProgramaDiario al total del Mes actual
    $sumMotofumiFecha += $rowData['MotofumigadoraProgramaDiario'];

    // Sumar el valor de MotofumigadoraProgramaDiario al total del Año actual
    $sumMotofumiZona += $rowData['MotofumigadoraProgramaDiario'];

    // Sumar el valor de MotofumigadoraProgramaDiario al total del Mes actual
    $sumMotofumiGranja += $rowData['MotofumigadoraProgramaDiario'];


    // Sumar el valor de ClasificadorProgramaDiario al total del Año actual
    $sumClasificadorSemana += $rowData['ClasificadorProgramaDiario'];

    // Sumar el valor de ClasificadorProgramaDiario al total del Mes actual
    $sumClasificadorFecha += $rowData['ClasificadorProgramaDiario'];

    // Sumar el valor de ClasificadorProgramaDiario al total del Año actual
    $sumClasificadorZona += $rowData['ClasificadorProgramaDiario'];

    // Sumar el valor de ClasificadorProgramaDiario al total del Mes actual
    $sumClasificadorGranja += $rowData['ClasificadorProgramaDiario'];



    // Sumar el valor de CaleadoraProgramaDiario al total del Año actual
    $sumCaleadoraSemana += $rowData['CaleadoraProgramaDiario'];

    // Sumar el valor de CaleadoraProgramaDiario al total del Mes actual
    $sumCaleadoraFecha += $rowData['CaleadoraProgramaDiario'];

    // Sumar el valor de CaleadoraProgramaDiario al total del Año actual
    $sumCaleadoraZona += $rowData['CaleadoraProgramaDiario'];

    // Sumar el valor de CaleadoraProgramaDiario al total del Mes actual
    $sumCaleadoraGranja += $rowData['CaleadoraProgramaDiario'];



    // Sumar el valor de TrituradoraProgramaDiario al total del Año actual
    $sumTrituradoraSemana += $rowData['TrituradoraProgramaDiario'];

    // Sumar el valor de TrituradoraProgramaDiario al total del Mes actual
    $sumTrituradoraFecha += $rowData['TrituradoraProgramaDiario'];

    // Sumar el valor de TrituradoraProgramaDiario al total del Año actual
    $sumTrituradoraZona += $rowData['TrituradoraProgramaDiario'];

    // Sumar el valor de TrituradoraProgramaDiario al total del Mes actual
    $sumTrituradoraGranja += $rowData['TrituradoraProgramaDiario'];



    // Sumar el valor de LaminaProgramaDiario al total del Año actual
    $sumLaminaSemana += $rowData['LaminaProgramaDiario'];

    // Sumar el valor de LaminaProgramaDiario al total del Mes actual
    $sumLaminaFecha += $rowData['LaminaProgramaDiario'];

    // Sumar el valor de LaminaProgramaDiario al total del Año actual
    $sumLaminaZona += $rowData['LaminaProgramaDiario'];

    // Sumar el valor de LaminaProgramaDiario al total del Mes actual
    $sumLaminaGranja += $rowData['LaminaProgramaDiario'];



    // Sumar el valor de RebobinadoraProgramaDiario al total del Año actual
    $sumRebobinadoraSemana += $rowData['RebobinadoraProgramaDiario'];

    // Sumar el valor de RebobinadoraProgramaDiario al total del Mes actual
    $sumRebobinadoraFecha += $rowData['RebobinadoraProgramaDiario'];

    // Sumar el valor de RebobinadoraProgramaDiario al total del Año actual
    $sumRebobinadoraZona += $rowData['RebobinadoraProgramaDiario'];

    // Sumar el valor de RebobinadoraProgramaDiario al total del Mes actual
    $sumRebobinadoraGranja += $rowData['RebobinadoraProgramaDiario'];




    // Incrementar el contador de fila 
    $row++;

}   

    if ($row - $mergeStartRowGranja > 0) {
    	$sheet->insertNewRowBefore($row);
        // Combinar toda la fila
        $sheet->setCellValue('I' . $row, $sumDotacionGranja);
        $sheet->setCellValue('J' . $row, $sumOperarioGranja);
        $sheet->setCellValue('K' . $row, $sumTractoristaGranja);
        $sheet->setCellValue('L' . $row, $sumProgramaDGranja);
        $sheet->setCellValue('M' . $row, $sumTractor75Granja);
        $sheet->setCellValue('N' . $row, $sumTractor95Granja);
        $sheet->setCellValue('O' . $row, $sumTractor110Granja);
        $sheet->setCellValue('P' . $row, $sumMinitractorGranja);
        $sheet->setCellValue('Q' . $row, $sumTractorCGranja);
        $sheet->setCellValue('R' . $row, $sumGalon75Granja);
        $sheet->setCellValue('S' . $row, $sumGalon95Granja);
        $sheet->setCellValue('T' . $row, $sumGalon110Granja);
        $sheet->setCellValue('U' . $row, $sumGalonMiniGranja);
        $sheet->setCellValue('V' . $row, $sumImplementoGranja);
        $sheet->setCellValue('W' . $row, $sumRoticultorGranja);
        $sheet->setCellValue('X' . $row, $sumRoticultorFGranja);
        $sheet->setCellValue('Y' . $row, $sumCarreteraGranja);
        $sheet->setCellValue('Z' . $row, $sumRufaIGranja);
        $sheet->setCellValue('AA' . $row, $sumRufaTGranja);
        $sheet->setCellValue('AB' . $row, $sumComposteadoraGranja);
        $sheet->setCellValue('AC' . $row, $sumAireadorGranja);
        $sheet->setCellValue('AD' . $row, $sumRedGranja);
        $sheet->setCellValue('AE' . $row, $sumMotofumiGranja);
        $sheet->setCellValue('AF' . $row, $sumClasificadorGranja);
        $sheet->setCellValue('AG' . $row, $sumCaleadoraGranja);
        $sheet->setCellValue('AH' . $row, $sumTrituradoraGranja);
        $sheet->setCellValue('AI' . $row, $sumLaminaGranja);
        $sheet->setCellValue('AJ' . $row, $sumRebobinadoraGranja);
        
        // Define the color for the row
        $rowColor = 'afeeee'; // Change the color as desired (in this example, red)
      
        // Set the fill color for the entire row
        $sheet->getStyle('E' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
        $sheet->getStyle('E' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
        $sheet->getStyle('E' . $row . ':AJ' . $row)->getFont()->setBold(true);
        $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
        $sheet->setCellValue('E' . $row, 'TOTAL ZONA');
        $lastRow = $row++;
        $sheet->mergeCells('E' . $lastRow . ':H' . $lastRow);
        $mergeEndRowGranja = $row - 1;
        $sheet->mergeCells('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja);
        $sheet->getStyle('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
        $sheet->getStyle('D' . $mergeStartRowGranja . ':D' . $mergeEndRowGranja)->getFont()->setBold(true);
    }
    if ($row - $mergeStartRowZona > 0) {
    	$sheet->insertNewRowBefore($row);
        // Combinar toda la fila
        $sheet->setCellValue('I' . $row, $sumDotacionZona);
        $sheet->setCellValue('J' . $row, $sumOperarioZona);
        $sheet->setCellValue('K' . $row, $sumTractoristaZona);
        $sheet->setCellValue('L' . $row, $sumProgramaDZona);
        $sheet->setCellValue('M' . $row, $sumTractor75Zona);
        $sheet->setCellValue('N' . $row, $sumTractor95Zona);
        $sheet->setCellValue('O' . $row, $sumTractor110Zona);
        $sheet->setCellValue('P' . $row, $sumMinitractorZona); 
        $sheet->setCellValue('Q' . $row, $sumTractorCZona);
        $sheet->setCellValue('R' . $row, $sumGalon75Zona);
        $sheet->setCellValue('S' . $row, $sumGalon95Zona);
        $sheet->setCellValue('T' . $row, $sumGalon110Zona);
        $sheet->setCellValue('U' . $row, $sumGalonMiniZona);
        $sheet->setCellValue('V' . $row, $sumImplementoZona);
        $sheet->setCellValue('W' . $row, $sumRoticultorZona);
        $sheet->setCellValue('X' . $row, $sumRoticultorFZona);
        $sheet->setCellValue('Y' . $row, $sumCarreteraZona);
        $sheet->setCellValue('Z' . $row, $sumRufaIZona);
        $sheet->setCellValue('AA' . $row, $sumRufaTZona);
        $sheet->setCellValue('AB' . $row, $sumComposteadoraZona);
        $sheet->setCellValue('AC' . $row, $sumAireadorZona);
        $sheet->setCellValue('AD' . $row, $sumRedZona);
        $sheet->setCellValue('AE' . $row, $sumMotofumiZona);
        $sheet->setCellValue('AF' . $row, $sumClasificadorZona);
        $sheet->setCellValue('AG' . $row, $sumCaleadoraZona);
        $sheet->setCellValue('AH' . $row, $sumTrituradoraZona);
        $sheet->setCellValue('AI' . $row, $sumLaminaZona);
        $sheet->setCellValue('AJ' . $row, $sumRebobinadoraZona);

        // Define the color for the row
        $rowColor = 'add8e6'; // Change the color as desired (in this example, red)
      
        // Set the fill color for the entire row
        $sheet->getStyle('D' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
        $sheet->getStyle('D' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
        $sheet->getStyle('D' . $row . ':AJ' . $row)->getFont()->setBold(true);
        $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
        $sheet->setCellValue('D' . $row, 'TOTAL GRANJA');
        $lastRow = $row++;
        $sheet->mergeCells('D' . $lastRow . ':H' . $lastRow);
        $mergeEndRowZona = $row - 1;
        $sheet->mergeCells('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona);
        $sheet->getStyle('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
        $sheet->getStyle('C' . $mergeStartRowZona . ':C' . $mergeEndRowZona)->getFont()->setBold(true);
    }
    if ($mergeStartRowFecha !== null && $row - $mergeStartRowFecha > 0) {
    	$sheet->insertNewRowBefore($row);
        // Combinar toda la fila
        $sheet->setCellValue('I' . $row, $sumDotacionFecha);
        $sheet->setCellValue('J' . $row, $sumOperarioFecha);
        $sheet->setCellValue('K' . $row, $sumTractoristaFecha);
        $sheet->setCellValue('L' . $row, $sumProgramaDFecha);
        $sheet->setCellValue('M' . $row, $sumTractor75Fecha);
        $sheet->setCellValue('N' . $row, $sumTractor95Fecha);
        $sheet->setCellValue('O' . $row, $sumTractor110Fecha);
        $sheet->setCellValue('P' . $row, $sumMinitractorFecha); 
        $sheet->setCellValue('Q' . $row, $sumTractorCFecha);
        $sheet->setCellValue('R' . $row, $sumGalon75Fecha);
        $sheet->setCellValue('S' . $row, $sumGalon95Fecha);
        $sheet->setCellValue('T' . $row, $sumGalon110Fecha);
        $sheet->setCellValue('U' . $row, $sumGalonMiniFecha);
        $sheet->setCellValue('V' . $row, $sumImplementoFecha);
        $sheet->setCellValue('W' . $row, $sumRoticultorFecha);
        $sheet->setCellValue('X' . $row, $sumRoticultorFFecha);
        $sheet->setCellValue('Y' . $row, $sumCarreteraFecha);
        $sheet->setCellValue('Z' . $row, $sumRufaIFecha);
        $sheet->setCellValue('AA' . $row, $sumRufaTFecha);
        $sheet->setCellValue('AB' . $row, $sumComposteadoraFecha);
        $sheet->setCellValue('AC' . $row, $sumAireadorFecha);
        $sheet->setCellValue('AD' . $row, $sumRedFecha);
        $sheet->setCellValue('AE' . $row, $sumMotofumiFecha); 
        $sheet->setCellValue('AF' . $row, $sumClasificadorFecha);
        $sheet->setCellValue('AG' . $row, $sumCaleadoraFecha);
        $sheet->setCellValue('AH' . $row, $sumTrituradoraFecha);
        $sheet->setCellValue('AI' . $row, $sumLaminaFecha);
        $sheet->setCellValue('AJ' . $row, $sumRebobinadoraFecha);
         
        // Define the color for the row
        $rowColor = '5f9ea0'; // Change the color as desired (in this example, red)
      
        // Set the fill color for the entire row
        $sheet->getStyle('C' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
        $sheet->getStyle('C' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
        $sheet->getStyle('C' . $row . ':AJ' . $row)->getFont()->setBold(true);
        $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
        $sheet->setCellValue('C' . $row, 'TOTAL FECHA');
        $lastRow = $row++;
        $sheet->mergeCells('C' . $lastRow . ':H' . $lastRow);
        $mergeEndRowFecha = $row - 1;
        $sheet->mergeCells('B' . $mergeStartRowFecha . ':B' . $mergeEndRowFecha);
        $sheet->getStyle('B' . $mergeStartRowFecha . ':B' . $mergeEndRowFecha)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
        $sheet->getStyle('B' . $mergeStartRowFecha . ':B' . $mergeEndRowFecha)->getFont()->setBold(true);
    }
    // Combinar las celdas para el último año y mes si hay datos
    if ($mergeStartRowSemana !== null && $row - $mergeStartRowSemana > 0) {
    	$sheet->insertNewRowBefore($row);
        // Combinar toda la fila
        $sheet->setCellValue('I' . $row, $sumDotacionSemana);
        $sheet->setCellValue('J' . $row, $sumOperarioSemana);
        $sheet->setCellValue('K' . $row, $sumTractoristaSemana);
        $sheet->setCellValue('L' . $row, $sumProgramaDSemana);
        $sheet->setCellValue('M' . $row, $sumTractor75Semana);
        $sheet->setCellValue('N' . $row, $sumTractor95Semana);
        $sheet->setCellValue('O' . $row, $sumTractor110Semana);
        $sheet->setCellValue('P' . $row, $sumMinitractorSemana); 
        $sheet->setCellValue('Q' . $row, $sumTractorCSemana);
        $sheet->setCellValue('R' . $row, $sumGalon75Semana);
        $sheet->setCellValue('S' . $row, $sumGalon95Semana);
        $sheet->setCellValue('T' . $row, $sumGalon110Semana);
        $sheet->setCellValue('U' . $row, $sumGalonMiniSemana);
        $sheet->setCellValue('V' . $row, $sumImplementoSemana);
        $sheet->setCellValue('W' . $row, $sumRoticultorSemana);
        $sheet->setCellValue('X' . $row, $sumRoticultorFSemana);
        $sheet->setCellValue('Y' . $row, $sumCarreteraSemana);
        $sheet->setCellValue('Z' . $row, $sumRufaISemana);
        $sheet->setCellValue('AA' . $row, $sumRufaTSemana);
        $sheet->setCellValue('AB' . $row, $sumComposteadoraSemana);
        $sheet->setCellValue('AC' . $row, $sumAireadorSemana);
        $sheet->setCellValue('AD' . $row, $sumRedSemana);
        $sheet->setCellValue('AE' . $row, $sumMotofumiSemana);
        $sheet->setCellValue('AF' . $row, $sumClasificadorSemana);
        $sheet->setCellValue('AG' . $row, $sumCaleadoraSemana);
        $sheet->setCellValue('AH' . $row, $sumTrituradoraSemana);
        $sheet->setCellValue('AI' . $row, $sumLaminaSemana);
        $sheet->setCellValue('AJ' . $row, $sumRebobinadoraSemana);
      
        
        // Define the color for the row
        $rowColor = '008080'; // Change the color as desired (in this example, red)
      
        // Set the fill color for the entire row
        $sheet->getStyle('B' . $row . ':AJ' . $row)->getNumberFormat()->setFormatCode("#,##0");
        $sheet->getStyle('B' . $row . ':AJ' . $row)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
        $sheet->getStyle('B' . $row . ':AJ' . $row)->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF
        $sheet->getStyle('Q' . $row . ':T' . $row)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_NUMBER_00);
        $sheet->setCellValue('B' . $row, 'TOTAL SEMANA');
        $lastRow = $row++;
        $sheet->mergeCells('B' . $lastRow . ':H' . $lastRow); 
        // Agregar la suma de Galpon al final del grupo de Año
        $mergeEndRowSemana = $row - 1;
        $sheet->mergeCells('A' . $mergeStartRowSemana . ':A' . $mergeEndRowSemana);
        $sheet->getStyle('A' . $mergeStartRowSemana . ':A' . $mergeEndRowSemana)->getFill()->setFillType(Fill::FILL_SOLID)->getStartColor()->setARGB($rowColor);
        $sheet->getStyle('A' . $mergeStartRowSemana . ':A' . $mergeEndRowSemana)->getFont()->setBold(true)->getColor()->setRGB('FFFFFF'); // Establece el color en blanco (código RGB hexadecimal para blanco: FFFFFF)
    }


    

    // Centrar el texto en las celdas combinadas (horizontal y vertical)
    $style = $sheet->getStyle('A2:AJ' . ($row - 1));
    $style->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
    $style->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);

    // AJustar el ancho de las columnas automáticamente
    $startColumn = 'A';
    $endColumn = 'AJ';

    $startIndex = Coordinate::columnIndexFromString($startColumn);
    $endIndex = Coordinate::columnIndexFromString($endColumn);

    for ($columnIndex = $startIndex; $columnIndex <= $endIndex; $columnIndex++) {
        $column = Coordinate::stringFromColumnIndex($columnIndex);
        $sheet->getColumnDimension($column)->setAutoSize(true);
    }

    // AJustar el ancho de las columnas automáticamente
    foreach (range('A', 'AJ') as $column) {
        $sheet->getColumnDimension($column)->setAutoSize(true);
    }

      $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($documento, 'Xlsx');

      $file_name = 'RptGrjProgramacion';

      $writer->save($file_name);

      header('Content-Type: application/x-www-form-urlencoded');

      header('Content-Transfer-Encoding: Binary');

      header("Content-disposition: attachment; filename=\"".$file_name.".xlsx\"");

      readfile($file_name);

      unlink($file_name);
      

      $session->msg("s", "Se Creo el reporte");
      redirect('../granjasprograma.php',false);
      exit;

    } else {

      $session->msg("d", "No se seleccionaron opciones");
       echo display_msg($msg);
       redirect('../granjasprograma.php',false);
    }



?>



