Mudanças entre as edições de "DES:classesProntas"
Linha 4: | Linha 4: | ||
Todos os métodos inicial com letra minuscula e caso possuam mais palavras a primeira letra de cada uma delas esta em letra maiúscula. | Todos os métodos inicial com letra minuscula e caso possuam mais palavras a primeira letra de cada uma delas esta em letra maiúscula. | ||
− | O construtor da classe deve possuir os | + | O construtor da classe deve possuir os parâmetros para deixar o objeto já em operação. |
Utilizar "private" e "public" nos métodos e propriedades dos objetos a fim de aumentar a segurança do mesmo. | Utilizar "private" e "public" nos métodos e propriedades dos objetos a fim de aumentar a segurança do mesmo. |
Edição das 11h03min de 7 de dezembro de 2012
Índice
- 1 O que são ?
- 2 Padrão Seguido
- 3 CVS "Controle de Versão
- 4 Abstração do Banco de dados
- 5 Existe Transação
- 6 Validação de Dados
- 7 Arquivos de Log
- 8 Gerar Relatórios
- 9 PessoaFisica
- 10 Formulários de Pesquisa
- 11 Tela de Editar
- 12 Data e Hora
O que são ?
Classes escritas em PHP com funções bem definidas e que podem ser utilizadas em diversos sistemas.
Padrão Seguido
Todos os métodos inicial com letra minuscula e caso possuam mais palavras a primeira letra de cada uma delas esta em letra maiúscula.
O construtor da classe deve possuir os parâmetros para deixar o objeto já em operação.
Utilizar "private" e "public" nos métodos e propriedades dos objetos a fim de aumentar a segurança do mesmo.
quando documentar um método ou uma classe utilizar
+ público;
- privado;
Quando possível utilizar o arquivo abaixo para criar os diagramas, e sempre que utiliza-lo realizar sua atualização. http://200.201.80.50/sistemas/inc/classesProntas.xmi
CVS "Controle de Versão
Para utilizar o CVS nos projetos não é necessário nenhuma mudança da plataforma de desenvolvimento.
O linux geralmente vem com o Cervisia um sistema integrado com o "quanta".
Também é possível utilizar o eclipse para utlizar o controle de versão, ele já vem com um plug-in instalado para isto.
Instalar plug-in PHP help -> Software Update -> Find and Install -> Search for new features to install -> new remote site.
adicione a seguinte URL: http://phpeclipse.sourceforge.net/update/cvs
Montar uma pasta no seu computador que aponte para a pasta compartilhada no samba onde o seu projeto RODA no php
mount -o username=alebattisti -o smbfs //200.201.80.50/estagiarios /home/anselmo/Projetos/www/estagiarios/
importante: as permissões do ponto de montagem e da pasta no servidor devem te permitir manipular os arquivos que estarão dentro dela.
após montar o diretório
crie um projeto no eclipse que use o ponto de montagem para armazenado os arquivos
import do servidor CVS os arquivos da última versão do software
http://www.linhadecodigo.com.br/artigos.asp?id_ac=927 mostra como configurar o eclipse.
Abstração do Banco de dados
Arquivo
Local 200.201.80.50/sistemas/inc/abstracaoBD.php;
Nome da Classe:abstracaoBD;
Funcionalidade
A partir de um vetor com o nome do atributo do campo da tabela e o valor que ele deve assumir pode-se inserir dados em uma tabela de forma bem rápida.
Métodos
inserirRegistroVetor()
funcionalidade
A partir de um vetor do tipo
- $nome['1']['campo'] = 'PssFsc_Codigo'
- $nome['1']['valor'] = '1'
- $nome['2']['campo'] = 'PssFsc_Codigo'
- $nome['2']['valor'] = '2'
realiza a inserção destes dados em uma tabela, INSERE APENAS um registro por vez.
parâmteros
- Objeto de conexão com o banco de dados
- Em qual a tabela será a inserção
- O vetor que possui os dados
- Até qual campo deste vetor será gerado o SQL da inserção
retorno
1 se a inserção foi realizada com sucesso e uma string que contém a mensagem de erro vinda do banco de dados.
exemplo
// Vetor com os dados a serem inseridos
$PssFisica['1']['campo'] = "PssFsc_Codigo";
$PssFisica['1']['valor'] = "4040";
$PssFisica['2']['campo'] = "PssFsc_Nome";
$PssFisica['2']['valor'] = "Anselmo";
$inserir = new abstracaoBD();
$ret = $inserir->inserirRegistroVetor($db,'TpOrientacao',$orientacao);
if ($ret != 1) {
echo $ret;
inserirRegistro()
funcionalidade
A partir de um formulário HTML que possui os nomes dos campos do formulário igual aos nomes dos campos da tabela, reazliza a inserção dos dados na tabela com base no vetor $_POST gerado pelo PHP quando se enviar dados do formulário pelo método do html post.
parâmteros
- conexao : objeto ADODB de conexão com o Objeto
- vetor : vetor com os campos e os valores que devem ser inseridos
- tabela : em qual tabela dave ser inserido os dados
- ultimo_campo : valor do último campo a ser inserido
retorno
1 se a inserção foi realizada com sucesso e uma string que contém a mensagem de erro vinda do banco de dados.
exemplo
$inserir = new abstracaoBD();
$ret = $inserir->inserirRegistro($db,'TpOrientacao',$_POST,'Btn_Enviar');
if ($ret != 1) {
echo $ret;
adicionarCampo()
funcionalidade
Insere um vetor ao início de outro vetor, isto é muito útil quando é necessário adicionar campos ao Vetor $_POST que não foram inseridos no formulário HTML.
parâmteros
- array_base : Vetor $_POST
- array_a_ser_adicionado : Vetor com o novo valor que vai para o array_base
retorno
array contendo a soma do array_a_ser_adicionado com o array_base.
exemplo
$_POST = $inserir->adicionarCampo($_POST, array('PssFsc_Sobrenome' => $this->separaSobrenome()));
removerCampo()
funcionalidade
Recebe um vetor e uma chave, remove o campo que é identificado por aquela chave do vetor.
parâmteros
- chave : qual é a chave do campo que sera removido do vetor
retorno
array sem o campo chave
exemplo
$_POST = $inserir->removerCampo("nome");
apagarRegistro
Funcionalidades
Serve para apagar um registro de uma tabela
Parâmteros:
- bd : conexão com o banco de dados
- tabela : qual tabela será removida
- pk : array com as chaves que serão usadas para identificar unicamente a tupla que será removida
Retorno
1 se deu certo caso contrário texto com o erro que ocorreu no banco de dados
Exemplo
O Vetor que será passado deve ser como e abaixo, a função operador será um operador lógico, e o
$pk[0][campo] = id;
$pk[0][operador] = "="; // sinal de igualdade
$pk[0][valor] = valor;
$pk[0][logico] = and
Imagem
Existe Transação
Arquivo
Local 200.201.80.50/sistemas/inc/existeTransacao.php;
Nome da Classe:existeTransacao;
Funcionalidade
Retorna se um valor esta em um vetor com 2 dimensões ou não, para o uso nos sistemas onde é necessário a validação dos dados basta passar o vetor com as transações e qual a transação esta sendo procurada.
Métodos
existeTransacao()
funcionalidade
verifica se um transação está ou não dentro das transações que o usuário tem direito de acessar.
parâmteros
- Vetor onde as transações estão armazenadas
- Nome da coluna que estão as transações por padrão transacao
- Qual transação esta sendo procurada
retorno
nenhum
Exemplo:
$f->existeTransacao($transacao,'transacao','menu_pgespecial')
Validação de Dados
Arquivo
Local 200.201.80.50/sistemas/inc/validacao/validationClass.php
Nome da Classe:validateFields;
Funcionalidade
Contém várias validações que podem ser aplicadas a campos dos formulários.
- Texto
- Número Inteiro
- Número Decimal
- URL
- Data
- Checkbox
- Radio
- Ra dos alunos
- CPF
- Cnpj
O Objeto validateFields é instanciado e a ele são adicionados os campos que devem ser validados, bem como a forma da validação que será feita.
Ao final basta chamar o método validation(), e este realiza-rá a validação dos campos retornando os erros ser ocorrerem.
Métodos
validateFields()
funcionalidade
Gera a instância inicial onde serão adicionados os campos a serem validados.
parâmteros
nenhum
retorno
Valor booleano, verdadeio se não tiver erros e false se tiver erros.
exemplo
$example = new validateFields;
validation()
funcionalidade
Inicia o processo de validação do formulário
parâmteros
nenhum
retorno
verdadeio caso não hajam erros
falso caso hajam erros.
exemplo
if ($example->validation()) {
$error = "All form fields are valid!";
} else {
$error = $example->createMsg();
}
addTextField()
funcionalidade
Inicia o processo de validação do formulário
parâmteros
- Nome do campo do formulário HTML a ser validado
- Variável PHP com o valor do campo
- Tipo da validação no caso 'text'
- Se o campo é requerido 'y' para sim 'n' para não
- Compŕimento do campo, se for diferente de 0 ele é validado por sendo menor que este número
- Legenda: o que deve aparecer como nome do campo se houver algum problema
retorno
nenhum
exemplo
$example->addTextField("Simple_text", $_POST['string'], "text", "y", 0, "Texto Simples");
addNumField()
funcionalidade
Validação de números inteiros e decimais
parâmteros
- Nome do campo do formulário HTML a ser validado
- Variável PHP com o valor do campo
- Tipo da validação no caso 'number' para inteiros 'decimal' para decimais
- Se o campo é requerido 'y' para sim 'n' para não
- Quantidade de casas decimais
- Tamanho total do número
- Legenda: o que deve aparecer como nome do campo se houver algum problema
retorno
nenhum
exemplo
$example->addNumField("Number", $_POST['number'], "decimal", "y", 0, 5, "Campo 2");
$example->addNumField("Number", $_POST['number'], "number", "y", 0, 5, "Campo 2");
addLinkField()
funcionalidade
Validação de endereços de e-mail e URL
parâmteros
- Nome do campo do formulário HTML a ser validado
- Variável PHP com o valor do campo
- Tipo da validação no caso 'mail' para e-mail e 'url' para endereços url
- Se o campo é requerido 'y' para sim 'n' para não
- Legenda: o que deve aparecer como nome do campo se houver algum problema
retorno
nenhum
exemplo
$example->addLinkField("Email_address", $_POST['email'], "email","y","Campo 6");
$example->addLinkField("internet_link", $_POST['url'], "url", "y","Campo 7");
addDateField()
funcionalidade
Validação de datas, no formato brasileiro dd/mm/yyyy e america mm-dd-yyyy
parâmteros
- Nome do campo do formulário HTML a ser validado
- Variável PHP com o valor do campo
- Tipo da validação no caso 'date'
- Tipo da data 'eu' padrao dd/mm/yyyy e 'us' padrao mm-dd-yyyy
- Se o campo é requerido 'y' para sim 'n' para não
- Legenda: o que deve aparecer como nome do campo se houver algum problema
retorno
nenhum
exemplo
$example->addDateField("Euro_date", $_POST['date'], "date", "eu", "y","Campo 4");
addCheckBox()
funcionalidade
Verifica se um check box esta ticado "setadi" ou não
parâmteros
- Nome do campo do formulário HTML a ser validado
- Variável PHP com o valor do campo
- Tipo da validação no caso 'checkbox'
- Valor requerido para aquele campo
- Legenda: o que deve aparecer como nome do campo se houver algum problema
retorno
nenhum
exemplo
$example->addCheckBox("Check_box", "check", "checkbox","y","Campo 5");
addRa()
funcionalidade
Verificar se um valor passado é ou não um RA válido.
parâmteros
- Nome do campo do formulário HTML a ser validado
- Variável PHP com o valor do campo
- Tipo da validação no caso 'ra'
- Valor requerido para aquele campo
- Legenda: o que deve aparecer como nome do campo se houver algum problema
retorno
nenhum
exemplo
$example->addRa("campoRa","$_POST['ra']","ra","y","Campo do Ra do aluno");
addCpf()
funcionalidade
Verificar se um valor passado é ou não um Cpf válido, tanto pode ser passado valores com máscara como sem máscara.
parâmteros
- Nome do campo do formulário HTML a ser validado
- Variável PHP com o valor do campo
- Tipo da validação no caso 'cpf'
- Valor requerido para aquele campo
- Legenda: o que deve aparecer como nome do campo se houver algum problema
retorno
nenhum
exemplo
$example->addCpf("campoCpf","$_POST['cpf']","cpf","y","Campo do Cpf do aluno");
addCnpj()
funcionalidade
Verificar se um valor passado é ou não um Cnpj válido, tanto pode ser passado valor com máscara bem como sem máscara.
parâmteros
- Nome do campo do formulário HTML a ser validado
- Variável PHP com o valor do campo
- Tipo da validação no caso 'cnpj'
- Valor requerido para aquele campo
- Legenda: o que deve aparecer como nome do campo se houver algum problema
retorno
nenhum
exemplo
$example->addCnpj("campoCnpj","$_POST['cnpj']","cnpj","y","Campo do Cnpj da empresa");
Exemplo de Uso
include("validationClass.php");
if (isset($_POST['submit'])) {
$example = new validateFields;
$example->check4html = true;
$example->addTextField("Simple_text", $_POST['string'], "text", "y", 0, "Campo 1");
$example->addNumField("Number", $_POST['number'], "number", "y", 0, 5, "Campo 2");
$example->addNumField("Number_with_decimals", $_POST['decimal'], "decimal", "y",2, 0,"Campo 3");
$example->addDateField("Euro_date", $_POST['date'], "date", "eu", "y","Campo 4");
$example->addCheckBox("Check_box", "check", "checkbox","y","Campo 5");
$example->addLinkField("Email_address", $_POST['email'], "email","y","Campo 6");
$example->addLinkField("internet_link", $_POST['url'], "url", "y","Campo 7");
$example->addTextField("texto",$_POST['texto'],"text","y", 10, "Campo 8");
if ($example->validation()) {
$error = "All form fields are valid!";
} else {
$error = $example->createMsg();
}
}
Arquivos de Log
Arquivo
Local 200.201.80.50/sistemas/inc/logClass.php;
Nome da Classe:logClass;
Funcionalidade
Armazenar informações em um arquivo de log.
Será necessáro a criação de uma pasta com o nome log dentro da pasta onde esta o sistema, e a ela será necessário dar permissão de escrita para todo mundo.
Métodos
Construtor
funcionalidade
contrutor do objeto de log
parâmteros
- Diretório dos log
- Arquivo dos log
Os dois valores são opcionais, se não passado nada para eles o arquivo de log ficará dentro da pasta log e o arquivo será o log.txt.
retorno
nenhum
exemplo
$log = new logClass();
$log = new logClass("/var/www/sistemas/teste","loges.txt");
addLog()
funcionalidade
Inserir um texto dentro do arquivo de log.
parâmteros
- Usuário Logado
- Texto a ser inserido
- Página de Origem
retorno
nenhum
exemplo I
$log->addLog("Maria","Texto de exemplo","index.php");
exemplo II
Em sistemas que possuam uma padronização quanto a usuários e paginas e possível utilizar os logs da maneira a seguir.
$log->addLog($_SESSION['usuario'],"Texto de exemplo",$_SERVER['PHP_SELF']);
Diagrama de Classe
Gerar Relatórios
Arquivo
Local 200.201.80.50/sistemas/inc/reportClass.php
Nome da Classe:relatorio;
Funcionalidade
Facilitar e padronizar a criação de formulários html.
- Definição de Colunas
- Definição de Sub-totais
- Grupos - (media, soma, maior, menor)
- Cabeçalho
- Rodape
Métodos
Contrutor
funcionalidade
Instancia um objeto do tipo reportClass
parâmteros
- título: título do formulário
retorno
nada
exemplo I
$rl = new relatorio("PIAD com Observações");
addConteudo()
funcionalidade
Insere no objeto o vetor que contém os dados a serem listados pelo formulário
parâmteros
- vetor: objeto do tipo vetor contendo os dados a serem listados pelo formulário
retorno
null
exemplo I
$rl->addConteudo($relatorio);
addColuna()
funcionalidade
Adicionar quais serão as colunas a serem exibidas no relatório.
parâmteros
- Descrição: qual será o título da coluna
- Largura: largura da coluna
- Posição: posição da coluna no relatório, iniciar em 1 se 0 da PROBLEMA
- alinhamento: opcional define o alinhamento do texto em relação a célula
retorno
nada
exemplo I
$rl->addColuna("Código","50",1);
$rl->addColuna("Nome","200",2);
$rl->addColuna("Centro","100",3);
$rl->addColuna("Observações","100",4);
addSubTotal()
funcionalidade
Aparecerá uma linha no final do relatório contendo a soma das colunas que possuirem subtotal, para que mais do que uma coluna seja listada como subtotal é necessároi
parâmteros
- coluna que será coloca como subtotal
retorno
nada
exemplo I
$rl->addSubTotal(1);
$rl->addSubTotal(2);
addGrupo()
funcionalidade
Os grupos são as partes do relatório onde são realizados cálculos locais por exemplo, quantos registros com o mesmo PssFsc_Codigo existe.
A SQL que gera os elementos que irão compor o relatorio deve ter a cláusula ORDER BY nome_campo_grupo.
parâmteros
- Coluna que irá ser utilizada para definir o grupo, exemplo PssFsc_Codigo
- Coluna de cálculo: exemplo Projeto_Horas
- Qual função será aplicada a coluna de cálculo, podem ser 5
- soma: soma todos os elementos do mesmo grupo
- media: média aritimética dos elementos do grupo
- menor: qual o menor elemento do grupo
- maior: qual o maior elemento do grupo
- contar: conta quantos elementos existem no grupo
retorno
nada
exemplo I
$rl->addGrupo(3,1,'soma');
neste exemplo a coluna 3 será utlizada como grupo e a coluna 1 será somada
addHoras()
funcionalidade
adiciona a data e a hora em que o relatório foi gerado no final da última página
parâmteros
nenhum
retorno
nenum
exemplo I
$rl->addHoras()
addCss()
funcionalidade
define onde estará o novo arquivo de configuração visual .CSS, por padrão existe um arquivo chamado reportClass.css que contém todas as formatações, se for necessário personalizar as cores, basta criar um novo arquivo com as mesmas classes e chamar este método.
parâmteros
- url onde esta o novo arquivo de css
retorno
nada
exemplo I
$rl->addCss("novocss.css")
addLinhaEspecial()
AINDA NAO INTEGRADO AO ARQUIVO PADRAO DE FORMULARIOS
funcionalidade
escreve o conteúdo de uma linha com colspan = "largura da página", ou seja, faz uma linha que ocupa a largura da tabela.
parâmetros
- descricao: qual será o título da linha no relatório
- pos: posição da linha no relatório
retorno nenhum
exemplo $rl->addLinhaEspecial($descricao, $pos)
gerarRelatorio()
funcionalidade
Método que efetivamente cria o relatório, ele monsta o html com todos os dados.
parâmteros
nenhum
retorno
nenhum
exemplo I
$rl->geraRelatorio()
PessoaFisica
Arquivo
Local 200.201.80.50/sistemas/inc/classPessoaFisica.php;
Nome da Classe:classPessoaFisica;
Funcionalidade
Insere os dados de uma pessoa na tabela PssFisica
Métodos
+ __construct()
funcionalidade
Instancia um objeto do tipo classPessoaFisica
parâmteros
- $db : objeto de conexão com o banco de dados
retorno
nada
exemplo
+ cadastrar()
funcionalidade
Insere os dados na tabela PssFisica
parâmteros
nada
retorno
boolean
verdadeiro se inseriu e false se não inseriu os dados, quando for false vem uma string dizendo o porquê do erro.
exemplo
Imagem
Formulários de Pesquisa
Para que seu sistema tenha acesso aos formulários de busca é necessário adicionar o nome do seu banco no arquivo conecta.php so sistema de formulários de busca "temporário".
A palavra chave da busca deve ter no mínimo 3 caracteres para evitar problemas de sobrecarga de javascript no navegador do cliente.
Geral
- Quando mais do que um campo será utilizado como retorno do formulário o nome deles na URL será separado por o símbolo de ponto e virgula ';' .
- Colocar na sessão a variável baseDados contendo o nome da base de dados que sua aplicação utiliza, assim não é necessário mais especificar o nome da base d edados dentro do codigo fonte do frmBusca.
Arquivos em todas as páginas
Todas as páginas que usarão algum dos formulários de pesquisa devem incluir o três arquivos.
<link rel="stylesheet" href="http://200.201.80.50/sistemas/inc/frmBusca/css/lightbox.css" media="screen,projection" type="text/css" />
<script type="text/javascript" src="http://200.201.80.50/sistemas/inc/frmBusca/js/prototype.js"></script>
<script type="text/javascript" src="http://200.201.80.50/sistemas/inc/frmBusca/js/lightbox.js"></script>
Para chamar qualquer um dos formulários de pesquisa o procedimento é o mesmo, basta colocar um link com a seguinte cara apontado para o arquivo que irá fazer a consulta. exemplo
<a href='http://200.201.80.50/sistemas/inc/frmBusca/pesquisarMunicipio.php?objTela=Mnc_Descricao2&objOculto=Mnc_Codigo2' class='lbOn'><img src='imagem/magnifier.png' alt='Pesquisar Por Município'/></a>
Municípios
Pesquisa na tabela município utilizando como chave de pesquisa o nome do município
Arquivo
http://200.201.80.50/sistemas/inc/frmBusca/pesquisarMunicipio.php
Link para o Formulário
<a href='http://200.201.80.50/sistemas/inc/frmBusca/pesquisarMunicipio.php?objTela=Mnc_Descricao2&objOculto=Mnc_Codigo2' class='lbOn'><img src='imagem/magnifier.png' alt='Pesquisar Por Município'/></a>
Parâmetos
- objTela : Id do campo do formulário que irá receber o texto descritivo quando um item for escolhido dentro dos resultados
- objOculto : Código do item escolhido dentro do resultado
Professores
Arquivo
Link para o Formulário
Parâmetos
- objTela : Id do campo do formulário que irá receber o texto descritivo quando um item for escolhido dentro dos resultados
- objOculto : Código do item escolhido dentro do resultado
Pessoa Juridica
Arquivo
Link para o Formulário
Pessoa Fisica
Arquivo
http://200.201.80.50/sistemas/inc/frmBusca/pesquisarPessoaFisica.php
Link para o Formulário
<a href='http://200.201.80.50/sistemas/inc/frmBusca/pesquisarPessoaFisica.php?objTela=Mnc_Descricao2&objOculto=Mnc_Codigo2' class='lbOn'><img src='imagem/magnifier.png' alt='Pesquisar Por Município'/></a>
Parâmteros
- objTela : Id do campo do formulário que irá receber o texto descritivo quando um item for escolhido dentro dos resultados
- CNPJNumero
- CNPJFilial
- CNPJDigito
Convênios
Arquivo
http://200.201.80.50/sistemas/inc/frmBusca/pesquisarConvenio.php
Link para o Formulário
<a href='http://200.201.80.50/sistemas/inc/frmBusca/pesquisarConvenio.php?objTela=Mnc_Descricao2&objOculto=Mnc_Codigo2' class='lbOn'><img src='imagem/magnifier.png' alt='Pesquisar Por Município'/></a>
Parâmteros
- objTela : Id do campo do formulário que irá receber o texto descritivo quando um item for escolhido dentro dos resultados
- objOculto : Código do item escolhido dentro do resultado
Como Criar um Novo Formulário de Pesquisa
Dentro da pasta js do inc/frmBuscas possui um arquivo chamado "ajaxConsulta.js" nele esta a função para chamar uma página no modo assíncrono e uma função que irá redirecionar o retorno do servidor para a função específica do mapeamento.
Tela de Editar
Objetivo
Uma grande parte dos sistemas desenvolvidos necessitam de alguma forma permitir a alteração dos dados cadastrados, isto inevitavelmente implica em se ter uma tela para o usuário procurar e visualizar todos os registros já cadastrados a fim de escolher aquele que irá ser editado.
A idéia por traz deste módulo é tornar esta tela independente de sistema, O programador de um novo sistema terá que se preocupar em programar apenas o formulário que efetrivamente fará a alteração dos dados cadastrais, a tela de exibição e a função de busca será apenas customizada para o sistema.
A customização será feita a partir de algumas variáveis de controle como por exemplo, nome da tabela, quais serão os campos exibidos ao usuário, quais destes permitirão pesquisa, qual a restrição geral da SQL tanto nas buscas como no momento de apagar os dados.
Contrução do sistema
Data e Hora
Objetivo
Manipular datas e horas
Métodos
+ br2eu
Converte uma data no formato dd/mm/aaaa no formato mm-dd-aaaa.
Se a data passada estiver vazia entao ela deve retornar 00-00-000
Parâmtros
String do tipo data
Retorno
Data no formato mm-dd-aaaa
+ eu2br
Converte uma data no formato mm-dd-aaaa no formato dd/mm/aaaa.
Se a data passada estiver vazia entao ela deve retornar 00-00-000
Parâmtros
String do tipo data
Retorno
Data no formato dd/mm/aaaa