Hola buen día.
Tengo un problema al eliminar una columna del cuadro, cuando elimino una, se borran todas las siguientes.
Hola buen día.
Tengo un problema al eliminar una columna del cuadro, cuando elimino una, se borran todas las siguientes.
Hola Sandra,
la eliminacion que mencionas, es via toba_editor o via codigo?.. en este ultimo caso, tenes el codigo del CI a mano como para ubicarme mejor?
Saludos
Hola Buen día Richard.
La columna lo elimino vía código.
para el caso que menciono la columna que se elimina es comprobante_mv
Adjunto el código del cuadro
function conf__cuadro(toba_ei_cuadro $cuadro) {
$documentos = $this->cn()->get_documentos_html_con_link(array('id_expediente' => $this->s__id_expediente, 'limit' => false));
$clave2 = 0;
if (isset($documentos) && $documentos != null) {
$id_documento_max_remision = dao_expedientes::get_id_documento_max_remision(array('id_expediente' => $this->s__id_expediente, 'id_dependencia' => toba::usuario()->get_dependencia_id()));
foreach ($documentos as $clave => $documento) {
$dependencias_empleado = toba::usuario()->get_array_dependencias_empleados();
if (!is_null($dependencias_empleado)) {
if (in_array($documentos[$clave]['id_dependencia'], $dependencias_empleado)) {
$empleado_dependencia = 1;
} else {
$empleado_dependencia = 0;
}
} else {
$empleado_dependencia = 0;
}
$documentos[$clave]['fecha_carga'] = $documentos[$clave]['fecha_carga'] . ' ' . $documentos[$clave]['hora_carga'];
if (($documentos[$clave]['id_dependencia'] != toba::usuario()->get_dependencia_id() && $documentos[$clave]['documento_adjunto'] != null && $documentos[$clave]['estado'] != 'AN') || $documentos[$clave]['id_dependencia'] == toba::usuario()->get_dependencia_id() || $empleado_dependencia == 1 || (isset($id_documento_max_remision) && $documentos[$clave]['id_documento_html'] <= $id_documento_max_remision && ($documentos[$clave]['estado'] == 'DE'
OR $documentos[$clave]['estado'] == 'FI'
OR $documentos[$clave]['estado'] == 'LF'
OR $documentos[$clave]['estado'] == 'FP'
))) {
$documentos2[$clave2]['id_documento_html'] = $documentos[$clave]['id_documento_html'];
$documentos2[$clave2]['nombre'] = $documentos[$clave]['nombre'];
$documentos2[$clave2]['fecha_carga'] = $documentos[$clave]['fecha_carga'];
$documentos2[$clave2]['procedencia'] = $documentos[$clave]['procedencia'];
$documentos2[$clave2]['observaciones'] = $documentos[$clave]['observaciones'];
$documentos2[$clave2]['desc_estado'] = $documentos[$clave]['desc_estado'];
$documentos2[$clave2]['estado'] = $documentos[$clave]['estado'];
if ($documentos[$clave]['id_dependencia'] == toba::usuario()->get_dependencia_id() || $empleado_dependencia == 1) {
if (($documentos[$clave]['estado'] == 'BO' || $documentos[$clave]['estado'] == 'LV') && toba::usuario()->get_pasar_definitivo_interno() == 'S') {
$documentos2[$clave2]['pasar_definitivo'] = dao_expedientes::agregar_icono_pasar_definitivo($documentos[$clave]['id_documento_html'], '103000742');
}
}
$documentos2[$clave2]['desc_tipo_documento'] = $documentos[$clave]['desc_tipo_documento'];
$documentos2[$clave2]['fecha_firma'] = $documentos[$clave]['desc_fecha_firma'];
$documentos2[$clave2]['tipo_documento'] = $documentos[$clave]['tipo_documento'];
$documentos2[$clave2]['tiene_medida'] = $documentos[$clave]['tiene_medida'];
if (constantes::get_valor_constante("MEDIDAS_VIOLENCIAS") == 'SI' && $this->s__rejumev_voces==true){
if($documentos2[$clave2]['tiene_medida'] == 'S' && ($documentos2[$clave2]['tipo_documento'] ==4 || $documentos2[$clave2]['tipo_documento'] ==5)){
$documento_medida = dao_expedientes::get_documentos_medidas(array('id_documento_html' => $documentos[$clave]['id_documento_html']));
if (isset($documento_medida[0])) {
$path = $this->cn()->get_path_documentos_internos_medidas($documento_medida[0]);
$temp_nombre = $documentos[$clave]['id_documento_html'] . '_medidas_violencias.pdf';
$path_descarga = $path['path_corto'] . $temp_nombre;
$param = array('file' => $path_descarga);
$url_descarga = toba::vinculador()->get_url('expediente', '115000016', $param);
$img_med_viol = toba_recurso::imagen_proyecto('med_viol.png',true,null,null,"Medida de Violencia");
$documentos2[$clave2]['comprobante_mv'] = "<a style='text-align:center;display:block;' onclick='downloadDoc(\"$url_descarga\");return false;' href=# target='_blank'>" . $img_med_viol . '</a>';
} else{
$documentos2[$clave2]['comprobante_mv'] = 'Falta generar la Medida de violenvia';
$documentos2[$clave2]['pasar_definitivo']='';
}
}elseif($documentos2[$clave2]['tiene_medida'] == 'S' && $documentos2[$clave2]['tipo_documento'] ==3){
$documentos_medidas_violencias = dao_expedientes::get_documentos_medidas_violencias(array('id_documento_seleccionado' => $documentos[$clave]['id_documento_html']));
if(count($documentos_medidas_violencias) > 0){
$documentos2[$clave2]['comprobante_mv'] = count($documentos_medidas_violencias) . ' Medida asignada';
}else{
$documentos2[$clave2]['pasar_definitivo']='';
}
}
}else{
$cuadro->eliminar_columnas(array('comprobante_mv'));
}
if (constantes::get_valor_constante("MEDIDAS_VIOLENCIAS") == 'SI' && ($this->s__rejumev_voces==true || $this->s__protocolo==true)){
$documentos2[$clave2]['protocolo'] = $documentos[$clave]['protocolo'];
if($documentos2[$clave2]['tiene_medida'] == 'N' &&
(($documentos2[$clave2]['tipo_documento']==5 || $documentos2[$clave2]['tipo_documento'] == 15)
|| ($this->s__protocolo==true && $documentos2[$clave2]['tipo_documento']==30))){
$tiene_voces = self::registra_voces($documentos2[$clave2]['id_documento_html']);
if($tiene_voces==false){
$documentos2[$clave2]['pasar_definitivo']='';
}
}
}else{
$cuadro->eliminar_columnas(array('protocolo'));
}
$fecha_hora = explode(' ', $documentos[$clave]['fecha_carga']);
$fecha = explode('-', $fecha_hora[0]);
$hora = $fecha_hora[1];
//convierto la fecha a un entero
$entero = gregoriantojd($fecha[1], $fecha[2], $fecha[0]);
$entero .= str_replace(':', '', $hora);
$documentos2[$clave2]['entero_fecha'] = $entero;
$clave2++;
}
}
}
if (isset($documentos2) && $documentos2 != null) {
$campo = 'entero_fecha';
$datos = dao_consultas::ordenar_algoritmo_burbuja($documentos2, $campo, false);
$cuadro->set_datos($datos);
}
}
Adjunto la configuración del cuadro y como se visualiza desde la aplicación.
Hola Sandra buen dia,
Creo que el inconveniente viene porque la eliminacion de las columnas te quedo adentro del foreach con lo cual intentan eliminarse cuando ya fueron eliminadas.
Probablemente tambien hay un bug escondido alli, ya que deberia fallar con una excepcion y/o no hacer nada en cualquier caso.
Para solucionarlo creo que podrias hacer algo asi
function conf__cuadro(toba_ei_cuadro $cuadro) {
$documentos = $this->cn()->get_documentos_html_con_link(array('id_expediente' => $this->s__id_expediente, 'limit' => false));
$clave2 = 0;
//Determinaciones estaticas que no dependen de datos en el ciclo
$columnas_eliminables = [];
$medidas_violencia_habilitadas = (constantes::get_valor_constante("MEDIDAS_VIOLENCIAS") == 'SI' && $this->s__rejumev_voces==true);
$protocolo_violencia_habilitado = ($medidas_violencia_habilitadas || $this->s__protocolo===true);
if (! $medidas_violencia_habilitadas) {
$columnas_eliminables[] = 'comprobante_mv';
}
if (! $protocolo_violencia_habilitado) {
$columnas_eliminables[] = 'protocolo';
}
if (isset($documentos) && $documentos != null) {
$id_documento_max_remision = dao_expedientes::get_id_documento_max_remision(array('id_expediente' => $this->s__id_expediente, 'id_dependencia' => toba::usuario()->get_dependencia_id()));
foreach ($documentos as $clave => $documento) {
$dependencias_empleado = toba::usuario()->get_array_dependencias_empleados();
if (!is_null($dependencias_empleado)) {
if (in_array($documentos[$clave]['id_dependencia'], $dependencias_empleado)) {
$empleado_dependencia = 1;
} else {
$empleado_dependencia = 0;
}
} else {
$empleado_dependencia = 0;
}
$documentos[$clave]['fecha_carga'] = $documentos[$clave]['fecha_carga'] . ' ' . $documentos[$clave]['hora_carga'];
if (($documentos[$clave]['id_dependencia'] != toba::usuario()->get_dependencia_id() && $documentos[$clave]['documento_adjunto'] != null && $documentos[$clave]['estado'] != 'AN') || $documentos[$clave]['id_dependencia'] == toba::usuario()->get_dependencia_id() || $empleado_dependencia == 1 || (isset($id_documento_max_remision) && $documentos[$clave]['id_documento_html'] <= $id_documento_max_remision && ($documentos[$clave]['estado'] == 'DE'
OR $documentos[$clave]['estado'] == 'FI'
OR $documentos[$clave]['estado'] == 'LF'
OR $documentos[$clave]['estado'] == 'FP'
))) {
$documentos2[$clave2]['id_documento_html'] = $documentos[$clave]['id_documento_html'];
$documentos2[$clave2]['nombre'] = $documentos[$clave]['nombre'];
$documentos2[$clave2]['fecha_carga'] = $documentos[$clave]['fecha_carga'];
$documentos2[$clave2]['procedencia'] = $documentos[$clave]['procedencia'];
$documentos2[$clave2]['observaciones'] = $documentos[$clave]['observaciones'];
$documentos2[$clave2]['desc_estado'] = $documentos[$clave]['desc_estado'];
$documentos2[$clave2]['estado'] = $documentos[$clave]['estado'];
if ($documentos[$clave]['id_dependencia'] == toba::usuario()->get_dependencia_id() || $empleado_dependencia == 1) {
if (($documentos[$clave]['estado'] == 'BO' || $documentos[$clave]['estado'] == 'LV') && toba::usuario()->get_pasar_definitivo_interno() == 'S') {
$documentos2[$clave2]['pasar_definitivo'] = dao_expedientes::agregar_icono_pasar_definitivo($documentos[$clave]['id_documento_html'], '103000742');
}
}
$documentos2[$clave2]['desc_tipo_documento'] = $documentos[$clave]['desc_tipo_documento'];
$documentos2[$clave2]['fecha_firma'] = $documentos[$clave]['desc_fecha_firma'];
$documentos2[$clave2]['tipo_documento'] = $documentos[$clave]['tipo_documento'];
$documentos2[$clave2]['tiene_medida'] = $documentos[$clave]['tiene_medida'];
if ($medidas_violencia_habilitadas){
if($documentos2[$clave2]['tiene_medida'] == 'S' && ($documentos2[$clave2]['tipo_documento'] ==4 || $documentos2[$clave2]['tipo_documento'] ==5)){
$documento_medida = dao_expedientes::get_documentos_medidas(array('id_documento_html' => $documentos[$clave]['id_documento_html']));
if (isset($documento_medida[0])) {
$path = $this->cn()->get_path_documentos_internos_medidas($documento_medida[0]);
$temp_nombre = $documentos[$clave]['id_documento_html'] . '_medidas_violencias.pdf';
$path_descarga = $path['path_corto'] . $temp_nombre;
$param = array('file' => $path_descarga);
$url_descarga = toba::vinculador()->get_url('expediente', '115000016', $param);
$img_med_viol = toba_recurso::imagen_proyecto('med_viol.png',true,null,null,"Medida de Violencia");
$documentos2[$clave2]['comprobante_mv'] = "<a style='text-align:center;display:block;' onclick='downloadDoc(\"$url_descarga\");return false;' href=# target='_blank'>" . $img_med_viol . '</a>';
} else{
$documentos2[$clave2]['comprobante_mv'] = 'Falta generar la Medida de violenvia';
$documentos2[$clave2]['pasar_definitivo']='';
}
}elseif($documentos2[$clave2]['tiene_medida'] == 'S' && $documentos2[$clave2]['tipo_documento'] ==3){
$documentos_medidas_violencias = dao_expedientes::get_documentos_medidas_violencias(array('id_documento_seleccionado' => $documentos[$clave]['id_documento_html']));
if(count($documentos_medidas_violencias) > 0){
$documentos2[$clave2]['comprobante_mv'] = count($documentos_medidas_violencias) . ' Medida asignada';
}else{
$documentos2[$clave2]['pasar_definitivo']='';
}
}
}
if (protocolo_violencia_habilitado){
$documentos2[$clave2]['protocolo'] = $documentos[$clave]['protocolo'];
if($documentos2[$clave2]['tiene_medida'] == 'N' &&
(($documentos2[$clave2]['tipo_documento']==5 || $documentos2[$clave2]['tipo_documento'] == 15)
|| ($this->s__protocolo==true && $documentos2[$clave2]['tipo_documento']==30))){
$tiene_voces = self::registra_voces($documentos2[$clave2]['id_documento_html']);
if($tiene_voces==false){
$documentos2[$clave2]['pasar_definitivo']='';
}
}
}
$fecha_hora = explode(' ', $documentos[$clave]['fecha_carga']);
$fecha = explode('-', $fecha_hora[0]);
$hora = $fecha_hora[1];
//convierto la fecha a un entero
$entero = gregoriantojd($fecha[1], $fecha[2], $fecha[0]);
$entero .= str_replace(':', '', $hora);
$documentos2[$clave2]['entero_fecha'] = $entero;
$clave2++;
}
}
}
if (isset($documentos2) && $documentos2 != null) {
if (! empty($columnas_eliminables)) {
$cuadro->eliminar_columnas($columnas_eliminables);
}
$campo = 'entero_fecha';
$datos = dao_consultas::ordenar_algoritmo_burbuja($documentos2, $campo, false);
$cuadro->set_datos($datos);
}
}
Saludos
Hola Richard, buen día.
Muchas gracias!. No me di cuenta que al eliminar dentro del foreach se genera este inconveniente.
Saludos