<?php
class Ventas extends CI_Controller
{
	protected $_fechaActual;
	protected $_iduser;
	protected $_csstyle;
    protected $_tables;
    protected $_role;

	function __construct()
	{
		parent::__construct();

		if( ! $this->redux_auth->logged_in() )
		{//verificar si el el usuario ha iniciado sesion
 			redirect(base_url().'login');
 		}
		
		$datestring   = "%Y-%m-%d %H:%i:%s";
		$this->_fechaActual = mdate($datestring,now());
		$this->_iduser = $this->session->userdata('id');
		$this->_role = $this->session->userdata('role');
		$this->config->load('datatables', TRUE);
		$this->_tables = $this->config->item('datatables');
		$this->config->load('style', TRUE);
		$this->_csstyle = $this->config->item('style');
        $this->config->load('js',TRUE);
        $this->_jss=$this->config->item('js');

        $this->load->model("modelousuario","modelousuario");
        $this->load->model("modeloclientes","modeloclientes");
		$this->load->model("modelo_configuracion","configuracion");
		$this->load->model("inventarioproductos_modelo","inventario");
        $this->load->model("ventas_model","ventas");
		$this->load->model("proveedores_model","proveedores");
		
		if($this->session->userdata('matriz')=='1')
		{
			redirect('reportes/lista','refresh');
		}
	}

	public function index($Limite=0)
	{
		$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['Jquical']=$this->_jss['jquerycal'];
		$Data['Jry']=$this->_jss['jquery'];
		$Data['Jqui']=$this->_jss['jqueryui'];
		$Data['jvalidate']=$this->_jss['jvalidate'];
		$Data['jFicha_cliente']=$this->_jss['jFicha_cliente'];
		$Data['JFunMensajeria']=$this->_jss['JFunMensajeria'];
		$Data['permisos']=$this->configuracion->obtenerRolPermisos($this->session->userdata('rol'));
		
		$this->load->view("cabezera",$Data);
		$this->load->view('header',$Data);
		$this->load->view("principal",$Data);
		$Conte['Categoria']=$this->uri->segment(1);

		 $Pag["base_url"]= base_url()."ventas/index/";
		 $Pag["total_rows"]=$this->ventas->numeroCotizaciones();//Total de Registros
		 $Pag["per_page"]=8;
		 $Pag["num_links"]=5;
	
		 $this->pagination->initialize($Pag);
	
		 $Conte['Cotizaciones'] = $this->ventas->cotizacion_todos_cliente($Pag["per_page"],$Limite);
	
		 $Conte['inicio']  = $Limite;
		 $num_r = count($Conte['Cotizaciones']);
		 $Conte['per_page']= $num_r;
		 //echo $Limite; return;
		
		//$Datos['Cotizaciones'] = $this->ventas->cotizacion_todos_cliente();
		
		$this->load->view('ventas/ventas',$Conte);
		$this->load->view("pie",$Data);
	}
	
	public function remisiones($Limite=0)
	{
		$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['Jquical']=$this->_jss['jquerycal'];
		$Data['Jry']=$this->_jss['jquery'];
		$Data['Jqui']=$this->_jss['jqueryui'];
		$Data['jvalidate']=$this->_jss['jvalidate'];
		$Data['jFicha_cliente']=$this->_jss['jFicha_cliente'];
		$Data['JFunMensajeria']=$this->_jss['JFunMensajeria'];
		$Data['permisos']=$this->configuracion->obtenerRolPermisos($this->session->userdata('rol'));
		
		$this->load->view("cabezera",$Data);
		$this->load->view('header',$Data);
		$this->load->view("principal",$Data);
		$Conte['Categoria']=$this->uri->segment(1);

		$Pag["base_url"]= base_url()."ventas/remisiones/";
		$Pag["total_rows"]=$this->ventas->numeroRemisiones();//Total de Registros
		$Pag["per_page"]=10;
		$Pag["num_links"]=5;
	
		 $this->pagination->initialize($Pag);
		
		 $global="1";
			
		 $this->session->set_userdata('global',$global);
		 
		 $Conte['clientes']=$this->modeloclientes->obtenerClientes();
		 $Conte['Cotizaciones'] = $this->ventas->obtenerRemisiones($Pag["per_page"],$Limite);
		 $Conte['zonas']=$this->configuracion->obtenerZonas();
		
		 $Conte['inicio']  = $Limite;
		 $num_r = count($Conte['Cotizaciones']);
		 $Conte['per_page']= $num_r;
		 //echo $Limite; return;
		
		//$Datos['Cotizaciones'] = $this->ventas->cotizacion_todos_cliente();
		
		$this->load->view('ventas/remisiones',$Conte);
		$this->load->view("pie",$Data);
	}
	
