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();
}
    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>';
    }
                 $pais = EACP_CLAVE_DE_PAIS;
                 $nombre_estado = $xCol->getNombreEstado();
                 $nombremunicipio = $xCol->getNombreMunicipio();
                 $nombrelocalidad = $xCol->getNombreLocalidad();
                 if (trim($colonia) == "") {
                     $colonia = $xCol->getNombre();
                 }
             }
         }
         if ($colonia == false || $colonia == "") {
             if (setNoMenorQueCero($idcolonia) > 0) {
                 $xCol = new cDomiciliosColonias($idcolonia);
                 $xCol->init();
                 $colonia = $xCol->getNombre();
                 $nombre_estado = $xCol->getNombreEstado();
                 $nombremunicipio = $xCol->getNombreMunicipio();
                 $nombrelocalidad = $xCol->getNombreLocalidad();
             } else {
                 $colonia = trim($colonia) == "" ? $xLoc->DomicilioCodigoPostal() : $colonia;
             }
         }
         $addDom = $xSoc->addVivienda($calle, $nexterior, $cpostal, $ninterior, $referencia, $tresidencial, $tmovil, $principal, $regimen, $tdomicilio, $tiempo, $colonia, $tipo_acceso, "", $idlocalidad, $pais, $nombre_pais, $nombre_estado, $nombremunicipio, $nombrelocalidad);
         if ($addDom == false) {
             $msg .= "ERROR\tError al agregar el domicilio \r\n";
         } else {
             $iddomicilio = $xSoc->getIDDeVivienda();
         }
     }
 }
 if (setNoMenorQueCero($ingresos) > 0 and setNoMenorQueCero($persona) > 0) {
     $addAct = $xSoc->addActividadEconomica($nombreempresa, $ingresos, "", DEFAULT_TIEMPO, FALLBACK_CLAVE_EMPRESA, $calle . "/" . $nexterior, $nombrelocalidad, $nombremunicipio, $nombre_estado, $tmovil, 0, 0, "", $idactividad, FALLBACK_SECTOR_ECONOMICO, $sucursal, "0", $cpostal, $idlocalidad);
             $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);
         if ($xDLoc->init() == true) {
             $localidad_ae = $xDLoc->getNombre();
             $estado_ae = $xDLoc->getNombre();
         }
     }
 }
 //TODO: Terminar
 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;
 }
$locales = list_system_locales();
//var_dump($locales);
//Crear formularios
$xFRM = new cHForm("frmTest", "./test.php");
$xHTxt = new cHText("");
//====================================================================================================
$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>");
 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;
 }