#35768
Javier Ader
Participante

Muchas gracias por testear Matias! No es ningún atrevimiento, es un aporte. En cuanto al ROUND, es como decis, el tema es que deberias haber corrido el ROUND.sql que esta en la raiz; esta funcion justmante hace que todos esos castings sean innecesarios (y en realidad, ese round se usa desde muchas otro lados; al parecer hay muchos campos a nivel de base de datos que tienen “numeric” cuando deberian tener integer; de ahi el problema on el ROUND… postgres tiene un ROUND(numeric,integer), pero no un ROUNT(numeric,numeric); este ultimo round es el que justamente agrega ROUND.sql).

Más allá de eso, ya que estas testeando las conversiones de moneda (algo que yo testie pero sin mucho mirar “casos reales”, ni jugar mucho con las fechas de validez), es que las versión de PGSql al igual que en PL/Java soporta la idea de si no encuentra una conversión directa, usar la inversa; pero a diferencia de PL/Java no usa nunca el “divisor”, si no que lo calcula “al vuelo”, a partir del multiplicador (1/multiplicador) de la conversion inversa; creo que esta forma es mas clara (por lo menos más simple…). El campo divisor pasaria ser una especie de campo informativo, ya que realmente no se usan para los cálculos.

Ok, últimas novedades:
BOM:
-agregue un scripcito (simplemente la concatenación de otros) que aplica en un paso todas la funciones BOMxxx y el ROUND.sql
http://pgsqllib.hg.sourceforge.net/hgweb/pgsqllib/pgsqllib/raw-file/64a4dfc78e8a/BOM/ALL_BOM.sql
simplemente copiar y pegar en PGAdmin, correr y sale andando.
-unos tests para las bom (los mismos que postie acá, asi ya quedan)
Invoice:
-agregue dos InvoiceDiscount, una que emula lo que hace actualmente PL/Java (nvoiceDiscount-actual.sql), y otra que es la que sugiero, ya que para mi es incorrecto como fucnciona actualmente; ver invoiceDiscount-sugerida.sql y invoice-notas.txt para una explicación de porque pienso que hay algo mal. De cualquier manera, probablemente todo este tema de los descuentos, como plantie antes, merezca una discución un poco más profunda; ya haré un thread al respecto.
-test para invoiceOpen e invoiceDiscount

http://pgsqllib.hg.sourceforge.net/hgweb/pgsqllib/pgsqllib/raw-file/b99a62d8339f/Invoice/Notas-invoice.txt
http://pgsqllib.hg.sourceforge.net/hgweb/pgsqllib/pgsqllib/raw-file/b99a62d8339f/Invoice/invoiceDiscount-actual.sql
http://pgsqllib.hg.sourceforge.net/hgweb/pgsqllib/pgsqllib/raw-file/b99a62d8339f/Invoice/invoiceDiscount-sugerida.sql
http://pgsqllib.hg.sourceforge.net/hgweb/pgsqllib/pgsqllib/raw-file/b99a62d8339f/Invoice/tests-invoice.sql

Si no me equivoco, faltan trasladar 2 o 3 funciones PLJava.

Saludos
Javier