<?php

class WservicioController extends WadminController {
	
	public function listadoAction(){
		
		$listado = new LSTServicio();
		
		$ly = $this->getLayout();
		$ly->reg_titulo->setTitulo('Servicios Activos');
		$ly->reg_contenido->addElement($listado);
		
	}
	
	public function trabajoAction(){
		
		$layout = $this->getLayout();
		
		$ft = $this->getParametro('ft',-1);
		$titulo = '';
		switch ($ft){
			case 'fra':
				$titulo = ' Francia';
				break;
			case 'nf':
				$titulo = ' No Francia';
		}
		// Título
		$layout->reg_titulo->setTitulo('Trabajos'.$titulo);
		
		//Cabecera
		$listado = new LSTTrabajos();
		$listado->addParametroMetodo('filtro',$ft);
		$boton_francia = new VstBoton_Cabecera('/wservicio/trabajo/ft/fra', VstBoton_Cabecera::icon_viajes_francia, 'Viajes a Francia');
		$boton_españa = new VstBoton_Cabecera('/wservicio/trabajo/ft/nf', VstBoton_Cabecera::icon_viajes_españa, 'Viajes NO Francia');
		$layout->reg_titulo->addBoton($boton_francia);
		$layout->reg_titulo->addBoton($boton_españa);
		
		$layout->reg_contenido->addElement($listado);
	}
	
