Buenas. Estuve avanzando un poco; me faltan unas pocas nada mas.
Subí el proyecto a SF; acá pueden ver el changelog de la ultima versión a la actual
http://pgsqllib.hg.sourceforge.net/hgweb/pgsqllib/pgsqllib/log/b99d2acbc46d
Copipasteo el shortLog:
66 minutes ago Javier Ader PaymenTerm – paymentTermDiscount agregado default tip changeset | files
7 hours ago Javier Ader PaymentTerm – paymentTermDueDate agregado – un Bug PL/java corregido changeset | files
12 hours ago Javier Ader PaymentTerm – paymentTermDueDays agregado – un BUG PL/java solucionado changeset | files
37 hours ago Javier Ader PaymentTerm – funciones auxiliares lastDayOfMonth y calculateDateDue changeset | files
47 hours ago Javier Ader agregado firstOf changeset | files
2 days ago Javier Ader Nuevas funcion nextBusinessDay (simple) changeset | files
2 days ago Javier Ader Funcion addDays agregada (en OpenXpertya) changeset | files
3 days ago Javier Ader Funcioes de fechas: trunc y daysbetween (en OpenXpertya) changeset | files
3 days ago Javier Ader se agrego PaymentAllocated.sql changeset | files
3 days ago Javier Ader commit inicial changeset | files
(0) tip
Algunos comentarios:
-en la version PL/Java actual hay varios pequeños bugs que se dan solo ocasionalmente (por ej PaymentTermDueDays a veces le erra por un dia; PaymentTermDueDate hace lo mismo). Esto me ocurrió corriendo varios de los tests que estan en test-paymentTerm.sql. Realmente no se porque ocurren; mirando el codigo java de las funciones da la sensación de que no deberían pasar (lo extraño es que para casos muy similares en uno le erra y en otro no…..)
-Los test-paymentTerm.sql (y los otros archivos tests que hay) los corro sobre una base con PL/Java y en otra idéntica salvo que tiene PL/PGSql; los resultados son los mismos, salvo cuando la versión en PL/Java comete un error (esto es, los resultados me difieren cuando la versión PGSql corrige el bug)
-no testie completamente a paymentTermDiscount porque para en mis bases tengo todos C_PaymentTerm que no aplican descuentos (aplican descuento 0%). Si alguien tiene una base de datos con terminos de pago que aplican descuentos (y facturas asociadas) y me los testea, se agradece (simplemente habría que correr los scripts en test-paymentTerm.sql para esta función y ver si dan los resultados esperados)
-Dicho sea de paso; estos descuentos (y las fechas de vencimiento de los términos de pago) y la semántica de varios de los campos que afectan a los algoritmos y la idea de estos últimos, creo que habría que detallarla (hay datos que no se usan, otros que no tiene mucho sentido….). Supongo que habría que hacer otro thread aparte, ya que hay bastante variantes.
-los scripts, si se aplican en orden “correcto” (en realidad, creo no es totalmente necesario respetar el orden, ya que postgres no parece chequear dependencias desde dentro de código pgSql )deberían poder aplicarse sobre cualquier base actual y no deberían ocurrir problemas. En cualquier caso, en cuanto me haga un tiempo hago su solo script que aplique todos los cambios a la vez (y agregue un par de nuevas funciones que antes no estaban), así no se tiene que andar aplicando función por función.
Finalmente, le dejo un snapshot de la actual versión: nuevasFunciones-30-06-11-a6820d9d931e.zip, por si la quieren bajar de acá (desde sorceforge se puede browsear los archivos desde acá http://pgsqllib.hg.sourceforge.net/hgweb/pgsqllib/pgsqllib/summary siguiendo el link files, o bajarlos usando cualquier cliente mercurial)
http://www.mediafire.com/?t03g33dvzjaancl
Cualquier comentario, duda, sugerencia, etc…
Saludos