O processamento de dados pode ser realizado a nível de Base de Dados com procedimentos armazenados, Triggers, Funções e outros; ou a nível Aplicação. Dependendo do quão grande seja o volume de dados a ser manuseado e da interação que o usuário deve ter, uma ou outra pode se sobressair como melhor opção.
O processamento de dados que mostraremos como exemplo é o realizado a nível Aplicação, para o mesmo vamos adotar certos parâmetros da Base de Dados.
Por outro lado o usuário irá inserir outros parâmetros para assim completar o cálculo e inserir o resultado na Base de Dados.
Utilizaremos as seguintes Macros Scriptcase para facilitar nosso trabalho:
- SC_LOOKUP http://www.scriptcase.net/docs/en_us/v81/scriptcase-macros/scriptcase-macros#sc_lookup
- SC_EXEC_SQL http://www.scriptcase.net/docs/en_us/v81/scriptcase-macros/scriptcase-macros#sc_exec_sql
Quanto a estrutura da Base de Dados, temos duas tabelas que são descritas abaixo:
Quanto a estrutura da Base de Dados, temos duas tabelas que são descritas abaixo:
A tabela “Parameter” que se encontra em uma Base de Dados PostgreSQL.

A tabela “Payment” que se encontra numa Base de Dados MySQL

O processo que faremos busca calcular a taxa de juros que o usuário terá que pagar tendo como base a quantidade desejada e a quantidade de parcelas (meses) que deseja para desenvolvê-lo.
Dentro da tabela “Parameter” temos a taxa de juros que o usuário pagará com base na quantidade de meses que escolha na nossa aplicação.

Já dentro do nosso projeto no Scriptcase criamos as conexões que vamos precisar para consultar a tabela em PostgreSQL (conn_Parameter) e assim inserir na tabela MySQL (conn_Sales).

Em seguida criamos uma aplicação do tipo controle de forma a adicionar os campo que desejamos mostrar ao usuário e assim realizar o processo que irá calcular quanto ele deverá pagar e quanto pagará cada mês incluindo já os juros.

O passo seguinte é criar os campos necessários para que o usuário adicione seu nome, quantidade desejada e quantidade de parcelas. Ao possuir esses dados nossa aplicação realizará uma consulta a tabela Parameter e retornará a taxa de juros a ser aplicada para a quantidade de parcelas selecionada e o total a ser pago.
De acordo com o passo anterior, a aplicação terá 5 (cinco) campos, para (…) clicamos em Control -> Campos -> “Novo Campo”, adicionamos a quantidade de campos a ser criados e clicamos em “Seguinte”.

Inserimos os dados para cada campo
Usuário:
- Tipo: Texto
- Nome: User
- Etiqueta: User
Quantidade:
- Tipo: Decimal
- Nome: Amount
- Etiqueta: Amount
Quantidade de Ações (Meses):
- Tipo: Select
- Nome: Months
- Etiqueta: Months
Juros Pagos:
- Tipo: Decimal
- Nome: Interest
- Etiqueta: Interest
Total a devolver:
- Tipo: Decimal
- Nome: Total
- Etiqueta: Total
Por último clicamos em “Criar” para guardar as configurações de cada campo criado.

O passo seguinte é marcar os campos de Usuário, Quantidade e Meses como requeridos; os campos de taxa de juros e total a ser devolvido apenas como de leitura, fazemos isso a partir da opção localizada em Control – Editar Campos.

No campo {Months} devemos mostrar os meses disponíveis para que o usuário possa escolher em quantos meses deseja devolver o valor, por isso havíamos selecionado o tipo de campo SELECT.

De forma a mostrar os dados deve-se configurar a seção “Edição de Lookup” primeiramente indicando em “Escolha a conexão” a conexão a base de dados que queremos utilizar para obter os dados. Em seguida clicamos em “Criar Select” e escolhemos a tabela em questão, o id e o campo a mostrar.

Com isso já temos finalizada a parte visual e podemos começar a trabalhar com os processos.
Obter taxa de juros a aplicar:
Na seção Programação -> Métodos PHP clicamos em “Novo Método”, o indicamos o nome que queremos dá (no nosso exemplo “ObtainParameter”) e clicar em “Criar”.

Uma vez que temos a janela de codificação aberta, para evitar ter que escrever todo o código que necessitamos podemos inserir o código de exemplo que mais se aproxima a nosso objetivo. Como podem observar na imagem seguinte, utilizamos o código de “Selecting fields from another table” (Selecionando campos de outra tabela) que utiliza a macro SC_LOOKUP e realizamos as modificações com base na mesma.