	/**
	 * Ver el resumen de los pasajeros
	 */
	public function resumenAction(){
	
		// Leer parámetros
		$id = $this->_request->getParam('id', -1);
	
		// Lógica
		$servicio = new Servicio($id);
		$codigoVehículo = $servicio->getCodigoVehiculo();
		$vehiculo = new Vehiculo($codigoVehículo);
		$numeroPlazasVehículo = $vehiculo->getNumeroPlazas();
	
		// Visual
		$layout = $this->getLayout();
	
	
		// Cabecera
		$layout->reg_titulo->setTitulo($servicio->numeroServicio);
		// TAREAS
		if($servicio->tarifa == 'TARIFRANC' || $servicio->tarifa == 'SCONDUCTOR'){
			$codigo = $servicio->getCodigoParaViaje();
		} else {
			$codigo = $servicio->getNumeroServicio();
		}
		if (ServicioViaje::getTareasViajeros($codigo)>0){
			$btTareas = new VstBoton_Cabecera('/wservicio/tareas/id/'.$servicio->numeroServicio, VstBoton_Cabecera::icon_tareas, 'Tareas');
			$layout->reg_titulo->addBoton($btTareas);
	
		}
		// RESUMEN
		if($servicio->tarifa == 'TARIFRANC' || $servicio->tarifa == 'SCONDUCTOR'){
			$btFrancia = new VstBoton_Cabecera('/wservicio/resumen/id/'.$servicio->numeroServicio, VstBoton_Cabecera::icon_francia, 'Francia');
			$btFrancia->setEstaSeleccionado(true);
			$layout->reg_titulo->addBoton($btFrancia);
		}
		// ESTADOS
		$btEnCoche = new VstBoton_Cabecera('/servicio/estados/id/'.$servicio->numeroServicio, VstBoton_Cabecera::icon_encoche, 'En coche');
		//$layout->reg_titulo->addBoton($btEnCoche);
	
		// INFO
		$btVer = new VstBoton_Cabecera('/servicio/ver/id/'.$servicio->numeroServicio, VstBoton_Cabecera::icon_info, 'Datos');
		//$layout->reg_titulo->addBoton($btVer);
	
	
		// Fin de cabecera
	
	
	
	
	
			
	
	
	
		// Viajeros en FRANCIA
	
		if ($servicio->tarifa == 'TARIFRANC' || $servicio->tarifa == 'SCONDUCTOR'){
			$codigoFrancia = $servicio->getCodigoParaViaje();
			$servicioFrancia = new Servicio($codigoFrancia);
			$cobros = $servicio->loadCobros();
				
				
			$contPasajeros = new vstContenedor('Pasajeros');
			$vista = new VstVista('resumen_admin');
				
			$plazasDisponibles = $numeroPlazasVehículo - $servicioFrancia->numeroPlazasOcupadas(0);
	
			$vista->titulo = "España - Francia (Pax:".$servicioFrancia->numeroPlazasOcupadas(0)." / Dispo:".$plazasDisponibles.")";
			$vista->contrato = $servicio->getCodigoParaViaje();
			$vista->ida = 0;
			$vista->esTarea = false;
			$vista->cobros = $cobros;
				
			$parametros = array('contrato'=> $servicio->getCodigoParaViaje() ,
					'ida'=>0);
			$lista_viajes = ServicioViaje::lstPasajeros($parametros);
	
			foreach ($lista_viajes as $key => &$reg){
				if ($reg['paquetesCantidad']>0 && $reg['personasCantidad']==0)
					$reg['estadovisible'] = 'Paquete_sin_recoger';
				else
					$reg['estadovisible'] = 'Persona_sin_recoger';
			}
			$vista->lista_viajes = $lista_viajes;
			$contPasajeros->addElement($vista);
	
			$vista = new VstVista('resumen_admin');
			$plazasDisponibles = $numeroPlazasVehículo - $servicioFrancia->numeroPlazasOcupadas(1);
			$vista->titulo = "Francia - España (Pax:".$servicioFrancia->numeroPlazasOcupadas(1)." / Dispo:".$plazasDisponibles.")";
			$vista->contrato = $servicio->getCodigoParaViaje();
			$vista->ida = 1;
			$vista->cobros = $cobros;
			$vista->esTarea = false;
	
			$parametros = array('contrato'=> $servicio->getCodigoParaViaje() ,
					'ida'=>1);
			$lista_viajes = ServicioViaje::lstPasajeros($parametros);
			if (is_array($lista_viajes)){
				foreach ($lista_viajes as $key => &$reg){
					if ($reg['paquetesCantidad']>0 && $reg['personasCantidad']==0)
						$reg['estadovisible'] = 'Paquete_recogido';
					else
						$reg['estadovisible'] = 'Persona_recogido';
				}
			}
	
			$vista->lista_viajes = $lista_viajes;
				
			$contPasajeros->addElement($vista);
	
			$layout->reg_contenido->addElement($contPasajeros);
		} else {
			$msj = ' No hay viajeros.';
			$layout->reg_contenido->addElement($msj);
		}
	}
	


	public function tareasAction(){
	
		$todos = $this->getParametro('td',-1);
		// parámetro $todos nos indica si sólo mostramos los que falta o todos: -1 / 1
		$idServicio = $this->getParametro('id');
		$servicio = new Servicio($idServicio);
		$codigoVehículo = $servicio->getCodigoVehiculo();
		$vehiculo = new Vehiculo($codigoVehículo);
		$numeroPlazasVehículo = $vehiculo->getNumeroPlazas();
	
		// Visual
		$layout = $this->getLayout();
	
		// Cabecera
		$layout->reg_titulo->setTitulo($servicio->numeroServicio);
		// TAREAS
		if($servicio->tarifa == 'TARIFRANC' || $servicio->tarifa == 'SCONDUCTOR'){
			$codigo = $servicio->getCodigoParaViaje();
		} else {
			$codigo = $servicio->getNumeroServicio();
		}
		if (ServicioViaje::getTareasViajeros($codigo)>0){
			$btTareas = new VstBoton_Cabecera('/wservicio/tareas/id/'.$servicio->numeroServicio, VstBoton_Cabecera::icon_tareas, 'Tareas');
			$btTareas->setEstaSeleccionado(true);
			$layout->reg_titulo->addBoton($btTareas);
	
		}
		// RESUMEN
		if($servicio->tarifa == 'TARIFRANC' || $servicio->tarifa == 'SCONDUCTOR'){
			$btFrancia = new VstBoton_Cabecera('/wservicio/resumen/id/'.$servicio->numeroServicio, VstBoton_Cabecera::icon_francia, 'Francia');
			$layout->reg_titulo->addBoton($btFrancia);
		}
/*		// ESTADOS
		$btEnCoche = new VstBoton_Cabecera('/servicio/estados/id/'.$servicio->numeroServicio, VstBoton_Cabecera::icon_encoche, 'En coche');
		$layout->reg_titulo->addBoton($btEnCoche);
	
		// INFO
		$btVer = new VstBoton_Cabecera('/servicio/ver/id/'.$servicio->numeroServicio, VstBoton_Cabecera::icon_info, 'Datos');
		$layout->reg_titulo->addBoton($btVer);
	*/
	
		// Fin de cabecera
	
	
		$contPasajeros = new vstContenedor('Orden viajeros');
		// Viajes sin son de Francia o tareas si son otras tarifas
		if($servicio->tarifa == 'TARIFRANC' || $servicio->tarifa == 'SCONDUCTOR'){

			$codigoFrancia = $servicio->getCodigoParaViaje();
			$servicioFrancia = new Servicio($codigoFrancia);
			
			
	
			// VIAJE DE IDA
			$parametros = array('contrato'=> $servicio->getCodigoParaViaje() ,
					'ida'=>0,
					'todos'=>$todos
			);
			$lista_viajes = ServicioViaje::lstTodos($parametros)->getDatos();
			$vista = new VstVista('trabajo_viajes_admin');
			$plazasDisponibles = $numeroPlazasVehículo - $servicioFrancia->numeroPlazasOcupadas(0);
			$vista->titulo = "España - Francia (Pax:".$servicioFrancia->numeroPlazasOcupadas(0)." / Dispo:".$plazasDisponibles.")";
			$vista->contrato = $servicio->getCodigoParaViaje();
			$vista->ida = 0;
			$vista->numeroservicio = $servicio->numeroServicio;
			$vista->esTarea = false;
			$vista->accion = 'tareas';
			if ($todos==-1)
				$vista->todos = 1;
			else
				$vista->todos = -1;
				
			foreach ($lista_viajes as $key => &$reg){
				$reg['estadovisible'] = ServicioViaje::devolverEstilo($reg);
			}
			//print_r($lista_viajes);
			$vista->lista_viajes = $lista_viajes;
			$contPasajeros->addElement($vista);
	
			// VIAJE DE VUELTA
			$parametros = array('contrato'=> $servicio->getCodigoParaViaje() ,
					'ida'=>1,
					'todos' => $todos
			);
			$vista = new VstVista('trabajo_viajes_admin');
			$lista_viajes = ServicioViaje::lstTodos($parametros)->getDatos();
				
			$plazasDisponibles = $numeroPlazasVehículo - $servicioFrancia->numeroPlazasOcupadas(1);
			$vista->titulo = "Francia - España (Pax:".$servicioFrancia->numeroPlazasOcupadas(1)." / Dispo:".$plazasDisponibles.")";
			$vista->ida = 1;
			$vista->contrato = $servicio->getCodigoParaViaje();
			$vista->numeroservicio = $servicio->numeroServicio;
			$vista->esTarea = false;
			$vista->accion = 'tareas';
			if ($todos==-1)
				$vista->todos = 1;
			else
				$vista->todos = -1;
			foreach ($lista_viajes as $key => &$reg){
				$reg['estadovisible'] = ServicioViaje::devolverEstilo($reg);
	
			}

			$vista->lista_viajes = $lista_viajes;
			$contPasajeros->addElement($vista);
	
	
		} else {
	
			$parametros = array('contrato' => $servicio->getNumeroServicio(),
					'ida'=>7,
					'todos'=> $todos
			);
			$lista_viajes = ServicioViaje::lstTodos($parametros)->getDatos();
			$vista = new VstVista('trabajo_viajes_admin');
			$vista->titulo = 'Tareas';
			$vista->esTarea = true;
			$vista->numeroservicio = $servicio->numeroServicio;
			$vista->accion = 'tareas';
			if ($todos==-1)
				$vista->todos = 1;
			else
				$vista->todos = -1;
			foreach ($lista_viajes as $key => &$reg){
				$reg['estadovisible'] = ServicioViaje::devolverEstilo($reg);
			}

			$vista->lista_viajes = $lista_viajes;
			$contPasajeros->addElement($vista);	
		}
		$layout->reg_contenido->addElement($contPasajeros);
	
	}
	
