/** * @return integer Numero de Operacion **/ function setNuevoMvto($fecha_operacion, $monto, $tipo_operacion, $periodo_de_socio, $observaciones, $signo_afectacion = 1, $mvto_contable = false, $socio = false, $documento = false, $fecha_afectacion = false, $fecha_vencimiento = false, $saldo_anterior = false, $saldo_nuevo = false) { $sucess = false; //inicializa el recibo if (!isset($this->mCodigoDeRecibo) or $this->mCodigoDeRecibo == false) { // } //Si no hay valores, obtenerlos del recibo if ($documento == false or !isset($documento)) { $documento = $this->mDocto; } if ($socio == false or !isset($socio)) { $socio = $this->mSocio; } //Verificar la Cuenta Bancaria if ($this->mCuentaBancaria == false) { $this->mCuentaBancaria = DEFAULT_CUENTA_BANCARIA; } $recibo = $this->mCodigoDeRecibo; $fecha_afectacion = $fecha_afectacion == false ? $fecha_operacion : $fecha_afectacion; // --------------------------------------- VALOR SQL DEL MVTO.------------------------------------------------------- // VALORES FIJOS $smf = "idusuario, codigo_eacp, socio_afectado, docto_afectado, recibo_afectado, fecha_operacion, "; // PERIODOS $smf .= "periodo_contable, periodo_cobranza, periodo_seguimiento, "; $smf .= "periodo_anual, periodo_mensual, periodo_semanal, "; // AFECTACIONES $smf .= "afectacion_cobranza, afectacion_contable, afectacion_estadistica, "; $smf .= "afectacion_real, valor_afectacion, "; // FECHAS Y TIPOS $smf .= "idoperaciones_mvtos, tipo_operacion, estatus_mvto, periodo_socio, "; $smf .= "fecha_afectacion, fecha_vcto, "; // SALDOS $smf .= "saldo_anterior, saldo_actual, detalles, sucursal, tasa_asociada, dias_asociados, grupo_asociado"; // $iduser = $_SESSION["SN_b80bb7740288fda1f201890375a60c8f"]; $eacp = EACP_CLAVE; // PERIODOS $percont = EACP_PER_CONTABLE; // Periodo Contable $percbza = EACP_PER_COBRANZA; // Periodo Cobranza. $perseg = EACP_PER_SEGUIMIENTO; // Period de Seguimiento. $permens = date("m", strtotime($fecha_operacion)); // Periodo mes $persem = date("N", strtotime($fecha_operacion)); // Periodo de dias en la semana. $peranual = date("Y", strtotime($fecha_operacion)); // A�o Natural. $persoc = $periodo_de_socio; // periodo del Socio. $estatus_mvto = $this->mDefMvtoStatus; $fecha_vcto = $fecha_vencimiento == false ? $this->mFechaDeVcto : $fecha_vencimiento; $saldo_anterior = $saldo_anterior === false ? 0 : $saldo_anterior; $saldo_nuevo = $saldo_nuevo === false ? $monto : $saldo_nuevo; $sucursal = getSucursal(); $afect_cbza = $monto; $afect_seg = $monto; $afect_cont = $monto; $afect_esta = $monto; $idoperacion = folios(2); $tasa = 0; $dias = 0; $grupo = $this->mGrupoAsociado; $viable = true; $xT = new cTipos(0); if ($this->mGrupoAsociado == false) { $grupo = DEFAULT_GRUPO; } $smv = "{$iduser}, '{$eacp}', {$socio}, {$documento}, {$recibo}, '{$fecha_operacion}',\n\t\t\t\t{$percont}, {$percbza}, {$perseg}, {$peranual}, {$permens}, {$persem},\n\t\t\t\t{$afect_cbza}, {$afect_cont}, {$afect_esta},\n\t\t\t\t{$monto}, {$signo_afectacion},\n\t\t\t\t{$idoperacion}, {$tipo_operacion}, {$estatus_mvto}, {$persoc},\n\t\t\t\t'{$fecha_afectacion}', '{$fecha_vcto}',\n\t\t\t\t{$saldo_anterior}, {$saldo_nuevo}, '{$observaciones}', '{$sucursal}', {$tasa}, {$dias}, {$grupo}\n\t\t\t\t"; $arrD = array($socio, $documento, $recibo); $viable = $xT->getEvalNotNull($arrD); if ($viable == false) { $this->mMessages .= "ERROR\tVARS\tError al Evaluar alguno de estos Valores Socio {$socio}, Documento {$documento}, Recibo {$recibo}\r\n"; $this->mMessages .= $xT->getMessages(); } $SQl_comp = "INSERT INTO operaciones_mvtos({$smf}) VALUES ({$smv})\n\t\t\t\t\t\tON DUPLICATE KEY UPDATE idoperaciones_mvtos = " . folios(2) . "\n\t\t\t\t\t"; if ($monto != 0 and isset($monto) and $this->mAfectar == true and $viable == true) { $exec = my_query($SQl_comp); if ($exec["stat"] == false) { $sucess = false; $this->mMessages .= "ERROR\t{$recibo}\tSe Fallo al Agregar la Operacion({$tipo_operacion}) por {$monto} con Numero {$idoperacion}\r\n"; } else { $sucess = true; $this->mMessages .= "SUCESS\t{$recibo}\tSe agrego Exitosamente la Operacion({$tipo_operacion}) por {$monto} con Numero {$idoperacion} \r\n"; } } else { $this->TxtLog .= "WARNING\tSe simula Agregar el Mvto {$idoperacion} del tipo {$tipo_operacion} por un monto de {$monto} \r\n"; } //Sumar al Recibo el Monto $this->mSumaDeRecibo += $monto; $this->mNumeroDeMvtos++; // return $idoperacion; }
</fieldset> </form> <?php } elseif ($action == 'i') { $xT = new cTipos(); $socio = $_POST["idsocio"]; $monto = $_POST["cMonto"]; $cuentaOrigen = $_POST["cCuentaOrigen"]; $cuentaDestino = $_POST["cCuentaDestino"]; $observaciones = $_POST["cObservaciones"]; $tipoOrigen = $_POST["cTipoOrigen"]; $tipoDestino = $_POST["cTipoDestino"]; $sucess = true; $xSoc = new cSocio($socio); $xSoc->init(); if ($xT->getEvalNotNull(array($cuentaOrigen, $cuentaDestino)) == false) { $sucess = false; $msg .= "ERROR\tLa cuenta de Origen({$cuentaOrigen}) o la cuenta de Destino({$cuentaDestino}) NO EXISTE\r\n"; } if ($cuentaOrigen == $cuentaDestino) { $sucess = false; $msg .= "ERROR\tLa cuenta de Origen({$cuentaOrigen}) es igual a la cuenta de Destino({$cuentaDestino}) \r\n"; } if ($xSoc->existeCuenta($cuentaOrigen) == 0 or $xSoc->existeCuenta($cuentaDestino) == 0) { $sucess = false; $msg .= "ERROR\tLa cuenta de Origen({$cuentaOrigen}) o la cuenta de Destino({$cuentaDestino}) NO son del Misma Persona ({$socio})\r\n"; } if ($sucess == true) { if ($tipoOrigen == CAPTACION_TIPO_PLAZO) { $xCOrigen = new cCuentaInversionPlazoFijo($cuentaOrigen, $socio); } else {
/** * Agrega una operacion a tesoreria * @param integer $recibo Numero de recibo * */ function addOperacion($recibo, $tipoDeExposicion, $MontoRecibido, $MontoOperacion = 0, $MontoCambio = 0, $banco = FALLBACK_CLAVE_DE_BANCO, $cheque = "", $CuentaBancaria = 0, $DocumentoDescontado = 0, $Observaciones = "", $fecha = false, $hora = false, $moneda = false, $monto_original = 0, $persona = false, $documento = false, $transaccion = SYS_NINGUNO) { $sucess = false; $fecha = $fecha == false ? fechasys() : $fecha; $arrQ = array("aumento" => 1, "disminucion" => -1, "ninguna" => 0); $xF = new cFecha(0, $fecha); $xT = new cTipos(); $fecha = $xF->get(); $hora = $hora == false ? date("H:i:s") : $hora; $CodigoDeCaja = $this->getKey(); $cajero = $this->mCajero; $banco = setNoMenorQueCero($banco) <= 0 ? FALLBACK_CLAVE_DE_BANCO : $banco; $this->mMoneda = $this->mMoneda == "" ? AML_CLAVE_MONEDA_LOCAL : $this->mMoneda; if ($moneda == false or $moneda == AML_CLAVE_MONEDA_LOCAL) { $moneda = $this->mMoneda != AML_CLAVE_MONEDA_LOCAL ? $this->mMoneda : AML_CLAVE_MONEDA_LOCAL; } //$monto_original = setNoMenorQueCero($monto_original); $monto_original = $monto_original == 0 ? $this->mMontoOrigen : $monto_original; $xRec = new cReciboDeOperacion(false, false, $recibo); $xRec->init(); $DRec = $xRec->getDatosInArray(); $persona = ($persona == false or $persona == "") ? DEFAULT_SOCIO : $persona; $documento = $documento == false ? $xRec->getCodigoDeDocumento() : $documento; $afectaCaja = $arrQ[$DRec["afectacion_en_flujo_efvo"]]; $MontoOperacion = $MontoOperacion == 0 ? $DRec["total_operacion"] : $MontoOperacion; $MontoCambio = $MontoCambio == 0 ? $MontoRecibido - $MontoOperacion : $MontoCambio; //Obtener Banco $pais = EACP_CLAVE_DE_PAIS; $eacp = EACP_CLAVE; $sucursal = getSucursal(); if ($banco == FALLBACK_CLAVE_DE_BANCO and $CuentaBancaria > 0) { $xCta = new cCuentaBancaria($CuentaBancaria); $xCta->init(); $banco = $xCta->getClaveDeBanco(); $pais = $xCta->getPaisDeOrigen(); } $xBanco = new cBancos_entidades(); $xBanco->setData($xBanco->query()->initByID($banco)); $pais = $xBanco->pais_de_origen()->v(); //Actualizar Moneda por pais if ($banco != FALLBACK_CLAVE_DE_BANCO) { $moneda2 = mifila("SELECT clave_de_moneda FROM `tesoreria_monedas` WHERE `pais_de_origen` ='{$pais}' LIMIT 0,1 ", "clave_de_moneda"); if ($moneda2 === 0) { } else { $moneda = $moneda2; } } $xTes = new cTesoreria_cajas_movimientos(); $xTes->banco($banco); $xTes->codigo_de_caja($CodigoDeCaja); $xTes->cuenta_bancaria($CuentaBancaria); $xTes->documento($documento); $xTes->documento_descontado($DocumentoDescontado); $xTes->eacp(EACP_CLAVE); $xTes->fecha($fecha); $xTes->hora($hora); $xTes->idtesoreria_cajas_movimientos($xTes->query()->getLastID()); $xTes->idusuario($cajero); $xTes->moneda_de_operacion($moneda); if ($moneda != AML_CLAVE_MONEDA_LOCAL) { } //EVALUAR MONEDA $xTes->monto_del_movimiento($MontoOperacion); $xTes->monto_en_cambio($MontoCambio); $xTes->monto_recibido($MontoRecibido); $xTes->numero_de_cheque($cheque); $xTes->observaciones($Observaciones); $xTes->recibo($recibo); $xTes->sucursal($sucursal); $xTes->tipo_de_exposicion($tipoDeExposicion); $xTes->tipo_de_movimiento($afectaCaja); $xTes->unidades_de_moneda(setNoMenorQueCero($monto_original)); $xTes->persona($persona); $sucess = $xT->getEvalNotNull(array($cajero, $CodigoDeCaja)); if ($sucess == true) { $q = $xTes->query()->insert(); $id = $q->save(); $sucess = $id == false ? false : true; if ($sucess == true) { $this->mMessages .= "OK\tRegistro Agregado exitosamente, relacionado con el Recibo {$recibo}, Operacion {$id} ({$moneda}|{$monto_original}|{$cheque}|{$tipoDeExposicion}|{$transaccion})\r\n"; //Agregar recibo $xRec->setDatosDePago($moneda, $monto_original, $cheque, $tipoDeExposicion, $transaccion); $this->mMessages .= $xRec->getMessages(OUT_TXT); } else { if (MODO_DEBUG == true) { $this->mMessages .= $q->getMessages(OUT_TXT); } } } else { $this->mMessages .= "ERROR\tSe produjo un error al Agregar la Operacion de Tesoreria({$cajero}, {$CodigoDeCaja})\r\n"; } return $sucess; }
if ($sucess == true) { $xCta->setUpdate($arrUpdate); $xCta->init(); } else { $messages .= "WARN\\NO_ACT\tLa Cuenta no se actualizo\r\n"; } $saldo = $xCta->getNuevoSaldo(); if ($sucess == true) { if ($saldo > INVERSION_MONTO_MINIMO) { $recibo_de_reinversion = $xCta->setReinversion($fecha_actual, true); $messages .= "WARN\tLa Inversion se CIERRA\r\n"; } elseif ($saldo >= TOLERANCIA_SALDOS) { $messages .= "ERROR\tSDO_MIN\tEL saldo de la Inversion({$saldo}) es menor a " . INVERSION_MONTO_MINIMO . ", la Inversion no se efectua\r\n"; //LLevar a cuenta Corriente $mCorriente = $xSoc->getCuentaDeCaptacionPrimaria(CAPTACION_TIPO_VISTA); if ($xTyp->getEvalNotNull(array($mCorriente)) == true) { $messages .= "WARN\tSDO_MIN\tSe intenta el Traspaso a cuenta Corriente\r\n"; $messages .= $xCta->setTraspaso($mCorriente, CAPTACION_TIPO_VISTA); } } } else { $messages .= "WARN\tLa Inversion permanece Abierta\r\n"; } $url_recibo_inversion = $xCta->getURLReciboInversion($recibo_de_reinversion); if (MODO_DEBUG == true) { $xFRM->addLog($messages . $xCta->getMessages()); } $xFRM->addAviso($messages); $xCta->init(); $xFRM->addHElem($xCta->getFicha(true, "", true)); $xFRM->addToolbar($xBtn->getBasic("TR.Imprimir constancia_de_inversion", "jsPrintReporto()", "imprimir", "idnim", false));