Ao código que Scriptcase nos oferece, modificamos a sentença SQL que irá obter os meses e o juros relacionado, além de adicionar como filtro o campo {Months} que faz referência ao mês escolhido pelo usuário em nossa aplicação.
Os parâmetros que a macro SC_LOOKUP recebe são:
- Nome do Dataset a ser criado (no exemplo rsMonth)
- Setença SQL (no exemplo a sentença está armazenada na variável $check_sql).
- Conexão a Base de Dados a ser utilizada (no exemplo requerimos conectarnos ao Postgres, a conexão deve ser conn_Parameter).
O passo seguinte é renomear as variáveis e campos a ser atribuídos assim que retorne os valores da macro e os armazene dentro do Dataset (rsMonth).
Criamos uma variável de seção ([NumofMonths]) de forma a armazenar a quantidade de parcelas ou mês escolhido, já que o campo {Months} tem o id da tabela.
Também atribuímos ao campo {interest} a taxa de juros que se aplicará de acordo com o mês que o usuário escolheu.
No caso da consultar não retornar valores, vamos atribuir valores por defeito e assim prevemos qualquer mal funcionamento não comtemplado.

Calcular quantidade total com os juros:
Para isso não é necessário realizar consultas a Base de Dados, já que atribuímos os valores anteriormente obtidos aos campos de nossa aplicação.

Já tendo as duas funções PHP que nos permitirão realizar os cálculos desejados, nos resta chamá-los quando o usuário mude a quantidade e/o quantidade de meses desejados. Conseguimos fazer isso utilizando os Eventos Ajax e escolhendo o evento desejado, no nosso caso o evento é o “onChange” o que permitirá realizar o cálculo ante qualquer modificação.

Selecionamos o campo deseja {Amount} e o evento onChange, clicamos em “Criar Evento” para que nos permita edita-lo. Dentro adicionamos a chamada a ambas funções para que realize ambos processos.
O mesmo repetimos com o campo {Months} para que atualize os dados cada vez que mude a quantidade de meses.

O último passo é codificar o evento de maneira a inserir os pagamentos que o usuário deverá realizar tendo em conta os meses e o total das parcelas com juros a ser pagos ao longo desse período.
Para isso primeiro calculamos e atribuímos a variável se sessão o total que deverá pagar cada mês.
Com um ciclo for deveremos recorrer o processo de inserção tantas vezes como os meses que tenha selecionado o usuário.
Na imagem seguinte se pode ver que também temos um código de exemplo para a inserção. Tomando esse código como base, atualizamos os dados do nome da tabela e colunas segundo nossa estrutura. Fazemos tudo isso dentro de um bucle if que nos permitirá controlar que não se trate da última parcela.
Os parâmetros que recebem a macro SC_EXEC_SQL utilizada para a inserção são:
- Sentença SQL (no exemplo a sentença está armazenada na variável $insert_sql).
- Conexão a Base de Dados a ser utilizada (no exemplo a tabela Payment está no MySQL, assim a conexão deve ser conn_Sales).
Vale mencionar que esta macro nos permite executar qualquer instrução SQL no Servidor de Base de Dados, o que é muito útil inclusive para executar procedimentos armazenados ou tarefas de manutenção.

Para a última cota daremos um tratamento especial devido a que o arredondamento da divisão algumas vezes pode não ser exato, o que ocasionaria que o total a ser pago a soma de cotas não sejam iguais.
De maneira a conseguir que a soma das cotas e o total a ser pago sejam iguais aplicamos a última cota a diferença entre o total a ser pago e a soma de cota previamente inseridas.

Logo após terminar de escrever o código, se já executamos, veremos uma tela branca solicitando que atribuímos um valor as variáveis utilizadas na aplicação.

Dado o fato de que nossas variáveis são para uso internet e não esperamos recebê-las, devemos mudar o tipo de variável a “Saída”. Com isso evitaremos que a execução da aplicação volte a ser solicitada.

Agora sim, ao executar nos deve ser mostrado uma aplicação similar a da imagem seguinte onde nos solicitará adicionar Usuário, Quantidade e selecionar a quantidade de meses.

Ao clicar no botão de confirmação o processo deverá inserir dentro da tabela Payment uma linha por cata cota que o usuário deve pagar, assim como vemos na imagem seguinte:

Visite nosso blog e veja mais conteúdos!
Você pode gostar também…