Pessoal, primeiro a história depois o problema.
HISTÓRIA
Por conta da implantação da Nota Fiscal Eletrônica, teremos que zerar a
numeração da NF.
Acontece que obviamente temos a Nf nº 00001 no sistema, e por um erro de
modelagem os vinculos com duplicatas e todo o resto do sistema é feito pelo
campo "numero da nota", pois bem imaginem o tamanho da bucha!
Poderiamos fazer várias coisas, dentre elas, criar um campo, como se fosse
um tipo da NF, ou alterar os vinculos de toda a base, mas isso geraria,
muito trabalho refazendo todos os jois de relatórios, consultas telas e
etc... detalhe a implantação começa em 01/12/08.
Tomamos a seguinte descisão: iniciar o contador de Nf´s com
1.000.000.001(um bilhão e um), assim todos os vinculos são mantidos.

PROBLEMA
O problema gerado com isso é menor: somente a consulta e a apresentação do
numero da Nf em dezenas de milhares de lugares tem que ser tratada.
É ai que preciso da opinião de vocês:

1) simplesmente colocar em todos os relatórios e telas: "select
cast(numerodanf -1000000000 as integer)  as numerodanf"
- como a alteração tem q ser feita em muitos lugares tenho medo que no
futuro, alguém coloque a conta com um zero a menos por exemplo, ou
esqueça... ai vai dar merda...

2) posso fazer um função: "select tira_bilhao(numerodanf)  as numerodanf"
- com uma função, elimino o problema de errar na conta, e ainda posso pensar
em eliminar os dois bilhoes e por ai vai... mas o desempenho da consulta ou
do relatório pode piorar...

3) construir um operador que faça a conta da mesma forma que uma função.
- a query ficaria assim "select numerodanf operador 1", como se fosse isso:
"select numerodanf^1".
- Vai dar o mesmo resultado que usar uma função, mas pelo que li, o
desempenho dos operadores é otimizado de alguma forma.
- Se isso for possível, a gambiarra vai ficar mais limpa nas queries e menos
sujeita a erros.
- Estou viajando nessa idéia de operador?
- Se não estou como eu construo um?

Agradeço as contribuições.
Abraços a todos.

Adriano Espinoza
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
  • [pgbr-geral] NF Eletrôn... Adriano Espinoza de Oliveira

Responder a