function init($principal = false, $datos = false)
 {
     $ByPrinc = "";
     //($principal  == false) ? "" : " AND principal='1' ";
     $xDB = new cSAFETabla(TPERSONAS_DIRECCIONES);
     $sql = $xDB->getQueryInicial();
     $ByTipo = "";
     if ($this->mIDCargado > 0) {
         $sql .= " WHERE `idsocios_vivienda` = " . $this->mIDCargado . " LIMIT 0,1";
     } else {
         $sql .= " WHERE socio_numero=" . $this->mPersona . " {$ByPrinc} {$ByTipo} ORDER BY principal DESC, fecha_alta DESC LIMIT 0,1";
     }
     //setLog($sql);
     if (is_array($datos)) {
         $this->mDatosInArray = $datos;
     } else {
         $this->mDatosInArray = obten_filas($sql);
     }
     $this->mOB = new cSocios_vivienda();
     $this->mCodigoPostal = EACP_CODIGO_POSTAL;
     $this->mClaveDeLocal = EACP_CLAVE_DE_LOCALIDAD;
     $this->mClaveDePais = EACP_CLAVE_DE_PAIS;
     $this->mClaveDeMun = EACP_CLAVE_DE_MUNICIPIO;
     $this->mClaveDeEstadoABC = EACP_CLAVE_DE_ENTIDADFED;
     $this->mClaveDeEstado = EACP_CLAVE_NUM_ENTIDADFED;
     $this->mClaveDeEstadoSIC = EACP_CLAVE_DE_ENTIDAD_SIC;
     $this->mNombrePais = EACP_DOMICILIO_PAIS;
     $this->mNombreLocalidad = EACP_LOCALIDAD;
     $this->mInit = isset($this->mDatosInArray["idsocios_vivienda"]) ? true : false;
     //DEFAULT_TIPO_DOMICILIO
     //setLog($sql);
     if ($this->mInit == false) {
         $this->mIDCargado = false;
     } else {
         $this->mIDCargado = $this->mDatosInArray["idsocios_vivienda"];
         $this->mOB->setData($this->mDatosInArray);
         $this->mCodigoPostal = setNoMenorQueCero($this->mOB->codigo_postal()->v());
         $this->mClaveDeLocal = $this->mOB->clave_de_localidad()->v();
         $this->mClaveDePais = strtoupper($this->mOB->clave_de_pais()->v());
         $this->mNombrePais = strtoupper($this->mOB->nombre_de_pais()->v());
         $this->mNombreLocalidad = strtoupper($this->mOB->localidad()->v());
         $this->mNombreColonia = strtoupper($this->mOB->colonia()->v());
         $this->mNombreCiudad = strtoupper($this->mOB->localidad()->v());
         //setLog($this->mCodigoPostal);
         //iniciar colonia
         if ($this->mCodigoPostal > 0) {
             $xCol = new cDomiciliosColonias();
             if ($xCol->existe($this->mCodigoPostal) == true) {
                 $this->mClaveDeMun = $xCol->getClaveDeMunicipio();
                 $this->mObjColonia = $xCol;
                 $this->mClaveDeEstadoABC = $xCol->getClaveDeEstadoABC();
                 $this->mClaveDeEstado = $xCol->getClaveDeEstado();
                 $this->mClaveDeEstadoSIC = $xCol->getClaveEstadoEnSIC();
                 $this->mNombreCiudad = $xCol->getNombreCiudad();
             } else {
                 $xCol = null;
                 if (isset($_SESSION[SYS_LOCAL_VARS_LOAD])) {
                     $xLoc = new cLocal();
                     $this->mClaveDeMun = $xLoc->DomicilioMunicipioClave();
                     $this->mClaveDeEstadoABC = $xLoc->DomicilioEstadoClaveABC();
                     $this->mClaveDeEstado = $xLoc->DomicilioEstadoClaveNum();
                     $this->mClaveDeEstadoSIC = $xLoc->DomicilioEstadoClaveSIC();
                     $this->mCodigoPostal = $xLoc->DomicilioCodigoPostal();
                 }
             }
         }
     }
     return $this->mDatosInArray;
 }