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

    function __construct()
	{
		parent::__construct();
	
		if( ! $this->redux_auth->logged_in() )
		{//verificar si el el usuario ha iniciado sesion
			redirect(base_url().'login');
		}
		
		$this->config->load('js',TRUE);
		$this->config->load('style', TRUE);
		$this->config->load('datatables', TRUE);
		
		$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->_tables 			= $this->config->item('datatables');
		$this->_csstyle 		= $this->config->item('style');
		$this->_jss				= $this->config->item('js');
		
		$this->load->model("modelousuario","usuario");
		$this->load->model("modeloclientes","clientes");
		$this->load->model("inventario_model","inventario");
		$this->load->model('bancos_model','bancos');
		$this->load->model('ventas_model','ventas');
		$this->load->model('proveedores_model','proveedores');
		$this->load->model("modelo_configuracion","configuracion");
		$this->load->model("compras_modelo","compras");
		
		$this->_Variables=$this->configuracion->getAllVariables();
	}

	public function contactos($Idc)
	{
		$this->session->set_userdata('idClienteFicha',$Idc);
		
		$Data['title']			= "Panel de Administración";
		$Data['cassadmin']		=$this->_csstyle["cassadmin"];
		$Data['csmenu']			=$this->_csstyle["csmenu"];
		$Data['csui']			=$this->_csstyle["csui"];
		$Data['nameusuario']	=$this->usuario->getUsuarios($this->_iduser);
		$Data['Fecha_actual']	=$this->_fechaActual;
		$Data['Jry']			=$this->_jss['jquery'];
		$Data['Jqui']			=$this->_jss['jqueryui'];
		$Data['jFicha_cliente']	=$this->_jss['jFicha_cliente'];
		$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);
		
		#----------------------------------PERMISOS------------------------------------#

		$data['permiso']=$this->configuracion->obtenerPermisosId('1',$this->session->userdata('rol'));
		
		if($data['permiso']->leer=='0' and $data['permiso']->escribir=='0')
		{
			$this->load->view('accesos/index');
			$this->load->view("pie",$Data);
			
			return;
		}
		
		$data["contactos"]		= $this->clientes->getContactosCliente($Idc);
		$data["cliente"]		= $this->clientes->obtenerCliente($Idc);
		$data["IDC"]			= $Idc;
		$data['idRol']			= $this->_role;
		
		$this->load->view("clientes/ficha/contactos",$data);
		$this->load->view("pie",$Data);
	}
	
	public function editarContacto()
	{
		if(!empty($_POST))
		{
			$contacto=$this->clientes->editarContacto();
			$contacto==1?$this->session->set_userdata('notificacion','El contacto se ha editado corractamente'):'';
			
			echo $contacto;		
		}
	}
	
	public function borrarContacto($idContacto,$idCliente)
	{
		$contacto=$this->clientes->borrarContacto($idContacto);
		
		$contacto==1?
		$this->session->set_userdata('notificacion','El contacto se ha borrado correctamente'):
		$this->session->set_userdata('errorNotificacion','Error al borrar al contacto');
		
		redirect('ficha/contactos/'.$idCliente,'refresh');
	}
	
	public function obtenerContacto()
	{
		$idContacto	=$this->input->post('idContacto');
		$contacto	=$this->clientes->obtenerContacto($idContacto);
		
		echo'
		<table class="admintable" width="100%;">
			<tr>
				<td class="key">Nombre:</td>
				<td>
					<input type="text" name="txtNombre" id="txtNombre" class="cajas" style="width:220px;" value="'.$contacto->nombre.'" /> 
					<input type="hidden" name="txtIdContacto" id="txtIdContacto" class="cajas" style="width:220px;" value="'.$contacto->idContacto.'" />
				</td>
			</tr>
			<tr>
				<td class="key">Departamento:</td>
				<td>
					<input name="txtDepartamento" style="width:220px;" type="text" class="cajas" id="txtDepartamento" value="'.$contacto->direccion.'"  /> 
				</td>
			</tr>
			<tr>
				<td class="key">Teléfono:</td>
				<td>
					<input type="text" name="txtTelefono" id="txtTelefono" class="cajas" style="width:220px;" value="'.$contacto->telefono.'" /> 
				</td>
			</tr>
			<tr>
			  	<td class="key">Extension:</td>
			  	<td>
			  		<input type="text" name="txtExtension" id="txtExtension" class="cajas"style="width:220px;" value="'.$contacto->extension.'">
				</td>
			</tr>
			<tr>
				<td class="key">Email:</td>
				<td>
					<input type="text" name="txtEmail" id="txtEmail" class="cajas" style="width:220px;" value="'.$contacto->email.'" /> 
				</td>
			</tr>
		</table>';
	}

	public function cotizacion($idCliente=0)
	{
		$Data['title']			= "Panel de Administración";
		$Data['cassadmin']		=$this->_csstyle["cassadmin"];
		$Data['csmenu']			=$this->_csstyle["csmenu"];
		$Data['csui']			=$this->_csstyle["csui"];
		$Data['csvalidate']		=$this->_csstyle["csvalidate"];
		$Data['nameusuario']	=$this->usuario->getUsuarios($this->_iduser);
		$Data['Fecha_actual']	=$this->_fechaActual;
		$Data['Jry']			=$this->_jss['jquery'];
		$Data['Jqui']			=$this->_jss['jqueryui'];
		$Data['Jquical']		=$this->_jss['jquerycal'];
		$Data['jvalidate']		=$this->_jss['jvalidate'];
		$Data['jFicha_cliente']	=$this->_jss['jFicha_cliente'];
		$Data['jFicha_cotiza']	=$this->_jss['jFicha_cotiza'];
		$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);

		$Datos=$this->clientes->getNameCliente($idCliente);
		
		$data["idCotizacion"]	=$this->inventario->obtenerId();
		#$data["dclientes"]=$this->clientes->getNameCliente($idCliente);
		$data["contacto"]		=$this->clientes->obtenerContactoCliente($idCliente);
		$data["cliente"]		=$this->clientes->cliente_usuario($idCliente);
		#$data["zonas"]=$this->configuracion->obtenerZonas($idCliente);
		
		$data["IDC"]=$idCliente;
		$data["IVA"]=$this->_Variables[0]['iva'];
		$this->load->view("clientes/ficha/agregarCotizacion",$data);
		$this->load->view("pie",$Data);
	}

	public function listaproductos($Limite=0)
	{
		if(!empty ($_POST))
		{
			if($this->input->post('T1')=="all")
			{
				$Pag["base_url"]= base_url()."ficha/listaproductos";
				$Pag["total_rows"]=$this->inventario->coutproducto();//Total de Registros
				$Pag["per_page"]=50;
				$Pag["num_links"]=5;
				
				$this->pagination->initialize($Pag);
				
				$Datos['Registros'] = $this->inventario->get_AllPag($Pag["per_page"],$Limite);
				
				$Datos['inicio']  = $Limite;
				$num_r = count($Datos['Registros']);
				$Datos['per_page']= $num_r;
				
				$Datos["Serie"]=$this->input->post('serie');
				
			}//Muestra todos de la lista
			else
			if($this->input->post('T1')=="pag")
			{
				$Pag["base_url"]= base_url()."ficha/listaproductos";
				$Pag["total_rows"]=$this->inventario->coutproducto();//Total de Registros
				$Pag["per_page"]=50;
				$Pag["num_links"]=5;
				
				$this->pagination->initialize($Pag);
				
				$Datos['Registros'] = $this->inventario->get_AllPag($Pag["per_page"],$Limite);
				
				$Datos['inicio']  = $Limite;
				$num_r = count($Datos['Registros']);
				$Datos['per_page']= $num_r;
				
				$Datos["Serie"]=$this->input->post('serie');
			}//Pag
		}//Fin del POST
		$this->load->view("clientes/ficha/paginacion",$Datos);
	}//Termina listaproductos


	public function agregarCotizacion()
	{
		if(!empty($_POST))
		{
			$cotizacion=$this->inventario->agregarCotizacion();
			
			$cotizacion=="1"?
				$this->session->set_userdata('notificacion','La cotización se ha registrado correctamente'):
				$this->session->set_userdata('errorNotificacion','Error al registrar el la cotización');
				
			redirect('clientes/busquedaClienteFicha/'.$this->input->post('id_cli'), 'refresh');
		}
		else 
		{
			redirect('clientes', 'refresh');
		}//else
	}//SaveNewCotizar

	public function editcotiza($idCotizacion)
	{
		$Data['title']			= "Panel de Administración";
		$Data['cassadmin']		=$this->_csstyle["cassadmin"];
		$Data['csmenu']			=$this->_csstyle["csmenu"];
		$Data['csui']			=$this->_csstyle["csui"];
		$Data['csvalidate']		=$this->_csstyle["csvalidate"];
		$Data['nameusuario']	=$this->usuario->getUsuarios($this->_iduser);
		$Data['Fecha_actual']	=$this->_fechaActual;
		$Data['Jry']			=$this->_jss['jquery'];
		$Data['Jqui']			=$this->_jss['jqueryui'];
		$Data['Jquical']		=$this->_jss['jquerycal'];
		$Data['jvalidate']		=$this->_jss['jvalidate'];
		$Data['jFicha_cliente']	=$this->_jss['jFicha_cliente'];
		$Data['jFicha_cotiza']	=$this->_jss['jFicha_cotiza'];
		$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);
		

		$data["cotizacion"]		=$this->clientes->obtenerCotizacionVenta($idCotizacion);
		$cotizacion				=$data["cotizacion"];
		$data["dclientes"]		=$this->clientes->getNameCliente($cotizacion->idCliente);
		$data["cliente"]		=$this->clientes->cliente_usuario($cotizacion->idCliente);
		$data["contacto"]		=$this->clientes->obtenerContactoCliente($cotizacion->idCliente);
		$data["IDC"]			=$cotizacion->idCliente;
		$data["productos"]		=$this->inventario->obtenerProductosCotizacion($idCotizacion);

		$this->load->view("clientes/ficha/editarCotizacion",$data);
		$this->load->view("pie",$Data);
  }

	public function editarCotizacion()
	{
		if(!empty($_POST))
		{
			if($this->inventario->editarCotizacion() != NULL)
			{
				$this->session->set_flashdata('message', 
				array('messageType' => 'success','Message' => 'Se modifico correctamente la cotizaci&oacute;n.'));
			}
			else
			{
				$this->session->set_flashdata('message', 
				array('messageType' => 'error','Message' => 'Ocurrio un error al modificar la cotización'));
			}//else
			
			redirect('clientes/busquedaClienteFicha/'.$this->input->post('id_cli')."/", 'refresh');
		}//$_POST
		else 
		{
			redirect('clientes/', 'refresh');
		}	//else
	
	}


	public function DeleteCotizacion()
	{
		if(!empty($_POST))
		{
			$Idct=$this->input->post('Idct');
			
			if($this->inventario->DeleteCotizacion($Idct)!=NULL)
			{
				print("1");
			}
			else
			{
				print("0");
			} 
		}
		else
		{
			print("0");
		}//
	}

	public function NOdernTrabajo()
	{
		if(!empty($_POST))
		{
			$No=$this->input->post('No');
			$Idct=$this->input->post('Idct');
			
			if($this->inventario->AddNoOrdenTrabajo($No,$Idct)!=NULL)
			{
				print("1");
			}
			else
			{
				print("0");
			} 
		}
		else
		{
			print("0");
		}
	}

	public function NOdernPedido()
	{
		if(!empty($_POST))
		{
			$No=$this->input->post('No');
			$Idct=$this->input->post('Idct');
			
			if($this->inventario->AddNoOrdenPedido($No,$Idct)!=NULL)
			{
				print("1");
			}//Eliminar
			else
			{
				print("0");
			} 
		}
		else
		{
			print("0");
		}
	}

	public function DeleteCotizacionOrden()
	{
		if(!empty($_POST))
		{
			$Idct=$this->input->post('Idct');
			
			if($this->inventario->DeleteCotizacionOrden($Idct)!=NULL)
			{
				print("1");
			}//Eliminar
			else
			{
				print("0");
			} 
		}
		else
		{
			print("0");
		}
	}

	public function realizarPago()
	{
		if(!empty($_POST))
		{
			$pago	=$this->clientes->realizarPago();
			echo $pago;
		}
	}
	
	public function obtenerCuentas($idBanco)
	{
		$cuentas	=$this->bancos->obtenerCuentasBanco($idBanco);
		
		echo'<select id="cuentasBanco" name="cuentasBanco" class="cajas" style="width:150px">'; 
		
		if($cuentas!=null)
		{
			foreach($cuentas as $cuenta)
			{
				echo'<option value="'.$cuenta->idCuenta.'">'.$cuenta->cuenta.'</option>';
			}
		}
		
		else
		{
			echo'<option value="0"> Seleccione</option>';
		}
		
		print('</select>');
	}
	
	public function mostrarPagos($idVenta)
	{
		$Pagos=$this->clientes->obtenerPagos($idVenta);
		
		print
		('
			<table class="admintable" width="99%;" >
			<thead>
			<th style="width:130px;">Fecha Hora/Pago</th>
			<th>Forma de pago</th>
			<th>Tarjeta</th>
			<th>No.Cheque</th>
			<th>Banco</th>
			<th>Plazo de pago</th>
			<th style="width:130px;">Pago</th>
		');
		foreach($Pagos as $Pago)
		{
			print
			('
				<tr>
				<td align="center" valign="middle">'.$Pago->fecha.' </td>
				<td align="center" valign="middle">'.$Pago->formaPago.' </td>
				<td align="center" valign="middle">'.' </td>
				<td align="center" valign="middle">'.' </td>
				<td align="center" valign="middle">'.$Pago->banco.' </td>
				<td align="center" valign="middle">'.' </td>
				<td align="center" valign="middle">$ '.number_format($Pago->pago,2).' </td>
				</tr>
			');
		}
		print('</table>');
	}
	
	public function borrarCobro()
	{
		$idIngreso	=$this->input->post('idIngreso');
		$cobro		=$this->clientes->borrarCobro($idIngreso);
	
		echo $cobro;
	}
//*****************************

	public function clientesZona()
	{
		if(!empty($_POST))
		{
			$idZona=$this->input->post('idZona');
			//print($idZona);
			$clientes=$this->clientes->obtenerClientesZona($idZona);
			
			echo ' <select id="id_cli" name="id_cli" class="cajas" style="width:auto" >';
			
			foreach($clientes as $cliente) 
			{
				echo '<option value="'.$cliente['id'].'">'.$cliente['empresa'].'</option>'; 
			}
			
			echo '</select>';
		}
	}
	
	public function clientesZonaProduccion()
	{
		if(!empty($_POST))
		{
			$idZona=$this->input->post('idZona');
			$clientes=$this->clientes->obtenerClientesZona($idZona);
			
			echo ' <select id="id_cli" name="id_cli" class="cajas" style="width:auto" onchange="obtenerProductosOrden()" >
			<option value="0">Todos</option>
			';
			
			foreach($clientes as $cliente) 
			{
				echo '<option value="'.$cliente['id'].'">'.$cliente['empresa'].'</option>'; 
			}
			
			echo '</select>';
		}
	}
	
	public function obtenerDetalleExistencia()
	{
		$productos=$this->input->post('productos');
		$cantidades=$this->input->post('cantidades');
		
		$indice=count($productos);
		
		$valores='';
		$ban=0;
		
		for($i=0;$i<$indice;$i++)
		{
			$sql="select cexistencia, descripcion
			from productos
			where id='".$productos[$i]."'";
			
			$query=$this->db->query($sql);
			
			$query=$query->row();
			
			#echo $cantidades[$i];
			
			if($cantidades[$i]>$query->cexistencia)
			{
				#$valores.='En existencia hay '.$cantidades[$i].' unidades de '.$query->descripcion . ' Actualmente existen '. 
				#$query->cexistencia .' cajas&' ;
				
				$valores.='En existencia hay '.$query->cexistencia.' unidades de '.$query->descripcion.'&' ;
				$ban=1;
			}
		}
		
		if($ban==0)
		{
			echo "0";
		}
		else
		{
			echo $valores;
		}
	
	}
	
	public function descuentoAdicional()
	{
		if(!empty($_POST))
		{
			$descuento=$this->clientes->descuentoAdicional();
			echo $descuento;
		}
	}
	
	public function obtenerCobrosClientes()
	{
		$idCotizacion	=$this->input->post('idCotizacion');
		
		$data['cotizacion']		=$this->clientes->obtenerCotizacionVenta($idCotizacion);
		$data['pagos']			=$this->clientes->obtenerPagosForma($idCotizacion);
		$data['total']			=$this->clientes->obtenerPagado($idCotizacion);
		$data['cuentas'] 		=$this->configuracion->obtenerCuentasContables();
		$data['bancos']			=$this->bancos->obtenerBancos();
		$data['formas']			=$this->configuracion->obtenerFormas();
		
		$this->load->view('clientes/cobros/formularioRegistro',$data);
		
	}

	public function borrarCotizacion($idCotizacion)
	{
		$cotizacion=$this->clientes->borrarCotizacion($idCotizacion);
		
		if($cotizacion=="1")
		{
			redirect('clientes/ficha','refresh');
		}
		else
		{
			redirect('clientes/ficha','refresh');
		}
	}
	
	public function borrarVenta($idCotizacion)
	{
		$cotizacion=$this->clientes->borrarVenta($idCotizacion);
		
		if($cotizacion=="1")
		{
			redirect('clientes/ventas','refresh');
		}
		else
		{
			redirect('clientes/ventas','refresh');
		}
	}
	
	public function cancelarVenta($idCotizacion)
	{
		$cotizacion=$this->clientes->cancelarVenta($idCotizacion);
		
		if($cotizacion=="1")
		{
			redirect('clientes/ventas','refresh');
		}
		else
		{
			redirect('clientes/ventas','refresh');
		}
	}
	
	public function obtenerCotizacionOrden()
	{
		$data['cotizacion']		= $this->clientes->obtenerCotizacionVenta($this->input->post('idCotizacion'));
		$data['productos']		= $this->ventas->obtenerProveedoresProductosCotizacion($this->input->post('idCotizacion'));
		$data['folio']			= $this->clientes->obtenerFolio();
		$data['ordenServicio']	= $this->ventas->obtenerOrdenServicio();
		
		$this->load->view('clientes/cotizacion/obtenerCotizacionOrden',$data);
	}
	
	public function agregarOrdenCompra()
	{
		if(!empty($_POST))
		{
			$registro	= $this->ventas->agregarOrdenCompra($this->input->post('txtIdCotizacion'));

			if($registro[0]=='1')
			{
				$this->session->set_userdata('notificacion','El registro ha sido exitoso');
			}

			echo json_encode($registro);
		}
		else
		{
			echo json_encode(array('0','Error'));
		}
	}
}//Controlador
?>
