Conexion->Cerrar(); } // ************************************************************************************************************************************************* ?> '.$tablanodo.'

'; if ($resul){ if(empty($swc)){ echo ''; } else{ echo ''; } } else{ if(empty($swc)){ echo ''; } else{ echo ''; } } ?> CreaParametro("@idcentro",$idcentro,1); $cmd->CreaParametro("@idtrabajo",$idtrabajo,1); $cmd->CreaParametro("@descripcion",$descripcion,0); $cmd->CreaParametro("@comentarios",$comentarios,0); $cmd->CreaParametro("@grupoid",$grupoid,1); switch($opcion){ case $op_alta : $cmd->texto="INSERT INTO trabajos (descripcion,comentarios,idcentro,grupoid) VALUES (@descripcion,@comentarios,@idcentro,@grupoid)"; $resul=$cmd->Ejecutar(); if ($resul){ // Crea una tabla nodo para devolver a la página que llamó ésta $idtrabajo=$cmd->Autonumerico(); $arbolXML=SubarbolXML_trabajos($idtrabajo,$descripcion,""); $baseurlimg="../images/signos"; // Url de las imagenes de signo $clasedefault="texto_arbol"; // Hoja de estilo (Clase por defecto) del árbol $arbol=new ArbolVistaXML($arbolXML,0,$baseurlimg,$clasedefault); $tablanodo=$arbol->CreaArbolVistaXML(); } break; case $op_modificacion: $cmd->texto="UPDATE trabajos SET descripcion=@descripcion,comentarios=@comentarios WHERE idtrabajo=@idtrabajo"; $resul=$cmd->Ejecutar(); break; case $op_eliminacion : $resul=EliminaTrabajos($cmd,$idtrabajo,"idtrabajo"); break; case $op_movida : $cmd->texto="UPDATE trabajos SET grupoid=@grupoid WHERE idtrabajo=@idtrabajo"; $resul=$cmd->Ejecutar(); break; case $op_ejecucion : $resul=ejecutando_trabajos(); break; default: break; } return($resul); } /*________________________________________________________________________________________________________ Crea un arbol XML para el nuevo nodo insertado ________________________________________________________________________________________________________*/ function SubarbolXML_trabajos($idtrabajo,$descripcion,$urlimg){ global $LITAMBITO_TRABAJOS; $cadenaXML='texto="SELECT trabajos_tareas.idtrabajotarea,trabajos_tareas.idtarea,trabajos_tareas.ambitskwrk FROM trabajos_tareas INNER JOIN tareas ON trabajos_tareas.idtarea=tareas.idtarea WHERE trabajos_tareas.idtrabajo=".$idtrabajo; $cmd->texto.=" ORDER BY trabajos_tareas.orden"; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(false); // Error al abrir recordset if ($rs->EOF) return(true); // Error al abrir recordset $rs->Primero(); // Recorre trabajos-tareas while (!$rs->EOF){ $tbTareas["idnotificador"]=$rs->campos["idtrabajotarea"]; $tbTareas["idtarea"]=$rs->campos["idtarea"]; $tabla_tareas[$cont_tareas]=$tbTareas; $cont_tareas++; $ambitrabajo.=$rs->campos["ambitskwrk"].";"; $paramtrabajo.=$rs->campos["idtrabajotarea"].";"; $rs->Siguiente(); } $rs->Cerrar(); $ambitrabajo=substr($ambitrabajo,0,strlen($ambitrabajo)-1); // Quita la coma final $paramtrabajo=substr($paramtrabajo,0,strlen($paramtrabajo)-1); // Quita la coma final //Creación parametros para inserción -------------------------------------------------------------------- $cmd->CreaParametro("@tipoaccion","",1); $cmd->CreaParametro("@idtipoaccion",0,1); $cmd->CreaParametro("@cateaccion",$PROCESOS,1); $cmd->CreaParametro("@ambito",0,1); $cmd->CreaParametro("@idambito",0,1); $cmd->CreaParametro("@ambitskwrk","",0); $cmd->CreaParametro("@fechahorareg","",0); $cmd->CreaParametro("@estado",$ACCION_INICIADA,0); $cmd->CreaParametro("@resultado",$ACCION_SINERRORES,0); $cmd->CreaParametro("@idcentro",$idcentro,1); $cmd->CreaParametro("@parametros","",0); $cmd->CreaParametro("@accionid",0,1); $cmd->CreaParametro("@idnotificador",0,1); // Insertar accion:trabajo -------------------------------------------------------------------- $cmd->ParamSetValor("@tipoaccion",$EJECUCION_TRABAJO); $cmd->ParamSetValor("@idtipoaccion",$idtrabajo); $cmd->ParamSetValor("@ambito",0); $cmd->ParamSetValor("@idambito",0); $cmd->ParamSetValor("@ambitskwrk",$ambitrabajo); $cmd->ParamSetValor("@fechahorareg",date("d/m/y H:i:s")); $cmd->ParamSetValor("@parametros",$paramtrabajo); $cmd->texto="INSERT INTO acciones (tipoaccion,idtipoaccion,cateaccion,ambito,idambito,ambitskwrk,fechahorareg,estado,resultado,idcentro,parametros,accionid,idnotificador) VALUES (@tipoaccion,@idtipoaccion,@cateaccion,@ambito,@idambito,@ambitskwrk,@fechahorareg,@estado,@resultado,@idcentro,@parametros,0,0)"; $resul=$cmd->Ejecutar(); if(!$resul) return(false); $accionid=$cmd->Autonumerico(); // Toma identificador dela acción // Insertar acciones:tareas -------------------------------------------------------------------- for ($i=0;$i<$cont_tareas;$i++){ $tbTareas=$tabla_tareas[$i]; $resul=EjecutandoTareas($tbTareas["idtarea"],$accionid,$tbTareas["idnotificador"]); if(!$resul) return(false); } return(true); } //________________________________________________________________________________________________________ function EjecutandoTareas($idtarea,$accionid,$idnotificador){ global $EJECUCION_COMANDO; global $EJECUCION_TAREA; global $PROCESOS; global $ACCION_INICIADA; global $ACCION_SINERRORES; global $idcentro; global $servidorhidra; global $hidraport; global $cmd; $shidra=new SockHidra($servidorhidra,$hidraport); $ambitarea=""; $paramtarea="cmd="; $tbComandos=""; $tabla_comandos=""; $cont_comandos=0; // Recorre tareas-comandos $rs=new Recordset; $cmd->texto="SELECT * FROM tareas_comandos WHERE idtarea=".$idtarea; $cmd->texto.=" ORDER by tareas_comandos.orden"; $rs->Comando=&$cmd; if (!$rs->Abrir()) return(false); // Error al abrir recordset $rs->Primero(); while (!$rs->EOF){ $tbComandos["idcomando"]=$rs->campos["idcomando"]; $tbComandos["ambito"]=$rs->campos["ambito"]; $tbComandos["idambito"]=$rs->campos["idambito"]; $tbComandos["parametros"]=$rs->campos["parametros"]; $tbComandos["idnotificador"]=$rs->campos["idtareacomando"]; $tabla_comandos[$cont_comandos]=$tbComandos; $cont_comandos++; $ambitarea.=$rs->campos["ambito"].":".$rs->campos["idambito"].";"; $paramtarea.=$rs->campos["idtareacomando"].";"; $rs->Siguiente(); } $rs->Cerrar(); $ambitarea=substr($ambitarea,0,strlen($ambitarea)-1); // Quita la coma final $paramtarea=substr($paramtarea,0,strlen($paramtarea)-1); // Quita la coma final // Insertar accion:tarea -------------------------------------------------------------------- $cmd->ParamSetValor("@tipoaccion",$EJECUCION_TAREA); $cmd->ParamSetValor("@idtipoaccion",$idtarea); $cmd->ParamSetValor("@ambito",0); $cmd->ParamSetValor("@idambito",0); $cmd->ParamSetValor("@ambitskwrk",$ambitarea); $cmd->ParamSetValor("@fechahorareg",date("d/m/y H:i:s")); $cmd->ParamSetValor("@parametros",$paramtarea); $cmd->ParamSetValor("@accionid",$accionid); $cmd->ParamSetValor("@idnotificador",$idnotificador); $cmd->texto="INSERT INTO acciones (tipoaccion,idtipoaccion,cateaccion,ambito,idambito,ambitskwrk,fechahorareg,estado,resultado,idcentro,parametros,accionid,idnotificador) VALUES (@tipoaccion,@idtipoaccion,@cateaccion,@ambito,@idambito,@ambitskwrk,@fechahorareg,@estado,@resultado,@idcentro,@parametros,@accionid,@idnotificador)"; $resul=$cmd->Ejecutar(); if(!$resul) return(false); $accionid=$cmd->Autonumerico(); // Toma identificador dela acción // Insertar acciones:comandos $shidra=new SockHidra($servidorhidra,$hidraport); for ($i=0;$i<$cont_comandos;$i++){ $tbComandos=$tabla_comandos[$i]; $cmd->ParamSetValor("@tipoaccion",$EJECUCION_COMANDO); $cmd->ParamSetValor("@idtipoaccion",$tbComandos["idcomando"]); $cmd->ParamSetValor("@ambito",$tbComandos["ambito"]); $cmd->ParamSetValor("@idambito",$tbComandos["idambito"]); $cmd->ParamSetValor("@ambitskwrk",""); $cmd->ParamSetValor("@fechahorareg",date("d/m/y H:i:s")); $cmd->ParamSetValor("@parametros",$tbComandos["parametros"]); $cmd->ParamSetValor("@accionid",$accionid); $cmd->ParamSetValor("@idnotificador",$tbComandos["idnotificador"]); $cmd->texto="INSERT INTO acciones (tipoaccion,idtipoaccion,cateaccion,ambito,idambito,ambitskwrk,fechahorareg,estado,resultado,idcentro,parametros,accionid,idnotificador) VALUES (@tipoaccion,@idtipoaccion,@cateaccion,@ambito,@idambito,@ambitskwrk,@fechahorareg,@estado,@resultado,@idcentro,@parametros,@accionid,@idnotificador)"; $resul=$cmd->Ejecutar(); if(!$resul) return(false); $tbComandos["parametros"].="ids=".$cmd->Autonumerico().chr(13); if ($shidra->conectar()){ // Se ha establecido la conexión con el servidor hidra $shidra->envia_comando($tbComandos["parametros"]); $shidra->desconectar(); } } return(true); } ?>