function jsaGetDatosHeredados($codigopostal, $idcolonia)
{
    $tab = new TinyAjaxBehavior();
    $xCol = new cDomiciliosColonias();
    if (setNoMenorQueCero($codigopostal) > 0) {
        $xCol->getClavePorCodigoPostal($codigopostal);
    } else {
        if (setNoMenorQueCero($idcolonia) <= 0) {
            $xLoc = new cLocal();
            $xCol->getClavePorCodigoPostal($xLoc->DomicilioCodigoPostal());
        } else {
            $xCol->set($idcolonia);
        }
    }
    $tab->add(TabSetValue::getBehavior("idnombrecolonia", $xCol->getNombre()));
    $tab->add(TabSetValue::getBehavior("idcolonia", $xCol->get()));
    if (PERSONAS_VIVIENDA_MANUAL == true) {
        $tab->add(TabSetValue::getBehavior("idnombrelocalidad", $xCol->getNombreLocalidad()));
        $tab->add(TabSetValue::getBehavior("idnombremunicipio", $xCol->getNombreMunicipio()));
        //$tab->add(TabSetValue::getBehavior("idnombreestado", $xCol->getNombreEstado() ));
    } else {
        //$tab->add(TabSetValue::getBehavior("idlocalidad", $xCol->getNombreLocalidad() ));
        $tab->add(TabSetValue::getBehavior("identidadfederativa", $xCol->getClaveDeEstadoABC()));
    }
    //$tab->add(TabSetValue::getBehavior("idestado", $xCol->getClaveDeEstado() ));
    return $tab->getString();
}
 $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);
 $DLoc = $xLoc->getDatosInArray();
 $claveLocInegi = $DLoc["clave_de_localidad"];
 $DAports = $xSoc->getDatosAportaciones();
 $montoParteSoc = $xSoc->getAportacionesSociales();
 $linea = "{$punto_de_acceso},{$socio},{$tipoDato},{$fechaNac},{$primerApellido},{$segundoApellido},{$primerNombre},{$segundoNombre},{$tipoPersona},{$fechaInscripcion}";
    function setReceptor($nombre, $rfc, $calle, $numeroExt, $numeroInt, $codigoPostal, $colonia = "", $municipio = "", $estado = "", $pais = "")
    {
        if (setNoMenorQueCero($codigoPostal) > 0 and $colonia == "") {
            $xCol = new cDomiciliosColonias();
            $xLoc = new cLocal();
            $idcol = $xCol->getClavePorCodigoPostal($codigoPostal);
            $colonia = $xCol->getNombre();
            $estado = $xCol->getNombreEstado();
            $municipio = $xCol->getNombreMunicipio();
            $pais = $pais == "" ? $xLoc->getNombreDePais() : $pais;
        }
        $sInterior = $numeroInt == "" ? "" : ' noInterior="' . strtoupper($numeroInt) . '" ';
        $this->mReceptor .= '<cfdi:Receptor 
		nombre="' . strtoupper($nombre) . '" 
		rfc="' . strtoupper($rfc) . '">
		<cfdi:Domicilio calle="' . strtoupper($calle) . '" 
		noExterior="' . strtoupper($numeroExt) . '" 
		' . $sInterior . '
		colonia="' . strtoupper($colonia) . '" 
		municipio="' . strtoupper($municipio) . '" 
		estado="' . strtoupper($estado) . '" pais="' . strtoupper($pais) . '" 
		codigoPostal="' . $codigoPostal . '" /></cfdi:Receptor>';
    }
         $xCol = new cDomiciliosColonias($idcolonia);
         $xCol->set($idcolonia);
         //setLog("Colonia Cargada del id $idcolonia");
         if ($xCol->init() == true) {
             $nombrecolonia = $xCol->getNombre();
             $localidad_ae = $xCol->getNombreLocalidad();
             $municipio_ae = $xCol->getNombreMunicipio();
             $localidad_ae = $xCol->getNombreLocalidad();
             $idlocalidad = $xCol->getClaveDeLocalidad();
             $cp = $xCol->getCodigoPostal();
             $loaded = true;
         }
     }
     if ($cp > 1 and $nombrecolonia == "") {
         $xCol = new cDomiciliosColonias($idcolonia);
         $xCol->getClavePorCodigoPostal($cp);
         //setLog("Colonia Cargada del id $idcolonia");
         if ($xCol->init() == true) {
             $nombrecolonia = $xCol->getNombre();
             $idlocalidad = $xCol->getClaveDeLocalidad();
             if (PERSONAS_VIVIENDA_MANUAL == false) {
                 $localidad_ae = $xCol->getNombreLocalidad();
                 $municipio_ae = $xCol->getNombreMunicipio();
                 $localidad_ae = $xCol->getNombreLocalidad();
                 $loaded = true;
             }
         }
     }
 } else {
     if ($idlocalidad > 0) {
         $xDLoc = new cDomicilioLocalidad($idlocalidad);
 function init()
 {
     $ql = new MQL();
     if ($this->mPersona > 0) {
         $ByTipo = "";
         // ($this->mTipo == false ) ? "" : "AND (`socios_aeconomica`.`tipo_aeconomica` = $tipo)";//no aplica tipo
         $ByID = setNoMenorQueCero($this->mIDCargado) > 1 ? " AND `idsocios_aeconomica` = " . $this->mIDCargado : "";
         $xDB = new cSAFETabla(TPERSONAS_ACTIVIDAD_ECONOMICA);
         $sql = $xDB->getQueryInicial() . "\tWHERE (`socios_aeconomica`.`socio_aeconomica` =" . $this->mPersona . ") {$ByTipo} {$ByID}\tORDER BY `fecha_alta` DESC, `socios_aeconomica`.`monto_percibido_ae` DESC LIMIT 0,1";
         $this->mDatosInArray = $ql->getDataRow($sql);
         $this->mInit = isset($this->mDatosInArray["idsocios_aeconomica"]) ? true : false;
         $this->mTipo = FALLBACK_ACTIVIDAD_ECONOMICA;
         if ($this->mInit == true) {
             $this->mOB = new cSocios_aeconomica();
             $this->mOB->query()->initByID($this->mDatosInArray["idsocios_aeconomica"]);
             $this->mIDCargado = $this->mOB->idsocios_aeconomica()->v();
             $this->mClaveEmpresa = $this->mOB->dependencia_ae()->v();
             $this->mDomicilio = $this->mOB->domicilio_ae()->v();
             $this->mCodigoPostal = setNoMenorQueCero($this->mOB->ae_codigo_postal()->v());
             $this->mIDDomicilio = setNoMenorQueCero($this->mOB->domicilio_vinculado()->v());
             $this->mNombreColonia = $this->mOB->localidad_ae()->v();
             //Iniciar Empresa
             $this->mOEmp = new cEmpresas($this->mClaveEmpresa);
             $this->mOEmp->init();
             $this->mEmpresaClavePersona = $this->mOEmp->getClaveDePersona();
             $this->mOB->setData($this->mDatosInArray);
             $this->mPuesto = $this->mOB->puesto()->v(OUT_TXT);
             $this->mTipo = $this->mOB->tipo_aeconomica()->v();
             //$this->mAMLNivelRiesgo		= $this->mOB->
             //Iniciar por codigo postal
             $xViv = new cPersonasVivienda($this->mPersona, PERSONAS_TIPO_DOM_LABORAL);
             if ($this->mIDDomicilio > 1) {
                 $xViv->setID($this->mDomicilio);
             }
             $xViv->init();
             if ($xViv->isInit() == true) {
                 $this->mDomicilio = $xViv->getDireccionBasica();
                 $this->mClaveDeEstado = $xViv->getClaveDeEstado();
                 $this->mClaveDeMunicipio = $xViv->getClaveDeMunicipio();
                 $this->mClaveDeLocalidad = $xViv->getClaveDeLocalidad();
                 $this->mCodigoPostal = $xViv->getCodigoPostal();
                 $this->mNombreDeLocalidad = $xViv->getLocalidad();
                 $this->mNombreDeMunicipio = $xViv->getMunicipio();
                 $this->mNombreDeEstado = $xViv->getEstado();
                 $this->mCalle = $xViv->getCalle();
                 $this->mNumeroExt = $xViv->getNumeroExterior();
                 $this->mNombreColonia = $xViv->getColonia();
                 $this->mClaveDeEstadoSIC = $xViv->getClaveDeEstadoEnSIC();
                 $this->mClaveDePais = $xViv->getClaveDePais();
                 $this->mViviendaInit = true;
             }
             if ($this->mIDDomicilio <= 1 and $this->mCodigoPostal > 0) {
                 $xCols = new cDomiciliosColonias();
                 $xCols->getClavePorCodigoPostal($this->mCodigoPostal);
                 $this->mClaveDeEstado = $xCols->getClaveDeEstado();
                 $this->mClaveDeMunicipio = $xCols->getClaveDeMunicipio();
                 $this->mClaveDeLocalidad = $xCols->getClaveDeEstado();
                 $this->mNombreDeLocalidad = $xCols->getNombreLocalidad();
                 $this->mNombreDeMunicipio = $xCols->getNombreMunicipio();
                 $this->mNombreDeEstado = $xCols->getNombreEstado();
                 $this->mNombreColonia = $xCols->getNombre();
                 $this->mClaveDeEstadoSIC = $xCols->getClaveEstadoEnSIC();
                 $this->mClaveDePais = $xCols->getClaveDePais();
                 $this->mViviendaInit = true;
             }
         }
     }
     if ($this->mOB == null) {
         $this->mOB = new cSocios_aeconomica();
         $this->mClaveEmpresa = FALLBACK_CLAVE_EMPRESA;
         $this->mEmpresaClavePersona = FALLBACK_CLAVE_DE_PERSONA;
     }
     return $this->mDatosInArray;
 }
//====================================================================================================
$xFRM->addHElem("<p class='aviso'>Pruebas de la Clase Colonia</p>");
//$txt 	= $xHTxt->getDeMoneda("id", "Moneda de Prueba",  100);
$xColonia = new cDomiciliosColonias();
$clave = $xColonia->getClavePorNombre("Ampliacion josefa ortiz de dom");
$xColonia->init();
$lng = new cLang();
$xFRM->addHElem($lng->getT("TR.La Clave Buscada es ") . $clave . "<br />");
$xFRM->addHElem($lng->getT("TR.El Codigo Postal Buscado es ") . $xColonia->getCodigoPostal() . "<br />");
$xFRM->addHElem($lng->getT("TR.EL Nombre de la Colonia es ") . $xColonia->getNombre() . "<br />");
$xFRM->addHElem($lng->getT("TR.EL Nombre del Municipio es ") . $xColonia->getNombreMunicipio() . "<br />");
$xFRM->addHElem($lng->getT("TR.EL Nombre del Estado es ") . $xColonia->getNombreEstado() . "<br />");
$xFRM->addHElem($lng->getT("TR.EL Nombre de la Localidaad es ") . $xColonia->getNombreLocalidad() . "<br />");
//$xFRM->addHElem( $txt );
$xFRM->addHElem("<p class='aviso'>Probando con el C.P. 24026</p>");
$clave = $xColonia->getClavePorCodigoPostal(24026);
//$xColonia->init();
$xFRM->addHElem("<p>La OTRA Clave Buscada es " . $clave . "</p>");
$xFRM->addHElem("<p>EL Nombre de la Colonia es " . $xColonia->getNombre() . "</p>");
$xFRM->addHElem("<p>EL Nombre del Municipio es " . $xColonia->getNombreMunicipio() . "</p>");
$xFRM->addHElem("<p>EL Nombre del Estado es " . $xColonia->getNombreEstado() . "</p>");
$xFRM->addHElem("<p>EL Nombre de la Localidad es " . $xColonia->getNombreLocalidad() . "</p>");
$xFRM->addHElem("<p>EL Nombre de la Localidad2 es " . $xColonia->getOColonia()->sucursal()->v() . "</p>");
///Iniciar el estado
$xColonia->getOEstado();
$xFRM->addHElem("<p>EL Nombre de la Localidad2 es " . $xColonia->getClaveEstadoEnSIC() . "</p>");
$xFRM->addHTML("<p class='aviso'>" . $xColonia->getMessages(OUT_HTML) . "</p>");
$xFRM->addHElem("<hr />");
$xFRM->addHElem("<p class='aviso'>Probando con el C.P. 24010 y la palabra Guadalupe (2)</p>");
$existentes = $xColonia->existe(24010, false, "guadalupe", true);
$xFRM->addHElem("<p>Existentes en Guadalupe " . $existentes . "</p>");
 function setCorregirDomicilios($correcion = false)
 {
     //obtener codigo postal
     $msg = "";
     //verificar si existe persona
     $ql = new MQL();
     $rs = $ql->getDataRecord("SELECT * FROM `socios_vivienda`");
     $xViv = new cSocios_vivienda();
     $xT = new cTipos();
     $xT->setForceMayus();
     $xT->setToUTF8();
     $xT->setForceClean();
     foreach ($rs as $rows) {
         $xViv->setData($rows);
         //codigo_postal
         $codigo_postal = $xViv->codigo_postal()->v();
         $id = $xViv->idsocios_vivienda()->v();
         $xCol = new cDomiciliosColonias();
         $idunico = $xCol->getClavePorCodigoPostal($codigo_postal);
         //corregir codigo postal
         //optener CP por sucursal
         if ($idunico <= 0) {
             //asignar codigo postal
             //iniciar por sucursal
             $xSuc = new cSucursal($xViv->sucursal()->v());
             if ($xSuc->init() == true) {
                 $codigo_postal = $xSuc->getCodigoPostal();
                 $idunico = $xCol->getClavePorCodigoPostal($codigo_postal);
                 $xViv->codigo_postal($codigo_postal);
             }
         }
         //verificar principal
         if (trim($xViv->principal()->v()) == "") {
             $xViv->principal(TIPO_DOMICILIO_PRINCIPAL);
         }
         //corregir pais
         if (trim($xViv->nombre_de_pais()->v()) == "") {
             $xViv->nombre_de_pais(strtoupper(EACP_DOMICILIO_PAIS));
         } else {
             $xViv->nombre_de_pais(strtoupper($xViv->nombre_de_pais()->v()));
         }
         if ($idunico > 0) {
             //cargar colonia
             $estado = $xViv->estado()->v();
             //if($xViv->clave_de_pais()->v() != $xCol->get)
             if ($estado != $xCol->getNombreEstado()) {
                 //$msg		.= "ERROR\tEl Estado " . $xViv->estado()->v() .  " es diferente a " . $xT->cChar( $xCol->getNombreEstado()) . "\r\n";
                 //$estado		= $xT->cChar( $xCol->getNombreEstado());
             }
             if ($correcion == true) {
                 //$msg		.= "OK\tCorrecion autorizada\r\n";
                 $xViv->estado($xT->cChar($xCol->getNombreEstado()));
                 $xViv->municipio($xT->cChar($xCol->getNombreMunicipio()));
                 $xViv->localidad($xT->cChar($xCol->getNombreLocalidad()));
                 $xViv->clave_de_localidad($xCol->getClaveDeLocalidad());
                 if (PERSONAS_PERMITIR_EXTRANJEROS == false) {
                     $xViv->clave_de_pais(EACP_CLAVE_DE_PAIS);
                 }
                 $qup = $xViv->query()->update();
                 $rx = $qup->save($id);
                 if ($rx == true) {
                     $msg .= "OK\tVivienda con CP {$codigo_postal} e ID {$id} actualizado a la Colonia {$idunico}\r\n";
                 } else {
                     $msg .= "ERROR\tAl actualizar la Vivienda con CP {$codigo_postal} e ID {$id} . Colonia {$idunico}\r\n";
                 }
                 if (MODO_DEBUG == true) {
                     $msg .= $qup->getMessages();
                 }
             }
         } else {
             $msg .= "WARN\tCodigo omitido por ser {$codigo_postal}\r\n";
         }
     }
     return $msg;
 }