<?php
class PotencialViaje extends AppObjeto {
	
	// PK
	protected $potencial;
	protected $linea;
	
	// Propiedades
	protected $direccionEspana;
	protected $gpsEspana;
	protected $direccionFrancia;
	protected $gpsFrancia;
	
	/* para conectar con bd */
	protected static $_aliasTabla = 'pot_viaje';
	protected static $_nombreTabla = 'POTENCIALES_VIAJES';
	protected static $_campoPK = 'POTEN_PV';
	
	protected static function initMetaDatos(){
		
		self::addPropiedadBD('pot_viaje', 'POTEN_PV', 'potencial', self::META_VARCHAR);
		self::addPropiedadBD('pot_viaje', 'LINEA_PV', 'linea', self::META_VARCHAR);
		self::addPropiedadBD('pot_viaje', 'DIR_ESP_PV', 'direccionEspana', self::META_VARCHAR);
		self::addPropiedadBD('pot_viaje', 'GPS_ESP_PV', 'gpsEspana', self::META_VARCHAR);
		self::addPropiedadBD('pot_viaje', 'DIR_FRA_PV', 'direccionFrancia', self::META_VARCHAR);
		self::addPropiedadBD('pot_viaje', 'GPS_FRA_PV', 'gpsFrancia', self::META_VARCHAR);
		
	}
	
	public function __construct($potencial = null, $linea = null){
		$clase = get_class($this);
		$clase::initMetaDatos();
		$this->potencial = $potencial;
		$this->linea = $linea;
		if ($potencial != null && $linea != null){
			$this->load($potencial, $linea);
		}
	}
	
	public static function findByDireccionESP($potencial, $direccion){
		$clase = get_called_class();
		$select = $clase::selectObjeto();
		$select->where('POTEN_PV=?',$potencial);
		$select->where("DIR_ESP_PV=?",$direccion);
		echo $select;
		
		$res = $clase::selectExecute($select);
		if (!$res->estaVacio()){
			$datos = $res->getDatos();
			$dir = new PotencialViaje();
			$dir->id = array($potencial, $datos[0]['linea']);
			$dir->asignaDatosObjeto($datos[0]);
			return $dir;
		} else {
			return false;
		}
	}
	
	public static function findByDireccionFRA($potencial, $direccion){
		$clase = get_called_class();
		$select = $clase::selectObjeto();
		$select->where('POTEN_PV=?',$potencial);
		$select->where("DIR_FRA_PV=?",$direccion);
		echo $select;
	
		$res = $clase::selectExecute($select);
		if (!$res->estaVacio()){
			$datos = $res->getDatos();
			$dir = new PotencialViaje();
			$dir->id = array($potencial, $datos[0]['linea']);
			$dir->asignaDatosObjeto($datos[0]);
			return $dir;
		} else {
			return false;
		}
	}
		
	public function load($potencial, $linea){
		$clase = get_called_class();
		$select = $clase::selectObjeto();
		$select->where('POTEN_PV=?',$potencial);
		$select->where('LINEA_PV=?',$linea);
		echo $select;
	
		$res = $clase::selectExecute($select);
		if (!$res->estaVacio()){
			$datos = $res->getDatos();
			$this->id = array($potencial, $linea);
			$this->asignaDatosObjeto($datos[0]);
		}
	}
	
	public function save(){
		if ($this->potencial){
			$sql = sprintf("UPDATE POTENCIALES_VIAJES
					SET dir_esp_pv = '%s', 
					gps_esp_pv = '%s', 
					dir_fra_pv = '%s',
					gps_fra_pv = '%s'
					WHERE POTEN_PV='%s' AND LINEA_PV='%s'
					",
					$this->direccionEspana,
					$this->gpsEspana,
					$this->direccionFrancia,
					$this->gpsFrancia,
					$this->potencial,
					$this->linea);
			echo $sql;
			//die();
			try{
				$db = self::getDb();
				$adapter = $db->getAdapter();
				$adapter->query($sql);
			} catch (Exception $e){
				echo $e->getMessage();
			}
		}
		
	}
	
	public function getGpsEspana() {
	    return $this->gpsEspana;
	}
	public function setGpsEspana($gpsEspana) {
	    $this->gpsEspana = $gpsEspana;
	}
	
	public function getGpsFrancia() {
	    return $this->gpsFrancia;
	}
	public function setGpsFrancia($gpsFrancia) {
	    $this->gpsFrancia = $gpsFrancia;
	}
	
	
	
	
	
}