Updates since version 3.8:
runs on Python 3 : previously Python 2
tracking database PostgreSQL 9.3+ : previously Sqlite3
django 1.8 to support administrative web application.
utilizes OpenInvoice web API : previously used WebMethods "Partner Server"
Adds support for running all base-level controller scripts from the django manage.py script as custom commands.
4.0.22 - moved integration_tests into the u3exchange directory so it will be included with client deployments.
- changed file ending for bolo invoice files from \r\n to \n. Bolo handles it fine and this resolves an issue where \r\n gets converted to \n\n by git.
- added the odbc_info.py script to the normal deployment.
- added manage.py commands for afe_sync, cc_sync, odbc_info.
- modified U3Db Object to always require dbinfo (a ServerInfo instance).
- fixed DataSyncProcessor to only need a database server object instead of both a server object and db server.
- fixed the test_client_expectations.py script so it can properly handle newlines.
4.0.24 - added custom management command to download a single invoice from the invoicing service.
- Added ability for OpenInvoiceInvoiceBatch to continue retrieving invoices when the completeIndicator is false.
- Added the test_config tests to integration_tests suite.
4.0.28 - fix to dsu update handler - can properly handle multiple error messages in a single UpdateResponse message that are to be applied to multiple document IDs.
- Added customization hooks for code-item service-date and major account number.
- Fix for Vendor export process.
- Fix for do_maintenance process.
- Code refactoring for AFE export process.
- Fix to the approved invoice export query process for OpenInvoice API.
- Fixes for python35 differences in the in-line-conditional statement
- Updated monitor process to deal with duplicate invoices.
- Fix to open invoice ID in file-name locator
- Add Coupa integration to V4
4.0.29 - fix to get_specific_invoice to properly handle multiple base queries.
- Addition of the StaticMapping object -- provides a common object for creating static mappings from one value to another. Can now be used in the getADE() function. Initially created to support a static mapping from OpenInvoice department name to Bolo AP Account.
- Added invoice status type of DUPLICATE. The daily report will treat DUPLICATES as a known status and won't report them at all.
- Added handling to the monitor.py script to better recognize when an invoice is a duplicate that can safely be ignored. Also added more test code specific to duplicate handling.
- adding tests for bolo TR2320 and TR2350 processors (ACH payments, Check batch)
- added sql scripts for cleaning up test data and removing sessions from postgres when debugging is halted mid-process.
- added processor for converting from a SpendWorks CSV export into Bolo.
- fixed db insert errors caused by new field-length restrictions.
- refactor the getCustomValue function so it no longer relies on eval statements.
- added lots of new tests.