<?php

namespace App\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Http\Request;

use DateTime; 
use App\Custom\Misc;
use App\Custom\SQLConnection;
use DB;
use stdClass;
use Session;



class ImperiumController extends Controller {

	
	public static function graficoComplianceGeneral(Request $req) {
		$contratista = $req->contratista;
		$compliance = SQLConnection::backendStoreProcedure('Imperium_contratista_Cumplimiento_General', array($contratista), 'selectOne');
		return json_encode( array('en_cumplimiento' => !empty($compliance) ? $compliance->cumplimiento : 0,  'sin_cumplimiento' => !empty($compliance) ? 100-$compliance->cumplimiento : 100) );
	}

	public static function graficoCumplimientoMensual(Request $req) {
		$contratista = $req->contratista;

		$mes['E'] = 0;
		$mes['R'] = 0;
		$mes['P'] = 0;
		$mes['N'] = 0;
		$mes['I'] = 0;
		$mes['V'] = 0;

		$hoy = date_create_from_format('!Y-m-d', date('Y-m-d'));
		$ini = date_add($hoy, date_interval_create_from_date_string('-1 year'));
		
		for($x = 0; $x < 12; $x++) {
			$per = date_format( date_add(  date_add( date_create_from_format('!Y-m-d', date('Y-m-d')) , date_interval_create_from_date_string('-1 year'))  , date_interval_create_from_date_string($x . ' month') ) , 'Ym');
			$lbl = date_format( date_add(  date_add( date_create_from_format('!Y-m-d', date('Y-m-d')) , date_interval_create_from_date_string('-1 year'))  , date_interval_create_from_date_string($x . ' month') ) , 'm/Y');
			$data[] = array('periodo' => $per, 'docs' => $mes , 'label' => $lbl );
		
		}
		$hay = 'NO'; 
		$compliance = SQLConnection::backendStoreProcedure('Imperium_vista_contratista_Cumplimiento_Mensual', array($contratista), 'select');
		foreach ($compliance as $cump) {
			$hay = 'SI'; 
			$pp = $cump->periodo;
			foreach ($data as $k => $gmo) {
				if ($gmo['periodo'] == $pp) {
					$data[$k]['docs'][$cump->estado_doc] = $cump->cantidad;
					break;
				}
			}		
		}

		return json_encode( array('cumplimiento' => $data, 'hay' => $hay) );
	}

	public static function graficoCumplimientoMensualTodos(Request $req) {

		$cliente = Session::get('usuario')->cliente['client_id'];	

		$mes['E'] = 0;
		$mes['R'] = 0;
		$mes['P'] = 0;
		$mes['N'] = 0;
		$mes['I'] = 0;
		$mes['V'] = 0;

		$hoy = date_create_from_format('!Y-m-d', date('Y-m-d'));
		$ini = date_add($hoy, date_interval_create_from_date_string('-1 year'));
		
		for($x = 0; $x < 12; $x++) {
			$per = date_format( date_add(  date_add( date_create_from_format('!Y-m-d', date('Y-m-d')) , date_interval_create_from_date_string('-1 year'))  , date_interval_create_from_date_string($x . ' month') ) , 'Ym');
			$lbl = date_format( date_add(  date_add( date_create_from_format('!Y-m-d', date('Y-m-d')) , date_interval_create_from_date_string('-1 year'))  , date_interval_create_from_date_string($x . ' month') ) , 'm/Y');
			$data[] = array('periodo' => $per, 'docs' => $mes , 'label' => $lbl );
		
		}
		$hay = 'NO'; 
		$compliance = SQLConnection::backendStoreProcedure('Imperium_vista_contratista_Cumplimiento_Mensual_Todos', array(null,$cliente), 'select');
		foreach ($compliance as $cump) {
			$hay = 'SI'; 
			$pp = $cump->periodo;
			foreach ($data as $k => $gmo) {
				if ($gmo['periodo'] == $pp) {
					$data[$k]['docs'][$cump->estado_doc] = $cump->cantidad;
					break;
				}
			}		
		}

		return json_encode( array('cumplimiento' => $data, 'hay' => $hay));
	}


    public static function docImperium(Request $req) {
        $contraparte = $req->contraparte;
        $contratista = $req->contratista;
        $cliente = $req->cliente;
		/*
        if ($contratista == null)
        	{
        		$contratistas = SQLConnection::backendStoreProcedure('Imperium_cliente_contraparte_led', array('buscar_contratista_imperium', $contraparte, $cliente), 'selectOne');
        		$contratista = $contratistas->contratista;
        	}
        */
        if (!empty($contratista)) {
            return view('/imperium/doc_imperium')->with(compact(['contraparte','contratista','cliente']));
        }
    }

    public static function docImperiumData(Request $req) {
        $contraparte = $req->contraparte;
        $contratista = $req->contratista;
        $cliente = $req->cliente;

		$estados[0]['cls'] = 'text-rechazados';
		$estados[0]['info'] ='fa-exclamation-circle text-rechazados';
		$estados[0]['val'] = '<i class=fa fa-exclamation-circle text-rechazados fa-2x></i>';
		$estados[0]['status_doc'] = 'R';
		$estados[0]['leyenda'] = 'Rechazados';
		$estados[0]['cant'] = 0;

		$estados[1]['cls'] = 'text-vencidos';
		$estados[1]['info'] = 'fa-warning text-vencidos';
		$estados[1]['val'] = '<i class=fa fa-warning text-vencidos fa-2x></i>';
		$estados[1]['status_doc'] = 'E';
		$estados[1]['leyenda'] = 'Vencidos';
		$estados[1]['cant'] = 0;

		$estados[2]['cls'] = 'text-parciales';
		$estados[2]['info'] = 'fa-exclamation text-parciales';
		$estados[2]['val'] = '<i class=fa fa-exclamation text-parciales fa-2x></i>';
		$estados[2]['status_doc'] = 'P';
		$estados[2]['leyenda'] = 'Parciales';
		$estados[2]['cant'] = 0;
		
		$estados[3]['cls'] = 'text-pendientes';
		$estados[3]['info'] = 'fa-cloud-upload text-pendientes';
		$estados[3]['val'] = '<i class=fa fa-cloud-upload text-pendientes fa-2x></i>';
		$estados[3]['status_doc'] = 'N';
		$estados[3]['leyenda'] = 'Pendientes';
		$estados[3]['cant'] = 0;
		
		$estados[4]['cls'] = 'text-ingresados';
		$estados[4]['info'] = 'fa-pause text-ingresados';
		$estados[4]['val'] = '<i class=fa fa-pause text-ingresados fa-2x></i>';
		$estados[4]['status_doc'] = 'I';
		$estados[4]['leyenda'] = 'Ingresados';
		$estados[4]['cant'] = 0;
		
		$estados[5]['cls'] = 'text-verificados';
		$estados[5]['info'] = 'fa-check text-verificados'; 
		$estados[5]['val'] = '<i class=fa fa-check text-verificados fa-2x></i>';
		$estados[5]['status_doc'] = 'V';
		$estados[5]['leyenda'] = 'Verificados';
		$estados[5]['cant'] = 0;
		
		$empresas = SQLConnection::backendStoreProcedure('Imperium_contratista_admin_documentos', array($contratista, 'empresas'), 'select');

		$secciones[0]['icono'] = '<i class="fa fa-industry fa-2x"></i>';
		$secciones[0]['cls'] = 'fa-industry';
		$secciones[0]['seccion'] = 'C';
		$secciones[0]['leyenda'] = 'Contratista';
		$secciones[0]['cant'] = 0;


		$secciones[1]['icono'] = '<i class="fa fa-user fa-2x"></i>';
		$secciones[1]['cls'] = 'fa-user';
		$secciones[1]['seccion'] = 'E';
		$secciones[1]['leyenda'] = 'Empleados';
		$secciones[1]['cant'] = 0;

		$secciones[2]['icono'] = '<i class="fa fa-truck fa-2x"></i>';
		$secciones[2]['cls'] = 'fa-truck';
		$secciones[2]['seccion'] = 'V';
		$secciones[2]['cant'] = 0;
		$secciones[2]['leyenda'] = 'Vehículos';

		$periodos = SQLConnection::backendStoreProcedure('Imperium_contratista_admin_documentos', array($contratista, 'periodos'), 'select');

		$acceso[0]['acceso'] = 'NO';
		$acceso[0]['cant'] = 0;
		$acceso[1]['acceso'] = 'SI';
		$acceso[1]['cant'] = 0;

		$docs = SQLConnection::backendStoreProcedure('Imperium_contratista_admin_documentos', array($contratista), 'select');
		$tipos_doc = [];
		/* Eliminamos los estados, secciones y accesos que no tienen datos */
		foreach ($docs as $k => $doc) 
		{
			foreach ($estados as $k1 => $est) 
			{
				if ($estados[$k1]['status_doc'] == $doc->status_doc) 
					{ $estados[$k1]['cant'] += 1; }
			} 
			foreach ($secciones as $k2 => $sec) 
			{
				if ($secciones[$k2]['seccion'] == $doc->led_seccion) 
					{ $secciones[$k2]['cant'] += 1; }
			} 
			foreach ($acceso as $k3 => $asc) 
			{
				if ($acceso[$k3]['acceso'] == $doc->acceso) 
					{ $acceso[$k3]['cant'] += 1; }
			} 
			$tipos_doc[$k]['documento'] = $doc->nombre_tipo_doc;
		}
		$tipos_doc = array_map("unserialize", array_unique(array_map("serialize", $tipos_doc)));

		foreach ($estados as $k1 => $est) 
		{
			if ($estados[$k1]['cant'] == 0) 
				{ unset($estados[$k1]); }
		} 
		foreach ($secciones as $k2 => $sec) 
		{
			if ($secciones[$k2]['cant'] == 0) 
				{ unset($secciones[$k2]); }
		} 
		foreach ($acceso as $k3 => $asc) 
		{
			if ($acceso[$k3]['cant'] == 0) 
				{ unset($acceso[$k3]); }
		} 
		sort($tipos_doc);

		//var_dump($docs); die();
        return json_encode( array('estados' => $estados, 'empresas' => $empresas, 'secciones' => $secciones, 'periodos' => $periodos, 'acceso' => $acceso, 'values' => $docs, 'tipos_doc' => $tipos_doc) );

    }
	
