From d3bc62fce2305f9837660426dce842c99809dffd Mon Sep 17 00:00:00 2001 From: humano Date: Sat, 23 May 2020 15:46:13 -0500 Subject: [PATCH] diagrama de gantt --- api.php | 2 +- funciones/funciones.php | 225 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 219 insertions(+), 8 deletions(-) diff --git a/api.php b/api.php index df8c3dc..0d70486 100644 --- a/api.php +++ b/api.php @@ -1,6 +1,6 @@ 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= " + $editar_status= " $status "; + $editar_microtarea= " + Editar "; $item_responsable= "
- $editar + $editar_status
- $nombre + $nombre $editar_microtarea
$asignados
@@ -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 .="
  • Start: $segundos
  • "; + $datos .="
  • $row[campo_nombre]: $row[contenido]
  • "; + } + elseif($row['campo_nombre'] == "Fin"){ + $segundos = strtotime("$row[contenido]"); + $row['end'] = $row['contenido']; + $campos['end'] = $segundos*1000; + $fin = $segundos*1000; + $datos .="
  • End: $segundos
  • "; + $datos .="
  • $row[campo_nombre]: $row[contenido]
  • "; + }else{ +$datos .= "
  • $row[campo_nombre] -> $row[contenido]
  • "; + } + + +} + +$restante = (($fin/1000) - time()); +$restante = segundos_cadena("$restante"); +$datos .= "
  • Restante: $restante
  • "; +$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 .= " ";} + $formularios= "
    $campos
    "; + + $menu= "$formulariosActualizar"; +$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 .= ""; + } +//$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 =" + +
    + + $menu + +
    $array_limpio2
    + $tareas_listado + +
    "; + + 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]'";