<?php
session_start();
require_once('../../conexion.php');
require_once('../../include/sesiones.php');
// Declaramos la librería
require  ('vendor/autoload.php');

$cliente=$_GET['cliente'];

$cel=3;//Numero de fila donde empezara a crear  el reporte

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spread = new Spreadsheet();

$sheet = $spread->getActiveSheet();
$sheet->getStyle('A:Z')->getAlignment()->setHorizontal('center');/* centar contenido de celdas */
$sheet->mergeCells('A1:J1')->mergeCells('A2:J2');/*combinas celdas*/

function cellColor($cells,$color)/* FUNSION PARA COLORES DE CELDA*/
{
    global $sheet;

    $sheet->getStyle($cells)->getFill()
    ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)
    ->getStartColor()
    ->setARGB($color);
}

cellColor('A2:J2', 'BDBDBD'); 
cellColor('A1:J1', 'BDBDBD'); 
cellColor('A3:J3', 'FF4D00'); 
if($cliente==0)
{

$sheet->setCellValue('A1', 'REPORTE VENTAS CXC')
            ->setCellValue('A2', 'DESDE '.$desde.' HASTA '.$hasta);

            //Ancho de las columnas
$sheet->getColumnDimension('A')->setWidth(20);   
$sheet->getColumnDimension('B')->setWidth(20);  
$sheet->getColumnDimension('C')->setWidth(20); 
$sheet->getColumnDimension('D')->setWidth(20); 
$sheet->getColumnDimension('E')->setWidth(20);
$sheet->getColumnDimension('F')->setWidth(20);
$sheet->getColumnDimension('G')->setWidth(20);
$sheet->getColumnDimension('H')->setWidth(20);
$sheet->getColumnDimension('I')->setWidth(20);
$sheet->getColumnDimension('J')->setWidth(20);



$hasta1 = strtotime($hasta."+ 1 days");
date("Y-m-d",$hasta1) . "\n";
$hastaf=date("Y-m-d",$hasta1) . "\n";


$query=mysqli_query($con,"SELECT * FROM ventas where sucursal='$sucursal' and empresa='$empresa' and ven_estado='sin pagar' group by cliente_clie_id ") or die(mysqli_error($con));
    $TOTAL_TODO=0;
    while ($roww=mysqli_fetch_array($query))    
    {


            $a="A".$cel;
            $b="B".$cel;
            $c="C".$cel;
            $d="D".$cel;
            $e="E".$cel;
            $f="F".$cel;
            $g="G".$cel;
            $h="H".$cel;
            $i="I".$cel;
            $j="J".$cel;
           
            // Agregar datos
            $sheet
            ->setCellValue($a, 'CLIENTE')
            ->setCellValue($b, 'TELEFONO')
            ->setCellValue($c, 'FACTURA #')
            ->setCellValue($d, 'FECHA')
            ->setCellValue($e, 'FECHA VENCIMIENTO')
            ->setCellValue($f, 'DEMORA DÍAS')
            ->setCellValue($g, 'TOTAL')
            ->setCellValue($h, 'ABONO')
            ->setCellValue($i, 'DEVOLUCIÓN')
            ->setCellValue($j, 'SALDO');

            /* color a las celdas con funsion*/            
            cellColor('A'.$cel.':J'.$cel, 'FF4D00');

            $cel+=1;


        $total_cliente=0;
        $total_abonos=0;
        $total_saldo=0;
        $total_devoluciones=0;
        $cliente_clie_id=$roww['Cliente_clie_id'];
        $sumador_saldo=0;   
        $saldo_vencido=0;
        $registross=mysqli_query($con,"SELECT * FROM ventas where empresa='$empresa' and cliente_clie_id='$cliente_clie_id' and ven_estado='sin pagar' ") or die(mysqli_error($con));
        while ($reg=mysqli_fetch_array($registross))
        {
               $ven_id=$reg['ven_id'];
            $ven_fecha=$reg['ven_fecha'];
            $ven_dias=$reg['ven_dias'];

            $vence = strtotime($ven_fecha."+ ".$ven_dias." days");
            $vence_fecha=date("Y-m-d",$vence) . "\n";
            $fecha=date('Y-m-d ');

            $hasta=date("Y-m-d",$vence) . "\n";
            $hoy=$fecha;
            $dias = (strtotime($hasta)-strtotime($hoy))/86400;
            $dias = abs($dias);

            if ($hasta >= $hoy){ $dias = '-' .floor($dias);}
            else{ $dias = '+' .floor($dias); }

            $sumador_combo=0;
            $sumador_total=0;
            $neto=0;
            $total_descuento=0;
            $total_iva=0;
            $total_retencion=0;
            $sumador_articulos=0;

            $vencido=0;
            $ret=mysqli_query($con, "SELECT * FROM retencion_venta where ventas_ven_id='$ven_id'") or die(mysqli_error($con)); 
            $rets=mysqli_fetch_array($ret);
            if(isset($rets['porcentaje']))
            {
                $ret_porcentaje=$rets['porcentaje'];
            }
            else
            {
                $ret_porcentaje=0;
            }

            include('../../include/total_venta.php');

            $total_retencion+=($neto+$sumador_combo-$total_descuento)*($ret_porcentaje/100);
            $sumador_total=$sumador_articulos+$sumador_combo-$total_retencion;
            $total_cliente+=$sumador_total;
           
            //abono
          
            $sql=mysqli_query($con, "SELECT sum(veab_abono) as total from venta_abonos where ventas_ven_id='$ven_id' ");
            $sql=mysqli_fetch_array($sql);
            $total_abono=$sql['total'];

           

            $devo_total=0;
            $sql1=mysqli_query($con, "SELECT * from devolucion where empresa='$empresa' and ventas_ven_id='$ven_id'");
            while ($row=mysqli_fetch_array($sql1))
            {
                $dev_precio=$row['dev_precio'];
                $devo_total+=$dev_precio; 
            }

            $saldo_t=$sumador_total-$total_abono-$devo_total;
            if ($saldo_t<=0) 
            {
                $saldo='0';
            }
            else
            {
                $saldo=$saldo_t;
            }

            $ven_fecha=$reg['ven_fecha'];
            $ven_dias=$reg['ven_dias'];

            $vence = strtotime($ven_fecha."+ ".$ven_dias." days");
            date("Y-m-d",$vence) . "\n";
            $fecha=date('Y-m-d ');

            $hasta=date("Y-m-d",$vence) . "\n";
            $hoy=$fecha;
            $dias = (strtotime($hasta)-strtotime($hoy))/86400;
            $dias = abs($dias);

            if($hasta >= $hoy)
            {
                $dias = '-' .floor($dias);
            }
            else
            {
                $dias = '+' .floor($dias);
                $vencido+=$saldo;
            }



            $saldo=($sumador_total-$total_abono)-$devo_total;
            $total_abonos+=$total_abono;
            $total_saldo+=$saldo;


                $a="A".$cel;
                $b="B".$cel;
                $c="C".$cel;
                $d="D".$cel;
                $e="E".$cel;
                $f="F".$cel;
                $g="G".$cel;
                $h="H".$cel;
                $i="I".$cel;
                $j="J".$cel;
               
               
                // Agregar datos
                $sheet
                ->setCellValue($a, $roww['ven_nombre'])
                ->setCellValue($b, $roww['ven_telefono'])
                ->setCellValue($c, $reg['ven_n_venta'])
                ->setCellValue($d, $reg['ven_fecha'])
                ->setCellValue($e, $vence_fecha)
                ->setCellValue($f, $dias)
                ->setCellValue($g, number_format($sumador_total,0))
                ->setCellValue($h, number_format($total_abono,0))
                ->setCellValue($i, number_format($devo_total,0))
                ->setCellValue($j, number_format($saldo,0));
                
                 $cel+=1;
            
            $sumador_saldo+=$saldo;
            $saldo_vencido+= $vencido;
        }

        $g="G".$cel;
        $h="H".$cel;
        $i="I".$cel;
        $j="J".$cel;
       
        // Agregar datos
        $sheet->mergeCells("A".($cel).":G".($cel))
        ->setCellValue($g, number_format($total_cliente,0))
        ->setCellValue($h, number_format($total_abonos,0))
        ->setCellValue($i, number_format($total_devoluciones,0))
        ->setCellValue($j, number_format($total_saldo,0));

        cellColor('H'.$cel.':J'.$cel, 'BDBDBD');
        $cel+=1;

        if ($saldo_vencido>0)
        { 
                   
            $i="I".$cel;
            $j="J".$cel;           
            // Agregar datos
            $sheet->mergeCells("A".($cel).":H".($cel))
            ->setCellValue($i, 'CARTERA VENCIDA')
            ->setCellValue($j, number_format($saldo_vencido,0));
            
            cellColor('I'.$cel.':J'.$cel, 'FF0000');    
              
            $cel+=1;
          
        }
        
        $TOTAL_TODO+=$total_saldo;
        
}


    $h="H".$cel;
    $i="I".$cel;
      // Agregar datos
    $sheet->mergeCells("A".($cel).":I".($cel))
    ->setCellValue($h, '')
    ->setCellValue($i, '');


    cellColor('a'.$cel.':I'.$cel, 'FFFFFF');
    $cel+=1;

    $j="J".$cel;
    $i="I".$cel;
      // Agregar datos
    $sheet->mergeCells("A".($cel).":H".($cel))
    ->setCellValue($i, 'TOTAL GENERAL')
    ->setCellValue($j, number_format($TOTAL_TODO));


    cellColor('A'.$cel.':J'.$cel, 'BFBFBF');


  
}

