<?php
class Tiendas 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");
 	}
	
	public function prebusquedaTienda($idTienda)
	{
		if($idTienda=="0")
		{
			$idTienda="";
		}
		
		$this->session->set_userdata('idTiendaBusquedaEnvio',$idTienda);
		
		redirect('tiendas/index','refresh');
	}
	
	public function prebusquedaTiendaFecha($fecha)
	{
		if($fecha=="0")
		{
			$fecha="";
		}
		
		$this->session->set_userdata('idTiendaBusquedaEnvio',"");
		$this->session->set_userdata('idTiendaBusquedaEnvioFecha',$fecha);
		
		redirect('tiendas/index','refresh');
	}
	
	function index($limite=0)
	{
		$Data['title']= "Panel de Administración";	
		$Data['cassadmin']=$this->_csstyle["cassadmin"];
		$Data['csmenu']=$this->_csstyle["csmenu"];
		$Data['csui']=$this->_csstyle["csui"];
		$Data['Jry']=$this->_jss['jquery'];	 
		$Data['Jqui']=$this->_jss['jqueryui'];  	
		$Data['Jquical']=$this->_jss['jquerycal']; 	
		$Data['nameusuario']=$this->modelousuario->getUsuarios($this->_iduser);
		$Data['Fecha_actual']=$this->_fechaActual;
		$Data['permisos']=$this->configuracion->obtenerRolPermisos($this->session->userdata('rol'));
		$Data['menuActivo']='tiendas';
		
		$this->load->view("cabezera",$Data);
		$this->load->view('header',$Data);
		$this->load->view("principal",$Data);
		
		if($this->idTienda>0)
		{
			$Pag["base_url"]= base_url()."tiendas/index/";
			$Pag["total_rows"]=$this->tiendas->contarVentasTienda($this->idTienda);//Total de Registros
			$Pag["per_page"]=20;
			$Pag["num_links"]=5;
			
			$this->pagination->initialize($Pag);
			
			$data['bancos']=$this->bancos->obtenerBancos();
			$data['clientes']=$this->clientes->obtenerClientes();
			$data['ventas']=$this->tiendas->obtenerVentasTienda($this->idTienda,$Pag["per_page"],$limite);
			
			$this->load->view('tiendas/index',$data);
		}
		
		if($this->idTienda==0)
		{
			$Pag["base_url"]= base_url()."tiendas/index/";
			$Pag["total_rows"]=$this->tiendas->contarEnviosTienda();//Total de Registros
			$Pag["per_page"]=20;
			$Pag["num_links"]=5;
			
			$this->pagination->initialize($Pag);
			
			$data['tiendas']=$this->tiendas->obtenerTiendas();
			$data['envios']=$this->tiendas->obtenerEnviosTienda($Pag["per_page"],$limite);
			
			$this->load->view('tiendas/envios',$data);
		}
		
		$this->load->view("pie",$Data);	
	}
	
	public function obtenerProductosTienda()
	{
		$productos=$this->tiendas->obtenerProductosTienda($this->idTienda);
		$i=1;
		
		if($productos==null)
		{
			 echo
			 '<div class="Error_validar" style="margin-top:2px; width:95%; float:left margin-bottom: 5px;">
				Sin productos para esta tienda.
			</div>';
			
			return;
		}
		
		 echo
		 '<div style="width:90%; margin-bottom:1%;">
		  <ul id="pagination-digg" class="ajax-pag">';
		 echo $this->pagination->create_links();
		 echo'
		 </ul>
		</div>';
		
		echo
		'<table class="admintable" style="width:100%">
		<tr>
			<th style="border-bottom-right-radius: 0px; border-top-right-radius: 0px;" width="3%" align="right">#</th>
			<th style="border-radius: 0px" align="left">Imagen</th>
			<th style="border-radius: 0px" align="left">Nombre</th>
			<th style="border-radius: 0px" width="15%">Precio</th>
			<th style="border-radius: 0px" width="12%">Stock</th>
			<th style="border-bottom-left-radius: 0px; border-top-left-radius: 0px;" width="15%">Registro Unidades</th>
		</tr>';
		
		foreach($productos as $row)
		{
			$imagen='<img src="'.base_url().'img/productos/default.png" width="40" />';
			
			if(file_exists("img/productos/".$row->idProducto.'_'.$row->imagen))
			{
				$imagen='<img src="'.base_url().'img/productos/'.$row->idProducto.'_'.$row->imagen.'" width="40" />';
			}
			
			 $estilo		=$i%2>0?'class="sinSombra"':'class="sombreado"';
			
			echo'
			<tr '.$estilo.'>
				<td>'.$i.'</td>
				<td align="center">'.$imagen.'</td>
				<td>'.$row->nombre.'</td>
				<td align="right">$ '.$row->precioA.'</td>
				<td align="right">'.number_format($row->cantidad,2).'</td>
				<td align="center">
					<input type="hidden" id="cantidadTotal'.$i.'" value="'.$row->cantidad.'" />
					<input type="hidden" id="descripcion'.$i.'" value="'.$row->nombre.'" />
					<input type="hidden" id="precio'.$i.'" value="'.$row->precioA.'" />
					<input type="hidden" id="agregar'.$i.'" value="'.$row->idProducto.'" />
					<input type="text" value="0" class="cajas" id="cantidad'.$i.'" onchange="agregarProductoVenta('.$i.')" />
				</td>
			</tr>';
			
			$i++;
		}
		
		echo '</table>';
	}
	
	public function realizarVenta()
	{
		if(!empty($_POST))
		{
			$venta=$this->tiendas->realizarVenta();
			echo $venta;
		}
	}
	
	public function agregarCliente()
	{
		if(!empty($_POST))
		{
			$cliente=$this->clientes->agregarCliente();
			echo $cliente;
		}
	}
	
	public function borrarVenta($idCotizacion)
	{
		$cotizacion=$this->modeloclientes->borrarVenta($idCotizacion);
		
		if($cotizacion=="1")
		{
			redirect('tiendas','refresh');
		}
		else
		{
			redirect('tiendas','refresh');
		}
	}
	
	public function formularioCliente()
	{
		$zonas=$this->configuracion->obtenerZonas();
		
		echo'
		<table class="admintable" width="99%;">
			<tr>
				<td class="key">Empresa</td>
				<td>
					<textarea class="TextArea" style="width:200px" name="empresa" id="empresa"></textarea>
				</td>
			</tr>
			<tr>
				<td class="key">Tipo de precio</td>
				<td>
					<select name="txtPrecioCliente" id="txtPrecioCliente" class="cajas" style="width:200px">
						<option value="1">A</option>
						<option value="2">B</option>
						<option value="3">C</option>
						<option value="4">D</option>
						<option value="5">E</option>
					</select>
				
				</td>
			</tr>
			<tr>
				<td class="key" align="right">'.$this->session->userdata('identificador').':</td>
				<td>
				<input type="hidden" id="txtIdentificador" value='.$this->session->userdata('identificador').'" />
			 <select name="zona" id="zona" class="cajasSelect" style="width:200px">
				<option value="0">Seleccione</option>';
			  
				if(count($zonas) > 0)
				{ 
					foreach($zonas as $zona) 
					{ 
						echo'<option value="'.$zona['idZona'].'">'.$zona['descripcion'].'</option>';
					} 
				} 

		   echo'</select> 
			</td>
		   </tr>
		   
			 <tr>
				<td class="key">Estado</td>
				<td>
				<input type="text" class="cajas" name="estado" id="estado" style="width:200px"/>
				</td>
			</tr>
			
			<tr>
				<td class="key">Ciudad</td>
				<td>
				<input type="text" class="cajas" name="localidad" id="localidad" style="width:200px" />
				</td>
			</tr>
			
			  <tr>
				<td class="key">RFC</td>
				<td>
				<input type="text" class="cajas" name="rfc" id="rfc" style="width:200px" />
				</td>
			</tr>
			
			<tr>
				<td class="key">Dirección</td>
				<td>
					<textarea class="TextArea" name="direccion" id="direccion" style="width:200px"></textarea>
				</td>
			</tr>
			
			 <tr>
				<td class="key">Número</td>
				<td>
				<input type="text" class="cajas" name="numero" id="numero" style="width:200px"/>
				</td>
			</tr>
			
			 <tr>
				<td class="key">Colonia</td>
				<td>
				<input type="text" class="cajas" name="colonia" id="colonia" style="width:200px"/>
				</td>
			</tr>
			 <tr>
				<td class="key">Código Postal</td>
				<td>
				<input type="text" class="cajas" name="codigoPostal" id="codigoPostal" style="width:200px"/>
				</td>
			</tr>
			
			 <tr>
				<td class="key">Teléfono</td>
				<td>
				<input type="text" class="cajas" name="telefono" id="telefono" style="width:200px"/>
				</td>
			</tr>
			
			 <tr>
				<td class="key">Fax</td>
				<td>
				<input type="text" class="cajas" name="fax" id="fax" style="width:200px"/>
				</td>
			</tr>
			
			 <tr>
				<td class="key">Email</td>
				<td>
				<input type="text" class="cajas" name="email" id="email" style="width:200px"/>
				</td>
			</tr>
			
			 <tr>
				<td class="key">Pagina web</td>
				<td>
				<input type="text" class="cajas" name="pagina" id="pagina" style="width:200px"/>
				</td>
			</tr>
			<tr>
				<th colspan="2" align="center" class="key">Dirección de envio</th>
			 </tr>
			 
			 <tr>
				<td class="key">¿Es la misma que la anterior?</td>
				<td>
				Confirmar
				<input type="checkbox"  id="chkConfirmar" onchange="copiarDireccion()" />
				</td>
			</tr>
			
			  <tr>
				<td class="key">Dirección</td>
				<td>
				<textarea class="TextArea" name="direccionEnvio" id="direccionEnvio" style="width:200px"></textarea>
				</td>
			</tr>
			
			 <tr>
				<td class="key">Código postal</td>
				<td>
				<input type="text" class="cajas" name="codigoPostalEnvio" id="codigoPostalEnvio" style="width:200px"/>
				</td>
			</tr>
			
			 <tr>
				<td class="key">Estado</td>
				<td>
				<input type="text" class="cajas" name="estadoEnvio" id="estadoEnvio" style="width:200px"/>
				</td>
			</tr>
			 <tr>
				<td class="key">Ciudad</td>
				<td>
				<input type="text" class="cajas" name="ciudadEnvio" id="ciudadEnvio" style="width:200px"/>
				</td>
			</tr>
		</table>';
	}
	
	//PARA LOS ENVÍOS DE LOS PRODUCTOS
	public function obtenerEnvioss($limite=0)
	{
		$criterio					= $this->input->post('criterio');
		$idTienda					= $this->input->post('idTienda');
		$inicio						= $this->input->post('inicio');
		$fin						= $this->input->post('fin');
		
		$paginador["base_url"]		= base_url()."tiendas/obtenerEnvios/";
		$paginador["total_rows"]	= $this->tiendas->contarEnvios($idTienda,$criterio,$inicio,$fin);
		$paginador["per_page"]		= 25;
		$paginador["num_links"]		= 5;
		
		$this->pagination->initialize($paginador);
		
		$data['permiso']			= $this->configuracion->obtenerPermisosId('5',$this->session->userdata('rol'));
		$data['envios']				= $this->tiendas->obtenerEnvios($paginador["per_page"],$limite,$idTienda,$criterio,$inicio,$fin);
		$data['limite']				= $limite+1;
		
		$this->load->view('tiendas/envios/obtenerEnvios',$data);
	}
	
	public function reporteEnvios()
	{
		ini_set("memory_limit","1500M");
		set_time_limit(0); 
		$this->load->library('mpdf/mpdf');
		
		$criterio				= $this->input->post('criterio');
		$idTienda				= $this->input->post('idTienda');
		$inicio					= $this->input->post('inicio');
		$fin					= $this->input->post('fin');

		$data['envios']			= $this->tiendas->obtenerEnvios(0,0,$idTienda,$criterio,$inicio,$fin);
		$data['reporte'] 		= 'tiendas/envios/reporteEnvios';
		$data['inicio']  		= $inicio;
		$data['fin']  			= $fin;

		$html					= $this->load->view('reportes/principal',$data,true);
		$pie					= $this->load->view('reportes/pie',$data,true);
		
		$this->mpdf->mPDF('en-x','Legal-L','','',5,5,35,16,7,10);
		$this->mpdf->SetHTMLFooter($pie);
		$this->mpdf->SetHTMLFooter($pie,'E');
		$this->mpdf->mirrorMargins = 1;
		$this->mpdf->WriteHTML($html);
		$this->mpdf->Output('media/ficheros/reporteEnvios.pdf','F');
	}
	
	public function excelEnvios()
	{
		ini_set("memory_limit","1500M");
		set_time_limit(0); 
		$this->load->library('excel/PHPExcel');
		
		$criterio				= $this->input->post('criterio');
		$idTienda				= $this->input->post('idTienda');
		$inicio					= $this->input->post('inicio');
		$fin					= $this->input->post('fin');
		
		$data['envios']			= $this->tiendas->obtenerEnvios(0,0,$idTienda,$criterio,$inicio,$fin);
		
		$this->load->view('tiendas/envios/excelEnvios',$data);	
	}
	
	public function registrarEnvio()
	{
		if(!empty($_POST))
		{
			echo $this->tiendas->registrarEnvio();
		}
		else
		{
			echo "0";
		}
	}
	
	public function registrarTraspasos()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->tiendas->registrarTraspasos());
		}
		else
		{
			echo json_encode(array("0"));
		}
	}
	
	public function obtenerStockTienda()
	{
		if(!empty($_POST))
		{
			echo round($this->tiendas->obtenerStockTienda($this->input->post('idLicencia'),$this->input->post('idProducto')),2);
		}
		else
		{
			echo "0";
		}
	}
	
	public function obtenerProductosEnvio($limite=0)
	{
		$criterio					= $this->input->post('criterio');
		
		$paginador["base_url"]		= base_url()."tiendas/obtenerProductosEnvio/";
		$paginador["total_rows"]	= $this->tiendas->contarProductosEnvio($criterio);
		$paginador["per_page"]		= 15;
		$paginador["num_links"]		= 5;
		
		$this->pagination->initialize($paginador);
		
		$data['permiso']			= $this->configuracion->obtenerPermisosId('30',$this->session->userdata('rol'));
		$data['productos']			= $this->tiendas->obtenerProductosEnvio($paginador["per_page"],$limite,$criterio);
		$data['licencias'] 			= $this->configuracion->obtenerLicenciasFirestone(0,0,0);
		$data['limite']				= $limite+1;
		
		$this->load->view('tiendas/envios/obtenerProductosEnvio',$data);
	}
	
	//PARA LOS ENVÍOS DE LOS PRODUCTOS
	public function obtenerEnvios($limite=0)
	{
		$criterio					= $this->input->post('criterio');
		$idTienda					= $this->input->post('idTienda');
		$inicio						= $this->input->post('inicio');
		$fin						= $this->input->post('fin');
		$pendientes					= $this->input->post('pendientes');
		
		$paginador["base_url"]		= base_url()."tiendas/obtenerEnvios/";
		$paginador["total_rows"]	= $this->tiendas->contarTraspasos($idTienda,$criterio,$inicio,$fin,$pendientes);
		$paginador["per_page"]		= 25;
		$paginador["num_links"]		= 5;
		
		$this->pagination->initialize($paginador);
		
		$data['permiso']			= $this->configuracion->obtenerPermisosId('55',$this->session->userdata('rol'));
		$data['permisoBorrar']		= $this->_role!=1?$this->configuracion->comprobarPermisoAsignado($this->_iduser,28):1;	
		$data['envios']				= $this->tiendas->obtenerTraspasos($paginador["per_page"],$limite,$idTienda,$criterio,$inicio,$fin,$pendientes);
		$data['limite']				= $limite+1;
		$data['pendientes']			= $pendientes;
		
		$this->load->view('tiendas/envios/obtenerEnvios',$data);
	}
	
	//PARA LOS ENVÍOS DE LOS PRODUCTOS
	public function obtenerDetallesRecepciones($limite=0)
	{
		$criterio					= $this->input->post('criterio');
		$idTienda					= $this->input->post('idTienda');
		$inicio						= $this->input->post('inicio');
		$fin						= $this->input->post('fin');
		
		$paginador["base_url"]		= base_url()."tiendas/obtenerDetallesRecepciones/";
		$paginador["total_rows"]	= $this->tiendas->contarDetallesRecepciones($criterio,$inicio,$fin);
		$paginador["per_page"]		= 25;
		$paginador["num_links"]		= 5;
		
		$this->pagination->initialize($paginador);
		
		$data['permiso']			= $this->configuracion->obtenerPermisosId('55',$this->session->userdata('rol'));
		$data['recepciones']		= $this->tiendas->obtenerDetallesRecepciones($paginador["per_page"],$limite,$criterio,$inicio,$fin);
		$data['limite']				= $limite+1;
		
		$this->load->view('tiendas/envios/obtenerDetallesRecepciones',$data);
	}
	
	public function obtenerDetallesRecepcionesGrupo($limite=0)
	{
		$criterio					= $this->input->post('criterio');
		$idTienda					= $this->input->post('idTienda');
		$inicio						= $this->input->post('inicio');
		$fin						= $this->input->post('fin');
		$pendiente					= $this->input->post('pendiente');
		
		$paginador["base_url"]		= base_url()."tiendas/obtenerDetallesRecepcionesGrupo/";
		$paginador["total_rows"]	= $this->tiendas->contarDetallesRecepcionesGrupo($criterio,$inicio,$fin,$pendiente);
		$paginador["per_page"]		= 25;
		$paginador["num_links"]		= 5;
		
		$this->pagination->initialize($paginador);
		
		$data['permiso']			= $this->configuracion->obtenerPermisosId('55',$this->session->userdata('rol'));
		$data['recepciones']		= $this->tiendas->obtenerDetallesRecepcionesGrupo($paginador["per_page"],$limite,$criterio,$inicio,$fin,$pendiente);
		$data['limite']				= $limite+1;
		
		$this->load->view('tiendas/envios/obtenerDetallesRecepcionesGrupo',$data);
	}
	
	public function obtenerRecibidosTraspaso()
	{
		if(!empty($_POST))
		{
			$data['recepcion']			= $this->tiendas->obtenerDetallesRecepcion($this->input->post('idTraspaso'));
			$data['recibidos']			= $this->tiendas->obtenerRecibidosTraspaso($this->input->post('idTraspaso'));
			$data['permisoBorrar']		= $this->_role!=1?$this->configuracion->comprobarPermisoAsignado($this->_iduser,28):1;	
			
			$this->load->view('tiendas/envios/obtenerRecibidosTraspaso',$data);
		}
		else
		{
			echo "0";
		}
	}
	
	public function registrarRecepcion()
	{
		if(!empty($_POST))
		{
			echo $this->tiendas->registrarRecepcion();
		}
		else
		{
			echo "0";
		}
	}
	
	public function borrarRecibidoTraspaso()
	{
		if(!empty($_POST))
		{
			echo $this->tiendas->borrarRecibidoTraspaso($this->input->post('idRecepcion'));
		}
		else
		{
			echo "0";
		}
	}
	
	public function borrarTraspasoProducto()
	{
		if(!empty($_POST))
		{
			echo $this->tiendas->borrarTraspasoProducto($this->input->post('idTraspaso'),$this->input->post('origen'));
		}
		else
		{
			echo "0";
		}
	}
	
	
	public function obtenerRecibidosTraspasoGrupo()
	{
		if(!empty($_POST))
		{
			$data['recepciones']		= $this->tiendas->obtenerDetallesRecepcionesFolio($this->input->post('folio'),$this->input->post('destino'));
			$data['folio']				= $this->input->post('folio');
			$data['destino']			= $this->input->post('destino');
			#$data['recibidos']			= $this->tiendas->obtenerRecibidosTraspaso($this->input->post('folio'),$this->input->post('destino'));
			#$data['permisoBorrar']		= $this->_role!=1?$this->configuracion->comprobarPermisoAsignado($this->_iduser,28):1;	
			
			$this->load->view('tiendas/envios/obtenerRecibidosTraspasoGrupo',$data);
		}
		else
		{
			echo "0";
		}
	}
	
	public function registrarRecepcionGrupo()
	{
		if(!empty($_POST))
		{
			echo json_encode($this->tiendas->registrarRecepcionGrupo());
		}
		else
		{
			echo json_encode(array('0','Sin cambios en los registros'));
		}
	}
	
	
	public function traspasosPdf($idTraspaso=0,$folio=0)
	{
		$this->load->library('ccantidadletras');
		$this->load->library('mpdf/mpdf');
		
		
		$data['traspaso'] 	= $this->tiendas->obtenerDetalleTraspaso($idTraspaso);
		$data['traspasos'] 	= $this->tiendas->obtenerDetallesTraspasos($folio);
		$data['destino'] 	= $this->tiendas->obtenerSucursalTraspaso($data['traspaso']->destino);
		$data['empresa'] 	= $this->configuracion->obtenerConfiguraciones();
		#$data['reporte'] 	= 'tiendas/envios/reporte/traspasosPdf';
		$data['reporte'] 	= 'formatos/traspaso/formato';
		
		$html	=$this->load->view('reportes/principal',$data,true);
		$pie	=$this->load->view('reportes/pie',$data,true);

		$this->mpdf->mPDF('en-x','Letter','','',10,10,40,8,5,1);
		$this->mpdf->SetHTMLFooter($pie);
		$this->mpdf->SetHTMLFooter($pie,'E');
		$this->mpdf->mirrorMargins = 1;
		$this->mpdf->WriteHTML($html);
		$this->mpdf->Output('Traspaso '.$data['traspaso']->folio.'.pdf','D');
	}
}
?>
