/**
  * Funcion que Inicializa el Credito
  * @var array $DCredito Se Refiere al Forzado de Asignacion de Variables, un Array Completo
  */
 function init($DCredito = false)
 {
     $WithSocio = "";
     /**
      *	Marcar Segunda condicion
      */
     if ($this->mNumeroSocio != false) {
         $WithSocio = "\tAND\n\t\t\t\t\t\t(`creditos_solicitud`.`numero_socio` =" . $this->mNumeroSocio . ") ";
     }
     $xSTb = new cSAFETabla(TCREDITOS_REGISTRO);
     $sql = $xSTb->getQueryInicial() . "\n\t\t\t\tWHERE\n\t\t\t\t\t(`creditos_solicitud`.`numero_solicitud` =" . $this->mNumeroCredito . ")\n\t\t\t\t\t{$WithSocio}\n\t\t\t\tLIMIT 0,1";
     if ($DCredito == false or !is_array($DCredito)) {
         $DCredito = obten_filas($sql);
     }
     if (isset($DCredito["numero_solicitud"])) {
         $this->mNumeroCredito = $DCredito["numero_solicitud"];
         $this->mNumeroSocio = $DCredito["numero_socio"];
         $this->mFechaMinistracion = $DCredito["fecha_ministracion"];
         $this->mFechaVencimiento = $DCredito["fecha_vencimiento"];
         $this->mFechaUltimoMvtoCapital = $DCredito["fecha_ultimo_mvto"];
         $this->mFechaMora = $DCredito["fecha_mora"];
         $this->mFechaDeSolictud = $DCredito["fecha_solicitud"];
         $this->mFechaDeAutorizacion = $DCredito["fecha_autorizacion"];
         $this->mFechaVencimientoLegal = $DCredito["fecha_vencimiento_dinamico"];
         $this->mPeriocidadDePago = $DCredito["periocidad_de_pago"];
         $this->mTipoDePago = $DCredito["tipo_de_pago"];
         $this->mDiasAutorizados = $DCredito["dias_autorizados"];
         $this->mPagosAutorizados = $DCredito["pagos_autorizados"];
         $this->mTasaInteres = $DCredito["tasa_interes"];
         $this->mTasaMoratorio = $DCredito["tasa_moratorio"];
         $this->mTasaAhorro = $DCredito["tasa_de_ahorro"];
         $this->mTasaGarantiaLiquida = $DCredito["porciento_garantia_liquida"];
         $this->mSdoCapitalInsoluto = $DCredito["saldo_actual"];
         $this->mMontoMinistrado = $DCredito["monto_autorizado"];
         $this->mMontoSolicitado = $DCredito["monto_solicitado"];
         $this->mToleranciaEnDiasParaVcto = $DCredito["tolerancia_en_dias_para_vencimiento"];
         $this->mToleranciaEnDiasParaPago = $DCredito["tolerancia_dias_no_pago"];
         $this->mEstatusActual = $DCredito["estatus_actual"];
         $this->mIVAIncluido = $DCredito["iva_incluido"];
         $this->mTasaIVA = $DCredito["tasa_iva"];
         $this->mGrupoAsociado = $DCredito["grupo_asociado"];
         $this->mTipoDeConvenio = $DCredito["tipo_convenio"];
         $this->mOficialDeCredito = $DCredito["oficial_credito"];
         $this->mInteresDiario = $DCredito["interes_diario"];
         $this->mInteresNormalPagado = $DCredito["interes_normal_pagado"];
         $this->mInteresNormalDevengado = $DCredito["interes_normal_devengado"];
         $this->mInteresMoratorioDev = $DCredito["interes_moratorio_devengado"];
         $this->mInteresMoratorioPag = $DCredito["interes_moratorio_pagado"];
         $this->mDescripcionPeriocidad = $DCredito["descripcion_periocidadpagos"];
         $this->mDescripcionProducto = $DCredito["descripcion_tipoconvenio"];
         $this->mDescripcionEstatus = $DCredito["descripcion_estatus"];
         $this->mTipoDeCalculoDeInteres = $DCredito["tipo_de_calculo_de_interes"];
         $this->mParcialidadActual = $DCredito["ultimo_periodo_afectado"];
         $this->mContratoCorriente = $DCredito["contrato_corriente_relacionado"];
         $this->mMontoAutorizado = $DCredito["monto_autorizado"];
         $this->mModalidadDeCredito = $DCredito["tipo_credito"];
         $this->mTipoDeDestino = $DCredito["destino_credito"];
         $this->mClaveDeDestino = $DCredito["destino_credito"];
         $this->mCausaDeMora = $DCredito["causa_de_mora"];
         $this->mDescripcionDestino = $DCredito["descripcion_aplicacion"];
         $this->mTipoDeAutorizacion = $DCredito["tipo_autorizacion"];
         $this->mMontoFijoParcialidad = $DCredito["monto_parcialidad"];
         //
         $this->mContrato_URL = $DCredito["path_del_contrato"];
         $this->mEmpresa = $DCredito["persona_asociada"];
         $this->mSaldoVencido = $DCredito["saldo_vencido"];
         $this->mFechaUltimoPago = $DCredito["fecha_ultimo_mvto"];
         $this->mSdoCapitalInsoluto = $DCredito["saldo_actual"];
         $this->mFechaPrimeraParc = $DCredito["fecha_de_primer_pago"];
         $this->mEmpresa = $this->mEmpresa == 0 ? FALLBACK_CLAVE_EMPRESA : $this->mEmpresa;
         if ($this->mEmpresa != FALLBACK_CLAVE_EMPRESA) {
             $xEmp = new cEmpresas($this->mEmpresa);
             $xEmp->init();
             $this->mNombrePersonaAsoc = $xEmp->getNombreCorto();
         }
         $this->mArrDatosDeCredito = $DCredito;
         unset($DCredito);
         //Inicializa el Credito
         $this->mCreditoInicializado = true;
     } else {
         $this->mCreditoInicializado = false;
     }
     return $this->mCreditoInicializado;
 }
 function init($ArrayInicial = false, $force = false)
 {
     $xDTb = new cSAFETabla(TCAPTACION_CUENTAS);
     //Datos de la cuenta
     $SqlCta = $xDTb->getQueryInicial() . "\n\t\t\t\tWHERE\n\t\t\t\t\t(`captacion_cuentas`.`numero_cuenta` =" . $this->mNumeroCuenta . ")\n\t\t\t\tLIMIT 0,1 ";
     if ($ArrayInicial != false and is_array($ArrayInicial)) {
         $DC = $ArrayInicial;
         $this->mMessages .= "DATOS\tCarga de Datos Externa\r\n";
     } else {
         $DC = obten_filas($SqlCta);
     }
     if (isset($DC) and $DC != false) {
         $this->mFechaUltimaOp = $DC["fecha_afectacion"];
         $this->mSaldoActual = $DC["saldo_cuenta"];
         $this->mEstatusActual = $DC["estatus_cuenta"];
         $this->mSocioTitular = $DC["numero_socio"];
         $this->mPeriodoCuenta = $DC["inversion_periodo"];
         $this->mCreditoAsoc = $DC["numero_solicitud"];
         $this->mGrupoAsociado = $DC["numero_grupo"];
         $this->mSaldoAnterior = $this->mSaldoActual;
         $this->mTipoDeCuenta = $DC["tipo_cuenta"];
         $this->mSubProducto = $DC["tipo_subproducto"];
         $this->mURLContrato = $DC["nombre_del_contrato"];
         $this->mModificadorDeInteres = $DC["algoritmo_modificador_del_interes"];
         $this->mModificadorTasa = $DC["algoritmo_de_tasa_incremental"];
         //TODO: verificar incidencias
         $this->mDiasInvertidos = $DC["dias"];
         $this->mTasaInteres = $DC["tasa_otorgada"];
         $this->mFechaVencimiento = $DC["vencimiento"];
         $this->mDestinoDelInteres = $DC["destino_del_interes"];
         $this->mReciboDeReinversion = $DC["recibo_de_inversion"];
         $this->mNombreMancomunados = $DC["nombre_mancomunado1"];
         $this->mNombreMancomunados .= trim($DC["nombre_mancomunado2"]) == "" ? "" : " & " . $DC["nombre_mancomunado2"];
         $this->mMessages .= "WARN\tD.FVENC\tLa fecha de Vencimiento es " . $this->mFechaVencimiento . "\r\n";
         //Inicia el Nuevo Saldo como el Anterior
         $this->mNuevoSaldo = $this->mSaldoAnterior;
         $this->mDatosCuentaByArray = $DC;
         if ($this->mTipoDeCuenta == CAPTACION_TIPO_PLAZO) {
             $this->mOperacionDeposito = 221;
             $this->mOperacionRetiro = 231;
         } else {
             $this->mOperacionDeposito = 220;
             $this->mOperacionRetiro = 230;
         }
         $this->mMessages .= "WARN\tD.OP\tEl Tipo de Operacion para RETIRO ES " . $this->mOperacionRetiro . ", y para DEPOSITO es " . $this->mOperacionDeposito . "\r\n";
         $this->mCuentaIniciada = isset($DC["numero_socio"]) ? true : false;
         $this->mInit = $this->mCuentaIniciada;
         unset($DC);
     }
     return $this->mCuentaIniciada;
 }
 function setActualizarTasasDeInteres($cuenta = false, $todas = false, $tipo = false)
 {
     $xDTb = new cSAFETabla(TCAPTACION_CUENTAS);
     $wh = "";
     if ($cuenta == false) {
         $wh .= " AND (`captacion_cuentas`.`numero_cuenta` = {$cuenta} ) /*setActualizarInteres*/ ";
     } else {
         $wh .= $todas == false ? "" : " AND \t(`captacion_cuentas`.`saldo_cuenta` > " . TOLERANCIA_SALDOS . ") ";
     }
     $SqlCta = $xDTb->getQueryInicial() . " WHERE\t(`captacion_cuentas`.`numero_cuenta` !=" . DEFAULT_CUENTA_CORRIENTE . ") {$wh} ";
     $xCta = new cCuentaDeCaptacion($cuenta);
     $xCta->init();
     $xCta->getTasaAplicable();
 }
 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;
 }