diagrama de gantt

This commit is contained in:
humano 2020-05-23 15:46:13 -05:00
parent 3f489b76b8
commit d3bc62fce2
2 changed files with 219 additions and 8 deletions

View File

@ -1,6 +1,6 @@
<?php
//session_start();
ini_set('display_errors', 'On');
//ini_set('display_errors', 'On');
require ('xajax/xajax.inc.php');
$xajax = new xajax();

View File

@ -4687,6 +4687,7 @@ function cerrar_sesion(){
}
$xajax->registerFunction("cerrar_sesion");
function microtareas($formularios_microtareas,$datos,$div){
$formulario_microtarea = $formularios_microtareas['formulario_microtarea'];
$formulario_microtarea_asignacion =$formularios_microtareas['formulario_microtarea_asignacion'];
@ -4714,8 +4715,10 @@ function microtareas($formularios_microtareas,$datos,$div){
elseif($status ==''){$status_clase='danger'; $status ='No Asignado';}
else{$status_clase='danger'; $status ='No Asignado';}
$item_nombre = remplacetas('form_datos','form_id',"$formulario_equipo","contenido","id_campo = '$campo_equipo' AND control ='$control_asignados'");
$editar= "<a class='btn btn-xs btn-$status_clase' onclick =\"xajax_formulario_embebido_ajax('','$formulario_microtarea_asignacion','$control_descripcion','edit') \";>
$editar_status= "<a class='btn btn-xs btn-$status_clase' onclick =\"xajax_formulario_embebido_ajax('','$formulario_microtarea_asignacion','$control_descripcion','edit') \";>
$status</a> ";
$editar_microtarea= "<a href='#' class='link' onclick =\"xajax_formulario_embebido_ajax('','$formulario_microtarea','$control_microtarea','edit') \";>
Editar</a> ";
$item_responsable= "
<a class='link ' data-trigger='focus' tabindex='0'
data-placement='auto top' role='button'
@ -4730,7 +4733,7 @@ function microtareas($formularios_microtareas,$datos,$div){
>
<div class='row' >
<div class='col-xs-4'>
$editar
$editar_status
</div>
<div class='col-xs-8'>
$item_responsable
@ -4789,7 +4792,7 @@ function microtareas($formularios_microtareas,$datos,$div){
</a>
</div>
<div class='col-xs-10'>
$nombre
$nombre $editar_microtarea
<br>$asignados
</div>
@ -4964,6 +4967,208 @@ if($div ==""){
}
$xajax->registerFunction("listado_items");
function segundos_cadena($segs){
$cadena = '';
if($segs >= 86400) {
$dias = floor($segs/86400);
$segs = $segs%86400;
$cadena = $dias.' día';
if($dias != 1) $cadena .= 's';
if($segs >= 0) $cadena .= ', ';
}
if($segs>=3600){
$horas = floor($segs/3600);
$segs = $segs%3600;
$cadena .= $horas.' hora';
if($horas != 1) $cadena .= 's';
if($segs >= 0) $cadena .= ', ';
}
if($segs>=60){
$minutes = floor($segs/60);
$segs = $segs%60;
$cadena .= $minutes.' minuto';
if($minutes != 1) $cadena .= 's';
if($segs >= 0) $cadena .= ', ';
}
$cadena .= $segs.' segundo';
if($segs != 1) $cadena .= 's';
return $cadena;
}
function gantt_datos($control,$tipo){
$campos=array();
$consulta = "SELECT campo_nombre, contenido, campo_tipo FROM form_datos,form_campos
WHERE form_datos.id_campo =form_campos.id
AND form_datos.control='$control'
";
$link=Conectarse();
mysqli_set_charset($link, "utf8");
$sql=mysqli_query($link,$consulta);
if (mysqli_num_rows($sql)!='0'){
while( $row = mysqli_fetch_array( $sql ) ) {
if($row['campo_nombre'] == "Inicio"){
$segundos = strtotime("$row[contenido]");
$campos['start'] = $segundos*1000;
$inicio = $segundos*1000;
$datos .="<li>Start: $segundos</li>";
$datos .="<li>$row[campo_nombre]: $row[contenido]</li>";
}
elseif($row['campo_nombre'] == "Fin"){
$segundos = strtotime("$row[contenido]");
$row['end'] = $row['contenido'];
$campos['end'] = $segundos*1000;
$fin = $segundos*1000;
$datos .="<li>End: $segundos</li>";
$datos .="<li>$row[campo_nombre]: $row[contenido]</li>";
}else{
$datos .= "<li>$row[campo_nombre] -> $row[contenido]</li>";
}
}
$restante = (($fin/1000) - time());
$restante = segundos_cadena("$restante");
$datos .= "<li>Restante: $restante</li>";
$campos['restante'] = "$restante";
}
if($tipo=='array'){
return $campos;
}else{
return $datos;
}
}
function gantt($formulario,$tipo,$div){
/// vuelve el array un formulario
$array =array();
foreach ($formulario as $c =>$v) {$campos .= " <input type= 'hidden' id='$c' name='$c' value='$v'>";}
$formularios= "<form autocomplete='off' id='formulario_items' name='formulario_items' >$campos</form>";
$menu= "$formularios<a href='#' onclick=\"xajax_gantt(xajax.getFormValues('formulario_items'),'','mostrar_gantt'); \" >Actualizar</a>";
$proyectos = listado_entradas("$formulario[formulario_proyectos]","","array","","$datos");
//$debug = print_r($microtarea,true);
foreach ($proyectos as $c =>$v) {
$control_proyecto = $v['control'];
$nombre_proyecto = $v['nombre'];
//$array[$v['nombre']]['name']=$v['nombre'];
//$array['id']=$v['control'];
$array[$v['nombre']]['id']=$v['control'];
$array[$v['nombre']]['name']=$v['nombre'];
$tareas_listado .= "<ul><li><h3>$v[nombre]</h3><ul>";
$tareas = listado_entradas("$formulario[formulario_tareas]","","array","$formulario[campo_proyectos]","$control_proyecto");
foreach ($tareas as $tareas_c =>$tareas_v) {
$control_tareas = $tareas_v['descripcion'];
$control_tareas_nombre = $tareas_v['nombre'];
$control_descripcion = $tareas_v['control'];
// $array[$v['nombre']][$tareas_v['nombre']]=$tareas_v['nombre'];
//$tareas_datos = gantt_datos("$tareas_v[control]",'');
$tareas_listado .= "<li><h4>$control_tareas_nombre</h4><ul> $tareas_datos";
$microtareas = listado_entradas("$formulario[formulario_microtarea]","","array","$formulario[campo_tareas]","$tareas_v[control]");
foreach ($microtareas as $microtareas_c =>$microtareas_v) {
$control_microtareas = $microtareas_v['descripcion'];
$control_microtareas_nombre = $microtareas_v['nombre'];
$control_microtareas_descripcion = $microtareas_v['control'];
$microtareas_datos = gantt_datos("$microtareas_v[control]",'');
$microtareas_array = gantt_datos("$microtareas_v[control]",'array');
$tareas_array = gantt_datos("$tareas_v[control]",'array');
$array[$tareas_v['nombre']]['id']=$tareas_v['control'];
$array[$tareas_v['nombre']]['name']=$tareas_v['nombre'];
$array[$tareas_v['nombre']]['start']=$tareas_array['start'];
$array[$tareas_v['nombre']]['end']=$tareas_array['end'];
$array[$tareas_v['nombre']]['restante']=$tareas_array['restante'];
$array[$tareas_v['nombre']]['parent']=$control_proyecto;
$array[$tareas_v['nombre']]['parent_nombre']=$nombre_proyecto;
$array[$microtareas_v['nombre']]['id']=$microtareas_v['control'];
$array[$microtareas_v['nombre']]['name']=$microtareas_v['nombre'];
$array[$microtareas_v['nombre']]['start']=$microtareas_array['start'];
$array[$microtareas_v['nombre']]['end']=$microtareas_array['end'];
$array[$microtareas_v['nombre']]['restante']=$microtareas_array['restante'];
$array[$microtareas_v['nombre']]['parent']=$tareas_v['control'];
$array[$microtareas_v['nombre']]['parent_nombre']=$tareas_v['nombre'];
///$array["$nombre_proyecto"][$tareas_v['nombre']][$microtareas_v['nombre']]['parent']=$tareas_v['control'];
$tareas_listado .= "<li><h5>$control_microtareas_nombre</h5><ul> $microtareas_datos";
$participantes = listado_entradas("$formulario[formulario_microtarea_asignacion]","","array","$formulario[campo_microtareas_asignacion]","$microtareas_v[control]");
foreach ($participantes as $participantes_c =>$participantes_v) {
$control_participantes = $participantes_v['descripcion'];
$control_participantes_nombre = $participantes_v['nombre'];
$control_participantes_descripcion = $participantes_v['control'];
$nombre = remplacetas('form_datos','control',"$control_participantes",'contenido'," id_campo='$formulario[campo_equipo]' and form_id = '$formulario[formulario_equipo]'") ;
$tareas_listado .= "<li>$nombre[0]</li> ";
// $participantes = listado_entradas("$formulario[formulario_microtarea_asignacion]","","array","$formulario[campo_microtarea]","$microtareas_v['control']");
}
$tareas_listado .= "</ul></li>";
}
$tareas_listado .= "</ul></li></ul>";
}
$tareas_listado .= "</ul></li></ul>";
}
//$variables = print_r($array,true);
foreach ($array as $clave =>$valor) {
foreach ($valor as $clave2 =>$valor2) {
if(is_numeric($valor2)){$valor2= $valor2;}
else{$valor2 = "'$valor2'";}
$array_limpio .="'$clave2':$valor2,";
}
$array_limpio = trim("$array_limpio",",");
$array_limpio2 .= "\n{ $array_limpio },";
$array_limpio ="";
}
$array_limpio2 = trim("$array_limpio2",",");
if($tipo=='array'){
return $array_limpio2;
}
//$variables = json_encode($array_limpio,JSON_PRETTY_PRINT|JSON_FORCE_OBJECT);
//$variables .= json_encode($array,JSON_PRETTY_PRINT|JSON_FORCE_OBJECT);
//$variables .= print_r($listado,true);
$resultado ="
<div id='mostrar_gantt'>
$menu
<pre>$array_limpio2</pre>
$tareas_listado
</div>";
if($div ==""){
return $resultado;
}else{
$respuesta = new xajaxResponse('utf-8');
//$resultado ="ajax";
//$resultado = mostrar_identificador("$control","$form","$plantilla","$tipo","$timestamp");
$respuesta->addAssign("$div","innerHTML","$resultado");
return $respuesta;
}
}
$xajax->registerFunction("gantt");
function listado_entradas($formulario,$registros,$tipo,$campo,$key){
$w_campo = "";
@ -8771,17 +8976,20 @@ while($row = mysqli_fetch_array( $sql ))
}
// if($campo_tipo[0] =='32') {
if($nombre_campo[0] =='Inicio') {
$array['start'] = "$contenido[0]";
$array['start'] = strtotime("$contenido[0]")*1000;
} else {
if($campo_tipo[0] =='32' OR $campo_tipo[0] =='11') {
$array['start'] = "$contenido[0]";
$array['start'] = strtotime("$contenido[0]")*1000;
}
// $array['start'] = "$contenido[0]";
}
if($nombre_campo[0] =='Fin') {
$array['end'] = "$contenido[0]";
$array['end'] = strtotime("$contenido[0]")*1000;
}
/* }
elseif($campo_tipo[0] =='11') {
// $array['start'] = "$contenido[0]";
@ -10248,6 +10456,7 @@ function cargar_identificador($control,$form,$plantilla,$tipo,$timestamp,$div){
}
$xajax->registerFunction("cargar_identificador");
function mostrar_identificador($control,$form,$plantilla,$tipo,$timestamp){
//$respuesta = mostrar_identificador("$identificador","$row[form_id]","respuesta","$plantilla","$row[timestamp]");
$datos_form="";
@ -13036,7 +13245,9 @@ function json($datos){
if(!isset ($datos["tipo"] )) { $datos["tipo"]="";}
if ( !isset ( $_SESSION['id_empresa'] ) ) { $publico = "AND form_id.id_empresa = '$datos[proyecto]' AND form_id.publico = '1' "; $w_publico = "WHERE form_id.id_empresa = '$datos[proyecto]' AND form_id.publico = '1' ";
if ( !isset ( $_SESSION['id_empresa'] ) ) {
$publico = "AND form_id.id_empresa = '$datos[proyecto]' AND form_id.publico = '1' ";
$w_publico = "WHERE form_id.id_empresa = '$datos[proyecto]' AND form_id.publico = '1' ";
}
else {
$publico = "AND form_id.id_empresa = '$datos[proyecto]'";