* IDEMPIERE-5354 Manage use case for microsoft OAuth2 preferred_username (FHCA-3757)
* IDEMPIERE-5354 Manage use case for microsoft OAuth2 preferred_username (FHCA-3757)
* Replaced PostgreSQL and Oracle connection pools with HikariCP.
Replaced C3P0 with HikariCP. HikariCP is a Apache licensed connection pool with substantially better performance and better resilience to failure (DB disconnects, etc.) then C3P0. Read more about it here: https://github.com/brettwooldridge/HikariCP .
Cleaned up the `getCachedConnection` method. With HikariCP there is no need to retry to obtain a connection since getting an connection will block until a free connection is available or until a timeout is reached (default 30 seconds) at which point an `SQLException` is thrown. This also removed calling `Runtime.getRuntime().runFinalization();`. HikariCP is currently configured to detect / log leaks when a connection hasn't returned to the pool for longer then 5 minutes.
Loading of pool config properties was cleaned up. Defaults are now loaded from a single file instead of defaults coming from both file and hardcoded properties. It is now also possible to specify any HikariCP property in the user pool property file.
Initialization of the datasource must happen in the `getDataSource()` method because at object construction not all JDBC config is known. However this method could (as far as I could tell) be called concurrently from multiple threads but had no mechanism to prevent initializing the DB pool multiple times. The variable in which the pool itself was stored (`m_ds`) also was not marked volatile or immutable which could lead to visibility issues. Instead of lazy initialization of the pool in the `getDataSource()` method the pool could probably better be initialized at object construction. However I wasn't able to achieve that without breakage therefor I made the initialization mechanism work correctly with concurrent invocations.
Various config options such as the `MaxStatementsPerConnection` options were removed because HikariCP doesn't support them.
* (Re)added Sequence time-out.
* IDEMPIERE-5326: Parsing error for report view if where clause and virtual column used in print format
* IDEMPIERE-5326: Fixing Compilation error
* IDEMPIERE-5326: Adding method back for backward compitability
* IDEMPIERE-5326: Adding constructors for backward compitability
Removed the method MRole.loadTableInfo which loaded the arrays: m_tableAccessLevel, m_tableName, m_viewName, m_tableIdName
and replaced all usage with visits to cached information from tables or columns
* IDEMPIERE-5376 CConnection and DB clean up
* IDEMPIERE-5376 CConnection and DB clean up
- More clean up
* IDEMPIERE-5376 CConnection and DB clean up
- Fix @Deprecated annotation
* IDEMPIERE-5393 - Allow rendering status line as widget/gadget in dashboard
* IDEMPIERE-5393 - css class for status line
* IDEMPIERE-5393 - update default theme version
* IDEMPIERE-5367 Logic expression IN doesn't works with quoted text
* IDEMPIERE-5367 Logic expression IN doesn't works with quoted text
- Fixed equal not working for quoted text with comma (e.g 'A,R,S')
* IDEMPIERE-5359 Unit test not working with Oracle
- Fix local trx not rollback for SQLException
- Add test for getSQLValueObjectsEx and getSQLArrayObjectsEx
* IDEMPIERE-5295: Trial Balance Report creates Opening balance per organization and setting opening date day before from date.
* IDEMPIERE-5295: Correction as per Hengsin's code review vomment.
* IDEMPIERE-5295: Opening Balance should be on first day of Period
* IDEMPIERE-5295: Removed unused import
* IDEMPIERE-5295: Fixing report view is not set on default print format
Co-authored-by: hengsin@gmail.com
* IDEMPIERE-5331 Create Production from Order (all Lines)
* Refactoring to remove redundant or unused code and parameters
* Clear the order line reference on production when voiding and reversing
* IDEMPIERE-5315 Mismatch in queries WWFActivity.getWhereActivities and DPActivitiesModel.getWorkflowCount
- Found that DPActivities is deprecated, so deprecated too the DPActivitiesModel
- Also found that DefaultDesktop had a dependency to show the total of DPActivities, refactored to do the same with the new DPDocumentStatus
- Moved the query to MWFActivity to use where required
- Refactored JDBC to Query
* Better name for method
* serialVersionUID
* IDEMPIERE-5057 Implement Deductible and non deductible input tax for purchasing and costing
* IDEMPIERE-5057 Implement Deductible and non deductible input tax for purchasing and costing
* IDEMPIERE-5057 Implement Deductible and non deductible input tax for purchasing and costing
- Fix rounding error
Found also two minor performance improvements:
- avoid counting users when statistics not allowed
- change the query where to 1=0, better for the optimizer
* IDEMPIERE-4723 - refactor MArchive.get to use the Query class instead of PreparedStatement, following best practices
* IDEMPIERE-4723 - refactor MArchive.get to use the Query class instead of PreparedStatement, following best practices
* IDEMPIERE-5088 Implement Bank Transfer as Transactional Document like Payment
* IDEMPIERE-5088 Implement Bank Transfer as Transactional Document like Payment
- default to charge and to bpartner from the corresponding from fields
- add DateAcct, C_ConversionType_ID and IsOverrideCurrencyRate columns
- remove mandatory org linked bp requirement
- rename window to Bank/Cash Transfer and deactivate existing Bank/Cash
Transfer process.
* IDEMPIERE-5088 Change Bank Transfer Process to use (optionally) the new document
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-5093 Scheduler cron pattern scheduling is always using server time zone
* minor fix for oracle/202203240830_IDEMPIERE-5093.sql
* IDEMPIERE-5093 cheduler cron pattern scheduling is always using server time zone
- add time zone comment for cronpattern field
- use fix format for elapsed time (day'hour:minutes:seconds.millisecond)
- use time zone formatting at server monitor
- include etc/gmt* timezone id. fix handling of invalid user input
- fix wrong editor (date) use for timestamp with time zone field
* IDEMPIERE-5093 cheduler cron pattern scheduling is always using server time zone
- Fix MSchedule.getNextRunMS call.
* IDEMPIERE-5093 Scheduler cron pattern scheduling is always using server time zone
- add T_Timestamp to Test table and window.
- fix date time editor doesn't capture seconds for timestamp with time
zone.
- date time editor: use tenant time zone (if set), fallback to browser
time zone.
- date time editor: fix processing of timestamp with time zone value.
- time zone editor: drop the confusing etc/gmt* entries and support
entry of GMT(+/-)hh:mm custom zone id.
* IDEMPIERE-5093 Scheduler cron pattern scheduling is always using server time zone
Fix NPE
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-5241 : bugfixes for charts
fix WhereClause, WinHeight, TimeUnit (see details in ticket)
* IDEMPIERE-5214 : Bugfixes for charts - fix TabEditor when no chart is defined on field
* IDEMPIERE-5056 Order and Invoice: Tax lookup interface
* IDEMPIERE-5056 Order and Invoice: Tax lookup interface
- add default value for MSysConfig.getValue call.
* IDEMPIERE-5232 : Chart field at tenant level
* IDEMPIERE-5232 : Chart field at tenant level - Change AccessLevel to System+Client
* IDEMPIERE-5232 : Chart field at tenant level - migration scripts to iD10
* IDEMPIERE-5232 : Chart field at tenant level - DataSource tab must be advanced
* IDEMPIERE-5232 : Chart field at tenant level - fix migration scripts
* IDEMPIERE-5232 : Chart field at tenant level - fix script
* IDEMPIERE-5224 Locator Field type Caching Improvement
- Replace M_Locator.get with MLocator ResultSet constructor
- Implement lazy loading for MLocatorLookup
* IDEMPIERE-5224 Locator Field type Caching Improvement
- Implement lazy loading without new constructor (as suggested by
Carlos)
* IDEMPIERE-4586 Update translation of Client to Tenant
* Exclude AD_Ref_List.Name from the update as it impacts too many constants generated in X_ classes
* * update the Updated column too so that it is easier to trace back which records have been updated (as suggested by Heng Sin)
* * Update some additional messages that becomes duplicated (as reported by Nicolas)
* * Add updates to AD_Tab.CommitWarning (as reported by Nicolas)
* IDEMPIERE-5214 : Add AD_Role.IsClientAdministrator
* IDEMPIERE-5214 : Add AD_Role.IsClientAdministrator - move scripts to i9
* IDEMPIERE-5214 : Add AD_Role.IsClientAdministrator - set value for new tenants
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-5206 - HTML Report CSS style - add AD_FieldStyle_ID on AD_PrintFormatItem table
* IDEMPIERE-5206 - migration scripts
* IDEMPIERE-5206 - AD_FieldStyle_ID check, styleBuilder check added
* IDEMPIERE-5206 - moved the added code block to the right place
* IDEMPIERE-5202 Implement auto save of current tab
* IDEMPIERE-5202 Implement auto save of current tab
- Fix auto save trigger for every keystore on text field.
* IDEMPIERE-5202 Implement auto save of current tab
- Fix handling of the confirmation dialog for close of tab.
- Focus tweak for child to parent tab navigation.
- Restore focus if user abandon closing of tab.
* IDEMPIERE-5202 Implement auto save of current tab
- Fix infinite error loop when auto save fail with error
* IDEMPIERE-5198 Print Format Cache do not reload Print Format Items
* IDEMPIERE-5198 Print Format Cache do not reload Print Format Items / add reset(int id) for the cache
* IDEMPIERE-5198 Print Format Cache do not reload Print Format Items / change cache key from String to StringBuilder
Co-authored-by: hengsin <hengsin@gmail.com>
* IDEMPIERE-5091 - Before Save Set Default Locator From Product Or Warehouse when creating m_inout programatically
* IDEMPIERE-5091 - inefficient methods replaced
Co-authored-by: Igor Pojzl <igor.pojzl@cloudempiere.com>
* IDEMPIERE-5184 Cost Adjustment sets incorrect cost for other schema when currency blank on header
- also add check to unit test
* IDEMPIERE-5184 Cost Adjustment sets incorrect cost for other schema
- add currency id check to minventory before save
* IDEMPIERE-5173 fix Accounting fact quantity incorrect
- also add unit tests
* IDEMPIERE-5173 remove c_uom_id check
* IDEMPIERE-5173 Use MMatchInv.isReversal() in preference to MMatch.getReversal_ID() > 0
* IDEMPIERE-5173 Update isReversal() method
- add new test for is Reversal() when reversing a credit memo
* IDEMPIERE-5169 OAuth2: add same email account on other client will break it on old client
* Fix wrong SQL - thanks to HiepLq
* Fix wrong parameters - thanks to HiepLq
* IDEMPIERE-5168 column AD_AuthorizationAccount.AccessToken is short on some case
- Allow reference Text with length 0 to be managed as CLOB/TEXT
- Increase AD_ChangeLog.OldValue/NewValue to 4000 to allow saving more information about changing long texts
- Change AD_AuthorizationAccount.AccessToken to CLOB/TEXT
- Change some important actual columns defined as Text Long, to Text with length 0 (this allows changelog, better 2Pack, encryption)
* Fix problem reported by Hiep Lq with Text/Text Long not shown correctly as encrypted
* IDEMPIERE-1104 : SysConfig for posting using bank statement line date
* IDEMPIERE-1104 : SysConfig for posting using bank statement line date - compare periods using IDs
* @nmicoud IDEMPIERE-1104 : SysConfig for posting using bank statement line date
change method's name and javadoc
* IDEMPIERE-5155 Inventory Document: Auto picking of storage record should ignore record with Serial
* IDEMPIERE-5155 Inventory Document: Auto picking of storage record should ignore record with Serial
add unit test
* Add org.compiere.model.MBankStatementLoader.getLastSavedLine() to allow further processing of the saved I_BankStatement record on plugins
* Increase size of columns:
I_BankStatement.EftMemo -> 4000
I_BankStatement.Memo -> 4000
C_BankStatementLine.EftMemo -> 4000
C_BankStatementLine.Memo -> 4000
I_BankStatement.LineDescription -> 1000
C_BankStatementLine.Description -> 1000
I_BankStatement.EftTrxType -> 255
C_BankStatementLine.EftTrxType -> 255
I_BankStatement.EftReference -> 255
C_BankStatementLine.EftReference -> 255
I_BankStatement.ReferenceNo -> 255
C_BankStatementLine.ReferenceNo -> 255
* Add process "Create Payment" on bank statement header to process all lines with pending payments to create
* IDEMPIERE-5152 : Add title on broadcast messages
* Broadcast messages : use all the width of the panel to display the message
* IDEMPIERE-5152 : Add title on broadcast messages
* IDEMPIERE-5152 : Add title on broadcast messages - model class for v9
* IDEMPIERE-5152 : Add title on broadcast messages - improve mobile usage
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
* Delete pr1130_PR.txt
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-5126 Virtual column lazy loading
Virtual columns are now loaded only whenever their respective getters are invoked. This functionality works irrespective of the PO constructor used.
Query class now uses lazy loading by default as well.
* IDEMPIERE-5126 Virtual column lazy loading
Have the model generator ignore virtual columns with the @SQL prefix, as
their generated getters would always return null.
* IDEMPIERE-5126 Virtual column lazy loading
Added quoting to virtual column names
* IDEMPIERE-5126 Virtual column lazy loading
Reload virtual columns if the record was reloaded.
* IDEMPIERE-5126 Virtual column lazy loading
Fixed class cast exception in unit test.
* IDEMPIERE-5126 Virtual column lazy loading
Support for loading selected virtual columns along with regular table
columns, skipping lazy loading.
* IDEMPIERE-5126 Virtual column lazy loading
Fine-grained virtual column loading support for Query.
* IDEMPIERE-5126 Virtual column lazy loading
Support for loading selected virtual columns along with regular table
columns, skipping lazy loading.
* IDEMPIERE-5126 Virtual column lazy loading
Improved support for the constructor PO.PO(Properties, int, String,
String...).
* IDEMPIERE-5126 Virtual column lazy loading
Refactoring. Reduced size of messages sent and received from database
engine when lazy loading virtual columns. Other minor changes.
* IDEMPIERE-5126 Virtual column lazy loading
Added testing assertions.
* IDEMPIERE-5126 Virtual column lazy loading
Silenced Eclipse warnings.
* IDEMPIERE-5136 : Set Messages at tenant level
* IDEMPIERE-5136 : Set Messages at tenant level : remove loop of clients to load messages
* IDEMPIERE-5136 : Set Messages at tenant level : fix migration scripts + fix imports
* IDEMPIERE-5136 : Set Messages at tenant level - callout to fill fields
* IDEMPIERE-5136 : Set Messages at tenant level - language field must be mandatory
* IDEMPIERE-5136 : Set Messages at tenant level - callout to fill fields (used at tenant level only)
* IDEMPIERE-5136 : Set Messages at tenant level - add IsActive check + close pstmt
* IDEMPIERE-5136 : Set Messages at tenant level - patch from Carlos
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-5136 : Set Messages at tenant level - check for active records on Trl table
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-5135 : Add a link in a Broadcast message to open a record
Credits go to devcoffee - sorry i didn't find Matheus Marcelino's github account
Co-Authored-By: muriloht <5605206+muriloht@users.noreply.github.com>
* IDEMPIERE-5135 : Add a link in a Broadcast message to open a record
fix suggested by hengsin
Co-authored-by: muriloht <5605206+muriloht@users.noreply.github.com>
* IDEMPIERE-5109 Release 9 Horizon
- Fill UUID in missing AD_TreeNodeMM_UU
* - IDEMPIERE-1052 - set as Search for High Volume tables
* - Fix supported versions in SECURITY.md
* - Script to set the Version number
* - Set credits and image
* - script to clean trailing space from elements
* - Set entity type EXT for Web Service tables
* - IDEMPIERE-4214 Javadoc: correct warnings on newest java version
* - Improvements to model generator classes
* - Model classes
* - Folders script maintenance new version
* IDEMPIERE-4262 on some condition, record insert by direct sql missing UUID
Solve AD_Element_Trl, AD_Process_Para_Trl, AD_PrintForm
* Add AcctSchemaDefaultCopy *_Acct tables, M_Product_PO, Fact_Reconciliation
* IDEMPIERE-5123: On location dialog and location Editor, Region translation is not respected.
* Update MRegion.java serialVersionUID
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* iIDEMPIERE-4214 Javadoc: correct warnings on newest java version / fix problem to generate javadoc again
* IDEMPIERE-4214 Javadoc: correct warnings on newest java version / Fix javadoc warnings
* IDEMPIERE-4836 Adding Access tab on Document Status (Activity) / fix unit test
* IDEMPIERE-4836 Adding Access tab on Document Status (Activity) / fix condition for access (must be AND instead of OR for role and user)
* IDEMPIERE-4882: Supproting warehouse To on inventory Move to filter locator
* IDEMPIERE-4882 On Inventory Move, Adding Warehouse and Warehouse To field on header / peer review
Co-authored-by: dpansheriya <deepakpansheriya@gmail.com>
* IDEMPIERE-4262 on some condition, record insert by direct sql missing UUID / fix role access uuids
* more on AD_Document_Action_Access
* Improve performance for trl recreate or insert - using update instead of record by record
* - add AD_PInstance_Log.AD_PInstance_Log_UU
* Change 188 reftables to use the ID for display - this displays the reference based on the identifiers of the table, making it consistent with Search/Table without reference
* Use the MSysConfig.IDENTIFIER_SEPARATOR for the cases where reference is displaying value and another column
* IDEMPIERE-4186 allow workflow to be suspended until after commit of actual transaction / fix Split Join = AND
* Add unit test for Split AND
* Fix test case - commit and cleanup the changes to workflow
* IDEMPIERE-5065 Material Receipt Line not available for matching after reversal of Match PO
* IDEMPIERE-5065 Material Receipt Line not available for matching after reversal of Match PO
Fix unit test
* IDEMPIERE-5065 Material Receipt Line not available for matching after reversal of Match PO
Remove unreliable and potentially dangerous match po consolidation
* IDEMPIERE-5078 - M_inout movementtype add to before save
* IDEMPIERE-5078 - shared logic between CalloutInOut.doctype and MInOut.getMovementType
* IDEMPIERE-5078 - javadoc added (#1038)
Co-authored-by: Igor Pojzl <igor.pojzl@cloudempiere.com>
* IDEMPIERE-2172 Attribute set with mandatory type = When Shipping not working
Fix reversal and add more unit test
* IDEMPIERE-2172 Attribute set with mandatory type = When Shipping not working
Use constant for movement type checking
* IDEMPIERE-2172 Attribute set with mandatory type = When Shipping not working
* IDEMPIERE-2172 Attribute set with mandatory type = When Shipping not working
- added MTransaction
- added reversal handling
* IDEMPIERE-5052 Date Min/Max Validation wrong with 5 digit years
* IDEMPIERE-5052 Date Min/Max Validation wrong with 5 digit years / enable for Cost+Price and String
* IDEMPIERE-5050 Service startup freeze
Switched all annotation-based factories to asynchronous class scan.
* Deferred MIssue record creation
Log errors on the database after all model factories are initialized.
* Moved webservice model classes over to its own package
Model factories WS_ModelFactory and AnnotationBasedModelFactory were
overlapping on the org.compiere.model package. This produced class
loading problems since the base bundle has no visibility over the
webservices bundle (e.g.: MWebservice).
* Minor changes
* IDEMPIERE-4858 : Helper process "Make Table a Document" - fixes for translation tables
see details in tickets
* IDEMPIERE-4858 : Helper process "Make Table a Document" - add TableIndex records
* IDEMPIERE-4858 : Helper process "Make Table a Document" - AD_Message / tick IsTranslated on main table
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
* Delete pr990_PR.txt
commited by error
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4900 SQL statement added as an option to define WF Next Node Condition
Base on pull request 813 (Anton Mostovenko) and patch from
IDEMPIERE-1832 (Deepak Pansheriya)
* IDEMPIERE-4900 SQL statement added as an option to define WF Next Node Condition
Incorporate patch from carlos
* IDEMPIERE-4900 SQL statement added as an option to define WF Next Node Condition
Incorporate patch from Carlos
* IDEMPIERE-5039 Negative Lost Sales Quantity
* IDEMPIERE-5039 Negative Lost Sales Quantity
* IDEMPIERE-5039 Negative Lost Sales Quantity
add unit test
* IDEMPIERE-5029 User can make Shipment/Receipt Line Product different from Order Line Product
* IDEMPIERE-5029 User can make Shipment/Receipt Line Product different from Order Line Product
Merge patch from Carlos
* IDEMPIERE-5029 User can make Shipment/Receipt Line Product different from Order Line Product
Make consistent with previous patch - always use oLine.M_Product_ID for
reservation
* IDEMPIERE-5029 User can make Shipment/Receipt Line Product different from Order Line Product
add safe guard against oLine is Charge and sLine is Product.
* IDEMPIERE-5029 User can make Shipment/Receipt Line Product different from Order Line Product
- need to apply the oLine.getM_Product_ID changes to reservation log
too.
* IDEMPIERE-5029 User can make Shipment/Receipt Line Product different from Order Line Product
More fix for update of qtyreserved not using product id from oLine.
* IDEMPIERE-5029 User can make Shipment/Receipt Line Product different from Order Line Product
update of qtyreserved: should use warehouse and issotrx from order too