	function prebusqueda($nombre)
	{
		if($nombre=='nada')
		{
			$nombre="";
		}
		
		$idZona="";
		
		$this->session->set_userdata("idZona",$idZona);
		$this->session->set_userdata('clienteRemisiones',$nombre);
		
		redirect('ventas/remisiones/0','refresh');
	}
	
	function busquedaZona($idZona)
	{
		if($idZona=='todos')
		{
			$idZona="";
		}
		
		$clienteRemisiones="";

		$this->session->set_userdata("idZona",$idZona);
		$this->session->set_userdata('clienteRemisiones',$clienteRemisiones);

		redirect('ventas/remisiones/0','refresh');
	}
	
	public function facturasCliente($Limite=0)
	{
		$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['Jquical']=$this->_jss['jquerycal'];
		$Data['Jry']=$this->_jss['jquery'];
		$Data['Jqui']=$this->_jss['jqueryui'];
		$Data['jvalidate']=$this->_jss['jvalidate'];
		$Data['jFicha_cliente']=$this->_jss['jFicha_cliente'];
		$Data['JFunMensajeria']=$this->_jss['JFunMensajeria'];
		$Data['permisos']=$this->configuracion->obtenerRolPermisos($this->session->userdata('rol'));
		$Data['menuActivo']='clientes'; 
		
		$this->load->view("cabezera",$Data);
		$this->load->view('header',$Data);
		$this->load->view("principal",$Data);
		
		$idCliente=$this->session->userdata('idFacturaCliente');
		
		$Pag["base_url"]= base_url()."ventas/index/";
		$Pag["total_rows"]=$this->ventas->numeroFacturasCliente($idCliente);//Total de Registros
		$Pag["per_page"]=8;
		$Pag["num_links"]=5;
		
		$this->pagination->initialize($Pag);
		
		$global="1";
		
		$this->session->set_userdata('global',$global);
		
		$Conte['clientes']=$this->modeloclientes->obtenerClientes();
		$Conte['facturas'] = $this->ventas->obtenerFacturasCliente($Pag["per_page"],$Limite,$idCliente);

		$Conte['inicio']  = $Limite;
		$num_r = count($Conte['facturas']);
		$Conte['per_page']= $num_r;

		$this->load->view('ventas/facturasClientes',$Conte);
		$this->load->view("pie",$Data);
	}
	
	public function prebusquedaFacturasCliente($idCliente)
	{
		$this->session->set_userdata('idFacturaCliente',$idCliente);
		
		redirect('ventas/facturasCliente','refresh');
	}
	
	public function entregarProductos()
	{
		if(!empty($_POST))
		{
			echo $this->ventas->entregarProductos();
		}
		else
		{
			echo "0";
		}
	}
	
	public function buscarEntregas($id)
	{
		$entrega	= $this->ventas->BuscarDetalleEntrega($id);
		
		echo
		'<table class="admintable" width="100%;">
			<tr>
				<th>Fecha</th>
				<th>Cantidad</th>
				<th>Entrego</th>
			</tr>';
		
		if($entrega!=NULL)
		{
			foreach ($entrega as $detalles)
			{
				echo'
				<tr>
					<td align="center"> '.$detalles['fecha'].' </td>
					<td align="center"> '.$detalles['cantidad'].' </td>
					<td align="center"> '.$detalles['entrego'].' </td>
				</tr>';
			}
		}
		
		echo '</table>';
	}
	