	/////

	public static function documento(Request $req) {
        $contratista = $req->contratista;
        $periodo = $req->periodo;
        $tipo_doc = $req->tipo_doc;
        $doc_id = $req->doc_id;
		if ($doc_id > 0) {
			$vista = self::vistaDocumento($doc_id);
			return json_encode( array('vista' => $vista) );
		}
		elseif ($contratista > 0 AND $periodo > 0 AND $tipo_doc > 0) {
			/*$periodo_my = Misc::formatPeriodo($periodo, 'm/Y');
			$tipodoc = SQLConnection::backendStoreProcedure('Imperium_buscar_tipos_documento', array($tipo_doc), 'selectOne');
			$datos = SQLConnection::backendStoreProcedure('Imperium_buscar_contratistas', array('search', $contratista), 'selectOne');
			$docs = SQLConnection::backendStoreProcedure('Imperium_Datos_Documentos_Recursos', array($contratista, $periodo, $tipo_doc), 'select');
			$vista = \View::make('/documentos_recursos')->with(compact(['contratista', 'periodo_my', 'periodo', 'tipodoc', 'datos', 'docs']))->render();*/

			$vista = self::vistaDocumento(NULL, $contratista, $periodo, $tipo_doc);
			return json_encode( array('vista' => $vista) );
		}


	}


    public static function vistaDocumento($doc_id = NULL, $contratista = NULL, $periodo = NULL, $tipo_doc = NULL) {

		if (!empty($doc_id)) {
			$doc = SQLConnection::backendStoreProcedure('Imperium_Datos_Documento', array($doc_id), 'selectOne');

			/*$pdf_file = NULL;
			if ($doc->estado_doc != 'N') {
				$pdf_file = Misc::searchFile($doc_id);
			}

			// En caso que haya reemplazo
			$aux = NULL;
			$pdf_file_aux = NULL;
			$original = NULL; /// sería la versión anterior al reemplazo existente, no necesariamente la 0 (caso version > 1)
	
			if ($doc->prox_vencer > 0) {
				$aux = SQLConnection::backendStoreProcedure('Imperium_Datos_Documento_Reemplazo', array($doc_id, $doc->doc_version), 'selectOne');
				if (!empty($aux) and $aux->estado_doc != 'N') {
					$pdf_file_aux = Misc::searchFileAux($doc_id, $doc->doc_version);
				}
			}
			if ($doc->doc_version > 0) {
				$original = SQLConnection::backendStoreProcedure('Imperium_Datos_Documento_Reemplazo', array($doc_id, $doc->doc_version - 1), 'selectOne');
			}*/

			$aux = SQLConnection::backendStoreProcedure('Imperium_Datos_Documento_Reemplazo', array($doc_id, -1), 'select');
			$pdf_files = Misc::docUrls($doc_id);

			// Estado de ratificación de recursos por parte del contratista
			$ratif = SQLConnection::backendStoreProcedure('Imperium_contratista_Estado_Ratificacion', array($doc->contratista_1), 'selectOne');
			$periodo_vencido = Misc::periodoVencido();
			$periodo_fmt = Misc::periodoVencido('m-Y');
							
			//$vista = \View::make('/imperium/documento')->with(compact(['periodo_fmt', 'doc', 'pdf_file', 'aux', 'pdf_file_aux', 'original']))->render();
			$vista = \View::make('/imperium/documento')->with(compact(['periodo_fmt', 'doc', 'pdf_files', 'aux']))->render();

			return $vista;
		}
		elseif ($contratista > 0 AND $periodo > 0 AND $tipo_doc > 0) {

			// Estado de ratificación de recursos por parte del contratista
			$ratif = SQLConnection::backendStoreProcedure('Imperium_contratista_Estado_Ratificacion', array($contratista), 'selectOne');
			$periodo_vencido = Misc::periodoVencido();

			$periodo_my = Misc::formatPeriodo($periodo, 'm/Y');
			$tipodoc = SQLConnection::backendStoreProcedure('Imperium_buscar_tipos_documento', array($tipo_doc), 'selectOne');
			$datos = SQLConnection::backendStoreProcedure('Imperium_buscar_contratistas', array('search', $contratista,null,null,null,null,null), 'selectOne');
			$docs = SQLConnection::backendStoreProcedure('Imperium_Datos_Documentos_Recursos', array($contratista, $periodo, $tipo_doc), 'select');
			
			$vista = \View::make('/imperium/documentos_recursosf')->with(compact(['contratista', 'periodo_my', 'periodo', 'tipodoc', 'datos', 'docs']))->render();
			
			return $vista;
		}
	}


