<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Cartaporte extends CI_Controller 
{
	private $_template;
    protected $_fechaActual;
    protected $_iduser;
    protected $_csstyle;
	protected $base;
	protected $cuota;
	protected $idLicencia;
	
	public function __construct()
	{
		parent::__construct();
		
		if( ! $this->redux_auth->logged_in() )
		{
			redirect(base_url().'login');
		}
		
		$this->config->load('style', TRUE);
		$this->config->load('js',TRUE);
		
		$this->_fechaActual 	= mdate("%Y-%m-%d %H:%i:%s",now());
		$this->_iduser		 	= $this->session->userdata('id');
		$this->_csstyle 		= $this->config->item('style');
		$this->_jss				= $this->config->item('js');
		$this->idLicencia 		= $this->session->userdata('idLicencia');
		
		$this->load->model('tiendas_modelo','tiendas');
		$this->load->model('cartaporte_modelo','cartaporte');
		$this->load->model('modelo_configuracion','configuracion');	
		$this->load->model("modelousuario","modelousuario");
		$this->load->model("catalogos_modelo","catalogos");
		$this->load->model("facturacion_modelo","facturacion");
	}
	
	public function index()
	{
		if($this->idLicencia!=1)
		{
			redirect('principal/permisosUsuario','refresh');
			return;
		}

		$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['permisos']		= $this->configuracion->obtenerRolPermisos($this->session->userdata('rol'));
		$Data['menuActivo']		= 'configuracion'; 
		
		$this->load->view("cabezera",$Data);
		$this->load->view('header',$Data);
		$this->load->view("principal",$Data);
		
		#----------------------------------PERMISOS------------------------------------#
		$data['permiso']=$this->configuracion->obtenerPermisosId('19',$this->session->userdata('rol'));
		
		if($data['permiso']->leer=='0' and $data['permiso']->escribir=='0')
		{
			redirect('principal/permisosUsuario','refresh');
			return;
		}
		
		$data['agregar']		= 0;
		$data["breadcumb"]		= 'Carta porte - Figura transporte';

		$this->load->view("cartaporte/operadores/index",$data);
		$this->load->view("pie",$Data);
	}
	
	public function obtenerOperadores($limite=0)
	{
		$criterio				= $this->input->post('criterio');

		#----------------------------------PAGINACIÓN------------------------------------#
		$paginas["base_url"]	= base_url()."cartaporte/obtenerOperadores/";
		$paginas["total_rows"]	= $this->cartaporte->contarOperadores($criterio);
		$paginas["per_page"]	= 25;
		$paginas["num_links"]	= 5;
		$paginas["uri_segment"]	= 3;
		
		$this->pagination->initialize($paginas);
		#--------------------------------------------------------------------------------#
		
		$data['registros']		= $this->cartaporte->obtenerOperadores($paginas["per_page"],$limite,$criterio);	
		$data['limite']			= $limite+1;
		$data['agregar']		= $this->input->post('agregar');
		
		$this->load->view('cartaporte/operadores/obtenerRegistros',$data);
	}
	
	public function formularioOperadores()
	{
		$data['figuras']	= $this->catalogos->obtenerFiguras();
		
		$this->load->view('cartaporte/operadores/formularioRegistro',$data);
	}
	
	public function registrarOperador()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->registrarOperador());
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	public function obtenerOperador()
	{
		$data['registro']	= $this->cartaporte->obtenerOperador($this->input->post('idOperador'));
		$data['figuras']	= $this->catalogos->obtenerFiguras();
		
		$this->load->view('cartaporte/operadores/obtenerRegistro',$data);
	}
	
	public function editarOperador()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->editarOperador());
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	#BORRAR OPERADOR
	#--------------------------------------------------------------------------------------------------------------------------
	public function borrarOperador()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->borrarOperador($this->input->post('idOperador')));
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	//ORIGENES
	//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	public function origenes()
	{
		if($this->idLicencia!=1)
		{
			redirect('principal/permisosUsuario','refresh');
			return;
		}

		$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['permisos']		= $this->configuracion->obtenerRolPermisos($this->session->userdata('rol'));
		$Data['menuActivo']		= 'configuracion'; 
		
		$this->load->view("cabezera",$Data);
		$this->load->view('header',$Data);
		$this->load->view("principal",$Data);
		
		#----------------------------------PERMISOS------------------------------------#
		$data['permiso']		= $this->configuracion->obtenerPermisosId('19',$this->session->userdata('rol'));
		
		if($data['permiso']->leer=='0' and $data['permiso']->escribir=='0')
		{
			redirect('principal/permisosUsuario','refresh');
			return;
		}
		
		$data['agregar']		= 0;
		$data["breadcumb"]		= 'Carta porte - Origenes';

		$this->load->view("cartaporte/origenes/index",$data);
		$this->load->view("pie",$Data);
	}
	
	public function obtenerOrigenes($limite=0)
	{
		$criterio					= $this->input->post('criterio');
		
		#----------------------------------PAGINACIÓN------------------------------------#
		$paginas["base_url"]		= base_url()."cartaporte/obtenerOrigenes/";
		$paginas["total_rows"]		= $this->cartaporte->contarOrigenes($criterio);
		$paginas["per_page"]		= 25;
		$paginas["num_links"]		= 5;
		$paginas["uri_segment"]		= 3;
		
		$this->pagination->initialize($paginas);
		#--------------------------------------------------------------------------------#
		
		$data['registros']			= $this->cartaporte->obtenerOrigenes($paginas["per_page"],$limite,$criterio);	
		$data['limite']				= $limite+1;
		$data['agregar']			= $this->input->post('agregar');
		
		$this->load->view('cartaporte/origenes/obtenerRegistros',$data);
	}
	
	public function formularioOrigenes()
	{
		$this->load->view('cartaporte/origenes/formularioRegistro');
	}
	
	public function registrarOrigen()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->registrarOrigen());
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	public function obtenerOrigen()
	{
		$data['registro']	= $this->cartaporte->obtenerOrigen($this->input->post('idOrigen'));
		
		$this->load->view('cartaporte/origenes/obtenerRegistro',$data);
	}
	
	public function editarOrigen()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->editarOrigen());
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	#BORRAR OPERADOR
	#--------------------------------------------------------------------------------------------------------------------------
	public function borrarOrigen()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->borrarOrigen($this->input->post('idOrigen')));
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	//DESTINOS
	//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	public function destinos()
	{
		if($this->idLicencia!=1)
		{
			redirect('principal/permisosUsuario','refresh');
			return;
		}

		$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['permisos']		= $this->configuracion->obtenerRolPermisos($this->session->userdata('rol'));
		$Data['menuActivo']		= 'configuracion'; 
		
		$this->load->view("cabezera",$Data);
		$this->load->view('header',$Data);
		$this->load->view("principal",$Data);
		
		#----------------------------------PERMISOS------------------------------------#
		$data['permiso']	= $this->configuracion->obtenerPermisosId('19',$this->session->userdata('rol'));
		
		if($data['permiso']->leer=='0' and $data['permiso']->escribir=='0')
		{
			redirect('principal/permisosUsuario','refresh');
			return;
		}
		
		$data['agregar']		= 0;
		$data["breadcumb"]		= 'Carta porte - Destinos';

		$this->load->view("cartaporte/destinos/index",$data);
		$this->load->view("pie",$Data);
	
	}
	
	public function obtenerDestinos($limite=0)
	{
		$criterio					= $this->input->post('criterio');
		
		#----------------------------------PAGINACIÓN------------------------------------#
		$paginas["base_url"]		= base_url()."cartaporte/obtenerDestinos/";
		$paginas["total_rows"]		= $this->cartaporte->contarDestinos($criterio);
		$paginas["per_page"]		= 25;
		$paginas["num_links"]		= 5;
		$paginas["uri_segment"]		= 3;
		
		$this->pagination->initialize($paginas);
		#--------------------------------------------------------------------------------#
		
		$data['registros']			= $this->cartaporte->obtenerDestinos($paginas["per_page"],$limite,$criterio);	
		$data['limite']				= $limite+1;
		$data['agregar']			= $this->input->post('agregar');
		
		$this->load->view('cartaporte/destinos/obtenerRegistros',$data);
	}
	
	public function formularioDestinos()
	{
		$this->load->view('cartaporte/destinos/formularioRegistro');
	}
	
	public function registrarDestino()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->registrarDestino());
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	public function obtenerDestino()
	{
		$data['registro']	= $this->cartaporte->obtenerDestino($this->input->post('idDestino'));
		
		$this->load->view('cartaporte/destinos/obtenerRegistro',$data);
	}
	
	public function editarDestino()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->editarDestino());
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	#BORRAR OPERADOR
	#--------------------------------------------------------------------------------------------------------------------------
	public function borrarDestino()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->borrarDestino($this->input->post('idDestino')));
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	//CONFIGURACIÓN
	
	public function generales()
	{
		if($this->idLicencia!=1)
		{
			redirect('principal/permisosUsuario','refresh');
			return;
		}

		$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['permisos']		= $this->configuracion->obtenerRolPermisos($this->session->userdata('rol'));
		$Data['menuActivo']		= 'configuracion'; 
		
		$this->load->view("cabezera",$Data);
		$this->load->view('header',$Data);
		$this->load->view("principal",$Data);
		
		#----------------------------------PERMISOS------------------------------------#
		$data['permiso']=$this->configuracion->obtenerPermisosId('19',$this->session->userdata('rol'));
		
		if($data['permiso']->leer=='0' and $data['permiso']->escribir=='0')
		{
			redirect('principal/permisosUsuario','refresh');
			return;
		}
		
		$data['agregar']		= 0;
		$data["breadcumb"]		= 'Carta porte - General';

		$this->load->view("cartaporte/general/index",$data);
		$this->load->view("pie",$Data);		
	}
	
	public function actualizarGeneral()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->actualizarGeneral());
		}
		else
		{
			echo json_encode(array(''));
		}
	}
	
	public function obtenerGenerales($limite=0)
	{
		$criterio					= $this->input->post('criterio');
		
		#----------------------------------PAGINACIÓN------------------------------------#
		$paginas["base_url"]		= base_url()."cartaporte/obtenerGenerales/";
		$paginas["total_rows"]		= $this->cartaporte->contarGenerales($criterio);
		$paginas["per_page"]		= 25;
		$paginas["num_links"]		= 5;
		$paginas["uri_segment"]		= 3;
		
		$this->pagination->initialize($paginas);
		#--------------------------------------------------------------------------------#
		
		$data['registros']			= $this->cartaporte->obtenerGenerales($paginas["per_page"],$limite,$criterio);	
		$data['limite']				= $limite+1;
		$data['agregar']			= $this->input->post('agregar');
		
		$this->load->view('cartaporte/general/obtenerRegistros',$data);
	}
	
	public function formularioGenerales()
	{
		$data['permisos']		= $this->catalogos->obtenerPermisosCarta();	
		
		$this->load->view('cartaporte/general/formularioRegistro',$data);
	}
	
	public function registrarGeneral()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->registrarGeneral());
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	public function obtenerGeneral()
	{
		$data['registro']	= $this->cartaporte->obtenerGeneral($this->input->post('idCarta'));
		$data['permisos']	= $this->catalogos->obtenerPermisosCarta();	
		
		$this->load->view('cartaporte/general/obtenerRegistro',$data);
	}
	
	public function editarGeneral()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->editarGeneral());
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	public function borrarGeneral()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->borrarGeneral($this->input->post('idCarta')));
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	//CARTA PORTE CATALOGOS
	
	public function listaOperadores()
	{
		$data['agregar']		= 1;
		
		$this->load->view("cartaporte/operadores/index",$data);
	}
	
	public function listaOrigenes()
	{
		$data['agregar']		= 1;
		
		$this->load->view("cartaporte/origenes/index",$data);
	}
	public function listaDestinos()
	{
		$data['agregar']		= 1;
		
		$this->load->view("cartaporte/destinos/index",$data);
	}
	
	
	public function formularioRegistro()
	{
		#$data['detalles']			= $this->cartaporte->obtenerProductosFacturados($this->input->post('idFactura'));
		$data['detalles'] 			= $this->tiendas->obtenerDetallesTraspasosCarta($this->input->post('folio'));
		$data['emisores']			= $this->configuracion->obtenerEmisoresFacturacion();
		$data['generales']			= $this->cartaporte->obtenerGenerales();
		$data['autotransporte']		= $this->catalogos->obtenerAutotransporte();
		$data['relaciones']			= $this->configuracion->obtenerTipoRelaciones();
		$data['vehiculos']			= $this->cartaporte->obtenerVehiculos();
		$data['folio']				= $this->input->post('folio');
		
		$this->load->view('facturacion/cartaporte/formularioRegistro',$data);
	}
	
	public function registrarCartaPorte()
	{
		if(!empty($_POST))
		{
			set_time_limit(0); 
			error_reporting(0);
			
			echo json_encode($this->cartaporte->registrarFormulario());
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	public function formularioManual()
	{
		$data['emisores']			= $this->facturacion->obtenerEmisores();
		$data['cartaPorte']			= $this->cartaporte->obtenerGeneral();
		$data['autotransporte']		= $this->catalogos->obtenerAutotransporte();
		$data['vehiculos']			= $this->cartaporte->obtenerVehiculos();
		$data['relaciones']			= $this->configuracion->obtenerTipoRelaciones();
		
		$this->load->view('facturacion/cartaporte/formularioManual',$data);
	}
	
	public function obtenerOperadoresRegistro()
	{
		$registros 		= $this->cartaporte->obtenerOperadoresRegistro($this->input->get('term'));
		
		if($registros!=null)
		{
			foreach ($registros as $row)
			{
				$result[]= $row;
			}
			
			echo json_encode($result);
		}
	}
	
	public function obtenerOrigenesRegistro()
	{
		$registros 		= $this->cartaporte->obtenerOrigenesRegistro($this->input->get('term'));
		
		if($registros!=null)
		{
			foreach ($registros as $row)
			{
				$result[]= $row;
			}
			
			echo json_encode($result);
		}
	}
	
	public function obtenerDestinosRegistro()
	{
		$registros 		= $this->cartaporte->obtenerDestinosRegistro($this->input->get('term'));
		
		if($registros!=null)
		{
			foreach ($registros as $row)
			{
				$result[]= $row;
			}
			
			echo json_encode($result);
		}
	}
	
	//VEVÍCULOS CARTA PORTE
	public function vehiculos()
	{
		if($this->idLicencia!=1)
		{
			redirect('principal/permisosUsuario','refresh');
			return;
		}

		$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['permisos']		= $this->configuracion->obtenerRolPermisos($this->session->userdata('rol'));
		$Data['menuActivo']		= 'configuracion'; 
		
		$this->load->view("cabezera",$Data);
		$this->load->view('header',$Data);
		$this->load->view("principal",$Data);
		
		#----------------------------------PERMISOS------------------------------------#
		$data['permiso']=$this->configuracion->obtenerPermisosId('19',$this->session->userdata('rol'));
		
		if($data['permiso']->leer=='0' and $data['permiso']->escribir=='0')
		{
			redirect('principal/permisosUsuario','refresh');
			return;
		}
		
		$data['agregar']	= 0;
		

		$data['permisos']		= $this->catalogos->obtenerPermisosCarta();	
		$data['autotransporte']	= $this->catalogos->obtenerAutotransporte();
		$data["breadcumb"]		= 'Carta porte - Vehículos';

		$this->load->view("cartaporte/vehiculos/index",$data);
		$this->load->view("pie",$Data);		
	}
	
	public function obtenerVehiculos($limite=0)
	{
		$criterio				= $this->input->post('criterio');

		#----------------------------------PAGINACIÓN------------------------------------#
		$paginas["base_url"]	= base_url()."cartaporte/obtenerVehiculos/";
		$paginas["total_rows"]	= $this->cartaporte->contarVehiculos($criterio);
		$paginas["per_page"]	= 25;
		$paginas["num_links"]	= 5;
		$paginas["uri_segment"]	= 3;
		
		$this->pagination->initialize($paginas);
		#--------------------------------------------------------------------------------#
		
		$data['registros']		= $this->cartaporte->obtenerVehiculos($paginas["per_page"],$limite,$criterio);	
		$data['limite']			= $limite+1;
		$data['agregar']		= $this->input->post('agregar');
		
		$this->load->view('cartaporte/vehiculos/obtenerRegistros',$data);
	}
	
	public function formularioVehiculos()
	{
		$data['autotransporte']	= $this->catalogos->obtenerAutotransporte();
		$data['remolques']		= $this->catalogos->obtenerRemolques();
		
		$this->load->view('cartaporte/vehiculos/formularioRegistro',$data);
	}
	
	public function registrarVehiculo()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->registrarVehiculo());
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	public function obtenerVehiculo()
	{
		$data['registro']		= $this->cartaporte->obtenerVehiculo($this->input->post('idVehiculo'));
		$data['autotransporte']	= $this->catalogos->obtenerAutotransporte();
		$data['remolques']		= $this->catalogos->obtenerRemolques();
		
		$this->load->view('cartaporte/vehiculos/obtenerRegistro',$data);
	}
	
	public function editarVehiculo()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->editarVehiculo());
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	#BORRAR VEHÍCULO
	#--------------------------------------------------------------------------------------------------------------------------
	public function borrarVehiculo()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->borrarVehiculo($this->input->post('idVehiculo')));
		}
		else
		{
			echo json_encode(array('0','Error en el registro'));
		}
	}
	
	public function registrarEntradasInventario()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->cartaporte->registrarEntradasInventario());
		}
		else
		{
			echo array('0','Eror al retornar el inventario');
		}
	}
}
