RevisĂŁo das Classes e Camadas Nomenclaturas e FunĂ§Ăµes Principais
Overview
Classes e camadas são conceitos fundamentais em computação que contribuem para a organização, reutilização, modularidade, manutenabilidade e escalabilidade de software.
ApresentaĂ§ĂŁo
As classes representam unidades de organização do código fonte, cada uma com uma responsabilidade específica no funcionamento do sistema. Por outro lado, as camadas representam agrupamentos lógicos de classes com funcionalidades semelhantes ou relacionadas, contribuindo para uma arquitetura robusta e escalável.
Ao revisar cada classe e camada, entenderemos melhor a estrutura do sistema, sua organização interna e as responsabilidades atribuídas a cada componente. Isso nos permitirá ter uma visão mais clara do funcionamento do sistema como um todo e identificar possíveis áreas de melhoria ou otimização.
Vamos agora analisar detalhadamente cada uma das classes e camadas, explorando suas funções principais e contribuições para o sistema.
Nomeclatura e funĂ§Ăµes principais
Nomeclatura: frmLogin
Funcões Principais
frmLogin_Load: Este método é acionado quando o formulário de login é carregado.
Ele configura o caractere de senha para o campo de senha como um caractere especial, geralmente usado para ocultar a senha.
Além disso, verifica se há algum usuário com função de administrador no banco de dados. Se não houver, abre o formulário de registro de usuário.
2. btnEntrar_Click: Este método é acionado quando o botão de login é clicado. Ele verifica se os campos de usuário e senha estão preenchidos e,
em seguida, executa uma consulta SQL para verificar se as credenciais correspondem a um usuário válido no banco de dados.
Se as credenciais forem válidas, exibe uma mensagem de boas-vindas e direciona o usuário para o formulário principal.
Se não forem válidas, exibe uma mensagem de erro.
3. ToolStripButton2_Click: Este método é acionado quando um botão de fechar é clicado. Ele descarta o formulário de login.
4. btnCancelar_Click: Este método é acionado quando o botão de cancelar é clicado. Ele fecha a aplicação.
5. txtPass_KeyDown: Este método é acionado quando uma tecla é pressionada no campo de senha.
Se a tecla pressionada for "Enter", chama o método `btnEntrar_Click`. Se for "Escape", descarta o formulário de login.
Métodos e Rotinas:
1. Connection: Este método estabelece a conexão com o banco de dados MySQL.
2. LogHistory: Este método registra a entrada do usuário no sistema, inserindo um registro na tabela `tbllog`.
3. Dashboard: Este método atualiza o painel principal do sistema com informações relevantes, como total de vendas, descontos, número de produtos e usuários.
4. CheckStatus: Este método verifica se o sistema está aberto para operações de ponto de venda.
5. CountRecords: Este método conta o número de registros retornados por uma consulta SQL.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmCancelOrder
Funções Principais:
1. Label2_Click: Este método é acionado quando o rótulo "Label2" é clicado. Ele descarta o formulário de cancelamento de ordem.
2. LoadRecords: Este método carrega os registros das ordens concluídas para exibição em um `MetroGrid`.
Ele executa uma consulta SQL para selecionar todas as ordens com status "Concluído" entre duas datas específicas.
Em seguida, adiciona cada registro ao `MetroGrid` para exibição.
3. Timer1_Tick: Este método é acionado quando o temporizador é ativado. Ele atualiza o rótulo "lblDate" com a data e hora atuais.
Métodos e Rotinas:
1. frmCancelOrder_Load: Este método é acionado quando o formulário de cancelamento de ordem é carregado.
No momento, está vazio, sem funcionalidade.
2. MetroGrid1_CellContentClick: Este método é acionado quando o conteúdo de uma célula no `MetroGrid1` é clicado.
Ele verifica se o conteúdo da célula clicada é o botão "Cancel Order" e, em seguida, abre o formulário `frmAdminPassword`
para confirmar o cancelamento da ordem. Ele também extrai o ID, número da transação e valor da ordem da linha clicada para uso posterior.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmCategory
Funcções Principais:
Label2_Click: Descarta o formulário de categoria quando o rótulo "Label2" é clicado.
Button1_Click : Adiciona uma nova categoria ao banco de dados quando o botão "Button1" é clicado.
Exibe uma caixa de mensagem de confirmação antes de adicionar a categoria.
3. Button1_KeyDown : Permite que o usuário pressione a tecla Enter para adicionar uma nova categoria ou a tecla Escape para descartar o formulário.
4. frmCategory_Load : Carrega todas as categorias existentes do banco de dados quando o formulário de categoria é carregado.
5. LoadRecords : Carrega todas as categorias existentes do banco de dados para exibição em um `MetroGrid`.
6. Clear : Limpa o campo de texto da categoria e habilita o botão "Button1" para adicionar uma nova categoria.
7. btnCancel_Click : Chama o método `Clear` para limpar o formulário de categoria quando o botão "Cancelar" é clicado.
8. MetroGrid1_CellContentClick : Manipula os cliques nas células do `MetroGrid1`. Permite a edição e exclusão das categorias existentes.
btnUpdate_Click : Atualiza uma categoria existente no banco de dados quando o botão "Atualizar" é clicado.
Exibe uma caixa de mensagem de confirmação antes de atualizar a categoria.
Essas funções permitem adicionar, editar, excluir e visualizar categorias no sistema.
Cada método desempenha um papel específico na interação do usuário com o formulário de categoria.
Nomeclatura e funĂ§Ăµes principais
Nomeclatur: frmDiscountComputation
Funções Principais:
1. Label2_Click : Descarta o formulário de cálculo de desconto quando o rótulo "Label2" é clicado.
2. txtDining_KeyPress : Controla o comportamento da entrada de dados no campo de texto `txtDining`, permitindo apenas números e o backspace.
3. btnStart_Click : Inicia o cálculo do desconto ao carregar o formulário.
LoadDiscount : Calcula o desconto com base no valor fornecido pelo usuário no campo `txtDining` e
atualiza os valores nos campos `txtTotal`, `frmSettle.txtTotal`, `frmSettle.txtDiscount`, `frmPos.txtTotal` e `frmPos.txtDiscount`.
5. frmDiscountComputation_Load : Carrega os descontos disponíveis do banco de dados ao iniciar o formulário.
6. LoadDiscount1 : Carrega os descontos disponíveis do banco de dados e os exibe na ComboBox `ComboBox1`.
7. ComboBox1_SelectedIndexChanged : Define o valor do campo `txtDining` com base no item selecionado na ComboBox `ComboBox1`.
8. txtDining_KeyDown : Permite que o usuário pressione a tecla Enter para calcular o desconto ou a tecla Escape para descartar o formulário.
Essas funções permitem ao usuário calcular descontos com base em valores predefinidos ou personalizados e atualizar os
valores correspondentes nos formulários relacionados. Cada método desempenha um papel específico na interação do usuário com o formulário
de cálculo de desconto.
Nomeclatura e funĂ§Ăµes principais
Nomeclatura:frmLogHistory
Funções Principais:
1. LinkLabel1_LinkClicked : Descarta o formulário de histórico de log quando o link é clicado.
2. LoadRecords : Carrega os registros de log entre duas datas especificadas nos controles `dt1` e `dt2` e
exibe-os no `MetroGrid1`. Os registros são recuperados da tabela `tbllog` do banco de dados e
incluem informações como nome de usuário, data, hora de entrada, hora de saída e status.
3. dt1_ValueChanged : Atualiza os registros de log quando o valor da data no controle `dt1` é alterado.
4. dt2_ValueChanged : Atualiza os registros de log quando o valor da data no controle `dt2` é alterado.
Essas funções permitem ao usuário visualizar os registros de log armazenados no banco de dados entre duas datas específicas.
Os registros são exibidos em uma grade e atualizados conforme as datas são modificadas nos controles de data.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmPos
Funcções Principais:
Configuração de Impressão: O código define um documento de impressão (`PrintDocument`) e
um diálogo de visualização de impressão (`PrintPreviewDialog`). Ele configura o tamanho do papel
e os eventos para o início da impressão e a impressão real.
2. Carregamento de Categorias e Produtos: Existem métodos para carregar as categorias de produtos e os produtos associados a essas categorias.
Os produtos são exibidos em um `FlowLayoutPanel` para seleção fácil.
3. Gerenciamento do Carrinho: Os produtos selecionados são adicionados a um carrinho de compras.
O usuário pode aumentar ou diminuir a quantidade de itens no carrinho e remover itens individualmente.
As informações do carrinho são exibidas em um `DataGridView`.
4. Pagamento e Faturamento: Quando o usuário decide pagar, ele pode inserir o valor em dinheiro e calcular automaticamente o troco.
Após o pagamento, uma fatura é gerada e pode ser impressa.
5. Outras Funcionalidades: Existem também outras funcionalidades, como criação de novos pedidos, gerenciamento de seções, cancelamento de pedidos,
visualização de detalhes de vendas, alteração de senha, entre outros.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmCategory
Funcções Principais:
O frmCategory permite aos usuários adicionar novos produtos (`btnSave_Click`), atualizar produtos existentes (`btnUpdate_Click`),
cancelar operações (`btnCancel_Click`) e selecionar uma imagem para o produto (`Button4_Click`).
3. O método `LoadCategory` popula a caixa de combinação (`cboCategory`) com categorias obtidas da tabela do banco de dados `tblcategory`.
4. A validação de entrada é realizada para garantir que campos obrigatórios estejam preenchidos antes de salvar ou atualizar um produto.
Se algum campo obrigatório estiver vazio, uma caixa de mensagem é exibida indicando o erro.
5. A validação numérica é implementada para a caixa de texto `txtPrice` para permitir apenas valores numéricos e um ponto decimal.
6. Ao salvar ou atualizar um produto, a imagem selecionada pelo usuário é convertida em uma matriz de bytes e
armazenada no banco de dados junto com outros detalhes do produto.
7. O método `Clear` redefine os controles do formulário para seu estado inicial após salvar ou atualizar um produto.
8. Alguns manipuladores de eventos (`KeyPress`, `SelectedIndexChanged`, `Click`, etc.) são definidos para lidar com
interações do usuário com os controles do formulário.
9. O tratamento de erros é implementado usando blocos `Try-Catch` para lidar com quaisquer exceções que possam ocorrer
durante operações de banco de dados ou outras partes do código.
10. Por fim, existem alguns manipuladores de eventos para carregamento do formulário e outros controles, embora atualmente estejam vazios.
No geral, o código fornece funcionalidades básicas para gerenciar produtos em um banco de dados, incluindo adição de novos produtos,
atualização de produtos existentes e exibição de informações relevantes ao usuário..
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmProductList
Funcções Principais:
1. A classe `frmProductList` contém funcionalidades para carregar os registros de produtos, exibir a lista no `DataGridView`, editar e excluir produtos.
2. No método `frmProductList_Load`, o formulário é configurado para aceitar teclas de atalho e, em seguida,
os registros de produtos são carregados chamando o método `LoadRecords`.
3. O método `LoadRecords` popula o `DataGridView` com os registros de produtos recuperados do banco de dados.
Ele limpa as linhas existentes no `DataGridView`, consulta o banco de dados para obter os registros de produtos e
adiciona cada registro como uma nova linha no `DataGridView`.
4. Quando o usuário clica no botão "Adicionar Novo Produto" (`ToolStripButton1_Click`), o formulário de produto é exibido em modo de diálogo,
permitindo ao usuário adicionar um novo produto. Após adicionar o produto, a lista é recarregada para exibir o novo registro.
5. Quando o usuário clica no botão "Fechar" (`ToolStripButton2_Click`), o formulário é fechado.
6. Quando o usuário pressiona a tecla "Esc", o formulário também é fechado (`frmProductList_KeyDown`).
7. Quando o usuário clica nos botões "Editar" ou "Excluir" em uma linha específica do `DataGridView` (`DataGridView1_CellContentClick`),
as operações correspondentes são realizadas. Para editar um produto, os detalhes do produto selecionado
são carregados no formulário de produto para edição. Para excluir um produto, uma confirmação é solicitada antes de excluir o registro do banco de dados.
O código faz uso de consultas SQL para interagir com o banco de dados MySQL,
manipulando operações CRUD (Create, Read, Update, Delete) nos registros de produtos. Além disso, ele inclui manipulação de eventos
para responder às interações do usuário com os controles do formulário.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmQty
Funcções Principais:
1. A classe `frmQty` possui variáveis â€‹â€‹para armazenar o ID e o preço do produto, bem como métodos e eventos para interagir com o usuário e o banco de dados.
2. No método `frmQty_Load`, o formulário é configurado para aceitar teclas de atalho.
3. No método `frmQty_KeyDown`, são tratadas as teclas pressionadas pelo usuário.
Se o usuário pressionar a tecla Enter, o código executa a lógica para adicionar o produto ao carrinho.
4. O método `DuplicateEntry` verifica se já existe uma entrada no carrinho para o produto atual.
Se uma entrada duplicada for encontrada, o método retorna verdadeiro; caso contrário, retorna falso.
5. O método `AddToCart` é usado para definir o ID e o preço do produto que será adicionado ao carrinho.
6. Os eventos `TextChanged` e `KeyPress` dos controles `txtQty` são usados para validar a entrada do usuário.
Apenas números são permitidos, juntamente com o caractere de ponto decimal e a tecla Enter.
7. Dependendo se a entrada é válida e se a tecla Enter é pressionada, o código decide se deve
inserir um novo item no carrinho ou atualizar a quantidade de um item existente.
8. Após adicionar ou atualizar o item no carrinho, o método `LoadCart` do formulário principal (`frmPos`) é chamado para atualizar a exibição do carrinho.
Este código demonstra um exemplo de integração de um formulário de POS com um banco de dados MySQL,
usando consultas SQL para inserir novos registros ou atualizar registros existentes no banco de dados.
Ele também ilustra a interação com o usuário para coletar e validar dados antes de executar operações no banco de dados.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmSalesDetail
Funcções Principais:
2. O método `LoadSales` é usado para carregar as vendas com base na data selecionada.
Ele consulta o banco de dados MySQL para obter os detalhes das vendas, como ID do produto, descrição, preço, quantidade e total.
3. Os métodos `PD_BeginPrint` e `PD_PrintPage` são usados para lidar com o processo de impressão dos detalhes da venda.
Eles definem a configuração de impressão, incluindo o tamanho da página, as fontes utilizadas e a disposição dos elementos na página.
4. O método `GetData` é usado para executar consultas SQL simples e retornar um valor único do banco de dados.
5. O evento `Button2_Click` é acionado quando o usuário clica no botão "Pesquisar".
Ele filtra as vendas com base no número da fatura inserido pelo usuário e exibe os resultados no `DataGridView`.
6. O evento `btnFaturaReimprime_Click` é acionado quando o usuário clica no botão "Reimprimir Fatura".
Ele chama o método `ImprimirFatura` para iniciar o processo de impressão dos detalhes da fatura.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmTable
Funcções Principais:
O método `LoadTable` é usado para carregar as mesas disponíveis a partir do banco de dados MySQL.
Ele consulta a view `vwtable` para obter os detalhes das mesas, como número da mesa e total da conta associada.
2. Para cada mesa recuperada, um botão é criado dinamicamente e adicionado ao `FlowLayoutPanel1`.
A cor de fundo do botão é definida com base no valor da conta associada à mesa. Se a conta for maior que 1, o botão terá uma cor vermelha (`Crimson`),
caso contrário, terá uma cor azul (`Color.FromArgb(55, 176, 213)`).
3. O método `GetTable_Click` é chamado quando um dos botões de mesa é clicado.
Ele obtém o número da mesa associado ao botão clicado e o utiliza para atualizar o número da mesa no
formulário `frmPos` (presumivelmente o formulário principal do ponto de venda). Em seguida, chama o método `GetOrder`
no formulário `frmPos` para carregar os pedidos associados à mesa selecionada.
4. O evento `ToolStripButton2_Click` é acionado quando o usuário clica no botão "Fechar".
Ele fecha o formulário atual (`frmSelectTable`).
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmSettle
Funcções Principais:
1. O método `ToolStripButton2_Click` é acionado quando o usuário clica no botão "Fechar". Ele fecha o formulário atual (`frmSettle`).
2. O evento `txtCash_TextChanged` é acionado sempre que o texto no campo `txtCash` é alterado.
Ele calcula o troco com base no valor inserido pelo usuário e exibe o resultado no campo `txtChange`.
3. O evento `txtCash_KeyPress` é acionado quando uma tecla é pressionada no campo `txtCash`.
Ele permite apenas números, o ponto decimal, a tecla Backspace e a tecla Enter. Quando a tecla Enter é pressionada,
ele chama o método `btnAccept_Click`, que simula o clique no botão "Aceitar".
4. O método `btnAccept_Click` é acionado quando o usuário clica no botão "Aceitar".
Ele verifica se o valor inserido no campo `txtCash` é suficiente para cobrir o total da compra.
Se for suficiente, exibe uma mensagem de confirmação e salva o pagamento no banco de dados chamando o método `SavePayment`.
Caso contrário, exibe uma mensagem informando que o valor inserido é insuficiente.
5. O método `SavePayment` é responsável por salvar o pagamento no banco de dados.
Ele insere um registro na tabela `tblsales` com os detalhes do pagamento,
incluindo o número da transação, o total da compra, a data e a hora do pagamento, e o nome do caixa que realizou a transação.
Em seguida, atualiza o status dos itens do carrinho (`cart`) para 'completed', indicando que foram pagos. Após salvar os dados,
exibe uma mensagem informando que o pagamento foi confirmado.
6. Os eventos `frmSettle_Load` e `frmSettle_KeyDown` são acionados quando o formulário é carregado e uma tecla é pressionada, respectivamente.
Eles definem a propriedade `KeyPreview` do formulário como `True`, permitindo que o formulário capture eventos de teclado antes dos controles individuais.
7. Os eventos `LinkLabel1_LinkClicked` e `LinkLabel2_LinkClicked` são acionados quando o usuário clica nos links "Desconto"
e "Limpar Desconto", respectivamente. O primeiro link abre o formulário `frmDiscountComputation` para calcular um desconto,
enquanto o segundo link limpa o desconto e restaura o total da compra ao valor original.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmStart
Funcções Principais:
1. O método `ToolStripButton2_Click` é acionado quando o usuário clica no botão "Fechar". Ele fecha o formulário atual (`frmStart`).
2. O evento `txtInnitial_KeyPress` é acionado sempre que uma tecla é pressionada no campo `txtInnitial`.
Ele permite apenas números, o ponto decimal e a tecla Backspace.
3. O método `btnInnitial_Click` é acionado quando o usuário clica no botão "Confirmar".
Ele verifica se o campo `txtInnitial` está vazio. Se não estiver vazio, insere um registro na tabela `tblstart` no banco de dados,
registrando o valor inicial do caixa e a data atual. Em seguida, atualiza o estado dos botões no formulário `frmPos`
com base no status atual do caixa. Por fim, fecha o formulário atual (`frmStart`).
4. O evento `txtInnitial_KeyDown` é acionado quando uma tecla é pressionada no campo `txtInnitial`.
Se a tecla pressionada for a tecla Enter, ele chama o método `btnInnitial_Click` para processar o valor inserido.
Se a tecla for a tecla Escape, ele fecha o formulário atual (`frmStart`).
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmTable
Funcções Principais:
1. O método `ToolStripButton2_Click` é acionado quando o usuário clica no botão "Fechar". Ele fecha o formulário atual (`frmTable`).
2. O método `btnSave_Click` é acionado quando o usuário clica no botão "Salvar". Ele verifica se o campo `txtTable` não está vazio e,
em seguida, insere um novo registro na tabela `tbltable` do banco de dados, que armazena o número da mesa. Após a inserção bem-sucedida,
limpa o campo `txtTable` e recarrega os registros da tabela.
3. O método `LoadRecord` é usado para carregar os registros existentes da tabela `tbltable` no `DataGridView`.
4. O evento `DataGridView1_CellContentClick` é acionado quando o usuário clica em uma célula do `DataGridView`.
Se o usuário clicar no botão de edição (`colEdit`), ele permite ao usuário editar o número da mesa.
Se o usuário clicar no botão de exclusão (`colDelete`), ele permite ao usuário excluir o registro correspondente da tabela `tbltable`.
5. O método `btnCancel_Click` é acionado quando o usuário clica no botão "Cancelar". Ele limpa o campo `txtTable` e redefine o estado dos botões.
6. O método `btnUpdate_Click` é acionado quando o usuário clica no botão "Atualizar". Ele verifica se o campo `txtTable` não está vazio e, em seguida,
atualiza o registro correspondente na tabela `tbltable` com o novo número da mesa. Após a atualização bem-sucedida, limpa o campo `txtTable` e
recarrega os registros da tabela.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmUserRegister
Funcções Principais:
1. Método Label2_Click: Este método é acionado quando o usuário clica no `Label2`, que parece ser um botão de fechar. Ele fecha o formulário atual (`frmUserRegistration`).
2. Método Clear: Este método é usado para limpar todos os campos de entrada do formulário.
Método frmUserRegistration_Load: Este método é acionado quando o formulário é carregado.
Ele configura o caractere de senha para os campos de senha (`txtPass` e `txtConfirm`) para que
os caracteres inseridos sejam exibidos como um caractere de ponto preto.
Método btnSave_Click_1: Este método é acionado quando o usuário clica no botão "Salvar".
Ele verifica se todos os campos necessários estão preenchidos e se as senhas coincidem. Em seguida,
insere os dados do novo usuário na tabela `tbluser` do banco de dados.
Método MetroGrid1_CellContentClick: Este método é acionado quando o usuário interage com as células da grade de dados (`MetroGrid1`).
Ele manipula a lógica para alterar o status de um usuário (ativo/inativo) ou excluir permanentemente um usuário.
Método LinkLabel1_LinkClicked: Este método é acionado quando o usuário clica no `LinkLabel1`.
Ele abre o formulário `frmChangePassword` para permitir que o usuário altere sua senha.
Outros métodos: Existem vários outros métodos para
limpar campos individuais (`btnLimpar_Click`, `Button3_Click`, `Button4_Click`, `Button5_Click`) e
o botão "Cancelar" (`btnCancel_Click_1`) para limpar todos os campos.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmAdminPassword
Funcções Principais:
Método frmAdminPassword_Load: Este método é acionado quando o formulário é carregado.
Ele configura o caractere de senha para o campo de senha (`txtPass`) para que os caracteres inseridos sejam exibidos
como um caractere de ponto preto. Além disso, ele habilita a detecção de tecla pressionada para o formulário.
Método frmAdminPassword_KeyDown: Este método é acionado quando uma tecla é pressionada enquanto o formulário tem o foco.
Ele verifica se a tecla pressionada é a tecla Esc (para fechar o formulário) ou a tecla Enter (para validar a senha).
Método validatePassword: Este método valida a senha inserida pelo usuário comparando-a com a senha armazenada no banco de dados
para o usuário com função de "Administrador". Se a senha estiver correta, ele chama o método `CancelOrder` para cancelar um pedido específico.
Caso contrário, exibe uma mensagem informando que a senha é inválida.
Método CancelOrder: Este método é chamado quando a senha de administrador é validada com sucesso.
Ele cancela um pedido específico no banco de dados, atualizando o status do pedido para "Cancelado" na tabela `cart`.
Além disso, ele atualiza o total da venda na tabela `tblsales`, subtraindo o valor do pedido cancelado.
Em seguida, exibe uma mensagem informando que o registro foi cancelado com sucesso e fecha o formulário.
Método Label2_Click: Este método é acionado quando o usuário clica no `Label2`, que parece ser um botão de fechar.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmAuditTrail
Funcções Principais:
1. Método LinkLabel1_LinkClicked: Este método é acionado quando o link é clicado. Ele simplesmente fecha o formulário atual (`frmAuditTrail`).
Método LoadRecords: Este método é responsável por carregar os registros de auditoria entre as datas selecionadas nos controles
DateTimePicker (`dt1` e `dt2`). Ele limpa as linhas existentes no `MetroGrid1`, abre a conexão com o banco de dados e executa uma consulta SQL
para recuperar os registros de auditoria no intervalo de datas especificado. Os registros são adicionados ao `MetroGrid1` linha por linha. Finalmente,
o método atualiza o texto do rótulo `lblCount` para exibir o número de registros recuperados.
Método dt1_ValueChanged: Este método é acionado quando o valor do controle DateTimePicker `dt1` é alterado.
Ele chama o método `LoadRecords` para recarregar os registros com base nas novas datas selecionadas.
Método dt2_ValueChanged: Este método é acionado quando o valor do controle DateTimePicker `dt2` é alterado.
Ele também chama o método `LoadRecords` para recarregar os registros com base nas novas datas selecionadas.
Em resumo, este formulário permite ao usuário selecionar um intervalo de datas e exibir os registros de auditoria que ocorreram dentro desse intervalo.
Cada registro é exibido com informações como ID, usuário, resumo, data e hora.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmCancelOrderList
Funcções Principais:
1. Variáveis `sdate1` e `sdate2`: Essas variáveis são usadas para armazenar as datas selecionadas nos controles DateTimePicker `dt1` e `dt2`, respectivamente.
Método `LoadRecords`: Este método é responsável por carregar os registros de pedidos cancelados dentro do intervalo de datas especificado.
Ele limpa as linhas existentes no `MetroGrid1`, abre a conexão com o banco de dados e executa uma consulta SQL na exibição `vwcart`.
Esta exibição parece ser uma visualização que combina informações de várias tabelas relacionadas. Os resultados da consulta são então adicionados
ao `MetroGrid1` linha por linha, exibindo informações como número da transação, descrição do item, preço, quantidade, total, número da mesa, usuário e data.
Finalmente, o método fecha o leitor de dados e a conexão com o banco de dados.
Evento `PictureBox1_Click`: Este evento é acionado quando o usuário clica na imagem representando um botão de fechar.
Ele simplesmente fecha o formulário atual (`frmCancelOrderList`).
Eventos `dt1_ValueChanged` e `dt2_ValueChanged`: Esses eventos são acionados quando o valor dos controles DateTimePicker `dt1` e `dt2` é alterado,
respectivamente. Ambos os eventos chamam o método `LoadRecords` para recarregar os registros com base nas novas datas selecionadas.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmChangePassword
Funcções Principais:
1. Método `clear`: Este método é usado para limpar os campos de texto `txtNew` e `txtConfirmPass` quando chamado.
2. Evento `btnSave_Click`: Este evento é acionado quando o usuário clica no botão "Salvar". Ele executa a lógica para alterar a senha do usuário.
Primeiro, verifica se os campos `txtNew` e `txtConfirmPass` não estão vazios.
Em seguida, verifica se o texto em `txtNew` é igual ao texto em `txtConfirmPass`, ou seja, se a nova senha e a confirmação da nova senha correspondem.
Se as condições forem atendidas, uma caixa de mensagem é exibida perguntando se o usuário tem certeza de que deseja salvar as alterações.
Se o usuário confirmar, a senha no banco de dados é atualizada para a nova senha fornecida. Em seguida, uma mensagem de aviso é exibida informando que
a senha foi atualizada com sucesso e os campos de texto são limpos usando o método `clear`.
3. Evento `PictureBox1_Click`: Este evento é acionado quando o usuário clica na imagem representando um botão de fechar.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmDiscount
Funcções Principais:
1. Método `LoadRecords`: Este método é responsável por carregar os registros de desconto do banco de dados e exibi-los no `MetroGrid1`.
Evento `btnSave_Click`: Este evento é acionado quando o botão "Salvar" é clicado.
Ele insere um novo registro de desconto no banco de dados com a descrição e percentual fornecidos.
Antes de salvar, exibe uma caixa de mensagem para confirmar a operação. Após salvar, limpa os campos e recarrega os registros.
3. Método `Clear`: Este método limpa os campos `txtDiscription` e `txtPercent` e redefine os estados dos botões `btnSave` e `btnUpdate`.
Evento `MetroGrid1_CellContentClick`: Este evento é acionado quando há um clique em uma célula do `MetroGrid1`.
Se o clique for no botão de edição, preenche os campos de texto com os dados do desconto selecionado e
desabilita o campo `txtDiscription` e o botão `btnSave`. Se o clique for no botão de exclusão, exclui o registro de desconto correspondente do banco de dados.
Evento `btnUpdate_Click`: Este evento é acionado quando o botão "Atualizar" é clicado.
Ele atualiza o registro de desconto selecionado no banco de dados com o novo percentual fornecido.
Antes de atualizar, exibe uma caixa de mensagem para confirmar a operação. Após a atualização, recarrega os registros e limpa os campos.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmMain
Funcções Principais:
Método `frmMain_Resize`: Este método é acionado quando o formulário é redimensionado e ajusta o tamanho
e a posição do formulário de acordo com as dimensões da tela.
Métodos de clique dos botões (`btnProduct_Click`, `btnSales_Click`, `btnTable_Click`, etc.):
Esses métodos são acionados quando os botões no formulário principal são clicados.
Eles exibem diferentes formulários (como `frmProductList`, `frmSales`, `frmTable`, etc.) dentro de um painel (`Panel4`) no formulário principal.
Evento `Button5_Click`: Este evento é acionado quando o botão "Sair" é clicado. Ele fecha o formulário principal, registra a saída do usuário e
exibe novamente o formulário de login.
Outros eventos de clique de botão (`btnBestSelling_Click`, `btnSalesSummary_Click`, `btnAuditory_Click`, etc.):
Esses eventos são semelhantes aos métodos de clique dos botões mencionados acima, mas cada um exibe um formulário
diferente com suas respectivas funcionalidades.
5. Método `btnDiscount_Click`: Este método é acionado quando o botão "Desconto" é clicado e exibe o formulário `frmDiscount` para gerenciar descontos.
Método `btnUser_Click`: Este método é acionado quando o botão "Usuário" é clicado e exibe o formulário `frmUserRegistration`
para registrar novos usuários.
Método `Button1_Click`: Este método é acionado quando o botão "Caixa" é clicado e exibe o formulário `frmPos`
para gerenciar as transações de vendas.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmReport
Funcções Principais:
Declarações de variáveis: O formulário declara várias variáveis para manipular conexão com banco de dados (`con1`), comandos SQL (`cmd1`),
adaptador de dados (`adp1`) e uma tabela de dados (`dtb`).
Sub `viewdata`: Esta sub-rotina executa uma consulta SQL para recuperar os dados do carrinho de compras (`vwcart`)
para as vendas concluídas (`status` igual a "Completed") dentro de um determinado intervalo de datas. Os resultados são armazenados na tabela de dados (`dtb`).
Sub `loadRecords`: Esta sub-rotina carrega os registros para o relatório.
Ela cria uma nova instância do relatório Crystal Reports (`myrpt`) e define os dados usando a tabela de dados previamente preenchida (`dtb`).
Além disso, os parâmetros do relatório são definidos com base nas informações das vendas (`lblTotalSales`, `lblTotal`, `lblDiscount`, `lblInitialValue`) e
nos detalhes de contato do cliente (`txtNif`, `txtContact`). Por fim, o relatório é exibido no `CrystalReportViewer1`.
Evento `frmReport_Load`: Este evento é acionado quando o formulário `frmReport` é carregado.
Ele chama a sub-rotina `loadRecords` para carregar e exibir o relatório.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmSales
Funcções Principais:
Declaração de variáveis: O formulário declara variáveis para armazenar a data inicial e final (`sdate1` e `sdate2`),
bem como variáveis para o valor inicial, subtotal e desconto das vendas.
Sub `LoadRecords`: Esta sub-rotina carrega os registros de vendas dentro do intervalo de datas especificado. Ela limpa o `MetroGrid1`,
executa consultas SQL para recuperar as vendas da tabela `vwcart` com status "Completed" dentro do intervalo de datas, e preenche o grid com os resultados.
Além disso, ele calcula o total das vendas, o valor inicial, o subtotal e o desconto usando consultas SQL separadas.
Esses valores são exibidos nos rótulos correspondentes.
3. Evento `frmSales_Load`: Este evento é acionado quando o formulário `frmSales` é carregado. Ele inicializa as datas iniciais e finais com a data atual.
Eventos `dt1_ValueChanged` e `dt2_ValueChanged`: Esses eventos são acionados quando as datas iniciais ou finais são alteradas.
Eles chamam a sub-rotina `LoadRecords` para recarregar os registros de vendas com base nas novas datas.
Evento `PictureBox2_Click`: Este evento é acionado quando o usuário clica na imagem do ícone de relatório.
Ele abre o formulário `frmReport` para exibir um relatório das vendas dentro do intervalo de datas especificado.
Nomeclatura e funĂ§Ăµes principais
Nomenclatura: frmSalesSummary
Funcções Principais:
1. Sub `LoadYearSales`: Esta sub-rotina carrega o resumo das vendas por ano. Ele limpa o `MetroGrid1`, executa uma consulta SQL que calcula a soma
do subtotal de vendas agrupadas por ano e preenche o grid com os resultados.
2. Sub `LoadQuarterSales`: Esta sub-rotina carrega o resumo das vendas por trimestre. Da mesma forma que a sub-rotina anterior,
ela limpa o `MetroGrid2`, executa uma consulta SQL que calcula a soma do subtotal de vendas agrupadas por ano e trimestre e preenche o grid com os resultados.
3. Sub `LoadMonthSales`: Esta sub-rotina carrega o resumo das vendas por mês. Da mesma forma que as sub-rotinas anteriores,
ela limpa o `MetroGrid3`, executa uma consulta SQL que calcula a soma do subtotal de vendas agrupadas por ano e mês e preenche o grid com os resultados.
4. Evento `PictureBox1_Click`: Este evento é acionado quando o usuário clica na imagem do ícone de fechar.
Ele fecha o formulário `frmSalesSummary`.
5. Evento `frmSalesSummary_Load`: Este evento é acionado quando o formulário `frmSalesSummary` é carregado.
No momento, está vazio e não executa nenhuma ação.
ConclusĂŁo
As classes mencionadas representam diferentes funcionalidades e aspectos do sistema.
Elas são organizadas em camadas para garantir uma arquitetura bem estruturada e modular.
Através da separação de responsabilidades em diferentes classes e camadas, o sistema torna-se mais fácil de entender, dar manutenção e
escalar conforme necessário. Isso promove uma melhor organização do código, facilitando a colaboração entre desenvolvedores e garantindo uma
experiência consistente e confiável para os usuários finais.