	public static function documentoRecursosTabla(Request $req) {
        $contratista = $req->contratista;
        $periodo = $req->periodo;
        $tipo_doc = $req->tipo_doc;

        var_dump($contratista); 
        var_dump($periodo); 
        var_dump($tipo_doc); 
die(); 
		$tipodoc = SQLConnection::backendStoreProcedure('Imperium_buscar_tipos_documento', array($tipo_doc), 'selectOne');
		$docs = SQLConnection::backendStoreProcedure('Imperium_Datos_Documentos_Recursos', array($contratista, $periodo, $tipo_doc), 'select');
		
		$tabla_docs = []; 

/*
		if ($tipodoc->led_seccion == 'E')
			{ 
				$titulo1 = 'Empleado';
				$titulo2 = 'CUIT';
			}
			else
			{
				$titulo1 = 'Vehículo';
				$titulo2 = 'Dominio';
			} 
			*/
				
		foreach ($docs as $key => $doc)
		{
			$tabla_docs[$key]['estado'] = $doc->estado_doc;
			$tabla_docs[$key]['vigencia'] = $doc->vigencia;
			$tabla_docs[$key]['texto_rechazo'] = $doc->texto_rechazo;
			if ($tipodoc->periodicidad != 'E') 
			{
				$tabla_docs[$key]['vigencia_hidden'] = true;
			}
			else 
			{
				$tabla_docs[$key]['vigencia_hidden'] = false;
			}

			if ($doc->prox_vencer == 1) 
			{
				$tabla_docs[$key]['prox_vencer'] = '<i class="fa fa-warning text-warning titilante"></i>';  
			}
			else
			{
				$tabla_docs[$key]['prox_vencer'] = '';  
			}

			if ($tipodoc->led_seccion == 'E')
			{ 
				$tabla_docs[$key]['nombre'] = $doc->nombre_persona;
				$tabla_docs[$key]['identificacion'] = $doc->identificacion;
			}
			else 
			{
				$tabla_docs[$key]['nombre'] = $doc->nombre_vehiculo; 
				$tabla_docs[$key]['identificacion'] = $doc->dominio;
			}

			if ($doc->prox_vencer == 0)
			{
                if ($doc->estado_doc != 'N') 
                    {
                    	$tabla_docs[$key]['doc'] = '<a style="cursor:pointer;" data-doc-id="' . $doc->doc_id .'" class="openpdfimperium" data-toggle="modal" data-target="#modalPdfImperium"><img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt="" title="El documento vence el ' . $doc->vigencia . '"></a>';
                    }
                    else
                    {
                    	$tabla_docs[$key]['doc'] = '<a style="cursor:pointer;" data-doc-id="' . $doc->doc_id .'" class="openpdfimperium" data-toggle="modal" data-target="#modalPdfImperium"><img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt="" title="Documento versión original - Vigencia: ' . $doc->vigencia . '"></a>';
                        if ($doc->doc_version > 0)                    
                        {
                         	$tabla_docs[$key]['doc'] .= '<a style="cursor:pointer;" data-doc-id="' . $doc->doc_id .'" data-doc-version="' . $doc->doc_version .'" class="opendocaux" data-toggle="modal" data-target="#modalPdfImperium">';
                            if ($doc->estado_doc == 'I')
                            {
                                $tabla_docs[$key]['doc'] .= '<img src="/images/PDF-pend.png" width="24" height="24" border="0" title="Documento de reemplazo pendiente de verificación.">';
                            }
                            else
                            {
                            	if ($doc->estado_doc == 'R')
                            	{
                                $tabla_docs[$key]['doc'] .= '<img src="/images/PDF-rech.png" width="24" height="24" border="0" title="Documento de reemplazo rechazado.">';
                            	}
                            }
                        $tabla_docs[$key]['doc'] .= '</a>';
                        }
                     }
                      
             }
		}

		//var_dump($tabla_docs); die();
		$tabla = \View::make('/imperium/documentos_recursos_tabla')->with(compact(['tipodoc','docs','tabla_docs']))->render();
		return json_encode( array('tabla_recursos'=>$tabla) );
	}


	public static function documentoRecursosTablaf(Request $req) {
        $contratista = $req->contratista;
        $periodo = $req->periodo;
        $tipo_doc = $req->tipo_doc;

		$tipodoc = SQLConnection::backendStoreProcedure('Imperium_buscar_tipos_documento', array($tipo_doc), 'selectOne');
		$docs = SQLConnection::backendStoreProcedure('Imperium_Datos_Documentos_Recursos', array($contratista, $periodo, $tipo_doc), 'select');
		$datos = SQLConnection::backendStoreProcedure('Imperium_buscar_contratistas', array('search', $contratista,null,null,null,null,null), 'selectOne');

		$estados[0]['cls'] = 'text-rechazados';
		$estados[0]['info'] ='fa-exclamation-circle text-rechazados';
		$estados[0]['val'] = '<i class=fa fa-exclamation-circle text-rechazados fa-2x></i>';
		$estados[0]['status_doc'] = 'R';
		$estados[0]['leyenda'] = 'Rechazados';
		$estados[0]['cant'] = 0;

		$estados[1]['cls'] = 'text-vencidos';
		$estados[1]['info'] = 'fa-warning text-vencidos';
		$estados[1]['val'] = '<i class=fa fa-warning text-vencidos fa-2x></i>';
		$estados[1]['status_doc'] = 'E';
		$estados[1]['leyenda'] = 'Vencidos';
		$estados[1]['cant'] = 0;

		$estados[2]['cls'] = 'text-parciales';
		$estados[2]['info'] = 'fa-exclamation text-parciales';
		$estados[2]['val'] = '<i class=fa fa-exclamation text-parciales fa-2x></i>';
		$estados[2]['status_doc'] = 'P';
		$estados[2]['leyenda'] = 'Parciales';
		$estados[2]['cant'] = 0;
		
		$estados[3]['cls'] = 'text-pendientes';
		$estados[3]['info'] = 'fa-cloud-upload text-pendientes';
		$estados[3]['val'] = '<i class=fa fa-cloud-upload text-pendientes fa-2x></i>';
		$estados[3]['status_doc'] = 'N';
		$estados[3]['leyenda'] = 'Pendientes';
		$estados[3]['cant'] = 0;
		
		$estados[4]['cls'] = 'text-ingresados';
		$estados[4]['info'] = 'fa-pause text-ingresados';
		$estados[4]['val'] = '<i class=fa fa-pause text-ingresados fa-2x></i>';
		$estados[4]['status_doc'] = 'I';
		$estados[4]['leyenda'] = 'Ingresados';
		$estados[4]['cant'] = 0;
		
		$estados[5]['cls'] = 'text-verificados';
		$estados[5]['info'] = 'fa-check text-verificados';
		$estados[5]['val'] = '<i class=fa fa-check text-verificados fa-2x></i>';
		$estados[5]['status_doc'] = 'V';
		$estados[5]['leyenda'] = 'Verificados';
		$estados[5]['cant'] = 0;


		
		$tabla_docs = []; 

/*
		if ($tipodoc->led_seccion == 'E')
			{ 
				$titulo1 = 'Empleado';
				$titulo2 = 'CUIL';
			}
			else
			{
				$titulo1 = 'Vehículo';
				$titulo2 = 'Dominio';
			} */
				
		foreach ($docs as $key => $doc)
		{

			foreach ($estados as $k1 => $est) 
			{
				if ($estados[$k1]['status_doc'] == $doc->estado_doc) 
					{ $estados[$k1]['cant'] += 1; }
			}

			$tabla_docs[$key] = new stdClass();
			$tabla_docs[$key]->estado   = $doc->estado_doc;
			$tabla_docs[$key]->vigencia = $doc->vigencia;
			$tabla_docs[$key]->vigencia_ymd = $doc->vigencia_ymd;
			$tabla_docs[$key]->icono = $doc->icono_small;
			$tabla_docs[$key]->texto_rechazo = $doc->texto_rechazo;
			if ($tipodoc->periodicidad != 'E') 
			{
				$tabla_docs[$key]->vigencia_hidden = true;
			}
			else 
			{
				$tabla_docs[$key]->vigencia_hidden = false;
			}

			if ($doc->prox_vencer == 1) 
			{
				$tabla_docs[$key]->prox_vencer = '<i class="fa fa-warning text-warning titilante"></i>';  
				//$tabla_docs[$key]->prox_vencer = 'pp';  
			}
			else
			{
				$tabla_docs[$key]->prox_vencer = '';  
			}


			if ($tipodoc->led_seccion == 'E')
			{ 
				$tabla_docs[$key]->nombre = $doc->nombre_persona;
				$tabla_docs[$key]->identificacion = $doc->identificacion;
			}
			else 
			{
				$tabla_docs[$key]->nombre = $doc->nombre_vehiculo; 
				$tabla_docs[$key]->identificacion = $doc->dominio;
			}


			$icons = NULL;
			$doc_id = null; 
			$doc_version = null; 
			if($doc->estado_doc != 'N') {
				if($doc->prox_vencer == 1 AND $doc->doc_version > 0) {
					$icons = '<a style="cursor:pointer;" data-doc-id="' . $doc->doc_id .'" data-doc-version="0" class="openpdfimperium" data-toggle="modal" data-target="#modalPdfImperium"><img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt="" title="El documento vence el ' . $doc->vigencia . '"></a>';

					$icons = $icons . '<a style="cursor:pointer;" data-doc-id="' . $doc->doc_id . '" data-doc-version="' . $doc->doc_version . '" class="openpdfimperium" data-toggle="modal" data-target="#modalPdfImperium">';
					$icons = $icons . ($doc->estado_doc == 'I' ? '<img src="/images/PDF-pend.png" width="24" height="24" border="0" title="Pendiente de verificar">' : '<img src="/images/PDF-rech.png" width="24" height="24" border="0" title="">');
					$icons = $icons . '</a>';

					$doc_id = $doc->doc_id; 
					$doc_version = 0; 

				}
				else {

					if($doc->doc_version > 0) {
						$aux = SQLConnection::backendStoreProcedure('Imperium_Datos_Documento_Reemplazo', array($doc->doc_id, -1), 'select');
						foreach($aux as $reemp) {
							$icons = $icons . '<a style="cursor:pointer;" data-doc-id="' . $reemp->doc_id . '" data-doc-version="' . $reemp->doc_version . '" class="openpdfimperium" data-toggle="modal" data-target="#modalPdfImperium"><img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt="" title="Vigencia: ' . $reemp->vigencia . '"></a>';
							$doc_id = $reemp->doc_id; 
							$doc_version = $reemp->doc_version; 
						}
					}
					else {
						for($i = 0; $i <= $doc->doc_version; $i++) {
							$icons = $icons . '<a style="cursor:pointer;" data-doc-id="' . $doc->doc_id . '" data-doc-version="' . $i . '" class="openpdfimperium" data-toggle="modal" data-target="#modalPdfImperium"><img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt="" title="Vigencia: ' . $doc->vigencia . '"></a>';
							$doc_id = $doc->doc_id; 
							$doc_version = $i; 
						}

					}
				}
			}
			$tabla_docs[$key]->doc = $icons;
			
			$tabla_docs[$key]->doc_id  = $doc_id; 
            $tabla_docs[$key]->version = $doc_version; 
            
		}

		/* Eliminamos los estados no tienen datos */
		foreach ($estados as $k1 => $est) 
		{
			if ($estados[$k1]['cant'] == 0) 
				{ unset($estados[$k1]); }
		} 

		return json_encode( array('estados' => $estados, 'values' => $tabla_docs) );
        /*
		$tabla = \View::make('/imperium/documentos_recursos_tablaf')->with(compact(['tipodoc','docs','tabla_docs','contratista','periodo','datos','estados']))->render();
		return json_encode( array('tabla_recursos'=>$tabla) );
	    */
	}


