From fa09eb51872ab0b17e108a71786ab8fd91eff40d Mon Sep 17 00:00:00 2001 From: Carlos Ruiz Date: Sat, 17 Feb 2024 12:14:31 +0100 Subject: [PATCH] IDEMPIERE-6013 Implement a way to filter dinamically records on MRole.addAccessSQL (#2209) * IDEMPIERE-6013 Implement a way to filter dinamically records on MRole.addAccessSQL * - do not create sequence * - move scripts to r11 --- .../oracle/202401251553_IDEMPIERE-6013.sql | 244 ++++++++++++++++++ .../202401251553_IDEMPIERE-6013.sql | 241 +++++++++++++++++ .../org/compiere/model/I_AD_TableValRule.java | 189 ++++++++++++++ .../src/org/compiere/model/MRole.java | 8 + .../src/org/compiere/model/MTableValRule.java | 232 +++++++++++++++++ .../org/compiere/model/X_AD_TableValRule.java | 215 +++++++++++++++ 6 files changed, 1129 insertions(+) create mode 100644 migration/iD11/oracle/202401251553_IDEMPIERE-6013.sql create mode 100644 migration/iD11/postgresql/202401251553_IDEMPIERE-6013.sql create mode 100644 org.adempiere.base/src/org/compiere/model/I_AD_TableValRule.java create mode 100644 org.adempiere.base/src/org/compiere/model/MTableValRule.java create mode 100644 org.adempiere.base/src/org/compiere/model/X_AD_TableValRule.java diff --git a/migration/iD11/oracle/202401251553_IDEMPIERE-6013.sql b/migration/iD11/oracle/202401251553_IDEMPIERE-6013.sql new file mode 100644 index 0000000000..0d215381cc --- /dev/null +++ b/migration/iD11/oracle/202401251553_IDEMPIERE-6013.sql @@ -0,0 +1,244 @@ +-- IDEMPIERE-6013 Implement a way to filter dinamically records on MRole.addAccessSQL +SELECT register_migration_script('202401251553_IDEMPIERE-6013.sql') FROM dual; + +SET SQLBLANKLINES ON +SET DEFINE OFF + +-- Jan 25, 2024, 3:53:32 PM CET +INSERT INTO AD_Window (AD_Window_ID,Name,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,WindowType,Processing,EntityType,IsSOTrx,IsDefault,IsBetaFunctionality,AD_Window_UU) VALUES (200150,'Dynamic Validation per Table',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:32','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:32','YYYY-MM-DD HH24:MI:SS'),100,'M','N','D','Y','N','N','7d7acdf6-a331-49dc-a3c8-0b5ce376ddc9') +; + +-- Jan 25, 2024, 3:53:33 PM CET +INSERT INTO AD_Table (AD_Table_ID,Name,AD_Window_ID,TableName,LoadSeq,AccessLevel,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsSecurityEnabled,IsDeleteable,IsHighVolume,IsView,EntityType,ImportTable,IsChangeLog,ReplicationType,CopyColumnsFromTable,IsCentrallyMaintained,AD_Table_UU,Processing,DatabaseViewDrop,CopyComponentsFromView,CreateWindowFromTable,IsShowInDrillOptions,IsPartition,CreatePartition) VALUES (200415,'Dynamic Validation per Table',200150,'AD_TableValRule',0,'6',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:33','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:33','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','N','N','D','N','Y','L','N','Y','42023256-9f38-4db3-907e-6758ef65c934','N','N','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:34 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,ReadOnlyLogic,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216445,0.0,'Tenant','Tenant for this installation.','A Tenant is a company or a legal entity. You cannot share data between Tenants.',200415,'AD_Client_ID','@#AD_Client_ID@',10,'N','N','Y','N','N','N',30,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:34','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:34','YYYY-MM-DD HH24:MI:SS'),100,102,'N','N','1=1','D','Y','N','N','Y','3da0fdb2-d027-4c60-af5c-7e44b5f0a1e1','N','N','N','ADClient_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:34 PM CET +CREATE TABLE AD_TableValRule (AD_Client_ID NUMBER(10) NOT NULL) +; + +-- Jan 25, 2024, 3:53:35 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216446,0.0,'Organization','Organizational entity within tenant','An organization is a unit of your tenant or legal entity - examples are store, department. You can share data between organizations.',200415,'AD_Org_ID','@AD_Org_ID@',10,'N','N','Y','N','N','N',19,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:34','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:34','YYYY-MM-DD HH24:MI:SS'),100,113,'N','N','D','Y','N','N','Y','5706e86f-6f5c-476e-89e1-fd5fb8bbb165','N','N','N','ADOrg_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:35 PM CET +ALTER TABLE AD_TableValRule ADD AD_Org_ID NUMBER(10) NOT NULL +; + +-- Jan 25, 2024, 3:53:35 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216447,0.0,'Created','Date this record was created','The Created field indicates the date that this record was created.',200415,'Created',7,'N','N','Y','N','N','N',16,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:35','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:35','YYYY-MM-DD HH24:MI:SS'),100,245,'N','N','D','Y','N','N','Y','038379c3-b03f-459e-bcd1-0e64f4c728b4','N','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:35 PM CET +ALTER TABLE AD_TableValRule ADD Created DATE NOT NULL +; + +-- Jan 25, 2024, 3:53:36 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216448,0.0,'Created By','User who created this records','The Created By field indicates the user who created this record.',200415,'CreatedBy',10,'N','N','Y','N','N','N',30,110,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:35','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:35','YYYY-MM-DD HH24:MI:SS'),100,246,'N','N','D','Y','N','N','Y','73139319-8b80-4546-8be5-ee4febbf1687','N','N','N','CreatedBy_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:36 PM CET +ALTER TABLE AD_TableValRule ADD CreatedBy NUMBER(10) NOT NULL +; + +-- Jan 25, 2024, 3:53:36 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216449,0.0,'Updated','Date this record was updated','The Updated field indicates the date that this record was updated.',200415,'Updated',7,'N','N','Y','N','N','N',16,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:36','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:36','YYYY-MM-DD HH24:MI:SS'),100,607,'N','N','D','Y','N','N','Y','d0de3c6e-8e0d-4f58-b48b-07222bfe9bda','N','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:36 PM CET +ALTER TABLE AD_TableValRule ADD Updated DATE NOT NULL +; + +-- Jan 25, 2024, 3:53:37 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216450,0.0,'Updated By','User who updated this records','The Updated By field indicates the user who updated this record.',200415,'UpdatedBy',10,'N','N','Y','N','N','N',30,110,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:36','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:36','YYYY-MM-DD HH24:MI:SS'),100,608,'N','N','D','Y','N','N','Y','3200f9c8-3d92-4a05-bdc5-2c05682d7ba2','N','N','N','UpdatedBy_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:37 PM CET +ALTER TABLE AD_TableValRule ADD UpdatedBy NUMBER(10) NOT NULL +; + +-- Jan 25, 2024, 3:53:37 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216451,0.0,'Active','The record is active in the system','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports. +There are two reasons for de-activating and not deleting records: +(1) The system requires the record for audit purposes. +(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.',200415,'IsActive','Y',1,'N','N','Y','N','N','N',20,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,348,'Y','N','D','Y','N','N','Y','65da9adc-d313-44c4-8c3b-40a5d0655a99','N','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:37 PM CET +ALTER TABLE AD_TableValRule ADD IsActive CHAR(1) DEFAULT 'Y' CHECK (IsActive IN ('Y','N')) NOT NULL +; + +-- Jan 25, 2024, 3:53:37 PM CET +INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,PrintName,EntityType,AD_Element_UU) VALUES (203905,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,'AD_TableValRule_UU','AD_TableValRule_UU','AD_TableValRule_UU','D','cb4a6da9-64a3-4003-8642-25478dd3a7f9') +; + +-- Jan 25, 2024, 3:53:38 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216452,0.0,'AD_TableValRule_UU',200415,'AD_TableValRule_UU',36,'N','N','N','N','N','N',200231,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,203905,'Y','N','D','Y','N','N','Y','42c87f0a-9754-4f27-a859-1205989f5074','N','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:38 PM CET +ALTER TABLE AD_TableValRule ADD AD_TableValRule_UU VARCHAR2(36 CHAR) DEFAULT NULL +; + +-- Jan 25, 2024, 3:53:38 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT AD_TableValRule_UU_idx UNIQUE (AD_TableValRule_UU) +; + +-- Jan 25, 2024, 3:53:38 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216453,0.0,'Description','Optional short description of the record','A description is limited to 255 characters.',200415,'Description',255,'N','N','N','N','N','N',10,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:38','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:38','YYYY-MM-DD HH24:MI:SS'),100,275,'Y','N','D','Y','N','N','Y','4d32c358-8b59-4e15-bb61-c44f3b9327ea','Y','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:38 PM CET +ALTER TABLE AD_TableValRule ADD Description VARCHAR2(255 CHAR) DEFAULT NULL +; + +-- Jan 25, 2024, 3:53:39 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216454,0,'Table','Database Table information','The Database Table provides the information of the table definition',200415,'AD_Table_ID',10,'N','N','Y','N','N',0,'N',19,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:38','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:38','YYYY-MM-DD HH24:MI:SS'),100,126,'Y','N','D','Y','N','N','Y','a5f38788-d59d-40d1-ac82-1c07e5b795ec','Y',0,'N','N','ADTable_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:39 PM CET +ALTER TABLE AD_TableValRule ADD AD_Table_ID NUMBER(10) NOT NULL +; + +-- Jan 25, 2024, 3:53:39 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216455,0,'Validation code','Validation Code','The Validation Code displays the date, time and message of the error.',200415,'Code',4000,'N','N','Y','N','N',0,'N',10,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:39','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:39','YYYY-MM-DD HH24:MI:SS'),100,227,'Y','N','D','Y','N','N','Y','f5dae707-97a4-4cd7-836b-e3c759bfadd0','Y',0,'N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:39 PM CET +ALTER TABLE AD_TableValRule ADD Code VARCHAR2(4000 CHAR) NOT NULL +; + +-- Jan 25, 2024, 3:53:39 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216456,0,'Role','Responsibility Role','The Role determines security and access a user who has this Role will have in the System.',200415,'AD_Role_ID','NULL',22,'N','N','N','N','N',0,'N',19,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:39','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:39','YYYY-MM-DD HH24:MI:SS'),100,123,'Y','N','D','Y','N','N','Y','537b6ba6-d9a6-4b4b-8482-7f97bc1d90cc','Y',0,'N','N','ADRole_ADTableValRule','C','N','N') +; + +-- Jan 25, 2024, 3:53:40 PM CET +ALTER TABLE AD_TableValRule ADD AD_Role_ID NUMBER(10) DEFAULT NULL +; + +-- Jan 25, 2024, 3:53:40 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216457,0,'User/Contact','User within the system - Internal or Business Partner Contact','The User identifies a unique user in the system. This could be an internal user or a business partner contact',200415,'AD_User_ID','NULL',22,'N','N','N','N','N',0,'N',30,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,138,'Y','N','D','Y','N','N','Y','9ae5e470-5185-4015-bd5f-b88cc1728cce','Y',0,'N','N','ADUser_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:40 PM CET +ALTER TABLE AD_TableValRule ADD AD_User_ID NUMBER(10) DEFAULT NULL +; + +-- Jan 25, 2024, 3:53:40 PM CET +INSERT INTO AD_TableIndex (AD_Client_ID,AD_Org_ID,AD_TableIndex_ID,AD_TableIndex_UU,Created,CreatedBy,EntityType,IsActive,Name,Updated,UpdatedBy,AD_Table_ID,IsCreateConstraint,IsUnique,Processing,IsKey) VALUES (0,0,201269,'e3e8630e-49ee-431b-992d-81476a16a701',TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','AD_TableValRule_uu_idx',TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,200415,'Y','Y','N','Y') +; + +-- Jan 25, 2024, 3:53:41 PM CET +INSERT INTO AD_IndexColumn (AD_Client_ID,AD_Org_ID,AD_IndexColumn_ID,AD_IndexColumn_UU,Created,CreatedBy,EntityType,IsActive,Updated,UpdatedBy,AD_Column_ID,AD_TableIndex_ID,SeqNo) VALUES (0,0,201722,'0f4ab741-34bb-4a58-a7c6-e21a5f9097d0',TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,'D','Y',TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,216452,201269,10) +; + +-- Jan 25, 2024, 3:53:41 PM CET +INSERT INTO AD_TableIndex (AD_Client_ID,AD_Org_ID,AD_TableIndex_ID,AD_TableIndex_UU,Created,CreatedBy,EntityType,IsActive,Name,Updated,UpdatedBy,AD_Table_ID,IsCreateConstraint,IsUnique,Processing,TableIndexDrop,IsKey) VALUES (0,0,201270,'58c81ee9-9e77-4bfe-845c-5283cb46e2c2',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','AD_TableValRule_Unq',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,200415,'N','Y','N','N','N') +; + +-- Jan 25, 2024, 3:53:41 PM CET +INSERT INTO AD_IndexColumn (AD_Client_ID,AD_Org_ID,AD_IndexColumn_ID,AD_IndexColumn_UU,Created,CreatedBy,EntityType,IsActive,Updated,UpdatedBy,AD_Column_ID,AD_TableIndex_ID,SeqNo) VALUES (0,0,201723,'c72e5505-c213-45bf-8ba3-31b6215774f6',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,'D','Y',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,216454,201270,10) +; + +-- Jan 25, 2024, 3:53:42 PM CET +INSERT INTO AD_IndexColumn (AD_Client_ID,AD_Org_ID,AD_IndexColumn_ID,AD_IndexColumn_UU,Created,CreatedBy,EntityType,IsActive,Updated,UpdatedBy,AD_Column_ID,AD_TableIndex_ID,SeqNo) VALUES (0,0,201724,'a958a52a-e176-4e56-9cb9-7a90a3f901f9',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,'D','Y',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,216445,201270,20) +; + +-- Jan 25, 2024, 3:53:42 PM CET +INSERT INTO AD_IndexColumn (AD_Client_ID,AD_Org_ID,AD_IndexColumn_ID,AD_IndexColumn_UU,Created,CreatedBy,EntityType,IsActive,Updated,UpdatedBy,AD_Column_ID,AD_TableIndex_ID,ColumnSQL,SeqNo) VALUES (0,0,201725,'dd86e335-e80a-4b76-8f3d-a8255808a148',TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,'D','Y',TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,216456,201270,'COALESCE(AD_Role_ID,-1)',30) +; + +-- Jan 25, 2024, 3:53:42 PM CET +INSERT INTO AD_IndexColumn (AD_Client_ID,AD_Org_ID,AD_IndexColumn_ID,AD_IndexColumn_UU,Created,CreatedBy,EntityType,IsActive,Updated,UpdatedBy,AD_Column_ID,AD_TableIndex_ID,ColumnSQL,SeqNo) VALUES (0,0,201726,'0201f3ef-8a68-49f5-bec2-a3554188d848',TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,'D','Y',TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,216457,201270,'COALESCE(AD_User_ID,-1)',40) +; + +-- Jan 25, 2024, 3:53:42 PM CET +CREATE UNIQUE INDEX AD_TableValRule_Unq ON AD_TableValRule (AD_Table_ID,AD_Client_ID,COALESCE(AD_Role_ID,-1),COALESCE(AD_User_ID,-1)) +; + +-- Jan 25, 2024, 3:53:43 PM CET +INSERT INTO AD_Tab (AD_Tab_ID,Name,AD_Window_ID,SeqNo,IsSingleRow,AD_Table_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,HasTree,IsInfoTab,IsTranslationTab,IsReadOnly,OrderByClause,Processing,TabLevel,IsSortTab,EntityType,IsInsertRecord,IsAdvancedTab,AD_Tab_UU,TreeDisplayedOn,IsLookupOnlySelection,IsAllowAdvancedLookup,MaxQueryRecords) VALUES (200385,'Dynamic Validation per Table',200150,10,'Y',200415,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,'N','N','N','N','AD_TableValRule.Created DESC','N',0,'N','D','Y','Y','72743e37-0045-4f00-b049-0d00b10d845b','B','N','Y',0) +; + +-- Jan 25, 2024, 3:53:43 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208355,'AD_TableValRule_UU',200385,216452,'N',36,0,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','a648d911-37b4-48c7-972a-4446ea8b2ee2','N',1,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:43 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208356,'Tenant','Tenant for this installation.','A Tenant is a company or a legal entity. You cannot share data between Tenants.',200385,216445,'Y',10,10,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','689964ca-3099-46ba-ab4f-7421fa3edc35','Y',10,1,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:44 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsAllowCopy,IsDisplayedGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208357,'Organization','Organizational entity within tenant','An organization is a unit of your tenant or legal entity - examples are store, department. You can share data between organizations.',200385,216446,'Y',10,20,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','a8807d22-5c3d-4711-99d3-85f5e87cf340','Y','N',4,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:44 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208358,'Table','Database Table information','The Database Table provides the information of the table definition',200385,216454,'Y',10,30,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:44','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:44','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','d4c082b5-c333-4584-8c29-d5804aa8f77e','Y',40,1,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:45 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208359,'Active','The record is active in the system','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports. +There are two reasons for de-activating and not deleting records: +(1) The system requires the record for audit purposes. +(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.',200385,216451,'Y',1,40,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:44','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:44','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','2ce3d4ca-431d-4955-9f7b-7fd9129926a1','Y',80,5,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:45 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208360,'Role','Responsibility Role','The Role determines security and access a user who has this Role will have in the System.',200385,216456,'Y',22,50,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','67a35371-6841-4cee-b22d-12ed859c3047','Y',60,1,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:45 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208361,'User/Contact','User within the system - Internal or Business Partner Contact','The User identifies a unique user in the system. This could be an internal user or a business partner contact',200385,216457,'Y',22,60,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','f4356264-6227-408c-9768-5b7b1febc140','Y',70,1,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:46 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208362,'Description','Optional short description of the record','A description is limited to 255 characters.',200385,216453,'Y',255,70,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','9deb3d72-98e3-47e3-8e92-de733e1d0818','Y',20,1,5,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:46 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208363,'SQL Filter','SQL Filter','Enter a valid WHERE SQL fully qualified clause. The WHERE is not needed, the code will be surrounded within parenthesis before applied',200385,216455,'Y',4000,90,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,'N','N','D','354c9fcc-9961-4c76-8040-3bc0727a8be0','Y',50,1,5,8,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:46 PM CET +INSERT INTO AD_Menu (AD_Menu_ID,Name,Action,AD_Window_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsSummary,IsSOTrx,IsReadOnly,EntityType,IsCentrallyMaintained,AD_Menu_UU) VALUES (200234,'Dynamic Validation per Table','W',200150,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','N','D','Y','a1cd8878-33b0-4228-9d0f-00aa536134c0') +; + +-- Jan 25, 2024, 3:53:46 PM CET +UPDATE AD_TREENODEMM SET SeqNo=SeqNo+1 WHERE Parent_ID=367 AND SeqNo>=10 AND AD_Tree_ID=10 +; + +-- Jan 25, 2024, 3:53:46 PM CET +INSERT INTO AD_TreeNodeMM (AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Parent_ID,SeqNo,AD_Tree_ID,Node_ID,AD_Client_ID,AD_TreeNodeMM_UU) VALUES (0,'Y',TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,367,10,10,200234,0,'b4f8ea74-a8d3-4d4a-a43b-9e1c09ec6ec0') +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT ADClient_ADTableValRule FOREIGN KEY (AD_Client_ID) REFERENCES ad_client(ad_client_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT ADOrg_ADTableValRule FOREIGN KEY (AD_Org_ID) REFERENCES ad_org(ad_org_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT CreatedBy_ADTableValRule FOREIGN KEY (CreatedBy) REFERENCES ad_user(ad_user_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT UpdatedBy_ADTableValRule FOREIGN KEY (UpdatedBy) REFERENCES ad_user(ad_user_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT ADTable_ADTableValRule FOREIGN KEY (AD_Table_ID) REFERENCES ad_table(ad_table_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT ADRole_ADTableValRule FOREIGN KEY (AD_Role_ID) REFERENCES ad_role(ad_role_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:47 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT ADUser_ADTableValRule FOREIGN KEY (AD_User_ID) REFERENCES ad_user(ad_user_id) DEFERRABLE INITIALLY DEFERRED +; + diff --git a/migration/iD11/postgresql/202401251553_IDEMPIERE-6013.sql b/migration/iD11/postgresql/202401251553_IDEMPIERE-6013.sql new file mode 100644 index 0000000000..55876ba47c --- /dev/null +++ b/migration/iD11/postgresql/202401251553_IDEMPIERE-6013.sql @@ -0,0 +1,241 @@ +-- IDEMPIERE-6013 Implement a way to filter dinamically records on MRole.addAccessSQL +SELECT register_migration_script('202401251553_IDEMPIERE-6013.sql') FROM dual; + +-- Jan 25, 2024, 3:53:32 PM CET +INSERT INTO AD_Window (AD_Window_ID,Name,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,WindowType,Processing,EntityType,IsSOTrx,IsDefault,IsBetaFunctionality,AD_Window_UU) VALUES (200150,'Dynamic Validation per Table',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:32','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:32','YYYY-MM-DD HH24:MI:SS'),100,'M','N','D','Y','N','N','7d7acdf6-a331-49dc-a3c8-0b5ce376ddc9') +; + +-- Jan 25, 2024, 3:53:33 PM CET +INSERT INTO AD_Table (AD_Table_ID,Name,AD_Window_ID,TableName,LoadSeq,AccessLevel,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsSecurityEnabled,IsDeleteable,IsHighVolume,IsView,EntityType,ImportTable,IsChangeLog,ReplicationType,CopyColumnsFromTable,IsCentrallyMaintained,AD_Table_UU,Processing,DatabaseViewDrop,CopyComponentsFromView,CreateWindowFromTable,IsShowInDrillOptions,IsPartition,CreatePartition) VALUES (200415,'Dynamic Validation per Table',200150,'AD_TableValRule',0,'6',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:33','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:33','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','N','N','D','N','Y','L','N','Y','42023256-9f38-4db3-907e-6758ef65c934','N','N','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:34 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,ReadOnlyLogic,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216445,0.0,'Tenant','Tenant for this installation.','A Tenant is a company or a legal entity. You cannot share data between Tenants.',200415,'AD_Client_ID','@#AD_Client_ID@',10,'N','N','Y','N','N','N',30,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:34','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:34','YYYY-MM-DD HH24:MI:SS'),100,102,'N','N','1=1','D','Y','N','N','Y','3da0fdb2-d027-4c60-af5c-7e44b5f0a1e1','N','N','N','ADClient_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:34 PM CET +CREATE TABLE AD_TableValRule (AD_Client_ID NUMERIC(10) NOT NULL) +; + +-- Jan 25, 2024, 3:53:35 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216446,0.0,'Organization','Organizational entity within tenant','An organization is a unit of your tenant or legal entity - examples are store, department. You can share data between organizations.',200415,'AD_Org_ID','@AD_Org_ID@',10,'N','N','Y','N','N','N',19,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:34','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:34','YYYY-MM-DD HH24:MI:SS'),100,113,'N','N','D','Y','N','N','Y','5706e86f-6f5c-476e-89e1-fd5fb8bbb165','N','N','N','ADOrg_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:35 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN AD_Org_ID NUMERIC(10) NOT NULL +; + +-- Jan 25, 2024, 3:53:35 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216447,0.0,'Created','Date this record was created','The Created field indicates the date that this record was created.',200415,'Created',7,'N','N','Y','N','N','N',16,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:35','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:35','YYYY-MM-DD HH24:MI:SS'),100,245,'N','N','D','Y','N','N','Y','038379c3-b03f-459e-bcd1-0e64f4c728b4','N','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:35 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN Created TIMESTAMP NOT NULL +; + +-- Jan 25, 2024, 3:53:36 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216448,0.0,'Created By','User who created this records','The Created By field indicates the user who created this record.',200415,'CreatedBy',10,'N','N','Y','N','N','N',30,110,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:35','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:35','YYYY-MM-DD HH24:MI:SS'),100,246,'N','N','D','Y','N','N','Y','73139319-8b80-4546-8be5-ee4febbf1687','N','N','N','CreatedBy_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:36 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN CreatedBy NUMERIC(10) NOT NULL +; + +-- Jan 25, 2024, 3:53:36 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216449,0.0,'Updated','Date this record was updated','The Updated field indicates the date that this record was updated.',200415,'Updated',7,'N','N','Y','N','N','N',16,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:36','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:36','YYYY-MM-DD HH24:MI:SS'),100,607,'N','N','D','Y','N','N','Y','d0de3c6e-8e0d-4f58-b48b-07222bfe9bda','N','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:36 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN Updated TIMESTAMP NOT NULL +; + +-- Jan 25, 2024, 3:53:37 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Reference_Value_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216450,0.0,'Updated By','User who updated this records','The Updated By field indicates the user who updated this record.',200415,'UpdatedBy',10,'N','N','Y','N','N','N',30,110,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:36','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:36','YYYY-MM-DD HH24:MI:SS'),100,608,'N','N','D','Y','N','N','Y','3200f9c8-3d92-4a05-bdc5-2c05682d7ba2','N','N','N','UpdatedBy_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:37 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN UpdatedBy NUMERIC(10) NOT NULL +; + +-- Jan 25, 2024, 3:53:37 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216451,0.0,'Active','The record is active in the system','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports. +There are two reasons for de-activating and not deleting records: +(1) The system requires the record for audit purposes. +(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.',200415,'IsActive','Y',1,'N','N','Y','N','N','N',20,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,348,'Y','N','D','Y','N','N','Y','65da9adc-d313-44c4-8c3b-40a5d0655a99','N','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:37 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN IsActive CHAR(1) DEFAULT 'Y' CHECK (IsActive IN ('Y','N')) NOT NULL +; + +-- Jan 25, 2024, 3:53:37 PM CET +INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,PrintName,EntityType,AD_Element_UU) VALUES (203905,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,'AD_TableValRule_UU','AD_TableValRule_UU','AD_TableValRule_UU','D','cb4a6da9-64a3-4003-8642-25478dd3a7f9') +; + +-- Jan 25, 2024, 3:53:38 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216452,0.0,'AD_TableValRule_UU',200415,'AD_TableValRule_UU',36,'N','N','N','N','N','N',200231,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:37','YYYY-MM-DD HH24:MI:SS'),100,203905,'Y','N','D','Y','N','N','Y','42c87f0a-9754-4f27-a859-1205989f5074','N','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:38 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN AD_TableValRule_UU VARCHAR(36) DEFAULT NULL +; + +-- Jan 25, 2024, 3:53:38 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT AD_TableValRule_UU_idx UNIQUE (AD_TableValRule_UU) +; + +-- Jan 25, 2024, 3:53:38 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216453,0.0,'Description','Optional short description of the record','A description is limited to 255 characters.',200415,'Description',255,'N','N','N','N','N','N',10,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:38','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:38','YYYY-MM-DD HH24:MI:SS'),100,275,'Y','N','D','Y','N','N','Y','4d32c358-8b59-4e15-bb61-c44f3b9327ea','Y','N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:38 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN Description VARCHAR(255) DEFAULT NULL +; + +-- Jan 25, 2024, 3:53:39 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216454,0,'Table','Database Table information','The Database Table provides the information of the table definition',200415,'AD_Table_ID',10,'N','N','Y','N','N',0,'N',19,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:38','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:38','YYYY-MM-DD HH24:MI:SS'),100,126,'Y','N','D','Y','N','N','Y','a5f38788-d59d-40d1-ac82-1c07e5b795ec','Y',0,'N','N','ADTable_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:39 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN AD_Table_ID NUMERIC(10) NOT NULL +; + +-- Jan 25, 2024, 3:53:39 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216455,0,'Validation code','Validation Code','The Validation Code displays the date, time and message of the error.',200415,'Code',4000,'N','N','Y','N','N',0,'N',10,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:39','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:39','YYYY-MM-DD HH24:MI:SS'),100,227,'Y','N','D','Y','N','N','Y','f5dae707-97a4-4cd7-836b-e3c759bfadd0','Y',0,'N','N','N','N','N') +; + +-- Jan 25, 2024, 3:53:39 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN Code VARCHAR(4000) NOT NULL +; + +-- Jan 25, 2024, 3:53:39 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216456,0,'Role','Responsibility Role','The Role determines security and access a user who has this Role will have in the System.',200415,'AD_Role_ID','NULL',22,'N','N','N','N','N',0,'N',19,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:39','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:39','YYYY-MM-DD HH24:MI:SS'),100,123,'Y','N','D','Y','N','N','Y','537b6ba6-d9a6-4b4b-8482-7f97bc1d90cc','Y',0,'N','N','ADRole_ADTableValRule','C','N','N') +; + +-- Jan 25, 2024, 3:53:40 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN AD_Role_ID NUMERIC(10) DEFAULT NULL +; + +-- Jan 25, 2024, 3:53:40 PM CET +INSERT INTO AD_Column (AD_Column_ID,Version,Name,Description,Help,AD_Table_ID,ColumnName,DefaultValue,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintName,FKConstraintType,IsHtml,IsPartitionKey) VALUES (216457,0,'User/Contact','User within the system - Internal or Business Partner Contact','The User identifies a unique user in the system. This could be an internal user or a business partner contact',200415,'AD_User_ID','NULL',22,'N','N','N','N','N',0,'N',30,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,138,'Y','N','D','Y','N','N','Y','9ae5e470-5185-4015-bd5f-b88cc1728cce','Y',0,'N','N','ADUser_ADTableValRule','N','N','N') +; + +-- Jan 25, 2024, 3:53:40 PM CET +ALTER TABLE AD_TableValRule ADD COLUMN AD_User_ID NUMERIC(10) DEFAULT NULL +; + +-- Jan 25, 2024, 3:53:40 PM CET +INSERT INTO AD_TableIndex (AD_Client_ID,AD_Org_ID,AD_TableIndex_ID,AD_TableIndex_UU,Created,CreatedBy,EntityType,IsActive,Name,Updated,UpdatedBy,AD_Table_ID,IsCreateConstraint,IsUnique,Processing,IsKey) VALUES (0,0,201269,'e3e8630e-49ee-431b-992d-81476a16a701',TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','AD_TableValRule_uu_idx',TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,200415,'Y','Y','N','Y') +; + +-- Jan 25, 2024, 3:53:41 PM CET +INSERT INTO AD_IndexColumn (AD_Client_ID,AD_Org_ID,AD_IndexColumn_ID,AD_IndexColumn_UU,Created,CreatedBy,EntityType,IsActive,Updated,UpdatedBy,AD_Column_ID,AD_TableIndex_ID,SeqNo) VALUES (0,0,201722,'0f4ab741-34bb-4a58-a7c6-e21a5f9097d0',TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,'D','Y',TO_TIMESTAMP('2024-01-25 15:53:40','YYYY-MM-DD HH24:MI:SS'),100,216452,201269,10) +; + +-- Jan 25, 2024, 3:53:41 PM CET +INSERT INTO AD_TableIndex (AD_Client_ID,AD_Org_ID,AD_TableIndex_ID,AD_TableIndex_UU,Created,CreatedBy,EntityType,IsActive,Name,Updated,UpdatedBy,AD_Table_ID,IsCreateConstraint,IsUnique,Processing,TableIndexDrop,IsKey) VALUES (0,0,201270,'58c81ee9-9e77-4bfe-845c-5283cb46e2c2',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,'D','Y','AD_TableValRule_Unq',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,200415,'N','Y','N','N','N') +; + +-- Jan 25, 2024, 3:53:41 PM CET +INSERT INTO AD_IndexColumn (AD_Client_ID,AD_Org_ID,AD_IndexColumn_ID,AD_IndexColumn_UU,Created,CreatedBy,EntityType,IsActive,Updated,UpdatedBy,AD_Column_ID,AD_TableIndex_ID,SeqNo) VALUES (0,0,201723,'c72e5505-c213-45bf-8ba3-31b6215774f6',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,'D','Y',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,216454,201270,10) +; + +-- Jan 25, 2024, 3:53:42 PM CET +INSERT INTO AD_IndexColumn (AD_Client_ID,AD_Org_ID,AD_IndexColumn_ID,AD_IndexColumn_UU,Created,CreatedBy,EntityType,IsActive,Updated,UpdatedBy,AD_Column_ID,AD_TableIndex_ID,SeqNo) VALUES (0,0,201724,'a958a52a-e176-4e56-9cb9-7a90a3f901f9',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,'D','Y',TO_TIMESTAMP('2024-01-25 15:53:41','YYYY-MM-DD HH24:MI:SS'),100,216445,201270,20) +; + +-- Jan 25, 2024, 3:53:42 PM CET +INSERT INTO AD_IndexColumn (AD_Client_ID,AD_Org_ID,AD_IndexColumn_ID,AD_IndexColumn_UU,Created,CreatedBy,EntityType,IsActive,Updated,UpdatedBy,AD_Column_ID,AD_TableIndex_ID,ColumnSQL,SeqNo) VALUES (0,0,201725,'dd86e335-e80a-4b76-8f3d-a8255808a148',TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,'D','Y',TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,216456,201270,'COALESCE(AD_Role_ID,-1)',30) +; + +-- Jan 25, 2024, 3:53:42 PM CET +INSERT INTO AD_IndexColumn (AD_Client_ID,AD_Org_ID,AD_IndexColumn_ID,AD_IndexColumn_UU,Created,CreatedBy,EntityType,IsActive,Updated,UpdatedBy,AD_Column_ID,AD_TableIndex_ID,ColumnSQL,SeqNo) VALUES (0,0,201726,'0201f3ef-8a68-49f5-bec2-a3554188d848',TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,'D','Y',TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,216457,201270,'COALESCE(AD_User_ID,-1)',40) +; + +-- Jan 25, 2024, 3:53:42 PM CET +CREATE UNIQUE INDEX AD_TableValRule_Unq ON AD_TableValRule (AD_Table_ID,AD_Client_ID,COALESCE(AD_Role_ID,-1),COALESCE(AD_User_ID,-1)) +; + +-- Jan 25, 2024, 3:53:43 PM CET +INSERT INTO AD_Tab (AD_Tab_ID,Name,AD_Window_ID,SeqNo,IsSingleRow,AD_Table_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,HasTree,IsInfoTab,IsTranslationTab,IsReadOnly,OrderByClause,Processing,TabLevel,IsSortTab,EntityType,IsInsertRecord,IsAdvancedTab,AD_Tab_UU,TreeDisplayedOn,IsLookupOnlySelection,IsAllowAdvancedLookup,MaxQueryRecords) VALUES (200385,'Dynamic Validation per Table',200150,10,'Y',200415,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:42','YYYY-MM-DD HH24:MI:SS'),100,'N','N','N','N','AD_TableValRule.Created DESC','N',0,'N','D','Y','Y','72743e37-0045-4f00-b049-0d00b10d845b','B','N','Y',0) +; + +-- Jan 25, 2024, 3:53:43 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208355,'AD_TableValRule_UU',200385,216452,'N',36,0,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','a648d911-37b4-48c7-972a-4446ea8b2ee2','N',1,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:43 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208356,'Tenant','Tenant for this installation.','A Tenant is a company or a legal entity. You cannot share data between Tenants.',200385,216445,'Y',10,10,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','689964ca-3099-46ba-ab4f-7421fa3edc35','Y',10,1,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:44 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsAllowCopy,IsDisplayedGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208357,'Organization','Organizational entity within tenant','An organization is a unit of your tenant or legal entity - examples are store, department. You can share data between organizations.',200385,216446,'Y',10,20,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:43','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','a8807d22-5c3d-4711-99d3-85f5e87cf340','Y','N',4,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:44 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208358,'Table','Database Table information','The Database Table provides the information of the table definition',200385,216454,'Y',10,30,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:44','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:44','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','d4c082b5-c333-4584-8c29-d5804aa8f77e','Y',40,1,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:45 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208359,'Active','The record is active in the system','There are two methods of making records unavailable in the system: One is to delete the record, the other is to de-activate the record. A de-activated record is not available for selection, but available for reports. +There are two reasons for de-activating and not deleting records: +(1) The system requires the record for audit purposes. +(2) The record is referenced by other records. E.g., you cannot delete a Business Partner, if there are invoices for this partner record existing. You de-activate the Business Partner and prevent that this record is used for future entries.',200385,216451,'Y',1,40,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:44','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:44','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','2ce3d4ca-431d-4955-9f7b-7fd9129926a1','Y',80,5,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:45 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208360,'Role','Responsibility Role','The Role determines security and access a user who has this Role will have in the System.',200385,216456,'Y',22,50,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','67a35371-6841-4cee-b22d-12ed859c3047','Y',60,1,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:45 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208361,'User/Contact','User within the system - Internal or Business Partner Contact','The User identifies a unique user in the system. This could be an internal user or a business partner contact',200385,216457,'Y',22,60,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','f4356264-6227-408c-9768-5b7b1febc140','Y',70,1,2,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:46 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208362,'Description','Optional short description of the record','A description is limited to 255 characters.',200385,216453,'Y',255,70,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:45','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','9deb3d72-98e3-47e3-8e92-de733e1d0818','Y',20,1,5,1,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:46 PM CET +INSERT INTO AD_Field (AD_Field_ID,Name,Description,Help,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (208363,'SQL Filter','SQL Filter','Enter a valid WHERE SQL fully qualified clause. The WHERE is not needed, the code will be surrounded within parenthesis before applied',200385,216455,'Y',4000,90,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,'N','N','D','354c9fcc-9961-4c76-8040-3bc0727a8be0','Y',50,1,5,8,'N','N','N','N') +; + +-- Jan 25, 2024, 3:53:46 PM CET +INSERT INTO AD_Menu (AD_Menu_ID,Name,"action",AD_Window_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsSummary,IsSOTrx,IsReadOnly,EntityType,IsCentrallyMaintained,AD_Menu_UU) VALUES (200234,'Dynamic Validation per Table','W',200150,0,0,'Y',TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','N','D','Y','a1cd8878-33b0-4228-9d0f-00aa536134c0') +; + +-- Jan 25, 2024, 3:53:46 PM CET +UPDATE AD_TREENODEMM SET SeqNo=SeqNo+1 WHERE Parent_ID=367 AND SeqNo>=10 AND AD_Tree_ID=10 +; + +-- Jan 25, 2024, 3:53:46 PM CET +INSERT INTO AD_TreeNodeMM (AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Parent_ID,SeqNo,AD_Tree_ID,Node_ID,AD_Client_ID,AD_TreeNodeMM_UU) VALUES (0,'Y',TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2024-01-25 15:53:46','YYYY-MM-DD HH24:MI:SS'),100,367,10,10,200234,0,'b4f8ea74-a8d3-4d4a-a43b-9e1c09ec6ec0') +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT ADClient_ADTableValRule FOREIGN KEY (AD_Client_ID) REFERENCES ad_client(ad_client_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT ADOrg_ADTableValRule FOREIGN KEY (AD_Org_ID) REFERENCES ad_org(ad_org_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT CreatedBy_ADTableValRule FOREIGN KEY (CreatedBy) REFERENCES ad_user(ad_user_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT UpdatedBy_ADTableValRule FOREIGN KEY (UpdatedBy) REFERENCES ad_user(ad_user_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT ADTable_ADTableValRule FOREIGN KEY (AD_Table_ID) REFERENCES ad_table(ad_table_id) DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:46 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT ADRole_ADTableValRule FOREIGN KEY (AD_Role_ID) REFERENCES ad_role(ad_role_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED +; + +-- Jan 25, 2024, 3:53:47 PM CET +ALTER TABLE AD_TableValRule ADD CONSTRAINT ADUser_ADTableValRule FOREIGN KEY (AD_User_ID) REFERENCES ad_user(ad_user_id) DEFERRABLE INITIALLY DEFERRED +; + diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_TableValRule.java b/org.adempiere.base/src/org/compiere/model/I_AD_TableValRule.java new file mode 100644 index 0000000000..94c9aee368 --- /dev/null +++ b/org.adempiere.base/src/org/compiere/model/I_AD_TableValRule.java @@ -0,0 +1,189 @@ +/****************************************************************************** + * Product: iDempiere ERP & CRM Smart Business Solution * + * Copyright (C) 1999-2012 ComPiere, Inc. All Rights Reserved. * + * This program is free software, you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY, without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program, if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + * For the text or an alternative of this public license, you may reach us * + * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * + * or via info@compiere.org or http://www.compiere.org/license.html * + *****************************************************************************/ +package org.compiere.model; + +import java.math.BigDecimal; +import java.sql.Timestamp; +import org.compiere.util.KeyNamePair; + +/** Generated Interface for AD_TableValRule + * @author iDempiere (generated) + * @version Release 12 + */ +public interface I_AD_TableValRule +{ + + /** TableName=AD_TableValRule */ + public static final String Table_Name = "AD_TableValRule"; + + /** AD_Table_ID=200415 */ + public static final int Table_ID = 200415; + + KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); + + /** AccessLevel = 6 - System - Client + */ + BigDecimal accessLevel = BigDecimal.valueOf(6); + + /** Load Meta Data */ + + /** Column name AD_Client_ID */ + public static final String COLUMNNAME_AD_Client_ID = "AD_Client_ID"; + + /** Get Tenant. + * Tenant for this installation. + */ + public int getAD_Client_ID(); + + /** Column name AD_Org_ID */ + public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID"; + + /** Set Organization. + * Organizational entity within tenant + */ + public void setAD_Org_ID (int AD_Org_ID); + + /** Get Organization. + * Organizational entity within tenant + */ + public int getAD_Org_ID(); + + /** Column name AD_Role_ID */ + public static final String COLUMNNAME_AD_Role_ID = "AD_Role_ID"; + + /** Set Role. + * Responsibility Role + */ + public void setAD_Role_ID (int AD_Role_ID); + + /** Get Role. + * Responsibility Role + */ + public int getAD_Role_ID(); + + public org.compiere.model.I_AD_Role getAD_Role() throws RuntimeException; + + /** Column name AD_Table_ID */ + public static final String COLUMNNAME_AD_Table_ID = "AD_Table_ID"; + + /** Set Table. + * Database Table information + */ + public void setAD_Table_ID (int AD_Table_ID); + + /** Get Table. + * Database Table information + */ + public int getAD_Table_ID(); + + public org.compiere.model.I_AD_Table getAD_Table() throws RuntimeException; + + /** Column name AD_TableValRule_UU */ + public static final String COLUMNNAME_AD_TableValRule_UU = "AD_TableValRule_UU"; + + /** Set AD_TableValRule_UU */ + public void setAD_TableValRule_UU (String AD_TableValRule_UU); + + /** Get AD_TableValRule_UU */ + public String getAD_TableValRule_UU(); + + /** Column name AD_User_ID */ + public static final String COLUMNNAME_AD_User_ID = "AD_User_ID"; + + /** Set User/Contact. + * User within the system - Internal or Business Partner Contact + */ + public void setAD_User_ID (int AD_User_ID); + + /** Get User/Contact. + * User within the system - Internal or Business Partner Contact + */ + public int getAD_User_ID(); + + public org.compiere.model.I_AD_User getAD_User() throws RuntimeException; + + /** Column name Code */ + public static final String COLUMNNAME_Code = "Code"; + + /** Set Validation code. + * Validation Code + */ + public void setCode (String Code); + + /** Get Validation code. + * Validation Code + */ + public String getCode(); + + /** Column name Created */ + public static final String COLUMNNAME_Created = "Created"; + + /** Get Created. + * Date this record was created + */ + public Timestamp getCreated(); + + /** Column name CreatedBy */ + public static final String COLUMNNAME_CreatedBy = "CreatedBy"; + + /** Get Created By. + * User who created this records + */ + public int getCreatedBy(); + + /** Column name Description */ + public static final String COLUMNNAME_Description = "Description"; + + /** Set Description. + * Optional short description of the record + */ + public void setDescription (String Description); + + /** Get Description. + * Optional short description of the record + */ + public String getDescription(); + + /** Column name IsActive */ + public static final String COLUMNNAME_IsActive = "IsActive"; + + /** Set Active. + * The record is active in the system + */ + public void setIsActive (boolean IsActive); + + /** Get Active. + * The record is active in the system + */ + public boolean isActive(); + + /** Column name Updated */ + public static final String COLUMNNAME_Updated = "Updated"; + + /** Get Updated. + * Date this record was updated + */ + public Timestamp getUpdated(); + + /** Column name UpdatedBy */ + public static final String COLUMNNAME_UpdatedBy = "UpdatedBy"; + + /** Get Updated By. + * User who updated this records + */ + public int getUpdatedBy(); +} diff --git a/org.adempiere.base/src/org/compiere/model/MRole.java b/org.adempiere.base/src/org/compiere/model/MRole.java index e412bf9a5e..69432e17b4 100644 --- a/org.adempiere.base/src/org/compiere/model/MRole.java +++ b/org.adempiere.base/src/org/compiere/model/MRole.java @@ -2540,6 +2540,14 @@ public final class MRole extends X_AD_Role implements ImmutablePOSupport sb.append(keyColumnName).append(lockedIDs).append(") "); } } + + for (MTableValRule tvr : MTableValRule.get(p_ctx, AD_Table_ID, Env.getAD_Client_ID(p_ctx), Env.getAD_Role_ID(p_ctx), Env.getAD_User_ID(p_ctx))) { + if (sb.length() > 0) + sb.append(" AND "); + String wherevr = Env.parseContext(p_ctx, 0, tvr.getCode(), false); + sb.append(" (").append(wherevr).append(") "); + } + // return sb.toString(); } // getRecordWhere diff --git a/org.adempiere.base/src/org/compiere/model/MTableValRule.java b/org.adempiere.base/src/org/compiere/model/MTableValRule.java new file mode 100644 index 0000000000..1d6901764a --- /dev/null +++ b/org.adempiere.base/src/org/compiere/model/MTableValRule.java @@ -0,0 +1,232 @@ +/*********************************************************************** + * This file is part of iDempiere ERP Open Source * + * http://www.idempiere.org * + * * + * Copyright (C) Contributors * + * * + * This program is free software; you can redistribute it and/or * + * modify it under the terms of the GNU General Public License * + * as published by the Free Software Foundation; either version 2 * + * of the License, or (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the Free Software * + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * + * MA 02110-1301, USA. * + * * + * Contributors: * + * - Carlos Ruiz - globalqss - bxservice * + **********************************************************************/ + +package org.compiere.model; + +import java.sql.ResultSet; +import java.util.List; +import java.util.Properties; + +import org.compiere.util.CCache; +import org.compiere.util.CLogger; +import org.compiere.util.Env; +import org.idempiere.cache.ImmutablePOCache; +import org.idempiere.cache.ImmutablePOSupport; + +/** + * Persistence model for table val rule + * + * @author Carlos Ruiz - globalqss - bxservice + */ +public class MTableValRule extends X_AD_TableValRule implements ImmutablePOSupport { + /** + * + */ + private static final long serialVersionUID = -5156583311055069139L; + + /** Cache */ + private static ImmutablePOCache s_cache = new ImmutablePOCache(Table_Name, 20); + private static CCache> s_cachesession = new CCache>(Table_Name, 5); + + /** Static Logger */ + @SuppressWarnings("unused") + private static CLogger s_log = CLogger.getCLogger(MTableValRule.class); + + /** + * UUID based Constructor + * + * @param ctx Context + * @param AD_TableValRule_UU UUID key + * @param trxName Transaction + */ + public MTableValRule(Properties ctx, String AD_TableValRule_UU, String trxName) { + super(ctx, AD_TableValRule_UU, trxName); + } + + /** + * Load Constructor + * + * @param ctx context + * @param rs result set + * @param trxName transaction + */ + public MTableValRule(Properties ctx, ResultSet rs, String trxName) { + super(ctx, rs, trxName); + } // MTableValRule + + /** + * + * @param copy + */ + public MTableValRule(MTableValRule copy) { + this(Env.getCtx(), copy); + } + + /** + * + * @param ctx + * @param copy + */ + public MTableValRule(Properties ctx, MTableValRule copy) { + this(ctx, copy, (String) null); + } + + /** + * + * @param ctx + * @param copy + * @param trxName + */ + public MTableValRule(Properties ctx, MTableValRule copy, String trxName) { + this(ctx, PO.UUID_NEW_RECORD, trxName); + copyPO(copy); + } + + /** + * Get Rule from Cache (immutable) + * + * @param AD_TableValRule_UU UUID + * @return MTableValRule + */ + public static MTableValRule get(String AD_TableValRule_UU) { + return get(Env.getCtx(), AD_TableValRule_UU); + } + + /** + * Get Rule from Cache (immutable) + * + * @param ctx context + * @param AD_TableValRule_UU UUID + * @return MTableValRule + */ + public static MTableValRule get(Properties ctx, String AD_TableValRule_UU) { + return get(ctx, AD_TableValRule_UU, (String) null); + } + + /** + * Get Rule from Cache (immutable) + * + * @param ctx context + * @param AD_TableValRule_UU UUID + * @param trxName + * @return MTableValRule + */ + public static MTableValRule get(Properties ctx, String AD_TableValRule_UU, String trxName) { + String key = AD_TableValRule_UU; + MTableValRule retValue = s_cache.get(ctx, key, e -> new MTableValRule(ctx, e)); + if (retValue != null) + return retValue; + retValue = new MTableValRule(ctx, AD_TableValRule_UU, trxName); + if (retValue.get_UUID() == AD_TableValRule_UU) { + s_cache.put(key, retValue, e -> new MTableValRule(Env.getCtx(), e)); + return retValue; + } + return null; + } // get + + /** + * Get updateable copy of MTableValRule from cache + * + * @param ctx + * @param AD_TableValRule_UU UUID + * @param trxName + * @return MTableValRule + */ + public static MTableValRule getCopy(Properties ctx, String AD_TableValRule_UU, String trxName) { + MTableValRule vr = get(ctx, AD_TableValRule_UU, trxName); + if (vr != null) + vr = new MTableValRule(ctx, vr, trxName); + return vr; + } + + /** + * Get Rules applicable to session + * @param ctx + * @param AD_Table_ID + * @param AD_Client_ID + * @param AD_Role_ID + * @param AD_User_ID + * @return List of MTableValRule + */ + public static List get(Properties ctx, int AD_Table_ID, int AD_Client_ID, int AD_Role_ID, int AD_User_ID) { + String keySession = new StringBuilder() + .append(AD_Table_ID).append("|") + .append(AD_Client_ID).append("|") + .append(AD_Role_ID).append("|") + .append(AD_User_ID) + .toString(); + if (s_cachesession.containsKey(keySession)) + return s_cachesession.get(keySession); + + final String where = "AD_Table_ID=? AND AD_Client_ID IN (0,?) AND (AD_Role_ID IS NULL OR AD_Role_ID=?) AND (AD_User_ID IS NULL OR AD_User_ID=?)"; + List retValue = new Query(ctx, Table_Name, where, null) + .setOnlyActiveRecords(true) + .setParameters(AD_Table_ID, AD_Client_ID, AD_Role_ID, AD_User_ID) + .list(); + s_cachesession.put(keySession, retValue); + return retValue; + } + + @Override + public MTableValRule markImmutable() { + if (is_Immutable()) + return this; + + makeImmutable(); + return this; + } + + /** + * Called before Save for Pre-Save Operation + * @param newRecord new record + * @return true if record can be saved + */ + @Override + protected boolean beforeSave(boolean newRecord) { + if (getAD_Org_ID() > 0) + setAD_Org_ID(0); + return true; + } + + /** + * String representation of this object, used in Recent Items + * @return info + */ + @Override + public String toString() { + MTable table = MTable.get(getAD_Table_ID()); + StringBuilder sb = new StringBuilder (table.getName()); + if (getAD_User_ID() > 0) { + MUser user = MUser.get(getAD_User_ID()); + sb.append(" -> User=").append(user.getName()); + } + if (getAD_Role_ID() > 0) { + MRole role = MRole.get(getCtx(), getAD_Role_ID()); + sb.append(" -> Role=").append(role.getName()); + } + return sb.toString(); + } + +} // MTableValRule \ No newline at end of file diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_TableValRule.java b/org.adempiere.base/src/org/compiere/model/X_AD_TableValRule.java new file mode 100644 index 0000000000..84e26cead2 --- /dev/null +++ b/org.adempiere.base/src/org/compiere/model/X_AD_TableValRule.java @@ -0,0 +1,215 @@ +/****************************************************************************** + * Product: iDempiere ERP & CRM Smart Business Solution * + * Copyright (C) 1999-2012 ComPiere, Inc. All Rights Reserved. * + * This program is free software, you can redistribute it and/or modify it * + * under the terms version 2 of the GNU General Public License as published * + * by the Free Software Foundation. This program is distributed in the hope * + * that it will be useful, but WITHOUT ANY WARRANTY, without even the implied * + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * + * See the GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License along * + * with this program, if not, write to the Free Software Foundation, Inc., * + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * + * For the text or an alternative of this public license, you may reach us * + * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA * + * or via info@compiere.org or http://www.compiere.org/license.html * + *****************************************************************************/ +/** Generated Model - DO NOT CHANGE */ +package org.compiere.model; + +import java.sql.ResultSet; +import java.util.Properties; + +/** Generated Model for AD_TableValRule + * @author iDempiere (generated) + * @version Release 12 - $Id$ */ +@org.adempiere.base.Model(table="AD_TableValRule") +public class X_AD_TableValRule extends PO implements I_AD_TableValRule, I_Persistent +{ + + /** + * + */ + private static final long serialVersionUID = 20240125L; + + /** Standard Constructor */ + public X_AD_TableValRule (Properties ctx, String AD_TableValRule_UU, String trxName) + { + super (ctx, AD_TableValRule_UU, trxName); + /** if (AD_TableValRule_UU == null) + { + setAD_Table_ID (0); + setCode (null); + } */ + } + + /** Standard Constructor */ + public X_AD_TableValRule (Properties ctx, String AD_TableValRule_UU, String trxName, String ... virtualColumns) + { + super (ctx, AD_TableValRule_UU, trxName, virtualColumns); + /** if (AD_TableValRule_UU == null) + { + setAD_Table_ID (0); + setCode (null); + } */ + } + + /** Load Constructor */ + public X_AD_TableValRule (Properties ctx, ResultSet rs, String trxName) + { + super (ctx, rs, trxName); + } + + /** AccessLevel + * @return 6 - System - Client + */ + protected int get_AccessLevel() + { + return accessLevel.intValue(); + } + + /** Load Meta Data */ + protected POInfo initPO (Properties ctx) + { + POInfo poi = POInfo.getPOInfo (ctx, Table_ID, get_TrxName()); + return poi; + } + + public String toString() + { + StringBuilder sb = new StringBuilder ("X_AD_TableValRule[") + .append(get_UUID()).append("]"); + return sb.toString(); + } + + public org.compiere.model.I_AD_Role getAD_Role() throws RuntimeException + { + return (org.compiere.model.I_AD_Role)MTable.get(getCtx(), org.compiere.model.I_AD_Role.Table_ID) + .getPO(getAD_Role_ID(), get_TrxName()); + } + + /** Set Role. + @param AD_Role_ID Responsibility Role + */ + public void setAD_Role_ID (int AD_Role_ID) + { + if (AD_Role_ID < 0) + set_Value (COLUMNNAME_AD_Role_ID, null); + else + set_Value (COLUMNNAME_AD_Role_ID, Integer.valueOf(AD_Role_ID)); + } + + /** Get Role. + @return Responsibility Role + */ + public int getAD_Role_ID() + { + Integer ii = (Integer)get_Value(COLUMNNAME_AD_Role_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + + public org.compiere.model.I_AD_Table getAD_Table() throws RuntimeException + { + return (org.compiere.model.I_AD_Table)MTable.get(getCtx(), org.compiere.model.I_AD_Table.Table_ID) + .getPO(getAD_Table_ID(), get_TrxName()); + } + + /** Set Table. + @param AD_Table_ID Database Table information + */ + public void setAD_Table_ID (int AD_Table_ID) + { + if (AD_Table_ID < 1) + set_Value (COLUMNNAME_AD_Table_ID, null); + else + set_Value (COLUMNNAME_AD_Table_ID, Integer.valueOf(AD_Table_ID)); + } + + /** Get Table. + @return Database Table information + */ + public int getAD_Table_ID() + { + Integer ii = (Integer)get_Value(COLUMNNAME_AD_Table_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set AD_TableValRule_UU. + @param AD_TableValRule_UU AD_TableValRule_UU + */ + public void setAD_TableValRule_UU (String AD_TableValRule_UU) + { + set_Value (COLUMNNAME_AD_TableValRule_UU, AD_TableValRule_UU); + } + + /** Get AD_TableValRule_UU. + @return AD_TableValRule_UU */ + public String getAD_TableValRule_UU() + { + return (String)get_Value(COLUMNNAME_AD_TableValRule_UU); + } + + public org.compiere.model.I_AD_User getAD_User() throws RuntimeException + { + return (org.compiere.model.I_AD_User)MTable.get(getCtx(), org.compiere.model.I_AD_User.Table_ID) + .getPO(getAD_User_ID(), get_TrxName()); + } + + /** Set User/Contact. + @param AD_User_ID User within the system - Internal or Business Partner Contact + */ + public void setAD_User_ID (int AD_User_ID) + { + if (AD_User_ID < 1) + set_Value (COLUMNNAME_AD_User_ID, null); + else + set_Value (COLUMNNAME_AD_User_ID, Integer.valueOf(AD_User_ID)); + } + + /** Get User/Contact. + @return User within the system - Internal or Business Partner Contact + */ + public int getAD_User_ID() + { + Integer ii = (Integer)get_Value(COLUMNNAME_AD_User_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set Validation code. + @param Code Validation Code + */ + public void setCode (String Code) + { + set_Value (COLUMNNAME_Code, Code); + } + + /** Get Validation code. + @return Validation Code + */ + public String getCode() + { + return (String)get_Value(COLUMNNAME_Code); + } + + /** Set Description. + @param Description Optional short description of the record + */ + public void setDescription (String Description) + { + set_Value (COLUMNNAME_Description, Description); + } + + /** Get Description. + @return Optional short description of the record + */ + public String getDescription() + { + return (String)get_Value(COLUMNNAME_Description); + } +} \ No newline at end of file