function jsaGetDatosCuenta($cuenta, $socio) { $xCta = new cCuentaALaVista($cuenta, $socio); $xCta->init(); $DC = $xCta->getDatosInArray(); $MaxRet = $xCta->getMaximoRetirable(); $sdo = $DC["saldo_cuenta"]; $tab = new TinyAjaxBehavior(); $tab->add(TabSetValue::getBehavior("idMaxRet", $MaxRet)); $tab->add(TabSetValue::getBehavior("idSaldoAnterior", $sdo)); //$tab -> add(TabSetValue::getBehavior("idmonto", $sdo )); //$tab -> add(TabSetValue::getBehavior("imsg", $xCta->getMessages("txt") )); return $tab->getString(); }
function setRevertir() { $sucess = true; $arrValuesRev = array("-1" => "1", "1" => "-1", "0" => "0"); if ($this->mInit == false) { $this->init(); } $rw = $this->mArrayData; $codigo = $rw["idoperaciones_mvtos"]; $docto = $rw["docto_afectado"]; $socio = $rw["socio_afectado"]; $preservar_mvto = $rw["preservar_movimiento"]; $CodeRevertir = $rw["formula_de_cancelacion"]; $monto = $rw["afectacion_real"]; $afectacion = $rw["valor_afectacion"]; $recibo = $rw["recibo_afectado"]; $colocacion = array(); $captacion = array(); //selecciona un comportamiento segun el Origen del Recibo switch ($this->mAplicadoA) { case "colocacion": //cargar datos del credito $Credito = new cCredito($docto, $socio); $Credito->initCredito(); $colocacion = $Credito->getDatosDeCredito(); break; case "captacion": //cargar datos de la cuenta $Cuenta = new cCuentaALaVista($docto); $Cuenta->initCuentaByCodigo(); $captacion = $Cuenta->getDatosInArray(); break; case "mixto": //cargar datos de la cuenta y del credito $Credito = new cCredito($docto, $socio); $Credito->initCredito(); $colocacion = $Credito->getDatosDeCredito(); $Cuenta = new cCuentaALaVista($docto); $Cuenta->initCuentaByCodigo(); $captacion = $Cuenta->getDatosInArray(); $this->mMessages .= "WARN\tEL Recibo es Mixto, se carga tanto Captacion como Colocacion\r\n"; break; default: $this->mMessages .= "ERROR\tEL Recibo es " . $this->mAplicadoA . ", NO SE CARGA CODIGO\r\n"; break; } eval($CodeRevertir); if ($preservar_mvto == '1') { $SQL_DM = "UPDATE operaciones_mvtos\n\t\t\t\t\t\tSET afectacion_estadistica=afectacion_real,\n\t\t\t\t\t\tafectacion_real = 0, afectacion_contable=0,\n\t\t\t\t\t\tafectacion_cobranza=0, valor_afectacion=0,\n\t\t\t\t\t\testatus_mvto = 99,\n\t\t\t\t\t\tdocto_neutralizador = " . DEFAULT_RECIBO . ",\n\t\t\t\t\t\trecibo_afectado\t= " . DEFAULT_RECIBO . "\n\t\t\t\t\t\tWHERE idoperaciones_mvtos = {$codigo}\n\t\t\t\t\t\t"; $this->mMessages .= "Actualizando el Movimiento {$codigo}\r\n"; } else { $SQL_DM = "DELETE FROM operaciones_mvtos\n\t\t\t\t\t\tWHERE idoperaciones_mvtos = {$codigo}"; $this->mMessages .= "Eliminado el Movimiento {$codigo}\r\n"; } my_query($SQL_DM); }
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; }
$xF = new cFecha(); $oficial = elusuario($iduser); $xHP->init(); $xRPT = new cReportes(); $idcuenta = parametro("f100", false, MQL_INT); $idcuenta = parametro("cuenta", $idcuenta, MQL_INT); $AppByFechas = parametro("f73"); //Boolean por fechas $fecha_inicial = parametro("on", EACP_FECHA_DE_CONSTITUCION); $fecha_final = parametro("off", $xF->getFechaMaximaOperativa()); $output = parametro("out", SYS_DEFAULT); $es_por_fechas = ""; $xCuenta = new cCuentaALaVista($idcuenta); $xCuenta->init(); //Datos de la Cuenta $rwc = $xCuenta->getDatosInArray(); // datos generales del socio $idsocio = $rwc["numero_socio"]; // Numero de Socio $CSocio = new cSocio($idsocio); $CSocio->init(); $mynom = $CSocio->getNombreCompleto(); $xRPT->addContent($CSocio->getFicha()); //Verifica el FORZADO de el Cuadre de Saldos // datos de la cuenta $tipocuenta = eltipo("captacion_cuentastipos", $rwc[4]); $tasa = $rwc[14] * 100; $saldo = $rwc["saldo_cuenta"]; $sdoact = number_format($rwc[9], 2, '.', ','); $depositos = 0; $retiros = 0;