function setPrevalidarCredito($arrDatos, $retornarMonto = false) { //$periocidad, $convenio, $contrato $xF = new cFecha(0); $sucess = true; $xT = new cTipos(); $socio = $this->mCodigo; //Datos a Manejar $monto_maximo = 0; $solicitud = isset($arrDatos["numero_de_solicitud"]) ? $arrDatos["numero_de_solicitud"] : false; $periocidad = isset($arrDatos["periocidad_de_pago"]) ? $arrDatos["periocidad_de_pago"] : 1; $convenio = isset($arrDatos["tipo_de_producto"]) ? $arrDatos["tipo_de_producto"] : false; $pagos = isset($arrDatos["numero_de_pagos"]) ? $arrDatos["numero_de_pagos"] : 0; $fecha_de_venc = isset($arrDatos["fecha_de_vencimiento"]) ? $arrDatos["fecha_de_vencimiento"] : $xF->get(); $fecha_de_min = isset($arrDatos["fecha_de_ministracion"]) ? $arrDatos["fecha_de_ministracion"] : $xF->get(); $contrato_corr = isset($arrDatos["contrato_corriente_relacionado"]) ? $arrDatos["contrato_corriente_relacionado"] : DEFAULT_CUENTA_CORRIENTE; $monto = isset($arrDatos["monto_solicitado"]) ? $arrDatos["monto_solicitado"] : 0; // $dias = ($periocidad == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO or $periocidad == CREDITO_TIPO_PERIOCIDAD_DIARIO) ? $xF->setRestarFechas($fecha_de_venc, $fecha_de_min) : $periocidad * $pagos; //enviar false if ($convenio == false) { $sucess = false; $this->mMessages .= "ERROR\t{$socio}\t{$solicitud}\tEl tipo de Convenio no es Valido\r\n"; } else { $xConv = new cProductoDeCredito($convenio); //si es nomina y no tiene empresa. mostrar false if ($xConv->getEsProductoDeNomina() == true) { $this->mMessages .= "WARN\t{$socio}\t{$solicitud}\tEl Producto e de Nomina\r\n"; if ($this->getClaveDeEmpresa() == FALLBACK_CLAVE_EMPRESA) { $sucess = false; $this->mMessages .= "ERROR\t{$socio}\t{$solicitud}\tEl Producto es de Nomina y No hay EMPRESA\r\n"; } } $DConv = $xConv->getDatosInArray(); $dias_maximo = $DConv["dias_maximo"]; $tasa_ahorro = $DConv["tasa_ahorro"]; $pagos_maximo = $DConv["pagos_maximo"]; $validacion_php = $DConv["php_monto_maximo"]; //cargar datos economicos del socio $ingreso_mensual = $this->getIngresosMensuales(); $DTotCreds = $this->getTotalColocacionActual(); $DTotCredsByConvenio = $this->getTotalColocacionActual($convenio); $DTotCapt = $this->getTotalCaptacionActual(); //Datos de los Creditos segun referencias $monto_de_aportaciones = $this->getFondoPatrimonial(); $saldos_de_creditos = $xT->cFloat($DTotCreds["saldo"]); $saldo_por_producto = $xT->cFloat($DTotCredsByConvenio["saldo"]); $monto_de_planeacion = get_monto_planeacion_credito($socio); //TODO: modificar $monto_linea_credito = $this->getMontoLineaDeCredito(); $saldo_de_captacion = $xT->cFloat($DTotCapt["saldo"]); //Datos de los Creditos segun Productos $producto_monto_maximo = $DConv["maximo_otorgable"]; //Valorar Dias Maximo del Credito if ($dias > $dias_maximo) { $sucess = false; $this->mMessages .= "ERROR\t{$socio}\t{$solicitud}\tLos Dias del Credito[{$dias}] se exceden a lo permitido[{$dias_maximo}]\r\n"; } else { if ($dias < EACP_DIAS_MINIMO_CREDITO) { $sucess = false; $this->mMessages .= "ERROR\t{$socio}\t{$solicitud}\tLos Dias del Credito[{$dias}] son Menores al Minimo Permitido [" . EACP_DIAS_MINIMO_CREDITO . "] por la Institucion\r\n"; } else { $this->mMessages .= "OK\t{$socio}\t{$solicitud}\tDias de Pago dentro del Rango Permitido:[{$dias}]\r\n"; } } //Valorar Pagos Maximo del Credito if ($pagos > $pagos_maximo) { $sucess = false; $this->mMessages .= "ERROR\t{$socio}\t{$solicitud}\tLos Numero de Pagos[{$pagos}] Execeden a lo Permitido[{$pagos_maximo}]\r\n"; } else { $this->mMessages .= "OK\t{$socio}\t{$solicitud}\tNumero de Pagos dentro del Rango Permitido[{$pagos}]\r\n"; } //tasa de ahorro if ($tasa_ahorro > 0) { $this->mMessages .= "WARN\t{$socio}\t{$solicitud}\tEl Ahorro para este Convenio es Obligatorio\r\n"; //Valorar Contrato de Captacion if ($contrato_corr == DEFAULT_CUENTA_CORRIENTE or strlen($contrato_corr) < DIGITOS_DE_CLAVE_DE_SOCIO) { $this->mMessages .= "ERROR\t{$socio}\t{$solicitud}\tDebe Capturar un Numero de Contrato de Cuenta Corriente\tpara que los Pagos de Credito se Acumulen\r\n"; $sucess = false; } else { $xCta = new cCuentaDeCaptacion($contrato_corr); $existe = $this->existeCuenta($contrato_corr, CAPTACION_TIPO_VISTA); if ($existe == false) { // $this->mMessages .= "ERROR\t{$socio}\t{$solicitud}\tLa Cuenta {$contrato_corr} No existe, o no es del Tipo requerido\r\n"; $sucess = false; } else { // $this->mMessages .= "OK\t{$socio}\t{$solicitud}\tLa Cuenta {$contrato_corr} es valida para Utilizar\r\n"; } } //end: contrato } // end: tasa ahorro // eval($validacion_php); if ($monto > $monto_maximo) { $this->mMessages .= "ERROR\t{$socio}\t{$solicitud}\tEl Monto Solicitado {$monto} es mayor al Maximo Permitido {$monto_maximo}\r\n"; $sucess = false; } } $this->mUUID = md5($socio . $convenio . $monto . $pagos . ROTTER_KEY . date("Ymd")); return $retornarMonto == false ? $sucess : $monto_maximo; //obtener mensajes }
function getDatosDeProducto($convenio = false) { $convenio = $convenio == false ? $this->mTipoDeConvenio : $convenio; $xCV = new cProductoDeCredito($convenio); $xCV->init(); return $xCV->getDatosInArray(); }
//Si es a Final de Plazo if ($periocidad == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) { $dias_solicitados = restarfechas($fecha_vencimiento, $fecha_ministracion); } elseif ($periocidad == CREDITO_TIPO_PERIOCIDAD_DIARIO) { $dias_solicitados = restarfechas($fecha_vencimiento, $fecha_ministracion); $numeropagos = $dias_solicitados - $xFecha->getDiasHabilesEnRango($fecha_vencimiento, $fecha_ministracion); } else { $dias_solicitados = $numeropagos * $periocidad; $fecha_vencimiento = sumardias($fecha_ministracion, $dias_solicitados); } $dias_autorizados = 0; $monto_autorizado = 0; $pagos_autorizados = 0; $saldo_actual = 0; $xConv = new cProductoDeCredito($tipoconvenio); $dconv = $xConv->getDatosInArray(); //Datos de los Creditos segun Productos $producto_monto_maximo = $dconv["maximo_otorgable"]; $tipo_autorizacion = $dconv["tipo_autorizacion"]; $docto_autorizacion = $dconv["leyenda_docto_autorizacion"]; $interes_normal = $xConv->getTasaDeInteres(); $interes_moratorio = $dconv["interes_moratorio"]; $tipo_credito = $dconv["tipo_de_credito"]; $estatus_pred = $dconv["estatus_predeterminado"]; $nivel_riesgo = $dconv["nivel_riesgo"]; $tasa_ahorro = $dconv["tasa_ahorro"]; $tipo_de_calculo_interes = $dconv["base_de_calculo_de_interes"]; //Si es Automatizado if ($tipo_autorizacion == CREDITO_TIPO_AUTORIZACION_AUTOMATICA) { $monto_autorizado = $monto_solicitado; $dias_autorizados = $dias_solicitados;