* IDEMPIERE-5503 Product Costs > Cost Movement > Field AMOUNT has inconsistent +/- signs
* IDEMPIERE-5503 Product Costs > Cost Movement > Field AMOUNT has inconsistent +/- signs
- refinement and added unit tests
* IDEMPIERE-5503 Product Costs > Cost Movement > Field AMOUNT has inconsistent +/- signs
- add unit test for lot level costing
* IDEMPIERE-5503 Product Costs > Cost Movement > Field AMOUNT has inconsistent +/- signs
- fix unit test error.
* IDEMPIERE-5503 Product Costs > Cost Movement > Field AMOUNT has inconsistent +/- signs
- add unit test for cost adjustment
* IDEMPIERE-5503 Product Costs > Cost Movement > Field AMOUNT has inconsistent +/- signs
- add unit test for physical inventory
* IDEMPIERE-5503 Product Costs > Cost Movement > Field AMOUNT has inconsistent +/- signs
- add unit test for PO landed cost
* IDEMPIERE-5505 : Add Value and PrintName on GL_Category
https://idempiere.atlassian.net/browse/IDEMPIERE-5505
* IDEMPIERE-5505 : Add Value and PrintName on GL_Category - Value is mandatory
* IDEMPIERE-5505 : Add Value and PrintName on GL_Category - set Value to 60 chars
* IDEMPIERE-5505: Add Value and PrintName on GL_Category - add Index on Value
* IDEMPIERE-5505 : Add Value and PrintName on GL_Category - Missing AD_Sequence for Value column
integrate patch from @CarlosRuiz-globalqss
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-5408 Allow or enforce login with specific tenant (FHCA-3823)
Show MFA for support users in System, even if they have roles in several tenants, they can just have MFA defined in System tenant
* IDEMPIERE-5408 Allow or enforce login with specific tenant (FHCA-3823)
- Change of approach, the MFA can be shown first when the client is defined, or when the user is defined to belong to a single tenant
- on the contrary, when we have same user/password in two tenants, the MFA must be delayed until the tenant is identified
- Reviewing this noticed that the Login locking/inactivity logic is working on the full users array, even if the user has a different password (so is a different user)
Fixed this to work just on the authenticated users - this is, those that have the same password in different tenants
* IDEMPIERE-5483 - Physical Inventory Doesn't Update Last Inventory Date on Specific Cases
* IDEMPIERE-5483 - requested changes
* IDEMPIERE-5483 - fixes
* IDEMPIERE-5483 - fixed fallen test case
* IDEMPIERE-3334: Adding support for Readonly Logic, Set Pressed Logic on custom toolbar button
* IDEMPIERE-3334: Fix as per Hengsin suggestion
* IDEMPIERE-3334: Renaming migration scripts, changing VARCHAR2(2000) to VARCHAR2(2000 CHAR) and fixing sql have line starting with @
* IDEMPIERE-3334: SQL Logic evaluate by using Evaluator.parseSQLLogic()
* IDEMPIERE-3334 : Adding support for pressed and readonly logic on Window->Tab->toolbar
* IDEMPIERE-3334 : Adding Hengsin't patch
* IDEMPIERE-3334 : removing ParseContext call
* IDEMPIERE-2398 Renamed FA_ProjectCreateAsset to "Create Asset from Project" and added/fixed broken parameters
* IDEMPIERE-2398 - improve error message of process
* - set asset value from project committed amount
* - set asset value back from project balance amount
- make the project balance amount editable
- add link to the asset addition at the end of the process
Co-authored-by: Chuck Boecking <chuck@chuboe.com>
* IDEMPIERE-5471 Refactoring of Payment Selection and Payment Print/Export form
* IDEMPIERE-5471 Refactoring of Payment Selection and Payment Print/Export form
- merge patch from Carlos
* IDEMPIERE-5463 Help on Role Panel selection page
- SysConfig LOGIN_SELECTION_HELP_URL defaulting to https://wiki.idempiere.org/{lang}/Login_Selection_Help
- added WebUtil.isUrlOk
- verify if the login and selection help page exists before opening, otherwise default to english version
* - rename SysConfig LOGIN_SELECTION_HELP_URL to LOGIN_SELECT_ROLE_HELP_URL
* - fix wrong SysConfig name
* IDEMPIERE-5057 Implement Deductible and non deductible input tax for purchasing and costing
- Fix error when user change invoice/order line to use parent tax
* IDEMPIERE-5057 Implement Deductible and non deductible input tax for purchasing and costing
- Miss MRMATax in previous commit.
* IDEMPIERE-5057 Implement Deductible and non deductible input tax for purchasing and costing
- Fixed order/invoice tax lines not created after save
* When user login with EMail MFA the MFA panel is not shown and the Processing message just keep spinning
* Changed the message TenantNotFound by FailedLogin to avoid a brute force attack to discover which tenants are valid in the installation
* IDEMPIERE-5451 Create a form SQL Query - similar to SQL process to execute queries (FHCA-3849)
* - fix wrong default in SysConfig
* - remove unnecessary annotation
* - process the query in a read-only transaction
* - commit not needed since this is readonly
* IDEMPIERE-5450 Form SQL Process has security issues
* - fix javadoc
* - remove unnecessary code
* - minor improvement
* - improve discovery of single word commands
- avoids the need of space in the SysConfig key
* IDEMPIERE-5349: Adding AlwaysUpdatableLogic on Column and Field.
* IDEMPIERE-5349: Making Always Updatable logic to work when isAlwaysUpdatable is false and iAlwaysUpdatable made higher priority
* IDEMPIERE-5349: fixing error SP2-0027 in oracle
* IDEMPIERE-5349 : Fixing AlwaysUpdatableLogic not set when isAlwaysUpdatableLogic is null
* IDEMPIERE-5349 : renaming migration script and updatong AD_Field_V and AD_Field_VT
* IDEMPIERE-5408 Allow or enforce login with specific tenant (FHCA-3823)
- Add column AD_Client.LoginPrefix
* - Implement logic to manage login prefix
- Add SysConfig keys LOGIN_PREFIX_SEPARATOR and LOGIN_WITH_TENANT_PREFIX
* - Rename methods as suggested by Heng Sin
* IDEMPIERE-5408 Allow or enforce login with specific tenant (FHCA-3823)
For security reasons is better to ask for MFA before showing additional information from the user.
Refactoring the panels to show the MFA panel as soon as the tenant is defined.
* - Add uniqueness validations on tenant creation
* - Fix the Forgot My Password functionality
* - Fix the Change Expired Password functionality
* - minor javadoc improvement
- remove a redundant comment, the method is already mark as deprecated
Co-authored-by: hengsin <hengsin@gmail.com>
* 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>