	public static function pdfDocumento(Request $req) {
		$doc_id = $req->doc_id;
		
		$doc_version = !empty($req->doc_version) ? $req->doc_version : 0;
		$doc = SQLConnection::backendStoreProcedure('Imperium_Datos_Documento', array($doc_id), 'selectOne');

		$pdf_url = Misc::getDocUrl($doc_id, $doc_version);
		if (NULL != $pdf_url) {
			$pdf_url .= '?rnd=' . time();
			$vista = \View::make('/imperium/documento_pdf')->with(compact(['pdf_url']))->render();
		}
		else {
			$vista = '<div class="row"><div class="col-md-12 text-center h4">No se encuentra el documento</div></div>';
		}
		return json_encode( array('tipo_doc' => $doc->nombre_tipo_doc , 'view' => $vista ) );			
	}



	//////////////
/* No se usa mas
    public static function recursos(Request $req) {
        $contraparte = $req->contraparte;
        $cliente = $req->cliente;

        $contrat = SQLConnection::backendStoreProcedure('Imperium_cliente_contraparte_led', array('buscar_contratista_imperium', $contraparte, $cliente), 'selectOne');
        
        if (!empty($contrat)) {
            $contratista = $contrat->contratista;

            $data = SQLConnection::backendStoreProcedure('Imperium_buscar_contratistas', array('search', $contratista), 'selectOne');
            $periodos = SQLConnection::backendStoreProcedure('Imperium_contratista_admin_documentos', array($contratista, 'periodos'), 'select');
            $periodo = !empty($req->periodo) ? $req->periodo : $periodos[0]->periodo;
			$periodo_vencido = Misc::periodoVencido();

			$emp = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista', array($contratista, 'E', 'A'), 'select');
			$veh = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista', array($contratista, 'V', 'A'), 'select');
			$subc = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista', array($contratista, 'S', 'A'), 'select');
			
			$vista_empleados = \View::make('/imperium/empleados')->with(compact(['emp', 'contrat', 'data', 'periodo', 'periodos', 'periodo_vencido']))->render();
			$vista_vehiculos = \View::make('/imperium/vehiculos')->with(compact(['veh', 'contrat', 'data', 'periodo', 'periodos', 'periodo_vencido']))->render();
			$vista_subcontratistas = \View::make('/imperium/subcontratistas')->with(compact(['subc', 'contrat', 'data', 'periodo', 'periodos', 'periodo_vencido']))->render();

            return view('/imperium/recursos')->with(compact(['contratista', 'vista_empleados','vista_vehiculos','vista_subcontratistas']));            
        }
    }
*/
     public static function empleados(Request $req) {
        $contraparte = $req->contraparte;
        $contratista = $req->contratista;
        $contrat = $req->contratista;
        $cliente = $req->cliente;
        /*var_dump($contraparte);
        var_dump($contratista);
        die();
		*/
        if (!empty($contratista)) {
			$periodos = Misc::arrayPeriodos();
			$periodo = $periodos[0]->periodo;
            $data = SQLConnection::backendStoreProcedure('Imperium_buscar_contratistas', array('search', $contratista,null,null,null,null,null), 'selectOne');
 			$emp = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista_fancy', array($contratista, 'E'), 'select');
            return view('/imperium/empleados')->with(compact(['periodo', 'periodos', 'emp', 'contraparte', 'contratista', 'cliente', 'data']));
        }
    }

      public static function empleadosSubcontratistas(Request $req) {
        $contratista = $req->subcontratista;
        $contraparte = $req->contraparte;
        $cliente = $req->cliente;
/*
        var_dump($contratista);
        var_dump($contraparte);
        var_dump($cliente); 
        die();
*/
        if (!empty($contratista)) {
			//$periodos = Misc::arrayPeriodos();
			$periodos = [];
			$periodo = new stdClass;
			$periodo = null; 
			$periodos = SQLConnection::backendStoreProcedure('Imperium_Led_Periodos', array($contratista, 'E'), 'select');
			if (!empty($periodos))
			{
				$periodo = $periodos[0]->periodo;
			}
            $data = SQLConnection::backendStoreProcedure('Imperium_buscar_contratistas', array('search', $contratista,null,null,null,null,null), 'selectOne');
 			$emp = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista_fancy', array($contratista, 'E'), 'select');
            return view('/imperium/subcontratistas_empleados')->with(compact(['periodo', 'periodos', 'emp', 'contraparte', 'contratista', 'cliente', 'data']));
        }
    }


   
    public static function vehiculos(Request $req) {
        $contraparte = $req->contraparte;
        $contratista = $req->contratista;
        $contrat = $req->contratista;
        $cliente = $req->cliente;
        if (!empty($contratista)) {
			$periodos = Misc::arrayPeriodos();
			$periodo = $periodos[0]->periodo;
            $data = SQLConnection::backendStoreProcedure('Imperium_buscar_contratistas', array('search', $contratista,null,null,null,null,null), 'selectOne');
			$veh = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista_fancy', array($contratista, 'V'), 'select');
            return view('/imperium/vehiculos')->with(compact(['periodo', 'periodos', 'veh', 'contraparte', 'contratista', 'cliente', 'data']));
        }
    }

