<?php namespace App\Http\Controllers;
 
use App\Custom\SQLConnection;
use App\Custom\Misc;
use Request;
use Session;
use DateTime;
use Illuminate\Support\Facades\Input;

class MaintenanceController extends Controller {
  
	private function headerPDF($seccion,$tabla,$cuit,$nombre,$fecha){
		$header = view('exportar/css')->render();
		$fidelitas = Misc::obtenerImagenFidelitas();
		$func = $tabla.'TR';
		//print_r($func); die(); 
		$header .= '<img src="'.$fidelitas.'"  class="text-left">';
    $header .= 
    '<div class="col-md-12 title-report background-fidelitas" style="margin-top:10px;padding:5px;">
 	 		<div class="col-md-12 col-sm-12 col-xs-12 text-center" id="nc" style="padding: 5px;">
  			Mantenimiento de '.$seccion.' <br> '.$cuit.' - '.$nombre.' <br> ' .$fecha . '
  		</div>
  	</div>
  	<div class="col-md-12 col-sm-12 col-xs-12 text-center">
			<table class="table" style="margin-top:10px;">'.$this->$func();
  	return $header;
	}
	
	private function cendeuTR(){
			$resp ='<tr>
			<td>Banco</td>
			<td>Periodo</td>
			<td>Situacion</td>
			<td>Monto (en miles)</td>
			</tr>';
			return $resp;
	}

	private function cendeu_tempTR(){
			$resp ='<tr>
			<td>Banco</td>
			<td>Periodo</td>
			<td>Situacion</td>
			<td>Monto (en miles)</td>
			</tr>';
			return $resp;
	}
	private function cendeu_cancelaTR(){
			$resp ='<tr>
			<td>Fecha</td>
			<td>Evento</td>
			<td>Banco</td>
			<td>Desde</td>
			<td>Hasta</td>
			</tr>';
			return $resp;
	}
	private function sircrebTR(){
			$resp ='<tr>
			<td>Fecha</td>
			<td>Desde</td>
			<td>Hasta</td>
			</tr>';
			return $resp;
	}
	private function arbaTR(){
			$resp ='<tr>
			<td>Impuesto</td>
			<td>Objeto</td>
			<td>Nro Interno</td>
			<td>Fecha Inicio Juicio</td>
			<td>Importe Deuda</td>
			<td>Fecha Cancelacion</td>
			<td>Fecha Plan de Pagos</td>
			<td>Cancelacion Juicio</td>
			<td>Estado Medida Cautelar</td>
			<td>Estado de Plan de Pagos</td>
			</tr>';
			return $resp;
	}

	private function balances_contablesTR(){
			$resp ='<tr>
			<td></td>
			<td>fecha</td>
			</tr>';
			return $resp;
	}
      
	private function juiciosTR(){
			$resp ='<tr>
			<td>Fecha</td>
			<td>Causa</td>
			<td>CUIT Actor</td>
			<td>Nombre Actor</td>
			</tr>';
			return $resp;
	}

	private function chequesbcraTR(){
			$resp ='<tr>
			<td>Causal</td>
			<td>CUIT Firmante</td>
			<td>CUIT Relacionado</td>
			<td>Nro Cheque</td>
			<td>Importe</td>
			<td>Fecha de Rechazo</td>
			<td>Fecha de Pago de Multa</td>
			<td>Fecha de Levantamiento</td>
			</tr>';
			return $resp;
	}

	private function batchHtml($html){
			$resp ='
			<tr>'.$html.'</tr>';
			return $resp;
	}

	private function footerPDF(){
		$footer ="</table></div>";
		return $footer;
	}

	public function obtenerNovedades(){
		$client_id 	= Session::get('usuario')->cliente['client_id'];
		//dd($client_id);
		$novedades 	= SQLConnection::obtenerNovedadesCliente($client_id);
		//dd($novedades);
		foreach ($novedades as $nov) {
			$nov->tipo_novedad = str_replace('_', ': ', $nov->tipo_novedad);
		}
		$cuit 			= Request::input('cuit');
			return View('mantenimiento/novedades')
		->with(compact('novedades','cuit'));
	}

	public function obtenerHistorial(){
		$client_id 	= Session::get('usuario')->cliente['client_id'];
		$cuit 		= Request::input('cuit');
			return View('mantenimiento/historial')
		->with(compact('cuit','novedades'));	
	}

	public function obtenerNovedadPDF(){
		$cuit 									= Request::input('cuit');
		$seccion_mantenimiento 	= Request::input('seccion_mantenimiento');
		$tipo_novedad 					= Request::input('tipo_novedad');
		$tabla 			        		= Request::input('tabla');
		$nombre 			    			= Request::input('nombre');
		$fecha 			    			= Request::input('fecha');
		//print_r($cuit); print_r($seccion_mantenimiento); print_r($tabla); die(); 
		$resultados 						= SQLConnection::obtenerNovedadesHTML($cuit,$seccion_mantenimiento,$tabla,$fecha);
		$html 									= '';
		$html 								 .= $this->headerPDF($tipo_novedad,$tabla,$cuit,$nombre,$fecha);
		foreach($resultados as $resultado){
				$html .= $this->batchHtml($resultado->html);
			}
		$html .=$this->footerPDF();
		$file_html = '/var/www/html/fidelitas/public/documentos/temp/novedad.html';
		file_put_contents($file_html, $html);
		$file_download = '/var/www/html/fidelitas/public/documentos/temp/novedad.pdf';
		return $this->exportarPDF($html,$file_html,$file_download,$cuit,$seccion_mantenimiento);
	}

