<?php
class reporte_model{

    private $db;
    private $consulta;
    private $listado;

    public function __construct(){
        $this->db=database::conexion();
        $this->listado=array();
    }

    public function get_reporte_excel($productos,$trabajadores){
        error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING);
        require_once("./model/phpExcel/PHPExcel.php");
        require_once("./model/gestion_model.php");
        date_default_timezone_set("America/Lima");
        $fecha_hoy = date("Y-m-d");

        $this->listado = "";

        /* while($filas=$consulta->fetch_assoc()){
            $this->listado[]=$filas;
        } */
        date_default_timezone_set("America/Lima");
        $Fecha_Reporte = date('dmY');
        $Nombre = "./reportes/reporte".$Fecha_Reporte.".xls";

        PHPExcel_Cell::setValueBinder( new PHPExcel_Cell_AdvancedValueBinder() );

        $objPHPExcel = new PHPExcel();
        $objPHPExcel->getProperties()->setCreator("BIO SAC")
            ->setLastModifiedBy("BIO SAC")
            ->setTitle("REPORTE")
            ->setSubject("REPORTE")
            ->setDescription("REPORTE")
            ->setKeywords("REPORTE BIO SAC")
            ->setCategory("REPORTES BIO SAC");

        $objPHPExcel->getDefaultStyle()->getFont()->setName('Calibri')->setSize(11);


        $objPHPExcel->getActiveSheet()->setCellValue('A1', 'MOVIMIENTO');
        $objPHPExcel->getActiveSheet()->setCellValue('B1', 'SKU');
        $objPHPExcel->getActiveSheet()->setCellValue('C1', 'PRODUCTO');
        $objPHPExcel->getActiveSheet()->setCellValue('D1', 'CANTIDAD');
        $objPHPExcel->getActiveSheet()->setCellValue('E1', 'SERIE');
        $objPHPExcel->getActiveSheet()->setCellValue('F1', 'ALMACEN ORIGEN');
        $objPHPExcel->getActiveSheet()->setCellValue('G1', 'ALMACEN DESTINO');
        $objPHPExcel->getActiveSheet()->setCellValue('H1', 'DOCUMENTO IDENTIDAD TECNICO ORIGEN');
        $objPHPExcel->getActiveSheet()->setCellValue('I1', 'NOMBRE TECNICO ORIGEN');
        $objPHPExcel->getActiveSheet()->setCellValue('J1', 'DOCUMENTO IDENTIDAD TECNICO DESTINO');
        $objPHPExcel->getActiveSheet()->setCellValue('K1', 'NOMBRE TECNICO DESTINO');
        $objPHPExcel->getActiveSheet()->setCellValue('L1', 'FECHA');
        $objPHPExcel->getActiveSheet()->setCellValue('M1', 'CODIGO CLIENTE');
        $objPHPExcel->getActiveSheet()->setCellValue('N1', 'ORDEN DE TRABAJO');
        $objPHPExcel->getActiveSheet()->setCellValue('O1', 'NRO DOCUMENTO');
        $objPHPExcel->getActiveSheet()->setCellValue('P1', 'CONTRATA');

        $columnas = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P');

        foreach ( $columnas as $dato ):
            $objPHPExcel->getActiveSheet()->getstyle($dato.'1')->getFont()->getcolor()->setRGB('FFFFF');
            $objPHPExcel->getActiveSheet()->getstyle($dato.'1')->applyFromArray(
                array(
                    'fill' => array(
                        'type' => PHPExcel_Style_Fill::FILL_SOLID,
                        'color' => array('rgb' => '666699')
                    )
                )
            );
            $objPHPExcel->getActiveSheet()->getColumnDimension($dato)->setAutoSize(true);
        endforeach;

        $Fila = 2;


        foreach ( $productos as $producto ){
                

            $objPHPExcel->getActiveSheet()->setCellValueExplicit('A'.$Fila, $producto['descripcion']);
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('B'.$Fila, $producto['sku_cliente']);
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('C'.$Fila, $producto['nombre_producto']);
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('D'.$Fila, $producto['cantidad']);
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('E'.$Fila, $producto['serie']);
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('F'.$Fila, $producto['almacen_origen']);
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('G'.$Fila, $producto['almacen_destino']);
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('H'.$Fila, $producto['tecnico_origen']);
            if($producto['tecnico_origen'] == '' || $producto['tecnico_origen'] == ' ' || $producto['tecnico_origen'] == null || empty($producto['tecnico_origen']) || !isset($producto['tecnico_origen']) ){
                $objPHPExcel->getActiveSheet()->setCellValueExplicit('I'.$Fila, '');
            }else{
                $found_key="";
                $found_key = array_search($producto['tecnico_origen'], array_column($trabajadores, 'DOCIDEN'));
                $objPHPExcel->getActiveSheet()->setCellValueExplicit('I'.$Fila, $trabajadores[$found_key]['NOMBRES']);
            }
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('J'.$Fila, $producto['tecnico_destino']);
            if($producto['tecnico_destino'] == '' || $producto['tecnico_destino'] == ' ' || $producto['tecnico_destino'] == null || empty($producto['tecnico_destino']) || !isset($producto['tecnico_destino']) ){
                $objPHPExcel->getActiveSheet()->setCellValueExplicit('K'.$Fila, '');
            }else{
                $found_key="";
                $found_key = array_search($producto['tecnico_destino'], array_column($trabajadores, 'DOCIDEN'));
                $objPHPExcel->getActiveSheet()->setCellValueExplicit('K'.$Fila, $trabajadores[$found_key]['NOMBRES']);
            }
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('L'.$Fila, date_format($producto['fecha_creacion'], 'Y-m-d H:i'));
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('M'.$Fila, $producto['codigo']);
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('N'.$Fila, $producto['orden']);
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('O'.$Fila, $producto['nro_documento']);
            $objPHPExcel->getActiveSheet()->setCellValueExplicit('P'.$Fila, $producto['contrata']);
            $Fila++; 
        }
        $objPHPExcel->getActiveSheet()->getStyle('V2:V'.$Fila)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00);
        $objPHPExcel->getActiveSheet()->getStyle('X2:X'.$Fila)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00);
        $objPHPExcel->getActiveSheet()->setTitle('REPORTE_BIO');
        $objPHPExcel->setActiveSheetIndex(0);
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $objWriter->save($Nombre);
        return $Nombre;
    }

    public function DescargarArchivo($productos,$trabajadores){
        $fichero = $this->get_reporte_excel($productos,$trabajadores);
        /* $basefichero = basename($fichero);
        header("Content-Type: application/octet-stream");
        header("Content-Length: ".filesize($fichero));
        header("Content-Disposition:attachment;filename=".$basefichero.""); */
        $arch = $fichero;     
        return $arch;
    }
}