     public static function vehiculosSubcontratistas(Request $req) {
        $contratista = $req->subcontratista;
        $contraparte = $req->contraparte;
        $cliente = $req->cliente;
/*
        var_dump($contratista);
        var_dump($contraparte);
        var_dump($cliente); 
        die();
*/
        if (!empty($contratista)) {
			//$periodos = Misc::arrayPeriodos();
			$periodos = [];
			$periodo = new stdClass;
			$periodo = null; 
			$periodos = SQLConnection::backendStoreProcedure('Imperium_Led_Periodos', array($contratista, 'V'), 'select');
			if (!empty($periodos))
			{
				$periodo = $periodos[0]->periodo;
			}
			
            $data = SQLConnection::backendStoreProcedure('Imperium_buscar_contratistas', array('search', $contratista,null,null,null,null,null), 'selectOne');
 			$veh = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista_fancy', array($contratista, 'V'), 'select');
 			//var_dump($veh); die(); 
 			//var_dump($sub); die(); 
            
            return view('/imperium/subcontratistas_vehiculos')->with(compact(['periodo', 'periodos', 'veh', 'contraparte', 'contratista', 'cliente', 'data']));
        }
    }



    public static function subcontr(Request $req) {
        $contraparte = $req->contraparte;
        $contratista = $req->contratista;
        $contrat = $req->contratista;
        $cliente = $req->cliente;
        if (!empty($contratista)) {
			$periodos = Misc::arrayPeriodos();
			$periodo = $periodos[0]->periodo;
            $data = SQLConnection::backendStoreProcedure('Imperium_buscar_contratistas', array('search', $contratista,null,null,null,null,null), 'selectOne');
			$subc = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista_fancy', array($contratista, 'S'), 'select');		
        
			return view('/imperium/subcontratistas')->with(compact(['periodo', 'periodos', 'subc', 'contraparte', 'contratista', 'cliente', 'data']));
        }
    }


    public static function recursosDataEmpleados(Request $req) {

		$contratista = $req->contratista;
		//$empleados = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista_fancy', array($contratista, 'E'), 'select');
		$periodo = $req->periodo;

		$empleados = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista_fancy', array($contratista, 'E', NULL, $periodo), 'select');		

		$pais = [];
		$tipos = [];
		$ult_periodos = []; 
		$tipos = SQLConnection::backendStoreProcedure('Imperium_buscar_tipos_empleado', array($contratista), 'select');
		foreach ($tipos as $kt => $tipo) 
		{
		    $tipos[$kt]->cant = 0;
		} 

		$estados = array( array('estado'=>'A', 'nombre_estado'=>'Activo', 'cant'=>0),
									array('estado'=>'N', 'nombre_estado'=>'No activo', 'cant'=>0),
									array('estado'=>'D', 'nombre_estado'=>'Desafectado', 'cant'=>0) );
	
		foreach ($empleados as $k => $emp) {
			$cc = strtolower($emp->country_code);
			$pais[$k]['info'] = $cc;
			$pais[$k]['country_name'] = $emp->country_name; 
			$pais[$k]['cls'] = 'flag-icon-' . $cc;
			$pais[$k]['val'] = '<span class=flag-icon flag-icon-background flag-icon-' . $cc .'></span>';
			$ult_periodos[$k]['periodo_Ym'] = $emp->ultimo_periodo;
			$empleados[$k]->edit = '<a style="cursor:pointer;" class="editemp" data-toggle="modal" data-target="#modalRecursos" data-empleado="' . $emp->empleado . '"><i class="fa fa-eye fa-2x"></i></a>';

			foreach ($estados as $k1 => $est) 
			{
				if ($estados[$k1]['estado'] == $emp->estado_empleado) 
					{ $estados[$k1]['cant'] += 1; }
			}

			foreach ($tipos as $kt => $tipo) 
			{
				if ($tipo->tipo_empleado == $emp->tipo_empleado) 
					{ $tipos[$kt]->cant += 1; }
			}
		}

		$pais = array_map("unserialize", array_unique(array_map("serialize", $pais)));
		$ult_periodos = array_map("unserialize", array_unique(array_map("serialize", $ult_periodos)));
		//$tipos = array_map("unserialize", array_unique(array_map("serialize", $tipos)));

		/* Eliminamos los estados y tipos que no tienen datos */
		foreach ($estados as $k1 => $est) 
		{
			if ($estados[$k1]['cant'] == 0) 
				{ unset($estados[$k1]); }
		} 
		foreach ($tipos as $kt => $tipo) 
		{
			if ($tipo->cant == 0) 
				{ unset($tipos[$kt]); }
		} 

		if(empty($empleados))
		{
			$hay = 'NO';
		}
		else 
		{
			$hay = 'SI';
		}

		$periodos = Misc::arrayPeriodos();

		return json_encode(array('data'=>$empleados, 'pais'=>$pais, 'tipos'=>$tipos, 'estados'=>$estados, 'periodos'=>$periodos, 'ult_periodos'=>$ult_periodos, 'hay'=>$hay));

	}
	
	public static function recursosDatosEmpleado(Request $req) {
		$contratista    = $req->contratista;
		$empleado       = $req->empleado;
		$periodo        = $req->periodo;
		$emp            = SQLConnection::backendStoreProcedure('Imperium_buscar_empleados', array('search', $empleado), 'selectOne');
		$tipos_empleado = SQLConnection::backendStoreProcedure('Imperium_buscar_tipos_empleado', array($contratista), 'select');
		$documentos     = SQLConnection::backendStoreProcedure('Imperium_Documentos_Recurso', array($periodo, $empleado), 'select');	
 	    $desafectado    = SQLConnection::backendStoreProcedure('Imperium_desafectados', array('search','E',$empleado,$contratista,$contratista,$periodo), 'selectOne');
 	    
		return view('/imperium/datos_empleado')->with(compact(['emp', 'tipos_empleado','documentos','periodo','desafectado']));
	}

	public static function documentosEmpleadoTablaf(Request $req) {
		$contratista    = $req->contratista;
		$empleado       = $req->empleado;
		$periodo        = $req->periodo;
		$documentos     = SQLConnection::backendStoreProcedure('Imperium_Documentos_Recurso', array($periodo, $empleado), 'select');	
		foreach ($documentos as $key => $doc)
 	    {
 	    		$d = ''; 
 	    	if($doc->estado_doc != 'N')
 	    	{
				$docid = $doc->doc_id_padre > 0 ? $doc->doc_id_padre : $doc->doc_id; 
				$docvs = $doc->doc_id_padre > 0 ? $doc->doc_version_padre : $doc->doc_version; 
				if ($doc->prox_vencer == 1 && $docvs > 0)
				{
					$d = $d . '<a style="cursor:pointer;" data-doc-id="'. $docid . '" data-doc-version="0" class="openpdfempleados" data-toggle="modal" data-target="#modalPdfEmpleados">'; 
					if ($doc->estado_doc_padre == 'I') {
						$d = $d . '<img src="/images/PDF-pend.png" width="24" height="24" border="0" alt=""'; 
						
					} else { 
					  	if ($doc->estado_doc_padre == 'R') 
					  	{
							$d = $d . '<img src="/images/PDF-rech.png" width="24" height="24" border="0" alt=""';
							
						}
						else 
						{
							$d = $d . '<img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt=""'; 

						}
					}
					if ($doc->fecha_vigencia !== NULL) { $d = $d . ' title="El documento vence el ' . $doc->fecha_vigencia . '"'; }
					$d = $d . '></a>'; 
					$d = $d . '<a style="cursor:pointer;" data-doc-id="'. $docid . '" data-doc-version="' . $docvs . '" class="openpdfempleados" data-toggle="modal" data-target="#modalPdfEmpleados"><img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt=""'; 
					if ($doc->fecha_vigencia !== NULL) { $d = $d . ' title="El documento vence el ' . $doc->fecha_vigencia . '"'; }
					$d = $d . '></a>';
				}
				else
				{	
					for($i = 0; $i <= $docvs; $i++)
					{
						$docid = $doc->doc_id_padre > 0 ? $doc->doc_id_padre : $doc->doc_id; 
						$d = $d . '<a style="cursor:pointer;" data-doc-id="'. $docid .'" data-doc-version="' . $i . '" class="openpdfempleados" data-toggle="modal" 	data-target="#modalPdfEmpleados"><img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt=""';
						if ($doc->fecha_vigencia !== NULL) { $d = $d . ' title="El documento vence el ' . $doc->fecha_vigencia . '"'; }
						$d = $d . '></a>';
					}
				}
			}
			$documentos[$key]->doc = $d; 
 	    }
 	    
		return json_encode( array('values' => $documentos) );
	}

	public static function recursosDatosVehiculo(Request $req) {
		$contratista = $req->contratista;
		$vehiculo = $req->vehiculo;
		$periodo        = $req->periodo;
		$country = SQLConnection::backendStoreProcedure('backend_obtener_paises', array(), 'select');
		$veh = SQLConnection::backendStoreProcedure('Imperium_buscar_vehiculos', array('search', $vehiculo), 'selectOne');
		$tipos_vehiculo = SQLConnection::backendStoreProcedure('Imperium_buscar_tipos_vehiculo', array($contratista), 'select');
		$anio = date('Y');
		$documentos = SQLConnection::backendStoreProcedure('Imperium_Documentos_Recurso', array($periodo, null, $vehiculo), 'select');	
        $desafectado = SQLConnection::backendStoreProcedure('Imperium_desafectados', array('search','V',$vehiculo,$contratista,$contratista,$periodo), 'selectOne');
		return view('/imperium/datos_vehiculo')->with(compact(['anio', 'country', 'veh', 'tipos_vehiculo','documentos','periodo','desafectado']));
	}

	public static function documentosVehiculoTablaf(Request $req) {
		$contratista = $req->contratista;
		$vehiculo = $req->vehiculo;
		$periodo        = $req->periodo;
	
		$documentos = SQLConnection::backendStoreProcedure('Imperium_Documentos_Recurso', array($periodo, null, $vehiculo), 'select');	
        foreach ($documentos as $key => $doc)
 	    {
 	    		$d = ''; 
 	    	if($doc->estado_doc != 'N')
 	    	{
				$docid = $doc->doc_id_padre > 0 ? $doc->doc_id_padre : $doc->doc_id; 
				$docvs = $doc->doc_id_padre > 0 ? $doc->doc_version_padre : $doc->doc_version; 
				if ($doc->prox_vencer == 1 && $docvs > 0)
				{
					$d = $d . '<a style="cursor:pointer;" data-doc-id="'. $docid . '" data-doc-version="0" class="openpdfvehiculos" data-toggle="modal" data-target="#modalPdfVehiculos">'; 
					if ($doc->estado_doc_padre == 'I') {
						$d = $d . '<img src="/images/PDF-pend.png" width="24" height="24" border="0" alt=""'; 
						
					} else { 
					  	if ($doc->estado_doc_padre == 'R') 
					  	{
							$d = $d . '<img src="/images/PDF-rech.png" width="24" height="24" border="0" alt=""';
							
						}
						else 
						{
							$d = $d . '<img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt=""'; 

						}
					}
					if ($doc->fecha_vigencia !== NULL) { $d = $d . ' title="El documento vence el ' . $doc->fecha_vigencia . '"'; }
					$d = $d . '></a>'; 
					$d = $d . '<a style="cursor:pointer;" data-doc-id="'. $docid . '" data-doc-version="' . $docvs . '" class="openpdfvehiculos" data-toggle="modal" data-target="#modalPdfVehiculos"><img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt=""'; 
					if ($doc->fecha_vigencia !== NULL) { $d = $d . ' title="El documento vence el ' . $doc->fecha_vigencia . '"'; }
					$d = $d . '></a>';
				}
				else
				{	
					for($i = 0; $i <= $docvs; $i++)
					{
						$docid = $doc->doc_id_padre > 0 ? $doc->doc_id_padre : $doc->doc_id; 
						$d = $d . '<a style="cursor:pointer;" data-doc-id="'. $docid .'" data-doc-version="' . $i . '" class="openpdfvehiculos" data-toggle="modal" 	data-target="#modalPdfVehiculos"><img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt=""';
						if ($doc->fecha_vigencia !== NULL) { $d = $d . ' title="El documento vence el ' . $doc->fecha_vigencia . '"'; }
						$d = $d . '></a>';
					}
				}
			}
			$documentos[$key]->doc = $d; 
 	    }
 	    
		return json_encode( array('values' => $documentos) );
	}

	public static function recursosDatosSubcontratista(Request $req) {
		$contratista    = $req->contratista;
		$subcontratista = $req->subcontratista;
		$periodo        = $req->periodo;
		$sub = SQLConnection::backendStoreProcedure('Imperium_buscar_contratistas', array('search', $subcontratista,null,null,null,null,null), 'selectOne');
		$tipos_contratista = SQLConnection::backendStoreProcedure('Imperium_buscar_tipos_contratista', array($contratista), 'select');
		$country = SQLConnection::backendStoreProcedure('backend_obtener_paises', array(), 'select');

		$locaciones_contr = SQLConnection::backendStoreProcedure('Imperium_buscar_locaciones', array(NULL, $contratista), 'select');
		$locaciones_sub = SQLConnection::backendStoreProcedure('Imperium_buscar_locaciones', array(NULL, $subcontratista), 'select');
		$asignadas = [];
		foreach($locaciones_sub as $loc) {
			$asignadas[] = $loc->locacion;
		}
		$anio = date('Y');
		$documentos  = SQLConnection::backendStoreProcedure('Imperium_Documentos_Recurso', array($periodo, null,null,$subcontratista), 'select');	
        $desafectado = SQLConnection::backendStoreProcedure('Imperium_desafectados', array('search','S',$subcontratista,$contratista,$contratista,$periodo), 'selectOne');

		return view('/imperium/datos_subcontratista')->with(compact(['country', 'sub', 'documentos', 'periodo', 'tipos_contratista', 'locaciones_contr', 'asignadas', 'anio','desafectado','contratista','subcontratista']));
	}

