<?php
class Solicitudes extends CI_Controller
{
	private $_template;
	protected $_fechaActual;
	protected $_iduser;
	protected $_csstyle;
	protected $_jss;	
	protected $idLicencia;
	protected $idTienda;
	protected $origen;
	protected $_role;
	
	function __construct()
	{
		parent::__construct();

		if($this->session->userdata('id')=="")
		{
 			redirect(base_url().'login');
 		} 		 		
		
		$this->config->load('js',TRUE);
		$this->config->load('style', TRUE);
              
		$datestring   			= "%Y-%m-%d %H:%i:%s";
		$this->_fechaActual 	= mdate($datestring,now());
	    $this->_iduser 			= $this->session->userdata('id');
		$this->idLicencia 		= $this->session->userdata('idLicencia');
		$this->_csstyle			= $this->config->item('style');
		$this->_jss				= $this->config->item('js');
		$this->idTienda 		= $this->session->userdata('idTiendaActiva');
		$this->origen 			= $this->session->userdata('sucursalOrigen');
		$this->_role 			= $this->session->userdata('role');
		
		$this->load->model("modelo_configuracion","configuracion");
		$this->load->model("tiendas_modelo","tiendas");
		$this->load->model("bancos_model","bancos");
		$this->load->model("modelousuario","modelousuario");
		$this->load->model("modeloclientes","clientes");
		$this->load->model("solicitudes_modelo","solicitudes");
 	}
	
	
	function index()
	{
		$Data['title'] 			= "Panel de Administración";
		$Data['cassadmin'] 		= $this->_csstyle["cassadmin"];
		$Data['csmenu'] 		= $this->_csstyle["csmenu"];
		$Data['csvalidate'] 	= $this->_csstyle["csvalidate"];
		$Data['csui'] 			= $this->_csstyle["csui"];
		$Data['nameusuario'] 	= $this->modelousuario->getUsuarios($this->_iduser);
		$Data['Fecha_actual'] 	= $this->_fechaActual;
		$Data['Jry']			= $this->_jss['jquery'];
		$Data['Jqui']			= $this->_jss['jqueryui'];
		$Data['Jquical']		= $this->_jss['jquerycal'];
		$Data['permisos']		= $this->configuracion->obtenerRolPermisos($this->session->userdata('rol'));
		$Data['menuActivo']		= 'listaReportes'; 
		
		$this->load->view("cabezera", $Data);
		$this->load->view('header', $Data);
		$this->load->view("principal", $Data);
	

		#----------------------------------PERMISOS------------------------------------#
		$data['permiso']		= $this->configuracion->obtenerPermisosId('60',$this->session->userdata('rol'));
		
		if($data['permiso']->leer=='0' and $data['permiso']->escribir=='0')
		{
			redirect('principal/permisosUsuario','refresh');
			return;
		}

		$data['idLicencia'] 			= $this->idLicencia;
		$data['licencias'] 				= $this->configuracion->obtenerLicenciasFirestone(1);
		$data['registrar']				= $this->_role!=1?$this->configuracion->comprobarPermisoAsignado($this->_iduser,37):1;

		$this->load->view("solicitudes/index",$data); 
		$this->load->view("pie", $Data);
	}
	
