Created
January 12, 2017 17:46
-
-
Save viniciusgati/076cc0c7492e09fe4230058a7ada74eb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Classe de exemplo para customização do Cev Plus | |
# | |
# No Cev Plus existem diversas classes que são utilizadas para manuseio dos formulários de cadastro | |
# | |
# Estas classes podem ser modificadas, ou complementadas utilizando as particularidades da linguagem ruby | |
# neste fonte temos exemplos tais como: | |
# | |
# * Adicionar validação a classe | |
# * Executar um metodo em determinado momento | |
# * Execução de Sql's simples e complexos no protheus | |
# | |
# No caso deste fonte em específico estamos complementando a classe responsável pelo cadastro de agenda, a Forms::Agenda, | |
# onde Forms:: significa o modulo e Agenda a classe dentro do módulo. | |
# | |
# O método class_eval disparado faz com que a classe seja aberta para escrita, podemos assim | |
# adicionar metodos novos, atributos novos, etc. Fazendo com que a classe tenha um inclusão de funcionalidade. | |
# | |
# Com a chamada do método validate podemos adicionar uma nova validação a ser executada ao salvar a agenda; | |
# Para impedir o salvamento do registro e mostrar a mensagem na tela devemos adicionar um erro ao atributo errors do objeto conforme abaixo. | |
# | |
# Caso seja necessário fazer uma query ao banco de dados devemos usar o método da classe ProtheusDb chamado find_by_sql que aceita | |
# uma string contendo a query, ou um array contendo uma string e parametros da query conforme exemplo comentado abaixo. | |
# | |
Forms::Agenda.class_eval do | |
# Callbacks exemplos: | |
# before_validation :prepare_agenda | |
# after_validation :pos_validacao | |
# def prepare_agenda | |
# puts "Executado antes das validações do formulário" | |
# end | |
# def pos_validacao | |
# puts "Executado após as validações do formulário" | |
# end | |
# validate :validacao_teste_customizacao | |
# def validacao_teste_customizacao | |
# errors.add("custom", "Implementada customização.") | |
# | |
# | |
# ProtheusDb.find_by_sql(cQuery) | |
# | |
# ProtheusDb.find_by_sql([" SELECT COUNT(*) FROM TESTE WHERE ID = :id "], id: 4) | |
# end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment