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.
- OpenInvoice: split out OpenInvoice Vendor sync files - one for new Vendors, and a separate file for EDITs/DELETEs.
- 3rd-Party Payments: Added objects for generating Bolo AP Check exports.
- 3rd-Party Payments: Added objects for processing and generating AP and Revenue check files for JP Morgan Chase.
- 3rd-Party Payments: New model objects for APCheckCurrent to track changes in the AP checks coming from Bolo.
- Dev: Added PGP signing/encryption capability with GPG.
- Dev: New SMTP ServerConnector option.
- SpendWorks: updates to the spend works processor
- OpenInvoice: modification to the way the OpenInvoice processor assigns the buyer department at the invoice header level.
- Dev: Added new TrackedDataProcessor for handling situations where sending data differences is necessary, but the tracking database is not storing all information on the objects.
- Dev: update to getAde() function to allow StaticMappings that references fields which are in the children of the specified "obj".
- Dev: update s_if to allow the plural and singular strings to be included (instead of just "s" and "")
- Dev: Added command for scripting the creation of a test version of the GL database.
- OpenInvoice: pick up buyer department from approver first, then submit.
- Dev: added maintenance tasks for jpmc processors.
- added Bolo to JPMorgan Chase Revenue Check processor
- fix formatting issue with JPMC checks and postal codes.
- Modified OpenInvoice payment processor to skip invoices that did not originate at OpenInvoice.
- Modified CCImport process to use Model instead of raw SQL - fixed date issue caused by differences between DataBridge and SQL Connect data.
- Fixed Vendor batch file processor to properly add newlines regardless of the OS it runs on.
4.1.3 - 4.1.5
- 3rd-Party Payments: fixes to Bolo TR2350 file processor.
- 3rd-Party Payments: Added ACH file processor.
- 3rd-Party Payments: Fixed the way check_date and void_date are populated in a Bolo Check (always a datetime object)
- 3rd-Party Payments: Performance improvements on the Bolo AP Payments processor
- 3rd-Party Payments: Added logging for better visibility into AP payments process
- 3rd-Party Payments: Fix to allow FileTypeProcessors to properly connect to SMB destination servers.
- 3rd-Party Payments: Working version of JPMC Revenue check output file.
4.1.6 - 4.1.7
- 3rd-Party Payments: Add SH code filtering and handling to the AP payments process
- Dev: Changed name of custom function
- Dev: modified getConfig to work when a string is passed instead of a dictionary or object.
- Dev: updates to the fix_missing_invoices process.
- 3rd-Party Payments: Fix BoloRevenueCheck file to properly format withholding tax values
- Dev: Fix FileTypeTransmitter to properly connect to SMB shares.
4.1.9 - 4.1.10
- 3rd-Party Payments: fix for Bolo ACH parser to handle multiple batches per file.
- Dev: New tests for JPMC processors.
- DataWarehouse: added models for tracking U3Actions (like invoice download). Supports new functionality for downloading all modified invoices from OpenInvoice since the last time it ran, for Data Warehouses.
- OpenInvoice: Fix to StaticMap handling in getADE().
- Dev: Fix to do_maintenance command to properly handle Service objects that don't have a do_maintenance() function.
- 3rd-Party Payments: [BETA] added support for AP Payment processing for clients using Welland Export or Bolo Connect
- Dev: Modified SMB connection mechanism to better handle and record error conditions.
- OpenInvoice: Added the optional ability to archive invoice XML files after processing.
- 3rd-Party Payments: Modified JPMC document to allow conditionally setting the document_type value.
- OpenInvoice: fix invoice pay cancel process to work with OpenInvoice API
- Dev: Fix errors related to moving to Python 3 from Python 2.
- Dev: new memorized decorator for speeding up processing of repetitive queries
- OpenInvoice: new stand-alone manage job for invoice pay cancel
- 3rd-Party Payments: added optional run_today() util function for processes that should not be run on days when the service provider is not open (weekends and holidays)... primarily used for integration with banking systems.
- OpenInvoice: fix for tracking AFE status and types that are longer than originally expected
- Dev: Added automated backup of tracking database to the do_maintenance script.
- Dev: Removed the need for defining database credentials in the client_django_settings.py file.
- Dev: Added option to force a processor to run regardless of the output of the "run_today()" function.
- Dev: Added more logging.
- Dev: Added update command to move old tracking data to new database.
- OpenInvoice: Fixed the way adp_processor handles queries that return the "complete=False" flag (used when downloading more than 1000 invoices at once).
- 3rd-Party Payments: Added BoloConnect/Welland queries for AP payment exports.
- Dev: Added more logging to base processors and server connectors
- Dev: Added ability for processor to handle cases where a source system is not defined.
- 3rd-Party Payments: continued work on Wells Fargo Payment File processor.
- 3rd-Party Payments: Added ability for JPMC check files to be split to multiple output files if number of lines exceeds a specific amount.
- OpenInvoice: Modified handling of CC gl-codes to fix problem with proper CC syncing for BoloConnect clients.
- OpenInvoice: Fix to invoice pay cancel process and invoice pay status tracking.
- Dev: Added prune function to the do_backup routine.
- Dev: Added better handling for encoding issues in master data.
- OpenInvoice: Added ability to skip reprocessing master data exports if they generate specific warning messages from OpenInvoice.
- 3rd-Party Payments: Wells Fargo AP payment processor functional
- Dev: Added code to prune status database backups.
- 3rd-Party Payments: Modified JPMC file writer to output lines in chunks instead of writing entire file from memory.
- Bolo: Modification to the way qty1 and qty2 are handled on invoices so negative quantities and quantities of zero will print in the Bolo output.
- 3rd-Party Payments: Modified WellsFargoCheck to exclude recipient address info for Credit Card payments where client is using PMP service.
- OpenInvoice: Fixed problem with CC sync for clients using BoloConnect.
- OpenInvoice: Added CC Sync warning message aggregator to better manage warnings from OI when a sync happens.
- Bolo: Fixed problem with archive routine for invoice that get rejected (not invalid) by Bolo.
- 3rd-Party Payments: Fix for Wells Fargo SFTP uploads.
- 3rd-Party Payments: Fix for Wells Fargo Check void handler.
- 3rd-Party Payments: Fix for Wells Fargo AP export file generator: no longer generate an empty file if there are no valid records to export, also only checks for the existence of "state" when a payee address has a US country_code.
- OpenInvoice: enhanced the error/warning handling of AFE and Cost Center sync responses from OpenInvoice. AFE inactivations/deletions that generate CC linkage warnings will no longer be treated as errors and won't trigger a reprocessing of the file.
- 3rd-Party Payments: Wells fargo exports that have foreign payee addresses without a state will get a default state of "XY" - per Wells Fargo's recommendation.
- OpenInvoice: Fix to GL code linkage for AFE and CC export (now works for DataBridge clients).
- OpenInvoice: set the explicit notification recipients for AFE and CC sync from the AFE_SYNC and CC_SYNC objects respectively.
- DataWarehouse: addition of track_invoices command to download OI invoices and store them in a SQL database.
- Dev: enhancement to get_specific_invoice to allow it to process a list of invoice IDs in a file.
- Dev: addition of diff_watcher development tool.
- OpenInvoice: added ability to download > 10,000 invoices from OpenInvoice API in a single pass.
- 3rd-Party Payments: enhanced error handling in owner sync
- Dev: enhanced timezone handling.
- Verian: enable Verian integration.
- Dev: refactor monitor.py into a proper Processor() instance.
- Dev: optimize calls to database to return object status values
- Dev: added integration_tests for connecting to Verian, Coupa, Wells Fargo
- Dev: added test to check for existance of live database.
- Dev: modified invoice-monitor test so it won't change live data on GL Server filesystem.
- Dev: separate out common config values from client config files to make deployments easier
- Dev: enhanced ability to track and convert datetime values using timezones.
- OpenInvoice: enhanced functions for setting invoice approver and invoice submit dates for OpenInvoice invoices
- Dev: continue the standardization of modules
- OpenInvoice: added ability to run the approved_invoice processor job without downloading any new invoice from the invoicing service provider using -s (--skip_download) option. Only invoices in the working directory will be processed.
- Verian: added support for PO integration with Verian in version 4.
- Verian: added new job that can set the status of an unapproved invoice to approved and exported in OpenInvoice so payment information can be sent. Useful for updating payment information on invoices that were manually added to Bolo.
- Dev: optimized functions for returing invoice status types from the tracking database for use in other queries.
- Dev: continued work on dynamic mapping parser functions. Not yet in use.
- Dev: converted the run_afe_sync and run_cc_sync jobs from the old controllers method to the new management/commands method.
- Dev: enhanced the upgrade script to include unapproved invoices for clients upgrading from U3Exchange 3 who used the PO Integration module.
- Dev: many additional unit tests and test enhancements.
- OpenInvoice: added ability to dynamically set payment terms on OpenInvoice to Bolo invoices.
- Dev: PEP8 cleanup
- Dev: added dropoff_path to ServerInfo object and it is now required when the server's connection type is fs, smb, ftp, sftp, http, or https
- Dev: cleaned up several old TODO items.
- Dev: added a reference to the ServerInfo instance used in creating U3Db instances as an attribute of U3Db.
- Dev: added common duplicate() method to U3ExchangeBase object.
- Dev: moved archive_export_file function to Processor object.
- Dev: modified DataSyncProcessor to use the current_file_info attribute so an instance of proc always knows which FileInfo instance it's working on.
- Dev: modifications to master data sync processes to optionally work for multiple FileInfo instances.
- Verian: added separate tracking tables for verian master data items.
- Dev: [beta] added OI invoice creation tester script (mimics user interaction via web interface to create an invoice)
- OpenInvoice: [beta] added objects for OI users and receipts
- OpenInvoice: added ability to upload Excel files as PO attachments to OI.
- Dev: moved Bolo AFE and CC objects to bolo_account_codes file. Modifications to afe and cc sync processes to use these objects.
- OpenInvoice: addition of gl_account and afe-cc-mapping tables to tracking DB.
- Verian: Port Verian PO integration from V3 to V4.
- Dev: [dev only] modified deploy script to force entire test suite to pass before code can be deployed to client upload directory
- Dev: Addition of Field() object for describing output field
- Dev: addition of path_join() to ServerInfo for dynamically writing paths directly in the config.py file.
- OpenInvoice: Optimizations to CC/AFE sync processes
- Dev: add filtering option to listFiles methods of all ServerConnector objects
- Dev: lazily connect to destination servers in DataSyncProcessors to speed up processing when no files need to be delivered
- Dev: added a number of new utility functions
- Verian: continue work on verian master data sync
- Verian: added verianlocation tracking
- Dev: update logging statements in run_master_sync
- Dev: fix the getDateFromString to use parser
- Verian: added verainlocations export. Fix syntax error in accounting_code delta
- Dev: update to log_server to properly handle binary strings and reporting events as info, warning, error.
- Dev: new tool for quickly updating config.py for testing different client setups
- OpenInvoice/Verian: fix handling of supplemental AFEs. Added a default blank value for verian-master-data mapping purposes
- Dev: add ability to run AFE export in test mode without pushing anything to OpenInvoice
- OpenInvoice: update adp AFE location handling to allow for multiples
- Dev: allows get_sepcific_invoice.py to work with a list of vendor*invoice_numbers or openinvoice_ids
- Verian: Added option to exclude vendor inactivate records from Verian vendor sync. Fix for PO export to OI when a client has multiple sites. fix for vendor expiration date determination when pulling from sqlite added default output for VerianAccountingCode CCs with no AFE (required in global strings).
- Verian: don't print ship-to if no gl-system-id exists, add option to skip tests in deploy.py, comment out the test_master_sync process
- Dev: Fixes to keep PO tracking entries from being created when run in test mode.
- Verian: updates to warning and error reporting in PO processing.
- Verian: add company site id to PO XML output for clients with multiple sites.
- Dev: move testing for connection to doPost method of SftpServerConnector.
- Verian: added archiving of PO files to Verian processor.
- Verian: added stashing for problem PO batch files to PO processor.
- Dev: added timeout for smtp sending (previous timeout was undefined and would block indefinitely)
- Dev: removed __str__() from AdpXmlBatch -- too many side-effects in self.as_xml()
- OpenInvoice: added tracking for multiple companies on a Cost Center.
- Verian: added new accounting_codes processor and master_sync process
- OpenInvoice: added option to include full-check amount instead of invoice-specific amount in remittance info when send back to OpenInvoice.
- Verian: fix for vendor-delta determination
- OpenInvoice: added logic to run_monitor to handle sending email notifications based on the company assigned to a particular invoice response... or not
- OpenInvoice: added tracking of company ID to Message object. Fixed the prepend method to actually prepend for HTML content (instead of replace it)
- OpenInvoice: changed name in notifications from ADP to OpenInvoice. Added tracking of company id to the Message instance when generated from a response
- OpenInvoice: config updates to support having company-specific email recipients for invoice responses
- Verian: added a way for clients to exclude fields from output even if Verian requires them
- Verian: modified the get_field_value function to return None and log a warning when a client tries to exclude a field that is defined as required
- Dev: moved client configs to their own repository. Updated tools and common_config to reflect this new reality
- Verian: fixed verian get_reference_id function to calculate an integer hash < 999999999 based on the given accounting code strings. Modified _get_df_attribute to be able to perform the job of getting the default-for value based on the cascading mapping defined in a client's config file. Function can now return a concatenated default-for value based on a mapping w Modified the output sequence for Verain AFE-based account codes so a client could have the AFE cascade before or after the GL account. Added logic to remove duplicate accounting code output strings for AFE/CC combos.
- Dev: add new tests for the update get_reference_id function
- Dev: added docstring and ValueError handler for idx_from_tuple_list
- Dev: updates to work on multiple development systems
- Verian: fix for vendor export query to include payment term description instead of code. Also updated verian cascading mapping so AFEs cascade from both cc and account
- Dev: made paths auto-generate from relative file info instead of absolute
- Dev: PEP8 cleanup
- Verian: added new _global_string function to move common logic to single location in VerianAccountingCode removed non-functional de-duplication logic removed code to create multiple CC instances for ccs with no company mapped (this is now handled by CC source export). modified stage_file to only create a new temp batch if the current batch has more than 1million items in it.
- Dev: added ability for CostCenter to create a new instance from another CC
- Dev: export companies can now be included in a FileInfo mapping for syncing with OpenInvoice CCs, AFEs.
- OpenInvoice: Added missing CC name to AFE-linked CC when getting from GL DB. Added default queries and a function to get CC company mappings and cache them. Added logic to properly map a cc to a company based on the combination of coding-flag and exception-companies. Made the unique ID for CCs be a combo of number and company in the tracking db.
- OpenInvoice: updates to CC export query for OpenInvoice sync required after changes to Verian sync process. Update to Bonanza's config to match what they had in gitlab deployed.
- Dev: modified absolute paths. Replaced with dynamic ~ expansion for user's home directory and os.path.join.
- Dev: update to adp_invoice AdpInvoice.from_invoice to set id and url
- OpenInvoice: add ignored warning messages from OpenInvoice during PO sync.
- Dev: allow the adp_processor get_invoice function to work from multiple processors.
- Dev: added the name of the destination system to the CC sync notification messages.
- Verian: added vendor name/number to PO sync notification messages.
- Verian: changed output of split-coded rate from decimal to % in the OpenInvoice split-coding template file.
- Bolo: fixed the way the coding_types flag works for bolo CCs/AFEs.
- Bolo: updated the missing default_gl_query values for Bolo GL linking
- Dev: add category, type, relation to accounting code tracking tables.
- Verian: update to verian cascading default-for algorithm
- Dev: add proxy handling to server connectors
- Verian: update verian PO parsers to handle attachments
- Bolo: add ability to specify AFE export query as two separate queries. Required for properly joining data at Vanguard.
- Wells Fargo: revenue owner sync now working in version 4
- Bolo: Fix default CC export queries to properly pull DEFAULT_COMPANY_ACCESS instead of CODING_FLAG
- Verian: Fix to Verian Accounting Code sync process to properly track deltas on calculated fields.
- Bolo: Fix for default GL queries
- 3rd-Party Payments: Fix for default payments queries
- Dev: made email footer a common part of all email messages from U3Exchange.
- Dev: enhance SftpServerConnector to work with a password protected private RSA key.
- Dev: enhance unit tests.
- Bolo: Fix for getting valid bolo export companies in cc export
- 3rd-Party Payments: updates to default queries for AP payment export
- Dev: fix for sftp upload process (set confirm to False for systems that automatically rename the uploaded file)
- Dev: fix for error caused by FileTypeProcessors where no attachments directory was defined
- JPMC: change to output file naming for JPMC sftp uploads.
- Dev: updates to unit tests
- Verian: added parser for column names in verian po export file (currently only used for troubleshooting)
- OpenInvoice: Fix for output of GL-Accounts when mapped to AFEs and CCs for OpenInvoice
- Verian: Enhancement for PO export to OpenInvoice to handle arbitrary attachments.
- OpenInvoice: Fix for Bolo invoice response parser when no image ref is included
- Dev: Fix for problems where getattr was being used on dicts incorrectly.
- Dev: Update to sendEmail to record all sent messages to the report directory for troubleshooting
- Wells Fargo: update to WellsFargo notification message
- Wells Fargo: Added new connection type for WellsFargo destination (smb)
- JPMC: enhancement to JPMC AP check processing to capture and notify on dollar amount value errors instead of raising an error.
- JPMC: fix for JPMC ap check processing and how it truncates payee names longer than 40 characters
- JPMC: fix for handling of staged_files.
- Dev: Added new generic file_sync processor.
- OpenInvoice: Fix for CC to GL Account mapping export.
- OpenInvoice: Fix for properly handling valid companies in CC export.
- Wells Fargo: port WF positive pay file handler to v4.
- 3rd-Party Payments: enhance bolo revenue check processor to handle invalid characters in input files.
- 3rd-Party Payments: Fix for properly handling staged files across multiple 3rd-party payment file types
- 3rd-Party Payments: removed old bank-system tests that are no longer valid
- Verian: stub out verian pay-cancel-processor
4.6.5 - 4.6.6
- Wells Fargo: port Wells Fargo ACH, Positive Pay, and Revenue check file handlers to version 4.
- Dev: enhancement for FileTypeProcessor to allow file mask to be "*" but to skip directories.
- JPMC: enhancement for JPMC AP payment processor to optionally move negative sign to end of value instead of beginning.
- JPMC: fix for JPMC ACH payment processor.
- Bolo: increase length of Bolo invoice response message storage to 10,000 characters.
- OpenInvoice: add ability for client to optionally ignore OpenInvoice Early Pay eligibility and always take the EP discount.
- OpenInvoice: fix for properly tracking changes to close dates and expiration dates in AFEs and CCs when syncing to OpenInvoice.
- 3rd-Party Payments: fix for properly setting source_file_name for Bolo ACH files
- JPMC: fix for properly handling credit memos in invoicing details for JPMC check files.
- Wells Fargo: fix for sending Positive Pay files to Wells Fargo.
- Dev: enhancement to the v3-v4 upgrade DB script
- Verian: enhancement to verian PO attachment handler to ignore empty strings separated by a delimiter.
- OpenInvoice: enhancement - add ability to set invoice header-level occurrence date using a custom function
- OpenInvoice: fix - syntax error in invoice payment status query when sending full check amount in OpenInvoice update
- Verian: enhancement - add ability to have a set of AFEs default-for all CCs in Verian AccountingCode integration
- Verian: enhancement - remove bolo's double-dot notation and replace with single in GL-account sync to Verian.
- OpenInvoice: enhancement - removed requirement that invoices with overriding accounting periods be placed in a hold queue. Now these invoices can be processed as a normal invoice with the assumption that Bolo's accounting-period-assignment-method is set to "I" for invoice.
- Wells Fargo: bug-fix - Wells Fargo PDP export (owner sync) fix for transaction ID.
- Verian: enhancement - add ability to include a multiplier-filter for Verian accounting code cascading.
- Wells Fargo: update to Wells Fargo check to set the payee name1 line equal to the first 60 characters of the Bolo NAME1 field, and set the payee name2 line equal to the remains of Bolo's NAME1 field, the Bolo NAME2 field, and the Bolo NAME3 field, if they exist. This was done to reduce positive-pay exceptions from Wells Fargo when a client is utilizing the Wells Fargo payee matching option in their Positive Pay process.
- Verian: Fix for missing Bill-to name and Ship-to name for PO import process with OpenInvoice.
- 3rd-Party Payments: Fix for pulling payees who have been deleted from Bolo and are showing up in the dataBridge with a NULL NAME1 value
- Verian: Added ability for PO integrations to include attachments of type .doc, .dot, .dotx, .docx
- OpenInvoice: Added ability to output an invoice as an OpenInvoice transaction upload TSV file
- Verian: modified Verian PO parser so it doesn't rely on the absolute location of data columns
- Verian: Fix for properly uploading multiple attachments to OI for POs.
- Dev: Fix for verian tests so they work for different client setups.
- Verian: addition of multiple fields to the Locations tracking feature (used for Verian integration)
- OpenInvoice: fix for logic error that would cause the last AFE processed to be skipped when syncing.
- OpenInvoice: enhancement for daily report to automatically set the status on any "stalled" invoices that has a voucher in Bolo to "ACCEPTED".
- 3rd-Party Payments: beta - begin work on PDS endpoint for Owner Relations Management System (ORMS).
- Verian: Fix for properly tracking active/inactive locations when syncing with Verian.
- 3rd-Party Payments: add getCustomValue filters to invoice bank-account
- OpenInvoice: add getCustomValue filters to invoice distribution company
- Dev: documentation updates. Add base_path to invoice when creating adp-invoice from file.
- 3rd-Party Payments: updates to Bolo Revenue Check processor including switch from float to demimal data type for handling revenue check amounts, as well as handling multiple contracts per check detail.
- OpenInvoice: added function to core.invoice to determine if an invoice contains a PO reference
- JPMC: update to JPMC check error handling to properly append messages without increasing the number of items processed.
- OpenInvoice: update to AFE model to allow operator value to be NULL
- Dev: update to tests to reflect changes.
- Verian: updates to verian's processInvoicePosts function to get it working for uploading invoices to Verian.
- 3rd-Party Payments: updates to bolo revenue check processing to properly handle contracts in payment details,
- Dev: convert float values to decimal.Decimal objects, and change __str__() to as_delimited_text().
- 3rd-Party Payments: Updates to allow BoloRevenueCheckFiles to be read, manipulated, and re-written.
- 3rd-Party Payments: Addition of PDS Owner Share end-point.
- Verian: fix to Verian invoice post processor.
- Dev: updates to tests to reflect changes.
- OpenInvoice: fix getVouchersForInvoice query to properly pull table name from config file
- 3rd-Party Payments: update to Bolo Revenue check parser to more accurately identify a check detail header line
- Wells Fargo: fix for properly limiting output length in RevenueOwner.getName() function.
- Dev: addition of clean_up function to RevenueCheckProcessor
- Dev: addition of new u3actiontype of po_sync to track when PO Sync process last ran
- JPMC: update to JPMC revenue file process to use output-file-prefix when one is specified
- Dev: Addition of a number of default settings to allow unit tests to run successfully in situations where a client's config does not contain all the necessary variables (for client's not using the Invoicing Integration Module). Several updates to unit tests are included as well.
- 3rd-Party Payments: Add ability for RevenueCheckProcessor to track which files it has successfully processed on a per-destination basis and only allow a file to be re-processed by a destination if it has not already succeeded. This feature includes an override option to force reprocessing by a specified destination.
- JPMC: Add ability to specify a custom page length for JPMC Revenue Checks (page 1, odd pages, even pages)
- Dev: Enhance data scrubbing in upgrade.py script
- Verian: Add ability to optionally use onbehalfof value or createdbyname as the requesitioner on a Verian PO
- OpenInvoice: update to voucher query in invoice daily report job to provide better performance for DataBridge clients
- Verian: Addition of po_closure_process.
- OpenInvoice: Addition of "Unable to resolve account..." to the list of response messages that do not require reprocessing for OI AFEs and CCs.
- Dev: PEP 8 updates.
- 3rd-Party Payments: fix the output display of interest values in Bolo Revenue file output when written in delimited text format.
- 3rd-Party Payments: allow YTD totals to be left out the Bolo Revenue file when written in delimited text format.
- Dev: add new config variable to allow tracking of CURRENT_FILE_INFO.
- Dev: fix processed count for InvoicePostProcessor.
- Verian: fix handle finding PO model records when a PO has more than one version.
- Verian: fix syntax error in PurchaseOrderStatus.json file.
- Verian: fix incorrect path in verian's createPurchaseOrderInvoiceMap function.
- Dev: Add dev tool to allow for testing a single invoice/PO conversion utilizing a client's configuration on a development system.
- Verian: fix for display of PO comments and PO line-item comments when converting to Oildex PO XML
- Bolo: refactor getAFE() for Bolo AFE export.
- Dev: fixed test_utils to work across platforms.
- Verian: fix for tracking errors in PurchaseOrderClosureProcessor.
- 3rd-Party Payments: Add ability to print product code and interest type descriptions on Revenue Check output files if desired.
- Dev: fix error tracking in PurchaseOrderClosureProcessor
- Dev: PEP 8 updates.
- Dev: switch all revenue check amounts from float to decimal.
- JPMC: separate out the generation of JPMC Revenue Check output from the creation of the output files.
- Dev: additional regression tests for JPMC Revenue Check processing.
- Dev: fix to allow Vanguard's invoice error notification recipient scheme to work.
- Dev: add a timeout for SMB disconnects. If timeout occurs, record error instead of hanging indefinitely.
- Dev: switch all floats to decimals.
- Dev: add time-to-run output to revenue payment job
- Dev: remove early binding from destination systems in revenue payment job
- Dev: removed debugging code from ap-payment-processor
- JPMC: fix problem with ap-payment-processor for JPMC.
- Verian: fix bug in InvoicePostProcessor when client is sending invoice post updates.
- 3rd-Party Payments: Add balance_amount and voucher_number to BoloInvoice.get_from_database function.
- 3rd-Party Payments: fix for error handling in BoloRevenueCheck file processor
- JPMC: Add ability to set custom values in JPMC AP check VendorRemittancePaymentDetail.
- JPMC: Add additional checks for calculated values in JPMC check files.
- Dev: fix for left-over floats in tests.
- Dev: convert all code that writes to a file in text mode to always use utf-8 encoding.
- OpenInvoice: removed default=True when sending Owner in the CC location field.
- Dev: additional logging in run_approved_invoice_processor
- Bolo: exclude DELETED records when querying Bolo DataBridge for invoice pay cancel records.
- Bolo: removed logic to include gl-accounts from AFEs that are supplements... turns out is was unnecessary.
- Dev: added logic to better handle situations where SFTP servers become disconnected between upload/download actions.
- Dev: enhancement to the set_as_approved_and_exported controller to allow it to be used on both approved and unapproved invoices
- Dev: misc. code refactoring
- Dev: fix incorrect count in log message in DataSyncProcessor
- JPMC: fix for file-name conflict that could occur when processing multiple very small payment batches for JPMC AP checks.
- JPMC: added a pause between file uploads when uploading multiple files to a single JPMC service. JPMC has indicated that uploading multiple files too quickly can cause issues on their end.
- Dev: fix for test_adp_invoice to work properly regardless of a client's custom function mapping.
- Dev: added regression test for set_as_approved_and_exported command.
- Dev: modified test_single (dev tool) so it can't run multiple instances at the same time.
- 3rd-Party Payments: added logic to properly handle JIB Netting in Bolo Revenue Payment files.
- EnergyLink: added EnergyLink end-point for Revenue Payment processing.
- JPMC: additional logging added to JPMC check processing.
- JPMC: modifed JPMC AP check processor to only create notifications if there was data to process.
- JPMC: added ability to specify multiple JPMC form codes when processing payments in a single file.
- JPMC: modified address-validation logic to only require State when the address country is US - JPMC check processing.
- 3rd-Party Payments: : added output file name to processor notifications for JPMC, PDS, and EnergyLink Revenue payment processors.
- 3rd-Party Payments: : fix error that would occur when tracking payments for vendors with missing address records.
- Dev: add custom function wrapping around all custom_supplemental_code fields.
- Dev: add custom function wrapping around the accounting-period date.
- OpenInvoice: removed logic for overriding bank account from bolo_invoice and moved it to adp_invoice and custom.
- OpenInvoice: fix error in getInvoice that could occur if the invoice number contained a single-quote
- 3rd-Party Payments: update the formatting of btu_gravity and price on BoloCheckDetailLines (revenue check processing)
- OpenInvoice: fix tracking record for invoices to properly track when conditional_discounts_taken
- 3rd-Party Payments: fix error in AP check processing that could occur if a previously paid check had a payee with missing address info
- fix test_end_to_end to properly get the ap_invoice_base_table_name from config.py
- JPMC: allow the dollar_cent() function to succeed when the value is greater than JPMC's per-check max by explicitly setting max_value to None. Used for summary totals.
- Dev: allow set_as_approved_and_exported to work for either approved or unapproved invoices
- Dev: remove unnecessary reference to INVOICING_SERVICE in verian_common
- OpenInvoice: added loop to HttpServerConnector.doPost function to allow it to re-try creating an http connection in the event of a socket error. Created a separate connect() function in HttpServerConnector to separate the server initialization with actual connection
- OpenInvoice: fix for invoice payment processor to handle invoice numbers that contain single-quotes
- Dev: update to test_single tool to allow the use of the dev system's mock bolo database
- Dev: added clean-up job to remove old processed files from the working/purchase_order/DONE directory
- Dev: added function to archive processed POs
- Bolo: update default AFE Export query to exclude AFEs that have a NULL AFE_TYPE value or who's TRIGGER_PURPOSE is 'DELETED' in DataBridge exports
- Dev: addition of re_export_flag to Invoice model
- Dev: add function to pull invoices with re_export_flag set
- Admin: add ability to reexport invoices based on the value of their re-export-flag in the tracking database
- Bolo: add BOLO_SERVICE variables that almost never change to common_config.py
- Dev: use defusedxml cElementTree for parsing XML files - speed and security increase
- EnergyLink: add FTP server connector option for EnergyLink
- OpenInvoice: fix for getSubmittedDate to properly pull re-submitted dates
- Dev: remove reliance on choice() from the confirmation-code function
- Verian: refactor verian PO from file method
- Verian: added functional tests for OI PO cancel
- Dev: updates to paths so tools c an be run from project directory
- Dev: dded the make-config script for initial generation of client test config
- Dev: update system requirements to cover Welland Export option
- Dev: fix test_verian so it works across multiple platforms
- Dev: update to license.py to allow it to be called from another script
- Verian: update expected test output to support inclusion of item-sku
- OpenInvoice: fix for setting the code_item.description field
- OpenInvoice: refactor _skip_reprocess function and include logic to ignore AFE type warnings when an AFE is being deleted/inactivated
- JPMC: update to JPMC ach processor to handle situations where an ACH file exists, but contains no payment records
- Bolo: update bolo-account-codes from_database function to handle situations where a faulty data-conversion project put the wrong data into the CC.DEFAULT.COMPANY.FLAG field
- Verian: add SKU to item name when processing POs so we can send that data to OI
- Dev: documentation update
- Dev: add logging to OpenInvoice do_maintenance function
- Verian: fix verian invoice processor to properly generate batch and zip files for upload to verian
- Dev: remove unnecessary print statements from tests. Update test_invoice_post_processor to focus on invoice_post instead of po_closure, as well as explicitly checking that the gerated output file is exactly what we expect
- Dev: updates to webservice components
- Verian: added PO cancel function
- Dev: add new function getLocalPath
- Dev: Add ability to use FTPS to FtpServerConnector
- Verian: Add PO Cancel provess in Verian to OpenInvoice integration. Refactor Functions
- Verian: Add mapping for subcode_number in PO integration (Verian to OpenInvoice)
- Dev: update to documentation. added Bolo requirements doc
- Verian: fix for writing account.sub_code when outputting PO XML and Split Coding Templates
- Dev: fix test_single so it does not import config
- Verian: fix for handling early pay discounts when creating Verian invoices
- Dev: don't run set_as_approved_and_exported if no GL_SERVICE is defined
- Verian: add handler for attempting to cancel/close a PO that is currently untracked
- Bolo: add ability to specify custom bolo query for invoice-pay and invoice-pay-cancel
- OpenInvoice: fix AFE sync to deactivate afes when status is 'A' and soft-close is False and close_date is past
- Dev: add option for windows 2016 to make_config
- Dev: documentation updates
- Dev: FixMissingImages can now download and recreate image ref for any invoice that came from OpenInvoice.
- Dev: fix for tests
- JPMC: fix for calculating previous payments on an invoice. Refactor amount formatting
- Dev: fix db-create tool to properly get all tables from a Welland db
- Dev: rearrange config to more easily test DataBridge or Welland db connections
- Dev: fix for parsing expire dates from sqlite (dev systems only)
- Dev: add module documentation to Bolo_check
- Dev: fix for unit tests
- Verian: leave out line-items with quantity = 0 and re-calculate item price always to properly account for all possible discounts (EP or otherwise). Refactoring
- Verian: fix for properly setting Verian invoice line-item prices for discounted lines
- 3rd-Party Payments: Add mapping for Residue Gas to Interest and Product types for Bolo Revenue Payments
- Dev: update FixMissingImages to allow for automatic download of attachments for invoices direct from OpenInvoice if necessary
- Wells Fargo: add better error handling
- Verian: add logic to OpenInvoice PO post processor to treat warnings about PRODUCT service code as successes
- Dev: update to documentation to include release notes
- Dev: fix for test_config to support new OpenInvoice testing environments
- EnergyLink: Fix for FTPS end-point
- Verian: send line-item unit price with 4 decimal places to avoid rounding issues on the verian side
- Bolo: strip non-ascii characters out of invoice number
- Dev: fix tests to work when ENERGY_LINK_SERVICE is None, and for new OpenInvoice test environments
- OpenInvoice: add config var and logic to support deactivate-only AFE/CC syncs between Bolo and OpenInvoice - no deletes will occur when set to True
- OpenInvoice: fix for CC sync when client is using the deactivate_only option
- Dev: update to onboard-api
- Dev: update to task_monitor
- Dev: addition of automated tool for checking deployment repositories Dev: addition of automated tool for monitoring Windows Scheduled Tasks
- OpenInvoice: fix CC file mask for simple reporcessing of CC export files when more than one exists on a given day Wells Fargo: Add missing CTX option to NACHA Standard Entry values
- Dev: in test scripts, all calls to .connect() should include the share and mnt_pt kwargs. Added \*args and \*\*kwargs to all def connect()s.
- Dev: add a test-single option for Revenue Check files
- OpenInvoice: fix for CC-to-GL Account mapping. System now appropriately accounts for the Bolo CODING_FLAG value. Clients who sync GL Accounts with their CCs can optionally limit the synced GL Accounts to only CCs that use the 'only' CODING_FLAG.
- OpenInvoice: fix for stalled HTTP connections by adding a 10 minute timeout to socket creation.
- Dev: update tests so clients not using invoice integration won't cause multiple errors
- Dev: add queuing to the sendEmail function to properly handle situations where an email notification fails to send due to a temporary connectivity issue.
- Dev: fix for check_repo function during deploy script
- 3rd-Party Payments: add ability to specify a custom payee query
- OpenInvoice: add ability to include JIB Decks when syncing CCs
- Dev: fix for tests when no invoicing service is specified
- Dev: add printout when running test_single with revenue_check
- Dev: added tool for generating list of AFE and CC Types
- OpenInvoice: fix for default CC export query for Bolo DataBridge clients
- Dev: Added real ftps testing option (must uncomment to use)
- Dev: fix doPut and doPost for FTPConnector
- Dev: added better error notification to FTP(S) testing.
- Dev: add source.txt file to output from deploy.py - lists source repo details
- WellsFargo: fix bug in how payment number gets bank account information stripped
- Dev: make the locale variable come from an environment variable
- Dev: add CustomException class to common_objects
- 3rd-Party Payments: add mail insert code to JPMC checks
- 3rd-Party Payments: add ability to pass all local variables to a CustomFunction when populating bank id and account
- Dev: fix config tests
- Dev: update test_single to properly load the client's REVENUE_CHECK_SERVICE configuration
- OpenInvoice: fix for using a custom function to pull a CodeItem.name value
- Dev: added tools to assist in deploying code to client sites
- OpenInvoice: add ability to send JIB Deck information along with AFE synchronizations.
- OpenInvoice: add ability to split CC export query up into separate SQL queries for client's who's system fails to perform a proper join
- Dev: addition of timezone name in django settings so logger will report times in local timezone instead of UTC
- OpenInvoice: add new daily report job for sending email notifications to separate recipients based on the buyer company
- Verian: Add ability to export invoices without tax, freight, nor discounts
- OpenInvoice: enhance JIB Deck linking for Cost Centers to allow for inactivates
- Dev: add new run_result for tasks that failed to launch due to already running
- OpenInvoice: added helper function to return hostname from OPEN_INVOICE_SERVICE address
- OpenInvoice: added helper function to return an URL for direct access to an invoice within the OpenInvoice Web Interface
- Oildex: addition of revenue sync module [beta]
- 3rd-party Payments: add logic to truncate city name if length is longer than 19 characters (a JPMC restriction)
- Dev: refactor invoice.getInvoiceFromImageRef() so it works with an external url as well.
- Verian: add ability to run the PO sync process without downloading anything new from the source system.
- Verian: fixed PO Daily Report so it will no longer list duplicate NEW POs.
- Dev: update copyright dates
- OpenInvoice: add ability for client to specify a custom function for setting Approver initials
- OpenInvoice: add ability to output GL Accounts to a Tab Separated Values file for upload to OpenInvoice via the web interface
- OpenInvoice: fix for PO upload to explicitly set the HTTP Accept header to application/json when posting PO cancel messages.
- OpenInvoice: added optional ability to limit incoming invoices to process based on custom filtering criteria.
- OpenInvoice: modified invoice attachment cleanup process to only clean attachments for invoices that have been successfully processed.
- Dev: add mapping to task_monitor to handle non-zero exit codes
- Dev: update master_config documentation
- Dev: fix spelling mistakes in documentation
- Dev: fix exception handler in PdsMixin
- Dev: refactoring
- OpenInvoice: add master data sync option for COA records
- OpenInvoice: additional error handling in invoice payment process to deal with invoices that have been deleted in Bolo
- Dev: split core.processors up into multiple files.
- Core: new processor added for generating custom reports
- Core: new JIB Deck tracking report
- Dev: update master_config to include documentation on OI spilt_coding_template_format
- OpenInvoice PO: add mapping of line-item part number to OpenInvoice Item Master.
- OpenInvoice PO: add option to include split-coding template in TSV format or XLSX format.
- Dev: fix for unit tests
- Dev: fix for database backup file format in do_maintenance for easier restores.
- Dev: remove reliance on custom __str__() functions.
- Core: new utility function for comparing date values
- Core: update JIB Deck report to include extra colums
- Dev: add logic to do_maintenance to remove expired archived files from DONE directories
- CDEX: continue work on Bolo/CDEX integration [beta]
- Core: update to Report processors to enable custom output for reports (new CustomReportObject)
- Dev: update to get_master_types to return proper AFE Type/Category mapping
- Core: update password de-obfuscation function so it works properly when password contains ~, |, or }
- Dev: updates to tests.
- OpenInvoice: added ability to sent payment re-issue information for payments that had previously been voided
- OpenInvoice: update to voided payment query. Void records will only be sent on the day of the void.
- Dev: remove old code.
- Dev: add task_monitor.py to deployment script. Also adding templates and static directories to deploy script.
- Dev: updates to master_config.py
- OpenInvoice: update to COA sync to only include unique minor accounts in export file. Fix to header.
- OpenInvoice: add transaction timestamp to void payment. Add check number to void payment
- Dev: addition of initial web interface to control toggling invoice filtering [beta]
- Dev: updates to tests
- Dev: fix task_monitor to work on Windows 2008-2016 systems
- OpenInvoice: add ability to include AFE Description field
- OpenInvoice: add ability to include multiple JIB Decks with AFEs (not just reporting deck)
- OpenInvoice: fix for invoice-pay-cancel process to include check number and void date in log entry
- OpenInvoice: add ability to specify type of payment (ACH, Check, Wire, etc.) when sending payment status updates
- Bolo: add error handling for dealing with invoice numbers that contain single-quotes.
- OpenInvoice: add ability to insert custom business logic into the approved invoice import workflow.
- Dev: update to bare_config to clean up unneeded items
- Dev: fix for tests
- Dev: update to bare_config, bare_custom and end-to-end tests
- Dev: fix for test_single to allow for multiple revenue output files
- OpenInvoice: fix for COA sync of updated GL accounts
- OpenInvoice: add ability to apply custom invoice number masking logic if client wishes to override default behavior
- EnergyLink: add ability for doPost function to make a connection to the FTPS server if one does not already exist
- Verian: add ability to extract PO attachments from archive file before sending to OpenInvoice
- JPMC: fix for generating multiple output files when more than MAX_NUM_RECORDS is exceeded in output file for JPMC checks
- OpenInvoice: fix for including PO file attachment title and description when uploading POs to OI
- Verian: fix to test of calculated discount total to account for calculated totals with more than 2 decimal places
- Verian: update to PO comment to only include the last received date, instead of date + timestamp
- Dev: add timer to test_single
- JPMC: performance improvements for revenue check processor
- OpenInvoice: allow for custom delimiter in supplemental codes when set up in OI.
- OpenInvoice: add the Missing Invoice Report script to version 4. This job will email a report of invoices that have been processed by U3Exchange and rejected by Bolo and not successfully reprocessed through U3Exchange. For informational purposes only. Not intended to be used as a reconciliation report.
- Dev: documentation updates
- Verian: add mapping for PO Approver and line-item serial numbers
- Dev: updates to deployment script to work on a Windows workstation
- Oildex: addition of generic file transmitters for sending data to the Oildex Platform site
- Dev: addition of cover.bat file to automate coverage tests on Windows systems
- OpenInvoice: fix for DEFAULT_PAYMENTS_FOR_INVOICE query to exclude voided payments. This was being included for some Welland Export clients
- EnergyLink: fix for FTPS file posting
- Dev: added ability to specify a base working path for a process within the init() function. Useful when testing with a temp directory
- 3rd-Pary Payments: added ability to skip download of new files as well as skip upload of completed files to the revenue payment processor.
- Dev: added reference to Processor instance to ServerConnector object and ability to set it from get_server() function
- Dev: added new unit tests
- Dev: refactor FileTypeProcessor to only connect to source if new data is getting downloaded.
- WellsFargo: fix to owner export processor to handle null values in address fields
- OpenInvoice: added ability to send an "invoice post" message to the OpenInvoice invoice log using a comment.
- Verian: fix for invoice discount calculation test
- Dev: enhance testing options by allowing processor working paths to be set dynamically at __init__().
- Dev: remove explicit tracking database disconnect from processors... django handles this implicitly. Allows multiple processors to run in the same thread.
- Dev: fix for cleanUpProcessingFiles() function to remove any xml invoice file in the processing directory for a given adp_id
- Dev: add new tests to increase test coverage
- Wells Fargo: added PDP integration for AP Vendors (PDP for Revenue Owners already existed)
- OpenInvoice: added ability to link GL Accounts to specific AFEs, instead of just AFE Type/Categories
- Dev: standardized the behavior of all ServerConnectors when posting in test mode
- Verian: fixed archiving of invoices and zipped invoice attachments from source system
- Dev: updated all mixin usage to ensure mixin is listed first in object definition
- OpenInvoice: fix for properly populating site when reading CC batch from XML file
- EnergyLink: add SFTP server connector option
- Dev: added tool for deactivating location in OpenInvoice when a large number of wells get renamed
- Verian: fix for ability to include contact email address when syncing Vendors
- Dev: fix for testing configuration on REVENUE_OWNER_SYNC
- Wells Fargo: fix for AP Vendor PDP process.
- Bolo: fix for bolo revenue detail lines to handle owner adjustment lines
- OpenInvoice: allow PO cancel of non-existent POs to be treated as a success instead of failure. It's safe to ignore when a PO is canceled before it is ever sent to OpenInvoice as a new PO.
- Dev: fix for archiving processed files on test systems
- Bolo: processor optimizations for parsing TR2350 files.
- 3rd-Party Payments: add option to halt revenue payment processing if a revenue file contains any Bank business rule violations
- Dev: addition of a default function that returns the value that was passed to it. Used as the replacement function when no custom function is defined.
- Verian: fix for discount amount calc/test when early-pay discounts are involved.
- OpenInvoice: Fix to allow mapping GL Accounts to AFEs from the CONTROL table, not just profile.
- Wells Fargo: Fix for logging status of master data sync processes.
- Dev: PEP8 and naming convention updates. Documentation additions
- Verian: added tracking of Location Discontinued values. Can be retrieved from source system as static values instead of just being dynamically determined.
- Wells Fargo: store a local copy of successfully processed revenue files. Useful for troubleshooting and long-term archiving.
- 3rd-Party Payments: addition of pre-processor function to allow manipulation of source files prior to processing by a destination.
- Verian: fix for syntax error in locations delta comparison query.
- All: fix error in FileTypeProcessor introduced by addition of pre-processor function in 4.17.0
- Dev: added U3Exchange instance name to footer of all email messages generated by U3Exchange.
- Verian: fix for attachment title so attachment links in OpenInvoice work as expected.
- Dev: fix for verian unit test.
- OpenInvoice: fix for getDate function to properly handle situations where a date object is sent instead of a datetime
- 3rd-Party Payments: fix Bolo Revenue file output for Withholding Tax line (add missing newline character)
- JPMC: add ability to include blank lines in a payment output file.
- OpenInvoice: added ability to link AFEs to GL Accounts by AFE Number, instead of just AFE Type.
- WellsFargo: fix for PDP export to allow for different biller-id values depending on ADPR (Revenue owners) or ADPP (AP vendors)
- Dev: fix for testing wells fargo processes
- Dev: update task_monitor to only display warning in subject line if problem jobs are prod system
- WellsFargo: add logic to ensure sum of invoice payment details is equal to the payment total. Skip processing of payments that fail this check. Send notification.
- 3rd-Party Payments: remove the date comparison when checking for new/changed payments. Causes issues then timezones are changed.