	public function obtenerRegistros($limite=0)
	{
		$folio						= $this->input->post('folio');
		$idLicencia					= $this->input->post('idLicencia');
		$idLicenciaSolicitud		= $this->input->post('idLicenciaSolicitud');
		$inicio						= $this->input->post('inicio');
		$fin						= $this->input->post('fin');
		
		$paginador["base_url"]		= base_url()."solicitudes/obtenerRegistros/";
		$paginador["total_rows"]	= $this->solicitudes->contarRegistros($folio,$idLicenciaSolicitud,$idLicencia,$inicio,$fin);
		$paginador["per_page"]		= 15;
		$paginador["num_links"]		= 5;
		
		$this->pagination->initialize($paginador);
		
		$data['registros']			= $this->solicitudes->obtenerRegistros($paginador["per_page"],$limite,$folio,$idLicenciaSolicitud,$idLicencia,$inicio,$fin);
		$data['editar']				= $this->_role!=1?$this->configuracion->comprobarPermisoAsignado($this->_iduser,38):1;
		$data['borrar']				= $this->_role!=1?$this->configuracion->comprobarPermisoAsignado($this->_iduser,39):1;
		$data['autorizar']			= $this->_role!=1?$this->configuracion->comprobarPermisoAsignado($this->_iduser,40):1;
		$data['limite']				= $limite+1;
		$data['idLicencia'] 		= $this->idLicencia;
		
		$this->load->view('solicitudes/obtenerRegistros',$data);
	}
	
	public function formularioRegistro()
	{
		$data['folio']					= $this->solicitudes->obtenerFolioSolicitud();
		$data['idLicencia'] 			= $this->idLicencia;
		$data['licencias'] 				= $this->configuracion->obtenerLicenciasFirestone(1);

		$this->load->view('solicitudes/formularioRegistro',$data);
	}
	
	public function obtenerProductosRegistro($limite=0)
	{
		$criterio					= $this->input->post('criterio');
		$idLicencia					= $this->input->post('idLicencia');
		
		$paginador["base_url"]		= base_url()."solicitudes/obtenerProductosRegistro/";
		$paginador["total_rows"]	= $this->solicitudes->contarProductosRegistro($criterio,$idLicencia);
		$paginador["per_page"]		= 30;
		$paginador["num_links"]		= 5;
		
		$this->pagination->initialize($paginador);
		
		$data['productos']			= $this->solicitudes->obtenerProductosRegistro($paginador["per_page"],$limite,$criterio,$idLicencia);
		$data['limite']				= $limite+1;
		
		$this->load->view('solicitudes/obtenerProductosRegistro',$data);
	}
	
