Fixes:
org.adempiere.exceptions.AdempiereException: Cross tenant PO reading request detected from session 1009629 for table AD_UserDef_Win Record_ID=1000002
at org.compiere.model.PO.checkValidClient(PO.java:5000)
at org.compiere.model.PO.<init>(PO.java:212)
at org.adempiere.model.GenericPO.<init>(GenericPO.java:81)
at org.compiere.model.MTable.getPO(MTable.java:598)
at org.compiere.model.Query.list(Query.java:286)
at org.compiere.model.MUserDefWin.getAll(MUserDefWin.java:107)
at org.compiere.model.MUserDefWin.getBestMatch(MUserDefWin.java:160)
* IDEMPIERE-4577 Problem creating an invoice vendor negative after the shipment
* IDEMPIERE-4577 Problem creating an invoice vendor negative after the shipment
Add unit test
* IDEMPIERE-4268 Fix recursive call to PO
Found a case where PO.checkValidClient fails, and then because of log.severe it tries to create a record with MIssue, and the PO.checkValidClient fails in MIssue, and is called recursively until it fails with a "Trx.run: Transaction timeout."
* IDEMPIERE-4268
- Improve error message
- Fix problem with valid cross-tenant reads in MRegion and MWorkflow
* IDEMPIERE-4567 Resetting payment allocation to a charge leaves wrong BP Balance
MAllocationHdr.updateBP was broken, the form Payment Allocation worked just because it was calling bpartner.setTotalOpenBalance() at the end
so, I refactored the MAllocationHdr.updateBP and before/afterDelete to call bpartner.setTotalOpenBalance instead if the broken algorithm
Unit test added for allocating and deleting a customer invoice, a vendor invoice, and a charge
* IDEMPIERE-4567 Resetting payment allocation to a charge leaves wrong BP Balance
- Fix peer review changes requested by @hengsin
- Detected double call to bpartner.setTotalOpenBalance in WAllocation
- Detected some business partners in GardenWorld with wrong TotalOpenBalance or SO_CreditUsed, added migration script to fix it, it made more complicate to write unit tests as the data was wrong
- Deprecate zk form WTranslationDialog and controller TranslationController
- Move the logic to a java process org.idempiere.process.TranslationImpExp
- As a process works in mobile, can be called via webservices, tested with fitnesse, etc
- Importing leaves a better and readable log of each file processed
- Importing/Exporting gives feedback to the user about the file being processed
Side note:
- To standardize the menu - renamed the "Initial Client Setup Process" to "Initial Client Setup"
Improvements over the previous form:
- can process the files from the zip in root folder, or in internal folder with the name of the language
- can process a URL http/https to download the zip file
* Revert "IDEMPIERE-3340 Fixes for oracle migration scripts (#346)"
This reverts commit db7b9db43c.
* Revert "IDEMPIERE-3340: Tree Structurable User Favorite (#334)"
This reverts commit 01d52fbfef.
Fix error reported by @hengsin
Doc_Invoice.getValidCombination_ID: NO account Type=4
Make explicit the deprecation in code and hide the deprecated account fields on IDEMPIERE-362
* IDEMPIERE-4516 InvoiceCustomerTest show NPE at console
add NPE check
* IDEMPIERE-4516 InvoiceCustomerTest show NPE at console
- add way to defer the immediate posting of doc that's means to be
posted in the processing of docpostprocess of the source document.
- add severe log check to InvoiceCustomerTest
- DocumentEngine should skip Doc from DocPostProcess that have been
posted
* IDEMPIERE-4499 zk9.5 - Popup menu disappear quickly for buttons on the More area
* IDEMPIERE-4499 zk9.5 - Popup menu disappear quickly for buttons on the More area
remove unuse code.
* IDEMPIERE-4499 zk9.5 - Popup menu disappear quickly for buttons on the More area
add sysconfig record for ZK_TOOLBAR_SHOW_MORE_VERTICAL
* IDEMPIERE-4452 Allow pricelist schema lines to be dependent of vendor categories and to use entries in m_product_po not marked as current vendor if vendor is selected.
* IDEMPIERE-4452 modified update removed
* don't check for accidently set IsIgnoreIsCurrentVendor where it doesn't change anything.
* IDEMPIERE-4452 set IsIgnoreIsCurrentVendor to false ('N') when no business partner given.
* IDEMPIERE-2902 UX: Implement Radio buttons
Integrate contribution from TrekGlobal
TC-188 Port RadioGroup field editor from AP2-19
added "Radio Group List" field type
* IDEMPIERE-2902 UX: Implement Radio buttons
Peer review
* Configure correctly wrong Validation Rule
* Fix wrong DisplayLogic from this ticket and also from other recently added features on fields:
Attribute > Attribute > Reference Key
Attribute > Attribute > Dynamic Validation
Info Window > Column > Reference Key
Info Window > Column > Dynamic Validation
Registration Attributes > Attribute > Reference Key
Table and Column > Column > Dynamic Validation
Table and Column > Column > Dynamic Validation (Lookup)
Table and Column > Column > Reference Key
Web Service Security > Web Service Field Input > Reference Key
Window Customization > Field Customization > Reference Key
Window Customization > Field Customization > Dynamic Validation
Window Customization > Field Customization > Dynamic Validation (Lookup)
Window, Tab & Field > Field > Reference Key
Window, Tab & Field > Field > Dynamic Validation
Window, Tab & Field > Field > Dynamic Validation (Lookup)
* For testing and UX, configure as Radio Group:
Broadcast Message > Broadcast Message > Target
Field Group > Field group > Field Group Type
* IDEMPIERE-2902 UX: Implement Radio buttons
* For testing and UX, configure as Radio Group in detail tab:
Info Window > Process > LayoutType
* IDEMPIERE-2902 UX: Implement Radio buttons
- Fix radio group editor lost track of selectedItem after page detached
and attached
- Standardized the construction of editors from editor factory
- Remove unnecessary refresh for list/lookup based readonly editors
created by grid view (fixed editor is not readonly during init())
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4498 Performance: add cache for osgi services factory
add cache for tableName -> IModelFactory
* IDEMPIERE-4498 Performance: add cache for osgi services factory
implement cache for the discovery of osgi services
* IDEMPIERE-4498 Performance: add cache for osgi services factory
added unit test
* IDEMPIERE-4128 Matched invoice posting with wrong precision based on transaction currency instead of schema currency
* IDEMPIERE-4128 Matched invoice posting with wrong precision based on transaction currency instead of schema currency - Added MatchInvTest.testMatReceiptPostingWithDiffCurrencyPrecision test case
* IDEMPIERE-4058 - tab editor: new options for editing and customizing fields (window customization)
* IDEMPIERE-4058 tab editor: new options for editing and customizing fields (window customization)
Fix issues with migration scripts
Co-authored-by: muriloht <muriloht@devcoffee.com.br>
* IDempiere-2999: on Attribute adding all reference type support except path, images.
* IDEMPIERE-2999 : Removing isQuickForm reference from migration script and fixing url issue.
* IDEMPIERE-4495 github code scanning alerts
Failure to use secure cookies
* Failure to use secure cookies - one more
* Fix: Arbitrary file write during archive extraction ("Zip Slip")
* Fix: Resolving XML external entity in user-controlled data
* IDEMPIERE-4211 Schedulers launched twice - problem with RunOnlyOnIP null running on load balancer
add 1 to 3 minute delay to wait for hazelcast service
* IDEMPIERE-4211 Schedulers launched twice - problem with RunOnlyOnIP null running on load balancer
move waiting to background thread
add MONITOR_INITIAL_WAIT_FOR_CLUSTER_IN_SECONDS and
MONITOR_MAX_WAIT_FOR_CLUSTER_IN_SECONDS sysconfig
Fix issue with
java.lang.IllegalStateException: PO is Immutable: org.compiere.model.MRecentItem
at org.compiere.model.PO.checkImmutable(PO.java:1573)
at org.compiere.model.PO.set_Value(PO.java:733)
at org.compiere.model.PO.set_Value(PO.java:721)
at org.compiere.model.X_AD_RecentItem.setAD_Role_ID(X_AD_RecentItem.java:123)
at org.compiere.model.MRecentItem.addModifiedField(MRecentItem.java:234)
* IDEMPIERE-4482 Mobile Improvements
* IDEMPIERE-4482 Mobile Improvements
minor line height fix for process dialog's message area
* IDEMPIERE-4482 Mobile Improvements
- fix issue with grid view column header height
- add customize grid view button to detail pane
- always show message as notifications for mobile
- fix some mobile layout issues
- default desktop font size to 14px
* IDEMPIERE-4490 Set default Contact/User in SO, Invoice, M_InOut
* Ran modelgenerator again with the new field = null
* IDEMPIERE 4490 - Update the migration scripts to 7.1 and set Bill_User_ID to null
* IDEMPIERE 4490 - Update the migration scripts to 7.1
* Change field name from Invoice Address to Invoice Contact / Ship Address to Ship Contact
* IDEMPIERE-4490 Add logic to CalloutOrder.bpartnerBill
* IDEMPIERE-1604 - Extend features for Window Customization
* change oracle data type
* oracle replace at sign to chr 64
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-2955: Adding Attribute Set Type to use attribute set for different purpose
* IDEMPIERE-2955: Fixing migration files swept between Oracle and postgresql folder.
* IDEMPIERE-2955: Fixing oracle migration script having mistakenly deleted comments
* IDEMPIERE-4467 Add caching to UserDefTab and UserDefField
* IDEMPIERE-4467 Change CCache to ImutablePOCache
* IDEMPIERE-4467 Window Customisation - Change cache Get and Put Methods
Change cache Get and Put methods to have consistency with ctx parameter.
* IDEMPIERE-4287 Cache API not thread safe and inconsistent with Context
add support to make PO immutable
* IDEMPIERE-4287 Cache API not thread safe and inconsistent with Context
- added thread safe Immutable and Copy cache implementation for PO.
- migrate most of PO cache to immutable and copy cache.
- added pos sales order test.
* IDEMPIERE-4287 Cache API not thread safe and inconsistent with Context
- add test case for initial client setup and bank statement
- fix error for image editor, location editor, locator editor, initial
client setup, complete bank statement and migrate storage provider.
* IDEMPIERE-4287 Cache API not thread safe and inconsistent with Context
- added ImmutablePOSupport interface. Model class implement this
interface for immutable PO support.
- remove usage of cache for transaction table (rfq, invoice, inventory).
- add getCopy method to some model class to support getting an
updateable copy of PO from the otherwise immutable PO cache.
- the added getCopy method is use to return updateable PO for indirect
PO reference, for e.g MColumn.getAD_Table() and MOrderLine.getProduct.
* IDEMPIERE-4460 : User suggestions for field/context help : check permission
new method to check exclusion of a table for current role, used to determine if popups should be displayed or not
* IDEMPIERE-4460 : User suggestions for field/context help : check permission
Following @globalqss's recommandations : rename the method + add more controls inside
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4173 Wrong GL postings for matched invoice in RMA/Vendor Return/Credit Memo
* IDEMPIERE-4173 Wrong GL postings for matched invoice in RMA/Vendor Return/Credit Memo - Added test case
* IDEMPIERE-4067 : Support for Under/Over line and Blank line in finacial report line.
* IDEMPIERE-4067 : Adding support for blank line export in CSV, HTML, Excel. Also allowing to show description if provided. fixed all review comments fron Carlos Ruiz
* IDEMPIERE-4066: Adding 'Relative Period To' on financial report column which allow to specify period range to produce YoY. QoQ like comparision report.
* IDEMPIERE-4066: Fixing defaulting RelativePeriodTo to Null issue
* IDEMPIERE-4066: Fix as per Carlos review.
1. Fixing compilation issue
2. Moving Column ID constants to systemIDs
3. Updating serial version for MReportColumn.
* IDEMPIERE-4066: Reverted GridField class changes and configured defailt for RelativePeriodTo to be 'NULL'
* IDEMPIERE-1709 / IDEMPIERE-2624 Cant confirm 0 qty on Movement Confirmation
Implement void for movement confirm
* IDEMPIERE-1709 / IDEMPIERE-2624 Cant confirm 0 qty on Movement Confirmation
Voiding the confirmation voids the inventory move too
* IDEMPIERE-1709 / IDEMPIERE-2624 Cant confirm 0 qty on Movement Confirmation
Similar case found in MInOut - cannot void because of catch-22
Allow to void MInOut -> it automatically voids all pending confirmations
* IDEMPIERE-1709 / IDEMPIERE-2624 Cant confirm 0 qty on Movement Confirmation
Set quantities in zero when voiding movement confirmation
* IDEMPIERE-4424 Concurrent update not prevented in Grid View
Grid View - change click navigation to follow the same flow as toolbar
navigation.
* IDEMPIERE-4424 Concurrent update not prevented in Grid View
GridTable - added Updated and Processed concurrency checked against PO.
* IDEMPIERE-4424 Concurrent update not prevented in Grid View
Incorporate fix suggested by Carlos
Fix problem reported by Anozi Mada
Fix issue found when testing - postgresql was failing with error
org.postgresql.util.PSQLException: ERROR: la columna «c_doctypereval_id» es de tipo numeric pero la expresión es de tipo text
Avoid creating empty journal
* IDEMPIERE-4425 Find Window improvements
Fix for printing report parameters - it is printing OPERATOR_EQUAL on reports instead of =
* IDEMPIERE-4425 Find Window improvements
Previous commit broke the find function - must use SQL for Values
* IDEMPIERE-2216:when make a warehouse order (in counter document test). new document material receipt is link with warehouse order not link with purchase order. it's correct?
* IDEMPIERE-2240:when create "On Credit Order" in counter document mode. invoice vendor make wrong reference to sale order
* IDEMPIERE-2257:can't complete invoice (vendor) generate from "order credit" by counter.
Integrating patch from Hiep hieplq@hasuvimex.vn
Changed syntax to be more readable
Used Processed instead of checking list of DocStatus
Co-authored-by: hieplq@hasuvimex.vn <hieplq@hasuvimex.vn>
* IDEMPIERE-4422 : GL Distribution - add SeqNo
Add SeqNo column on GL Distribution to allow users to choose the lowest one when several records are retrieved.
Fix typo
* IDEMPIERE-4422 : GL Distribution - add SeqNo
Fix a missed typo
* IDEMPIERE-4386 setAD_User_ID() breaks when logged in as System user
Allow saving Tab Customization for System user
* IDEMPIERE-4386 setAD_User_ID() breaks when logged in as System user
Fix copy/paste error
* IDEMPIERE-4386 setAD_User_ID() breaks when logged in as System user
Implement same suggestion on all the classes where setAD_User_ID must be allowed to explicitly set to System
There were already two classes with the Override approach: MUserPreference and MUserRoles, so this commit is to apply the same approach to all the classes with same approach
* IDEMPIERE-4406 Performance: PO Cache should not always reset all entries after update of one record
PO update - reset cache by record id
* IDEMPIERE-4406 Performance: PO Cache should not always reset all entries after update of one record
refine unit test
* IDEMPIERE-4406 Performance: PO Cache should not always reset all entries after update of one record
add cache reset fix for delete
* IDEMPIERE-4406 Performance: PO Cache should not always reset all entries after update of one record
Fix exception when cache is empty
Expose hidden cache reset exception
* IDEMPIERE-4389 Implement Copy Constructor support for PO
Implement PO support for copy constructor
* IDEMPIERE-4389 Implement Copy Constructor support for PO
deprecate clone
replace clone with copy constructor
* IDEMPIERE-4389 Implement Copy Constructor support for PO
add unit test for MPrintFormat copy constructor
* IDEMPIERE-4389 Implement Copy Constructor support for PO
fix wrong import
* IDEMPIERE-2624 Cant confirm 0 qty on Movement Confirmation
* IDEMPIERE-2624 Cant confirm 0 qty on Movement Confirmation
Add validations to avoid editing lines if there are pending confirmations, in movement and shipment/receipt
add native postgresql unit test for GenericPaymentExport
remove unnecessary static and fix sql exception doesn't stop the export
replace Oracle (+) with standard sql outer joint
* IDEMPIERE-4372 Performance: only add log record and sql statement to context if trace/debug level <= debug/info
Minor clean up and thread safe fix for CLogErrorBuffer and MIssue
Only add LogRecord and SQL to context if TraceLevel is <= INFO
* IDEMPIERE-4372 Performance: only add log record and sql statement to context if trace/debug level <= debug/info
add back DB.isConnected check
remove redundant CLogErrorBuffer call from DB.isConnected
more fine grained synchronization
close trx in finally block.
m_directNullKey interfere with CSV Import Loader due to trx that's not
committed yet.
insert mode: update window/tab context after save.
Ability to define a dedicated mail template for the EMailTest process (via a client level SysConfig).
Output of the process was wrong (always successful even when the email was not sent)
* IDEMPIERE-4356
Using Hiep's idea
Co-Authored-By: hieplq <hieplq@users.noreply.github.com>
* IDEMPIERE-4356
Following Carlos's tests/advices, add current System Properties to the Properties initialized for the email
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
Co-authored-by: hieplq <hieplq@users.noreply.github.com>
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-4351 : MJournal/MJournalLine : fill mandatory values (if missing) in beforeSave methods
GL_Journal.C_AcctSchema_ID
GL_Journal.C_ConversionType_ID
GL_JournalLine.C_Currency_ID
GL_JournalLine.C_ConversionType_ID
* IDEMPIERE-4351 : MJournal/MJournalLine : fill mandatory
Based on Carlos's patch :
Fix issues in PO.java that are not allowing the beforeSave methods that complete organization to work
* This also has the effect of checking and setting the organization restrictions after beforeSave and EventHandlers have finished, potentially fixing developer errors on org not respecting the configuration on Client Share
* In MJournalLine move the setting of org to the top because the getOrCreateCombination method works with the org value
Co-Authored-By: Carlos Ruiz <carg67@gmail.com>
Co-authored-by: Carlos Ruiz <carg67@gmail.com>
* IDEMPIERE-1026 Button on table to create automatically the window
* IDEMPIERE-1026 Button on table to create automatically the window - Fixed script
* IDEMPIERE-1026 Button on table to create automatically the window - Header update
* IDEMPIERE-1026 Button on table to create automatically the window - Follow best practices, no hardcoded IDs, no mixed cache and transaction
* IDEMPIERE-1026 Button on table to create automatically the window - Carlos PR
Starting point is the open source version of Compiere org/compiere/process/PriceListCreate.java
This version adds column M_DiscountSchemaLine.Description and rounding options for Hundred and Thousand
Then added to this version the iDempiere changes related to use correctly the T_Selection with AD_PInstance_ID,
and the changes related to Ticket #1002354: Price List Enhancement - which added Product Costs as an option for getting the initial price
Fixed many wrongly defined columns #resolve IDEMPIERE-4334
Added a fix to DisplayType - running synchronize column in C_Conversion_Rate.C_Currency_ID_To and A_Asset_Split.A_Asset_ID_To was throwing error
* IDEMPIERE-4330 New tables are not logged - requires a server restart
* IDEMPIERE-4330 New tables are not logged - requires a server restart
Add synchronized to isLogged and resetLoggedList as advised by Heng Sin
* IDEMPIERE-4329 Cleanup eclipse warnings
Clean unused imports
* IDEMPIERE-4329 Cleanup eclipse warnings
Clean some additional warnings
Make org.adempiere.base to respect the Warnings/Errors level configuration from workspace
* IDEMPIERE-4329 Cleanup eclipse warnings
One more unused import caused by the previous commit
* IDEMPIERE-1540 Autocomplete for field type "Search"
Implement auto complete for search field
* IDEMPIERE-1540 Autocomplete for field type "Search"
Add support for isAutoComplete flag (default is off).
Add isAutoComplete to AD_UserDef_Field, AD_InfoColumn and
AD_Process_Para.
Performance improvement - reduce number of queries for autocomplete and
added some cache.
* IDEMPIERE-1540 Autocomplete for field type "Search"
add constant for auto complete query timeout
use union all to further reduce the number of queries
* IDEMPIERE-4304 Saved Query duplicates if use to save after sharing
* IDEMPIERE-4304 Saved Query duplicates if use to save after sharing - Replaced JDBC call for Query
* IDEMPIERE-4298: remove Bundle-RequiredExecutionEnvironment
when build by tycho value of Bundle-RequiredExecutionEnvironment and jdt need to compatibility
in case we use Bundle-RequiredExecutionEnvironment = 11 then can't build by jdk != 11
so stick on fix value isn't good
eclipse now also support Require-Capability, so don't need Bundle-RequiredExecutionEnvironment anymore
* IDEMPIERE-4298:support update jdk (jdk 12 13 14)
default environment still jdk-11 but you can build for any jdk by below command
export JAVA_HOME=path to jdk
mvn verify -Djdk.version=11
in case on JAVA_HOME is jdk 14 then can set jdk.version for 11, 12, 13, 14 and same for other jdk
at moment java 14 just support on eclipse 2020-03 with install plugin
Java 14 Support for Eclipse 2020-03 (4.15)
* IDEMPIERE-3333: Respecting ReportView order by clause when there is no orderby field on print format configured.
* IDEMPIERE-3333: Adding cached method as per peer review comment.
* IDEMPIERE-3333: Refactoring as per feedback from Carlos Ruiz.
* IDEMPIERE-1146 + IDEMPIERE-3234 / Centralized ID not working with native sequence enabled / PROJECT_ID_USE_CENTRALIZED_ID should take priority higher than SYSTEM_NATIVE_SEQUENCE
* IDEMPIERE-1146 + IDEMPIERE-3234
improve performance not reading MTable and Columns but just a cache
list of tables with EntityType column
* IDEMPIERE-1146 + IDEMPIERE-3234
Remove deprecation as the method is now capable of managin all cases
* IDEMPIERE-4168 Move Webstore out of core
Change EntityType of webstore table, column, field and menu from 'D' to
'WSTORE'
* IDEMPIERE-4168 Move Webstore out of core
Generate Model/Interface: filter column by EntityType. Update
AD_UserMail model class.
* IDEMPIERE-4168 Move Webstore out of core
Added optional column entity type filter.
Peer review and tests:
* PO -> implement postDelete method to be called after the database delete is committed - fix issue about file being deleted from filesystem and commit failing because of referential integrity (for example deleting an image that is associated to a user)
* MArchive, MAttachment, MImage -> change deletion of file from before/afterDelete to postDelete
* MImage -> change getImageStoragePath from clientID/orgID to AD_Image/clientID (this is to allow using the same storage that attachments and archives uses, and avoid issues when changing org)
* MBPartner, MUser, MPOSKey -> delete associated image with postDelete
* ArchiveFileSystem -> fix issue not deleting the file in the filesystem when deleting the archive (using get_ID() on a deleted record returns zero)
* WImageEditor -> save automatically when creating a new image
* AttachmentFileSystem -> avoid trying to save attachment after is deleted
* ImageDBStorageImpl, MSysConfig -> Implement SysConfig IMAGE_DB_STORAGE_SAVE_AS_ZIP to save images in DB zipped - defaults to false which is the actual behavior
* ImageFileStorageImpl -> do not save file with extension, to fix error where previous file was not deleted when uploading a new file with different extension
* Complete ticket - implement support for XLSX in scheduler, background jobs, jasper reporting, default types
* Synchronize xlsx with xls exporter to use ZK_FOOTER_SERVER_MSG and ZK_FOOTER_SERVER_DATETIME_FORMAT SysConfig
* Excel alerts now export to xlsx instead of xls