function jsaSetDomicilioMismo($socio, $HDomicilio) { $HDomicilio = strtoupper($HDomicilio); if ($HDomicilio == "MISMO") { $xSoc = new cSocio($socio); $xSoc->init(); $DDom = $xSoc->getDatosDomicilio(99); $domicilio = $xSoc->getDomicilio(); $cDom = new cSocios_aeconomica(); $cDom->setData($DDom); $telefono = $cDom->telefono_ae()->v(); $estado = $cDom->estado_ae()->v(); $municipio = $cDom->municipio_ae()->v(); $localidad = $cDom->localidad_ae()->v(); $tab = new TinyAjaxBehavior(); $tab->add(TabSetValue::getBehavior('idtelefono', $telefono)); $tab->add(TabSetValue::getBehavior('identidadfederativa', $estado)); $tab->add(TabSetValue::getBehavior('idmunicipio', $municipio)); $tab->add(TabSetValue::getBehavior('idlocalidad', $localidad)); $tab->add(TabSetValue::getBehavior('iddomiciliodeactividad', $domicilio)); return $tab->getString(); } }
$xSoc = new cSocio($socio); $xSoc->init(); $fechaNac = date("Y/m/d", strtotime($r["fechanacimiento"])); $tipoDato = "PERSONA"; $primerApellido = $r["apellidopaterno"]; $segundoApellido = $r["apellidomaterno"]; $primerApellido = strlen($primerApellido) == 0 ? $segundoApellido : $primerApellido; $segundoApellido = strlen($primerApellido) == 0 ? "" : $segundoApellido; $nombres = explode(" ", $r["nombrecompleto"]); $primerNombre = $nombres[0]; $segundoNombre = isset($nombres[1]) ? $nombres[1] : ""; $tipoPersona = "0"; $fechaInscripcion = date("Y/m/d", strtotime($r["fechaalta"])); $genero = $arrEquivGenero[$r["genero"]]; //datos del Domicilio $DDom = $xSoc->getDatosDomicilio(); $calle = $xT->getCSV($DDom["calle"]); $numero = $xT->getCSV($DDom["numero_exterior"]); $colonia = $xT->getCSV($DDom["colonia"]); $xCol = new cDomiciliosColonias(); $codCol = $xCol->getClavePorCodigoPostal($DDom["codigo_postal"]); $xCol->set($codCol); $xCol->init(); $DCol = $xCol->getDatosInArray(); $cp = $xT->cSerial(5, $DDom["codigo_postal"]); $claveMun = $DCol["codigo_de_municipio"]; $claveEnt = $DCol["codigo_de_estado"]; $localidad = $DDom["localidad"]; $xLoc = new cDomicilioLocalidad(""); $claveLoc = $xLoc->setBuscar($localidad, $claveEnt, $claveMun); $xLoc->set($claveLoc);
$DConT = $xCon->getTelefonos(); $txtConyuge .= $idconyuge . "-" . $xCon->getNombreCompleto(); $txtConyuge .= " TEL(S): " . $DConT["principal"]; $conyuge_ocup = $xCon->getDatosActividadEconomica(); $txtConyuge .= " OCUPACIÓN: " . $conyuge_ocup["puesto"]; } $genero = eltipo("socios_genero", $rwy[15]); $civil = eltipo("socios_estadocivil", $rwy[14]); $ocupacion = volcartabla("socios_aeconomica", 18, "socio_aeconomica={$idsocio}"); $edad = (int) (restarfechas($nowdate, $rwy[11]) / 365) . " Años"; $dependientes = $rwy["dependientes_economicos"]; $telp = $rwy["telefono_principal"]; $mail = $rwy["correo_electronico"]; $grupo_assoc = $rwy["grupo_solidario"]; //$regimen_mat = $DDom = $xSocio->getDatosDomicilio(99); $eldom = "<tr>\n\t\t\t\t\t\t<th >Calle/Codigo Postal</th>\n\t\t\t\t\t\t<td>" . $DDom["calle"] . "/" . $DDom["codigo_postal"] . "</td>\n\t\t\t\t\t\t<th >Num. Ext./Int.</th>\n\t\t\t\t\t\t<td>" . $DDom["numero_exterior"] . "/" . $DDom["numero_interior"] . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th >Colonia</th>\n\t\t\t\t\t\t<td>" . $DDom["colonia"] . "</td>\n\t\t\t\t\t\t<th >Telefono(s)</th>\n\t\t\t\t\t\t<td>" . $DDom["telefono_residencial"] . "/" . $DDom["telefono_movil"] . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th >Localidad</th>\n\t\t\t\t\t\t<td>" . $DDom["localidad"] . "</td>\n\t\t\t\t\t\t<th >Municipio/Estado</th>\n\t\t\t\t\t\t<td>" . $DDom["municipio"] . "/" . $DDom["estado"] . "</td>\n\t\t\t\t\t</tr>"; echo "\n\t\t<fieldset>\n\t\t<legend>[ Datos Generales del Solicitante ]</legend>\n\t\t\t<table border='0' width='100%'>\n\t\t\t\t<tr>\n\t\t\t\t\t<th width='15%'>Clave de Persona</th>\n\t\t\t\t\t<td width='35%'>{$rwy['0']}</td>\n\t\t\t\t\t<th width='15%'>Nombre(s)</th>\n\t\t\t\t\t<td width='35%'>{$rwy['1']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Apellido Paterno</th><td>{$rwy['2']}</td>\n\t\t\t\t\t<th>Apellido Materno</th><td>{$rwy['3']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>R. F. C.</th>\n\t\t\t\t\t<td>{$rwy['4']}</td>\n\t\t\t\t\t<th>C. U. R. P.</th>\n\t\t\t\t\t<td>{$rwy['5']}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Genero</th>\n\t\t\t\t\t<td>{$genero}</td>\n\t\t\t\t\t<th>Estado Civil</th>\n\t\t\t\t\t<td>{$civil}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Edad</th><td>{$edad}</td>\n\t\t\t\t\t<th>Ocupación</th><td>{$ocupacion}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Teléfono Principal</th>\n\t\t\t\t\t<td>{$telp}</td>\n\t\t\t\t\t<th>Correo Electrónico</th>\n\t\t\t\t\t<td>{$mail}</td>\n\t\t\t\t</tr>\n{$eldom}\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Régimen Matrimonial</th>\n\t\t\t\t\t<td>{$rwy['22']}</td>\n\t\t\t\t\t<th>Conyuge</th>\n\t\t\t\t\t<td>{$txtConyuge}</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</fieldset>"; // datos de la solicitud $perpagos = eltipo("creditos_periocidadpagos", $rwc[10]); //$eldest = eltipo("creditos_destinos", $rwc[19]); $montosol = number_format($rwc[3], 2, '.', ','); $montoletras = convertirletras($rwc[3]); //$descripcion_dest = $rwc[35]; $tasa = $rwc[9] * 100; $plazo_en_meses = round($rwc["plazo_en_dias"] / 30.416666666666668, 0); $credito_destino_extendido = $rwc["descripcion_aplicacion"]; $tasa_ahorro = $rwc["tasa_ahorro"]; $contrato_corriente = $rwc["contrato_corriente_relacionado"]; if ($contrato_corriente == CTA_GLOBAL_CORRIENTE) { $contrato_corriente == "_NO_ASIGNADO_";
/** * funcion que ejecuta una validacion de los grupos * */ function setVerificarValidez($GenerarAvisos = false, $CorreccionAutomatica = false) { $D = $this->mDatosInArray; $msg = getSucursal(); $presidenta = $this->mRepSocio; $vocal = $this->mVocalSocio; $tmpSucursal = ""; $arrUpdate = array(); //$DGrupo if ($presidenta == DEFAULT_SOCIO) { $msg .= "ERROR\tLa Presidenta del Grupo tiene un Numero Invalido\r\n"; } if ($vocal == DEFAULT_SOCIO) { $msg .= "ERROR\tLa Vocal del Grupo tiene un Numero Invalido\r\n"; } //Verificar si la Presidenta existe if ($presidenta != DEFAULT_SOCIO) { $xPred = new cSocio($presidenta, true); $xPred->init(); $DPred = $xPred->getDatosInArray(); $nombre = trim($xPred->getNombreCompleto()); $tmpSucursal = $DPred["sucursal"]; if (!isset($tmpSucursal)) { $tmpSucursal = getSucursal(); } if ($nombre == "") { $msg .= "ERROR\tLa Presidenta del Grupo no Existe\r\n"; } else { if ($CorreccionAutomatica == true) { $arrUpdate["representante_nombrecompleto"] = $nombre; $msg .= "ACTUAL\tLa Presidenta del Grupo se actualiza a {$nombre} \r\n"; //Actualiza la Colonia a Codigo Postal $xDom = $xPred->getDatosDomicilio(); if (!isset($xDom["codigo_postal"]) or empty($xDom["codigo_postal"])) { $xDom["codigo_postal"] = DEFAULT_CODIGO_POSTAL; } $arrUpdate["colonia_gruposolidario"] = $xDom["codigo_postal"]; $arrUpdate["direccion_gruposolidario"] = trim($xPred->getDomicilio()); $msg .= "ACTUAL\tEl Codigo Postal del Grupo se actualiza a " . $xDom["codigo_postal"] . " \r\n"; } } } //Verificar si la Vocal de Vigilancia Existe if ($vocal != DEFAULT_SOCIO) { $xVocal = new cSocio($vocal, true); $xVocal->init(); $nombre = trim($xVocal->getNombreCompleto()); if ($nombre == "") { $msg .= "ERROR\tLa Vocal de Vigilancia del Grupo no Existe\r\n"; } else { if ($CorreccionAutomatica == true) { $arrUpdate["vocalvigilancia_nombrecompleto"] = $nombre; $msg .= "ERROR\tLa Vocal de Vigilancia del Grupo se actualiza a {$nombre}\r\n"; } } } //Verificar si la Sucursal actual if ($this->mSucursal != $tmpSucursal and $vocal != DEFAULT_SOCIO) { $msg .= "ERROR\tLa Sucursal del Grupo(" . $this->mSucursal . ") no es el mismo que el de la Presidenta del Grupo({$tmpSucursal})\r\n"; if ($CorreccionAutomatica == true) { $arrUpdate["sucursal"] = $tmpSucursal; } } //Actualizar if ($CorreccionAutomatica == true) { $this->setUpdate($arrUpdate); } return $msg; }
$sql = "SELECT\n\t*\nFROM\n\t`socios_general` `socios_general`\n\t"; $rs = mysql_query($sql, cnnGeneral()); // echo "<table>"; while ($rw = mysql_fetch_array($rs)) { $soc = new cSocio($rw["codigo"]); $soc->init($rw); $a = $rw["codigo"]; $b = $rw["grupo_solidario"]; $c = $rw["apellidopaterno"]; $d = $rw["apellidomaterno"]; $e = $rw["nombrecompleto"]; $f = "S"; $g = $arrTipoPersona[$rw["personalidad_juridica"]]; $h = $rw["fechaalta"]; $dom = $soc->getDatosDomicilio(); $i = $dom["calle"] . " " . $dom["numero_exterior"]; $j = ""; $k = ""; $l = $dom["codigo_postal"]; $m = $rw["fechanacimiento"]; $n = $rw["rfc"]; $o = $soc->getIngresosMensuales(); $p = $arrEstadoCivil[$rw["estadocivil"]]; $q = $arrTipoVivienda[$dom["tipo_regimen"]]; $r = ""; echo "\n\t\t\t<tr>\n\t\t\t\t<td>{$a}</td>\n\t\t\t\t<td>{$b}</td>\n\t\t\t\t<td>{$c}</td>\n\t\t\t\t<td>{$d}</td>\n\t\t\t\t<td>{$e}</td>\n\t\t\t\t<td>{$f}</td>\n\t\t\t\t<td>{$g}</td>\n\t\t\t\t<td>{$h}</td>\n\t\t\t\t<td>{$i}</td>\n\t\t\t\t<td>{$j}</td>\n\t\t\t\t<td>{$k}</td>\n\t\t\t\t<td>{$l}</td>\n\t\t\t\t<td>{$m}</td>\n\t\t\t\t<td>{$n}</td>\n\t\t\t\t<td>{$o}</td>\n\t\t\t\t<td>{$p}</td>\n\t\t\t\t<td>{$q}</td>\n\t\t\t\t<td>{$r}</td>\n\t\t\t</tr>"; } echo "</table>"; if ($input != "excel") { ?>
function JSsetDomicilioMismo($socio, $HDomicilio) { $HDomicilio = strtoupper($HDomicilio); if ($HDomicilio == "MISMO") { $xSoc = new cSocio($socio); $xSoc->init(); $DDom = $xSoc->getDatosDomicilio(99); $domicilio = $xSoc->getDomicilio(); $telefono = $DDom["telefono_residencial"]; $telefonomovil = $DDom["telefono_movil"]; $tab = new TinyAjaxBehavior(); $tab->add(TabSetValue::getBehavior('idTFijo', $telefono)); $tab->add(TabSetValue::getBehavior('idTMovil', $telefonomovil)); $tab->add(TabSetValue::getBehavior('idDomicilio', $domicilio)); return $tab->getString(); } }
$MiEstado = str_ireplace("_", " ", $MiEstado); $xTxt->setWrite("{$socio}\t{$i}\tBuscando {$MiEstado}\r\n"); //if ( in_array($MiEstado, $arrTrunk) ){ $sqlMiEstado = "SELECT clave_alfanumerica, nombre FROM general_estados WHERE nombre LIKE \"%{$MiEstado}%\" LIMIT 0,1 "; $DFEstado = obten_filas($sqlMiEstado); $xVEstado = $DFEstado["clave_alfanumerica"]; if (strlen($xVEstado) == 2) { $findEstado = $xVEstado; $xTxt->setWrite("{$socio}\tSe encontro " . $DFEstado["nombre"] . " por la busqueda de {$MiEstado}\r\n"); } //} } } $genero = $arrGenero[$rw["genero"]]; $cSoc = new cSocio($socio); $dDom = $cSoc->getDatosDomicilio(99); $codigo_postal = $dDom["codigo_postal"]; $telefono = $dDom["telefono_residencial"]; $nacionalidad = ""; $estadocivil = $arrEstadoCivil[$rw["estadocivil"]]; //Datos del Estado que ejerce el APOYO $sqlPostal = "SELECT * FROM general_colonias WHERE codigo_postal = {$codigo_postal} LIMIT 0,1 "; $DPostal = obten_filas($sqlPostal); $AEstado = $DPostal["codigo_de_estado"]; $AMunicipio = $DPostal["codigo_de_municipio"]; //SQL Marginaci�n $sqlMarg = "SELECT\n\t\t\t\t\t\t`general_municipios`.`clave_de_entidad`,\n\t\t\t\t\t\t`general_municipios`.`clave_de_municipio`,\n\t\t\t\t\t\t`general_municipios`.`grado_de_marginacion` \n\t\t\t\t\tFROM\n\t\t\t\t\t\t`general_municipios` `general_municipios` \n\t\t\t\t\tWHERE\n\t\t\t\t\t\t(`general_municipios`.`clave_de_entidad` ={$AEstado}) AND\n\t\t\t\t\t\t(`general_municipios`.`clave_de_municipio` ={$AMunicipio}) LIMIT 0,1"; $marginacion = trim(mifila($sqlMarg, "grado_de_marginacion")); $marginacion = $arrMarg[$marginacion]; $tr .= "<tr>\n\t\t\t\t\t\t\t<td>{$socio}</td>\n\t\t\t\t\t\t\t<td>{$curp}</td>\n\t\t\t\t\t\t\t<td>{$app1}</td>\n\t\t\t\t\t\t\t<td>{$app2}</td>\n\t\t\t\t\t\t\t<td>{$nombre}</td>\n\t\t\t\t\t\t\t<td>{$fechaNac}</td>\n\t\t\t\t\t\t\t<td>{$findEstado}</td>\n\t\t\t\t\t\t\t<td>{$genero}</td>\n\t\t\t\t\t\t\t<td>{$telefono}</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td>{$nacionalidad}</td>\n\t\t\t\t\t\t\t<td>{$estadocivil}</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td>{$AEstado}</td>\n\t\t\t\t\t\t\t<td>{$AMunicipio}</td>\n\t\t\t\t\t\t\t<td>9999</td>\n\t\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t\t<td>{$marginacion}</td>\n\t\t\t\t\t\t</tr>"; }
function setNewLlamadaBySocio($socio, $solicitud, $fecha, $hora, $observaciones, $oficial = false) { $xFecha = new cFecha(0, $fecha); $x = array(); $fechaIn = $xFecha->setRestarDias(DIAS_DE_INTERVALO_POR_LLAMADAS); $fechaFi = $xFecha->setSumarDias(DIAS_DE_INTERVALO_POR_LLAMADAS); $msg = ""; $sqlL_Ant = "SELECT\n\t\t\t\t\tCOUNT(`seguimiento_llamadas`.`idseguimiento_llamadas`) AS 'pendientes',\n\t\t\t\t\tMAX(`seguimiento_llamadas`.`fecha_llamada`) AS 'por_aplicar'\n\t\t\t\tFROM\n\t\t\t\t\t`seguimiento_llamadas` `seguimiento_llamadas`\n\t\t\t\tWHERE\n\t\t\t\t\t(`seguimiento_llamadas`.`numero_solicitud` ='{$solicitud}') AND\n\t\t\t\t\t(`seguimiento_llamadas`.`estatus_llamada` ='pendiente')\n\t\t\t\t\tAND\n\t\t\t\t\t((`seguimiento_llamadas`.`fecha_llamada` >='{$fechaIn}')) AND\n\t\t\t\t\t(`seguimiento_llamadas`.`fecha_llamada` <='{$fechaFi}')\n\t\t\t\tGROUP BY\n\t\t\t\t\t`seguimiento_llamadas`.`numero_solicitud`\n\t\t\t\t"; $DLAnt = obten_filas($sqlL_Ant); $existentes = $DLAnt["pendientes"]; //Si las llamadas existen: ACTUALIZAR if (isset($existentes) and $existentes > 0) { //actualizar llamadas Anteriores todavia: PENDIENTES $sqlCA = "UPDATE seguimiento_llamadas\n\t \t\t\t\tSET fecha_llamada = '{$fecha}'\n\t \t\t\t\tWHERE\n\t\t\t\t\t\t(`seguimiento_llamadas`.`numero_solicitud` ='{$solicitud}') AND\n\t\t\t\t\t\t(`seguimiento_llamadas`.`estatus_llamada` ='pendiente')\n\t\t\t\t\t\tAND\n\t\t\t\t\t\t((`seguimiento_llamadas`.`fecha_llamada` >='{$fechaIn}')) AND\n\t\t\t\t\t\t(`seguimiento_llamadas`.`fecha_llamada` <='{$fechaFi}') "; $x = my_query($sqlCA); if ($x["stat"] == false) { $msg = "{$socio}\t{$solicitud}\tERROR!\tLa llamada para el dia {$fecha} no fue actualizada "; } else { $msg = "{$socio}\t{$solicitud}\tSUCESS!\tLa llamada para el dia {$fecha} fue actualizada "; } } else { $xSocio = new cSocio($socio); $xSocio->init(); $DSocio = $xSocio->getDatosInArray(); $grupo = $DSocio["grupo_solidario"]; $DDom = $xSocio->getDatosDomicilio(99); $sucursal = getSucursal(); $eacp = EACP_CLAVE; if ($oficial == false) { $SqlSol = "SELECT * FROM creditos_solicitud WHERE numero_solicitud={$solicitud}"; $DSol = obten_filas($SqlSol); $oficial = $DSol["oficial_seguimiento"]; } $telefono_fijo = $DDom["telefono_residencial"]; $telefono_movil = $DDom["telefono_movil"]; $sql = "INSERT INTO seguimiento_llamadas\n\t\t\t\t\t\t\t(numero_socio,\tnumero_solicitud, deuda_total,\n\t\t\t\t\t\t\ttelefono_uno, telefono_dos,\n\t\t\t\t\t\t\tfecha_llamada, hora_llamada,\n\t\t\t\t\t\t\tobservaciones, estatus_llamada,\n\t\t\t\t\t\t\toficial_a_cargo, sucursal,\n\t\t\t\t\t\t\teacp, grupo_relacionado)\n\t \t\t\tVALUES\n\t\t\t\t\t\t\t({$socio}, {$solicitud}, 0,\n\t\t\t\t\t\t\t'{$telefono_fijo}', '{$telefono_movil}',\n\t\t\t\t\t\t\t'{$fecha}', '{$hora}',\n\t\t\t\t\t\t\t'{$observaciones}', 'pendiente',\n\t\t\t\t\t\t\t{$oficial}, '{$sucursal}',\n\t\t\t\t\t\t\t'{$eacp}', {$grupo})"; //evaluar fecha, si es inhabil o domingo se ignora $x = my_query($sql); if ($x["stat"] == false) { $msg = "{$socio}\t{$solicitud}\tERROR!\tLa llamada para el dia {$fecha} no fue CREADA "; } else { $msg = "{$socio}\t{$solicitud}\tSUCESS!\tLa llamada para el dia {$fecha} fue CREADA "; } //Eliminar Variables unset($DDom); unset($DSocio); unset($DSol); } return $msg; }
function jsaGetDatosDePersona($persona) { $xSoc = new cSocio($persona); $xSoc->init(); $sucess = true; $telefono = ""; $domicilio = ""; $telefonomovil = ""; $nombre = ""; $appPaterno = ""; $appMaterno = ""; $NDia = ""; $NMes = ""; $NAnno = ""; $actividad = ""; /** * Si el Numero de Socio es menor a 5 digitos */ $DDom = $xSoc->getDatosDomicilio(); $telefono = $xSoc->getTelefonoPrincipal(); $nombre = $xSoc->getNombre(); $appPaterno = $xSoc->getApellidoPaterno(); $appMaterno = $xSoc->getApellidoMaterno(); $curp = $xSoc->getCURP(); $FNacimiento = $xSoc->getFechaDeNacimiento(); $DOcup = $xSoc->getDatosActividadEconomica(); $actividad = $DOcup["puesto"]; $socio = $xSoc->getCodigo(); $tab = new TinyAjaxBehavior(); if ($sucess == true) { $tab->add(TabSetvalue::getBehavior("telefono", $telefono)); $tab->add(TabSetvalue::getBehavior("nombre", $nombre)); $tab->add(TabSetvalue::getBehavior("paterno", $appPaterno)); $tab->add(TabSetvalue::getBehavior("materno", $appMaterno)); $tab->add(TabSetvalue::getBehavior('curp', $curp)); $tab->add(TabSetvalue::getBehavior("ocupacion", $actividad)); $tab->add(TabSetvalue::getBehavior("ingreso", $xSoc->getIngresosMensuales())); //$tab->add(TabSetvalue::getBehavior("personarelacionada", $persona)); // "idnombrecolonia" "identidadesfederativas" if ($xSoc->getODomicilio() == null) { } else { $tab->add(TabSetvalue::getBehavior("idnombrecolonia", $DDom["colonia"])); $tab->add(TabSetvalue::getBehavior("idnombreacceso", $DDom["calle"])); $tab->add(TabSetvalue::getBehavior("idnumeroexterior", $DDom["numero_exterior"])); $tab->add(TabSetvalue::getBehavior("idcodigopostal", $DDom["codigo_postal"])); if (PERSONAS_VIVIENDA_MANUAL == true) { $tab->add(TabSetvalue::getBehavior("idnombrelocalidad", $DDom["localidad"])); $tab->add(TabSetvalue::getBehavior("idnombremunicipio", $DDom["municipio"])); } else { } } } //$tab -> add(TabSetvalue::getBehavior('idObservaciones', $xSoc->getMessages() )); return $tab->getString(); }