else
{


$sheet->setCellValue('A1', 'REPORTE VENTAS CXC');
           

            //Ancho de las columnas
$sheet->getColumnDimension('A')->setWidth(20);   
$sheet->getColumnDimension('B')->setWidth(20);  
$sheet->getColumnDimension('C')->setWidth(20); 
$sheet->getColumnDimension('D')->setWidth(20); 
$sheet->getColumnDimension('E')->setWidth(20);
$sheet->getColumnDimension('F')->setWidth(20);
$sheet->getColumnDimension('G')->setWidth(20);
$sheet->getColumnDimension('H')->setWidth(20);
$sheet->getColumnDimension('I')->setWidth(20);



   $query=mysqli_query($con,"SELECT * FROM ventas where empresa='$empresa' and ven_estado='sin pagar' AND cliente_clie_id='$cliente'") or die(mysqli_error($con));
    $roww=mysqli_fetch_array($query);

            $a="A".$cel;
            $b="B".$cel;
            $c="C".$cel;
            $d="D".$cel;
            $e="E".$cel;
            $f="F".$cel;
            $g="G".$cel;
            $h="H".$cel;
            $i="I".$cel;
            
            // Agregar datos
            $sheet
            ->setCellValue($a, 'CLIENTE')
            ->setCellValue($b, 'TELEFONO')
            ->setCellValue($c, 'FACTURA #')
            ->setCellValue($d, 'FECHA')
            ->setCellValue($e, 'VENCE')
            ->setCellValue($f, 'TOTAL')
            ->setCellValue($g, 'ABONO')
            ->setCellValue($h, 'DEVOLUCIÓN')
            ->setCellValue($i, 'SALDO');

            /* color a las celdas con funsion*/            
            cellColor('A'.$cel.':I'.$cel, 'FF4D00');

            $cel+=1;   

    $cliente_clie_id=$roww['Cliente_clie_id'];
    $sumador_saldo=0;   
    $saldo_vencido=0;

    $registross=mysqli_query($con,"SELECT * FROM ventas where empresa='$empresa' and cliente_clie_id='$cliente_clie_id' and ven_estado='sin pagar' ") or die(mysqli_error($con));
    while ($reg=mysqli_fetch_array($registross))
    { 
        $ven_id=$reg['ven_id'];            
        
        $sumador_combo=0;
        $sumador_total=0;
        $neto=0;
        $total_descuento=0;
        $total_iva=0;
        $total_retencion=0;
        $sumador_articulos=0;

        $vencido=0;

        $ret=mysqli_query($con, "SELECT * FROM retencion_venta where ventas_ven_id='$ven_id'") or die(mysqli_error($con)); 
        $rets=mysqli_fetch_array($ret);
        if(isset($rets['porcentaje']))
        {
            $ret_porcentaje=$rets['porcentaje'];
        }
        else
        {
            $ret_porcentaje=0;
        }

        include('../../include/total_venta.php');

        $total_retencion+=($neto+$sumador_combo-$total_descuento)*($ret_porcentaje/100);
        $sumador_total=$sumador_articulos+$sumador_combo-$total_retencion;

        $sql=mysqli_query($con, "SELECT sum(veab_abono) as total from venta_abonos where ventas_ven_id='$ven_id' ");
        $sql=mysqli_fetch_array($sql);
        $total_abono=$sql['total'];

        $devo_total=0;
        $sql1=mysqli_query($con, "SELECT * from devolucion where empresa='$empresa' and ventas_ven_id='$ven_id'");
        while ($row=mysqli_fetch_array($sql1))
        {
            $dev_precio=$row['dev_precio'];
            $devo_total+=$dev_precio; 
        }

        $saldo_t=$sumador_total-$total_abono-$devo_total;
        if ($saldo_t<=0) 
        {
            $saldo='0';
        }
        else
        {
            $saldo=$saldo_t;
        }

        $ven_fecha=$reg['ven_fecha'];
        $ven_dias=$reg['ven_dias'];

        $vence = strtotime($ven_fecha."+ ".$ven_dias." days");
        date("Y-m-d",$vence) . "\n";
        $fecha=date('Y-m-d ');

        $hasta=date("Y-m-d",$vence) . "\n";
        $hoy=$fecha;
        $dias = (strtotime($hasta)-strtotime($hoy))/86400;
        $dias = abs($dias);

        if($hasta >= $hoy)
        {
            $dias = '-' .floor($dias);
        }
        else
        {
            $dias = '+' .floor($dias);
            $vencido+=$saldo;
        }

        $a="A".$cel;
        $b="B".$cel;
        $c="C".$cel;
        $d="D".$cel;
        $e="E".$cel;
        $f="F".$cel;
        $g="G".$cel;
        $h="H".$cel;
        $i="I".$cel;
       
        // Agregar datos
        $sheet
        ->setCellValue($a, $roww['ven_nombre'])
        ->setCellValue($b, $roww['ven_telefono'])
        ->setCellValue($c, $reg['ven_n_venta'])
        ->setCellValue($d, $reg['ven_fecha'])
        ->setCellValue($e, $dias)
        ->setCellValue($f, number_format($sumador_total,0))
        ->setCellValue($g, number_format($total_abono,0))
        ->setCellValue($h, number_format($devo_total,0))
        ->setCellValue($i, number_format($saldo,0));
        
        
         $cel+=1;
       
        $sumador_saldo+=$saldo;
        $saldo_vencido+= $vencido;
    }


        $i="I".$cel;
        $h="H".$cel;
        // Agregar datos
        $sheet->mergeCells("A".($cel).":G".($cel))
        ->setCellValue($h, 'CARTERA VENCIDA')
        ->setCellValue($i, number_format($saldo_vencido,0));

        cellColor('H'.$cel.':I'.$cel, 'FF0000');
        $cel+=1;
        
        $i="I".$cel;
        $h="H".$cel;
        // Agregar datos
        $sheet->mergeCells("A".($cel).":G".($cel))
        ->setCellValue($h, 'CARTERA POR VENCER')
        ->setCellValue($i, number_format($sumador_saldo-$saldo_vencido,0));

        cellColor('H'.$cel.':I'.$cel, 'FFFFFF');
        $cel+=1;

        $h="H".$cel;
        $i="I".$cel;
     
        // Agregar datos
        $sheet->mergeCells("A".($cel).":G".($cel))
        ->setCellValue($h,'TOTAL')
        ->setCellValue($i, number_format($sumador_saldo,0));

         cellColor('H'.$cel.':I'.$cel, 'FF9059');
     

}


// Redirigir la salida al navegador web de un cliente ( Excel5 )
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="REPORTE VENTAS DETALLADAS.xlsx"');
header('Cache-Control: max-age=0');
// Si usted está sirviendo a IE 9 , a continuación, puede ser necesaria la siguiente
header('Cache-Control: max-age=1');

$writer = new Xlsx($spread);
$writer->save('php://output');
exit;
/*
$fileName="Descarga_excel.xlsx";
# Crear un "escritor"
$writer = new Xlsx($spread);
# Le pasamos la ruta de guardado

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="'. urlencode($fileName).'"');
$writer->save('php://output');
?>*/
?>