	public function remisionesFactura()
	{
		if(!empty($_POST))
		{
			$remisiones=$this->ventas->obtenerRemisionesFactura();

			print
			('
			<table class="admintable" style="width:99%">
				<tr>
				<th colspan="4">Detalle de remisiones por factura</th>
			</tr>
			<tr>
				<th>#</th>
				<th>Fecha</th>
				<th>Empresa</th>
				<th>Serie</th>
			</tr>
			');
			
			$i=1;

			foreach($remisiones as $row)
			{
				print
				('
					<tr>
						<td align="center">'.$i.'</td>
						<td align="center">'.$row->fechadd.'</td>
						<td align="center">'.$row->empresa.'</td>
						<td align="center">'.$row->serie.'</td>
					</tr>
				');
				
				$i++;
			}
			
			print('</table>');
		}
	}
	
	public function cancelarFactura()
	{
		if(!empty($_POST))
		{
			$factura=$this->ventas->cancelarFactura();
			print($factura);
		}
	}
	
	public function motivosCancelacionFactura()
	{
		if(!empty($_POST))
		{
			$folio=$this->ventas->obtenerFolioFactura();
			
			echo
			'<table class="admintable" width="99%">
				<tr>
					<th colspan="2">Detalle de cancelacion</th>
				</tr>
				<tr>
					<td class="key">Folio</td>
					<td>'.$folio.'</td>
				</tr>
				<tr>
					<td class="key">Motivos de cancelacion</td>
					<td>
						<textarea style="width:200px" id="motivosCancelacion" name="motivosCancelacion" class="TextArea"></textarea>
					</td>
				</tr>
			</table>';
		}
	}
	
	
	#-------------------------------------------------------------------------------------------------------------------#
	#ENVIAR TODOS LOS PRODUCTOS
	public function enviarTodosProductos()
	{
		if(!empty($_POST))
		{
			$idCotizacion=$this->input->post('idCotizacion');
			
			$entrega=$this->ventas->enviarTodosProductos($idCotizacion);
			
			if($entrega=="1")
			{
				$this->session->set_userdata('notificacion','Se han entregado correctamente todos los productos');
			}
			
			print($entrega);
		}
	}
	
	
	#-------------------------------------------------------------------------------------------------------------------#
	#OBTENER LOS DETALLES DEL SERVICIO PARA ENTREGA
	public function obtenerServiciosVenta()
	{
		if(!empty($_POST))
		{
			$idCotizacion			=$this->input->post('idCotizacion');
			$data['servicios']		=$this->ventas->obtenerServiciosVenta($idCotizacion);
			
			$this->load->view('clientes/ventas/obtenerServiciosVenta',$data);
		}
	}
	
	public function obtenerRefaccionesEntregadas()
	{
		if(!empty($_POST))
		{
			$idProducto				=$this->input->post('idProducto');
			$data['refacciones']	=$this->ventas->obtenerRefaccionesEntregadas($idProducto);
			$data['servicio']		=$this->ventas->obtenerServicioVenta($idProducto);
			
			$this->load->view('clientes/ventas/obtenerRefaccionesEntregadas',$data);
		}
	}
	
	public function entregarRefacciones()
	{
		if(!empty($_POST))
		{
			echo $this->ventas->entregarRefacciones();
		}
		else
		{
			echo "0";
		}
	}
	
	public function autorizarVenta()
	{
		if(!empty($_POST))
		{
			echo $this->ventas->autorizarVenta();
		}
		else
		{
			echo "0";
		}
	}
	
	//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	#AUTORIZACIONES
	//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	public function obtenerAutorizaciones()
	{
		if(!empty($_POST))
		{
			$data['autorizaciones']		= $this->ventas->obtenerAutorizaciones($this->input->post('idCliente'));
			$data['cliente']			= $this->ventas->obtenerCliente($this->input->post('idCliente'));
			
			$this->load->view('clientes/credito/obtenerAutorizaciones',$data);
		}
	}

	public function registrarAutorizacion()
	{
		if(!empty($_POST))
		{
			echo $this->ventas->registrarAutorizacion();
		}
		else
		{
			echo "0";
		}
	}
	
	//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	#AUTORIZACIONES DE VENTAS PARCIALES
	//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	public function obtenerAutorizacionesParciales()
	{
		if(!empty($_POST))
		{
			$data['cotizaciones']		= $this->ventas->obtenerAutorizacionesParciales($this->input->post('idCliente'));
			$data['cliente']			= $this->ventas->obtenerCliente($this->input->post('idCliente'));
			
			$this->load->view('clientes/autorizaciones/obtenerAutorizacionesParciales',$data);
		}
	}

	public function autorizarVentaParcial()
	{
		if(!empty($_POST))
		{
			echo $this->ventas->autorizarVentaParcial();
		}
		else
		{
			echo "0";
		}
	}
	
	public function borrarVentaParcial()
	{
		if(!empty($_POST))
		{
			echo $this->ventas->borrarVentaParcial();
		}
		else
		{
			echo "0";
		}
	}
	
	public function comprobarAutorizacion()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->ventas->comprobarAutorizacion($this->input->post('idCotizacion')));
		}
		else
		{
			echo json_encode(array(0));
		}
	}
	
	
	//>REGISTRAR LA VENTA PARCIAL
	public function registrarVentaParcial()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->ventas->registrarVentaParcial());
		}
		else
		{
			echo json_encode(array("0"));
		}
	}
	
	
	//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	#EDICIÓN DE VENTAS - VENDEDOR Y MECANICO
	//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	public function obtenerVentaEditar()
	{
		if(!empty($_POST))
		{
			$data['venta']				= $this->ventas->obtenerVentaEditar($this->input->post('idCotizacion'));
			$data['mecanicos']			= $this->configuracion->obtenerMecanicosLicencia();
			$data['vendedores']			= $this->configuracion->obtenerVendedoresLicencia();
			$data['proveedores']		= $this->proveedores->obtenerProveedoresRegistro();
			
			$this->load->view('ventas/editar/obtenerVentaEditar',$data);
		}
	}
	
	public function editarVenta()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->ventas->editarVenta());
		}
		else
		{
			echo json_encode(array("0"));
		}
	}
	
	//>REGISTRAR LA VENTA PARCIAL
	public function revisarDescuentoCantidadProducto()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->inventario->revisarDescuentoCantidadProducto());
		}
		else
		{
			echo json_encode(array('idProducto'=>0));
		}
	}


	
}
?>
