Ir para conteúdo
  • Cadastre-se

dev botao

Função "FormaPagamentoToDescricao" - Possibilidade de tornar novo parâmetro 'xPag' como opcional


Ver Solução Respondido por BigWings,
  • Este tópico foi criado há 1290 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Consultores
Postado

Foi incluído um novo parâmetro chamado 'xPag' na função "FormaPagamentoToDescricao" da pcnConversao.pas. 

A declaração dessa função poderia ter esse parâmetro vazio como default ?  Pois pode quebrar códigos que já usavam ela.

A sugestão seria algo como:

function FormaPagamentoToDescricao(const t: TpcnFormaPagamento; const xPag: String = ''): string;


Verificado que a alteração foi devido ao caso:


Realmente no problema descrito no tópico, o parâmetro se torna necessário, porém podem existir outros momentos em que a função é usada sem a necessidade de indicação do xPag.

  • Curtir 1
Consultor SAC ACBr

Elias César Vieira
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil
Assine o
SAC

 
  • Moderadores
Postado

Eu não considero o novo parâmetro opcional, caso se informe o tPag = tpOutros, a descrição é a tag xPag, conforme a NT 2020.006.

Possíveis cenários onde não há essa necessidade pode ser facilmente ajustada na aplicação, informando uma string vazia no parâmetro.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Consultores
Postado

Boa noite,

é uma faca de 2 gumes isso.

A partir da entrada da NT, você não poderá mais usar o literal "Outros" ao menos não deveria, se não quebrar a aplicação, passará isso despercebido e só descobrirá que houve o problema quando tiver reclamação.

Por outro lado, quebrando a build, você já se prepara para o novo cenário, então quando houver a mudança você já está preparado, sendo um parâmetro obrigatório na NT.

Ou fazer um overload do método atual, colocar ele como @deprecated, ao menos vai aparecer no console da build que aquele metodo foi sobreescrito por um novo, e o programador deveria se atualizar para o novo padrão da função.

Acredito que um overload e depreciando (se possível) agradará a todos, e se o programador não ler os log de compilação, ai já é outro cenário, ao menos, foi avisado na criação da build.

function FormaPagamentoToDescricao(const t: string): string; overload; deprecated 'Use FormaPagamentoToDescricao(Indice;Descricao)';
function FormaPagamentoToDescricao(const t: string; const xPag: String): string; overload;

Abraços

  • Curtir 3
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Consultores
Postado

Gostei da ideia do @Victor H. Gonzales - Panda

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 1290 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.