<?php
require ("Consulta.class.php");
require ("SesionCentral.class.php");
require ("Constantes.class.php");
require ("Mensaje.class.php");
class trabajos extends SesionCentral{
function _construct(){
parent::_construct;
$this->dbtabla = 'trabajos';
}
public function mostrarTrabajo(){ /*($proyecto) el objetivo es obtener los clientes según el proyecto seleccionado JQUERY, AJAX, JS...*/
$query = "SELECT trabajos.idtrabajo as idtrab, trabajos.indi as indicador, trabajos.descripcion as descripcion,";
$query.="trabajos.grupo as grupo, actividades.actividad as actividad ,clientes.cliente as cliente,";
$query.="proyectos.proyecto as proyecto, interlocutores.interlocutor as interlocutor, trabajos.f_inicio as fechainicio,";
$query.="trabajos.f_fin as fechafin,trabajos.cantidad as cantidad, trabajos.escalado as escalado, ";
$query.="trabajos.preciototal as preciotot, trabajos.pago_actuacion as pagoactuacion, trabajos.nocturna as nocturna,";
$query.="trabajos.comentarios as comenta, trabajos.status_idstatus as status, actividades.actividad as actividad,";
$query.="precios.precio as precio, tallas.talla as talla,consultores.consultor as consultor FROM proyectos_clientes,";
$query.="((((((((trabajos INNER JOIN actividades ON trabajos.actividades_Id_actividad = actividades.Id_actividad)";
$query.="INNER JOIN actividades_tallas ON actividades.Id_actividad = actividades_tallas.idactividad)";
$query.="INNER JOIN tallas ON actividades_tallas.idtalla = tallas.talla)";
$query.="INNER JOIN tallas_precios ON tallas.talla = tallas_precios.idtalla)";
$query.="INNER JOIN precios ON tallas_precios.idprecio = precios.Id_precio)";
$query.="INNER JOIN consultores ON trabajos.consultores_Ident_consultor = consultores.Ident_consultor)";
$query.="INNER JOIN proyectos ON trabajos.proyecto = proyectos.Id_proyecto)";
$query.="INNER JOIN clientes ON trabajos.cliente = clientes.Id_cliente) ";
$query.="INNER JOIN interlocutores ON trabajos.interlocutor = interlocutores.Id_inerlocutor;";
$consulta = new Consulta($query);
if($fila = $consulta->obtener_fila()) {
$trabajo = array (
'idtrab' =>$fila['idtrab'],
'indicador' =>$fila['indicador'],
'descripcion' =>$fila['descripcion'],
'grupo' =>$fila['grupo'],
'actividad' =>$fila['actividad'],
'cliente' =>$fila['cliente'],
'proyecto' =>$fila['proyecto'],
'interlocutor' =>$fila['interlocutor'],
'fechainicio' =>$fila['fechainicio'],
'fechafin' =>$fila['fechafin'],
'cantidad' =>$fila['cantidad'],
'escalado' =>$fila['escalado'],
'preciotot' =>$fila['preciotot'],
'pagoactuacion' =>$fila['pagoactuacion'],
'nocturna' =>$fila['nocturna'],
'comenta' =>$fila['comenta'],
'status' =>$fila['status'],
'actividad' =>$fila['actividad'],
'precio' =>$fila['precio'],
'talla' =>$fila['talla'],
'consultor' =>$fila['consultor']);
}
return $trabajo;
}
/*Obtenemos el identificador del cliente a partir del nombre sacado del reporte*/
public function obtenerIdCliente($nombrecliente){
$query="SELECT Idcliente, cliente FROM clientes where cliente='$nombrecliente';";
$consulta = new Consulta($query);
if($fila=$consulta->obtener_fila()){
$cliente= array(
'Idcliente'=>$fila['Idcliente']);
}
return $cliente;
}
/*Obtenemos el identificador del proyecto a partir del nombre sacado del reporte*/
public function obtenerIdProyecto($nombreproyecto){
$query="SELECT Id_proyecto FROM proyectos where proyecto='$nombreproyecto';";
$consulta = new Consulta($query);
if($fila=$consulta->obtener_fila()){
$proyecto= array(
'Id_proyecto'=>$fila['Id_proyecto']);
}
return $proyecto;
}
/*Obtenemos el identificador del interlocutor a partir de su nombre sacado del reporte*/
public function obtenerIdInterlocutor($nombreinterlocutor){
$query="SELECT Id_inerlocutor FROM interlocutores where interlocutor='$nombreinterlocutor';";
$consulta = new Consulta($query);
if($fila=$consulta->obtener_fila()){
$interlocutor= array(
'Id_inerlocutor'=>$fila['Id_inerlocutor']);
}
return $interlocutor;
}
/*Obtenemos el identificador de la actividad a partir de su descripción sacada del reporte*/
public function obtenerIdActividad($nombreactividad){
$query="SELECT Id_actividad FROM actividades where actividad='$nombreactividad';";
$consulta = new Consulta($query);
if($fila=$consulta->obtener_fila()){
$actividad= array(
'Id_actividad'=>$fila['Id_actividad']);
}
return $actividad;
}
/*Obtenemos el identificador del status a partir de su descripción sacada del reporte*/
public function obtenerIdAStatus($nombrestatus){
$query="SELECT idstatus FROM status where statu='$nombrestatus';";
$consulta = new Consulta($query);
if($fila=$consulta->obtener_fila()){
$$status= array(
'idstatus'=>$fila['idstatus']);
}
return $status;
}
/*Obtenemos el precio de la actividad según el identificador*/
public function obtenerPrecioActividad($nombreactividad){
$query="SELECT precios.precio as precio FROM trabajos INNER JOIN ((((actividades INNER JOIN actividades_tallas ON";
$query.="actividades.Id_actividad = actividades_tallas.idactividad) INNER JOIN tallas ON actividades_tallas.idtalla ";
$query.="tallas.talla) INNER JOIN tallas_precios ON tallas.talla = tallas_precios.idtalla) INNER JOIN precios";
$query.="ON tallas_precios.idprecio = precios.Id_precio) ON trabajos.actividades_Id_actividad = actividades.actividad;";
$consulta = new Consulta($query);
if($fila=$consulta->obtener_fila()){
$precio= array(
'precio'=>$fila['precio']);
}
return $precio;
}
/*Validamos los datos que obtenemos del reporte antes de insertarlos en la tabla Trabajos.*/
private function validarDatos($descripcion, $fechainicio, $cantidad, $escalado){
$ret = null;
if ($descripcion == null || $descripcion == '' ){
$ret .= 'Descripcion <br>';
}
if ($fechainicio == null || $fechainicio == ''){
$ret .= 'Fecha de inicio <br>';
}
$cadena="/^[1-9]+$/";
$cadena2="/^0[.]{0,1}[0-9]{0,2}$/";
if (preg_match($cadena,$cantidad)){
$ret .= 'Cantidad <br>';
}
if (preg_match($cadena2,$cantidad)){
$ret .= 'Escalado <br>';
}
return $ret;
}
/*Insertamos el reporte en la tabla reportes.*/
public function insertarTrabajo($grupo, $descripcion, $cliente, $proyecto, $interlocutor, $fechainicio, $fechafin, $status, $actividad, $cantidad, $escalado, $pagoactuacion, $nocturna, $comentarios){
$ret = $this->validarDatos($descripcion, $fechainicio, $cantidad, $escalado);
if ( $ret != null ){
throw new Exception("Los siguientes datos no son válidos:<br/> " . $ret);
}
$cliente=obtenerIdCliente($cliente);
$proyecto=obtenerIdProyecto($proyecto);
$interlocutor=obtenerIdInterlocutor($interlocutor);
$actividad=obtenerIdActividad($actividad);
$status=obtenerIdAStatus($status);
$idconsultor=$_SESSION['usuario_actual'];
$indi=$grupo."_".$idconsultor."_".$fechainicio;
/*$precio=obtenerPrecioActividad($actividad);
$preciototal=$cantidad*$precio*$escalado;*/
$preciototal="0";
$query="INSERT INTO trabajosINSERT INTO trabajos (indi, descripcion, grupo, cliente, proyecto, interlocutor,";
$query.=" f_inicio, f_fin, cantidad, escalado, preciototal, pago_actuacion, nocturna, comentarios, status_idstatus,";
$query.="actividades_Id_actividad, consultores_Ident_consultor )";
$query.= VALUES('$indi', '$descripcion', '$grupo', '$cliente', '$proyecto', '$interlocutor', '$fechainicio', '$fechafin','$cantidad', '$escalado', '$preciototal', '$pagoactuacion', '$nocturna', '$comentarios', '$actividad', '$idconsultor');";
$consulta = new Consulta($query);
if(!$consulta) {
throw new Exception('Error al insertar el Trabajo');
}
$this->mostrarTrabajo();
}
}
?>