El procesamiento de los datos se puede realizar a nivel de Base de datos con procedimientos almacenados, Triggers, Funciones y otros; o a nivel de aplicación. Dependiendo de cuán grande sea el volumen de datos a ser manejados y de la interacción que el usuario debe tener, uno u otro puede sobresalir como mejor opción.
El procesamiento de datos que mostraremos como ejemplo es el realizado a nivel Aplicación, para el mismo vamos a adoptar ciertos parámetros de la Base de Datos.
Por otro lado el usuario insertar otros parámetros para así completar el cálculo e insertar el resultado en la base de datos.
Utilizaremos las siguientes macros Scriptcase para facilitar nuestro trabajo:
- SC_LOOKUP https://www.scriptcase.net/docs/es_es/v9/manual/14-macros/01-general-view/#sc_lookup
- SC_EXEC_SQL https://www.scriptcase.net/docs/es_es/v9/manual/14-macros/01-general-view/#sc_exec_sql
En cuanto a la estructura de la base de datos, tenemos dos tablas que se describen a continuación:
La tabla “Parameter” que se encuentra en una base de datos PostgreSQL.
La tabla “Payment” que se encuentra en una base de datos MySQL.
El proceso que haremos es buscar calcular la tasa de interés que el usuario tendrá que pagar teniendo como base la cantidad deseada y la cantidad de parcelas (meses) que desea para desarrollarlo.
Dentro de la tabla “Parameter” tenemos la tasa de interés que el usuario pagará en base a la cantidad de meses que elija en nuestra aplicación.
Ya dentro de nuestro proyecto en Scriptcase creamos las conexiones que vamos a necesitar para consultar la tabla en PostgreSQL (conn_Parameter) y así insertar en la tabla MySQL (conn_Sales).
A continuación creamos una aplicación del tipo control para agregar los campos que deseamos mostrar al usuario y así realizar el proceso que calculará cuánto él deberá pagar y cuánto pagará cada mes incluyendo ya los intereses.
El siguiente paso es crear los campos necesarios para que el usuario añada su nombre, cantidad deseada y cantidad de parcelas. Al poseer estos datos nuestra aplicación realizará una consulta a la tabla Parameter y retornará la tasa de interés a ser aplicada para la cantidad de parcelas seleccionada y el total a ser pagado.
De acuerdo con el paso anterior, la aplicación tendrá 5 (cinco) campos, para (…) pulsamos en Control -> Campos -> “Nuevo Campo”, añadimos la cantidad de campos a ser creados y pulsamos en “Siguiente”.
Insertamos los datos para cada campo
usuario:
Tipo: Texto
Nombre: Usuario
Etiquetas: Usuario
Cantidad:
Tipo: Decimal
Nombre: Amount
Etiquetas: Amount
Cantidad de Acciones (Meses):
Tipo: Select
Nombre: Months
Etiquetas: Months
Intereses Pagos:
Tipo: Decimal
Nombre: Interest
Etiquetas: Interés
Total a devolver:
Tipo: Decimal
Nombre: Total
Etiquetas: Total
Por último, hacemos clic en “Crear” para guardar la configuración de cada campo creado.
El siguiente paso es marcar los campos de Usuario, Cantidad y Meses como se requiere; los campos de tasa de interés y total que se devuelve sólo como de lectura, lo hacemos a partir de la opción ubicada en Control – Editar Campos.
En el campo {Months} debemos mostrar los meses disponibles para que el usuario pueda elegir en cuántos meses desea devolver el valor, por lo que habíamos seleccionado el tipo de campo SELECT.
Para mostrar los datos se debe configurar la sección “Edición de búsqueda” primero indicando en “Seleccione la conexión” la conexión a la base de datos que queremos utilizar para obtener los datos. A continuación, hacemos clic en “Crear Select” y elegimos la tabla en cuestión, el id y el campo a mostrar.
Con eso ya hemos finalizado la parte visual y podemos empezar a trabajar con los procesos.
Obtener la tasa de interés a aplicar:
En la sección Programación -> Métodos PHP hacemos clic en “Nuevo método”, lo indicamos el nombre que queremos dar (en nuestro ejemplo “ObtainParameter”) y haga clic en “Crear”.
Una vez que tenemos la ventana de codificación abierta, para evitar tener que escribir todo el código que necesitamos podemos insertar el código de ejemplo que más se acerca a nuestro objetivo. Como se puede observar en la siguiente imagen, utilizamos el código de “Seleccionar campos de otra tabla” (Selección de campos de otra tabla) que utiliza la macro SC_LOOKUP y realizamos las modificaciones basadas en la misma.
Al código que Scriptcase nos ofrece, modificamos la sentencia SQL que obtendrá los meses y el interés relacionado, además de agregar como filtro el campo {Months} que hace referencia al mes elegido por el usuario en nuestra aplicación.
Los parámetros que la macro SC_LOOKUP recibe son:
Nombre del Dataset que se va a crear (en el ejemplo rsMonth)
La sentencia SQL (en el ejemplo de la sentencia se almacena en la variable $ check_sql).
Conexión a la base de datos que se utilizará (en el ejemplo se requiere conectarnos a Postgres, la conexión debe ser conn_Parameter).
El paso siguiente es cambiar el nombre de las variables y los campos que se van a asignar tan pronto como devuelve los valores de la macro y los almacene dentro de la Fase (rsMonth).
Creamos una variable de sección ([NumofMonths] para almacenar la cantidad de parcelas o el mes elegido, ya que el campo {Months} tiene el id de la tabla.
También asignamos al campo {interest} la tasa de interés que se aplicará de acuerdo con el mes que el usuario eligió.
En el caso de la consulta no devolver valores, vamos a asignar valores por defecto y así prevemos cualquier mal funcionamiento no comtemplado.
Calcular cantidad total con los intereses:
Para ello no es necesario realizar consultas a la base de datos, ya que asignamos los valores anteriormente obtenidos a los campos de nuestra aplicación.
Ya teniendo las dos funciones PHP que nos permitirán realizar los cálculos deseados, nos queda llamarlos cuando el usuario cambie la cantidad y / o la cantidad de meses deseados. Hemos logrado hacer esto utilizando los Eventos Ajax y eligiendo el evento deseado, en nuestro caso el evento es el “onChange” lo que permitirá realizar el cálculo ante cualquier modificación.
Seleccionamos el campo desea {Amount} y el evento onChange, hacemos clic en “Crear Evento” para que nos permita editarlo. Dentro añadimos la llamada a ambas funciones para que realice ambos procesos.
Lo mismo repetimos con el campo {Months} para que actualice los datos cada vez que cambie la cantidad de meses.
El último paso es codificar el evento para insertar los pagos que el usuario deberá realizar teniendo en cuenta los meses y el total de las parcelas con intereses a ser pagados a lo largo de ese período.
Para eso primero calculamos y asignamos la variable si sesión el total que deberá pagar cada mes.
Con un ciclo es necesario recurrir el proceso de inserción tantas veces como los meses que haya seleccionado el usuario.
En la siguiente imagen se puede ver que también tenemos un código de ejemplo para la inserción. Tomando ese código como base, actualizamos los datos del nombre de la tabla y columnas según nuestra estructura. Hacemos todo esto dentro de un bucle if que nos permitirá controlar que no se trate de la última parcela.
Los parámetros que reciben la macro SC_EXEC_SQL utilizada para la inserción son:
Sentencia SQL (en el ejemplo la sentencia se almacena en la variable $ insert_sql).
Conexión a la base de datos que se utilizará (en el ejemplo de la tabla Payment está en MySQL, por lo que la conexión debe ser conn_Sales).
Es importante mencionar que esta macro nos permite ejecutar cualquier instrucción SQL en el servidor de base de datos, que es muy útil incluso para ejecutar procedimientos almacenados o tareas de mantenimiento.
Para la última cuota daremos un tratamiento especial debido a que el redondeo de la división algunas veces puede no ser exacto, lo que ocasionaría que el total a ser pagado a la suma de cuotas no sean iguales.
Para lograr que la suma de las cuotas y el total a ser pagados sean iguales aplicamos la última cuota a la diferencia entre el total a ser pagado y la suma de cuota previamente insertadas.
Después de terminar de escribir el código, si ya lo ejecuta, veremos una pantalla blanca solicitando que asignamos un valor a las variables utilizadas en la aplicación.
Dado el hecho de que nuestras variables son para uso interno y no esperamos recibirlas, debemos cambiar el tipo de variable a “Salida”. Con eso evitaremos que la aplicación de lra aplicación vuelva a ser solicitada.
Ahora sí, al ejecutar nos debe ser mostrado una aplicación similar a la de la siguiente imagen donde nos solicitará agregar Usuario, Cantidad y seleccionar la cantidad de meses.
Al hacer clic en el botón de confirmación el proceso deberá insertar dentro de la tabla Payment una línea por cata cuota que el usuario debe pagar, así como vemos en la siguiente imagen:
Visite nuestro blog!
También podría gustarte…