	public static function documentosSubcontratistaTablaf(Request $req) {
		$contratista    = $req->contratista;
		$subcontratista = $req->subcontratista;
		$periodo        = $req->periodo;
		
		$documentos  = SQLConnection::backendStoreProcedure('Imperium_Documentos_Recurso', array($periodo, null,null,$subcontratista), 'select');
		foreach ($documentos as $key => $doc)
 	    {
 	    		$d = ''; 

 	    	if($doc->estado_doc != 'N')
 	    	{
				$docid = $doc->doc_id; 
				$docvs = $doc->doc_version; 
				if ($doc->prox_vencer == 1 && $docvs > 0)
				{
					$d = $d . '<a style="cursor:pointer;" data-doc-id="'. $docid . '" data-doc-version="0" class="openpdfsubcontratistas" data-toggle="modal" data-target="#modalPdfSubcontratistas">'; 
					if ($doc->estado_doc_padre == 'I') {
						$d = $d . '<img src="/images/PDF-pend.png" width="24" height="24" border="0" alt=""'; 
						
					} else { 
					  	if ($doc->estado_doc_padre == 'R') 
					  	{
							$d = $d . '<img src="/images/PDF-rech.png" width="24" height="24" border="0" alt=""';
							
						}
						else 
						{
							$d = $d . '<img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt=""'; 

						}
					}
					if ($doc->fecha_vigencia !== NULL) { $d = $d . ' title="El documento vence el ' . $doc->fecha_vigencia . '"'; }
					$d = $d . '></a>'; 
					$d = $d . '<a style="cursor:pointer;" data-doc-id="'. $docid . '" data-doc-version="' . $docvs . '" class="openpdfsubcontratistas" data-toggle="modal" data-target="#modalPdfSubcontratistas"><img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt=""'; 
					if ($doc->fecha_vigencia !== NULL) { $d = $d . ' title="El documento vence el ' . $doc->fecha_vigencia . '"'; }
					$d = $d . '></a>';
				}
				else
				{	
					for($i = 0; $i <= $docvs; $i++)
					{
						$docid = $doc->doc_id; 
						$d = $d . '<a style="cursor:pointer;" data-doc-id="'. $docid .'" data-doc-version="' . $i . '" class="openpdfsubcontratistas" data-toggle="modal" 	data-target="#modalPdfSubcontratistas"><img src="/images/Adobe_Acrobat_Distiller_PDF_32x32.png" width="24" height="24" border="0" alt=""';
						if ($doc->fecha_vigencia !== NULL) { $d = $d . ' title="El documento vence el ' . $doc->fecha_vigencia . '"'; }
						$d = $d . '></a>';
					}
				}
			}
			$documentos[$key]->doc = $d; 
 	    }
 	    
		return json_encode( array('values' => $documentos) );

        
	}


    public static function recursosDataVehiculos(Request $req) {

		$contratista = $req->contratista;	
		$periodo = $req->periodo;

		//$vehiculos = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista_fancy', array($contratista, 'V'), 'select');
		$vehiculos = []; 
		$vehiculos = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista_fancy', array($contratista, 'V', NULL, $periodo), 'select');

		$pais = [];
		$tipos = [];
		$ult_periodos = []; 

		foreach ($vehiculos as $k => $veh) {
			$cc = strtolower($veh->country_code);
			$pais[$k]['info'] = $cc;
			$pais[$k]['country_name'] = $veh->country_name; 
			$pais[$k]['cls'] = 'flag-icon-' . $cc;
			$pais[$k]['val'] = '<span class=flag-icon flag-icon-background flag-icon-' . $cc .'></span>';
			$ult_periodos[$k]['periodo_Ym'] = $veh->ultimo_periodo;
			$vehiculos[$k]->edit = '<a style="cursor:pointer;" class="editveh" data-toggle="modal" data-target="#modalRecursos" data-vehiculo="' . $veh->vehiculo . '"><i class="fa fa-eye fa-2x"></i></a>';
		}
		$pais = array_map("unserialize", array_unique(array_map("serialize", $pais)));
		$ult_periodos = array_map("unserialize", array_unique(array_map("serialize", $ult_periodos)));

		//$tipos = array_map("unserialize", array_unique(array_map("serialize", $tipos)));
		$tipos = SQLConnection::backendStoreProcedure('Imperium_buscar_tipos_vehiculo', array($contratista), 'select');
		$estados = array( array('estado'=>'A', 'nombre_estado'=>'Activo'),
									array('estado'=>'N', 'nombre_estado'=>'No activo'),
									array('estado'=>'D', 'nombre_estado'=>'Desafectado') );

		$periodos = Misc::arrayPeriodos();
		if(empty($vehiculos))
		{
			$hay = 'NO';
		}
		else 
		{
			$hay = 'SI';
		}
		return json_encode(array('data'=>$vehiculos, 'pais'=>$pais, 'tipos'=>$tipos, 'hay'=>$hay, 'estados'=>$estados, 'periodos'=>$periodos, 'ult_periodos'=>$ult_periodos));
	}
	
	public static function actualizarEstado(Request $req) {
		$contratista = $req->contratista;
		$contratista_1 = $req->contratista_1;
		$seccion = $req->seccion;
		$recurso = $req->recurso;
		$estado  = $req->estado;
		$periodo  = $req->periodo;
		$usr = Session::get('usuario')->user_id;
		if ($estado == 'D') { $accion = 'desafectar';} else { $accion = 'afectar';}
		/*var_dump($accion);
		var_dump($seccion);
		var_dump($recurso);
		var_dump($contratista);
		var_dump($contratista_1);
		var_dump($periodo); die();*/

		// Se puso el 08/02/2021 
		/* NO LO HACE!! Volver a ponerlo */
 	    // $desafectado = SQLConnection::backendStoreProcedure('Imperium_desafectados', array($accion,$seccion,$recurso,$contratista,$contratista_1,$periodo,$usr), 'selectOne');
 	     
		return 'ok';

	}

    public static function recursosDataSubcontratistas(Request $req) {

		$contratista = $req->contratista;
		$periodo = $req->periodo;

		//$subcontratistas = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista_fancy', array($contratista, 'S'), 'select');
		$subcontratistas = [];
		$subcontratistas = SQLConnection::backendStoreProcedure('Imperium_Recursos_Contratista_fancy', array(null, 'S', NULL, $periodo,$contratista), 'select');		
		$pais = [];
		$tipos = [];
		$periodos = []; 
		$de = []; 
		foreach ($subcontratistas as $k => $sub) {
			$cc = strtolower($sub->country_code);
			$pais[$k]['info'] = $cc;
			$pais[$k]['country_name'] = $sub->country_name; 
			$pais[$k]['cls'] = 'flag-icon-' . $cc;
			$pais[$k]['val'] = '<span class=flag-icon flag-icon-background flag-icon-' . $cc .'></span>';
			//$periodos[$k]['periodo_mY'] = $sub->periodo_mY;
			$periodos[$k]['periodo_Ym'] = $sub->ultimo_periodo;
			$de[$k]['de'] = $sub->nombre_persona_d;
			$subcontratistas[$k]->edit = '<a style="cursor:pointer;" class="editsub" data-toggle="modal" data-target="#modalRecursos" data-subcontratista="' . $sub->contratista . '"><i class="fa fa-eye fa-2x"></i></a>';
			$subcontratistas[$k]->recursos = '<div class="row"><a style="cursor:pointer;" class="empsub" data-subcontratista="' . $sub->contratista . '"><div class="col-md-6"><center><i class="fa fa-user fa-2x" title="Empleados"></i></center></div></a>'
				. '<a style="cursor:pointer;" class="vehsub" data-subcontratista="' . $sub->contratista . '"><div class="col-md-6"><center><i class="fa fa-truck fa-2x" title="Vehículos"></i></center><div></a></div>';
		}
		if(empty($subcontratistas))
		{
			$hay = 'NO';
		}
		else 
		{
			$hay = 'SI';
		}
		$pais = array_map("unserialize", array_unique(array_map("serialize", $pais)));
		$periodos = array_map("unserialize", array_unique(array_map("serialize", $periodos)));
		$de = array_map("unserialize", array_unique(array_map("serialize", $de)));

		//$tipos = array_map("unserialize", array_unique(array_map("serialize", $tipos)));
		$tipos = SQLConnection::backendStoreProcedure('Imperium_buscar_tipos_contratista', array($contratista), 'select');
		$estados = array( array('estado'=>'A', 'nombre_estado'=>'Activo'),
									array('estado'=>'N', 'nombre_estado'=>'No activo'),
									array('estado'=>'D', 'nombre_estado'=>'Desafectado') );

		return json_encode(array('data'=>$subcontratistas, 'pais'=>$pais, 'tipos'=>$tipos, 'estados'=>$estados, 'periodos'=>$periodos, 'de'=>$de, 'hay'=>$hay));

	}

/**************  REPORTES ***************/ 
	public static function reportesIE() {
		return view('imperium/reportes_ie');
	}

