hg merge release-6.2 (merge release6.2 into default)
This commit is contained in:
commit
cee4edc557
|
@ -0,0 +1,8 @@
|
||||||
|
UPDATE ad_treebar SET ad_client_id=(SELECT ad_client_id FROM ad_user WHERE ad_user.ad_user_id=ad_treebar.ad_user_id)
|
||||||
|
WHERE ad_client_id!=(SELECT ad_client_id FROM ad_user WHERE ad_user.ad_user_id=ad_treebar.ad_user_id);
|
||||||
|
|
||||||
|
UPDATE ad_treebar SET ad_org_id=0 WHERE ad_org_id!=0;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903181955_IDEMPIERE-3528.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
-- IDEMPIERE-2395 - clean orphan ad_note in seed
|
||||||
|
DELETE FROM ad_note WHERE ad_table_id=53043 AND record_id NOT IN (SELECT PP_MRP_ID FROM PP_MRP);
|
||||||
|
|
||||||
|
DELETE FROM ad_attachment WHERE ad_table_id=389 AND record_id NOT IN (SELECT ad_note_id FROM ad_note);
|
||||||
|
|
||||||
|
DELETE FROM ad_treenodecmt WHERE node_id>0 AND node_id NOT IN (SELECT cm_template_id FROM cm_template);
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903191017_IDEMPIERE-2395.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- IDEMPIERE-2395
|
||||||
|
-- Mar 19, 2019, 3:24:55 PM BRT
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203300,0,0,'Y',TO_DATE('2019-03-19 15:24:31','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-19 15:24:31','YYYY-MM-DD HH24:MI:SS'),100,'IsCleanChangeLog','Clean Change Log',NULL,NULL,'Clean Change Log','D','c6e68794-2989-4a46-9151-a94a3254cf93')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 3:25:19 PM BRT
|
||||||
|
INSERT INTO AD_Process_Para (AD_Process_Para_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Name,AD_Process_ID,SeqNo,AD_Reference_ID,IsRange,FieldLength,IsMandatory,DefaultValue,ColumnName,IsCentrallyMaintained,EntityType,AD_Element_ID,AD_Process_Para_UU,IsEncrypted) VALUES (200269,0,0,'Y',TO_DATE('2019-03-19 15:25:18','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-19 15:25:18','YYYY-MM-DD HH24:MI:SS'),100,'Clean Change Log',200102,10,20,'N',1,'Y','N','IsCleanChangeLog','Y','D',203300,'459a7f88-ec79-47cf-9c7b-7429ac565f55','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903191533_IDEMPIERE-2395.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,115 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- IDEMPIERE-3916 Copy Template
|
||||||
|
-- Mar 19, 2019, 3:57:52 PM BRT
|
||||||
|
UPDATE AD_Process SET Name='Copy Client', Description='Process to copy a client', Help='This process can be used to copy a client from an external database to the current database, or to duplicate a template client within the current database.',Updated=TO_DATE('2019-03-19 15:57:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_ID=200110
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 3:57:52 PM BRT
|
||||||
|
UPDATE AD_Menu SET Name='Copy Client', Description='Process to copy a client', IsActive='Y',Updated=TO_DATE('2019-03-19 15:57:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Menu_ID=200168
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 3:59:09 PM BRT
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203301,0,0,'Y',TO_DATE('2019-03-19 15:58:39','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-19 15:58:39','YYYY-MM-DD HH24:MI:SS'),100,'IsCopyClient','Copy Template Client',NULL,NULL,'Copy Template Client','D','a5e530c4-15aa-4e5e-9d43-afb7b7528ce1')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 3:59:42 PM BRT
|
||||||
|
INSERT INTO AD_Process_Para (AD_Process_Para_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Name,AD_Process_ID,SeqNo,AD_Reference_ID,IsRange,FieldLength,IsMandatory,DefaultValue,ColumnName,IsCentrallyMaintained,EntityType,AD_Element_ID,AD_Process_Para_UU,IsEncrypted) VALUES (200270,0,0,'Y',TO_DATE('2019-03-19 15:59:42','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-19 15:59:42','YYYY-MM-DD HH24:MI:SS'),100,'Copy Template Client',200110,5,20,'N',1,'Y','N','IsCopyClient','Y','D',203301,'c7f81809-5948-47fd-8a37-a6614266c104','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:00:55 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET IsMandatory='N', DisplayLogic='IsCopyClient=N', MandatoryLogic='IsCopyClient=N',Updated=TO_DATE('2019-03-19 16:00:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200256
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:01:02 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='IsCopyClient=N',Updated=TO_DATE('2019-03-19 16:01:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200257
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:01:04 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='IsCopyClient=N',Updated=TO_DATE('2019-03-19 16:01:04','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200258
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:01:29 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='IsCopyClient=N',Updated=TO_DATE('2019-03-19 16:01:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200261
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:01:43 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='IsCopyClient=N',Updated=TO_DATE('2019-03-19 16:01:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200263
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:09 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=110,Updated=TO_DATE('2019-03-19 16:03:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200263
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:17 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=100,Updated=TO_DATE('2019-03-19 16:03:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200262
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:21 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=90,Updated=TO_DATE('2019-03-19 16:03:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200261
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:28 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=80,Updated=TO_DATE('2019-03-19 16:03:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200260
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:32 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=70,Updated=TO_DATE('2019-03-19 16:03:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200259
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:41 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=40,Updated=TO_DATE('2019-03-19 16:03:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200258
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:45 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=30,Updated=TO_DATE('2019-03-19 16:03:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200257
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:48 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=20,Updated=TO_DATE('2019-03-19 16:03:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200256
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:53 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=10,Updated=TO_DATE('2019-03-19 16:03:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200270
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:06:44 PM BRT
|
||||||
|
INSERT INTO AD_Process_Para (AD_Process_Para_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Name,Help,AD_Process_ID,SeqNo,AD_Reference_ID,IsRange,FieldLength,IsMandatory,ColumnName,IsCentrallyMaintained,EntityType,AD_Element_ID,DisplayLogic,AD_Process_Para_UU,IsEncrypted,MandatoryLogic) VALUES (200271,0,0,'Y',TO_DATE('2019-03-19 16:06:44','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-19 16:06:44','YYYY-MM-DD HH24:MI:SS'),100,'Client Name','Client in which current session user logged in',200110,50,10,'N',60,'N','ClientName','Y','D',200186,'@IsCopyClient@=Y','edbacdb3-9a07-490a-ba53-33d0cab63c47','N','@IsCopyClient@=Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:07:17 PM BRT
|
||||||
|
INSERT INTO AD_Process_Para (AD_Process_Para_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Name,Description,AD_Process_ID,SeqNo,AD_Reference_ID,IsRange,FieldLength,IsMandatory,ColumnName,IsCentrallyMaintained,EntityType,AD_Element_ID,DisplayLogic,AD_Process_Para_UU,IsEncrypted,MandatoryLogic) VALUES (200272,0,0,'Y',TO_DATE('2019-03-19 16:07:16','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-19 16:07:16','YYYY-MM-DD HH24:MI:SS'),100,'Client Key','Key of the Client',200110,60,10,'N',40,'N','ClientValue','Y','D',2097,'@IsCopyClient@=Y','55b77a95-1564-41d2-9177-97fbcf264e66','N','@IsCopyClient@=Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:07:45 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='@IsCopyClient@=N', MandatoryLogic='@IsCopyClient@=N',Updated=TO_DATE('2019-03-19 16:07:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200256
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:07:51 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='@IsCopyClient@=N',Updated=TO_DATE('2019-03-19 16:07:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200257
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:07:56 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='@IsCopyClient@=N',Updated=TO_DATE('2019-03-19 16:07:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200258
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:08:11 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='@IsCopyClient@=N',Updated=TO_DATE('2019-03-19 16:08:11','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200261
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:08:21 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='@IsCopyClient@=N',Updated=TO_DATE('2019-03-19 16:08:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200263
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:09:44 PM BRT
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203302,0,0,'Y',TO_DATE('2019-03-19 16:09:00','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-19 16:09:00','YYYY-MM-DD HH24:MI:SS'),100,'IsSkipSomeValidations','Skip Some Validations',NULL,NULL,'Skip Some Validations','D','b061fb74-6d5f-49dd-a7ff-2e94eeca9fe4')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:10:39 PM BRT
|
||||||
|
INSERT INTO AD_Process_Para (AD_Process_Para_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Name,AD_Process_ID,SeqNo,AD_Reference_ID,IsRange,FieldLength,IsMandatory,DefaultValue,ColumnName,IsCentrallyMaintained,EntityType,AD_Element_ID,DisplayLogic,AD_Process_Para_UU,IsEncrypted) VALUES (200273,0,0,'Y',TO_DATE('2019-03-19 16:10:38','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-19 16:10:38','YYYY-MM-DD HH24:MI:SS'),100,'Skip Some Validations',200110,120,20,'N',1,'Y','N','IsSkipSomeValidations','Y','D',203302,'@IsCopyClient@=Y','976f2e77-2354-4724-89a8-d13176211649','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903191614_IDEMPIERE-3916_CopyClient.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,222 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- IDEMPIERE-3926 Restrict roles in login by type
|
||||||
|
-- Mar 21, 2019, 2:17:02 PM BRT
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203303,0,0,'Y',TO_DATE('2019-03-21 14:16:45','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:16:45','YYYY-MM-DD HH24:MI:SS'),100,'RoleType','Role Type',NULL,NULL,'Role Type','D','d5790909-7831-4e65-ae23-2621d6916933')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:17:50 PM BRT
|
||||||
|
INSERT INTO AD_Reference (AD_Reference_ID,Name,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU) VALUES (200166,'AD_Role RoleType','L',0,0,'Y',TO_DATE('2019-03-21 14:17:49','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:17:49','YYYY-MM-DD HH24:MI:SS'),100,'D','N','88b0c074-0f6f-4a8b-b76e-e230e340f670')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:18:17 PM BRT
|
||||||
|
INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,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,SeqNoSelection,IsToolbarButton,IsSecure,IsHtml) VALUES (213856,0,'Role Type',156,'RoleType',2,'N','N','N','N','N',0,'N',17,200166,0,0,'Y',TO_DATE('2019-03-21 14:18:16','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:18:16','YYYY-MM-DD HH24:MI:SS'),100,203303,'Y','N','D','N','N','N','Y','ab062f58-46e1-4a1a-9245-bfa6dd7f42bb','Y',0,'N','N','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:18:20 PM BRT
|
||||||
|
ALTER TABLE AD_Role ADD RoleType VARCHAR2(2) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:21:49 PM BRT
|
||||||
|
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,SortNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,AD_FieldGroup_ID,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField) VALUES (205947,'Role Type',119,213856,'Y',0,450,0,'N','N','N','N',0,0,'Y',TO_DATE('2019-03-21 14:21:48','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:21:48','YYYY-MM-DD HH24:MI:SS'),100,'N','Y',135,'D','69560ba0-28c5-481b-b06f-ba1fb8cf468f','Y',440,1,1,1,'N','N','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=50, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=364
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=60, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=7833
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=70, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=363
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=90, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200071
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=100, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11002
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=110, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=930
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=120, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=931
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=130, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=59591
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=140, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=59592
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=150, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10126
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=160, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205947
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=170, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11003
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5227
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=2, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202366
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10813
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=210, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11257
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=220, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8312
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=230, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8310
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=240, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8313
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=250, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8314
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=260, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8311
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=270, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11006
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=280, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12367
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=290, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12368
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=300, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11256
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=310, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50168
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=320, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50178
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=330, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50176
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=340, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50170
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=350, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50174
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=360, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50173
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=370, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50172
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=380, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=2, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50175
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=390, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50169
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=400, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50177
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=0, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204590
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:35:20 PM BRT
|
||||||
|
UPDATE AD_Field SET DisplayLogic='@IsMasterRole@=N', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 14:35:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205947
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:37:34 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200457,'WebUI',200166,'ZK',0,0,'Y',TO_DATE('2019-03-21 14:37:33','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:37:33','YYYY-MM-DD HH24:MI:SS'),100,'D','af5be523-6318-4b6c-bc8b-f51ecd0de2d0')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:37:43 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200458,'WebService',200166,'WS',0,0,'Y',TO_DATE('2019-03-21 14:37:43','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:37:43','YYYY-MM-DD HH24:MI:SS'),100,'D','ff7ae569-ea86-4c21-9aff-6a9073f4b677')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:37:53 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200459,'System Support',200166,'SS',0,0,'Y',TO_DATE('2019-03-21 14:37:53','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:37:53','YYYY-MM-DD HH24:MI:SS'),100,'D','3b6ad66c-e962-46a5-a3ec-b8787ee4c754')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:04 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200460,'Mobile',200166,'MO',0,0,'Y',TO_DATE('2019-03-21 14:38:03','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:38:03','YYYY-MM-DD HH24:MI:SS'),100,'D','78962d5b-b6bb-4798-8f9d-fd36381b58ed')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:13 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200461,'Swing',200166,'SW',0,0,'Y',TO_DATE('2019-03-21 14:38:12','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:38:12','YYYY-MM-DD HH24:MI:SS'),100,'D','b6d02ebf-6845-47d9-b91e-b956084333e8')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:27 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200462,'External App 1',200166,'E1',0,0,'Y',TO_DATE('2019-03-21 14:38:27','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:38:27','YYYY-MM-DD HH24:MI:SS'),100,'D','d6bc8c6d-d5bf-458c-81f7-4d3f11303d6d')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:41 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200463,'External App 2',200166,'E2',0,0,'Y',TO_DATE('2019-03-21 14:38:40','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:38:40','YYYY-MM-DD HH24:MI:SS'),100,'D','79a2e44a-dfd6-4114-b835-5392c4736eb9')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:46 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200464,'External App 3',200166,'E3',0,0,'Y',TO_DATE('2019-03-21 14:38:46','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:38:46','YYYY-MM-DD HH24:MI:SS'),100,'D','f158da0d-6ad6-4f2e-aa65-099417d6217b')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:54 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200465,'External App 4',200166,'E4',0,0,'Y',TO_DATE('2019-03-21 14:38:53','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:38:53','YYYY-MM-DD HH24:MI:SS'),100,'D','d136b0f9-658a-4e79-b22f-3cf995da34ff')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:39:00 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200466,'External App 5',200166,'E5',0,0,'Y',TO_DATE('2019-03-21 14:38:59','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 14:38:59','YYYY-MM-DD HH24:MI:SS'),100,'D','b06729fb-ce8e-4bff-b6da-0f38bdefa55e')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:43:43 PM BRT
|
||||||
|
UPDATE AD_Role SET RoleType='WS',Updated=TO_DATE('2019-03-21 14:43:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Role_ID=50004
|
||||||
|
;
|
||||||
|
|
||||||
|
UPDATE AD_Role SET RoleType='SS',Updated=TO_DATE('2019-03-21 14:43:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Role_ID=0
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903211444_IDEMPIERE-3926.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,291 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- IDEMPIERE-3352 Enhancement of Batch Level Costing
|
||||||
|
-- Mar 21, 2019, 5:27:07 PM BRT
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203304,0,0,'Y',TO_DATE('2019-03-21 17:25:13','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 17:25:13','YYYY-MM-DD HH24:MI:SS'),100,'IsSupportUser','Support User',NULL,NULL,'Support User','D','d25abb34-0978-4475-b27f-c9141985b1db')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:27:36 PM BRT
|
||||||
|
INSERT INTO AD_Column (AD_Column_ID,Version,Name,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,IsHtml) VALUES (213857,0,'Support User',114,'IsSupportUser','N',1,'N','N','Y','N','N',0,'N',20,0,0,'Y',TO_DATE('2019-03-21 17:27:36','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 17:27:36','YYYY-MM-DD HH24:MI:SS'),100,203304,'Y','N','D','N','N','N','Y','fe4fbe00-ff30-4810-bc60-9608ac6fc885','Y',0,'N','N','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:27:38 PM BRT
|
||||||
|
ALTER TABLE AD_User ADD IsSupportUser CHAR(1) DEFAULT 'N' CHECK (IsSupportUser IN ('Y','N')) NOT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:30:34 PM BRT
|
||||||
|
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,SortNo,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) VALUES (205948,'Support User',118,213857,'Y',0,430,0,'N','N','N','N',0,0,'Y',TO_DATE('2019-03-21 17:30:34','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2019-03-21 17:30:34','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','01a94208-4db0-4b76-81ff-273561203926','Y',430,1,1,1,'N','N','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=204217
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=5884
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=12640
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=52010
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=302
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=10,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=309
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=20,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=300
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=110,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=6521
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=120,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=6515
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=130,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=6517
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=140,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=6514
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=150,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=6518
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=160,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=11679
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=170,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=12324
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=180,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=12323
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=190,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=5883
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=200,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=4261
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=210,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=10491
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=220,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=6511
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=230,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=200072
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=240,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=202876
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=250,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=202875
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=260,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=6513
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=270,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=11525
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=280,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=6520
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=290,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=8342
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=300,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=6519
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=310,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=200405
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=320,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=200400
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=330,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=200403
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=340,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=200401
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=350,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=200406
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=360,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=200402
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=370,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=200474
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=380,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=200475
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=390,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=200473
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=400,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=205948
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=410,IsDisplayedGrid='Y', Updated=sysdate, UpdatedBy=100 WHERE AD_Field_ID=205827
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:45 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=140, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6515
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:45 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=150, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12323
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=160, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6517
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=170, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6514
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6518
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11679
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12324
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=210, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=52010
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=250, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10491
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=260, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205948
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=270, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, ColumnSpan=2, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6511
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=280, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200072
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=290, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6513
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=300, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11525
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=310, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202876
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=320, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202875
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=330, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6520
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=340, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8342
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=350, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6519
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=360, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200400
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=370, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200405
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=380, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200406
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=390, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200474
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=400, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205827
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=410, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200403
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=420, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200401
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=430, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200402
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:38:17 PM BRT
|
||||||
|
UPDATE AD_Field SET AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL, IsAdvancedField='Y',Updated=TO_DATE('2019-03-21 17:38:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205948
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:41:32 PM BRT
|
||||||
|
UPDATE AD_User SET IsSupportUser='Y',Updated=TO_DATE('2019-03-21 17:41:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_User_ID=100
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903211743_IDEMPIERE-3439_IsSupportUser.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
UPDATE ad_treebar SET ad_client_id=(SELECT ad_client_id FROM ad_user WHERE ad_user.ad_user_id=ad_treebar.ad_user_id)
|
||||||
|
WHERE ad_client_id!=(SELECT ad_client_id FROM ad_user WHERE ad_user.ad_user_id=ad_treebar.ad_user_id);
|
||||||
|
|
||||||
|
UPDATE ad_treebar SET ad_org_id=0 WHERE ad_org_id!=0;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903181955_IDEMPIERE-3528.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
-- IDEMPIERE-2395 - clean orphan ad_note in seed
|
||||||
|
DELETE FROM ad_note WHERE ad_table_id=53043 AND record_id NOT IN (SELECT PP_MRP_ID FROM PP_MRP);
|
||||||
|
|
||||||
|
DELETE FROM ad_attachment WHERE ad_table_id=389 AND record_id NOT IN (SELECT ad_note_id FROM ad_note);
|
||||||
|
|
||||||
|
DELETE FROM ad_treenodecmt WHERE node_id>0 AND node_id NOT IN (SELECT cm_template_id FROM cm_template);
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903191017_IDEMPIERE-2395.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
-- IDEMPIERE-2395
|
||||||
|
-- Mar 19, 2019, 3:24:55 PM BRT
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203300,0,0,'Y',TO_TIMESTAMP('2019-03-19 15:24:31','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-19 15:24:31','YYYY-MM-DD HH24:MI:SS'),100,'IsCleanChangeLog','Clean Change Log',NULL,NULL,'Clean Change Log','D','c6e68794-2989-4a46-9151-a94a3254cf93')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 3:25:19 PM BRT
|
||||||
|
INSERT INTO AD_Process_Para (AD_Process_Para_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Name,AD_Process_ID,SeqNo,AD_Reference_ID,IsRange,FieldLength,IsMandatory,DefaultValue,ColumnName,IsCentrallyMaintained,EntityType,AD_Element_ID,AD_Process_Para_UU,IsEncrypted) VALUES (200269,0,0,'Y',TO_TIMESTAMP('2019-03-19 15:25:18','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-19 15:25:18','YYYY-MM-DD HH24:MI:SS'),100,'Clean Change Log',200102,10,20,'N',1,'Y','N','IsCleanChangeLog','Y','D',203300,'459a7f88-ec79-47cf-9c7b-7429ac565f55','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903191533_IDEMPIERE-2395.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,112 @@
|
||||||
|
-- IDEMPIERE-3916 Copy Template
|
||||||
|
-- Mar 19, 2019, 3:57:52 PM BRT
|
||||||
|
UPDATE AD_Process SET Name='Copy Client', Description='Process to copy a client', Help='This process can be used to copy a client from an external database to the current database, or to duplicate a template client within the current database.',Updated=TO_TIMESTAMP('2019-03-19 15:57:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_ID=200110
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 3:57:52 PM BRT
|
||||||
|
UPDATE AD_Menu SET Name='Copy Client', Description='Process to copy a client', IsActive='Y',Updated=TO_TIMESTAMP('2019-03-19 15:57:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Menu_ID=200168
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 3:59:09 PM BRT
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203301,0,0,'Y',TO_TIMESTAMP('2019-03-19 15:58:39','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-19 15:58:39','YYYY-MM-DD HH24:MI:SS'),100,'IsCopyClient','Copy Template Client',NULL,NULL,'Copy Template Client','D','a5e530c4-15aa-4e5e-9d43-afb7b7528ce1')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 3:59:42 PM BRT
|
||||||
|
INSERT INTO AD_Process_Para (AD_Process_Para_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Name,AD_Process_ID,SeqNo,AD_Reference_ID,IsRange,FieldLength,IsMandatory,DefaultValue,ColumnName,IsCentrallyMaintained,EntityType,AD_Element_ID,AD_Process_Para_UU,IsEncrypted) VALUES (200270,0,0,'Y',TO_TIMESTAMP('2019-03-19 15:59:42','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-19 15:59:42','YYYY-MM-DD HH24:MI:SS'),100,'Copy Template Client',200110,5,20,'N',1,'Y','N','IsCopyClient','Y','D',203301,'c7f81809-5948-47fd-8a37-a6614266c104','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:00:55 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET IsMandatory='N', DisplayLogic='IsCopyClient=N', MandatoryLogic='IsCopyClient=N',Updated=TO_TIMESTAMP('2019-03-19 16:00:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200256
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:01:02 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='IsCopyClient=N',Updated=TO_TIMESTAMP('2019-03-19 16:01:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200257
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:01:04 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='IsCopyClient=N',Updated=TO_TIMESTAMP('2019-03-19 16:01:04','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200258
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:01:29 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='IsCopyClient=N',Updated=TO_TIMESTAMP('2019-03-19 16:01:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200261
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:01:43 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='IsCopyClient=N',Updated=TO_TIMESTAMP('2019-03-19 16:01:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200263
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:09 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=110,Updated=TO_TIMESTAMP('2019-03-19 16:03:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200263
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:17 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=100,Updated=TO_TIMESTAMP('2019-03-19 16:03:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200262
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:21 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=90,Updated=TO_TIMESTAMP('2019-03-19 16:03:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200261
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:28 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=80,Updated=TO_TIMESTAMP('2019-03-19 16:03:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200260
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:32 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=70,Updated=TO_TIMESTAMP('2019-03-19 16:03:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200259
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:41 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=40,Updated=TO_TIMESTAMP('2019-03-19 16:03:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200258
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:45 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=30,Updated=TO_TIMESTAMP('2019-03-19 16:03:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200257
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:48 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=20,Updated=TO_TIMESTAMP('2019-03-19 16:03:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200256
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:03:53 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET SeqNo=10,Updated=TO_TIMESTAMP('2019-03-19 16:03:53','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200270
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:06:44 PM BRT
|
||||||
|
INSERT INTO AD_Process_Para (AD_Process_Para_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Name,Help,AD_Process_ID,SeqNo,AD_Reference_ID,IsRange,FieldLength,IsMandatory,ColumnName,IsCentrallyMaintained,EntityType,AD_Element_ID,DisplayLogic,AD_Process_Para_UU,IsEncrypted,MandatoryLogic) VALUES (200271,0,0,'Y',TO_TIMESTAMP('2019-03-19 16:06:44','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-19 16:06:44','YYYY-MM-DD HH24:MI:SS'),100,'Client Name','Client in which current session user logged in',200110,50,10,'N',60,'N','ClientName','Y','D',200186,'@IsCopyClient@=Y','edbacdb3-9a07-490a-ba53-33d0cab63c47','N','@IsCopyClient@=Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:07:17 PM BRT
|
||||||
|
INSERT INTO AD_Process_Para (AD_Process_Para_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Name,Description,AD_Process_ID,SeqNo,AD_Reference_ID,IsRange,FieldLength,IsMandatory,ColumnName,IsCentrallyMaintained,EntityType,AD_Element_ID,DisplayLogic,AD_Process_Para_UU,IsEncrypted,MandatoryLogic) VALUES (200272,0,0,'Y',TO_TIMESTAMP('2019-03-19 16:07:16','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-19 16:07:16','YYYY-MM-DD HH24:MI:SS'),100,'Client Key','Key of the Client',200110,60,10,'N',40,'N','ClientValue','Y','D',2097,'@IsCopyClient@=Y','55b77a95-1564-41d2-9177-97fbcf264e66','N','@IsCopyClient@=Y')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:07:45 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='@IsCopyClient@=N', MandatoryLogic='@IsCopyClient@=N',Updated=TO_TIMESTAMP('2019-03-19 16:07:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200256
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:07:51 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='@IsCopyClient@=N',Updated=TO_TIMESTAMP('2019-03-19 16:07:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200257
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:07:56 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='@IsCopyClient@=N',Updated=TO_TIMESTAMP('2019-03-19 16:07:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200258
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:08:11 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='@IsCopyClient@=N',Updated=TO_TIMESTAMP('2019-03-19 16:08:11','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200261
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:08:21 PM BRT
|
||||||
|
UPDATE AD_Process_Para SET DisplayLogic='@IsCopyClient@=N',Updated=TO_TIMESTAMP('2019-03-19 16:08:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Process_Para_ID=200263
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:09:44 PM BRT
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203302,0,0,'Y',TO_TIMESTAMP('2019-03-19 16:09:00','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-19 16:09:00','YYYY-MM-DD HH24:MI:SS'),100,'IsSkipSomeValidations','Skip Some Validations',NULL,NULL,'Skip Some Validations','D','b061fb74-6d5f-49dd-a7ff-2e94eeca9fe4')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 19, 2019, 4:10:39 PM BRT
|
||||||
|
INSERT INTO AD_Process_Para (AD_Process_Para_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,Name,AD_Process_ID,SeqNo,AD_Reference_ID,IsRange,FieldLength,IsMandatory,DefaultValue,ColumnName,IsCentrallyMaintained,EntityType,AD_Element_ID,DisplayLogic,AD_Process_Para_UU,IsEncrypted) VALUES (200273,0,0,'Y',TO_TIMESTAMP('2019-03-19 16:10:38','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-19 16:10:38','YYYY-MM-DD HH24:MI:SS'),100,'Skip Some Validations',200110,120,20,'N',1,'Y','N','IsSkipSomeValidations','Y','D',203302,'@IsCopyClient@=Y','976f2e77-2354-4724-89a8-d13176211649','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903191614_IDEMPIERE-3916_CopyClient.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,219 @@
|
||||||
|
-- IDEMPIERE-3926 Restrict roles in login by type
|
||||||
|
-- Mar 21, 2019, 2:17:02 PM BRT
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203303,0,0,'Y',TO_TIMESTAMP('2019-03-21 14:16:45','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:16:45','YYYY-MM-DD HH24:MI:SS'),100,'RoleType','Role Type',NULL,NULL,'Role Type','D','d5790909-7831-4e65-ae23-2621d6916933')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:17:50 PM BRT
|
||||||
|
INSERT INTO AD_Reference (AD_Reference_ID,Name,ValidationType,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,IsOrderByValue,AD_Reference_UU) VALUES (200166,'AD_Role RoleType','L',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:17:49','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:17:49','YYYY-MM-DD HH24:MI:SS'),100,'D','N','88b0c074-0f6f-4a8b-b76e-e230e340f670')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:18:17 PM BRT
|
||||||
|
INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,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,SeqNoSelection,IsToolbarButton,IsSecure,IsHtml) VALUES (213856,0,'Role Type',156,'RoleType',2,'N','N','N','N','N',0,'N',17,200166,0,0,'Y',TO_TIMESTAMP('2019-03-21 14:18:16','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:18:16','YYYY-MM-DD HH24:MI:SS'),100,203303,'Y','N','D','N','N','N','Y','ab062f58-46e1-4a1a-9245-bfa6dd7f42bb','Y',0,'N','N','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:18:20 PM BRT
|
||||||
|
ALTER TABLE AD_Role ADD COLUMN RoleType VARCHAR(2) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:21:49 PM BRT
|
||||||
|
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,SortNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,AD_FieldGroup_ID,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField) VALUES (205947,'Role Type',119,213856,'Y',0,450,0,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:21:48','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:21:48','YYYY-MM-DD HH24:MI:SS'),100,'N','Y',135,'D','69560ba0-28c5-481b-b06f-ba1fb8cf468f','Y',440,1,1,1,'N','N','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=50, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=364
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=60, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=7833
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=70, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=363
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=90, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200071
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=100, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11002
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=110, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=930
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=120, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=931
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=130, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=59591
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=140, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=59592
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=150, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10126
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=160, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205947
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=170, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11003
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5227
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=2, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202366
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10813
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=210, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11257
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=220, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8312
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=230, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8310
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=240, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8313
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=250, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8314
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=260, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8311
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:40 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=270, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:40','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11006
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=280, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12367
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=290, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12368
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=300, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11256
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=310, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50168
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=320, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50178
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=330, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50176
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=340, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50170
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=350, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50174
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=360, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50173
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=370, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50172
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=380, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=2, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50175
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=390, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50169
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=400, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50177
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:34:41 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=0, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:34:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204590
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:35:20 PM BRT
|
||||||
|
UPDATE AD_Field SET DisplayLogic='@IsMasterRole@=N', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 14:35:20','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205947
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:37:34 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200457,'WebUI',200166,'ZK',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:37:33','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:37:33','YYYY-MM-DD HH24:MI:SS'),100,'D','af5be523-6318-4b6c-bc8b-f51ecd0de2d0')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:37:43 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200458,'WebService',200166,'WS',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:37:43','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:37:43','YYYY-MM-DD HH24:MI:SS'),100,'D','ff7ae569-ea86-4c21-9aff-6a9073f4b677')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:37:53 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200459,'System Support',200166,'SS',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:37:53','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:37:53','YYYY-MM-DD HH24:MI:SS'),100,'D','3b6ad66c-e962-46a5-a3ec-b8787ee4c754')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:04 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200460,'Mobile',200166,'MO',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:38:03','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:38:03','YYYY-MM-DD HH24:MI:SS'),100,'D','78962d5b-b6bb-4798-8f9d-fd36381b58ed')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:13 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200461,'Swing',200166,'SW',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:38:12','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:38:12','YYYY-MM-DD HH24:MI:SS'),100,'D','b6d02ebf-6845-47d9-b91e-b956084333e8')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:27 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200462,'External App 1',200166,'E1',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:38:27','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:38:27','YYYY-MM-DD HH24:MI:SS'),100,'D','d6bc8c6d-d5bf-458c-81f7-4d3f11303d6d')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:41 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200463,'External App 2',200166,'E2',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:38:40','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:38:40','YYYY-MM-DD HH24:MI:SS'),100,'D','79a2e44a-dfd6-4114-b835-5392c4736eb9')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:46 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200464,'External App 3',200166,'E3',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:38:46','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:38:46','YYYY-MM-DD HH24:MI:SS'),100,'D','f158da0d-6ad6-4f2e-aa65-099417d6217b')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:38:54 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200465,'External App 4',200166,'E4',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:38:53','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:38:53','YYYY-MM-DD HH24:MI:SS'),100,'D','d136b0f9-658a-4e79-b22f-3cf995da34ff')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:39:00 PM BRT
|
||||||
|
INSERT INTO AD_Ref_List (AD_Ref_List_ID,Name,AD_Reference_ID,Value,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,EntityType,AD_Ref_List_UU) VALUES (200466,'External App 5',200166,'E5',0,0,'Y',TO_TIMESTAMP('2019-03-21 14:38:59','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 14:38:59','YYYY-MM-DD HH24:MI:SS'),100,'D','b06729fb-ce8e-4bff-b6da-0f38bdefa55e')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 2:43:43 PM BRT
|
||||||
|
UPDATE AD_Role SET RoleType='WS',Updated=TO_TIMESTAMP('2019-03-21 14:43:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Role_ID=50004
|
||||||
|
;
|
||||||
|
|
||||||
|
UPDATE AD_Role SET RoleType='SS',Updated=TO_TIMESTAMP('2019-03-21 14:43:43','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Role_ID=0
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903211444_IDEMPIERE-3926.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,288 @@
|
||||||
|
-- IDEMPIERE-3352 Enhancement of Batch Level Costing
|
||||||
|
-- Mar 21, 2019, 5:27:07 PM BRT
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203304,0,0,'Y',TO_TIMESTAMP('2019-03-21 17:25:13','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 17:25:13','YYYY-MM-DD HH24:MI:SS'),100,'IsSupportUser','Support User',NULL,NULL,'Support User','D','d25abb34-0978-4475-b27f-c9141985b1db')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:27:36 PM BRT
|
||||||
|
INSERT INTO AD_Column (AD_Column_ID,Version,Name,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,IsHtml) VALUES (213857,0,'Support User',114,'IsSupportUser','N',1,'N','N','Y','N','N',0,'N',20,0,0,'Y',TO_TIMESTAMP('2019-03-21 17:27:36','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 17:27:36','YYYY-MM-DD HH24:MI:SS'),100,203304,'Y','N','D','N','N','N','Y','fe4fbe00-ff30-4810-bc60-9608ac6fc885','Y',0,'N','N','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:27:38 PM BRT
|
||||||
|
ALTER TABLE AD_User ADD COLUMN IsSupportUser CHAR(1) DEFAULT 'N' CHECK (IsSupportUser IN ('Y','N')) NOT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:30:34 PM BRT
|
||||||
|
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,SortNo,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) VALUES (205948,'Support User',118,213857,'Y',0,430,0,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2019-03-21 17:30:34','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2019-03-21 17:30:34','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','01a94208-4db0-4b76-81ff-273561203926','Y',430,1,1,1,'N','N','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=204217
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=5884
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=12640
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=52010
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=302
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=10,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=309
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=20,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=300
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=110,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=6521
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=120,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=6515
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=130,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=6517
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=140,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=6514
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=150,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=6518
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=160,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=11679
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=170,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=12324
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=180,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=12323
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=190,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=5883
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=200,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=4261
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=210,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=10491
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=220,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=6511
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=230,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=200072
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=240,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=202876
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=250,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=202875
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=260,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=6513
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=270,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=11525
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=280,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=6520
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=290,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=8342
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=300,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=6519
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=310,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=200405
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=320,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=200400
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=330,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=200403
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=340,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=200401
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=350,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=200406
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=360,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=200402
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=370,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=200474
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=380,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=200475
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=390,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=200473
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=400,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=205948
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:31:23 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNoGrid=410,IsDisplayedGrid='Y', Updated=statement_timestamp(), UpdatedBy=100 WHERE AD_Field_ID=205827
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:45 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=140, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6515
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=150, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:45','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12323
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=160, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6517
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=170, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6514
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6518
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11679
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=12324
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=210, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=52010
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=250, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10491
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=260, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205948
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=270, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, ColumnSpan=2, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6511
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=280, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200072
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=290, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6513
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=300, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11525
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=310, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202876
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=320, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202875
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=330, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6520
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=340, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=8342
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=350, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=6519
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=360, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200400
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=370, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200405
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=380, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200406
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=390, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200474
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=400, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205827
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=410, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200403
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=420, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200401
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:37:46 PM BRT
|
||||||
|
UPDATE AD_Field SET SeqNo=430, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2019-03-21 17:37:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200402
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:38:17 PM BRT
|
||||||
|
UPDATE AD_Field SET AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL, IsAdvancedField='Y',Updated=TO_TIMESTAMP('2019-03-21 17:38:17','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205948
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Mar 21, 2019, 5:41:32 PM BRT
|
||||||
|
UPDATE AD_User SET IsSupportUser='Y',Updated=TO_TIMESTAMP('2019-03-21 17:41:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_User_ID=100
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201903211743_IDEMPIERE-3439_IsSupportUser.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -31,11 +31,14 @@ import java.util.logging.Level;
|
||||||
import org.compiere.model.MArchive;
|
import org.compiere.model.MArchive;
|
||||||
import org.compiere.model.MAttachment;
|
import org.compiere.model.MAttachment;
|
||||||
import org.compiere.model.MTable;
|
import org.compiere.model.MTable;
|
||||||
|
import org.compiere.model.MTree_Base;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
|
import org.compiere.model.X_AD_Package_UUID_Map;
|
||||||
import org.compiere.process.ProcessInfoParameter;
|
import org.compiere.process.ProcessInfoParameter;
|
||||||
import org.compiere.process.SvrProcess;
|
import org.compiere.process.SvrProcess;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
|
import org.compiere.util.ValueNamePair;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IDEMPIERE-2395
|
* IDEMPIERE-2395
|
||||||
|
@ -44,6 +47,8 @@ import org.compiere.util.Msg;
|
||||||
public class CleanOrphanCascade extends SvrProcess
|
public class CleanOrphanCascade extends SvrProcess
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private boolean p_IsCleanChangeLog;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare - e.g., get Parameters.
|
* Prepare - e.g., get Parameters.
|
||||||
*/
|
*/
|
||||||
|
@ -52,7 +57,11 @@ public class CleanOrphanCascade extends SvrProcess
|
||||||
for (ProcessInfoParameter para : getParameter())
|
for (ProcessInfoParameter para : getParameter())
|
||||||
{
|
{
|
||||||
String name = para.getParameterName();
|
String name = para.getParameterName();
|
||||||
log.log(Level.SEVERE, "Unknown Parameter: " + name);
|
if ("IsCleanChangeLog".equals(name)) {
|
||||||
|
p_IsCleanChangeLog = para.getParameterAsBoolean();
|
||||||
|
} else {
|
||||||
|
log.log(Level.SEVERE, "Unknown Parameter: " + name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} // prepare
|
} // prepare
|
||||||
|
|
||||||
|
@ -65,9 +74,38 @@ public class CleanOrphanCascade extends SvrProcess
|
||||||
{
|
{
|
||||||
if (log.isLoggable(Level.INFO)) log.info("");
|
if (log.isLoggable(Level.INFO)) log.info("");
|
||||||
|
|
||||||
|
ValueNamePair[] treeTables = new ValueNamePair[] {
|
||||||
|
new ValueNamePair("AD_TreeBar", "AD_Menu"),
|
||||||
|
new ValueNamePair("AD_TreeNodeBP", "C_BPartner"),
|
||||||
|
new ValueNamePair("AD_TreeNodeCMC", "CM_Container"),
|
||||||
|
new ValueNamePair("AD_TreeNodeCMM", "CM_Media"),
|
||||||
|
new ValueNamePair("AD_TreeNodeCMS", "CM_CStage"),
|
||||||
|
new ValueNamePair("AD_TreeNodeCMT", "CM_Template"),
|
||||||
|
new ValueNamePair("AD_TreeNodeMM", "AD_Menu"),
|
||||||
|
new ValueNamePair("AD_TreeNodePR", "M_Product"),
|
||||||
|
new ValueNamePair("AD_TreeNodeU1", "C_ElementValue"),
|
||||||
|
new ValueNamePair("AD_TreeNodeU2", "C_ElementValue"),
|
||||||
|
new ValueNamePair("AD_TreeNodeU3", "C_ElementValue"),
|
||||||
|
new ValueNamePair("AD_TreeNodeU4", "C_ElementValue")
|
||||||
|
};
|
||||||
|
for (ValueNamePair vnp : treeTables) {
|
||||||
|
String treeTable = vnp.getValue();
|
||||||
|
String foreignTable = vnp.getName();
|
||||||
|
delTree(treeTable,foreignTable, "Node_ID", 0);
|
||||||
|
if (! "AD_TreeBar".equalsIgnoreCase(treeTable)) {
|
||||||
|
delTree(treeTable,foreignTable, "Parent_ID", 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<MTree_Base> trees = new Query(getCtx(), MTree_Base.Table_Name, null, get_TrxName()).list();
|
||||||
|
String treeTable = "AD_TreeNode";
|
||||||
|
for (MTree_Base tree : trees) {
|
||||||
|
String foreignTable = tree.getSourceTableName(true);
|
||||||
|
delTree(treeTable,foreignTable, "Parent_ID", tree.getAD_Tree_ID());
|
||||||
|
}
|
||||||
|
|
||||||
String whereTables = ""
|
String whereTables = ""
|
||||||
+ " IsView = 'N' "
|
+ " IsView = 'N' "
|
||||||
+ "AND TableName != 'AD_ChangeLog' "
|
|
||||||
+ "AND EXISTS (SELECT 1 "
|
+ "AND EXISTS (SELECT 1 "
|
||||||
+ " FROM AD_Column ct "
|
+ " FROM AD_Column ct "
|
||||||
+ " WHERE ct.IsActive='Y' AND ct.AD_Table_ID = AD_Table.AD_Table_ID "
|
+ " WHERE ct.IsActive='Y' AND ct.AD_Table_ID = AD_Table.AD_Table_ID "
|
||||||
|
@ -80,13 +118,18 @@ public class CleanOrphanCascade extends SvrProcess
|
||||||
+ " FROM AD_Column ck "
|
+ " FROM AD_Column ck "
|
||||||
+ " WHERE ck.IsActive='Y' AND ck.AD_Table_ID = AD_Table.AD_Table_ID "
|
+ " WHERE ck.IsActive='Y' AND ck.AD_Table_ID = AD_Table.AD_Table_ID "
|
||||||
+ " AND ck.ColumnName = AD_Table.TableName || '_ID')";
|
+ " AND ck.ColumnName = AD_Table.TableName || '_ID')";
|
||||||
|
if (! p_IsCleanChangeLog) {
|
||||||
|
whereTables += " AND TableName != 'AD_ChangeLog'";
|
||||||
|
}
|
||||||
|
|
||||||
List<MTable> tables = new Query(getCtx(), "AD_Table", whereTables, get_TrxName())
|
List<MTable> tables = new Query(getCtx(), "AD_Table", whereTables, get_TrxName())
|
||||||
.setOnlyActiveRecords(true)
|
.setOnlyActiveRecords(true)
|
||||||
.setOrderBy("TableName")
|
.setOrderBy("TableName")
|
||||||
.list();
|
.list();
|
||||||
|
tables.add(MTable.get(getCtx(), X_AD_Package_UUID_Map.Table_Name));
|
||||||
for (MTable table : tables) {
|
for (MTable table : tables) {
|
||||||
String tableName = table.getTableName();
|
String tableName = table.getTableName();
|
||||||
|
boolean isUUIDMap = X_AD_Package_UUID_Map.Table_Name.equals(tableName);
|
||||||
|
|
||||||
StringBuilder sqlRef = new StringBuilder();
|
StringBuilder sqlRef = new StringBuilder();
|
||||||
sqlRef.append("SELECT DISTINCT t.AD_Table_ID, ");
|
sqlRef.append("SELECT DISTINCT t.AD_Table_ID, ");
|
||||||
|
@ -101,17 +144,26 @@ public class CleanOrphanCascade extends SvrProcess
|
||||||
String refTableName = row.get(1).toString();
|
String refTableName = row.get(1).toString();
|
||||||
|
|
||||||
MTable refTable = MTable.get(getCtx(), refTableID);
|
MTable refTable = MTable.get(getCtx(), refTableID);
|
||||||
if (refTable.getKeyColumns().length != 1) {
|
|
||||||
log.warning("Wrong reference for table " + tableName + " -> " + refTableName);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
String colRef = refTable.getKeyColumns()[0];
|
|
||||||
|
|
||||||
StringBuilder whereClause = new StringBuilder();
|
StringBuilder whereClause = new StringBuilder();
|
||||||
whereClause.append("AD_Table_ID = ").append(refTableID);
|
whereClause.append("AD_Table_ID = ").append(refTableID);
|
||||||
whereClause.append(" AND NOT EXISTS (SELECT ").append(colRef);
|
if (refTable.getKeyColumns().length != 1 && !isUUIDMap) {
|
||||||
whereClause.append(" FROM ").append(refTableName).append(" ");
|
log.warning("Wrong reference for table " + tableName + " -> " + refTableName);
|
||||||
whereClause.append(" WHERE ").append(refTableName).append(".").append(colRef).append(" = ").append(tableName).append(".Record_ID)");
|
whereClause.append(" AND Record_ID>0");
|
||||||
|
} else {
|
||||||
|
String colRef = refTable.getKeyColumns()[0];
|
||||||
|
if (isUUIDMap) {
|
||||||
|
colRef = MTable.getUUIDColumnName(refTable.getTableName());
|
||||||
|
}
|
||||||
|
|
||||||
|
whereClause.append(" AND NOT EXISTS (SELECT ").append(colRef);
|
||||||
|
whereClause.append(" FROM ").append(refTableName).append(" ");
|
||||||
|
whereClause.append(" WHERE ").append(refTableName).append(".").append(colRef).append(" = ").append(tableName);
|
||||||
|
if (isUUIDMap) {
|
||||||
|
whereClause.append(".Target_UUID)");
|
||||||
|
} else {
|
||||||
|
whereClause.append(".Record_ID)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int noDel = 0;
|
int noDel = 0;
|
||||||
if (MAttachment.Table_Name.equals(tableName)) {
|
if (MAttachment.Table_Name.equals(tableName)) {
|
||||||
|
@ -144,4 +196,19 @@ public class CleanOrphanCascade extends SvrProcess
|
||||||
return "@OK@";
|
return "@OK@";
|
||||||
} // doIt
|
} // doIt
|
||||||
|
|
||||||
|
private void delTree(String treeTable, String foreignTable, String columnName, int treeId) {
|
||||||
|
StringBuilder sqlDelete = new StringBuilder()
|
||||||
|
.append("DELETE FROM ").append(treeTable)
|
||||||
|
.append(" WHERE ").append(columnName).append(">0 AND ")
|
||||||
|
.append(columnName).append(" NOT IN (SELECT ").append(foreignTable).append("_ID FROM ").append(foreignTable).append(")");
|
||||||
|
if (treeId > 0) {
|
||||||
|
sqlDelete.append(" AND AD_Tree_ID=").append(treeId);
|
||||||
|
}
|
||||||
|
int noDel = DB.executeUpdateEx(sqlDelete.toString(), get_TrxName());
|
||||||
|
if (noDel > 0) {
|
||||||
|
addLog(Msg.parseTranslation(getCtx(), noDel + " " + treeTable + " " + "@Deleted@ -> " + foreignTable
|
||||||
|
+ (treeId > 0 ? " Tree=" + treeId: "" )));
|
||||||
|
}
|
||||||
|
} // delTree
|
||||||
|
|
||||||
} // CleanOrphanCascade
|
} // CleanOrphanCascade
|
||||||
|
|
|
@ -85,11 +85,11 @@ public class PackInFolderApplication implements IApplication {
|
||||||
.append("\n Logs=\n").append(pi.getLogInfo(false).replaceAll("<br>", "\n"));
|
.append("\n Logs=\n").append(pi.getLogInfo(false).replaceAll("<br>", "\n"));
|
||||||
System.out.println(msgout.toString());
|
System.out.println(msgout.toString());
|
||||||
if (!success)
|
if (!success)
|
||||||
return new Integer(1);
|
return Integer.valueOf(1);
|
||||||
} else {
|
} else {
|
||||||
System.out.println("Apply PackIn from Folder usage:");
|
System.out.println("Apply PackIn from Folder usage:");
|
||||||
System.out.println("RUN_ApplyPackInFromFolder.sh folder");
|
System.out.println("RUN_ApplyPackInFromFolder.sh folder");
|
||||||
return new Integer(1);
|
return Integer.valueOf(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,10 @@
|
||||||
package org.adempiere.base.event;
|
package org.adempiere.base.event;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.compiere.model.PO;
|
import org.compiere.model.PO;
|
||||||
|
import org.compiere.process.ProcessInfo;
|
||||||
import org.osgi.service.event.Event;
|
import org.osgi.service.event.Event;
|
||||||
import org.osgi.service.event.EventHandler;
|
import org.osgi.service.event.EventHandler;
|
||||||
|
|
||||||
|
@ -105,6 +107,21 @@ public abstract class AbstractEventHandler implements EventHandler {
|
||||||
registerEvent(topic, filter);
|
registerEvent(topic, filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param topic
|
||||||
|
* @param classOrUUID className or ProcessUUID
|
||||||
|
*/
|
||||||
|
protected void registerProcessEvent(String topic, String classOrUUID) {
|
||||||
|
String prop = "processUUID";
|
||||||
|
try {
|
||||||
|
UUID.fromString(classOrUUID);
|
||||||
|
} catch (Exception e) {
|
||||||
|
prop = "className";
|
||||||
|
}
|
||||||
|
String filter = "("+prop+"="+classOrUUID+")";
|
||||||
|
registerEvent(topic, filter);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param event
|
* @param event
|
||||||
* @return PO
|
* @return PO
|
||||||
|
@ -113,6 +130,14 @@ public abstract class AbstractEventHandler implements EventHandler {
|
||||||
return getEventProperty(event, IEventManager.EVENT_DATA);
|
return getEventProperty(event, IEventManager.EVENT_DATA);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param event
|
||||||
|
* @return ProcessInfo
|
||||||
|
*/
|
||||||
|
protected ProcessInfo getProcessInfo(Event event) {
|
||||||
|
return getEventProperty(event, IEventManager.EVENT_DATA);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param <T>
|
* @param <T>
|
||||||
|
|
|
@ -97,5 +97,12 @@ public interface IEventTopics {
|
||||||
public static final String BROADCAST_MESSAGE = "idempiere/broadcastMsg";
|
public static final String BROADCAST_MESSAGE = "idempiere/broadcastMsg";
|
||||||
|
|
||||||
public static final String REQUEST_SEND_EMAIL = "idempiere/requestSendEMail";
|
public static final String REQUEST_SEND_EMAIL = "idempiere/requestSendEMail";
|
||||||
}
|
|
||||||
|
|
||||||
|
/** Called before starting a process, after prepared */
|
||||||
|
public static final String BEFORE_PROCESS = "idempiere/beforeProcess";
|
||||||
|
/** Called after a process finishes, before commit */
|
||||||
|
public static final String AFTER_PROCESS = "idempiere/afterProcess";
|
||||||
|
/** Called after a process is committed */
|
||||||
|
public static final String POST_PROCESS = "idempiere/postProcess";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@ import org.compiere.util.DisplayType;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
import org.compiere.util.Trx;
|
import org.compiere.util.Trx;
|
||||||
|
import org.compiere.util.Util;
|
||||||
import org.compiere.util.ValueNamePair;
|
import org.compiere.util.ValueNamePair;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -127,13 +128,19 @@ public class UUIDGenerator extends SvrProcess {
|
||||||
//update db
|
//update db
|
||||||
if (isFillUUID) {
|
if (isFillUUID) {
|
||||||
// COMMENT NEXT LINE ON RELEASE WORK
|
// COMMENT NEXT LINE ON RELEASE WORK
|
||||||
updateUUID(mColumn, null);
|
String msg = updateUUID(mColumn, null);
|
||||||
|
if (! Util.isEmpty(msg)) {
|
||||||
|
addBufferLog(0, null, null, msg, 0, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (isFillUUID) {
|
if (isFillUUID) {
|
||||||
MColumn mColumn = MColumn.get(getCtx(), AD_Column_ID);
|
MColumn mColumn = MColumn.get(getCtx(), AD_Column_ID);
|
||||||
// COMMENT NEXT LINE ON RELEASE WORK
|
// COMMENT NEXT LINE ON RELEASE WORK
|
||||||
updateUUID(mColumn, null);
|
String msg = updateUUID(mColumn, null);
|
||||||
|
if (! Util.isEmpty(msg)) {
|
||||||
|
addBufferLog(0, null, null, msg, 0, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -157,11 +164,11 @@ public class UUIDGenerator extends SvrProcess {
|
||||||
return msgreturn.toString();
|
return msgreturn.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void updateUUID(MColumn column, String trxName) {
|
public static String updateUUID(MColumn column, String trxName) {
|
||||||
MTable table = (MTable) column.getAD_Table();
|
MTable table = (MTable) column.getAD_Table();
|
||||||
if (table.getTableName().startsWith("T_")) {
|
if (table.getTableName().startsWith("T_")) {
|
||||||
// don't update UUID for temporary tables
|
// don't update UUID for temporary tables
|
||||||
return;
|
return "";
|
||||||
}
|
}
|
||||||
int AD_Column_ID = 0;
|
int AD_Column_ID = 0;
|
||||||
StringBuilder sql = new StringBuilder("SELECT ");
|
StringBuilder sql = new StringBuilder("SELECT ");
|
||||||
|
@ -175,7 +182,7 @@ public class UUIDGenerator extends SvrProcess {
|
||||||
if ((compositeKeys == null || compositeKeys.length == 0) && keyColumn == null) {
|
if ((compositeKeys == null || compositeKeys.length == 0) && keyColumn == null) {
|
||||||
// TODO: Update using rowid for oracle or ctid for postgresql
|
// TODO: Update using rowid for oracle or ctid for postgresql
|
||||||
log.warning("Cannot update orphan table " + table.getTableName() + " (not ID neither parents)");
|
log.warning("Cannot update orphan table " + table.getTableName() + " (not ID neither parents)");
|
||||||
return;
|
return "";
|
||||||
}
|
}
|
||||||
if (compositeKeys == null) {
|
if (compositeKeys == null) {
|
||||||
sql.append(keyColumn);
|
sql.append(keyColumn);
|
||||||
|
@ -211,19 +218,21 @@ public class UUIDGenerator extends SvrProcess {
|
||||||
trx.setDisplayName(UUIDGenerator.class.getName()+"_updateUUID");
|
trx.setDisplayName(UUIDGenerator.class.getName()+"_updateUUID");
|
||||||
localTrx = true;
|
localTrx = true;
|
||||||
}
|
}
|
||||||
|
String msg = "";
|
||||||
try {
|
try {
|
||||||
if (localTrx)
|
if (localTrx)
|
||||||
trx.start();
|
trx.start();
|
||||||
stmt = DB.prepareStatement(sql.toString(), trx.getTrxName());
|
stmt = DB.prepareStatement(sql.toString(), trx.getTrxName());
|
||||||
stmt.setFetchSize(100);
|
stmt.setFetchSize(100);
|
||||||
rs = stmt.executeQuery();
|
rs = stmt.executeQuery();
|
||||||
|
int no = 0;
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
if (AD_Column_ID > 0) {
|
if (AD_Column_ID > 0) {
|
||||||
int recordId = rs.getInt(1);
|
int recordId = rs.getInt(1);
|
||||||
// this line is to avoid users generating official UUIDs - comment it to do official migration script work
|
// this line is to avoid users generating official UUIDs - comment it to do official migration script work
|
||||||
if (recordId > MTable.MAX_OFFICIAL_ID) {
|
if (recordId > MTable.MAX_OFFICIAL_ID) {
|
||||||
UUID uuid = UUID.randomUUID();
|
UUID uuid = UUID.randomUUID();
|
||||||
DB.executeUpdateEx(updateSQL.toString(),new Object[]{uuid.toString(), recordId}, trx.getTrxName());
|
no += DB.executeUpdateEx(updateSQL.toString(),new Object[]{uuid.toString(), recordId}, trx.getTrxName());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
UUID uuid = UUID.randomUUID();
|
UUID uuid = UUID.randomUUID();
|
||||||
|
@ -232,9 +241,12 @@ public class UUIDGenerator extends SvrProcess {
|
||||||
for (String s : compositeKeys) {
|
for (String s : compositeKeys) {
|
||||||
params.add(rs.getObject(s));
|
params.add(rs.getObject(s));
|
||||||
}
|
}
|
||||||
DB.executeUpdateEx(updateSQL.toString(),params.toArray(),trx.getTrxName());
|
no += DB.executeUpdateEx(updateSQL.toString(),params.toArray(),trx.getTrxName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (no > 0) {
|
||||||
|
msg = no + " UUID assigned for table " + table.getTableName();
|
||||||
|
}
|
||||||
if (localTrx) {
|
if (localTrx) {
|
||||||
trx.commit(true);
|
trx.commit(true);
|
||||||
}
|
}
|
||||||
|
@ -249,6 +261,7 @@ public class UUIDGenerator extends SvrProcess {
|
||||||
trx.close();
|
trx.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void syncColumn(MColumn column) {
|
private void syncColumn(MColumn column) {
|
||||||
|
|
|
@ -31,10 +31,8 @@ import java.util.Calendar;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import org.adempiere.base.ILookupFactory;
|
import org.adempiere.base.ILookupFactory;
|
||||||
|
@ -358,7 +356,7 @@ public class GridField
|
||||||
{
|
{
|
||||||
boolean retValue = false;
|
boolean retValue = false;
|
||||||
if (m_vo.MandatoryLogic != null && m_vo.MandatoryLogic.startsWith("@SQL=")) {
|
if (m_vo.MandatoryLogic != null && m_vo.MandatoryLogic.startsWith("@SQL=")) {
|
||||||
retValue = parseSQLLogic(m_vo.MandatoryLogic);
|
retValue = Evaluator.parseSQLLogic(m_vo.MandatoryLogic, m_vo.ctx, m_vo.WindowNo, m_vo.TabNo, m_vo.ColumnName);
|
||||||
|
|
||||||
} else{
|
} else{
|
||||||
retValue= Evaluator.evaluateLogic(this, m_vo.MandatoryLogic);
|
retValue= Evaluator.evaluateLogic(this, m_vo.MandatoryLogic);
|
||||||
|
@ -390,57 +388,6 @@ public class GridField
|
||||||
return isDisplayed (checkContext);
|
return isDisplayed (checkContext);
|
||||||
} // isMandatory
|
} // isMandatory
|
||||||
|
|
||||||
private boolean parseSQLLogic(String sqlLogic) {
|
|
||||||
String sql = sqlLogic.substring(5); // remove @SQL=
|
|
||||||
boolean reverse = false;
|
|
||||||
if (sql.startsWith("!")) {
|
|
||||||
reverse = true;
|
|
||||||
sql = sql.substring(1); //remove !
|
|
||||||
}
|
|
||||||
sql = Env.parseContext(m_vo.ctx, m_vo.WindowNo, m_vo.TabNo, sql, false, false); // replace
|
|
||||||
|
|
||||||
// variables
|
|
||||||
if (sql.equals("")) {
|
|
||||||
log.log(Level.WARNING,"(" + m_vo.ColumnName + ") - SQL variable parse failed: " + sqlLogic);
|
|
||||||
} else {
|
|
||||||
SQLLogicResult cache = sqlLogicCache.get(sql);
|
|
||||||
if (cache != null) {
|
|
||||||
long since = System.currentTimeMillis() - cache.timestamp;
|
|
||||||
if (since <= 500) {
|
|
||||||
cache.timestamp = System.currentTimeMillis();
|
|
||||||
if (cache.value)
|
|
||||||
return reverse ? false : true;
|
|
||||||
else
|
|
||||||
return reverse ? true : false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
PreparedStatement stmt = null;
|
|
||||||
ResultSet rs = null;
|
|
||||||
try {
|
|
||||||
stmt = DB.prepareStatement(sql, null);
|
|
||||||
rs = stmt.executeQuery();
|
|
||||||
boolean hasNext = rs.next();
|
|
||||||
if (cache == null) {
|
|
||||||
cache = new SQLLogicResult();
|
|
||||||
sqlLogicCache.put(sql, cache);
|
|
||||||
}
|
|
||||||
cache.value = hasNext;
|
|
||||||
cache.timestamp = System.currentTimeMillis();
|
|
||||||
if (hasNext)
|
|
||||||
return reverse ? false : true;
|
|
||||||
else
|
|
||||||
return reverse ? true : false;
|
|
||||||
} catch (SQLException e) {
|
|
||||||
log.log(Level.WARNING, "(" + m_vo.ColumnName + ") " + sql, e);
|
|
||||||
} finally {
|
|
||||||
DB.close(rs, stmt);
|
|
||||||
rs = null;
|
|
||||||
stmt = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is parameter Editable - checks if parameter is Read Only
|
* Is parameter Editable - checks if parameter is Read Only
|
||||||
* @param checkContext if true checks Context
|
* @param checkContext if true checks Context
|
||||||
|
@ -451,7 +398,7 @@ public class GridField
|
||||||
{
|
{
|
||||||
if (m_vo.ReadOnlyLogic.startsWith("@SQL="))
|
if (m_vo.ReadOnlyLogic.startsWith("@SQL="))
|
||||||
{
|
{
|
||||||
boolean retValue = !parseSQLLogic(m_vo.ReadOnlyLogic);
|
boolean retValue = !Evaluator.parseSQLLogic(m_vo.ReadOnlyLogic, m_vo.ctx, m_vo.WindowNo, m_vo.TabNo, m_vo.ColumnName);
|
||||||
if (!retValue)
|
if (!retValue)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -563,7 +510,7 @@ public class GridField
|
||||||
{
|
{
|
||||||
if (m_vo.ReadOnlyLogic.startsWith("@SQL="))
|
if (m_vo.ReadOnlyLogic.startsWith("@SQL="))
|
||||||
{
|
{
|
||||||
boolean retValue = !parseSQLLogic(m_vo.ReadOnlyLogic);
|
boolean retValue = !Evaluator.parseSQLLogic(m_vo.ReadOnlyLogic, m_vo.ctx, m_vo.WindowNo, m_vo.TabNo, m_vo.ColumnName);
|
||||||
if (!retValue)
|
if (!retValue)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1245,6 +1192,9 @@ public class GridField
|
||||||
// ** dynamic content **
|
// ** dynamic content **
|
||||||
if (checkContext)
|
if (checkContext)
|
||||||
{
|
{
|
||||||
|
if (m_vo.DisplayLogic.startsWith("@SQL=")) {
|
||||||
|
return Evaluator.parseSQLLogic(m_vo.DisplayLogic, m_vo.ctx, m_vo.WindowNo, m_vo.TabNo, m_vo.ColumnName);
|
||||||
|
}
|
||||||
Evaluatee evaluatee = new Evaluatee() {
|
Evaluatee evaluatee = new Evaluatee() {
|
||||||
public String get_ValueAsString(String variableName) {
|
public String get_ValueAsString(String variableName) {
|
||||||
return GridField.this.get_ValueAsString(ctx, variableName);
|
return GridField.this.get_ValueAsString(ctx, variableName);
|
||||||
|
@ -2605,13 +2555,6 @@ public class GridField
|
||||||
return m_lookupEditorSettingValue;
|
return m_lookupEditorSettingValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Map<String, SQLLogicResult> sqlLogicCache = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
private class SQLLogicResult {
|
|
||||||
long timestamp;
|
|
||||||
boolean value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void processUIVirtualColumn() {
|
public void processUIVirtualColumn() {
|
||||||
String sql = m_vo.ColumnSQL.substring(5);
|
String sql = m_vo.ColumnSQL.substring(5);
|
||||||
sql = Env.parseContext(Env.getCtx(), getWindowNo(), sql, false);
|
sql = Env.parseContext(Env.getCtx(), getWindowNo(), sql, false);
|
||||||
|
|
|
@ -1026,7 +1026,7 @@ public class GridTable extends AbstractTableModel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
} // getKeyID
|
} // getUUID
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Key ColumnName
|
* Get Key ColumnName
|
||||||
|
|
|
@ -548,6 +548,15 @@ public interface I_AD_Role
|
||||||
*/
|
*/
|
||||||
public String getPreferenceType();
|
public String getPreferenceType();
|
||||||
|
|
||||||
|
/** Column name RoleType */
|
||||||
|
public static final String COLUMNNAME_RoleType = "RoleType";
|
||||||
|
|
||||||
|
/** Set Role Type */
|
||||||
|
public void setRoleType (String RoleType);
|
||||||
|
|
||||||
|
/** Get Role Type */
|
||||||
|
public String getRoleType();
|
||||||
|
|
||||||
/** Column name Supervisor_ID */
|
/** Column name Supervisor_ID */
|
||||||
public static final String COLUMNNAME_Supervisor_ID = "Supervisor_ID";
|
public static final String COLUMNNAME_Supervisor_ID = "Supervisor_ID";
|
||||||
|
|
||||||
|
|
|
@ -516,6 +516,15 @@ public interface I_AD_User
|
||||||
*/
|
*/
|
||||||
public boolean isSalesLead();
|
public boolean isSalesLead();
|
||||||
|
|
||||||
|
/** Column name IsSupportUser */
|
||||||
|
public static final String COLUMNNAME_IsSupportUser = "IsSupportUser";
|
||||||
|
|
||||||
|
/** Set Support User */
|
||||||
|
public void setIsSupportUser (boolean IsSupportUser);
|
||||||
|
|
||||||
|
/** Get Support User */
|
||||||
|
public boolean isSupportUser();
|
||||||
|
|
||||||
/** Column name LastContact */
|
/** Column name LastContact */
|
||||||
public static final String COLUMNNAME_LastContact = "LastContact";
|
public static final String COLUMNNAME_LastContact = "LastContact";
|
||||||
|
|
||||||
|
|
|
@ -44,6 +44,7 @@ import org.compiere.util.Ini;
|
||||||
import org.compiere.util.KeyNamePair;
|
import org.compiere.util.KeyNamePair;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
import org.compiere.util.Trace;
|
import org.compiere.util.Trace;
|
||||||
|
import org.compiere.util.Util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Role Model.
|
* Role Model.
|
||||||
|
@ -61,7 +62,7 @@ public final class MRole extends X_AD_Role
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 8952907008982481439L;
|
private static final long serialVersionUID = -4649095180532036099L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Default (Client) Role
|
* Get Default (Client) Role
|
||||||
|
@ -3198,4 +3199,50 @@ public final class MRole extends X_AD_Role
|
||||||
return m_canAccess_Info_Product.booleanValue();
|
return m_canAccess_Info_Product.booleanValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get where clause for a role types list
|
||||||
|
* @param roleType - comma separated list of role types, NULL can be used
|
||||||
|
* @param tableName - if table needs to be qualified
|
||||||
|
* @return whereClause - return null if roleType is null or empty
|
||||||
|
*/
|
||||||
|
public static String getWhereRoleType(String roleType, String tableName) {
|
||||||
|
if (Util.isEmpty(roleType, true)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
boolean includeNull = false;
|
||||||
|
String types[] = roleType.split(",");
|
||||||
|
StringBuilder whereClause = new StringBuilder("(");
|
||||||
|
boolean start = true;
|
||||||
|
for (String type : types) {
|
||||||
|
if ("null".equalsIgnoreCase(type)) {
|
||||||
|
includeNull = true;
|
||||||
|
} else {
|
||||||
|
if (start) {
|
||||||
|
if (! Util.isEmpty(tableName)) {
|
||||||
|
whereClause.append(tableName).append(".");
|
||||||
|
}
|
||||||
|
whereClause.append(COLUMNNAME_RoleType).append(" IN (");
|
||||||
|
start = false;
|
||||||
|
} else {
|
||||||
|
whereClause.append(",");
|
||||||
|
}
|
||||||
|
whereClause.append(DB.TO_STRING(type));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (! start) {
|
||||||
|
whereClause.append(")");
|
||||||
|
}
|
||||||
|
if (includeNull) {
|
||||||
|
if (! start) {
|
||||||
|
whereClause.append(" OR ");
|
||||||
|
}
|
||||||
|
if (! Util.isEmpty(tableName)) {
|
||||||
|
whereClause.append(tableName).append(".");
|
||||||
|
}
|
||||||
|
whereClause.append(COLUMNNAME_RoleType).append(" IS NULL");
|
||||||
|
}
|
||||||
|
whereClause.append(")");
|
||||||
|
return whereClause.toString();
|
||||||
|
}
|
||||||
|
|
||||||
} // MRole
|
} // MRole
|
||||||
|
|
|
@ -899,11 +899,10 @@ public class MUser extends X_AD_User
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getPassword() != null && getPassword().length() > 0 && (newRecord || is_ValueChanged("Password"))) {
|
boolean hasPassword = ! Util.isEmpty(getPassword());
|
||||||
|
if (hasPassword && (newRecord || is_ValueChanged("Password"))) {
|
||||||
// Validate password policies / IDEMPIERE-221
|
// Validate password policies / IDEMPIERE-221
|
||||||
if (get_ValueOld("Salt") == null && get_Value("Salt") != null) { // being hashed
|
if (! (get_ValueOld("Salt") == null && get_Value("Salt") != null)) { // not being hashed
|
||||||
;
|
|
||||||
} else {
|
|
||||||
MPasswordRule pwdrule = MPasswordRule.getRules(getCtx(), get_TrxName());
|
MPasswordRule pwdrule = MPasswordRule.getRules(getCtx(), get_TrxName());
|
||||||
if (pwdrule != null){
|
if (pwdrule != null){
|
||||||
List<MPasswordHistory> passwordHistorys = MPasswordHistory.getPasswordHistoryForCheck(pwdrule.getDays_Reuse_Password(), this.getAD_User_ID());
|
List<MPasswordHistory> passwordHistorys = MPasswordHistory.getPasswordHistoryForCheck(pwdrule.getDays_Reuse_Password(), this.getAD_User_ID());
|
||||||
|
@ -911,12 +910,15 @@ public class MUser extends X_AD_User
|
||||||
}
|
}
|
||||||
setDatePasswordChanged(new Timestamp(new Date().getTime()));
|
setDatePasswordChanged(new Timestamp(new Date().getTime()));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean hash_password = MSysConfig.getBooleanValue(MSysConfig.USER_PASSWORD_HASH, false);
|
||||||
|
if ( hasPassword
|
||||||
|
&& is_ValueChanged("Password")
|
||||||
|
&& (!newRecord || (hash_password && getSalt() == null))) {
|
||||||
// Hash password - IDEMPIERE-347
|
// Hash password - IDEMPIERE-347
|
||||||
boolean hash_password = MSysConfig.getBooleanValue(MSysConfig.USER_PASSWORD_HASH, false);
|
|
||||||
if (hash_password)
|
if (hash_password)
|
||||||
setPassword(getPassword());
|
setPassword(getPassword());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -58,6 +58,15 @@ public class SystemIDs
|
||||||
public final static int MESSAGE_WORKFLOWRESULT = 753;
|
public final static int MESSAGE_WORKFLOWRESULT = 753;
|
||||||
|
|
||||||
public final static int PRINTFORMAT_STATEMENTOFACCOUNT = 134;
|
public final static int PRINTFORMAT_STATEMENTOFACCOUNT = 134;
|
||||||
|
public final static int PRINTFORMAT_ORDER_HEADER_TEMPLATE = 100;
|
||||||
|
public final static int PRINTFORMAT_ORDER_LINETAX_TEMPLATE = 101;
|
||||||
|
public final static int PRINTFORMAT_INVOICE_HEADER_TEMPLATE = 102;
|
||||||
|
public final static int PRINTFORMAT_INVOICE_LINETAX_TEMPLATE = 103;
|
||||||
|
public final static int PRINTFORMAT_INOUT_HEADER_TEMPLATE = 104;
|
||||||
|
public final static int PRINTFORMAT_INOUT_LINE_TEMPLATE = 105;
|
||||||
|
public final static int PRINTFORMAT_PAYSELECTION_CHECK_TEMPLATE = 106;
|
||||||
|
public final static int PRINTFORMAT_PAYSELECTION_REMITTANCE_LINES_TEMPLATE = 107;
|
||||||
|
public final static int PRINTFORMAT_PAYSELECTION_REMITTANCE__TEMPLATE = 108;
|
||||||
|
|
||||||
public final static int PROCESS_AD_WORKFLOW_DOCVALUE = 305;
|
public final static int PROCESS_AD_WORKFLOW_DOCVALUE = 305;
|
||||||
public final static int PROCESS_AD_CHANGELOG_UNDO = 306;
|
public final static int PROCESS_AD_CHANGELOG_UNDO = 306;
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class X_AD_Role extends PO implements I_AD_Role, I_Persistent
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 20190106L;
|
private static final long serialVersionUID = 20190321L;
|
||||||
|
|
||||||
/** Standard Constructor */
|
/** Standard Constructor */
|
||||||
public X_AD_Role (Properties ctx, int AD_Role_ID, String trxName)
|
public X_AD_Role (Properties ctx, int AD_Role_ID, String trxName)
|
||||||
|
@ -1003,6 +1003,43 @@ public class X_AD_Role extends PO implements I_AD_Role, I_Persistent
|
||||||
return (String)get_Value(COLUMNNAME_PreferenceType);
|
return (String)get_Value(COLUMNNAME_PreferenceType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** RoleType AD_Reference_ID=200166 */
|
||||||
|
public static final int ROLETYPE_AD_Reference_ID=200166;
|
||||||
|
/** WebUI = ZK */
|
||||||
|
public static final String ROLETYPE_WebUI = "ZK";
|
||||||
|
/** WebService = WS */
|
||||||
|
public static final String ROLETYPE_WebService = "WS";
|
||||||
|
/** System Support = SS */
|
||||||
|
public static final String ROLETYPE_SystemSupport = "SS";
|
||||||
|
/** Mobile = MO */
|
||||||
|
public static final String ROLETYPE_Mobile = "MO";
|
||||||
|
/** Swing = SW */
|
||||||
|
public static final String ROLETYPE_Swing = "SW";
|
||||||
|
/** External App 1 = E1 */
|
||||||
|
public static final String ROLETYPE_ExternalApp1 = "E1";
|
||||||
|
/** External App 2 = E2 */
|
||||||
|
public static final String ROLETYPE_ExternalApp2 = "E2";
|
||||||
|
/** External App 3 = E3 */
|
||||||
|
public static final String ROLETYPE_ExternalApp3 = "E3";
|
||||||
|
/** External App 4 = E4 */
|
||||||
|
public static final String ROLETYPE_ExternalApp4 = "E4";
|
||||||
|
/** External App 5 = E5 */
|
||||||
|
public static final String ROLETYPE_ExternalApp5 = "E5";
|
||||||
|
/** Set Role Type.
|
||||||
|
@param RoleType Role Type */
|
||||||
|
public void setRoleType (String RoleType)
|
||||||
|
{
|
||||||
|
|
||||||
|
set_Value (COLUMNNAME_RoleType, RoleType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Role Type.
|
||||||
|
@return Role Type */
|
||||||
|
public String getRoleType ()
|
||||||
|
{
|
||||||
|
return (String)get_Value(COLUMNNAME_RoleType);
|
||||||
|
}
|
||||||
|
|
||||||
public org.compiere.model.I_AD_User getSupervisor() throws RuntimeException
|
public org.compiere.model.I_AD_User getSupervisor() throws RuntimeException
|
||||||
{
|
{
|
||||||
return (org.compiere.model.I_AD_User)MTable.get(getCtx(), org.compiere.model.I_AD_User.Table_Name)
|
return (org.compiere.model.I_AD_User)MTable.get(getCtx(), org.compiere.model.I_AD_User.Table_Name)
|
||||||
|
|
|
@ -31,7 +31,7 @@ public class X_AD_User extends PO implements I_AD_User, I_Persistent
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 20190106L;
|
private static final long serialVersionUID = 20190321L;
|
||||||
|
|
||||||
/** Standard Constructor */
|
/** Standard Constructor */
|
||||||
public X_AD_User (Properties ctx, int AD_User_ID, String trxName)
|
public X_AD_User (Properties ctx, int AD_User_ID, String trxName)
|
||||||
|
@ -57,10 +57,12 @@ public class X_AD_User extends PO implements I_AD_User, I_Persistent
|
||||||
setIsNoPasswordReset (false);
|
setIsNoPasswordReset (false);
|
||||||
// 'N'
|
// 'N'
|
||||||
setIsSalesLead (false);
|
setIsSalesLead (false);
|
||||||
|
// N
|
||||||
|
setIsSupportUser (false);
|
||||||
// N
|
// N
|
||||||
setName (null);
|
setName (null);
|
||||||
setNotificationType (null);
|
setNotificationType (null);
|
||||||
// E
|
// X
|
||||||
} */
|
} */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -815,6 +817,27 @@ public class X_AD_User extends PO implements I_AD_User, I_Persistent
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Set Support User.
|
||||||
|
@param IsSupportUser Support User */
|
||||||
|
public void setIsSupportUser (boolean IsSupportUser)
|
||||||
|
{
|
||||||
|
set_Value (COLUMNNAME_IsSupportUser, Boolean.valueOf(IsSupportUser));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get Support User.
|
||||||
|
@return Support User */
|
||||||
|
public boolean isSupportUser ()
|
||||||
|
{
|
||||||
|
Object oo = get_Value(COLUMNNAME_IsSupportUser);
|
||||||
|
if (oo != null)
|
||||||
|
{
|
||||||
|
if (oo instanceof Boolean)
|
||||||
|
return ((Boolean)oo).booleanValue();
|
||||||
|
return "Y".equals(oo);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/** Set Last Contact.
|
/** Set Last Contact.
|
||||||
@param LastContact
|
@param LastContact
|
||||||
Date this individual was last contacted
|
Date this individual was last contacted
|
||||||
|
|
|
@ -16,6 +16,16 @@
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
package org.compiere.print;
|
package org.compiere.print;
|
||||||
|
|
||||||
|
import static org.compiere.model.SystemIDs.PRINTFORMAT_INOUT_HEADER_TEMPLATE;
|
||||||
|
import static org.compiere.model.SystemIDs.PRINTFORMAT_INOUT_LINE_TEMPLATE;
|
||||||
|
import static org.compiere.model.SystemIDs.PRINTFORMAT_INVOICE_HEADER_TEMPLATE;
|
||||||
|
import static org.compiere.model.SystemIDs.PRINTFORMAT_INVOICE_LINETAX_TEMPLATE;
|
||||||
|
import static org.compiere.model.SystemIDs.PRINTFORMAT_ORDER_HEADER_TEMPLATE;
|
||||||
|
import static org.compiere.model.SystemIDs.PRINTFORMAT_ORDER_LINETAX_TEMPLATE;
|
||||||
|
import static org.compiere.model.SystemIDs.PRINTFORMAT_PAYSELECTION_CHECK_TEMPLATE;
|
||||||
|
import static org.compiere.model.SystemIDs.PRINTFORMAT_PAYSELECTION_REMITTANCE_LINES_TEMPLATE;
|
||||||
|
import static org.compiere.model.SystemIDs.PRINTFORMAT_PAYSELECTION_REMITTANCE__TEMPLATE;
|
||||||
|
|
||||||
import java.awt.print.PageFormat;
|
import java.awt.print.PageFormat;
|
||||||
import java.awt.print.Pageable;
|
import java.awt.print.Pageable;
|
||||||
import java.awt.print.PrinterException;
|
import java.awt.print.PrinterException;
|
||||||
|
@ -546,23 +556,23 @@ public class PrintUtil
|
||||||
CLogMgt.enable(false);
|
CLogMgt.enable(false);
|
||||||
//
|
//
|
||||||
// Order Template
|
// Order Template
|
||||||
int Order_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 100, AD_Client_ID).get_ID();
|
int Order_PrintFormat_ID = MPrintFormat.copyToClient(ctx, PRINTFORMAT_ORDER_HEADER_TEMPLATE, AD_Client_ID).get_ID();
|
||||||
int OrderLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 101, AD_Client_ID).get_ID();
|
int OrderLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, PRINTFORMAT_ORDER_LINETAX_TEMPLATE, AD_Client_ID).get_ID();
|
||||||
updatePrintFormatHeader(Order_PrintFormat_ID, OrderLine_PrintFormat_ID);
|
updatePrintFormatHeader(Order_PrintFormat_ID, OrderLine_PrintFormat_ID);
|
||||||
// Invoice
|
// Invoice
|
||||||
int Invoice_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 102, AD_Client_ID).get_ID();
|
int Invoice_PrintFormat_ID = MPrintFormat.copyToClient(ctx, PRINTFORMAT_INVOICE_HEADER_TEMPLATE, AD_Client_ID).get_ID();
|
||||||
int InvoiceLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 103, AD_Client_ID).get_ID();
|
int InvoiceLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, PRINTFORMAT_INVOICE_LINETAX_TEMPLATE, AD_Client_ID).get_ID();
|
||||||
updatePrintFormatHeader(Invoice_PrintFormat_ID, InvoiceLine_PrintFormat_ID);
|
updatePrintFormatHeader(Invoice_PrintFormat_ID, InvoiceLine_PrintFormat_ID);
|
||||||
// Shipment
|
// Shipment
|
||||||
int Shipment_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 104, AD_Client_ID).get_ID();
|
int Shipment_PrintFormat_ID = MPrintFormat.copyToClient(ctx, PRINTFORMAT_INOUT_HEADER_TEMPLATE, AD_Client_ID).get_ID();
|
||||||
int ShipmentLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 105, AD_Client_ID).get_ID();
|
int ShipmentLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, PRINTFORMAT_INOUT_LINE_TEMPLATE, AD_Client_ID).get_ID();
|
||||||
updatePrintFormatHeader(Shipment_PrintFormat_ID, ShipmentLine_PrintFormat_ID);
|
updatePrintFormatHeader(Shipment_PrintFormat_ID, ShipmentLine_PrintFormat_ID);
|
||||||
// Check
|
// Check
|
||||||
int Check_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 106, AD_Client_ID).get_ID();
|
int Check_PrintFormat_ID = MPrintFormat.copyToClient(ctx, PRINTFORMAT_PAYSELECTION_CHECK_TEMPLATE, AD_Client_ID).get_ID();
|
||||||
int RemittanceLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 107, AD_Client_ID).get_ID();
|
int RemittanceLine_PrintFormat_ID = MPrintFormat.copyToClient(ctx, PRINTFORMAT_PAYSELECTION_REMITTANCE_LINES_TEMPLATE, AD_Client_ID).get_ID();
|
||||||
updatePrintFormatHeader(Check_PrintFormat_ID, RemittanceLine_PrintFormat_ID);
|
updatePrintFormatHeader(Check_PrintFormat_ID, RemittanceLine_PrintFormat_ID);
|
||||||
// Remittance
|
// Remittance
|
||||||
int Remittance_PrintFormat_ID = MPrintFormat.copyToClient(ctx, 108, AD_Client_ID).get_ID();
|
int Remittance_PrintFormat_ID = MPrintFormat.copyToClient(ctx, PRINTFORMAT_PAYSELECTION_REMITTANCE__TEMPLATE, AD_Client_ID).get_ID();
|
||||||
updatePrintFormatHeader(Remittance_PrintFormat_ID, RemittanceLine_PrintFormat_ID);
|
updatePrintFormatHeader(Remittance_PrintFormat_ID, RemittanceLine_PrintFormat_ID);
|
||||||
|
|
||||||
// TODO: MPrintForm
|
// TODO: MPrintForm
|
||||||
|
|
|
@ -24,6 +24,7 @@ import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.adempiere.util.IProcessUI;
|
||||||
import org.compiere.model.MPInstance;
|
import org.compiere.model.MPInstance;
|
||||||
import org.compiere.model.MPInstancePara;
|
import org.compiere.model.MPInstancePara;
|
||||||
import org.compiere.model.MProcess;
|
import org.compiere.model.MProcess;
|
||||||
|
@ -49,7 +50,7 @@ public class ProcessInfo implements Serializable
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 2167823616151648814L;
|
private static final long serialVersionUID = -4600747909096993053L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
|
@ -203,6 +204,8 @@ public class ProcessInfo implements Serializable
|
||||||
sb.append(",Transient=").append(m_TransientObject);
|
sb.append(",Transient=").append(m_TransientObject);
|
||||||
if (m_SerializableObject != null)
|
if (m_SerializableObject != null)
|
||||||
sb.append(",Serializable=").append(m_SerializableObject);
|
sb.append(",Serializable=").append(m_SerializableObject);
|
||||||
|
if (m_transactionName != null)
|
||||||
|
sb.append(",Trx=").append(m_transactionName);
|
||||||
sb.append(",Summary=").append(getSummary())
|
sb.append(",Summary=").append(getSummary())
|
||||||
.append(",Log=").append(m_logs == null ? 0 : m_logs.size());
|
.append(",Log=").append(m_logs == null ? 0 : m_logs.size());
|
||||||
// .append(getLogInfo(false));
|
// .append(getLogInfo(false));
|
||||||
|
@ -919,4 +922,14 @@ public class ProcessInfo implements Serializable
|
||||||
return lastServerSession.getCreated();
|
return lastServerSession.getCreated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IProcessUI processUI;
|
||||||
|
|
||||||
|
public void setProcessUI(IProcessUI processUI) {
|
||||||
|
this.processUI = processUI;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IProcessUI getProcessUI() {
|
||||||
|
return processUI;
|
||||||
|
}
|
||||||
|
|
||||||
} // ProcessInfo
|
} // ProcessInfo
|
||||||
|
|
|
@ -27,6 +27,10 @@ import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.adempiere.base.event.EventManager;
|
||||||
|
import org.adempiere.base.event.EventProperty;
|
||||||
|
import org.adempiere.base.event.IEventManager;
|
||||||
|
import org.adempiere.base.event.IEventTopics;
|
||||||
import org.adempiere.util.IProcessUI;
|
import org.adempiere.util.IProcessUI;
|
||||||
import org.compiere.model.MPInstance;
|
import org.compiere.model.MPInstance;
|
||||||
import org.compiere.model.PO;
|
import org.compiere.model.PO;
|
||||||
|
@ -35,6 +39,7 @@ import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
import org.compiere.util.Trx;
|
import org.compiere.util.Trx;
|
||||||
|
import org.osgi.service.event.Event;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Server Process Template
|
* Server Process Template
|
||||||
|
@ -128,6 +133,8 @@ public abstract class SvrProcess implements ProcessCall
|
||||||
m_trx = Trx.get(Trx.createTrxName("SvrProcess"), true);
|
m_trx = Trx.get(Trx.createTrxName("SvrProcess"), true);
|
||||||
m_trx.setDisplayName(getClass().getName()+"_startProcess");
|
m_trx.setDisplayName(getClass().getName()+"_startProcess");
|
||||||
}
|
}
|
||||||
|
m_pi.setTransactionName(m_trx.getTrxName());
|
||||||
|
m_pi.setProcessUI(processUI);
|
||||||
//
|
//
|
||||||
ClassLoader contextLoader = Thread.currentThread().getContextClassLoader();
|
ClassLoader contextLoader = Thread.currentThread().getContextClassLoader();
|
||||||
ClassLoader processLoader = getClass().getClassLoader();
|
ClassLoader processLoader = getClass().getClassLoader();
|
||||||
|
@ -168,6 +175,7 @@ public abstract class SvrProcess implements ProcessCall
|
||||||
m_trx.rollback();
|
m_trx.rollback();
|
||||||
m_trx.close();
|
m_trx.close();
|
||||||
m_trx = null;
|
m_trx = null;
|
||||||
|
m_pi.setTransactionName(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
unlock();
|
unlock();
|
||||||
|
@ -175,6 +183,9 @@ public abstract class SvrProcess implements ProcessCall
|
||||||
// outside transaction processing [ teo_sarca, 1646891 ]
|
// outside transaction processing [ teo_sarca, 1646891 ]
|
||||||
postProcess(!m_pi.isError());
|
postProcess(!m_pi.isError());
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
Event eventPP = sendProcessEvent(IEventTopics.POST_PROCESS);
|
||||||
|
|
||||||
Thread.currentThread().setContextClassLoader(contextLoader);
|
Thread.currentThread().setContextClassLoader(contextLoader);
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -198,7 +209,24 @@ public abstract class SvrProcess implements ProcessCall
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
prepare();
|
prepare();
|
||||||
msg = doIt();
|
|
||||||
|
// event before process
|
||||||
|
Event eventBP = sendProcessEvent(IEventTopics.BEFORE_PROCESS);
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<String> errorsBP = (List<String>) eventBP.getProperty(IEventManager.EVENT_ERROR_MESSAGES);
|
||||||
|
if (errorsBP != null && !errorsBP.isEmpty()) {
|
||||||
|
msg = "@Error@:" + errorsBP.get(0);
|
||||||
|
} else {
|
||||||
|
msg = doIt();
|
||||||
|
if (msg != null && ! msg.startsWith("@Error@")) {
|
||||||
|
Event eventAP = sendProcessEvent(IEventTopics.AFTER_PROCESS);
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<String> errorsAP = (List<String>) eventAP.getProperty(IEventManager.EVENT_ERROR_MESSAGES);
|
||||||
|
if (errorsAP != null && !errorsAP.isEmpty()) {
|
||||||
|
msg = "@Error@:" + errorsAP.get(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Throwable e)
|
catch (Throwable e)
|
||||||
{
|
{
|
||||||
|
@ -227,6 +255,15 @@ public abstract class SvrProcess implements ProcessCall
|
||||||
return success;
|
return success;
|
||||||
} // process
|
} // process
|
||||||
|
|
||||||
|
private Event sendProcessEvent(String topic) {
|
||||||
|
Event event = EventManager.newEvent(topic,
|
||||||
|
new EventProperty(EventManager.EVENT_DATA, m_pi),
|
||||||
|
new EventProperty("processUUID", m_pi.getAD_Process_UU()),
|
||||||
|
new EventProperty("className", m_pi.getClassName()));
|
||||||
|
EventManager.getInstance().sendEvent(event);
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare - e.g., get Parameters.
|
* Prepare - e.g., get Parameters.
|
||||||
* <code>
|
* <code>
|
||||||
|
|
|
@ -17,8 +17,14 @@
|
||||||
package org.compiere.util;
|
package org.compiere.util;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Properties;
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
|
||||||
|
@ -33,6 +39,13 @@ public class Evaluator
|
||||||
/** Static Logger */
|
/** Static Logger */
|
||||||
private static CLogger s_log = CLogger.getCLogger (Evaluator.class);
|
private static CLogger s_log = CLogger.getCLogger (Evaluator.class);
|
||||||
|
|
||||||
|
private static final Map<String, SQLLogicResult> sqlLogicCache = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
public static class SQLLogicResult {
|
||||||
|
long timestamp;
|
||||||
|
boolean value;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check if All Variables are Defined
|
* Check if All Variables are Defined
|
||||||
* @param source source
|
* @param source source
|
||||||
|
@ -299,4 +312,63 @@ public class Evaluator
|
||||||
}
|
}
|
||||||
} // parseDepends
|
} // parseDepends
|
||||||
|
|
||||||
|
/**
|
||||||
|
* evaluator a expression logic base on sql
|
||||||
|
* @param sqlLogic
|
||||||
|
* @param ctx
|
||||||
|
* @param windowNo
|
||||||
|
* @param tabNo
|
||||||
|
* @param targetObjectName expression logic is evaluated for, that target object (purpose for logging) can be field name, toolbar button name,..
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static boolean parseSQLLogic(String sqlLogic, Properties ctx, int windowNo, int tabNo, String targetObjectName) {
|
||||||
|
String sql = sqlLogic.substring(5); // remove @SQL=
|
||||||
|
boolean reverse = false;
|
||||||
|
if (sql.startsWith("!")) {
|
||||||
|
reverse = true;
|
||||||
|
sql = sql.substring(1); //remove !
|
||||||
|
}
|
||||||
|
sql = Env.parseContext(ctx, windowNo, tabNo, sql, false, false); // replace
|
||||||
|
|
||||||
|
// variables
|
||||||
|
if (sql.equals("")) {
|
||||||
|
s_log.log(Level.WARNING,"(" + targetObjectName + ") - SQL variable parse failed: " + sqlLogic);
|
||||||
|
} else {
|
||||||
|
SQLLogicResult cache = sqlLogicCache.get(sql);
|
||||||
|
if (cache != null) {
|
||||||
|
long since = System.currentTimeMillis() - cache.timestamp;
|
||||||
|
if (since <= 500) {
|
||||||
|
cache.timestamp = System.currentTimeMillis();
|
||||||
|
if (cache.value)
|
||||||
|
return reverse ? false : true;
|
||||||
|
else
|
||||||
|
return reverse ? true : false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PreparedStatement stmt = null;
|
||||||
|
ResultSet rs = null;
|
||||||
|
try {
|
||||||
|
stmt = DB.prepareStatement(sql, null);
|
||||||
|
rs = stmt.executeQuery();
|
||||||
|
boolean hasNext = rs.next();
|
||||||
|
if (cache == null) {
|
||||||
|
cache = new SQLLogicResult();
|
||||||
|
sqlLogicCache.put(sql, cache);
|
||||||
|
}
|
||||||
|
cache.value = hasNext;
|
||||||
|
cache.timestamp = System.currentTimeMillis();
|
||||||
|
if (hasNext)
|
||||||
|
return reverse ? false : true;
|
||||||
|
else
|
||||||
|
return reverse ? true : false;
|
||||||
|
} catch (SQLException e) {
|
||||||
|
s_log.log(Level.WARNING, "(" + targetObjectName + ") " + sql, e);
|
||||||
|
} finally {
|
||||||
|
DB.close(rs, stmt);
|
||||||
|
rs = null;
|
||||||
|
stmt = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
} // Evaluator
|
} // Evaluator
|
||||||
|
|
|
@ -420,7 +420,6 @@ public final class Ini implements Serializable
|
||||||
{
|
{
|
||||||
fis = new FileInputStream(filename);
|
fis = new FileInputStream(filename);
|
||||||
s_prop.load(fis);
|
s_prop.load(fis);
|
||||||
fis.close();
|
|
||||||
}
|
}
|
||||||
catch (FileNotFoundException e)
|
catch (FileNotFoundException e)
|
||||||
{
|
{
|
||||||
|
@ -437,6 +436,17 @@ public final class Ini implements Serializable
|
||||||
log.log(Level.SEVERE, filename + " - " + t.toString());
|
log.log(Level.SEVERE, filename + " - " + t.toString());
|
||||||
loadOK = false;
|
loadOK = false;
|
||||||
}
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (fis != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
fis.close();
|
||||||
|
}
|
||||||
|
catch (Exception e) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (!loadOK || s_prop.getProperty(P_TODAY, "").equals(""))
|
if (!loadOK || s_prop.getProperty(P_TODAY, "").equals(""))
|
||||||
{
|
{
|
||||||
if (log.isLoggable(Level.CONFIG)) log.config(filename);
|
if (log.isLoggable(Level.CONFIG)) log.config(filename);
|
||||||
|
|
|
@ -1239,14 +1239,19 @@ public class Login
|
||||||
return null;
|
return null;
|
||||||
} // getPrincipal
|
} // getPrincipal
|
||||||
|
|
||||||
|
public KeyNamePair[] getClients(String app_user, String app_pwd) {
|
||||||
|
return getClients(app_user, app_pwd, null);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Validate Client Login.
|
* Validate Client Login.
|
||||||
* Sets Context with login info
|
* Sets Context with login info
|
||||||
* @param app_user user id
|
* @param app_user user id
|
||||||
* @param app_pwd password
|
* @param app_pwd password
|
||||||
|
* @param roleTypes comma separated list of the role types allowed to login (NULL can be added)
|
||||||
* @return client array or null if in error.
|
* @return client array or null if in error.
|
||||||
*/
|
*/
|
||||||
public KeyNamePair[] getClients(String app_user, String app_pwd) {
|
public KeyNamePair[] getClients(String app_user, String app_pwd, String roleTypes) {
|
||||||
if (log.isLoggable(Level.INFO)) log.info("User=" + app_user);
|
if (log.isLoggable(Level.INFO)) log.info("User=" + app_user);
|
||||||
|
|
||||||
if (Util.isEmpty(app_user))
|
if (Util.isEmpty(app_user))
|
||||||
|
@ -1287,10 +1292,15 @@ public class Login
|
||||||
where.append("EMail=?");
|
where.append("EMail=?");
|
||||||
else
|
else
|
||||||
where.append("COALESCE(LDAPUser,Name)=?");
|
where.append("COALESCE(LDAPUser,Name)=?");
|
||||||
|
String whereRoleType = MRole.getWhereRoleType(roleTypes, "r");
|
||||||
where.append(" AND")
|
where.append(" AND")
|
||||||
.append(" EXISTS (SELECT * FROM AD_User_Roles ur")
|
.append(" EXISTS (SELECT * FROM AD_User_Roles ur")
|
||||||
.append(" INNER JOIN AD_Role r ON (ur.AD_Role_ID=r.AD_Role_ID)")
|
.append(" INNER JOIN AD_Role r ON (ur.AD_Role_ID=r.AD_Role_ID)")
|
||||||
.append(" WHERE ur.AD_User_ID=AD_User.AD_User_ID AND ur.IsActive='Y' AND r.IsActive='Y') AND ")
|
.append(" WHERE ur.AD_User_ID=AD_User.AD_User_ID AND ur.IsActive='Y' AND r.IsActive='Y'");
|
||||||
|
if (! Util.isEmpty(whereRoleType)) {
|
||||||
|
where.append(" AND ").append(whereRoleType);
|
||||||
|
}
|
||||||
|
where.append(") AND ")
|
||||||
.append(" EXISTS (SELECT * FROM AD_Client c")
|
.append(" EXISTS (SELECT * FROM AD_Client c")
|
||||||
.append(" WHERE c.AD_Client_ID=AD_User.AD_Client_ID")
|
.append(" WHERE c.AD_Client_ID=AD_User.AD_Client_ID")
|
||||||
.append(" AND c.IsActive='Y') AND ")
|
.append(" AND c.IsActive='Y') AND ")
|
||||||
|
@ -1511,17 +1521,24 @@ public class Login
|
||||||
}
|
}
|
||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public KeyNamePair[] getRoles(String app_user, KeyNamePair client) {
|
||||||
|
return getRoles(app_user, client, null);
|
||||||
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* Load Roles.
|
* Load Roles.
|
||||||
* <p>
|
* <p>
|
||||||
* Sets Client info in context and loads its roles
|
* Sets Client info in context and loads its roles
|
||||||
* @param client client information
|
* @param client client information
|
||||||
|
* @param roleTypes comma separated list of the role types allowed to login (NULL can be added)
|
||||||
* @return list of valid roles KeyNodePairs or null if in error
|
* @return list of valid roles KeyNodePairs or null if in error
|
||||||
*/
|
*/
|
||||||
public KeyNamePair[] getRoles(String app_user, KeyNamePair client) {
|
public KeyNamePair[] getRoles(String app_user, KeyNamePair client, String roleTypes) {
|
||||||
if (client == null)
|
if (client == null)
|
||||||
throw new IllegalArgumentException("Client missing");
|
throw new IllegalArgumentException("Client missing");
|
||||||
|
|
||||||
|
String whereRoleType = MRole.getWhereRoleType(roleTypes, "r");
|
||||||
ArrayList<KeyNamePair> rolesList = new ArrayList<KeyNamePair>();
|
ArrayList<KeyNamePair> rolesList = new ArrayList<KeyNamePair>();
|
||||||
KeyNamePair[] retValue = null;
|
KeyNamePair[] retValue = null;
|
||||||
StringBuffer sql = new StringBuffer("SELECT u.AD_User_ID, r.AD_Role_ID,r.Name ")
|
StringBuffer sql = new StringBuffer("SELECT u.AD_User_ID, r.AD_Role_ID,r.Name ")
|
||||||
|
@ -1535,6 +1552,9 @@ public class Login
|
||||||
else
|
else
|
||||||
sql.append("COALESCE(u.LDAPUser,u.Name)=?");
|
sql.append("COALESCE(u.LDAPUser,u.Name)=?");
|
||||||
sql.append(" AND r.IsMasterRole='N'");
|
sql.append(" AND r.IsMasterRole='N'");
|
||||||
|
if (! Util.isEmpty(whereRoleType)) {
|
||||||
|
sql.append(" AND ").append(whereRoleType);
|
||||||
|
}
|
||||||
sql.append(" AND u.IsActive='Y' AND EXISTS (SELECT * FROM AD_Client c WHERE u.AD_Client_ID=c.AD_Client_ID AND c.IsActive='Y')");
|
sql.append(" AND u.IsActive='Y' AND EXISTS (SELECT * FROM AD_Client c WHERE u.AD_Client_ID=c.AD_Client_ID AND c.IsActive='Y')");
|
||||||
// don't show roles without org access
|
// don't show roles without org access
|
||||||
sql.append(" AND (");
|
sql.append(" AND (");
|
||||||
|
|
|
@ -32,6 +32,7 @@ import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import org.adempiere.exceptions.AdempiereException;
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
|
@ -40,6 +41,7 @@ import org.compiere.model.MColumn;
|
||||||
import org.compiere.model.MSequence;
|
import org.compiere.model.MSequence;
|
||||||
import org.compiere.model.MTable;
|
import org.compiere.model.MTable;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
|
import org.compiere.model.X_AD_Package_UUID_Map;
|
||||||
import org.compiere.process.ProcessInfoParameter;
|
import org.compiere.process.ProcessInfoParameter;
|
||||||
import org.compiere.process.SvrProcess;
|
import org.compiere.process.SvrProcess;
|
||||||
import org.compiere.util.AdempiereUserError;
|
import org.compiere.util.AdempiereUserError;
|
||||||
|
@ -49,8 +51,9 @@ import org.compiere.util.Util;
|
||||||
|
|
||||||
public class MoveClient extends SvrProcess {
|
public class MoveClient extends SvrProcess {
|
||||||
|
|
||||||
// Process to move a client from a external database to current
|
// Process to move a client from a external database to current, or copy a template in current database
|
||||||
|
|
||||||
|
private boolean p_IsCopyClient; // Define if the process is to copy a template client, or bring from external database
|
||||||
private String p_JDBC_URL; // JDBC URL of the external database
|
private String p_JDBC_URL; // JDBC URL of the external database
|
||||||
private String p_UserName; // optional to connect to the JDBC URL, if empty use the same as target
|
private String p_UserName; // optional to connect to the JDBC URL, if empty use the same as target
|
||||||
private String p_Password; // optional to connect to the JDBC URL, if empty use the same as target
|
private String p_Password; // optional to connect to the JDBC URL, if empty use the same as target
|
||||||
|
@ -58,7 +61,10 @@ public class MoveClient extends SvrProcess {
|
||||||
private String p_ClientsToInclude; // optional, comma separated list, if empty then all clients >= 1000000 will be moved
|
private String p_ClientsToInclude; // optional, comma separated list, if empty then all clients >= 1000000 will be moved
|
||||||
private String p_ClientsToExclude; // optional, comma separated list of clients to exclude
|
private String p_ClientsToExclude; // optional, comma separated list of clients to exclude
|
||||||
private boolean p_IsValidateOnly; // to do just validation and not execute the process
|
private boolean p_IsValidateOnly; // to do just validation and not execute the process
|
||||||
private String p_IsPreserveIDs; // optional, comma separated list of tables that require to preserve IDs
|
private String p_TablesToPreserveIDs; // optional, comma separated list of tables that require to preserve IDs, * for all
|
||||||
|
private String p_ClientName; // New client name when copying from template
|
||||||
|
private String p_ClientValue; // New client value when copying from template
|
||||||
|
private boolean p_IsSkipSomeValidations; // skip some validations to make the process faster
|
||||||
|
|
||||||
final static String insertConversionId = "INSERT INTO T_MoveClient (AD_PInstance_ID, TableName, Source_ID, Target_ID) VALUES (?, ?, ?, ?)";
|
final static String insertConversionId = "INSERT INTO T_MoveClient (AD_PInstance_ID, TableName, Source_ID, Target_ID) VALUES (?, ?, ?, ?)";
|
||||||
|
|
||||||
|
@ -71,6 +77,7 @@ public class MoveClient extends SvrProcess {
|
||||||
private List<String> p_tablesToExcludeList = new ArrayList<String>();
|
private List<String> p_tablesToExcludeList = new ArrayList<String>();
|
||||||
private List<String> p_columnsVerifiedList = new ArrayList<String>();
|
private List<String> p_columnsVerifiedList = new ArrayList<String>();
|
||||||
private List<String> p_idSystemConversionList = new ArrayList<String>(); // can consume lot of memory but it helps for performance
|
private List<String> p_idSystemConversionList = new ArrayList<String>(); // can consume lot of memory but it helps for performance
|
||||||
|
private boolean p_isPreserveAll = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void prepare() {
|
protected void prepare() {
|
||||||
|
@ -79,12 +86,18 @@ public class MoveClient extends SvrProcess {
|
||||||
//
|
//
|
||||||
for (ProcessInfoParameter para : getParameter()) {
|
for (ProcessInfoParameter para : getParameter()) {
|
||||||
String name = para.getParameterName();
|
String name = para.getParameterName();
|
||||||
if ("JDBC_URL".equals(name)) {
|
if ("IsCopyClient".equals(name)) {
|
||||||
|
p_IsCopyClient = para.getParameterAsBoolean();
|
||||||
|
} else if ("JDBC_URL".equals(name)) {
|
||||||
p_JDBC_URL = para.getParameterAsString();
|
p_JDBC_URL = para.getParameterAsString();
|
||||||
} else if ("UserName".equals(name)) {
|
} else if ("UserName".equals(name)) {
|
||||||
p_UserName = para.getParameterAsString();
|
p_UserName = para.getParameterAsString();
|
||||||
} else if ("Password".equals(name)) {
|
} else if ("Password".equals(name)) {
|
||||||
p_Password = para.getParameterAsString();
|
p_Password = para.getParameterAsString();
|
||||||
|
} else if ("ClientName".equals(name)) {
|
||||||
|
p_ClientName = para.getParameterAsString();
|
||||||
|
} else if ("ClientValue".equals(name)) {
|
||||||
|
p_ClientValue = para.getParameterAsString();
|
||||||
} else if ("TablesToExclude".equals(name)) {
|
} else if ("TablesToExclude".equals(name)) {
|
||||||
p_TablesToExclude = para.getParameterAsString();
|
p_TablesToExclude = para.getParameterAsString();
|
||||||
} else if ("ClientsToInclude".equals(name)) {
|
} else if ("ClientsToInclude".equals(name)) {
|
||||||
|
@ -94,9 +107,11 @@ public class MoveClient extends SvrProcess {
|
||||||
} else if ("IsValidateOnly".equals(name)) {
|
} else if ("IsValidateOnly".equals(name)) {
|
||||||
p_IsValidateOnly = para.getParameterAsBoolean();
|
p_IsValidateOnly = para.getParameterAsBoolean();
|
||||||
} else if ("IsPreserveIDs".equals(name)) {
|
} else if ("IsPreserveIDs".equals(name)) {
|
||||||
p_IsPreserveIDs = para.getParameterAsString();
|
p_TablesToPreserveIDs = para.getParameterAsString();
|
||||||
|
} else if ("IsSkipSomeValidations".equals(name)) {
|
||||||
|
p_IsSkipSomeValidations = para.getParameterAsBoolean();
|
||||||
} else {
|
} else {
|
||||||
log.log(Level.SEVERE, "Unknown Parameter: " + name);
|
if (log.isLoggable(Level.INFO)) log.log(Level.INFO, "Custom Parameter: " + name + "=" + para.getInfo());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -104,8 +119,20 @@ public class MoveClient extends SvrProcess {
|
||||||
@Override
|
@Override
|
||||||
protected String doIt() throws Exception {
|
protected String doIt() throws Exception {
|
||||||
// validate parameters
|
// validate parameters
|
||||||
if (Util.isEmpty(p_JDBC_URL, true))
|
if (p_IsCopyClient) {
|
||||||
throw new AdempiereException("Fill mandatory JDBC_URL");
|
if (! Util.isEmpty(p_ClientsToExclude, true))
|
||||||
|
throw new AdempiereException("Clients to exclude must be empty when copying from template");
|
||||||
|
if (! Util.isEmpty(p_TablesToPreserveIDs, true))
|
||||||
|
throw new AdempiereException("Preserve IDs must be empty when copying from template");
|
||||||
|
try {
|
||||||
|
Integer.parseInt(p_ClientsToInclude);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
throw new AdempiereException("Error in parameter Clients to Include, must be just one integer");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (Util.isEmpty(p_JDBC_URL, true))
|
||||||
|
throw new AdempiereException("Fill mandatory JDBC_URL");
|
||||||
|
}
|
||||||
if (! Util.isEmpty(p_ClientsToInclude, true) && ! Util.isEmpty(p_ClientsToExclude, true))
|
if (! Util.isEmpty(p_ClientsToInclude, true) && ! Util.isEmpty(p_ClientsToExclude, true))
|
||||||
throw new AdempiereException("Clients to exclude and include cannot be used at the same time");
|
throw new AdempiereException("Clients to exclude and include cannot be used at the same time");
|
||||||
if (Util.isEmpty(p_UserName, true))
|
if (Util.isEmpty(p_UserName, true))
|
||||||
|
@ -115,6 +142,10 @@ public class MoveClient extends SvrProcess {
|
||||||
|
|
||||||
// Construct the where clauses
|
// Construct the where clauses
|
||||||
p_excludeTablesWhere.append("(UPPER(AD_Table.TableName) NOT LIKE 'T|_%' ESCAPE '|'"); // exclude temporary tables
|
p_excludeTablesWhere.append("(UPPER(AD_Table.TableName) NOT LIKE 'T|_%' ESCAPE '|'"); // exclude temporary tables
|
||||||
|
if (p_IsCopyClient) {
|
||||||
|
// exclude always AD_ChangeLog when copying from template client
|
||||||
|
p_excludeTablesWhere.append(" AND UPPER(TableName) != 'AD_CHANGELOG'");
|
||||||
|
}
|
||||||
if (Util.isEmpty(p_TablesToExclude, true)) {
|
if (Util.isEmpty(p_TablesToExclude, true)) {
|
||||||
p_excludeTablesWhere.append(")");
|
p_excludeTablesWhere.append(")");
|
||||||
} else {
|
} else {
|
||||||
|
@ -166,9 +197,14 @@ public class MoveClient extends SvrProcess {
|
||||||
p_whereClient.append(")");
|
p_whereClient.append(")");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! Util.isEmpty(p_IsPreserveIDs, true)) {
|
if (! Util.isEmpty(p_TablesToPreserveIDs, true)) {
|
||||||
for (String tableName : p_IsPreserveIDs.split(",")) {
|
if ("*".equals(p_TablesToPreserveIDs)) {
|
||||||
p_tablesToPreserveIDsList.add(tableName.toUpperCase());
|
p_isPreserveAll = true;
|
||||||
|
} else {
|
||||||
|
p_isPreserveAll = false;
|
||||||
|
for (String tableName : p_TablesToPreserveIDs.split(",")) {
|
||||||
|
p_tablesToPreserveIDsList.add(tableName.toUpperCase());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,7 +212,11 @@ public class MoveClient extends SvrProcess {
|
||||||
externalConn = null;
|
externalConn = null;
|
||||||
try {
|
try {
|
||||||
try {
|
try {
|
||||||
externalConn = DB.getDatabase(p_JDBC_URL).getDriverConnection(p_JDBC_URL, p_UserName, p_Password);
|
if (p_IsCopyClient) {
|
||||||
|
externalConn = DB.getConnectionRO();
|
||||||
|
} else {
|
||||||
|
externalConn = DB.getDatabase(p_JDBC_URL).getDriverConnection(p_JDBC_URL, p_UserName, p_Password);
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new AdempiereException("Could not get a connection to " + p_JDBC_URL + ",\nCause: " + e.getLocalizedMessage());
|
throw new AdempiereException("Could not get a connection to " + p_JDBC_URL + ",\nCause: " + e.getLocalizedMessage());
|
||||||
}
|
}
|
||||||
|
@ -203,6 +243,19 @@ public class MoveClient extends SvrProcess {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validate() {
|
private void validate() {
|
||||||
|
if (p_IsCopyClient) {
|
||||||
|
// Validate that the newtenant value/name doesn't exist
|
||||||
|
int cntCN = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM AD_Client WHERE Name=?", p_ClientName);
|
||||||
|
if (cntCN > 0)
|
||||||
|
throw new AdempiereUserError("Client with name " + p_ClientName + " already exists in database");
|
||||||
|
int cntCV = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM AD_Client WHERE Value=?", p_ClientValue);
|
||||||
|
if (cntCV > 0)
|
||||||
|
throw new AdempiereUserError("Client with search key " + p_ClientValue + " already exists in database");
|
||||||
|
int cntCW = DB.getSQLValueEx(get_TrxName(), "SELECT COUNT(*) FROM W_Store WHERE WebContext=?", p_ClientValue.toLowerCase());
|
||||||
|
if (cntCW > 0)
|
||||||
|
throw new AdempiereUserError("WebStore with context " + p_ClientValue.toLowerCase() + " already exists in database");
|
||||||
|
}
|
||||||
|
|
||||||
// validate there are clients to move, and doesn't exist in target
|
// validate there are clients to move, and doesn't exist in target
|
||||||
StringBuilder sqlValidClientsSB = new StringBuilder()
|
StringBuilder sqlValidClientsSB = new StringBuilder()
|
||||||
.append("SELECT AD_Client_ID, Value, Name, AD_Client_UU FROM AD_Client WHERE ")
|
.append("SELECT AD_Client_ID, Value, Name, AD_Client_UU FROM AD_Client WHERE ")
|
||||||
|
@ -210,7 +263,7 @@ public class MoveClient extends SvrProcess {
|
||||||
.append(" ORDER BY Value");
|
.append(" ORDER BY Value");
|
||||||
StringBuilder sqlValidateLocalClient = new StringBuilder()
|
StringBuilder sqlValidateLocalClient = new StringBuilder()
|
||||||
.append("SELECT COUNT(*) FROM AD_Client WHERE Value=? OR Name=? OR AD_Client_UU=?");
|
.append("SELECT COUNT(*) FROM AD_Client WHERE Value=? OR Name=? OR AD_Client_UU=?");
|
||||||
if (p_tablesToPreserveIDsList.contains("AD_CLIENT")) {
|
if (p_isPreserveAll || p_tablesToPreserveIDsList.contains("AD_CLIENT")) {
|
||||||
sqlValidateLocalClient.append(" OR AD_Client_ID=?");
|
sqlValidateLocalClient.append(" OR AD_Client_ID=?");
|
||||||
}
|
}
|
||||||
String sqlValidClients = DB.getDatabase().convertStatement(sqlValidClientsSB.toString());
|
String sqlValidClients = DB.getDatabase().convertStatement(sqlValidClientsSB.toString());
|
||||||
|
@ -226,18 +279,20 @@ public class MoveClient extends SvrProcess {
|
||||||
String clientValue = rsVC.getString(2);
|
String clientValue = rsVC.getString(2);
|
||||||
String clientName = rsVC.getString(3);
|
String clientName = rsVC.getString(3);
|
||||||
String clientUUID = rsVC.getString(4);
|
String clientUUID = rsVC.getString(4);
|
||||||
int cnt = 0;
|
if (! p_IsCopyClient) {
|
||||||
if (p_tablesToPreserveIDsList.contains("AD_CLIENT")) {
|
int cnt = 0;
|
||||||
cnt = DB.getSQLValueEx(get_TrxName(), sqlValidateLocalClient.toString(), clientValue, clientName, clientUUID, clientID);
|
if (p_isPreserveAll || p_tablesToPreserveIDsList.contains("AD_CLIENT")) {
|
||||||
} else {
|
cnt = DB.getSQLValueEx(get_TrxName(), sqlValidateLocalClient.toString(), clientValue, clientName, clientUUID, clientID);
|
||||||
cnt = DB.getSQLValueEx(get_TrxName(), sqlValidateLocalClient.toString(), clientValue, clientName, clientUUID);
|
} else {
|
||||||
}
|
cnt = DB.getSQLValueEx(get_TrxName(), sqlValidateLocalClient.toString(), clientValue, clientName, clientUUID);
|
||||||
if (cnt > 0) {
|
}
|
||||||
String msg = "Client " + clientValue + "/" + clientName + " already exists. UUID=" + clientUUID;
|
if (cnt > 0) {
|
||||||
if (p_tablesToPreserveIDsList.contains("AD_CLIENT")) {
|
String msg = "Client " + clientValue + "/" + clientName + " already exists. UUID=" + clientUUID;
|
||||||
msg += ", ID=" + clientID;
|
if (p_isPreserveAll || p_tablesToPreserveIDsList.contains("AD_CLIENT")) {
|
||||||
|
msg += ", ID=" + clientID;
|
||||||
|
}
|
||||||
|
p_errorList.add(msg);
|
||||||
}
|
}
|
||||||
p_errorList.add(msg);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
|
@ -312,8 +367,10 @@ public class MoveClient extends SvrProcess {
|
||||||
DB.close(rsRT, stmtRT);
|
DB.close(rsRT, stmtRT);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (String tableName : p_tablesVerifiedList) {
|
if (! p_IsSkipSomeValidations) {
|
||||||
validateOrphan(tableName);
|
for (String tableName : p_tablesVerifiedList) {
|
||||||
|
validateOrphan(tableName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -420,7 +477,7 @@ public class MoveClient extends SvrProcess {
|
||||||
throw new AdempiereUserError("There is data in unsupported Multi-ID column " + tableName + "." + columnName);
|
throw new AdempiereUserError("There is data in unsupported Multi-ID column " + tableName + "." + columnName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (refID > MTable.MAX_OFFICIAL_ID) {
|
if (!p_IsSkipSomeValidations && refID > MTable.MAX_OFFICIAL_ID) {
|
||||||
int cntET = countInExternal(sqlDataNotNullInColumn.toString());
|
int cntET = countInExternal(sqlDataNotNullInColumn.toString());
|
||||||
if (cntET > 0) {
|
if (cntET > 0) {
|
||||||
// TODO: Implement support for non-official data types (must implement how to obtain the foreign table with MColumn.getReferenceTableName)
|
// TODO: Implement support for non-official data types (must implement how to obtain the foreign table with MColumn.getReferenceTableName)
|
||||||
|
@ -436,6 +493,9 @@ public class MoveClient extends SvrProcess {
|
||||||
} else if ("C_BPartner".equalsIgnoreCase(tableName) && "AD_OrgBP_ID".equalsIgnoreCase(columnName)) {
|
} else if ("C_BPartner".equalsIgnoreCase(tableName) && "AD_OrgBP_ID".equalsIgnoreCase(columnName)) {
|
||||||
// Special case for C_BPartner.AD_OrgBP_ID defined as Button in dictionary
|
// Special case for C_BPartner.AD_OrgBP_ID defined as Button in dictionary
|
||||||
foreignTable = "AD_Org";
|
foreignTable = "AD_Org";
|
||||||
|
} else if ("C_Project".equalsIgnoreCase(tableName) && "C_ProjectType_ID".equalsIgnoreCase(columnName)) {
|
||||||
|
// Special case for C_Project.C_ProjectType_ID defined as Button in dictionary
|
||||||
|
foreignTable = "C_ProjectType";
|
||||||
}
|
}
|
||||||
if (! Util.isEmpty(foreignTable)) {
|
if (! Util.isEmpty(foreignTable)) {
|
||||||
// verify all foreign keys pointing to a different client
|
// verify all foreign keys pointing to a different client
|
||||||
|
@ -476,8 +536,13 @@ public class MoveClient extends SvrProcess {
|
||||||
if (! "AD_Client".equalsIgnoreCase(tableName)) {
|
if (! "AD_Client".equalsIgnoreCase(tableName)) {
|
||||||
sqlForeignClientSB.append(" JOIN AD_Client ON (").append(tableName).append(".AD_Client_ID=AD_Client.AD_Client_ID)");
|
sqlForeignClientSB.append(" JOIN AD_Client ON (").append(tableName).append(".AD_Client_ID=AD_Client.AD_Client_ID)");
|
||||||
}
|
}
|
||||||
sqlForeignClientSB.append(" JOIN ").append(foreignTable)
|
if ("AD_Client".equalsIgnoreCase(foreignTable)) { // fix issue with foreign AD_Client_ID like AD_Replication.Remote_Client_ID
|
||||||
.append(" ON (").append(tableName).append(".").append(columnName).append("=").append(foreignTable).append(".");
|
sqlForeignClientSB.append(" JOIN ").append(foreignTable)
|
||||||
|
.append(" c ON (").append(tableName).append(".").append(columnName).append("=c.");
|
||||||
|
} else {
|
||||||
|
sqlForeignClientSB.append(" JOIN ").append(foreignTable)
|
||||||
|
.append(" ON (").append(tableName).append(".").append(columnName).append("=").append(foreignTable).append(".");
|
||||||
|
}
|
||||||
if ("AD_Language".equalsIgnoreCase(foreignTable) && !columnName.equalsIgnoreCase("AD_Language_ID")) {
|
if ("AD_Language".equalsIgnoreCase(foreignTable) && !columnName.equalsIgnoreCase("AD_Language_ID")) {
|
||||||
sqlForeignClientSB.append("AD_Language");
|
sqlForeignClientSB.append("AD_Language");
|
||||||
} else if ("AD_EntityType".equalsIgnoreCase(foreignTable) && !columnName.equalsIgnoreCase("AD_EntityType_ID")) {
|
} else if ("AD_EntityType".equalsIgnoreCase(foreignTable) && !columnName.equalsIgnoreCase("AD_EntityType_ID")) {
|
||||||
|
@ -504,7 +569,7 @@ public class MoveClient extends SvrProcess {
|
||||||
p_errorList.add("Column " + tableName + "." + columnName + " has invalid cross-client reference to client " + clientID + " on ID=" + foreignID);
|
p_errorList.add("Column " + tableName + "." + columnName + " has invalid cross-client reference to client " + clientID + " on ID=" + foreignID);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (foreignID > MTable.MAX_OFFICIAL_ID) {
|
if (foreignID > 0) {
|
||||||
if (! p_idSystemConversionList.contains(foreignTable.toUpperCase() + "." + foreignID)) {
|
if (! p_idSystemConversionList.contains(foreignTable.toUpperCase() + "." + foreignID)) {
|
||||||
int localID = getFromUUID(foreignTable, uuidCol, tableName, columnName, foreignUU, foreignID);
|
int localID = getFromUUID(foreignTable, uuidCol, tableName, columnName, foreignUU, foreignID);
|
||||||
if (localID < 0) {
|
if (localID < 0) {
|
||||||
|
@ -538,6 +603,9 @@ public class MoveClient extends SvrProcess {
|
||||||
if ("C_BPartner".equalsIgnoreCase(tableName) && "AD_OrgBP_ID".equalsIgnoreCase(columnName)) {
|
if ("C_BPartner".equalsIgnoreCase(tableName) && "AD_OrgBP_ID".equalsIgnoreCase(columnName)) {
|
||||||
// Special case for C_BPartner.AD_OrgBP_ID defined as Button in dictionary
|
// Special case for C_BPartner.AD_OrgBP_ID defined as Button in dictionary
|
||||||
foreignTable = "AD_Org";
|
foreignTable = "AD_Org";
|
||||||
|
} else if ("C_Project".equalsIgnoreCase(tableName) && "C_ProjectType_ID".equalsIgnoreCase(columnName)) {
|
||||||
|
// Special case for C_Project.C_ProjectType_ID defined as Button in dictionary
|
||||||
|
foreignTable = "C_ProjectType";
|
||||||
}
|
}
|
||||||
if (! Util.isEmpty(foreignTable) && ! "AD_Ref_List".equalsIgnoreCase(foreignTable)) {
|
if (! Util.isEmpty(foreignTable) && ! "AD_Ref_List".equalsIgnoreCase(foreignTable)) {
|
||||||
MTable tableFK = MTable.get(getCtx(), foreignTable);
|
MTable tableFK = MTable.get(getCtx(), foreignTable);
|
||||||
|
@ -637,7 +705,7 @@ public class MoveClient extends SvrProcess {
|
||||||
while (rsGI.next()) {
|
while (rsGI.next()) {
|
||||||
int sourceID = rsGI.getInt(1);
|
int sourceID = rsGI.getInt(1);
|
||||||
int targetID = -1;
|
int targetID = -1;
|
||||||
if (p_tablesToPreserveIDsList.contains(tableName.toUpperCase())) {
|
if (p_isPreserveAll || p_tablesToPreserveIDsList.contains(tableName.toUpperCase())) {
|
||||||
int localID = DB.getSQLValueEx(get_TrxName(), selectVerifyIdSB.toString(), sourceID);
|
int localID = DB.getSQLValueEx(get_TrxName(), selectVerifyIdSB.toString(), sourceID);
|
||||||
if (localID < 0) {
|
if (localID < 0) {
|
||||||
targetID = sourceID;
|
targetID = sourceID;
|
||||||
|
@ -645,7 +713,17 @@ public class MoveClient extends SvrProcess {
|
||||||
throw new AdempiereException("In " + tableName + "." + tableName + "_ID already exist the ID=" + sourceID);
|
throw new AdempiereException("In " + tableName + "." + tableName + "_ID already exist the ID=" + sourceID);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
targetID = DB.getNextID(getAD_Client_ID(), tableName, get_TrxName());
|
if ("AD_ChangeLog".equalsIgnoreCase(tableName)) {
|
||||||
|
// AD_ChangeLog_ID is not really a unique key - validate if it was already converted before
|
||||||
|
int clId = DB.getSQLValueEx(get_TrxName(),
|
||||||
|
"SELECT Target_ID FROM T_MoveClient WHERE AD_PInstance_ID=? AND TableName=? AND Source_ID=?",
|
||||||
|
getAD_PInstance_ID(), "AD_CHANGELOG", sourceID);
|
||||||
|
if (clId == -1) {
|
||||||
|
targetID = DB.getNextID(getAD_Client_ID(), tableName, get_TrxName());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
targetID = DB.getNextID(getAD_Client_ID(), tableName, get_TrxName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (targetID >= 0) {
|
if (targetID >= 0) {
|
||||||
DB.executeUpdateEx(insertConversionId,
|
DB.executeUpdateEx(insertConversionId,
|
||||||
|
@ -667,6 +745,22 @@ public class MoveClient extends SvrProcess {
|
||||||
throw new AdempiereException(e1);
|
throw new AdempiereException(e1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int newADClientID = -1;
|
||||||
|
String oldClientValue = null;
|
||||||
|
if (p_IsCopyClient) {
|
||||||
|
int clientInt;
|
||||||
|
try {
|
||||||
|
clientInt = Integer.parseInt(p_ClientsToInclude);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
throw new AdempiereException("Error in parameter Clients to Include, must be just one integer");
|
||||||
|
}
|
||||||
|
newADClientID = DB.getSQLValueEx(get_TrxName(),
|
||||||
|
"SELECT Target_ID FROM T_MoveClient WHERE AD_PInstance_ID=? AND TableName=? AND Source_ID=?",
|
||||||
|
getAD_PInstance_ID(), "AD_CLIENT", clientInt);
|
||||||
|
oldClientValue = DB.getSQLValueStringEx(get_TrxName(),
|
||||||
|
"SELECT Value FROM AD_Client WHERE AD_Client_ID=?", clientInt);
|
||||||
|
}
|
||||||
|
|
||||||
// get the source data and insert into target converting the IDs
|
// get the source data and insert into target converting the IDs
|
||||||
for (MTable table : tables) {
|
for (MTable table : tables) {
|
||||||
String tableName = table.getTableName();
|
String tableName = table.getTableName();
|
||||||
|
@ -728,6 +822,9 @@ public class MoveClient extends SvrProcess {
|
||||||
} else if ("C_BPartner".equalsIgnoreCase(tableName) && "AD_OrgBP_ID".equalsIgnoreCase(columnName)) {
|
} else if ("C_BPartner".equalsIgnoreCase(tableName) && "AD_OrgBP_ID".equalsIgnoreCase(columnName)) {
|
||||||
// Special case for C_BPartner.AD_OrgBP_ID defined as Button in dictionary
|
// Special case for C_BPartner.AD_OrgBP_ID defined as Button in dictionary
|
||||||
convertTable = "AD_Org";
|
convertTable = "AD_Org";
|
||||||
|
} else if ("C_Project".equalsIgnoreCase(tableName) && "C_ProjectType_ID".equalsIgnoreCase(columnName)) {
|
||||||
|
// Special case for C_Project.C_ProjectType_ID defined as Button in dictionary
|
||||||
|
convertTable = "C_ProjectType";
|
||||||
} else if (convertTable != null
|
} else if (convertTable != null
|
||||||
&& ("AD_Ref_List".equalsIgnoreCase(convertTable)
|
&& ("AD_Ref_List".equalsIgnoreCase(convertTable)
|
||||||
|| "AD_Language".equalsIgnoreCase(columnName)
|
|| "AD_Language".equalsIgnoreCase(columnName)
|
||||||
|
@ -779,7 +876,8 @@ public class MoveClient extends SvrProcess {
|
||||||
|| "AD_TreeNodeU4".equalsIgnoreCase(tableName))) {
|
|| "AD_TreeNodeU4".equalsIgnoreCase(tableName))) {
|
||||||
// Special case for AD_TreeNodeU*.Node/Parent_ID
|
// Special case for AD_TreeNodeU*.Node/Parent_ID
|
||||||
convertTable = "C_ElementValue";
|
convertTable = "C_ElementValue";
|
||||||
} else if (("Node_ID".equalsIgnoreCase(columnName) || "Parent_ID".equalsIgnoreCase(columnName)) && "AD_TreeNode".equalsIgnoreCase(tableName)) {
|
} else if (("Node_ID".equalsIgnoreCase(columnName) || "Parent_ID".equalsIgnoreCase(columnName))
|
||||||
|
&& "AD_TreeNode".equalsIgnoreCase(tableName)) {
|
||||||
// Special case for AD_TreeNode.Node/Parent_ID - depends on AD_Tree -> TreeType and AD_Table_ID
|
// Special case for AD_TreeNode.Node/Parent_ID - depends on AD_Tree -> TreeType and AD_Table_ID
|
||||||
int treeId = rsGD.getInt("AD_Tree_ID");
|
int treeId = rsGD.getInt("AD_Tree_ID");
|
||||||
convertTable = getExternalTableFromTree(treeId);
|
convertTable = getExternalTableFromTree(treeId);
|
||||||
|
@ -790,6 +888,11 @@ public class MoveClient extends SvrProcess {
|
||||||
convertTable = att.substring(0, att.length()-3);
|
convertTable = att.substring(0, att.length()-3);
|
||||||
if ("C_DocTypeTarget".equals(convertTable)) {
|
if ("C_DocTypeTarget".equals(convertTable)) {
|
||||||
convertTable = "C_DocType";
|
convertTable = "C_DocType";
|
||||||
|
} else {
|
||||||
|
// validate that AD_Preference points to a valid table, ignore otherwise
|
||||||
|
if (MTable.getTable_ID(convertTable, get_TrxName()) <= 0) {
|
||||||
|
convertTable = "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
convertTable = "";
|
convertTable = "";
|
||||||
|
@ -801,7 +904,8 @@ public class MoveClient extends SvrProcess {
|
||||||
if (rsGD.wasNull()) {
|
if (rsGD.wasNull()) {
|
||||||
parameters[i] = null;
|
parameters[i] = null;
|
||||||
} else {
|
} else {
|
||||||
if (id >= MTable.MAX_OFFICIAL_ID) {
|
if (! (id == 0 && ("Parent_ID".equalsIgnoreCase(columnName) || "Node_ID".equalsIgnoreCase(columnName))) // Parent_ID/Node_ID=0 is valid
|
||||||
|
&& (id >= MTable.MAX_OFFICIAL_ID || p_IsCopyClient)) {
|
||||||
int convertedId = -1;
|
int convertedId = -1;
|
||||||
final String query = "SELECT Target_ID FROM T_MoveClient WHERE AD_PInstance_ID=? AND TableName=? AND Source_ID=?";
|
final String query = "SELECT Target_ID FROM T_MoveClient WHERE AD_PInstance_ID=? AND TableName=? AND Source_ID=?";
|
||||||
try {
|
try {
|
||||||
|
@ -813,15 +917,34 @@ public class MoveClient extends SvrProcess {
|
||||||
}
|
}
|
||||||
if (convertedId < 0) {
|
if (convertedId < 0) {
|
||||||
// not found in the table - try to get it again - could be missed in first pass
|
// not found in the table - try to get it again - could be missed in first pass
|
||||||
convertedId = getLocalIDFor(convertTable, id);
|
convertedId = getLocalIDFor(convertTable, id, tableName);
|
||||||
if (convertedId < 0) {
|
if (convertedId < 0) {
|
||||||
if ("Record_ID".equalsIgnoreCase(columnName) && table.getColumnIndex("AD_Table_ID") > 0) {
|
if (("Record_ID".equalsIgnoreCase(columnName) && table.getColumnIndex("AD_Table_ID") > 0)
|
||||||
|
|| (("Node_ID".equalsIgnoreCase(columnName) || "Parent_ID".equalsIgnoreCase(columnName))
|
||||||
|
&& ( "AD_TreeNode".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeNodeMM".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeNodeBP".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeNodeCMC".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeNodeCMM".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeNodeCMS".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeNodeCMT".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeNodePR".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeNodeU1".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeNodeU2".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeNodeU3".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeNodeU4".equalsIgnoreCase(tableName)
|
||||||
|
|| "AD_TreeBar".equalsIgnoreCase(tableName)))) {
|
||||||
if (p_tablesToExcludeList.contains(convertTable.toUpperCase())) {
|
if (p_tablesToExcludeList.contains(convertTable.toUpperCase())) {
|
||||||
// record is pointing to a table that is not included, ignore it
|
// record is pointing to a table that is not included, ignore it
|
||||||
insertRecord = false;
|
insertRecord = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ("AD_ChangeLog".equalsIgnoreCase(tableName)) {
|
||||||
|
// skip orphan records in AD_ChangeLog, can be log of deleted records, skip
|
||||||
|
insertRecord = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
throw new AdempiereException("Found orphan record in " + tableName + "." + columnName + ": " + id + " related to table " + convertTable);
|
throw new AdempiereException("Found orphan record in " + tableName + "." + columnName + ": " + id + " related to table " + convertTable);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -838,6 +961,56 @@ public class MoveClient extends SvrProcess {
|
||||||
if (rsGD.wasNull()) {
|
if (rsGD.wasNull()) {
|
||||||
parameters[i] = null;
|
parameters[i] = null;
|
||||||
}
|
}
|
||||||
|
if (p_IsCopyClient) {
|
||||||
|
String uuidCol = MTable.getUUIDColumnName(tableName);
|
||||||
|
if (columnName.equals(uuidCol)) {
|
||||||
|
String oldUUID = (String) parameters[i];
|
||||||
|
String newUUID = UUID.randomUUID().toString();
|
||||||
|
parameters[i] = newUUID;
|
||||||
|
if (! Util.isEmpty(oldUUID)) {
|
||||||
|
X_AD_Package_UUID_Map map = new X_AD_Package_UUID_Map(getCtx(), 0, get_TrxName());
|
||||||
|
map.setAD_Table_ID(table.getAD_Table_ID());
|
||||||
|
map.set_ValueNoCheck("AD_Client_ID", newADClientID);
|
||||||
|
map.setSource_UUID(oldUUID);
|
||||||
|
map.setTarget_UUID(newUUID);
|
||||||
|
map.saveEx();
|
||||||
|
}
|
||||||
|
} else if ("AD_Client".equalsIgnoreCase(tableName) && "Value".equalsIgnoreCase(columnName)) {
|
||||||
|
parameters[i] = p_ClientValue;
|
||||||
|
} else if ("AD_Client".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName)) {
|
||||||
|
parameters[i] = p_ClientName;
|
||||||
|
} else if (
|
||||||
|
("W_Store".equalsIgnoreCase(tableName) && "WebContext".equalsIgnoreCase(columnName))
|
||||||
|
|| ("AD_User".equalsIgnoreCase(tableName) && "Value".equalsIgnoreCase(columnName))
|
||||||
|
) {
|
||||||
|
parameters[i] = p_ClientValue.toLowerCase();
|
||||||
|
} else if (
|
||||||
|
("AD_User".equalsIgnoreCase(tableName) && "Password".equalsIgnoreCase(columnName))
|
||||||
|
|| ("AD_User".equalsIgnoreCase(tableName) && "Salt".equalsIgnoreCase(columnName))
|
||||||
|
) {
|
||||||
|
parameters[i] = null; // do not assign passwords to new users, must be managed by SuperUser or plugin
|
||||||
|
} else if (
|
||||||
|
("AD_Org".equalsIgnoreCase(tableName) && "Value".equalsIgnoreCase(columnName))
|
||||||
|
|| ("AD_Org".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName))
|
||||||
|
|| ("AD_Role".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName))
|
||||||
|
|| ("AD_Tree".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName))
|
||||||
|
|| ("AD_User".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName))
|
||||||
|
|| ("AD_User".equalsIgnoreCase(tableName) && "Description".equalsIgnoreCase(columnName))
|
||||||
|
|| ("C_AcctProcessor".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName))
|
||||||
|
|| ("C_AcctSchema".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName))
|
||||||
|
|| ("C_BPartner".equalsIgnoreCase(tableName) && "Value".equalsIgnoreCase(columnName))
|
||||||
|
|| ("C_BPartner".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName))
|
||||||
|
|| ("C_Calendar".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName))
|
||||||
|
|| ("C_Element".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName))
|
||||||
|
|| ("M_CostType".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName))
|
||||||
|
|| ("R_RequestProcessor".equalsIgnoreCase(tableName) && "Name".equalsIgnoreCase(columnName))
|
||||||
|
) {
|
||||||
|
if (parameters[i] != null) {
|
||||||
|
String value = parameters[i].toString();
|
||||||
|
parameters[i] = value.replaceFirst(oldClientValue, p_ClientValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (insertRecord) {
|
if (insertRecord) {
|
||||||
|
@ -930,15 +1103,24 @@ public class MoveClient extends SvrProcess {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkSequences() {
|
private void checkSequences() {
|
||||||
for (String tableName : p_tablesToPreserveIDsList) {
|
if (p_isPreserveAll) {
|
||||||
MSequence seq = MSequence.get(getCtx(), tableName, get_TrxName());
|
for (String tableName : p_tablesVerifiedList) {
|
||||||
if (seq != null) {
|
MSequence seq = MSequence.get(getCtx(), tableName, get_TrxName());
|
||||||
seq.validateTableIDValue(); // ignore output messages
|
if (seq != null) {
|
||||||
|
seq.validateTableIDValue(); // ignore output messages
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (String tableName : p_tablesToPreserveIDsList) {
|
||||||
|
MSequence seq = MSequence.get(getCtx(), tableName, get_TrxName());
|
||||||
|
if (seq != null) {
|
||||||
|
seq.validateTableIDValue(); // ignore output messages
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getLocalIDFor(String tableName, int foreignId) {
|
private int getLocalIDFor(String tableName, int foreignId, String tableNameSource) {
|
||||||
String uuidCol = MTable.getUUIDColumnName(tableName);
|
String uuidCol = MTable.getUUIDColumnName(tableName);
|
||||||
StringBuilder sqlRemoteUUSB = new StringBuilder()
|
StringBuilder sqlRemoteUUSB = new StringBuilder()
|
||||||
.append("SELECT ").append(uuidCol).append(" FROM ").append(tableName)
|
.append("SELECT ").append(uuidCol).append(" FROM ").append(tableName)
|
||||||
|
@ -954,7 +1136,7 @@ public class MoveClient extends SvrProcess {
|
||||||
if (rs.next())
|
if (rs.next())
|
||||||
remoteUUID = rs.getString(1);
|
remoteUUID = rs.getString(1);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new AdempiereException("Could not execute external query: " + sqlRemoteUU + "\nCause = " + e.getLocalizedMessage());
|
throw new AdempiereException("Could not execute external query for table " + tableNameSource + ": " + sqlRemoteUU + "\nCause = " + e.getLocalizedMessage());
|
||||||
} finally {
|
} finally {
|
||||||
DB.close(rs, stmtUU);
|
DB.close(rs, stmtUU);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,12 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_Form_Access;
|
import org.compiere.model.I_AD_Form_Access;
|
||||||
import org.compiere.model.MFormAccess;
|
import org.compiere.model.MFormAccess;
|
||||||
|
@ -90,10 +91,28 @@ public class FormAccessElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Form_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
|
MFormAccess po = new Query(packout.getCtx().ctx, MFormAccess.Table_Name, "AD_Form_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Form.COLUMNNAME_AD_Form_ID, po.getAD_Form_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Form.COLUMNNAME_AD_Form_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Form_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
import org.adempiere.pipo2.Element;
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
|
@ -90,7 +91,24 @@ public class InfoWindowAccessElementHandler extends AbstractElementHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId) throws Exception {
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
create(packout.getCtx(), packoutHandler);
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_InfoWindow_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId, String uuid) throws Exception {
|
||||||
|
X_AD_InfoWindow_Access po = new Query(packout.getCtx().ctx, X_AD_InfoWindow_Access.Table_Name, "AD_InfoWindow_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_InfoWindow.COLUMNNAME_AD_InfoWindow_ID, po.getAD_InfoWindow_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_InfoWindow.COLUMNNAME_AD_InfoWindow_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_InfoWindow_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
import org.adempiere.pipo2.Element;
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
|
@ -59,7 +60,7 @@ public class OrgRoleElementHandler extends AbstractElementHandler {
|
||||||
|
|
||||||
public void create(PIPOContext ctx, TransformerHandler document)
|
public void create(PIPOContext ctx, TransformerHandler document)
|
||||||
throws SAXException {
|
throws SAXException {
|
||||||
int AD_Org_ID = Env.getContextAsInt(ctx.ctx, "AD_Org_ID");
|
int AD_Org_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Org_ID);
|
||||||
int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID);
|
int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
|
||||||
Query query = new Query(ctx.ctx, "AD_Role_OrgAccess", "AD_Role_ID=? and AD_Org_ID=?", getTrxName(ctx));
|
Query query = new Query(ctx.ctx, "AD_Role_OrgAccess", "AD_Role_ID=? and AD_Org_ID=?", getTrxName(ctx));
|
||||||
|
@ -86,10 +87,27 @@ public class OrgRoleElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Role_OrgAccess doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
X_AD_Role_OrgAccess po = new Query(packout.getCtx().ctx, X_AD_Role_OrgAccess.Table_Name, "AD_Role_OrgAccess_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Org_ID, po.getAD_Org_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Org_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Role_OrgAccess_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,13 +20,15 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_Process_Access;
|
import org.compiere.model.I_AD_Process_Access;
|
||||||
|
import org.compiere.model.MProcessAccess;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
import org.compiere.model.X_AD_Process;
|
import org.compiere.model.X_AD_Process;
|
||||||
import org.compiere.model.X_AD_Process_Access;
|
import org.compiere.model.X_AD_Process_Access;
|
||||||
|
@ -88,10 +90,28 @@ public class ProcessAccessElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Process_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
MProcessAccess po = new Query(packout.getCtx().ctx, MProcessAccess.Table_Name, "AD_Process_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Process.COLUMNNAME_AD_Process_ID, po.getAD_Process_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Process.COLUMNNAME_AD_Process_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Process_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,12 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_Task_Access;
|
import org.compiere.model.I_AD_Task_Access;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
|
@ -82,10 +83,28 @@ public class TaskAccessElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Task_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
X_AD_Task_Access po = new Query(packout.getCtx().ctx, X_AD_Task_Access.Table_Name, "AD_Task_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Task.COLUMNNAME_AD_Task_ID, po.getAD_Task_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Task.COLUMNNAME_AD_Task_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Task_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,12 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_User_Roles;
|
import org.compiere.model.I_AD_User_Roles;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
|
@ -63,11 +64,10 @@ public class UserRoleElementHandler extends AbstractElementHandler {
|
||||||
throws SAXException {
|
throws SAXException {
|
||||||
int AD_User_ID = Env.getContextAsInt(ctx.ctx, X_AD_User.COLUMNNAME_AD_User_ID);
|
int AD_User_ID = Env.getContextAsInt(ctx.ctx, X_AD_User.COLUMNNAME_AD_User_ID);
|
||||||
int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID);
|
int AD_Role_ID = Env.getContextAsInt(ctx.ctx, X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
int AD_Org_ID = Env.getContextAsInt(ctx.ctx, "AD_Org_ID");
|
|
||||||
Query query = new Query(ctx.ctx, "AD_User_Roles",
|
Query query = new Query(ctx.ctx, "AD_User_Roles",
|
||||||
"AD_User_ID = ? AND AD_Role_ID = ? AND AD_Org_ID = ?", getTrxName(ctx));
|
"AD_User_ID = ? AND AD_Role_ID = ?", getTrxName(ctx));
|
||||||
X_AD_User_Roles po = query.setParameters(
|
X_AD_User_Roles po = query.setParameters(
|
||||||
new Object[] { AD_User_ID, AD_Role_ID, AD_Org_ID }).first();
|
new Object[] { AD_User_ID, AD_Role_ID}).first();
|
||||||
if (po != null) {
|
if (po != null) {
|
||||||
if (!isPackOutElement(ctx, po))
|
if (!isPackOutElement(ctx, po))
|
||||||
return;
|
return;
|
||||||
|
@ -90,10 +90,28 @@ public class UserRoleElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes, true);
|
filler.export(excludes, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_User_Roles doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
X_AD_User_Roles po = new Query(packout.getCtx().ctx, X_AD_User_Roles.Table_Name, "AD_User_Roles_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_User.COLUMNNAME_AD_User_ID, po.getAD_User_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_User.COLUMNNAME_AD_User_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_User_Roles_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,13 +20,15 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_Window_Access;
|
import org.compiere.model.I_AD_Window_Access;
|
||||||
|
import org.compiere.model.MWindowAccess;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
import org.compiere.model.X_AD_Role;
|
import org.compiere.model.X_AD_Role;
|
||||||
import org.compiere.model.X_AD_Window;
|
import org.compiere.model.X_AD_Window;
|
||||||
|
@ -83,10 +85,28 @@ public class WindowAccessElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Window_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
MWindowAccess po = new Query(packout.getCtx().ctx, MWindowAccess.Table_Name, "AD_Window_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Window.COLUMNNAME_AD_Window_ID, po.getAD_Window_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Window.COLUMNNAME_AD_Window_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Window_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,12 @@ import java.util.List;
|
||||||
|
|
||||||
import javax.xml.transform.sax.TransformerHandler;
|
import javax.xml.transform.sax.TransformerHandler;
|
||||||
|
|
||||||
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
import org.adempiere.pipo2.AbstractElementHandler;
|
import org.adempiere.pipo2.AbstractElementHandler;
|
||||||
|
import org.adempiere.pipo2.Element;
|
||||||
import org.adempiere.pipo2.PIPOContext;
|
import org.adempiere.pipo2.PIPOContext;
|
||||||
import org.adempiere.pipo2.PackOut;
|
import org.adempiere.pipo2.PackOut;
|
||||||
import org.adempiere.pipo2.PoExporter;
|
import org.adempiere.pipo2.PoExporter;
|
||||||
import org.adempiere.pipo2.Element;
|
|
||||||
import org.adempiere.pipo2.PoFiller;
|
import org.adempiere.pipo2.PoFiller;
|
||||||
import org.compiere.model.I_AD_Workflow_Access;
|
import org.compiere.model.I_AD_Workflow_Access;
|
||||||
import org.compiere.model.Query;
|
import org.compiere.model.Query;
|
||||||
|
@ -86,10 +87,28 @@ public class WorkflowAccessElementHandler extends AbstractElementHandler {
|
||||||
filler.export(excludes);
|
filler.export(excludes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler, int recordId)
|
||||||
|
throws Exception {
|
||||||
|
throw new AdempiereException("AD_Workflow_Access doesn't have ID, use method with UUID");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
public void packOut(PackOut packout, TransformerHandler packoutHandler,
|
||||||
TransformerHandler docHandler,
|
TransformerHandler docHandler,
|
||||||
int recordId) throws Exception {
|
int recordId, String uuid) throws Exception {
|
||||||
create(packout.getCtx(), packoutHandler);
|
MWorkflowAccess po = new Query(packout.getCtx().ctx, MWorkflowAccess.Table_Name, "AD_Workflow_Access_UU=?", getTrxName(packout.getCtx()))
|
||||||
|
.setParameters(uuid)
|
||||||
|
.first();
|
||||||
|
if (po != null) {
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Workflow.COLUMNNAME_AD_Workflow_ID, po.getAD_Workflow_ID());
|
||||||
|
Env.setContext(packout.getCtx().ctx, X_AD_Role.COLUMNNAME_AD_Role_ID, po.getAD_Role_ID());
|
||||||
|
this.create(packout.getCtx(), packoutHandler);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Workflow.COLUMNNAME_AD_Workflow_ID);
|
||||||
|
packout.getCtx().ctx.remove(X_AD_Role.COLUMNNAME_AD_Role_ID);
|
||||||
|
} else {
|
||||||
|
throw new AdempiereException("AD_Workflow_Access_UU not found = " + uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,4 +52,18 @@ public interface ElementHandler {
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception;
|
public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param packout
|
||||||
|
* @param packoutHandler
|
||||||
|
* @param docHandler
|
||||||
|
* @param recordId
|
||||||
|
* @param uuid
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
default public void packOut(PackOut packout, TransformerHandler packoutHandler, TransformerHandler docHandler,int recordId, String uuid) throws Exception {
|
||||||
|
// element handlers for tables without ID must implement this method
|
||||||
|
packOut(packout, packoutHandler, docHandler, recordId); // defaults to calling the method without uuid
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.adempiere.base.IGridTabExporter;
|
import org.adempiere.base.IGridTabExporter;
|
||||||
import org.adempiere.exceptions.AdempiereException;
|
import org.adempiere.exceptions.AdempiereException;
|
||||||
|
@ -87,13 +88,27 @@ public class GridTab2PackExporter implements IGridTabExporter {
|
||||||
packoutItems.add(packoutItem);
|
packoutItems.add(packoutItem);
|
||||||
} else {
|
} else {
|
||||||
if (currentRowOnly) {
|
if (currentRowOnly) {
|
||||||
PackoutItem packoutItem = new PackoutItem(tableName, gridTab.getRecord_ID(),
|
int recordID = gridTab.getRecord_ID();
|
||||||
properties);
|
String uuid = null;
|
||||||
|
if (recordID == -1) {
|
||||||
|
UUID uuidObj = gridTab.getTableModel().getUUID(gridTab.getCurrentRow());
|
||||||
|
if (uuidObj != null) {
|
||||||
|
uuid = uuidObj.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PackoutItem packoutItem = new PackoutItem(tableName, recordID, uuid, properties);
|
||||||
packoutItems.add(packoutItem);
|
packoutItems.add(packoutItem);
|
||||||
} else {
|
} else {
|
||||||
for(int i = 0; i < gridTab.getRowCount(); i++) {
|
for(int i = 0; i < gridTab.getRowCount(); i++) {
|
||||||
PackoutItem packoutItem = new PackoutItem(tableName, gridTab.getKeyID(i),
|
int recordID = gridTab.getKeyID(i);
|
||||||
properties);
|
String uuid = null;
|
||||||
|
if (recordID == -1) {
|
||||||
|
UUID uuidObj = gridTab.getTableModel().getUUID(i);
|
||||||
|
if (uuidObj != null) {
|
||||||
|
uuid = uuidObj.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
PackoutItem packoutItem = new PackoutItem(tableName, recordID, uuid, properties);
|
||||||
packoutItems.add(packoutItem);
|
packoutItems.add(packoutItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,10 +58,10 @@ public class IDFinder {
|
||||||
* @param trxName
|
* @param trxName
|
||||||
*/
|
*/
|
||||||
public static int findIdByColumn (String tableName, String columnName, Object value, int AD_Client_ID, boolean ignorecase, String trxName) {
|
public static int findIdByColumn (String tableName, String columnName, Object value, int AD_Client_ID, boolean ignorecase, String trxName) {
|
||||||
int id = 0;
|
|
||||||
|
|
||||||
if (value == null)
|
if (value == null)
|
||||||
return id;
|
return 0;
|
||||||
|
|
||||||
|
int id = -1;
|
||||||
|
|
||||||
//construct cache key
|
//construct cache key
|
||||||
StringBuilder key = new StringBuilder();
|
StringBuilder key = new StringBuilder();
|
||||||
|
@ -168,7 +168,7 @@ public class IDFinder {
|
||||||
}
|
}
|
||||||
|
|
||||||
//update cache
|
//update cache
|
||||||
if (id > 0)
|
if (id >= 0)
|
||||||
idCache.put(key.toString(), id);
|
idCache.put(key.toString(), id);
|
||||||
|
|
||||||
return id;
|
return id;
|
||||||
|
|
|
@ -141,7 +141,7 @@ public class PackOut
|
||||||
|
|
||||||
ElementHandler handler = handlerRegistry.getHandler(type);
|
ElementHandler handler = handlerRegistry.getHandler(type);
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
handler.packOut(this,packoutHandler,docHandler,packoutItem.getRecordId());
|
handler.packOut(this,packoutHandler,docHandler,packoutItem.getRecordId(),packoutItem.getUUID());
|
||||||
else
|
else
|
||||||
throw new IllegalArgumentException("Packout handler not found for type " + type);
|
throw new IllegalArgumentException("Packout handler not found for type " + type);
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ public class PackoutItem {
|
||||||
|
|
||||||
private String type;
|
private String type;
|
||||||
private int recordId;
|
private int recordId;
|
||||||
|
private String uuid;
|
||||||
private Map<String, Object> properties;
|
private Map<String, Object> properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,9 +32,18 @@ public class PackoutItem {
|
||||||
* @param recordId
|
* @param recordId
|
||||||
*/
|
*/
|
||||||
public PackoutItem(String type, int recordId, Map<String, Object> properties) {
|
public PackoutItem(String type, int recordId, Map<String, Object> properties) {
|
||||||
|
this(type, recordId, null, properties);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param type
|
||||||
|
* @param recordId
|
||||||
|
*/
|
||||||
|
public PackoutItem(String type, int recordId, String uuid, Map<String, Object> properties) {
|
||||||
super();
|
super();
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.recordId = recordId;
|
this.recordId = recordId;
|
||||||
|
this.uuid = uuid;
|
||||||
this.properties = properties;
|
this.properties = properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,6 +61,13 @@ public class PackoutItem {
|
||||||
return recordId;
|
return recordId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the uuid
|
||||||
|
*/
|
||||||
|
public String getUUID() {
|
||||||
|
return uuid;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key
|
||||||
|
|
|
@ -80,7 +80,7 @@ public final class ALogin extends CDialog
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -3057525535969948097L;
|
private static final long serialVersionUID = -4397663968578607998L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct the dialog.
|
* Construct the dialog.
|
||||||
|
@ -109,6 +109,7 @@ public final class ALogin extends CDialog
|
||||||
} // ALogin
|
} // ALogin
|
||||||
|
|
||||||
|
|
||||||
|
public static final String ROLE_TYPES_SWING = "NULL,SW,SS"; //swing,support+null
|
||||||
protected static final String RESOURCE = "org.compiere.apps.ALoginRes";
|
protected static final String RESOURCE = "org.compiere.apps.ALoginRes";
|
||||||
private static ResourceBundle res = ResourceBundle.getBundle(RESOURCE);
|
private static ResourceBundle res = ResourceBundle.getBundle(RESOURCE);
|
||||||
/** Logger */
|
/** Logger */
|
||||||
|
@ -871,7 +872,7 @@ public final class ALogin extends CDialog
|
||||||
KeyNamePair[] clients = null;
|
KeyNamePair[] clients = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
clients = m_login.getClients(m_user, new String(m_pwd));
|
clients = m_login.getClients(m_user, new String(m_pwd), ROLE_TYPES_SWING);
|
||||||
if (clients == null || clients.length == 0)
|
if (clients == null || clients.length == 0)
|
||||||
{
|
{
|
||||||
String loginErrMsg = m_login.getLoginErrMsg();
|
String loginErrMsg = m_login.getLoginErrMsg();
|
||||||
|
@ -976,7 +977,7 @@ public final class ALogin extends CDialog
|
||||||
Env.setContext(m_ctx, "#SalesRep_ID", user.getAD_User_ID());
|
Env.setContext(m_ctx, "#SalesRep_ID", user.getAD_User_ID());
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
KeyNamePair[] roles = m_login.getRoles(userTextField.getText(), client);
|
KeyNamePair[] roles = m_login.getRoles(userTextField.getText(), client, ROLE_TYPES_SWING);
|
||||||
// Make role Combo visible
|
// Make role Combo visible
|
||||||
roleCombo.setVisible(true);
|
roleCombo.setVisible(true);
|
||||||
roleLabel.setVisible(true);
|
roleLabel.setVisible(true);
|
||||||
|
|
|
@ -5,7 +5,8 @@ Bundle-SymbolicName: org.adempiere.ui.zk.example
|
||||||
Bundle-Version: 1.0.0.qualifier
|
Bundle-Version: 1.0.0.qualifier
|
||||||
Bundle-Activator: org.adempiere.ui.zk.example.Activator
|
Bundle-Activator: org.adempiere.ui.zk.example.Activator
|
||||||
Bundle-ActivationPolicy: lazy
|
Bundle-ActivationPolicy: lazy
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
|
Comment: Bundle-RequiredExecutionEnvironment: JavaSE-11
|
||||||
|
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version>=1.11))"
|
||||||
Import-Package: org.adempiere.base,
|
Import-Package: org.adempiere.base,
|
||||||
org.adempiere.base.equinox,
|
org.adempiere.base.equinox,
|
||||||
org.adempiere.exceptions,
|
org.adempiere.exceptions,
|
||||||
|
@ -19,13 +20,15 @@ Import-Package: org.adempiere.base,
|
||||||
org.adempiere.webui.window,
|
org.adempiere.webui.window,
|
||||||
org.compiere.model,
|
org.compiere.model,
|
||||||
org.compiere.util,
|
org.compiere.util,
|
||||||
org.osgi.framework;version="1.3.0",
|
org.osgi.framework;version="1.3.0"
|
||||||
org.zkoss.util.media,
|
Require-Bundle: zcommon;bundle-version="0.0.0",
|
||||||
org.zkoss.zk.ui,
|
zel;bundle-version="0.0.0",
|
||||||
org.zkoss.zk.ui.event,
|
zhtml;bundle-version="0.0.0",
|
||||||
org.zkoss.zul,
|
zk;bundle-version="0.0.0",
|
||||||
org.zkoss.zul.event,
|
zkbind;bundle-version="0.0.0",
|
||||||
org.zkoss.zul.impl
|
zkplus;bundle-version="0.0.0",
|
||||||
|
zul;bundle-version="0.0.0",
|
||||||
|
zweb;bundle-version="0.0.0"
|
||||||
Service-Component: OSGI-INF/export.xml,
|
Service-Component: OSGI-INF/export.xml,
|
||||||
OSGI-INF/paymentwindowvalidator.xml
|
OSGI-INF/paymentwindowvalidator.xml
|
||||||
Export-Package: action.images
|
Export-Package: action.images
|
||||||
|
|
|
@ -77,7 +77,21 @@ public class ToolbarCustomButton implements EventListener<Event>, Evaluatee {
|
||||||
if (displayLogic == null || displayLogic.trim().length() == 0)
|
if (displayLogic == null || displayLogic.trim().length() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
boolean visible = Evaluator.evaluateLogic(this, displayLogic);
|
boolean visible = true;
|
||||||
|
if (displayLogic.startsWith("@SQL=")) {
|
||||||
|
ADWindow adwindow = ADWindow.get(windowNo);
|
||||||
|
if (adwindow == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
IADTabpanel adTabpanel = adwindow.getADWindowContent().getADTab().getSelectedTabpanel();
|
||||||
|
if (adTabpanel == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
visible = Evaluator.parseSQLLogic(displayLogic, Env.getCtx(), windowNo, adTabpanel.getTabNo(), mToolbarButton.getActionName());
|
||||||
|
}else {
|
||||||
|
visible = Evaluator.evaluateLogic(this, displayLogic);
|
||||||
|
}
|
||||||
|
|
||||||
toolbarButton.setVisible(visible);
|
toolbarButton.setVisible(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -119,7 +119,13 @@ public class ToolbarProcessButton implements IProcessButton, Evaluatee {
|
||||||
if (displayLogic == null || displayLogic.trim().length() == 0)
|
if (displayLogic == null || displayLogic.trim().length() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
boolean visible = Evaluator.evaluateLogic(this, displayLogic);
|
boolean visible = true;
|
||||||
|
if (displayLogic.startsWith("@SQL=")) {
|
||||||
|
visible = Evaluator.parseSQLLogic(displayLogic, Env.getCtx(), windowNo, adTabpanel.getTabNo(), mToolbarButton.getActionName());
|
||||||
|
}else {
|
||||||
|
visible = Evaluator.evaluateLogic(this, displayLogic);
|
||||||
|
}
|
||||||
|
|
||||||
button.setVisible(visible);
|
button.setVisible(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
*/
|
*/
|
||||||
package org.adempiere.webui.desktop;
|
package org.adempiere.webui.desktop;
|
||||||
|
|
||||||
|
import static org.compiere.model.SystemIDs.TREE_MENUPRIMARY;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
|
@ -12,12 +14,11 @@ import java.util.Map;
|
||||||
import org.adempiere.util.Callback;
|
import org.adempiere.util.Callback;
|
||||||
import org.compiere.model.MTree;
|
import org.compiere.model.MTree;
|
||||||
import org.compiere.model.MTreeNode;
|
import org.compiere.model.MTreeNode;
|
||||||
|
import org.compiere.model.MUser;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.zkoss.zk.ui.Session;
|
import org.zkoss.zk.ui.Session;
|
||||||
|
|
||||||
import static org.compiere.model.SystemIDs.TREE_MENUPRIMARY;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author hengsin
|
* @author hengsin
|
||||||
*
|
*
|
||||||
|
@ -83,8 +84,8 @@ public class FavouriteController {
|
||||||
|
|
||||||
private boolean barDBupdate(boolean add, int Node_ID)
|
private boolean barDBupdate(boolean add, int Node_ID)
|
||||||
{
|
{
|
||||||
int AD_Client_ID = Env.getAD_Client_ID(Env.getCtx());
|
int AD_Client_ID = MUser.get(Env.getCtx()).getAD_Client_ID();
|
||||||
int AD_Org_ID = Env.getContextAsInt(Env.getCtx(), "#AD_Org_ID");
|
int AD_Org_ID = 0;
|
||||||
int AD_User_ID = Env.getContextAsInt(Env.getCtx(), "#AD_User_ID");
|
int AD_User_ID = Env.getContextAsInt(Env.getCtx(), "#AD_User_ID");
|
||||||
StringBuilder sql = new StringBuilder();
|
StringBuilder sql = new StringBuilder();
|
||||||
if (add)
|
if (add)
|
||||||
|
|
|
@ -101,7 +101,9 @@ public class LoginPanel extends Window implements EventListener<Event>
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -3361823499124119753L;
|
private static final long serialVersionUID = -6130436148212949636L;
|
||||||
|
|
||||||
|
public static final String ROLE_TYPES_WEBUI = "NULL,ZK,SS"; //webui,support+null
|
||||||
|
|
||||||
private static LogAuthFailure logAuthFailure = new LogAuthFailure();
|
private static LogAuthFailure logAuthFailure = new LogAuthFailure();
|
||||||
|
|
||||||
|
@ -575,7 +577,7 @@ public class LoginPanel extends Window implements EventListener<Event>
|
||||||
|
|
||||||
Session currSess = Executions.getCurrent().getDesktop().getSession();
|
Session currSess = Executions.getCurrent().getDesktop().getSession();
|
||||||
|
|
||||||
KeyNamePair clientsKNPairs[] = login.getClients(userId, userPassword);
|
KeyNamePair clientsKNPairs[] = login.getClients(userId, userPassword, ROLE_TYPES_WEBUI);
|
||||||
|
|
||||||
if (clientsKNPairs == null || clientsKNPairs.length == 0)
|
if (clientsKNPairs == null || clientsKNPairs.length == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -423,7 +423,7 @@ public class RolePanel extends Window implements EventListener<Event>, Deferrabl
|
||||||
initDefault=m_userpreference.getProperty( UserPreference.P_ROLE );
|
initDefault=m_userpreference.getProperty( UserPreference.P_ROLE );
|
||||||
}
|
}
|
||||||
KeyNamePair clientKNPair = new KeyNamePair(Integer.valueOf((String)lstItemClient.getValue()), lstItemClient.getLabel());
|
KeyNamePair clientKNPair = new KeyNamePair(Integer.valueOf((String)lstItemClient.getValue()), lstItemClient.getLabel());
|
||||||
KeyNamePair roleKNPairs[] = login.getRoles(m_userName, clientKNPair);
|
KeyNamePair roleKNPairs[] = login.getRoles(m_userName, clientKNPair, LoginPanel.ROLE_TYPES_WEBUI);
|
||||||
if (roleKNPairs != null && roleKNPairs.length > 0)
|
if (roleKNPairs != null && roleKNPairs.length > 0)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < roleKNPairs.length; i++)
|
for (int i = 0; i < roleKNPairs.length; i++)
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
package org.adempiere.webui.window;
|
package org.adempiere.webui.window;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
@ -59,6 +60,7 @@ import org.compiere.util.Env;
|
||||||
import org.compiere.util.Ini;
|
import org.compiere.util.Ini;
|
||||||
import org.compiere.util.KeyNamePair;
|
import org.compiere.util.KeyNamePair;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
|
import org.compiere.util.SecureEngine;
|
||||||
import org.compiere.util.Util;
|
import org.compiere.util.Util;
|
||||||
import org.osgi.framework.Bundle;
|
import org.osgi.framework.Bundle;
|
||||||
import org.osgi.framework.BundleContext;
|
import org.osgi.framework.BundleContext;
|
||||||
|
@ -91,7 +93,7 @@ public class AboutWindow extends Window implements EventListener<Event> {
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 8527444729510721269L;
|
private static final long serialVersionUID = 7922577248288156723L;
|
||||||
|
|
||||||
private Checkbox bErrorsOnly;
|
private Checkbox bErrorsOnly;
|
||||||
private Listbox logTable;
|
private Listbox logTable;
|
||||||
|
@ -104,6 +106,7 @@ public class AboutWindow extends Window implements EventListener<Event> {
|
||||||
protected Tab tabPlugins;
|
protected Tab tabPlugins;
|
||||||
|
|
||||||
protected Button btnAdempiereLog;
|
protected Button btnAdempiereLog;
|
||||||
|
protected Button btnReloadLogProps;
|
||||||
|
|
||||||
private Listbox levelListBox;
|
private Listbox levelListBox;
|
||||||
|
|
||||||
|
@ -268,14 +271,20 @@ public class AboutWindow extends Window implements EventListener<Event> {
|
||||||
levelListBox.setEnabled(true);
|
levelListBox.setEnabled(true);
|
||||||
levelListBox.setTooltiptext("Set trace level. Warning: this will effect all session not just the current session");
|
levelListBox.setTooltiptext("Set trace level. Warning: this will effect all session not just the current session");
|
||||||
levelLabel.setTooltiptext("Set trace level. Warning: this will effect all session not just the current session");
|
levelLabel.setTooltiptext("Set trace level. Warning: this will effect all session not just the current session");
|
||||||
|
|
||||||
btnAdempiereLog = new Button("iDempiere Log");
|
btnAdempiereLog = new Button("iDempiere Log");
|
||||||
btnAdempiereLog.setTooltiptext("Download iDempiere log file from server");
|
btnAdempiereLog.setTooltiptext("Download iDempiere log file from server");
|
||||||
LayoutUtils.addSclass("txt-btn", btnAdempiereLog);
|
LayoutUtils.addSclass("txt-btn", btnAdempiereLog);
|
||||||
btnAdempiereLog.addEventListener(Events.ON_CLICK, this);
|
btnAdempiereLog.addEventListener(Events.ON_CLICK, this);
|
||||||
|
|
||||||
hbox.appendChild(new Space());
|
hbox.appendChild(new Space());
|
||||||
hbox.appendChild(btnAdempiereLog);
|
hbox.appendChild(btnAdempiereLog);
|
||||||
|
|
||||||
|
btnReloadLogProps = new Button("Reload Log Props");
|
||||||
|
btnReloadLogProps.setTooltiptext("Reload the configuration of log levels from idempiere.properties file");
|
||||||
|
LayoutUtils.addSclass("txt-btn", btnReloadLogProps);
|
||||||
|
btnReloadLogProps.addEventListener(Events.ON_CLICK, this);
|
||||||
|
hbox.appendChild(new Space());
|
||||||
|
hbox.appendChild(btnReloadLogProps);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -716,6 +725,8 @@ public class AboutWindow extends Window implements EventListener<Event> {
|
||||||
cmd_errorEMail();
|
cmd_errorEMail();
|
||||||
else if (event.getTarget() == btnAdempiereLog)
|
else if (event.getTarget() == btnAdempiereLog)
|
||||||
downloadAdempiereLogFile();
|
downloadAdempiereLogFile();
|
||||||
|
else if (event.getTarget() == btnReloadLogProps)
|
||||||
|
reloadLogProps();
|
||||||
else if (event.getTarget() == levelListBox)
|
else if (event.getTarget() == levelListBox)
|
||||||
setTraceLevel();
|
setTraceLevel();
|
||||||
else if (Events.ON_SELECT.equals(event.getName()) && event.getTarget() == pluginsTable)
|
else if (Events.ON_SELECT.equals(event.getName()) && event.getTarget() == pluginsTable)
|
||||||
|
@ -728,6 +739,53 @@ public class AboutWindow extends Window implements EventListener<Event> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void reloadLogProps() {
|
||||||
|
Properties props = new Properties();
|
||||||
|
String propertyFileName = Ini.getFileName(false);
|
||||||
|
FileInputStream fis = null;
|
||||||
|
try {
|
||||||
|
fis = new FileInputStream(propertyFileName);
|
||||||
|
props.load(fis);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new AdempiereException("Could not load properties file, cause: " + e.getLocalizedMessage());
|
||||||
|
} finally {
|
||||||
|
if (fis != null) {
|
||||||
|
try {
|
||||||
|
fis.close();
|
||||||
|
} catch (Exception e) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
String globalLevel = props.getProperty(Ini.P_TRACELEVEL);
|
||||||
|
if (! Util.isEmpty(globalLevel)) {
|
||||||
|
globalLevel = SecureEngine.decrypt(globalLevel, 0);
|
||||||
|
if (! Util.isEmpty(globalLevel)) {
|
||||||
|
CLogMgt.setLevel(globalLevel);
|
||||||
|
Level level = CLogMgt.getLevel();
|
||||||
|
for (int i = 0; i < CLogMgt.LEVELS.length; i++) {
|
||||||
|
if (CLogMgt.LEVELS[i].intValue() == level.intValue()) {
|
||||||
|
levelListBox.setSelectedIndex(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for(Object key : props.keySet()) {
|
||||||
|
if (key instanceof String) {
|
||||||
|
String s = (String)key;
|
||||||
|
if (s.endsWith("."+Ini.P_TRACELEVEL)) {
|
||||||
|
String level = props.getProperty(s);
|
||||||
|
if (! Util.isEmpty(level)) {
|
||||||
|
level = SecureEngine.decrypt(level, 0);
|
||||||
|
if (! Util.isEmpty(level)) {
|
||||||
|
s = s.substring(0, s.length() - ("."+Ini.P_TRACELEVEL).length());
|
||||||
|
CLogMgt.setLevel(s, level);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void setTraceLevel() {
|
private void setTraceLevel() {
|
||||||
Listitem item = levelListBox.getSelectedItem();
|
Listitem item = levelListBox.getSelectedItem();
|
||||||
if (item != null && item.getValue() != null) {
|
if (item != null && item.getValue() != null) {
|
||||||
|
|
|
@ -66,6 +66,7 @@ import org.idempiere.webservices.fault.IdempiereServiceFault;
|
||||||
*/
|
*/
|
||||||
public class AbstractService {
|
public class AbstractService {
|
||||||
|
|
||||||
|
public static final String ROLE_TYPES_WEBSERVICE = "NULL,WS"; //webservice+null
|
||||||
private static final String ROLE_ACCESS_SQL = "SELECT IsActive FROM WS_WebServiceTypeAccess WHERE AD_Role_ID IN ("
|
private static final String ROLE_ACCESS_SQL = "SELECT IsActive FROM WS_WebServiceTypeAccess WHERE AD_Role_ID IN ("
|
||||||
+ "SELECT AD_Role_ID FROM AD_Role WHERE AD_Role_ID=? UNION "
|
+ "SELECT AD_Role_ID FROM AD_Role WHERE AD_Role_ID=? UNION "
|
||||||
+ "SELECT Included_Role_ID as AD_Role_ID FROM AD_Role_Included WHERE AD_Role_ID=?) "
|
+ "SELECT Included_Role_ID as AD_Role_ID FROM AD_Role_Included WHERE AD_Role_ID=?) "
|
||||||
|
@ -110,7 +111,7 @@ public class AbstractService {
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
Login login = new Login(m_cs.getCtx());
|
Login login = new Login(m_cs.getCtx());
|
||||||
KeyNamePair[] clients = login.getClients(loginRequest.getUser(), loginRequest.getPass());
|
KeyNamePair[] clients = login.getClients(loginRequest.getUser(), loginRequest.getPass(), ROLE_TYPES_WEBSERVICE);
|
||||||
if (clients == null)
|
if (clients == null)
|
||||||
return "Error login - User invalid";
|
return "Error login - User invalid";
|
||||||
m_cs.setPassword(loginRequest.getPass());
|
m_cs.setPassword(loginRequest.getPass());
|
||||||
|
@ -140,7 +141,7 @@ public class AbstractService {
|
||||||
Env.setContext(m_cs.getCtx(), "#UserAgent", userAgent == null ? "Unknown" : userAgent);
|
Env.setContext(m_cs.getCtx(), "#UserAgent", userAgent == null ? "Unknown" : userAgent);
|
||||||
}
|
}
|
||||||
|
|
||||||
KeyNamePair[] roles = login.getRoles(loginRequest.getUser(), selectedClient);
|
KeyNamePair[] roles = login.getRoles(loginRequest.getUser(), selectedClient, ROLE_TYPES_WEBSERVICE);
|
||||||
if (roles != null) {
|
if (roles != null) {
|
||||||
boolean okrole = false;
|
boolean okrole = false;
|
||||||
for (KeyNamePair role : roles) {
|
for (KeyNamePair role : roles) {
|
||||||
|
|
Loading…
Reference in New Issue