	public function subirordenAction(){
		$contrato = $this->getParametro('contrato');
		$linea = $this->getParametro('linea');
		$ida = $this->getParametro('ida');
		$dejar = $this->getParametro('dejar');
		$contratoServicio = Servicio::getCodigoParaServicio($contrato);
	
		ServicioViaje::reordenarElemento($contrato, $linea, $ida, $dejar, true);
		$this->_redirect('/wservicio/tareas/id/'.$contratoServicio);
	
	}
	public function bajarordenAction(){
		$contrato = $this->getParametro('contrato');
		$linea = $this->getParametro('linea');
		$ida = $this->getParametro('ida');
		$dejar = $this->getParametro('dejar');
		ServicioViaje::reordenarElemento($contrato, $linea, $ida, $dejar, false);
	
		$contratoServicio = Servicio::getCodigoParaServicio($contrato);
		$this->_redirect('/wservicio/tareas/id/'.$contratoServicio);
	}
	
	
	public function editarAction(){
	
		// Lógica
		$id = $this->getParametro('id');
		$servicio = new Servicio($id);
	
		// servicio
		$contservicio = new vstContenedor('Servicio '.$id);
		$fila = new VstFila();
	
		$infoIzquierda = new VstInfo();
		$infoIzquierda->addElement('Cliente', $servicio->getClienteNombre());
		$infoIzquierda->addElement('Contacto', $servicio->getContactoNombre());
		$infoIzquierda->addElement('Tipo Servicio', $servicio->getTipoServicio());
		$infoIzquierda->addElement('Fecha y Hora', $servicio->getFechaHoraInicio());
		$infoIzquierda->addElement('Vehículo', $servicio->getVehiculoNombre());
		$infoIzquierda->addElement('Observaciones', $servicio->getObservaciones());
		$infoIzquierda->addElement('Itinerario', $servicio->getItinerario());
	
		$infoDerecha = new VstInfo();
		$infoDerecha->addElement('Tfno Cliente', $servicio->getClienteTelefono());
		$infoDerecha->addElement('Tfno Contacto', $servicio->getContactoTelefono());
		$infoDerecha->addElement('Origen', $servicio->getOrigenLugar().'<br/>'.$servicio->getOrigenDireccion());
		$infoDerecha->addElement('Destino', $servicio->getDestinoLugar().'<br/>'.$servicio->getDestinoDireccion());
		$infoDerecha->addElement('Nº Personas', $servicio->getNumeroPersonas());
		$infoDerecha->addElement('Precio', '<span class="precio_destacado">'.number_format($servicio->getPrecioConIva(),2).' &euro;</span>');
	
		$fila->addElemento($infoIzquierda,6);
		$fila->addElemento($infoDerecha,6);
		$contservicio->addElement($fila);
		
		$btVolver = new VstBoton('javascript:history.back();','','Volver','Volver',new VstIcono(VstIcono::APP_icon_backward));
		$btVolver->setClase('btn btn-primary');
		$contservicio->addElement($btVolver);
		
	
		// Visual
		$ly = $this->getLayout();
		$ly->reg_titulo->setTitulo('Ver servicio');
		$ly->reg_contenido->addElement($contservicio);
	
	}
	
}