	public function registrarFormulario()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->solicitudes->registrarFormulario());
		}
		else
		{
			echo json_encode(array('0','Sin datos que registrar'));
		}
	}
	
	public function formularioEditar()
	{
		$data['registro'] 			= $this->solicitudes->obtenerRegistro($this->input->post('idSolicitud'));
		$data['productos'] 			= $this->solicitudes->obtenerDetallesRegistro($this->input->post('idSolicitud'));

		$this->load->view('solicitudes/formularioEditar',$data);
	}
	
	public function editarFormulario()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->solicitudes->editarFormulario());
		}
		else
		{
			echo json_encode(array('0','Sin datos que registrar'));
		}
	}

	public function borrarRegistro()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->solicitudes->borrarRegistro($this->input->post('idSolicitud')));
		}
		else
		{
			echo json_encode(array('0','Sin datos que borrar'));
		}
	}
	
	public function formularioAutorizaciones()
	{
		$data['registro'] 			= $this->solicitudes->obtenerRegistro($this->input->post('idSolicitud'));
		$data['detalles'] 			= $this->solicitudes->obtenerDetallesRegistro($this->input->post('idSolicitud'));

		$this->load->view('solicitudes/formularioAutorizaciones',$data);
	}
	
	public function registrarAutorizacion()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->solicitudes->registrarAutorizacion());
		}
		else
		{
			echo json_encode(array('0','Sin datos que registrar'));
		}
	}
	
	public function obtenerAutorizaciones($limite=0)
	{
		$criterio					= $this->input->post('criterio');
		$idLicencia					= $this->input->post('idLicencia');
		$inicio						= $this->input->post('inicio');
		$fin						= $this->input->post('fin');
		
		$paginador["base_url"]		= base_url()."solicitudes/obtenerAutorizaciones/";
		$paginador["total_rows"]	= $this->solicitudes->contarAutorizaciones($criterio,$inicio,$fin,$idLicencia);
		$paginador["per_page"]		= 30;
		$paginador["num_links"]		= 5;
		
		$this->pagination->initialize($paginador);
		
		$data['registros']			= $this->solicitudes->obtenerAutorizaciones($paginador["per_page"],$limite,$criterio,$inicio,$fin,$idLicencia);
		$data['registrar']			= $this->_role!=1?$this->configuracion->comprobarPermisoAsignado($this->_iduser,41):1;
		$data['limite']				= $limite+1;
		
		$this->load->view('solicitudes/obtenerAutorizaciones',$data);
	}
	
	public function formularioRecepciones()
	{
		$data['registro'] 			= $this->solicitudes->obtenerRegistro($this->input->post('idSolicitud'));
		$data['detalles'] 			= $this->solicitudes->obtenerDetallesRegistro($this->input->post('idSolicitud'));
		$data['folio']				= $this->solicitudes->obtenerFolioRecepcion();
		$data['recepciones'] 		= $this->solicitudes->obtenerRecepcionesSolicitud($this->input->post('idSolicitud'));
		
		
		$data['editar']				= $this->_role!=1?$this->configuracion->comprobarPermisoAsignado($this->_iduser,42):1;
		$data['borrar']				= $this->_role!=1?$this->configuracion->comprobarPermisoAsignado($this->_iduser,43):1;

		$this->load->view('solicitudes/formularioRecepciones',$data);
	}
	
	public function registrarRecepcion()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->solicitudes->registrarRecepcion());
		}
		else
		{
			echo json_encode(array('0','Sin datos que registrar'));
		}
	}
	
	public function borrarRecepcion()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->solicitudes->borrarRecepcion($this->input->post('idRecepcion'),$this->input->post('idLicencia')));
		}
		else
		{
			echo json_encode(array('0','Sin datos que borrar'));
		}
	}
	
	public function formularioEditarRecepcion()
	{
		$data['registro'] 			= $this->solicitudes->obtenerRecepcion($this->input->post('idRecepcion'));
		$data['recepciones'] 		= $this->solicitudes->obtenerProductosRecepcion($this->input->post('idRecepcion'));

		$this->load->view('solicitudes/formularioEditarRecepcion',$data);
	}
	
	public function editarRecepcion()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->solicitudes->editarRecepcion());
		}
		else
		{
			echo json_encode(array('0','Sin datos que registrar'));
		}
	}
	
	public function solicitudPdf($idSolicitud=0)
	{
		$this->load->library('ccantidadletras');
		$this->load->library('mpdf/mpdf');
		
		
		$data['registro'] 	= $this->solicitudes->obtenerRegistro($idSolicitud);
		$data['detalles'] 	= $this->solicitudes->obtenerDetallesRegistro($idSolicitud);
		
		$data['destino'] 	= $this->tiendas->obtenerSucursalTraspaso($data['registro']->idLicencia);
		$data['empresa'] 	= $this->tiendas->obtenerSucursalTraspaso($data['registro']->idLicenciaSolicitud);
		$data['reporte'] 	= 'solicitudes/reporte/pdf';
		 
		#print($data['compra']->total);
		$this->ccantidadletras->setIdioma("ES");
        $this->ccantidadletras->setNumero($data['compra']->total);
		$this->ccantidadletras->setMoneda("pesos");//
		$CantidadLetras=$this->ccantidadletras->PrimeraMayuscula();
		
		$data['cantidadLetra']	= $CantidadLetras;
		
		$html	=$this->load->view('reportes/principal',$data,true);
		$pie	=$this->load->view('reportes/pie',$data,true);

		$this->mpdf->mPDF('en-x','Letter','','',10,10,69,8,5,1);
		$this->mpdf->SetHTMLFooter($pie);
		$this->mpdf->SetHTMLFooter($pie,'E');
		$this->mpdf->mirrorMargins = 1;
		$this->mpdf->WriteHTML($html);
		$this->mpdf->Output();
	}
	
}
?>