 	public static function reportesIEData(Request $req) {
		$cliente = Session::get('usuario')->cliente['client_id'];	
		$fecha_desde = date_format(date_create_from_format('!d/m/Y', $req->fecha_desde), "Y-m-d");
		$fecha_hasta = date_format(date_create_from_format('!d/m/Y', $req->fecha_hasta), "Y-m-d");

		$datos = SQLConnection::backendStoreProcedure('Imperium_reporte_ingresos_egresos', array($cliente,$fecha_desde,$fecha_hasta), 'select');
		
		$tipos = []; 
		$locs  = []; 
		$excs  = []; 

		foreach ($datos as $key => $dato)
		{
			if ($dato->contratista = $dato->contratista_1)
			{
				$datos[$key]->datos_subcontratista = null; 
			}
			if ($dato->datos_vehiculo == '0')
			{
				$datos[$key]->datos_vehiculo = null; 
			}
			$tipos[$key]['tipo'] = $dato->tipo;
			$locs[$key]['loc'] = $dato->locacion_name;
			$excs[$key]['exc'] = $dato->exc;
		
		}

		$tipos = array_map("unserialize", array_unique(array_map("serialize", $tipos)));
		$locs = array_map("unserialize", array_unique(array_map("serialize", $locs)));
		$excs = array_map("unserialize", array_unique(array_map("serialize", $excs)));
		if(empty($datos))
		{
			$hay = 'NO';
		}
		else 
		{
			$hay = 'SI';
		}

		return json_encode(array('data'=>$datos, 'hay'=>$hay,'tipos'=>$tipos,'excs'=>$excs, 'locs'=>$locs));
	}

	public static function reportesActividadUsuarios() {
		return view('imperium/reportes_actividad_usuarios');
	}

 	public static function reportesActividadUsuariosData(Request $req) {
		$cliente = Session::get('usuario')->cliente['client_id'];	
		$fecha_desde = date_format(date_create_from_format('!d/m/Y', $req->fecha_desde), "Y-m-d");
		$fecha_hasta = date_format(date_create_from_format('!d/m/Y', $req->fecha_hasta), "Y-m-d");

		$datos = SQLConnection::backendStoreProcedure('Imperium_reporte_actividad_usuarios', array($cliente,$fecha_desde,$fecha_hasta), 'select');
		
		$tipos = []; 
		$logs = []; 

		foreach ($datos as $key => $dato)
		{
			if ($dato->contratista = $dato->contratista_1)
			{
				$datos[$key]->datos_subcontratista = null; 
			}

 			if(!in_array($dato->nombre_tipo_contratista_1, $tipos)) {
              $tipos[] = $dato->nombre_tipo_contratista_1;
            }

            if(!in_array($dato->tipo_log, $logs)) {
              $logs[] = $dato->tipo_log;
            }	
		}

        array_multisort($tipos);
        array_multisort($logs);

		if(empty($datos))
		{
			$hay = 'NO';
		}
		else 
		{
			$hay = 'SI';
		}

		return json_encode(array('data'=>$datos, 'hay'=>$hay,'tipos'=>$tipos,'logs'=>$logs));
	}



  	public static function reportesDocumentacion() {
		return view('imperium/reportes_documentacion');
	}

	public static function reportesDocumentacionData(Request $req) {
		$cliente = Session::get('usuario')->cliente['client_id'];	
		$periodo_desde = date_format(date_create_from_format('!m/Y', $req->periodo_desde), "Ym");
		$periodo_hasta = date_format(date_create_from_format('!m/Y', $req->periodo_hasta), "Ym");
		$estado = $req->estado; 
		$estados = (is_array($estado) == 1) ? implode(',', $estado) : $estado;

		$datos = []; 
		$datos = SQLConnection::backendStoreProcedure('Imperium_reporte_documentacion_full2', array($cliente,$periodo_desde,$periodo_hasta,null,$estados), 'select');
		
		$estados_contratistas = [];
		$estados_recursos     = [];
		$estados              = [];
		$actividades          = [];
		$tipos                = [];
		$secciones            = [];

		foreach ($datos as $key => $dato)
		{
			$datos[$key]->CONTRATISTA = $dato->RAZON_SOCIAL . ' (' . $dato->CUIT . ')'; 
			if (!empty($dato->CUIT_EMPLEADO))
			{
				$datos[$key]->RECURSO = $dato->RECURSO . ' (' . $dato->CUIT_EMPLEADO . ')'; 
			}
			if (!empty($dato->MES))
			{
				$datos[$key]->ANIO = $dato->ANIO . '-' . $dato->MES;
			}
			if (!empty($dato->ESTADO_CONTRATISTA)) {
				$estados_contratistas[$key]['estado'] = $dato->ESTADO_CONTRATISTA; }
			if (!empty($dato->ESTADO_RECURSO)) {
				$estados_recursos[$key]['estado'] = $dato->ESTADO_RECURSO; }
			if (!empty($dato->ESTADO)) {
				$estados[$key]['estado'] = $dato->ESTADO; }
			if (!empty($dato->ACTIVIDAD)) {
				$actividades[$key]['actividad'] = $dato->ACTIVIDAD; }
			if (!empty($dato->TIPO_RECURSO)) {
				$tipos[$key]['tipo'] = $dato->TIPO_RECURSO; }
			if (!empty($dato->SECCION)) {
				$secciones[$key]['seccion'] = $dato->SECCION; }
		}

		$estados_contratistas = array_map("unserialize", array_unique(array_map("serialize", $estados_contratistas)));
		$estados_recursos     = array_map("unserialize", array_unique(array_map("serialize", $estados_recursos)));
		$estados              = array_map("unserialize", array_unique(array_map("serialize", $estados)));
		$actividades          = array_map("unserialize", array_unique(array_map("serialize", $actividades)));
		$tipos                = array_map("unserialize", array_unique(array_map("serialize", $tipos)));
		$secciones            = array_map("unserialize", array_unique(array_map("serialize", $secciones)));

		if(empty($datos))
		{
			$hay = 'NO';
		}
		else 
		{
			$hay = 'SI';
		}

		return json_encode(array('data'=>$datos, 'hay'=>$hay, 'estados_contratistas'=>$estados_contratistas, 'estados_recursos'=>$estados_recursos,   'estados'=>$estados, 'actividades'=>$actividades, 'tipos'=>$tipos, 'secciones'=>$secciones));
	}

	public static function reportesBajas() {
		return view('imperium/reportes_bajas');
	}

 	public static function reportesBajasData(Request $req) {
		$cliente = Session::get('usuario')->cliente['client_id'];	
		$fecha_desde = date_format(date_create_from_format('!d/m/Y', $req->fecha_desde), "Y-m-d");
		$fecha_hasta = date_format(date_create_from_format('!d/m/Y', $req->fecha_hasta), "Y-m-d");

		$datos = SQLConnection::backendStoreProcedure('Imperium_Reporte_Bajas_Desafectaciones', array($fecha_desde,$fecha_hasta,$cliente), 'select');
		
		$tipos = []; 
		$acciones  = []; 
		$secciones  = []; 

		foreach ($datos as $key => $dato)
		{
			
			$tipos[$key]['tipo'] = $dato->TIPO;
			$acciones[$key]['accion'] = $dato->ACCION;
			$secciones[$key]['seccion'] = $dato->SECCION;
		
		}

		$tipos = array_map("unserialize", array_unique(array_map("serialize", $tipos)));
		$acciones = array_map("unserialize", array_unique(array_map("serialize", $acciones)));
		$secciones = array_map("unserialize", array_unique(array_map("serialize", $secciones)));
 
		if(empty($datos))
		{
			$hay = 'NO';
		}
		else 
		{
			$hay = 'SI';
		}

		return json_encode(array('data'=>$datos, 'hay'=>$hay,'tipos'=>$tipos,'acciones'=>$acciones, 'secciones'=>$secciones));
	}



}
