/** * Funcion que Busca un Fecha por el Numero de Pagos por el que debe llevar * @param integer $pago_buscado Numero de pago del cual se debe buscar la fecha * @param array $aD establece los parametros por array */ function getFechaEstimadaPorNumeroDePago($pago_buscado, $aD = false) { if ($this->mCreditoInicializado == false) { $this->initCredito(); } $credito = $this->mNumeroCredito; $socio = $this->mNumeroSocio; $fecha_ministracion = $this->mFechaMinistracion; $fecha_vencimiento = $this->mFechaVencimiento; $pagos_autorizados = $this->mPagosAutorizados; $periocidad_pago = $this->mPeriocidadDePago; $dias_autorizados = $this->mDiasAutorizados; $dias_tolerancia_no_pago = $this->mToleranciaEnDiasParaPago; $tipo_de_pago = $this->mTipoDePago; $msg = ""; $ql = new MQL(); $fecha_devuelta = $fecha_vencimiento; if ($tipo_de_pago == CREDITO_TIPO_PAGO_UNICO or $tipo_de_pago == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) { $msg .= "TIPO.PAG\tEl Tipo de pago es UNICO, se devuelve la fecha de Vencimiento: {$fecha_vencimiento}\r\n"; $fecha_devuelta = $fecha_vencimiento; } else { //(is_array($aD) AND isset($aD[])) $data = $ql->getDataRow("SELECT * FROM historial_de_pagos WHERE credito={$credito} AND periodo={$pago_buscado} LIMIT 0,1"); if (isset($data["fecha"])) { $fecha_devuelta = $data["fecha"]; } else { //10*15 - 200 = 50 //HACK se omite un periodo para Interpretarse como Primer Dia de Abono $dias_de_tolerancia = $dias_autorizados - ($pagos_autorizados - 1) * $periocidad_pago; $fecha_primer_abono = sumardias($fecha_ministracion, $dias_de_tolerancia); $msg .= "{$socio}\t{$credito}\tDIAS_DE_TOLERANCIA:\t{$dias_de_tolerancia}\r\n"; $msg .= "{$socio}\t{$credito}\tFECHA_PRIMER_ABONO:\t{$fecha_primer_abono}\r\n"; $dia_1_ab = PQ_DIA_PRIMERA_QUINCENA; $dia_2_ab = PQ_DIA_SEGUNDA_QUINCENA; $dvparcial = DIAS_PAGO_VARIOS; $fecha_de_pago = $fecha_primer_abono; //filtra solo pagos Quincenales if ($periocidad_pago != CREDITO_TIPO_PERIOCIDAD_QUINCENAL) { //convierte la Fecha de Vencimiento al dia de pago Predeterminado $dia_1_ab = date("d", strtotime($fecha_vencimiento)); //$msg .= "$socio\t$credito\tPAGOS_NO_QUINCENALES:\t$periocidad_pago\r\n"; } $msg .= "{$socio}\t{$credito}\tPERIODO\tFECHA_REFERENCIA\tFECHA_PAGO\r\n"; if ($this->mCreditoInicializado == true) { for ($i = 1; $i <= $pagos_autorizados; $i++) { if ($i == 1) { $fecha_de_referencia = $fecha_primer_abono; } else { $fecha_de_referencia = $fecha_de_pago; } // ------------------------------------ Obtiene la Fecha de Pago ---------------------------------------------- if ($periocidad_pago <= 7) { //Obtiene el Dia de Ref + dias del periodo if ($i == 1) { //Si es primer pago, es el dia de abono $fecha_de_pago = $fecha_de_referencia; } else { $fecha_de_pago = sumardias($fecha_de_referencia, $periocidad_pago); } $fecha_de_pago = set_no_festivo($fecha_de_pago); } elseif ($periocidad_pago >= 15 && $periocidad_pago <= 29) { //Obtiene el Dia de Ref + dias del periodo if ($i == 1) { //Si es primer pago, es el dia de abono $fecha_de_pago = $fecha_de_referencia; } else { $fecha_de_pago = sumardias($fecha_de_referencia, $periocidad_pago); } $fecha_de_pago = set_dia_abono_quincenal($fecha_de_pago, $dia_1_ab, $dia_2_ab); $fecha_de_pago = set_no_festivo($fecha_de_pago); // Tratamiento Mesual o mas, si es menor a la 1era Quincena, baja al dia dos, si no sube un mes al dia dos... } elseif ($periocidad_pago >= 30 && $periocidad_pago < 60) { //Obtiene el Dia de Ref + dias del periodo if ($i == 1) { //Si es primer pago, es el dia de abono $fecha_de_pago = $fecha_de_referencia; } else { $fecha_de_pago = sumardias($fecha_de_referencia, $periocidad_pago); } $fecha_de_pago = set_dia_abono_mensual($fecha_de_pago, $dia_1_ab); $fecha_de_pago = set_no_festivo($fecha_de_pago); } elseif ($periocidad_pago >= 60 && $periocidad_pago < 360) { //Obtiene el Dia de Ref + dias del periodo if ($i == 1) { //Si es primer pago, es el dia de abono $fecha_de_pago = $fecha_de_referencia; } else { $fecha_de_pago = sumardias($fecha_de_referencia, $periocidad_pago); } $fecha_de_pago = set_dia_abono_mensual($fecha_de_pago, $dia_1_ab); $fecha_de_pago = set_no_festivo($fecha_de_pago); } else { // Tratamiento 360 o Semanal $fecha_de_pago = sumardias($fecha_de_referencia, $periocidad_pago); } //----------------------------------------------------------------------------------------------------------------------------------- //$msg .= "$socio\t$credito\t$i\t$fecha_de_referencia\t$fecha_de_pago\r\n"; //Marcar la Fecha de Pago if ($i == $pago_buscado) { $fecha_devuelta = $fecha_de_pago; $msg .= "{$socio}\t{$credito}\tFECHA_BUSCADA:\t{$fecha_devuelta}\r\n"; break; } $dias_para_vencimiento = $dvparcial + $dias_tolerancia_no_pago; $vencimiento_parcialidad = sumardias($fecha_de_pago, $dias_para_vencimiento); //Fecha de Pago + Dias en que vence la Parc + 1 } //END FOR } //END IF } //END TIPO DE PAGO VALUATE } $this->mMessages .= $msg; return $fecha_devuelta; }
function analizarOperacion($persona, $monto_operado, $moneda, $tipo_de_pago, $fecha = false, $recibo = false, $perfil = false) { $moneda = strtoupper($moneda); $sql = "SELECT * FROM `aml_risk_catalog` \n\t\t\t\t\tWHERE (`aml_risk_catalog`.`tipo_de_riesgo` = 912)\n\t\t\t\t\tAND (`aml_risk_catalog`.`clave_de_control` != " . AML_CLAVE_RIESGO_OPS_INDIVIDUALES . ")\n\t\t\t\t\tORDER BY \n\t\t\t\t\t`aml_risk_catalog`.`unidad_de_medida`,\t`aml_risk_catalog`.`unidades_ponderadas` DESC "; $ql = new MQL(); $risk = new cAml_risk_catalog(); $raised = false; $xAML = new cAML(); $rs = $ql->getDataRecord($sql); //Datos de Operaciones Mensuales $xAMLP = new cAMLPersonas($persona); $xAMLP->init(); $OMens = $xAMLP->getOAcumuladoDeOperaciones($fecha, $fecha, $moneda, $tipo_de_pago); $monto_original = $OMens->getMonto() + $monto_operado; $this->mMessages .= "WARN\tOperaciones acumuladas por " . $OMens->getMonto() . "\r\n"; if ($perfil == false) { $this->mMessages .= "ERROR\tNo existe el perfil tipo de pago {$tipo_de_pago} en Moneda {$moneda} \r\n"; //agregar perfil a cero } else { $perfil = setNoMenorQueCero($perfil); $sql = "SELECT * FROM `personas_perfil_transaccional_tipos` WHERE `idpersonas_perfil_transaccional_tipos` = {$perfil} LIMIT 0,1"; $d = $ql->getDataRow($sql); if (isset($d["tipo_de_exhibicion"])) { $tipo_de_pago = strtolower($d["tipo_de_exhibicion"]); } $this->mMessages .= "OK\tCarga del perfil {$perfil} con tipo de pago {$tipo_de_pago}\r\n"; } //verificar operaciones con reglas foreach ($rs as $rows) { $risk->setData($rows); $reporteMoneda = strtoupper($risk->unidad_de_medida()->v()); if ($reporteMoneda == $moneda) { if ($raised == false) { $reporteMoneda = strtoupper($risk->unidad_de_medida()->v()); $xMon = new cMonedas($reporteMoneda); $valor_local = $xMon->getValor(); $clave = $risk->clave_de_control()->v(); if ($xAML->isTransaccionVigilada($tipo_de_pago) != false) { $unidadesReportadas = $risk->unidades_ponderadas()->v(); $unidadesOperadas = 0; if ($reporteMoneda == AML_CLAVE_MONEDA_LOCAL) { $unidadesOperadas = $monto_original; } else { $this->mMessages .= "WARN\tUnidades reportadas {$unidadesOperadas} en Moneda {$moneda} con valor local de {$valor_local}\r\n"; $unidadesReportadas = $valor_local * $unidadesReportadas / VALOR_ACTUAL_DOLAR; $unidadesOperadas = $monto_original * $valor_local / VALOR_ACTUAL_DOLAR; } if ($unidadesOperadas >= $unidadesReportadas) { $this->mMsgAlert = "ERROR\tUnidades excedidas de {$unidadesReportadas} operados {$unidadesOperadas} en la Moneda {$reporteMoneda}\r\n"; $this->mMessages .= $this->mMsgAlert; $raised = true; $this->mTipoDeAlerta = $clave; $this->mTipoDeReporte = $risk->forma_de_reportar()->v(); } else { $this->mMessages .= "OK\tOperacion Normal de {$unidadesOperadas} no sobrepasan {$unidadesReportadas}\r\n"; } //Validar sivienen de paises con alto riesgo $xP = new cDomiciliosPaises(); $xP->getPaisPorMoneda($reporteMoneda); $nombrepais = $xP->getNombre(); if ($xP->getRiesgoAMLAsociado() >= SYS_RIESGO_MEDIO) { //Agregar alerta por operaciones en paises de alto y medio riesgo $this->mMsgAlert .= "ERROR\tFondos provenientes de paises con Riesgo Elevado {$nombrepais}\r\n"; $this->mMessages .= "ERROR\tFondos provenientes de paises con Riesgo Elevado {$nombrepais}\r\n"; } } else { $this->mMessages .= "OK\tOperacion Omitida por ser tipo de pago {$tipo_de_pago} ({$reporteMoneda} )\r\n"; } } } else { $this->mMessages .= "OK\tOperacion Omitida por ser Moneda {$moneda} de {$reporteMoneda}\r\n"; } } //setLog($this->mMessages); if (MODO_DEBUG == true) { setLog($this->getMessages()); } return $raised; }
function init($data = false) { if (!is_array($data)) { $ql = new MQL(); $sql = "SELECT * FROM `bancos_operaciones` WHERE (`idcontrol` =" . $this->mCodigo . ") LIMIT 0,1"; $data = $ql->getDataRow($sql); } $this->mObj = new cBancos_operaciones(); $this->mObj->setData($data); $this->mNumeroBancario = $this->mObj->cuenta_bancaria()->v(); $this->mTipoDeOperacion = $this->mObj->tipo_operacion()->v(OUT_TXT); $this->mMonto = setNoMenorQueCero($this->mObj->monto_real()->v(OUT_TXT)); switch ($this->mTipoDeOperacion) { case $this->CHEQUE: $this->mNumeroDeCheque = setNoMenorQueCero($this->mObj->numero_de_documento()->v(OUT_TXT)); break; } }
function init($data = false) { $clave = $this->mClave; if (is_array($data)) { } else { $ql = new MQL(); $data = $ql->getDataRow("SELECT * FROM `tesoreria_monedas` WHERE `clave_de_moneda`='{$clave}' "); } $this->mObj = new cTesoreria_monedas(); $this->mObj->setData($data); $this->mData = $data; }
unset($DXEstado[$idxcp]); $estado = $xFil->cleanString(implode(" ", $DXEstado), array("/CP/", "/C.P./")); } else { $estado = $DEstado[1]; } } else { $estado = $DEstado[0]; } //Obtener pais $pais = trim($xFil->cleanString($xFil->getV(5), array("/-0-/"))); $sqlPais = "SELECT * FROM `personas_domicilios_paises` WHERE `nombre_oficial` SOUNDS LIKE '%{$pais}%' LIMIT 0,1"; $idpais = mifila($sqlPais, "clave_de_control"); $idpais = $idpais == 0 ? EACP_CLAVE_DE_PAIS : $idpais; //Obtener Localidad $sqllocal = "SELECT * FROM `catalogos_localidades` WHERE `nombre_de_la_localidad` LIKE '%{$estado} {$pais}%' LIMIT 0,1"; $DLocal = $xQL->getDataRow($sqllocal); if (setNoMenorQueCero($DLocal["clave_unica"]) > 0) { $idlocal = setNoMenorQueCero($DLocal["clave_unica"]); $localidad = $DLocal["nombre_de_la_localidad"]; } $xSoc->addVivienda($calle, $numero, $cp, "", $referencia, "0", "0", SYS_UNO, FALLBACK_PERSONAS_REGIMEN_VIV, FALLBACK_PERSONAS_TIPO_VIV, DEFAULT_TIEMPO, $colonia, "calle", "", $idlocal, $idpais, $pais, $estado, $municipio, $localidad); //Actualizar pais } $msg .= $xSoc->getMessages(OUT_TXT); break; case "ALT": /* 1597|1190|"aka"|"OCTOBER HOLDING COMPANY"|-0- 1661|1229|"aka"|"PESMAR S.A."|-0- 6857|4607|"aka"|"CARDENAS GUILLEN, Oscar"|-0- */
function setPorCodigo($CodigoDeOperacion, $delimitador = ".") { //FIXME: terminar cuando sea necesario //ejercicio . periodo . tipo . numero $d = explode($delimitador, $CodigoDeOperacion); $this->mEjercicioPoliza = setNoMenorQueCero($d[0]); $this->mPeriodoPoliza = setNoMenorQueCero($d[1]); $this->mTipoDePoliza = setNoMenorQueCero($d[2]); $this->mNumeroDePoliza = setNoMenorQueCero($d[3]); $this->mNumeroDeMvto = setNoMenorQueCero($d[4]); $this->mCodigoDeMvto = $CodigoDeOperacion; $QL = new MQL(); //unset($_SESSION[ POLIZA_ID_ULTIMAOPERACION ]); $sql = "SELECT *\tFROM `contable_movimientos`\n\t\tWHERE\n\t\t(`contable_movimientos`.`ejercicio` =" . $this->mEjercicioPoliza . ") AND\n\t\t(`contable_movimientos`.`periodo` =" . $this->mPeriodoPoliza . ") AND\n\t\t(`contable_movimientos`.`tipopoliza` =" . $this->mTipoDePoliza . ") AND\n\t\t(`contable_movimientos`.`numeropoliza` =" . $this->mNumeroDePoliza . ") AND\n\t\t(`contable_movimientos`.`numeromovimiento` =" . $this->mNumeroDeMvto . ") LIMIT 0,1"; $Data = $QL->getDataRow($sql); $this->init($Data); }
function getCobrados() { $id = setNoMenorQueCero($this->idempresas_operaciones()->v()); $ql = new MQL(); $sql = "SELECT COUNT(`idempresas_cobranza`) AS 'cobrados' FROM `empresas_cobranza` WHERE `clave_de_nomina` = {$id} AND `estado`=0"; $datos = $ql->getDataRow($sql); return isset($datos["cobrados"]) ? setNoMenorQueCero($datos["cobrados"]) : 0; }
$msg .= $xPerUtils->setCorregirActividadEconomica($ForzarCorreccion); break; //===============genera colonias por localidades //===============genera colonias por localidades case 13002: $ql = new MQL(); $rs = $ql->getDataRecord("SELECT * FROM `catalogos_localidades`"); $xLoc = new cCatalogos_localidades(); $xCol = new cGeneral_colonias(); foreach ($rs as $rw) { $xLoc->setData($rw); $xCol->ciudad_colonia($xLoc->nombre_de_la_localidad()->v()); $xCol->codigo_de_estado($xLoc->clave_de_estado()->v()); $xCol->codigo_de_municipio($xLoc->clave_de_municipio()->v()); $xCol->codigo_postal($xLoc->clave_de_localidad()->v()); $DEstado = $ql->getDataRow("SELECT * FROM `general_estados` WHERE idgeneral_estados= " . $xLoc->clave_de_estado()->v()); $NEstado = ""; if (isset($DEstado["nombre"])) { $NEstado = $DEstado["nombre"]; } $xCol->estado_colonia($NEstado); $xCol->fecha_de_revision(fechasys()); $DMun = $ql->getDataRow("SELECT * FROM `general_municipios` WHERE `clave_de_municipio`= " . $xLoc->clave_de_municipio()->v() . " AND `clave_de_entidad`=" . $xLoc->clave_de_estado()->v()); $NMun = ""; if (isset($DMun["nombre_del_municipio"])) { $NMun = $DMun["nombre_del_municipio"]; } $xCol->municipio_colonia($NMun); $xCol->nombre_colonia($xLoc->nombre_de_la_localidad()->v()); $xCol->sucursal(getSucursal()); $xCol->tipo_colonia("Colonia");
function addLang($palabra, $traduccion, $idioma = "es") { $xLng = new cSistema_lenguaje(); $idioma = strtoupper($idioma); //verificar si existe la palabra $sql = "SELECT *, COUNT(`idsistema_lenguaje`) as 'existen' FROM\t`sistema_lenguaje` WHERE (`sistema_lenguaje`.`equivalente` ='{$palabra}') AND (`sistema_lenguaje`.`idioma` ='{$idioma}')"; $mql = new MQL(); $d = $mql->getDataRow($sql); $existen = setNoMenorQueCero($d["existen"]) > 0 ? true : false; if ($existen == false) { $xLng->idsistema_lenguaje($xLng->query()->getLastID()); $xLng->idioma($idioma); $xLng->equivalente($palabra); $xLng->traduccion($traduccion); $xLng->query()->insert()->save(); //setLog($xLng->query()->insert()->get()); $this->mMessages .= "LANG\tAgregar {$palabra} con traduccion {$traduccion}\r\n"; } else { $id = $d["idsistema_lenguaje"]; $xLng->idsistema_lenguaje($id); $xLng->idioma($idioma); $xLng->equivalente($palabra); $xLng->traduccion($traduccion); $xLng->query()->update()->save($id); $this->mMessages .= "LANG\tActualizar {$id} {$palabra} con traduccion {$traduccion}\r\n"; } }