	public function obtenerResultadoHistorial(){
		$id_usuario 	= Session::get('usuario')->user_id;
		$cliente_id 	    = Session::get('usuario')->cliente['client_id'];
		$resultados 	= [];
		$cuit 				= Request::input('cuit');
		$fecha_desde 	= Request::input('fecha_desde');
		$fecha_hasta 	= Request::input('fecha_hasta');
		$resultados 	= SQLConnection::obtenerHistoricoMonitoreo($cliente_id,$fecha_desde,$fecha_hasta,$cuit);
		$vista 			=  View('mantenimiento/resultado_historico')->with(compact('resultados'))->render();
		return \Response::json(
			array(
				'view' => $vista
			)
		, 200, [], JSON_NUMERIC_CHECK);

	}

	private function exportarPDF($html,$file_html,$file_download,$cuit,$seccion){
		exec("/usr/local/bin/wkhtmltopdf -d 300 -L 10 -R 10 -T 10 -B 10 --header-font-size 8 --header-right ' [page] de [toPage]'  --viewport-size 1920x1080 --zoom 1 ".$file_html." ".$file_download);
		header('Content-Transfer-Encoding: binary');
		header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($file_download)) . ' GMT');
		header('Accept-Ranges: bytes');
		header('Content-Length: ' . filesize($file_download));
		header('Content-Encoding: none');
		header('Content-Type: application/pdf');
		header('Content-Disposition: attachment; filename='.$cuit.'_'.$seccion.'_'.date("Y-m-d").'.pdf');
		readfile($file_download);
		chmod($file_download, 0777);
	}

	// Metodos importados de MAINcontroller

	public function eliminarMonitoreo(){
		$id_mantenimiento = Request::input('id_mantenimiento');
		$resp = SQLConnection::eliminarMonitoreoId($id_mantenimiento);
		return 'ok';
	}

	public function monitorearCuit(){
		$usuario 					= Session::get('usuario');
		$id_usuario 			= $usuario->user_id;
		$cuit 						= Request::input('cuit');
		SQLConnection::consumirServicio($id_usuario,$cuit,ENV('ID_MONITOREO'));
		$secciones_db			= SQLConnection::obtenerSeccionesEnMantenimientoUsuarioCuit($id_usuario,$cuit);
		$secciones				= Request::input('seccion');
		$fecha_vigencia 	= Request::input('date');
		$id_cliente 			= $usuario->cliente['client_id'];
		$borrar_secciones = [];
			foreach($secciones_db as $seccion_db ){
					if(!in_array($seccion_db->seccion_mantenimiento,$secciones)){
						$borrar_secciones[]  = $seccion_db->seccion_mantenimiento;
					}
				}
				foreach($borrar_secciones as $seccion){
					$resp = SQLConnection::eliminarMonitoreo($cuit,$id_usuario,$id_cliente,$seccion,$fecha_vigencia);
				}
				foreach($secciones as $seccion){
					$resp = SQLConnection::monitorearCuit($cuit,$id_usuario,$id_cliente,$seccion,$fecha_vigencia);
				}
		return  $resp->existe;
	}

		public function monitorearCheques(){
			$usuario 				= Session::get('usuario');
			$cuit 					= Request::input('cuit');
			$id_usuario 		= $usuario->user_id;
			$id_cliente 		= $usuario->cliente["client_id"];
			$numero_cheque	= Request::input('numero_cheque');
			$fecha_cheque		= Request::input('fecha_cheque');
			$importe				= Request::input('importe');
			$id_banco				= Request::input('id_banco');
			$resp 					=  SQLConnection::monitorearCheques($cuit,$id_usuario,$id_cliente,$numero_cheque,$fecha_cheque,$importe,$id_banco,99);
			return $resp->existe;
	}

	public function obtenerMonitoreo(){
		$id_usuario 								= Session::get('usuario')->user_id;
		$client_id 									= Session::get('usuario')->cliente["client_id"];
		$secciones_en_mantenimiento	= SQLConnection::obtenerSeccionesEnMantenimientoUsuarioCuit($id_usuario,null);
		foreach ($secciones_en_mantenimiento as $key => $value) {
			$secciones_en_mantenimiento[$key] = $value->seccion_mantenimiento;
		}
		$user_id 							= Session::get('usuario')->user_id;
		$cheques 							= SQLConnection::listadoMantenimientoCheques($client_id);
		$cuits 								= SQLConnection::listadoMantenimientoCuits($client_id);
		$secciones 						    = SQLConnection::obtenerSeccionesMantenimiento($client_id);
		$entidades_bancarias  = SQLConnection::obtenerEntidadesBancarias();
		return  \View::make('mantenimiento/index')->with(compact('cheques','cuits','entidades_bancarias','secciones','secciones_en_mantenimiento'))->render();
		
	}

		public function mailMasivoCMS(){
			$info=	SQLConnection::backendStoreProcedure('mail_cms',array());
			foreach($info as $cms){
			if(Misc::enviarMail("mails/mail_masivo_cms",array('leonel.turchetto@fidelitas.com.ar','alejandro.burgol@fidelitas.com.ar')
				,$cms,"TEST")){
				print_r('enviado');
			break;
				exit();
			}

			}
		}
}