function Common_c8581154ac4e27cb0e122d71341dd7d8($strCmd) { $DPar = explode(STD_LITERAL_DIVISOR, $strCmd); $xTip = new cTipos(); // $socio = $xTip->cInt($DPar[0]); $cuenta = $xTip->cInt($DPar[1]); $deposito = $xTip->cFloat($DPar[2]); $retiro = $xTip->cFloat($DPar[3]); $nota = $xTip->cChar($DPar[4]); $numero = $xTip->cInt($DPar[5]); $limit = $xTip->cInt($DPar[6]); if (isset($_SESSION["recibo_en_proceso"])) { $recibo = $_SESSION["recibo_en_proceso"]; $fecha = fechasys(); $_SESSION["total_recibo_en_proceso"] += $deposito - $retiro; $xRec = new cReciboDeOperacion(200, false, $recibo); $xRec->setNumeroDeRecibo($recibo, true); $DRec = $xRec->getDatosInArray(); $cheque = $DRec["cheque_afectador"]; $tipopago = $DRec["tipo_pago"]; $recibofiscal = $DRec["recibo_fiscal"]; if ($deposito > 0 or $retiro > 0) { $xC = new cCuentaALaVista($cuenta); $grupo = DEFAULT_GRUPO; $xC->setSocioTitular($socio); $xC->setReciboDeOperacion($recibo); if ($deposito > 0) { $xC->setDeposito($deposito, $cheque, $tipopago, $recibofiscal, $nota, $grupo, $fecha, $recibo); } if ($retiro > 0) { $xC->setRetiro($retiro, $cheque, $tipopago, $recibofiscal, $nota, $grupo, $fecha, $recibo); } } if ($numero == $limit) { $xRec->setForceUpdateSaldos(); $xRec->setFinalizarRecibo(true); //$MsgEnd .= "**** proceso terminado ****"; } } //retorna el id del control de origen para neutralizar return "-{$numero}"; }
$aCreditos = array(); $aCaptacion = array(); $aCompacW = array(); $aCompacWC = array(); //Array de cuentas compacw $cT = new cTipos(); $msg .= "SOCIO\tAPUNTE\tSDOSAFE\tSDOCW\tDIFERENCIA\tOBSEVACIONES\r\n"; $msgD .= "SOCIO\tSDOSAFE\tSDOCW\tDIFERENCIA\tCUENTA1\tSDO1\tCUENTA2\tSDO2\r\n"; switch ($TipoDeImportacion) { case "credito": //carga ultimas fechas de saldos //Sql Creditos $sqlCreds = "SELECT\n\t\t\t\t\t\t\t\t\t\t`creditos_solicitud`.`numero_socio`,\n\t\t\t\t\t\t\t\t\t\tSUM(`creditos_solicitud`.`saldo_actual`) AS 'saldo',\n\t\t\t\t\t\t\t\t\t\tSUM(`creditos_solicitud`.`saldo_conciliado`) AS 'saldo_al_corte'\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t\t`creditos_solicitud` `creditos_solicitud`\n\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t\t`creditos_solicitud`.`estatus_actual` != 50 \n\t\t\t\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t\t\t\t`creditos_solicitud`.`numero_socio`\n\t\t\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t\t\t`creditos_solicitud`.`numero_socio`,\n\t\t\t\t\t\t\t\t\t\t`creditos_solicitud`.`saldo_actual` "; $rsC = mysql_query($sqlCreds, cnnGeneral()); while ($rwC = mysql_fetch_array($rsC)) { $aCreditos[$rwC["numero_socio"]] += $cT->cFloat($rwC[$arrComp[$TipoDeComparacion]], 2); //$msg .= "SAFE\tSocio: " . $rwC["numero_socio"] . " Saldo: " . $rwC["saldo_actual"] . " \r\n"; } @mysql_free_result($rsC); break; case "ahorro": $sqlCreds = "SELECT\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`numero_socio`,\n\t\t\t\t\t\t\t\t\t\tSUM(`captacion_cuentas`.`saldo_cuenta`) AS `saldo`, \n\t\t\t\t\t\t\t\t\t\tSUM(`captacion_cuentas`.`saldo_conciliado`) AS 'saldo_al_corte'\n\t\t\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas` `captacion_cuentas` \n\t\t\t\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t\t\t\t`captacion_cuentas`.`numero_socio` "; $rsC = mysql_query($sqlCreds, cnnGeneral()); while ($rwC = mysql_fetch_array($rsC)) { $aCaptacion[$rwC["numero_socio"]] += $cT->cFloat($rwC[$arrComp[$TipoDeComparacion]], 2); //$msg .= "SAFE\tSocio: " . $rwC["numero_socio"] . " Saldo: " . $rwC["saldo_actual"] . " \r\n"; } @mysql_free_result($rsC); break; } for ($i = 0; $i <= $lim; $i++) {
$xLog = new cFileLog($aliasFil, true); if ($gestor) { while (!feof($gestor)) { $bufer = fgets($gestor, 4096); //$bufer = stream_get_line($gestor, "\r\n"); if (!isset($bufer)) { $msg .= "{$iReg}\t\tERROR\tLa Linea({$iReg}) no se leyo({$bufer})\r\n"; } else { $bufer = trim($bufer); $datos = explode(",", $bufer, 6); //numero de socio //[numero de cuenta] //[FechaDeApertura] //[clave de producto] //saldo //[observaciones] $socio = $cT->cInt($datos[0]); $NumCuenta = $cT->cInt($datos[1]); $fechaApertura = $cT->cFecha($datos[2]); $Producto = $cT->cInt($datos[3]); $importe = $cT->cFloat($datos[4]); $observaciones = $cT->cChar($datos[5]); if ($NumCuenta == 0 or $NumCuenta == "") { $NumCuenta = false; } //$ClaveCuenta = false; //Iniciar el Socio //$msg .= "$iReg\t$socio\tERROR_SOCIO\t$socio -- $importe -- $fechaApertura -- $plazo -- $tasa -- $observaciones\r\n"; $xCL = new cCajaLocal(99); if ($xCL->getExistenciaSocio($socio) <= 0) { $msg .= "{$iReg}\t{$socio}\tERROR_SOCIO\tLa Linea({$iReg}) no se leyo por que no existe el socio. (" . substr($bufer, 0, 20) . ")\r\n"; } else { $xCta = new cCuentaALaVista($NumCuenta, $socio, 0, false, $fechaApertura); if ($xCta->setContarCuenta() <= 0) { $xCta = new cCuentaALaVista(false, $socio, 0, false, $fechaApertura); $NumCuenta = $xCta->setNuevaCuenta(99, $Producto, $socio, $observaciones, DEFAULT_CREDITO, "", "", DEFAULT_GRUPO, $fechaApertura, 10);
function Common_c5fe0408555dbf392918c6f77a4d01b2($params) { $stdDiv = STD_LITERAL_DIVISOR; $DPar = explode($stdDiv, $params, 10); //mensajes //grupo $xTip = new cTipos(); // $socio = $xTip->cInt($DPar[0]); $credito = $xTip->cInt($DPar[1]); $letra = $xTip->cInt($DPar[2]); $capital = $xTip->cFloat($DPar[3]); $interes = $xTip->cFloat($DPar[4]); $iva = $xTip->cFloat($DPar[5]); $ahorro = $xTip->cFloat($DPar[6]); $nota = $xTip->cChar($DPar[7]); $numero = $xTip->cInt($DPar[8]); $limit = $xTip->cInt($DPar[9]); $msg = "====================== MOVIMIENTO {$numero} DE {$limit} ====================\r\n"; //Datos del Credito $Cred = new cCredito($credito, $socio); $Cred->initCredito(); $DCred = $Cred->getDatosDeCredito(); $saldo = $DCred["saldo_actual"] - $capital; $contrato_captacion = $DCred["contrato_corriente_relacionado"]; $grupo = $DCred["grupo_asociado"]; $msg .= $Cred->getMessages(); if (isset($_SESSION["recibo_en_proceso"])) { $recibo = $_SESSION["recibo_en_proceso"]; $fecha = fechasys(); $_SESSION["total_recibo_en_proceso"] += $capital + $interes + $ahorro; $xRec = new cReciboDeOperacion(200, false, $recibo); $xRec->setNumeroDeRecibo($recibo, true); $xRec->setNumeroDeRecibo($recibo, true); $DRec = $xRec->getDatosInArray(); $cheque = $DRec["cheque_afectador"]; $tipopago = $DRec["tipo_pago"]; $recibofiscal = $DRec["recibo_fiscal"]; $xRec->setGenerarPoliza(); $msg .= "{$socio}\t{$credito}\tCREDITO\tMovimiento {$i} del Credito {$credito} del Socio {$socio} con Saldo {$saldo}\r\n "; $msg .= "{$socio}\t{$credito}\tMONTOS\tCapital: {$capital} || Interes: {$interes} || Ahorro: {$ahorro} \r\n"; //Agregando Capital if ($capital > 0) { $xRec->setNuevoMvto($fecha, $capital, 120, $letra, $nota . ";SDO:" . $saldo, 1, TM_ABONO, $socio, $credito); $arrCred = array("saldo_actual" => $saldo); $Cred->setUpdate($arrCred); } //Agregando Interes if ($interes > 0) { $xRec->setNuevoMvto($fecha, $interes, 140, $letra, $nota, 1, TM_ABONO, $socio, $credito); } //agregando el IVA if ($interes > 0) { $xRec->setNuevoMvto($fecha, $iva, 151, $letra, $nota, 1, TM_ABONO, $socio, $credito); } //Agregando Ahorro if ($ahorro > 0) { $xC = new cCuentaALaVista($contrato_captacion); if (!isset($contrato_captacion) or $contrato_captacion == CTA_GLOBAL_CORRIENTE or $contrato_captacion == 0) { $contrato_captacion = $xC->setNuevaCuenta(2, 1, $socio, "CUENTA_AUTOMATICA", $credito); $msg .= "{$socio}\t{$credito}\tNuevaCta\tse dio de alta a la cuenta {$contrato_captacion}\r\n"; //2011-nov-30 se agrego la actualizacion del contrato relacionado $arrCred = array("contrato_corriente_relacionado" => $contrato_captacion); $Cred->setUpdate($arrCred); } $xC = new cCuentaALaVista($contrato_captacion); $xC->setSocioTitular($socio); $xC->setReciboDeOperacion($recibo); $xC->setDeposito($ahorro, $cheque, $tipopago, $recibofiscal, $nota, $grupo, $fecha, $recibo); $msg .= $xC->getMessages("txt"); $msg .= "{$socio}\t{$credito}\tAhorro\t El Saldo Quedo en " . $xC->getNuevoSaldo() . "\r\n"; } $msg .= "{$socio}\t{$credito}\tObservacion\t {$nota}\r\n"; $msg .= $xRec->getMessages("txt"); } else { $msg .= "NO_SE_HA_DEFINIDO_UN_RECIBO"; } $xLog = new cFileLog("log_de_recibo_" . $recibo); $xLog->setWrite($msg); $xLog->setClose(); $MsgEnd = ""; if ($numero == $limit) { $xRec->setForceUpdateSaldos(); $xRec->setFinalizarRecibo(true); //$MsgEnd .= "**** proceso terminado ****"; } //retorna el id del control de origen para neutralizar return "-{$numero}"; }
/** * Agrega un Movimiento a la Poliza Contable * @param integer $cuenta * @param float $cargo * @param float $abono * @param string $referencia * @param string $concepto * @param integer $NumMvto * @param date $Fecha */ function addMovimiento($cuenta, $cargo = 0, $abono = 0, $referencia = "", $concepto = "", $NumMvto = false, $Fecha = false) { //if($this->mPolizaIniciada == false){ $this->init(); } $xT = new cTipos(); $xLogg = new cCoreLog(); $msg = ""; $ejercicio = $this->mEjercicioPoliza; $periodo = $this->mPeriodoPoliza; $poliza = $this->mNumeroDePoliza; $tipo = $this->mTipoDePoliza; $NumMvto = setNoMenorQueCero($NumMvto); $this->mNumeroMvto = setNoMenorQueCero($this->mNumeroMvto); //$this->getFolioDeMvto(); if ($NumMvto <= 1) { $NumMvto = $this->mNumeroMvto > 1 ? $this->mNumeroMvto + 1 : $this->getFolioDeMvto() + 1; } $cargo = $xT->cFloat($cargo, 2); $abono = $xT->cFloat($abono, 2); $xLogg->add("WARN\t----------------------------------------------\r\n", $xLogg->DEVELOPER); //Valores de los proximos Movimientos $TipoMvto = TM_CARGO; $monto = 0; $Fecha = $Fecha == false ? $this->mFechaPoliza : $Fecha; $concepto = $concepto == "" ? $this->mConceptoPoliza : $concepto; $referencia = trim($referencia); $diario = $this->mCentroDeCosto == false ? DEFAULT_CONTABLE_DIARIO_MVTOS : $this->mCentroDeCosto; $xCCont = new cCuentaContable($cuenta); $xCCont->init(); $cuenta = $xCCont->get(); if ($cargo > 0) { $TipoMvto = TM_CARGO; $monto = $cargo; $abono = 0; $this->mTotalCargos += $monto; } else { $TipoMvto = TM_ABONO; $monto = $abono; $cargo = 0; $this->mTotalAbonos += $monto; } //------------------------------------------------------------------------------------------------------- if ($monto != 0) { //------------------------------------------------------------------------------------------------------- $sqli_mvto = "INSERT INTO contable_movimientos(ejercicio, periodo, tipopoliza, numeropoliza, numeromovimiento,\n\t\t\t\t\t\tnumerocuenta, tipomovimiento, referencia, importe, diario, moneda, concepto, fecha, cargo, abono)\n\t\t\t\t\t\t VALUES({$ejercicio}, {$periodo},\n\t\t\t\t\t\t {$tipo}, {$poliza},\n\t\t\t\t\t\t {$NumMvto}, {$cuenta},\n\t\t\t\t\t\t '{$TipoMvto}', '{$referencia}',\n\t\t\t\t\t\t {$monto}, {$diario}, 1,\n\t\t\t\t\t\t '{$concepto}', '{$Fecha}',\n\t\t\t\t\t\t {$cargo}, {$abono})"; $rs = my_query($sqli_mvto); //setLog($sqli_mvto); if ($rs[SYS_ESTADO] == true) { $xLogg->add("{$NumMvto}\t{$cuenta}\t{$TipoMvto}\t{$cargo}\t{$abono}\t{$referencia}\r\n", $xLogg->DEVELOPER); $xCCont->setAfectarSaldos($TipoMvto, $monto, $periodo, $ejercicio, false); //Establecer Numeracion $this->mNumeroMvto = $NumMvto; $_SESSION[POLIZA_ID_ULTIMAOPERACION] = $NumMvto; } else { $xLogg->add("ERROR\t{$NumMvto}\tAl intentar insertar registro\r\n", $xLogg->DEVELOPER); } } else { $xLogg->add("ERROR\t{$NumMvto}\tNo existe un saldo que agregar\r\n", $xLogg->DEVELOPER); } $xLogg->add($xCCont->getMessages(), $xLogg->DEVELOPER); $xLogg->add($msg, $xLogg->DEVELOPER); $this->mMessages .= $xLogg->getMessages(); return $xLogg->getMessages(); }
function set($arrValores) { if (is_array($arrValores)) { $xT = new cTipos(); $this->mValor = isset($arrValores[SYS_MONTO]) ? $xT->cFloat($arrValores[SYS_MONTO]) : 0; $this->mNumero = isset($arrValores[SYS_NUMERO]) ? $xT->cFloat($arrValores[SYS_NUMERO]) : 0; $this->mMoneda = isset($arrValores[SYS_MONEDA]) ? $arrValores[SYS_MONEDA] : AML_CLAVE_MONEDA_LOCAL; $this->mArrData = $arrValores; } }
function init() { $cT = new cTipos(); $code = $this->mClaveDeConvenio; $sql = "SELECT * FROM creditos_tipoconvenio WHERE `idcreditos_tipoconvenio` = {$code} LIMIT 0,1"; $this->mArrDatos = obten_filas($sql); $this->mTasaAhorro = $cT->cFloat($this->mArrDatos["tasa_ahorro"]); $this->mOB = new cCreditos_tipoconvenio(); $this->mOB->setData($this->mArrDatos); $this->mTipoEnSistema = $this->mOB->tipo_en_sistema()->v(); $this->mTipoDeIntegracion = $this->mOB->tipo_de_integracion()->v(); $this->initOtrosDatos(); }
function setRegenerarSDPM($PFechaInicial, $PFechaFinal, $GenerarInteres = true, $incluirSinSaldo = false, $NumeroCuenta = false) { // $PFechaFinal = ""; $mBase = 3100; $xT = new cTipos(); $ql = new MQL(); $BySaldo = $incluirSinSaldo == false ? " AND captacion_cuentas.saldo_cuenta >=" . TOLERANCIA_SALDOS : ""; $ByCuentaSDPM = $NumeroCuenta == false ? "" : " AND `captacion_sdpm_historico`.`cuenta` = {$NumeroCuenta} "; $ByCuentaMvto = $NumeroCuenta == false ? "" : " AND `operaciones_mvtos`.`docto_afectado` = {$NumeroCuenta} "; $ByCuentaCta = $NumeroCuenta == false ? "" : " AND captacion_cuentas.numero_cuenta = {$NumeroCuenta} "; $msg = ""; $msg .= "==========================================================================================\r\n"; $msg .= "==================\tGenerando SDPM desde el {$PFechaInicial} al {$PFechaFinal}\r\n"; $msg .= "==========================================================================================\r\n"; $msg .= "Socio\tCuenta\tOPER\tEjercicio\tPeriodo\tFecha\tDias\tMonto\tSaldo\tSDPM\r\n"; $sqlM = "SELECT \n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`fecha_operacion` AS 'fecha_operacion',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`recibo_afectado` AS 'recibo_afectado',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`docto_afectado` AS 'docto_afectado',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`afectacion_real` AS 'afectacion_real',\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`valor_afectacion`,\n\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`afectacion` AS 'afectacion'\n\t\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos` `operaciones_mvtos` \n\t\t\t\t\t\t\t\t\t\tINNER JOIN `eacp_config_bases_de_integracion_miembros` \n\t\t\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros` \n\t\t\t\t\t\t\t\t\t\tON `operaciones_mvtos`.`tipo_operacion` = \n\t\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`miembro` \n\t\t\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t\t(`eacp_config_bases_de_integracion_miembros`.`codigo_de_base` ={$mBase})\n\t\t\t\t\t\t\t\t\t{$ByCuentaMvto}\n\t\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t\t`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,\n\t\t\t\t\t\t\t\t\t`operaciones_mvtos`.`fecha_operacion` ASC"; $rsM = getRecordset($sqlM); $arrOps = array(); //Array de montos de operacion $arrRecs = array(); //Array de Recibos de Operacion while ($rwM = mysql_fetch_array($rsM)) { //clave cuenta fecha $cuenta = $rwM["docto_afectado"]; $fecha = $rwM["fecha_operacion"]; if (isset($arrOps[$cuenta . "-" . $fecha])) { $arrOps[$cuenta . "-" . $fecha] += $rwM["afectacion_real"] * $rwM["afectacion"]; } else { $arrOps[$cuenta . "-" . $fecha] = $rwM["afectacion_real"] * $rwM["afectacion"]; } $arrRecs[$cuenta . "-" . $fecha] = $rwM["recibo_afectado"]; //$msg .= "WARN\t$cuenta\tAgregar " . ($rwM["afectacion_real"] * $rwM["afectacion"] ) . "\r\n"; } //Eliminar periodos anteriores $sqlDF = "DELETE FROM captacion_sdpm_historico WHERE (fecha>='{$PFechaInicial}' AND fecha<='{$PFechaFinal}') {$ByCuentaSDPM} "; my_query($sqlDF); //FECHAS $xF = new cFecha(0); // $xTbl = new cSAFETabla(TCAPTACION_CUENTAS); $sqlCX = $xTbl->getQueryInicial() . " WHERE captacion_cuentas.tipo_cuenta = " . CAPTACION_TIPO_VISTA . " {$BySaldo} {$ByCuentaCta} "; $rs1 = getRecordset($sqlCX); while ($rw1 = mysql_fetch_array($rs1)) { $socio = $rw1["numero_socio"]; $cuenta = $rw1["numero_cuenta"]; $xCta = new cCuentaALaVista($cuenta, $socio); $xCta->init($rw1); $DCta = $xCta->getDatosInArray(); $FApertura = $DCta["fecha_apertura"]; $dias = $xF->setRestarFechas($PFechaFinal, $FApertura); $dias += 1; $sucursal = $DCta["sucursal"]; $FechaAnterior = $FApertura; $saldoAnterior = 0; $xF2 = new cFecha(1); for ($i = 0; $i <= $dias; $i++) { $OpFecha = $xF->setSumarDias($i, $FApertura); $xF->set($OpFecha); $OpFechaFin = $xF->getDiaFinal(); $OpMonto = isset($arrOps[$cuenta . "-" . $OpFecha]) ? $arrOps[$cuenta . "-" . $OpFecha] : 0; $idrecibo = isset($arrRecs[$cuenta . "-" . $OpFecha]) ? $arrRecs[$cuenta . "-" . $OpFecha] : DEFAULT_RECIBO; //si la operacion es mayor a cero o es FIN DE MES if ($OpMonto != 0 or $OpFecha == $OpFechaFin) { $diasTrans = $xF2->setRestarFechas($OpFecha, $FechaAnterior); $xF2->set($OpFecha); $ejercicio = $xF2->anno(); $periodo = $xF2->mes(); $sdpd = $saldoAnterior * $diasTrans; $nuevatasa = $xCta->getTasaAplicable(0, 0, $saldoAnterior); //corregir fecha $sqlUSPM = "INSERT INTO captacion_sdpm_historico\n\t\t\t\t\t\t\t\t\t\t(ejercicio, periodo, cuenta, fecha, dias, tasa, monto, recibo, numero_de_socio, sucursal)\n\t \t\t\t\t\t\t\t\tVALUES( {$ejercicio}, {$periodo}, {$cuenta}, '{$OpFecha}', {$diasTrans}, {$nuevatasa}, {$sdpd}, {$idrecibo}, {$socio}, '{$sucursal}') "; //si es valida la operacion, se actualizan if ($OpFecha >= $PFechaInicial and $OpFecha <= $PFechaFinal) { my_query($sqlUSPM); $msg .= "{$socio}\t{$cuenta}\t+SDPM\t{$ejercicio}\t{$periodo}\t{$OpFecha}\t{$diasTrans}\t{$OpMonto}\t{$saldoAnterior}\t{$sdpd}\r\n"; } else { $msg .= "{$socio}\t{$cuenta}\t=SDPM\t{$ejercicio}\t{$periodo}\t{$OpFecha}\t{$diasTrans}\t{$OpMonto}\t{$saldoAnterior}\t{$sdpd}\r\n"; } $FechaAnterior = $OpFecha; $saldoAnterior += $OpMonto; } } } //Agregar Movimientos Finales del MES. //FIXME: Corregir incidencias //opcional: agregar Interes if ($GenerarInteres == true) { $xRec = new cReciboDeOperacion(12, false); $recibo = $xRec->setNuevoRecibo(DEFAULT_SOCIO, 1, $PFechaFinal, 1, 12, "REGENERAR_INTERES_SDPM_{$PFechaFinal}", "NA", "ninguno", "NA", DEFAULT_GRUPO); $msg .= "==========================================================================================\r\n"; $msg .= "==================\tAGREGADO INTERES :: RECIBO {$recibo}\r\n"; $msg .= "==========================================================================================\r\n"; $_SESSION["recibo_en_proceso"] = $recibo; //sumar sdpm del mes por cuenta $sqlSDPM = "SELECT\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`numero_de_socio`,\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`cuenta`,\n\t\t\t\t\t\t\t\tSUM(`captacion_sdpm_historico`.`dias`) AS `dias_transcurridos`,\n\t\t\t\t\t\t\t\tSUM(`captacion_sdpm_historico`.`monto`) AS `sdpm`,\n\t\t\t\t\t\t\t\tROUND( (`captacion_sdpm_historico`.`monto` / `captacion_sdpm_historico`.`dias`), 2) AS `ultimo_saldo`,\n\t\t\t\t\t\t\t\tMAX(`captacion_sdpm_historico`.`fecha`) AS 'UltimaFecha'\n\t\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico` `captacion_sdpm_historico` \n\t\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\t\t(`captacion_sdpm_historico`.`fecha` >= '{$PFechaInicial}')\n\t\t\t\t\t\t\t\tAND\n\t\t\t\t\t\t\t\t(`captacion_sdpm_historico`.`fecha` <= '{$PFechaFinal}')\n\t\t\t\t\t\t\t\t{$ByCuentaSDPM}\n\t\t\t\t\t\t\tGROUP BY\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`cuenta`,\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`ejercicio`,\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`periodo`\n\t\t\t\t\t\t\tORDER BY\n\t\t\t\t\t\t\t\t`captacion_sdpm_historico`.`fecha` DESC "; $rsCAP = $ql->getDataRecord($sqlSDPM); //setLog($sqlSDPM); foreach ($rsCAP as $rwC) { $socio = $rwC["numero_de_socio"]; $cuenta = $rwC["cuenta"]; $dias_de_calc = $rwC["dias_transcurridos"]; $sumaSDPM = $rwC["sdpm"]; $FechaI = $rwC["UltimaFecha"]; $promedio = $xT->cFloat($sumaSDPM / $dias_de_calc, 2); //XXX: Solucionar Tasa de Interes y hacer las rapida la consulta $xCta = new cCuentaDeCaptacion($cuenta); $xCta->init(); $subtipo = $xCta->getTipoDeSubproducto(); $tasa_nueva = obtentasa($promedio, CAPTACION_TIPO_VISTA, 0, $subtipo); $interes = $sumaSDPM * $tasa_nueva / EACP_DIAS_INTERES; $interes = $xT->cFloat($interes, 2); //agregar movimiento if ($interes > 0) { setNuevoMvto($socio, $cuenta, $recibo, $FechaI, $interes, 222, 1, "CALCULO_AUTOMATICO_DESDE_{$PFechaInicial}"); $msg .= "{$socio}\t{$cuenta}\tAGREGAR\tInteres por {$interes}, tasa {$tasa_nueva}, Promedio {$promedio}, SDPM {$sumaSDPM}, Dias {$dias_de_calc}\r\n"; } else { $msg .= "{$socio}\t{$cuenta}\tIGNORAR\tInteres por {$interes}, tasa {$tasa_nueva}, Promedio {$promedio}, SDPM {$sumaSDPM}, Dias {$dias_de_calc}\r\n"; } } } return $msg; }
if ($permiso === false) { header("location:../404.php?i=999"); } $_SESSION["current_file"] = addslashes($theFile); //===================================================================================================== $xHP = new cHPage("", HP_FORM); $xF = new cFecha(); $xT = new cTipos(); $DDATA = $_REQUEST; $action = isset($DDATA["cmd"]) ? $DDATA["cmd"] : SYS_NINGUNO; $cargar = isset($DDATA["item"]) ? $DDATA["item"] : ""; $origen = isset($DDATA["origen"]) ? $DDATA["origen"] : SYS_NINGUNO; $recibo = isset($DDATA["idrecibo"]) ? $DDATA["idrecibo"] : DEFAULT_RECIBO; $operacion = isset($DDATA["idoperacion"]) ? $DDATA["idoperacion"] : SYS_UNO; $tipoDeExposicion = isset($DDATA["ctipo_pago"]) ? $DDATA["ctipo_pago"] : DEFAULT_TIPO_PAGO; $monto = isset($DDATA["idmonto"]) ? $xT->cFloat($DDATA["idmonto"]) : 0; $MontoOperacion = isset($DDATA["idmontooperado"]) ? $DDATA["idmontooperado"] : $monto; $MontoCambio = isset($DDATA["idmontocambio"]) ? $DDATA["idmontocambio"] : 0; $banco = isset($DDATA["idbanco"]) ? $DDATA["idbanco"] : 99; //FALLBACK_BANCO $cheque = isset($DDATA["idcheque"]) ? $DDATA["idcheque"] : DEFAULT_CHEQUE; $CuentaBancaria = isset($DDATA["idcuenta"]) ? $DDATA["idcuenta"] : DEFAULT_CUENTA_BANCARIA; $documento = isset($DDATA["iddoctodescontado"]) ? $DDATA["iddoctodescontado"] : DEFAULT_CREDITO; $observaciones = isset($DDATA["idobservaciones"]) ? $DDATA["idobservaciones"] : ""; $fecha = isset($DDATA["idfecha-0"]) ? $xF->getFechaISO($DDATA["idfecha-0"]) : fechasys(); $msg = isset($DPDATA[SYS_MSG]) ? $DPDATA[SYS_MSG] : ""; $hora = date("H:i"); //$msg .= "MONTO $monto .... " . $DDATA["idmonto"] ; if ($monto > 0) { $xCaja = new cCaja(); /*
} $socio = DEFAULT_SOCIO; $credito = DEFAULT_CREDITO; $letras = 0; $capital = 0; $interes = 0; $ahorro = 0; $iva = 0; $cls = ''; $observaciones = ""; $cadena = explode(",", trim($bufer), 8); //Depurar $socio = $xT->cInt($cadena[0]); $credito = $xT->cInt($cadena[1]); $letra = $xT->cInt($cadena[2]); $capital = round($xT->cFloat($cadena[3]), 2); $interes = round($xT->cFloat($cadena[4]), 2); $iva = round($xT->cFloat($cadena[5]), 2); $ahorro = round($xT->cFloat($cadena[6]), 2); $observaciones = $xT->cChar($cadena[7]); $total = $capital + $ahorro + $interes + $iva; if (isset($socio) and isset($credito) and !empty($socio) and !empty($credito)) { $DSoc = new cSocio($socio); $SocioExiste = $DSoc->existe($socio); $CreditoExiste = $DSoc->existeCredito($credito); if ($SocioExiste == true and $CreditoExiste == true) { $DSoc->init(); $nombre = $DSoc->getNombreCompleto(); $nombre = substr($nombre, 0, 25); //Verificar el Saldo del Credito $CCred = new cCredito($credito, $socio);
//============================================================================================= if ($gestor) { while (!feof($gestor)) { $bufer = fgets($gestor, 4096); //$bufer = stream_get_line($gestor, "\r\n"); if (!isset($bufer)) { //$msg .= "$iReg\t\tERROR\tLa Linea($iReg) no se leyo($bufer)\r\n"; } else { $bufer = trim($bufer); $datos = explode(",", $bufer, 8); $fecha = trim($datos[0]); $tipoPoliza = trim($datos[1]); $numPoliza = trim($datos[2]); $concepto = trim($datos[3]); $referencia = trim($datos[4]); $mcargo = $cT->cFloat($datos[5]); //$cargo = trim($datos[5]); $mabono = $cT->cFloat($datos[6]); //$abono = trim($datos[6]); //ignorar linea 1 if ($iReg >= 1) { $arrInfo[$iReg] = "{$fecha},{$tipoPoliza},{$numPoliza},{$concepto},{$referencia}"; if ($mcargo > 0) { $arrCargos[$iReg] = $mcargo; } if ($mabono > 0) { $arrAbonos[$iReg] = $mabono; } } } $iReg++;
header("Content-type: application/x-msdownload"); header("Content-Disposition: attachment; filename={$filename}"); header("Pragma: no-cache"); header("Expires: 0"); } //Tipos de Conversion $xTip = new cTipos(); //Obtener por consulta el SDPM //Obtener por consulta los Mvtos $sqlM = "SELECT\n\t`operaciones_mvtos`.`docto_afectado` AS 'cuenta',\n\t`operaciones_mvtos`.`fecha_afectacion`,\n\tDATE_FORMAT(`operaciones_mvtos`.`fecha_afectacion`, '%d') AS 'dia',\n\tSUM(`operaciones_mvtos`.`afectacion_real` * `eacp_config_bases_de_integracion_miembros`.`afectacion` ) AS `monto`\nFROM\n\t`operaciones_mvtos` `operaciones_mvtos` \n\t\tINNER JOIN `eacp_config_bases_de_integracion_miembros` \n\t\t`eacp_config_bases_de_integracion_miembros` \n\t\tON `operaciones_mvtos`.`tipo_operacion` = \n\t\t`eacp_config_bases_de_integracion_miembros`.`miembro` \nWHERE\n\t(`eacp_config_bases_de_integracion_miembros`.`codigo_de_base` = 2602) AND\n\t(`operaciones_mvtos`.`fecha_afectacion` >='{$fecha_inicial}') \n\tAND\n\t(`operaciones_mvtos`.`fecha_afectacion` <='{$fecha_final}') \n\t{$BySucursal}\nGROUP BY\n\t`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,\n\t`operaciones_mvtos`.`docto_afectado`,\n\t`operaciones_mvtos`.`fecha_afectacion` \nORDER BY\n\t`eacp_config_bases_de_integracion_miembros`.`codigo_de_base`,\n\t`operaciones_mvtos`.`fecha_afectacion` "; //Arrays de mvtos y otros tipos $arrMvtos = array(); $arrSums = array(); $rs = mysql_query($sqlM, cnnGeneral()); while ($rw = mysql_fetch_array($rs)) { $arrMvtos[$rw["cuenta"]][$rw["dia"]] = $xTip->cFloat($rw["monto"], 2); } //Sql de las cuentas $sqlC = "SELECT\n\t`socios_general`.`codigo`,\n\tCONCAT(`socios_general`.`apellidopaterno`, ' ',\n\t`socios_general`.`apellidomaterno`, ' ',\n\t`socios_general`.`nombrecompleto`) AS 'nombre',\n\t`captacion_cuentas`.`numero_cuenta`,\n\t`captacion_cuentas`.`saldo_cuenta` \nFROM\n\t`captacion_cuentas` `captacion_cuentas` \n\t\tINNER JOIN `socios_general` `socios_general` \n\t\tON `captacion_cuentas`.`numero_socio` = `socios_general`.`codigo`\nWHERE\n\t(`captacion_cuentas`.`tipo_cuenta` =10)\n\tORDER BY\n\t\t`socios_general`.`codigo`,\n\t\t`captacion_cuentas`.`numero_cuenta`,\n\t\t`captacion_cuentas`.`saldo_cuenta`\t"; //imprimir la tabla //Header $tdH = ""; $thB = ""; //sumas $sumVars = 0; $sumSInit = 0; $sumSFin = 0; $tdH .= "<table width='100%' align='center' border='0'>\n\t\t\t<thead>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Socio</th>\n\t\t\t\t\t<th>Nombre</th>\n\t\t\t\t\t<th>Cuenta</th>\n\t\t\t\t\t"; for ($i = 1; $i <= $dia_final; $i++) { $tdH .= "<th>" . $i . "</th>"; //inicializa el array de totales
function setReestructurarSDPM($SoloConSaldos = false, $credito = false, $forzarTodos = false, $fechaCorte = false, $fechaInicial = false, $EliminarTodo = true) { //FIXME: probar con saldo anterior $fechaCorte = $fechaCorte == false ? fechasys() : $fechaCorte; $msg = ""; $wCredito1 = $credito != false ? " `creditos_mvtos_asdpm`.`documento` = {$credito}" : " `documento` > 0 "; $wCredito2 = $credito != false ? " numero_de_credito = {$credito} " : " numero_de_credito > 0"; $ByRTM = $credito != false ? " " : " SQL_CACHE "; $wFecha1 = " AND (fecha >='{$fechaInicial}' AND fecha <='{$fechaCorte}' ) "; $wFecha2 = " AND (`fecha_actual` >= '{$fechaInicial}' AND `fecha_actual`<='{$fechaCorte}' ) "; $ql = new MQL(); $arrEstatusD = array(OPERACION_CLAVE_MINISTRACION, 111, 114, 115); $arrEstatus = array(OPERACION_CLAVE_MINISTRACION => CREDITO_ESTADO_VIGENTE, 111 => CREDITO_ESTADO_VENCIDO, 114 => CREDITO_ESTADO_VIGENTE, 115 => CREDITO_ESTADO_MOROSO); //Eliminar el SDPM if ($EliminarTodo == true) { $DAction = $ql->setRawQuery("DELETE FROM creditos_sdpm_historico WHERE {$wCredito2} {$wFecha2} "); if (MODO_DEBUG == true) { $msg .= "WARN\tEliminando SDPM\r\n"; } } if ($credito != false) { $ql->setRawQuery("DELETE FROM operaciones_mvtos WHERE docto_afectado={$credito} AND tipo_operacion = 420"); if (MODO_DEBUG == true) { $msg .= "WARN\tEliminando Operaciones 420 del credito {$credito}\r\n"; } } $msg .= "Socio\tCredito\tFecha\tMonto\tSaldo\tDias\tOperacion\tEstatus\tInteres\tMoratorios\r\n"; //Generar saldos de credito por mes $sql = "SELECT {$ByRTM}\n\t\t`creditos_mvtos_asdpm`.`socio`,\n\t\t`creditos_mvtos_asdpm`.`documento`,\n\t\t`creditos_mvtos_asdpm`.`recibo`,\n\t\t`creditos_mvtos_asdpm`.`fecha`,\n\t\t`creditos_mvtos_asdpm`.`operacion`,\n\t\t`creditos_mvtos_asdpm`.`monto`,\n\t\t`creditos_mvtos_asdpm`.`afectacion`\n\t\tFROM `creditos_mvtos_asdpm`\tWHERE {$wCredito1} {$wFecha1} "; //setLog($sql); $rsM = $ql->getDataRecord($sql); $saldo = 0; $creditoA = 0; $xT = new cTipos(); $xF = new cFecha(); $FECHA_DE_ULTIMO_PAGO = "1998-01-01"; $CREDITO_SALDO_ANTERIOR = 0; $MvtoAnterior = OPERACION_CLAVE_MINISTRACION; $ESTADO_ACTUAL = CREDITO_ESTADO_VIGENTE; $DIVISOR_DE_INTERESES = EACP_DIAS_INTERES; $DCred = array(); $IsCredNew = true; $xCred = null; foreach ($rsM as $rw) { $socio = $xT->cInt($rw["socio"]); $credito = $xT->cInt($rw["documento"]); $fecha = $rw["fecha"]; $nota = ""; // $IsCredNew = true; if ($creditoA != $credito) { $saldo = 0; $FECHA_DE_ULTIMO_PAGO = $fecha; $ESTADO_ACTUAL = CREDITO_ESTADO_VIGENTE; $xCred = new cCredito($credito, $socio); $xCred->init(); $DCred = $xCred->getDatosDeCredito(); $CREDITO_SALDO_ANTERIOR = 0; //si es Ministracion if ($MvtoAnterior == OPERACION_CLAVE_MINISTRACION) { $FECHA_DE_ULTIMO_PAGO = $xCred->getFechaDeMinistracion(); } $msg .= "------------------------\tNUEVO_CREDITO : {$credito}------------------------------\r\n"; if ($EliminarTodo == false) { my_query("DELETE FROM creditos_sdpm_historico WHERE numero_de_credito = {$credito} {$wFecha2}"); } } else { $IsCredNew = false; } $OProd = $xCred->getOProductoDeCredito(); $recibo = $rw["recibo"]; $operacion = $rw["operacion"]; $afectacion = $rw["afectacion"]; $monto = $xT->cFloat($rw["monto"], 2); $periocidad = $xCred->getPeriocidadDePago(); $FechaVencimiento = $xCred->getFechaDeVencimiento(); //(!isset( $DCred["fecha_vencimiento_dinamico"])) ? $xCred->getFechaDeVencimiento() : $DCred["fecha_vencimiento_dinamico"]; $DiaInteresMax = $xF->setSumarDias(INTERES_DIAS_MAXIMO_A_DEVENGAR, $FechaVencimiento); $dias_transcurridos = $xF->setRestarFechas($fecha, $FECHA_DE_ULTIMO_PAGO); $saldo_calculado = $dias_transcurridos * $saldo; //No poner la afectacion $saldo += $xT->cFloat($monto * $afectacion, 2); // si es normal, calcular normal, si es mora: Calcular mora y normal, si es vencido: calcular normal y mora $interes = 0; $moratorio = 0; $TASA_NORMAL = $xCred->getTasaDeInteres(); $TASA_MORA = $xCred->getTasaDeMora(); $TIPO_DE_PAGO = $xCred->getTipoDePago(); $PAGOS_SIN_CAPITAL = $xCred->getPagosSinCapital(); $MONTO_ORIGINAL_DE_CREDITO = $xCred->getMontoAutorizado(); $saldoBase = $xT->cFloat($saldo, 2); if ($operacion == OPERACION_CLAVE_PAGO_CAPITAL and $saldo == 0) { $saldoBase = $CREDITO_SALDO_ANTERIOR; } if ($MvtoAnterior == OPERACION_CLAVE_MINISTRACION) { $saldoBase = $CREDITO_SALDO_ANTERIOR; $saldo_calculado = $dias_transcurridos * $CREDITO_SALDO_ANTERIOR; } $SALDO_ACTUAL = $xCred->getSaldoActual(); $BASE_NORMAL = $saldo_calculado; $BASE_MORA = $saldo_calculado; eval($OProd->getPreModInteres()); //considerar si es un maximo de x dias devengar en vencidos switch ($ESTADO_ACTUAL) { case CREDITO_ESTADO_VIGENTE: $interes = $BASE_NORMAL * $TASA_NORMAL / $DIVISOR_DE_INTERESES; break; case CREDITO_ESTADO_VENCIDO: //validar si tiene un maximo de dias transcurridos de devengado if ($xF->getInt($fecha) <= $xF->getInt($DiaInteresMax)) { $interes = $BASE_NORMAL * $TASA_NORMAL / $DIVISOR_DE_INTERESES; $moratorio = $BASE_MORA * $TASA_MORA / $DIVISOR_DE_INTERESES; } else { $interes = 0; $moratorio = 0; $nota = "Despues del {$DiaInteresMax} no se acumula Interes, Vencimiento : {$FechaVencimiento}"; } break; case CREDITO_ESTADO_MOROSO: $interes = $BASE_NORMAL * $TASA_NORMAL / $DIVISOR_DE_INTERESES; $moratorio = $BASE_MORA * $TASA_MORA / $DIVISOR_DE_INTERESES; break; } //END_SWITCH $interes = $xT->cFloat($interes, 2); if ($periocidad == CREDITO_TIPO_PERIOCIDAD_FINAL_DE_PLAZO) { $moratorio = $xT->cFloat($moratorio, 2); //0; //2012-04-10 } else { //$moratorio = 0; } eval($OProd->getPosModInteres()); $msg .= "{$socio}\t{$credito}\t{$fecha}\t{$monto}\t{$saldo}\t{$dias_transcurridos}\t{$operacion}\t{$ESTADO_ACTUAL}\t{$interes}\t{$moratorio}\t{$nota}\r\n"; if ($xF->getInt($fecha) <= $xF->getInt(SYS_FECHA_DE_MIGRACION)) { $interes = 0; $moratorio = 0; if (MODO_DEBUG == true) { $msg .= "WARN\tOMITIR Interes {$interes} y MORA por {$moratorio} por estar antes de la migracion {$fecha}\r\n"; } } if ($xF->getInt($fecha) <= $xF->getInt($fechaCorte)) { $msgSDPM = $xCred->addSDPM($interes, $moratorio, $FECHA_DE_ULTIMO_PAGO, $saldo, $ESTADO_ACTUAL, $fecha, $operacion, $saldo_calculado); //if(MODO_DEBUG == true){ $msg .= $msgSDPM; } } if ($saldo <= TOLERANCIA_SALDOS) { $msg .= "------------------------------------------------------\r\n"; } $creditoA = $credito; $FECHA_DE_ULTIMO_PAGO = $fecha; $CREDITO_SALDO_ANTERIOR = $saldo; $MvtoAnterior = $operacion; /* * si existe la operacion de cambio de estatus, validar en el array, y actualizar el valor * Este estatus se aplicara en el siguiente */ if (in_array($operacion, $arrEstatusD)) { $ESTADO_ACTUAL = $arrEstatus[$operacion]; } } return $msg; }
$arrINTS = array(420); if ($xCred->getRespetarPlanDePago() == false) { $arrINTS = array(411, 413, 420, 412); } if ($monto_a_operar <= 0) { $xLog->add("WARN\tNecesita un Monto a Operar, que debe ser el efectivo que el socio trae \r\n", $xLog->COMMON); } /** * Obtiene los Movimientos mediante una Sentencia SQL * */ $rsm = $ql->getDataRecord($SQLBody); foreach ($rsm as $rwm) { $pendiente = 0; $title = $rwm["descripcion_operacion"]; $monto = $xT->cFloat($rwm["total_operacion"], 2); $MTipo = $rwm["tipo_operacion"]; $cls = ""; $xLog->add("WARN\tIX\tEl Movimiento es {$MTipo}\r\n", $xLog->DEVELOPER); //Omite los Intereses Pactados y tod lo concerniente al credito segun la base if (in_array($MTipo, $arrINTS)) { $xLog->add("WARN\t{$MTipo}\tINTERES\tEl Monto por {$monto} Del Movimiento {$MTipo} se lleva a CERO\r\n", $xLog->DEVELOPER); $monto = 0; } if ($MTipo == OPERACION_CLAVE_PLAN_INTERES) { if ($xCred->getPagosSinCapital() == true and $xF->getInt($fecha_operacion) < $xF->getInt($fecha_de_pago)) { $interes_calculado = $interes_normal_devengado - $interes_normal_pagado + $interes_normal_calculado; if ($monto > $interes_calculado) { $xLog->add("WARN\t{$MTipo}\tINT.DEV\tInteres de la Letra Ajustado de {$monto} a {$interes_calculado} por ser menos\r\n", $xLog->COMMON); $monto = $interes_calculado > 0 ? $interes_calculado : 0; $cls = " class='warn' ";
$fecha_operacion = $xCred->getFechaDeMinistracion(); if ($xCred->getNumeroDePlanDePagos() != false) { $xPlan->init($xCred->getNumeroDePlanDePagos()); $xPlan->setEliminar(); } $xPlan->initByCredito($credito); $xPlan->setClaveDeCredito($credito); $xPlan->setClaveDePersona($xCred->getClaveDePersona()); $idrecibo = $xPlan->add($observaciones, $fecha_operacion); $xPlan->init($idrecibo); foreach ($data as $valores => $cont) { //periodo fecha saldo_inicial intereses impuesto capital pago_total saldo_final //0 1 2 3 4 5 6 7 //Periodo,Fecha de Pago,Saldo inicial,Intereses,Impuesto,Pago a Capital,Pago Total,Saldo final if ($xT->cInt($cont[0]) > 0) { $interes = $xT->cFloat($cont[3], 2); $fecha = $xF->getFechaISO($cont[1]); $periodo = $xT->cInt($cont[0]); $capital = $xT->cFloat($cont[5], 2); $total_parcial = $xT->cFloat($cont[6], 2); $saldo_inicial = $xT->cFloat($cont[2], 2); $saldo_final = $xT->cFloat($cont[7], 2); $xPlan->setMontoOperado($total_parcial); $xPlan->setSaldoInicial($saldo_inicial); $xPlan->setSaldoFinal($saldo_final); $xPlan->addMvtoDeInteres($interes, $fecha, $periodo); $xPlan->addMvtoDeIVA($fecha, $periodo); $xPlan->addMvtoDeCapital($capital, $fecha, $periodo); } else { $msg .= "WARN\tLINEA OMITIDA\r\n"; }
function getListadoDeCobranza($empresa, $periocidad, $variacion, $periodo, $fechaInicial = false, $fechaFinal = false, $uso = false) { $ByPeriodo = $periocidad == "todos" ? "" : " AND creditos_solicitud.periocidad_de_pago = {$periocidad} "; $xF = new cFecha(); $fechaFinal = $xF->getFechaISO($fechaFinal); $fechaInicial = $xF->getFechaISO($fechaInicial); $xQl = new MQL(); $xEmp = new cEmpresas($empresa); $creditoON = array(); $DDias = $xEmp->getDiasDeAviso(); $sqletras = "SELECT\t`creditos_solicitud`.`persona_asociada`, `letras`.* \n\t\t\t\t\t\tFROM\t`creditos_solicitud` `creditos_solicitud`\t\tINNER JOIN `letras` `letras`\tON `creditos_solicitud`.`numero_solicitud` = `letras`.`docto_afectado` \n \t\t\t\t\tWHERE\t(`creditos_solicitud`.`persona_asociada` ={$empresa}) "; //setLog($sqletras); $rsCal = $xQl->getDataRecord($sqletras); $DCal = array(); foreach ($rsCal as $dscal) { $ixcredito = $dscal["docto_afectado"]; $ixperiodo = $dscal["periodo_socio"]; $DCal["{$ixcredito}-{$ixperiodo}"] = $dscal["letra"]; } $ByMinistracion = ""; $periodo = $periodo + $variacion; //filtrar domicilio -> socio -> credito -> letra $sql = "SELECT\n creditos_solicitud.numero_socio AS 'persona',\n CONCAT(\n (CASE WHEN (socios_general.dependencia != creditos_solicitud.persona_asociada) THEN '(*)' ELSE '' END ), \n socios_general.nombrecompleto, ' ',\n socios_general.apellidopaterno, ' ',\n socios_general.apellidomaterno \n\t) AS 'nombre', \n\n creditos_solicitud.numero_solicitud AS 'credito',\n \n\tgetParcialidadPorFecha(ultimo_periodo_afectado, {$variacion}, '{$fechaFinal}', `primeras_letras`.`fecha_de_pago`, fecha_ministracion) AS 'letra',\n `creditos_solicitud`.`pagos_autorizados` AS 'pagos',\n \n creditos_solicitud.monto_parcialidad AS 'monto'\n\tFROM\n\t\t`creditos_solicitud` `creditos_solicitud` \n\t\t\tINNER JOIN `creditos_periocidadpagos` `creditos_periocidadpagos` \n\t\t\tON `creditos_solicitud`.`periocidad_de_pago` = \n\t\t\t`creditos_periocidadpagos`.`idcreditos_periocidadpagos` \n\t\t\t\tINNER JOIN `primeras_letras` `primeras_letras` \n\t\t\t\tON `creditos_solicitud`.`numero_solicitud` = `primeras_letras`.\n\t\t\t\t`docto_afectado` \n\t\t\t\t\tINNER JOIN `socios_general` `socios_general` \n\t\t\t\t\tON `creditos_solicitud`.`numero_socio` = `socios_general`.\n\t\t\t\t\t`codigo`\n \n WHERE \n `creditos_solicitud`.persona_asociada\t= {$empresa}\n AND saldo_actual > " . TOLERANCIA_SALDOS . "\n AND (`primeras_letras`.`fecha_de_pago` <= '{$fechaFinal}' OR creditos_solicitud.ultimo_periodo_afectado >= 2)\n {$ByPeriodo}\n AND (creditos_solicitud.ultimo_periodo_afectado+(1+({$variacion}))) > 0\n AND (creditos_solicitud.ultimo_periodo_afectado+(1+({$variacion}))) <= creditos_solicitud.pagos_autorizados\n ORDER BY ultimo_periodo_afectado DESC, fecha_ministracion,\n\tsocios_general.nombrecompleto\n "; //setLog($sql); $dato = $xQl->getDataRecord($sql); $tr = ""; $xBt = new cHImg(); $ixx = 1; $numero = 0; $suma = 0; $xT = new cTipos(); foreach ($dato as $rw) { $credito = $rw["credito"]; $creditoON[$credito] = $credito; $letra = $rw["letra"]; $lmonto = $xT->cFloat($rw["monto"], 2); $numero++; $suma += $lmonto; $cssN = ""; $notas = ""; $cls = $ixx == 2 ? " class='trOdd' " : ""; $dif = 0; if (isset($DCal["{$credito}-{$letra}"])) { $dlmonto = round($DCal["{$credito}-{$letra}"], 2); $dif = round($dlmonto - $lmonto, 2); if ($dif != 0) { if ($dif > 0.01 or $dif < -0.01) { $notas = "Diferencia por {$dif} en la Parcialidad {$letra}, Plan de Pagos : " . $dlmonto . " Monto de Parcialidad : " . $lmonto; $cls = " class='warn' "; } else { //+01 -01 $lmonto = round($dlmonto, 2); $cls = " class='warn' "; } } } $td = "<tr{$cls} id='tr-{$credito}'>"; $td .= "<th>" . $rw["persona"] . "</th>"; $td .= "<td>" . $rw["nombre"] . "</td>"; $td .= "<td>" . $rw["credito"] . "</td>"; $td .= "<td><input type=\"number\" id=\"periodo-{$credito}\" value=\"" . $rw["letra"] . "\" /></td>"; $td .= "<th>" . $rw["pagos"] . "</th>"; $td .= "<td><input type=\"number\" id=\"monto-{$credito}\" value=\"" . $lmonto . "\" /></td>"; $td .= "<td><input type=\"text\" id=\"notas-{$credito}\" value=\"" . "" . "\"/></td>"; //$td .= "<td><input type=\"number\" id=\"saldo-$credito\" value=\"" . $rw["monto"] . "\" /></td>"; $td .= "<td class='toolbar-24' id=\"options-{$credito}\">"; $td .= $xBt->get24("calendar.png", " onclick=\"getPlanDePagos(" . $rw["credito"] . ")\" "); $td .= $xBt->get24("day.png", " onclick=\"generarPlanDePagos(" . $rw["credito"] . ")\" "); $td .= $xBt->get24("order.png", " onclick=\"getEstadoDeCuenta(" . $rw["credito"] . ")\" "); $td .= $xBt->get24("link.png", " onclick=\"desvincular(" . $rw["credito"] . ")\" "); $td .= "<div class='coolCheck'><input type='checkbox' id='chk_{$credito}' onclick='jsSetAlimentarEnvio(this, " . $rw["credito"] . ")' /><label for='chk_{$credito}'></label></div>"; if ($dif == 0) { $td .= $xBt->get24("view.png", " onclick=\"setOcultar(" . $rw["credito"] . ")\" "); } $td .= "</td>"; $td .= "</tr>"; $ixx = $ixx >= 2 ? 1 : $ixx + 1; if ($notas != "") { $td .= "<tr><td class='aviso' colspan='8'>{$notas}</td></tr>"; } $tr .= $td; } //filtrar domicilio -> socio -> credito -> letra $sql = "SELECT\n creditos_solicitud.numero_socio AS 'persona',\n CONCAT(\n (CASE WHEN (socios_general.dependencia != creditos_solicitud.persona_asociada) THEN '(*)' ELSE '' END ),\n socios_general.nombrecompleto, ' ',\n socios_general.apellidopaterno, ' ',\n socios_general.apellidomaterno\n ) AS 'nombre',\n \n creditos_solicitud.numero_solicitud AS 'credito',\n \n getParcialidadPorFecha(ultimo_periodo_afectado, {$variacion}, '{$fechaFinal}', `primeras_letras`.`fecha_de_pago`, fecha_ministracion) AS 'letra',\n `creditos_solicitud`.`pagos_autorizados` AS 'pagos',\n \n creditos_solicitud.monto_parcialidad AS 'monto'\n FROM\n `creditos_solicitud` `creditos_solicitud`\n INNER JOIN `creditos_periocidadpagos` `creditos_periocidadpagos`\n ON `creditos_solicitud`.`periocidad_de_pago` =\n `creditos_periocidadpagos`.`idcreditos_periocidadpagos`\n INNER JOIN `primeras_letras` `primeras_letras`\n ON `creditos_solicitud`.`numero_solicitud` = `primeras_letras`.\n `docto_afectado`\n INNER JOIN `socios_general` `socios_general`\n ON `creditos_solicitud`.`numero_socio` = `socios_general`.\n `codigo`\n \n WHERE `creditos_solicitud`.persona_asociada\t= {$empresa}\n \n ORDER BY ultimo_periodo_afectado DESC, fecha_ministracion,\n socios_general.nombrecompleto\n "; //setLog($sql); $dato = $xQl->getDataRecord($sql); $xT = new cTipos(); foreach ($dato as $rw) { if (!isset($creditoON[$credito])) { $credito = $rw["credito"]; $letra = $rw["letra"]; $lmonto = $xT->cFloat($rw["monto"], 2); $cssN = ""; $notas = ""; $cls = $ixx == 2 ? " class='trOdd' " : ""; $td = "<tr{$cls} id='tr-{$credito}'>"; $td .= "<th>" . $rw["persona"] . "</th>"; $td .= "<td>" . $rw["nombre"] . "</td>"; $td .= "<td>" . $rw["credito"] . "</td>"; $td .= "<td>" . $rw["letra"] . "</td>"; $td .= "<th>" . $rw["pagos"] . "</th>"; $td .= "<td>" . $lmonto . "</td>"; $td .= "<td>" . $notas . "</td>"; $td .= "<td class='toolbar-24' id=\"options-{$credito}\">"; $td .= "</td>"; $td .= "</tr>"; $tr .= $td; } } //$xT = new cHTabla(); $tfoot = "<tr><th colspan='3'>TOTALES</td><th><input id=\"idconteo\" value=\"0\" type=\"number\"></th>"; $tfoot .= "<td /><th><input id=\"idsuma\" value=\"0\" type=\"number\"></th><td colspan='2'><input type='text' id='idenletras' disabled='true' /></td></tr>"; return "<table class='listado'>{$tr} {$tfoot}</table>"; }
$iReg = 0; $cT = new cTipos(); //inicializa el LOG del proceso $aliasFil = getSucursal() . "-carga-batch-de-inversiones-" . fechasys(); $xLog = new cFileLog($aliasFil, true); if ($gestor) { while (!feof($gestor)) { $bufer = fgets($gestor, 4096); //$bufer = stream_get_line($gestor, "\r\n"); if (!isset($bufer)) { $msg .= "{$iReg}\t\tERROR\tLa Linea({$iReg}) no se leyo({$bufer})\r\n"; } else { $bufer = trim($bufer); $datos = explode(",", $bufer, 6); $socio = $cT->cInt($datos[0]); $importe = $cT->cFloat($datos[1]); $fechaApertura = $cT->cFecha($datos[2]); $plazo = $cT->cInt($datos[3]); $tasa = $cT->cFloat($datos[4]); $observaciones = $cT->cChar($datos[5]); $ClaveCuenta = false; //Iniciar el Socio //$msg .= "$iReg\t$socio\tERROR_SOCIO\t$socio -- $importe -- $fechaApertura -- $plazo -- $tasa -- $observaciones\r\n"; $xCL = new cCajaLocal(99); if ($xCL->getExistenciaSocio($socio) <= 0) { $msg .= "{$iReg}\t{$socio}\tERROR_SOCIO\tLa Linea({$iReg}) no se leyo por que no existe el socio({$bufer})\r\n"; } else { $xInv = new cCuentaInversionPlazoFijo(false, $socio, $plazo, $tasa, $fechaApertura); //Agrega la Cuenta $ClaveCuenta = $xInv->setNuevaCuenta(99, 2, $socio, $observaciones, DEFAULT_CREDITO, "", "", DEFAULT_GRUPO, $fechaApertura, CAPTACION_TIPO_PLAZO, 99, $plazo, $tasa); if ($ClaveCuenta != false) {
} else { $sqlD = "DELETE FROM sisbancs_temp_depositos "; my_query($sqlD); } while (!feof($gestor)) { $bufer = fgets($gestor, 4096); //$bufer = stream_get_line($gestor, "\r\n"); if (!isset($bufer)) { $msg .= "La Linea({$iReg}) no se leyo({$bufer})\r\n"; } else { $datos = explode(",", trim($bufer), 3); $cuenta = trim($datos[0]); $nombre = strtoupper(trim($datos[1])); $estatus = $arrEstatus[substr($cuenta, 0, 6)]; $TCuenta = isset($arrTCuenta[substr($cuenta, 0, 12)]) ? $arrTCuenta[substr($cuenta, 0, 12)] : 0; $monto = $cT->cFloat(trim($datos[2])); $modalidad = 1; $aDCuenta = explode("-", $cuenta); $socio = $cT->cInt($aDCuenta[5]); $sucursal = mifila("SELECT sucursal FROM socios_general WHERE codigo = {$socio} LIMIT 0,1 ", "sucursal"); if ($sucursal != getSucursal()) { $sucursal = "otra"; } //1-3-01-02 if (substr($cuenta, 7, 2) == "02") { $modalidad = 3; } if ($monto > 0 and $socio != 0) { if ($TipoDeImportacion == "credito") { $sqlD = "DELETE FROM sisbancs_temp_creditos WHERE cuenta_contable = '{$cuenta}' "; my_query($sqlD);
} $xHP->init(); $xFRM = new cHForm("frmmultas", "frmcobrodemultas.php?action=" . MQL_ADD); if ($action == SYS_NINGUNO) { $xFRM->addPersonaBasico(); $xFRM->ODate("idfechaactual", false, "TR.Fecha de cobro"); $xFRM->addCobroBasico(); $xFRM->OText("idconceptomulta", "", "TR.Concepto de Multa"); $xFRM->OMoneda("idmontomulta", 0, "TR.Monto de Multa", true); $xFRM->addGuardar(); } else { $xT = new cTipos(); //=========================================================================== $idsocio = isset($_POST["idsocio"]) ? $xT->cInt($_POST["idsocio"]) : 0; $observaciones = isset($_POST["idconceptomulta"]) ? $xT->cChar($_POST["idconceptomulta"]) : ""; $monto = isset($_POST["idmontomulta"]) ? $xT->cFloat($_POST["idmontomulta"]) : 0; $cheque = isset($_POST["cheque"]) ? $xT->cChar($_POST["cheque"]) : DEFAULT_CHEQUE; $comopago = isset($_POST["ctipo_pago"]) ? $xT->cChar($_POST["ctipo_pago"]) : DEFAULT_TIPO_PAGO; $foliofiscal = isset($_POST["foliofiscal"]) ? $xT->cChar($_POST["foliofiscal"]) : DEFAULT_RECIBO_FISCAL; if (setNoMenorQueCero($idsocio) <= 0) { //header("location: frmcobrodemultas.php?msg=FALTAN_DATOS"); $xFRM->addAvisoRegistroError(); } else { if (setNoMenorQueCero($monto) <= 0) { $xFRM->addAvisoRegistroError(); } else { $iddocto = DEFAULT_CREDITO; $xRec = new cReciboDeOperacion(RECIBOS_TIPO_TERCEROS, false, false); $xRec->setGenerarBancos(); $xRec->setGenerarPoliza(); $xRec->setGenerarTesoreria();
$aliasFil = getSucursal() . "-carga -batch-de-creditos-" . fechasys(); $xLog = new cFileLog($aliasFil, true); if ($gestor) { while (!feof($gestor)) { $bufer = fgets($gestor, 4096); //$bufer = stream_get_line($gestor, "\r\n"); if (!isset($bufer)) { $msg .= "{$iReg}\t\tERROR\tLa Linea({$iReg}) no se leyo({$bufer})\r\n"; } else { $bufer = trim($bufer); $datos = explode("|", $bufer, 18); $xF = new cFecha(); $socio = $cT->cInt($datos[1]); $credito = false; //$cT->cInt($datos[1]); $monto = $cT->cFloat($datos[8]); $periocidad = $cT->cInt($arrPeriodos[trim($datos[7])]); $pagos = $cT->cInt($datos[6]); $ministracion = $xF->getFechaISO($datos[10]); $fechaSolicitado = $xF->getFechaISO($datos[5]); $descDestino = $cT->cChar($datos[9]); $tasa = $cT->cFloat($datos[15]); $tasa = $tasa / 100; $dias = $periocidad * $pagos; $aplicacion = $cT->cChar($datos[17]) == "S" ? 501 : 100; $vencimiento = $xF->setSumarDias($dias, $ministracion); //$cT->cFecha($datos[5]); $saldo = $cT->cFloat($datos[11]); $UltimaOperacion = fechasys(); //$cT->cFecha($datos[9]); $ContratoCorriente = CTA_GLOBAL_CORRIENTE;
//inicializa el LOG del proceso $aliasFil = getSucursal() . "-carga -batch-de-creditos-" . fechasys(); $xLog = new cFileLog($aliasFil, true); if ($gestor) { while (!feof($gestor)) { $bufer = fgets($gestor, 4096); //$bufer = stream_get_line($gestor, "\r\n"); if (!isset($bufer)) { $msg .= "{$iReg}\t\tERROR\tLa Linea({$iReg}) no se leyo({$bufer})\r\n"; } else { $bufer = trim($bufer); $datos = explode(",", $bufer, 12); $socio = $cT->cInt($datos[0]); $credito = $cT->cInt($datos[1]); $producto = $cT->cInt($datos[2]); $monto = $cT->cFloat($datos[3]); $ministracion = $cT->cFecha($datos[4]); $vencimiento = $cT->cFecha($datos[5]); $pagos = $cT->cInt($datos[6]); $periocidad = $cT->cInt($datos[7]); $saldo = $cT->cFloat($datos[8]); $UltimaOperacion = $cT->cFecha($datos[9]); $ContratoCorriente = $cT->cInt($datos[10]); if ($socio == 0) { $msg .= "{$iReg}\t\tERROR\tLa Linea({$iReg}) no se leyo({$bufer})\r\n"; } else { $xCred = new cCredito(); //Crear Contrato corriente si el producto tiene ahorro $DConv = $xCred->getDatosDeProducto($producto); $tasaAhorro = $cT->cFloat($DConv["tasa_ahorro"]); if ($ContratoCorriente == 0 and $tasaAhorro > 0) {
saveError(210, $_SESSION["SN_b80bb7740288fda1f201890375a60c8f"], "Faltan Parametros({$params}) para el cobro, el Parametro {$ix} resulto " . $DPar[$ix]); header("location:../404.php?i=210"); //provocar error 404 exit; } } $xFRM = new cHForm("frmpagoprocesado"); $msg = ""; $capitalAfectado = false; $interesAfectado = false; ///frmcaja/frmpagoprocesado.php?p=1000047|200004702|1|350.48|plc|efectivo|99|06-12-2013&procesar=automatico&periodoempresa=24 $socio = $xT->cInt($DPar[0]); $solicitud = $xT->cInt($DPar[1]); $parcialidad = $xT->cInt($DPar[2]); $periocidad = $xT->cInt($DPar[3]); $monto_a_operar = $xT->cFloat($DPar[4]); $operacion = isset($DPar[5]) ? $DPar[5] : OPERACION_PAGO_COMPLETO; $SRC = $_POST; $abonar_al_final = 0; $xCred = new cCredito($solicitud, $socio); $xCred->init(); if ($procesado == SYS_AUTOMATICO) { $arrINTS = array(420); //Array de Intereses Devengados $SRC["ctipo_pago"] = $DPar[5]; $operacion = $DPar[4]; $monto_a_operar = $xT->cFloat($DPar[3]); $periocidad = isset($_REQUEST["periocidad"]) ? $_REQUEST["periocidad"] : DEFAULT_PERIOCIDAD_PAGO; $_SESSION[FECHA_OPERATIVA] = $xF->getFechaISO($DPar[7]); $totalAutomatico = 0; //6 = banco