diff --git a/db/ddlutils/oracle/views/AD_FIELD_V.sql b/db/ddlutils/oracle/views/AD_FIELD_V.sql index 18ec3ba8ad..33c72d9494 100644 --- a/db/ddlutils/oracle/views/AD_FIELD_V.sql +++ b/db/ddlutils/oracle/views/AD_FIELD_V.sql @@ -1,10 +1,4 @@ - CREATE OR REPLACE VIEW AD_FIELD_V - (AD_WINDOW_ID, AD_TAB_ID, AD_FIELD_ID, AD_TABLE_ID, AD_COLUMN_ID, NAME, DESCRIPTION, HELP, ISDISPLAYED, - DISPLAYLOGIC, DISPLAYLENGTH, SEQNO, SORTNO, ISSAMELINE, ISHEADING, ISFIELDONLY, ISREADONLY, ISENCRYPTEDFIELD, - OBSCURETYPE, COLUMNNAME, COLUMNSQL, FIELDLENGTH, VFORMAT, DEFAULTVALUE, ISKEY, ISPARENT, ISMANDATORY, ISIDENTIFIER, - ISTRANSLATED, AD_REFERENCE_VALUE_ID, CALLOUT, AD_REFERENCE_ID, AD_VAL_RULE_ID, AD_PROCESS_ID, ISALWAYSUPDATEABLE, - READONLYLOGIC, MANDATORYLOGIC, ISUPDATEABLE, ISENCRYPTEDCOLUMN, ISSELECTIONCOLUMN, TABLENAME, VALUEMIN, VALUEMAX, - FIELDGROUP, VALIDATIONCODE, INCLUDED_TAB_ID, FIELDGROUPTYPE, ISCOLLAPSEDBYDEFAULT, INFOFACTORYCLASS, ISAUTOCOMPLETE) AS +CREATE OR REPLACE VIEW AD_FIELD_V AS SELECT t.AD_Window_ID, f.AD_Tab_ID, f.AD_Field_ID, tbl.AD_Table_ID, f.AD_Column_ID, f.NAME, f.Description, f.Help, f.IsDisplayed, f.DisplayLogic, f.DisplayLength, f.SeqNo, f.SortNo, f.IsSameLine, f.IsHeading, f.IsFieldOnly, f.IsReadOnly, @@ -22,7 +16,7 @@ fg.NAME AS FieldGroup, vr.Code AS ValidationCode, f.Included_Tab_ID, fg.FieldGroupType, fg.IsCollapsedByDefault, COALESCE(f.InfoFactoryClass, c.InfoFactoryClass) as InfoFactoryClass, - c.IsAutocomplete + c.IsAutocomplete, COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy FROM AD_FIELD f INNER JOIN AD_TAB t ON (f.AD_Tab_ID = t.AD_Tab_ID) LEFT OUTER JOIN AD_FIELDGROUP fg ON (f.AD_FieldGroup_ID = fg.AD_FieldGroup_ID) @@ -31,4 +25,4 @@ FROM AD_FIELD f INNER JOIN AD_REFERENCE r ON (c.AD_Reference_ID = r.AD_Reference_ID) LEFT OUTER JOIN AD_VAL_RULE vr ON (vr.AD_Val_Rule_ID = COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID)) WHERE f.IsActive = 'Y' - AND c.IsActive = 'Y'; \ No newline at end of file + AND c.IsActive = 'Y'; diff --git a/db/ddlutils/oracle/views/AD_FIELD_VT.sql b/db/ddlutils/oracle/views/AD_FIELD_VT.sql index 880be2fd42..c447055faf 100644 --- a/db/ddlutils/oracle/views/AD_FIELD_VT.sql +++ b/db/ddlutils/oracle/views/AD_FIELD_VT.sql @@ -1,10 +1,4 @@ - CREATE OR REPLACE VIEW AD_FIELD_VT (AD_LANGUAGE, AD_WINDOW_ID, AD_TAB_ID, AD_FIELD_ID, AD_TABLE_ID, - AD_COLUMN_ID, NAME, DESCRIPTION, HELP, ISDISPLAYED, DISPLAYLOGIC, DISPLAYLENGTH, SEQNO, SORTNO, ISSAMELINE, - ISHEADING, ISFIELDONLY, ISREADONLY, ISENCRYPTEDFIELD, OBSCURETYPE, COLUMNNAME, COLUMNSQL, FIELDLENGTH, VFORMAT, - DEFAULTVALUE, ISKEY, ISPARENT, ISMANDATORY, ISIDENTIFIER, ISTRANSLATED, AD_REFERENCE_VALUE_ID, CALLOUT, - AD_REFERENCE_ID, AD_VAL_RULE_ID, AD_PROCESS_ID, ISALWAYSUPDATEABLE, READONLYLOGIC, MANDATORYLOGIC, ISUPDATEABLE, - ISENCRYPTEDCOLUMN, ISSELECTIONCOLUMN, TABLENAME, VALUEMIN, VALUEMAX, FIELDGROUP, VALIDATIONCODE, INCLUDED_TAB_ID, - FIELDGROUPTYPE, ISCOLLAPSEDBYDEFAULT, INFOFACTORYCLASS, ISAUTOCOMPLETE) AS +CREATE OR REPLACE VIEW AD_FIELD_VT AS SELECT trl.AD_LANGUAGE, t.AD_Window_ID, f.AD_Tab_ID, f.AD_Field_ID, tbl.AD_Table_ID, f.AD_Column_ID, trl.NAME, trl.Description, trl.Help, f.IsDisplayed, f.DisplayLogic, f.DisplayLength, f.SeqNo, f.SortNo, f.IsSameLine, f.IsHeading, f.IsFieldOnly, f.IsReadOnly, @@ -21,7 +15,7 @@ fgt.NAME AS FieldGroup, vr.Code AS ValidationCode, f.Included_Tab_ID, fg.FieldGroupType, fg.IsCollapsedByDefault, COALESCE(f.InfoFactoryClass, c.InfoFactoryClass) as InfoFactoryClass, - c.IsAutocomplete + c.IsAutocomplete, COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy FROM AD_FIELD f INNER JOIN AD_FIELD_TRL trl ON (f.AD_Field_ID = trl.AD_Field_ID) INNER JOIN AD_TAB t ON (f.AD_Tab_ID = t.AD_Tab_ID) @@ -33,4 +27,4 @@ INNER JOIN AD_REFERENCE r ON (c.AD_Reference_ID = r.AD_Reference_ID) LEFT OUTER JOIN AD_VAL_RULE vr ON (vr.AD_Val_Rule_ID=COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID)) WHERE f.IsActive = 'Y' - AND c.IsActive = 'Y'; \ No newline at end of file + AND c.IsActive = 'Y'; diff --git a/db/ddlutils/postgresql/views/AD_FIELD_V.sql b/db/ddlutils/postgresql/views/AD_FIELD_V.sql index ca5b755698..ab54da3785 100644 --- a/db/ddlutils/postgresql/views/AD_FIELD_V.sql +++ b/db/ddlutils/postgresql/views/AD_FIELD_V.sql @@ -11,7 +11,8 @@ CREATE OR REPLACE VIEW ad_field_v AS c.isalwaysupdateable, c.readonlylogic, c.mandatorylogic, c.isupdateable, c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fg.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault, - COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete + COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, + COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy FROM ad_field f JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id LEFT JOIN ad_fieldgroup fg ON f.ad_fieldgroup_id = fg.ad_fieldgroup_id @@ -19,4 +20,4 @@ CREATE OR REPLACE VIEW ad_field_v AS JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id JOIN ad_reference r ON c.ad_reference_id = r.ad_reference_id LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) - WHERE f.isactive = 'Y'::bpchar AND c.isactive = 'Y'::bpchar; \ No newline at end of file + WHERE f.isactive = 'Y'::bpchar AND c.isactive = 'Y'::bpchar; diff --git a/db/ddlutils/postgresql/views/AD_FIELD_VT.sql b/db/ddlutils/postgresql/views/AD_FIELD_VT.sql index 4fd243734b..bfb8b9cfc4 100644 --- a/db/ddlutils/postgresql/views/AD_FIELD_VT.sql +++ b/db/ddlutils/postgresql/views/AD_FIELD_VT.sql @@ -6,7 +6,8 @@ CREATE OR REPLACE VIEW ad_field_vt AS COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, c.isalwaysupdateable, c.readonlylogic, c.mandatorylogic, c.isupdateable, c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fgt.name AS fieldgroup, vr.code AS validationcode, - f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete + f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, + COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy FROM ad_field f JOIN ad_field_trl trl ON f.ad_field_id = trl.ad_field_id JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id @@ -16,4 +17,4 @@ CREATE OR REPLACE VIEW ad_field_vt AS JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id JOIN ad_reference r ON c.ad_reference_id = r.ad_reference_id LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) - WHERE f.isactive = 'Y'::bpchar AND c.isactive = 'Y'::bpchar; \ No newline at end of file + WHERE f.isactive = 'Y'::bpchar AND c.isactive = 'Y'::bpchar; diff --git a/migration/360lts-release/oracle/804_IDEMPIERE67_IsAllowCopy.sql b/migration/360lts-release/oracle/804_IDEMPIERE67_IsAllowCopy.sql new file mode 100644 index 0000000000..255c1e32de --- /dev/null +++ b/migration/360lts-release/oracle/804_IDEMPIERE67_IsAllowCopy.sql @@ -0,0 +1,205 @@ +-- Sep 9, 2011 10:58:03 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Element (AD_Client_ID,AD_Element_ID,AD_Org_ID,ColumnName,Created,CreatedBy,Description,EntityType,IsActive,Name,PrintName,Updated,UpdatedBy) VALUES (0,55297,0,'IsAllowCopy',TO_DATE('2011-09-09 10:58:02','YYYY-MM-DD HH24:MI:SS'),100,'Determine if a column must be copied when pushing the button to copy record','D','Y','Allow Copy','Allow Copy',TO_DATE('2011-09-09 10:58:02','YYYY-MM-DD HH24:MI:SS'),100) +; + +-- Sep 9, 2011 10:58:04 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Description,Help,Name,PO_Description,PO_Help,PO_Name,PO_PrintName,PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Element_ID, t.Description,t.Help,t.Name,t.PO_Description,t.PO_Help,t.PO_Name,t.PO_PrintName,t.PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=55297 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID) +; + +-- Sep 9, 2011 10:58:35 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +UPDATE AD_Element_Trl SET IsTranslated='Y',Name='Permitir copia',PrintName='Permitir copia',Description='Determina si una columna debe ser copiada cuando se selecciona copiar registro',Updated=TO_DATE('2011-09-09 10:58:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=55297 AND AD_Language LIKE 'es_%' +; + +-- Sep 9, 2011 10:59:43 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Column (AD_Client_ID,AD_Column_ID,AD_Element_ID,AD_Org_ID,AD_Reference_ID,AD_Table_ID,ColumnName,Created,CreatedBy,DefaultValue,Description,EntityType,FieldLength,IsActive,IsAllowLogging,IsAlwaysUpdateable,IsAutocomplete,IsEncrypted,IsIdentifier,IsKey,IsMandatory,IsParent,IsSelectionColumn,IsSyncDatabase,IsTranslated,IsUpdateable,Name,SeqNo,Updated,UpdatedBy,Version) VALUES (0,62199,55297,0,20,101,'IsAllowCopy',TO_DATE('2011-09-09 10:59:42','YYYY-MM-DD HH24:MI:SS'),100,'Y','Determine if a column must be copied when pushing the button to copy record','D',1,'Y','Y','N','N','N','N','N','Y','N','N','N','N','Y','Allow Copy',0,TO_DATE('2011-09-09 10:59:42','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Sep 9, 2011 10:59:43 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=62199 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Sep 9, 2011 11:00:47 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +UPDATE AD_Field SET IsSameLine='N', SeqNo=390,Updated=TO_DATE('2011-09-09 11:00:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5122 +; + +-- Sep 9, 2011 11:01:22 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Field (AD_Client_ID,AD_Column_ID,AD_Field_ID,AD_Org_ID,AD_Tab_ID,Created,CreatedBy,Description,DisplayLength,EntityType,IsActive,IsCentrallyMaintained,IsDisplayed,IsEncrypted,IsFieldOnly,IsHeading,IsReadOnly,IsSameLine,Name,SeqNo,SortNo,Updated,UpdatedBy) VALUES (0,62199,62467,0,101,TO_DATE('2011-09-09 11:01:22','YYYY-MM-DD HH24:MI:SS'),100,'Determine if a column must be copied when pushing the button to copy record',10,'D','Y','Y','Y','N','N','N','N','Y','Allow Copy',380,0,TO_DATE('2011-09-09 11:01:22','YYYY-MM-DD HH24:MI:SS'),100) +; + +-- Sep 9, 2011 11:01:22 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Help,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Help,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=62467 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Sep 9, 2011 11:01:35 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +UPDATE AD_Field SET DisplayLength=10,Updated=TO_DATE('2011-09-09 11:01:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56317 +; + +-- Sep 9, 2011 11:19:47 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +ALTER TABLE AD_Column ADD IsAllowCopy CHAR(1) DEFAULT 'Y' CHECK (IsAllowCopy IN ('Y','N')) NOT NULL +; + +-- Sep 11, 2011 11:49:44 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Column (AD_Client_ID,AD_Column_ID,AD_Element_ID,AD_Org_ID,AD_Reference_ID,AD_Reference_Value_ID,AD_Table_ID,ColumnName,Created,CreatedBy,Description,EntityType,FieldLength,IsActive,IsAllowLogging,IsAlwaysUpdateable,IsAutocomplete,IsEncrypted,IsIdentifier,IsKey,IsMandatory,IsParent,IsSelectionColumn,IsSyncDatabase,IsTranslated,IsUpdateable,Name,SeqNo,Updated,UpdatedBy,Version) VALUES (0,62200,55297,0,17,319,107,'IsAllowCopy',TO_DATE('2011-09-11 11:49:42','YYYY-MM-DD HH24:MI:SS'),100,'Determine if a column must be copied when pushing the button to copy record','D',1,'Y','Y','N','N','N','N','N','N','N','N','N','N','Y','Allow Copy',0,TO_DATE('2011-09-11 11:49:42','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Sep 11, 2011 11:49:44 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=62200 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Sep 11, 2011 11:52:39 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +ALTER TABLE AD_Field ADD IsAllowCopy CHAR(1) DEFAULT NULL +; + +-- Sep 11, 2011 11:51:12 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +UPDATE AD_Field SET SeqNo=290,Updated=TO_DATE('2011-09-11 11:51:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=53280 +; + +-- Sep 11, 2011 11:51:25 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Field (AD_Client_ID,AD_Column_ID,AD_Field_ID,AD_Org_ID,AD_Tab_ID,Created,CreatedBy,Description,DisplayLength,EntityType,IsActive,IsCentrallyMaintained,IsDisplayed,IsEncrypted,IsFieldOnly,IsHeading,IsReadOnly,IsSameLine,Name,SeqNo,SortNo,Updated,UpdatedBy) VALUES (0,62200,62468,0,107,TO_DATE('2011-09-11 11:51:24','YYYY-MM-DD HH24:MI:SS'),100,'Determine if a column must be copied when pushing the button to copy record',0,'D','Y','Y','Y','N','N','N','N','Y','Allow Copy',280,0,TO_DATE('2011-09-11 11:51:24','YYYY-MM-DD HH24:MI:SS'),100) +; + +-- Sep 11, 2011 11:56:01 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Help,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Help,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=62468 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Backward compatibility with old PO copyValues method +UPDATE AD_Column SET IsAllowCopy='N' WHERE ColumnName IN ( +'Created', +'Created', +'CreatedBy', +'Updated', +'UpdatedBy', +'IsActive', +'AD_Client_ID', +'AD_Org_ID', +'Processing' +); + +-- additional from GridTable (on AD_Field for better backward compatibility) +UPDATE AD_Field SET IsAllowCopy='N' WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE ColumnName IN ( +'EntityType', +'DocumentNo', +'Processed', +'IsSelfService', +'DocAction', +'DocStatus', +'Posted', +'IsReconciled', +'IsApproved', +'IsGenerated', +'GrandTotal', +'TotalLines', +'C_CashLine_ID', +'C_Payment_ID', +'IsPaid', +'IsAllocated', +'Line' +)); + +-- Ref_ from GridTable +UPDATE AD_Field SET IsAllowCopy='N' WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE ColumnName LIKE 'Ref_%'); + +-- C_DocType_ID if there is DocTypeTarget from GridTable +UPDATE AD_Field SET IsAllowCopy='N' WHERE AD_Column_ID IN + (SELECT AD_Column_ID FROM AD_Column cdt + WHERE cdt.ColumnName = 'C_DocType_ID' AND EXISTS + (SELECT 1 FROM AD_Column cdtt + WHERE cdtt.AD_Table_ID=cdt.AD_Table_ID AND cdtt.ColumnName='C_DocTypeTarget_ID')); + +-- new columns found to be problematic +UPDATE AD_Column SET IsAllowCopy='N' WHERE ColumnName IN ( +'ProcessedOn' +); + +-- new fields found to be problematic +UPDATE AD_Field SET IsAllowCopy='N' WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE ColumnName IN ( +'QtyDelivered', +'QtyInvoiced', +'QtyReserved' +)); + +-- key columns +UPDATE AD_Column SET IsAllowCopy='N' WHERE IsKey='Y'; + +-- virtual columns +UPDATE AD_Column SET IsAllowCopy='N' WHERE ColumnSQL IS NOT NULL; + +-- UUID columns +UPDATE AD_Column SET IsAllowCopy='N' WHERE columnname = (SELECT tablename||'_UU' FROM ad_table t where t.ad_table_id=ad_column.ad_table_id); + +CREATE OR REPLACE VIEW AD_FIELD_V AS + SELECT t.AD_Window_ID, f.AD_Tab_ID, f.AD_Field_ID, tbl.AD_Table_ID, f.AD_Column_ID, + f.NAME, f.Description, f.Help, f.IsDisplayed, f.DisplayLogic, f.DisplayLength, + f.SeqNo, f.SortNo, f.IsSameLine, f.IsHeading, f.IsFieldOnly, f.IsReadOnly, + f.IsEncrypted AS IsEncryptedField, f.ObscureType, + c.ColumnName, c.ColumnSQL, c.FieldLength, c.VFormat, + COALESCE(f.DefaultValue, c.DefaultValue) AS DefaultValue, + c.IsKey, c.IsParent, + COALESCE(f.IsMandatory, c.IsMandatory) AS IsMandatory, + c.IsIdentifier, c.IsTranslated, COALESCE(f.AD_Reference_Value_ID, c.AD_Reference_Value_ID) AS AD_Reference_Value_ID, + c.Callout, COALESCE(f.AD_Reference_ID, c.AD_Reference_ID) AS AD_Reference_ID, + COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID) AS AD_Val_Rule_ID, c.AD_Process_ID, c.IsAlwaysUpdateable, + c.ReadOnlyLogic, c.MandatoryLogic, c.IsUpdateable, c.IsEncrypted AS IsEncryptedColumn, + c.IsSelectionColumn, + tbl.TableName, c.ValueMin, c.ValueMax, + fg.NAME AS FieldGroup, vr.Code AS ValidationCode, + f.Included_Tab_ID, fg.FieldGroupType, fg.IsCollapsedByDefault, + COALESCE(f.InfoFactoryClass, c.InfoFactoryClass) as InfoFactoryClass, + c.IsAutocomplete, COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy +FROM AD_FIELD f + INNER JOIN AD_TAB t ON (f.AD_Tab_ID = t.AD_Tab_ID) + LEFT OUTER JOIN AD_FIELDGROUP fg ON (f.AD_FieldGroup_ID = fg.AD_FieldGroup_ID) + LEFT OUTER JOIN AD_COLUMN c ON (f.AD_Column_ID = c.AD_Column_ID) + INNER JOIN AD_TABLE tbl ON (c.AD_Table_ID = tbl.AD_Table_ID) + INNER JOIN AD_REFERENCE r ON (c.AD_Reference_ID = r.AD_Reference_ID) + LEFT OUTER JOIN AD_VAL_RULE vr ON (vr.AD_Val_Rule_ID = COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID)) +WHERE f.IsActive = 'Y' + AND c.IsActive = 'Y'; + +CREATE OR REPLACE VIEW AD_FIELD_VT AS + SELECT trl.AD_LANGUAGE, t.AD_Window_ID, f.AD_Tab_ID, f.AD_Field_ID, tbl.AD_Table_ID, f.AD_Column_ID, + trl.NAME, trl.Description, trl.Help, f.IsDisplayed, f.DisplayLogic, f.DisplayLength, + f.SeqNo, f.SortNo, f.IsSameLine, f.IsHeading, f.IsFieldOnly, f.IsReadOnly, + f.IsEncrypted AS IsEncryptedField, f.ObscureType, + c.ColumnName, c.ColumnSQL, c.FieldLength, c.VFormat, + COALESCE(f.DefaultValue, c.DefaultValue) AS DefaultValue, + c.IsKey, c.IsParent, + COALESCE(f.IsMandatory, c.IsMandatory) AS IsMandatory, + c.IsIdentifier, c.IsTranslated, COALESCE(f.AD_Reference_Value_ID, c.AD_Reference_Value_ID) AS AD_Reference_Value_ID, + c.Callout, COALESCE(f.AD_Reference_ID, c.AD_Reference_ID) AS AD_Reference_ID, + COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID) as AD_Val_Rule_ID, c.AD_Process_ID, c.IsAlwaysUpdateable, + c.ReadOnlyLogic, c.MandatoryLogic, c.IsUpdateable, c.IsEncrypted AS IsEncryptedColumn, c.IsSelectionColumn, + tbl.TableName, c.ValueMin, c.ValueMax, + fgt.NAME AS FieldGroup, vr.Code AS ValidationCode, + f.Included_Tab_ID, fg.FieldGroupType, fg.IsCollapsedByDefault, + COALESCE(f.InfoFactoryClass, c.InfoFactoryClass) as InfoFactoryClass, + c.IsAutocomplete, COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy + FROM AD_FIELD f + INNER JOIN AD_FIELD_TRL trl ON (f.AD_Field_ID = trl.AD_Field_ID) + INNER JOIN AD_TAB t ON (f.AD_Tab_ID = t.AD_Tab_ID) + LEFT OUTER JOIN AD_FIELDGROUP fg ON (f.AD_FieldGroup_ID = fg.AD_FieldGroup_ID) + LEFT OUTER JOIN AD_FIELDGROUP_TRL fgt ON + (f.AD_FieldGroup_ID = fgt.AD_FieldGroup_ID AND trl.AD_LANGUAGE=fgt.AD_LANGUAGE) + LEFT OUTER JOIN AD_COLUMN c ON (f.AD_Column_ID = c.AD_Column_ID) + INNER JOIN AD_TABLE tbl ON (c.AD_Table_ID = tbl.AD_Table_ID) + INNER JOIN AD_REFERENCE r ON (c.AD_Reference_ID = r.AD_Reference_ID) + LEFT OUTER JOIN AD_VAL_RULE vr ON (vr.AD_Val_Rule_ID=COALESCE(f.AD_Val_Rule_ID, c.AD_Val_Rule_ID)) + WHERE f.IsActive = 'Y' + AND c.IsActive = 'Y'; + diff --git a/migration/360lts-release/postgresql/804_IDEMPIERE67_IsAllowCopy.sql b/migration/360lts-release/postgresql/804_IDEMPIERE67_IsAllowCopy.sql new file mode 100644 index 0000000000..0ad92ad9a1 --- /dev/null +++ b/migration/360lts-release/postgresql/804_IDEMPIERE67_IsAllowCopy.sql @@ -0,0 +1,194 @@ +-- Sep 9, 2011 10:58:03 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Element (AD_Client_ID,AD_Element_ID,AD_Org_ID,ColumnName,Created,CreatedBy,Description,EntityType,IsActive,Name,PrintName,Updated,UpdatedBy) VALUES (0,55297,0,'IsAllowCopy',TO_TIMESTAMP('2011-09-09 10:58:02','YYYY-MM-DD HH24:MI:SS'),100,'Determine if a column must be copied when pushing the button to copy record','D','Y','Allow Copy','Allow Copy',TO_TIMESTAMP('2011-09-09 10:58:02','YYYY-MM-DD HH24:MI:SS'),100) +; + +-- Sep 9, 2011 10:58:04 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Element_Trl (AD_Language,AD_Element_ID, Description,Help,Name,PO_Description,PO_Help,PO_Name,PO_PrintName,PrintName, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Element_ID, t.Description,t.Help,t.Name,t.PO_Description,t.PO_Help,t.PO_Name,t.PO_PrintName,t.PrintName, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Element t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Element_ID=55297 AND NOT EXISTS (SELECT * FROM AD_Element_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Element_ID=t.AD_Element_ID) +; + +-- Sep 9, 2011 10:58:35 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +UPDATE AD_Element_Trl SET IsTranslated='Y',Name='Permitir copia',PrintName='Permitir copia',Description='Determina si una columna debe ser copiada cuando se selecciona copiar registro',Updated=TO_TIMESTAMP('2011-09-09 10:58:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Element_ID=55297 AND AD_Language LIKE 'es_%' +; + +-- Sep 9, 2011 10:59:43 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Column (AD_Client_ID,AD_Column_ID,AD_Element_ID,AD_Org_ID,AD_Reference_ID,AD_Table_ID,ColumnName,Created,CreatedBy,DefaultValue,Description,EntityType,FieldLength,IsActive,IsAllowLogging,IsAlwaysUpdateable,IsAutocomplete,IsEncrypted,IsIdentifier,IsKey,IsMandatory,IsParent,IsSelectionColumn,IsSyncDatabase,IsTranslated,IsUpdateable,Name,SeqNo,Updated,UpdatedBy,Version) VALUES (0,62199,55297,0,20,101,'IsAllowCopy',TO_TIMESTAMP('2011-09-09 10:59:42','YYYY-MM-DD HH24:MI:SS'),100,'Y','Determine if a column must be copied when pushing the button to copy record','D',1,'Y','Y','N','N','N','N','N','Y','N','N','N','N','Y','Allow Copy',0,TO_TIMESTAMP('2011-09-09 10:59:42','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Sep 9, 2011 10:59:43 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=62199 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Sep 9, 2011 11:00:47 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +UPDATE AD_Field SET IsSameLine='N', SeqNo=390,Updated=TO_TIMESTAMP('2011-09-09 11:00:47','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5122 +; + +-- Sep 9, 2011 11:01:22 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Field (AD_Client_ID,AD_Column_ID,AD_Field_ID,AD_Org_ID,AD_Tab_ID,Created,CreatedBy,Description,DisplayLength,EntityType,IsActive,IsCentrallyMaintained,IsDisplayed,IsEncrypted,IsFieldOnly,IsHeading,IsReadOnly,IsSameLine,Name,SeqNo,SortNo,Updated,UpdatedBy) VALUES (0,62199,62467,0,101,TO_TIMESTAMP('2011-09-09 11:01:22','YYYY-MM-DD HH24:MI:SS'),100,'Determine if a column must be copied when pushing the button to copy record',10,'D','Y','Y','Y','N','N','N','N','Y','Allow Copy',380,0,TO_TIMESTAMP('2011-09-09 11:01:22','YYYY-MM-DD HH24:MI:SS'),100) +; + +-- Sep 9, 2011 11:01:22 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Help,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Help,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=62467 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Sep 9, 2011 11:01:35 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +UPDATE AD_Field SET DisplayLength=10,Updated=TO_TIMESTAMP('2011-09-09 11:01:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56317 +; + +-- Sep 9, 2011 11:19:47 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +ALTER TABLE AD_Column ADD COLUMN IsAllowCopy CHAR(1) DEFAULT 'Y' CHECK (IsAllowCopy IN ('Y','N')) NOT NULL +; + +-- Sep 11, 2011 11:49:44 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Column (AD_Client_ID,AD_Column_ID,AD_Element_ID,AD_Org_ID,AD_Reference_ID,AD_Reference_Value_ID,AD_Table_ID,ColumnName,Created,CreatedBy,Description,EntityType,FieldLength,IsActive,IsAllowLogging,IsAlwaysUpdateable,IsAutocomplete,IsEncrypted,IsIdentifier,IsKey,IsMandatory,IsParent,IsSelectionColumn,IsSyncDatabase,IsTranslated,IsUpdateable,Name,SeqNo,Updated,UpdatedBy,Version) VALUES (0,62200,55297,0,17,319,107,'IsAllowCopy',TO_TIMESTAMP('2011-09-11 11:49:42','YYYY-MM-DD HH24:MI:SS'),100,'Determine if a column must be copied when pushing the button to copy record','D',1,'Y','Y','N','N','N','N','N','N','N','N','N','N','Y','Allow Copy',0,TO_TIMESTAMP('2011-09-11 11:49:42','YYYY-MM-DD HH24:MI:SS'),100,0) +; + +-- Sep 11, 2011 11:49:44 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Column_Trl (AD_Language,AD_Column_ID, Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Column_ID, t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Column t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Column_ID=62200 AND NOT EXISTS (SELECT * FROM AD_Column_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Column_ID=t.AD_Column_ID) +; + +-- Sep 11, 2011 11:52:39 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +ALTER TABLE AD_Field ADD COLUMN IsAllowCopy CHAR(1) DEFAULT NULL +; + +-- Sep 11, 2011 11:51:12 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +UPDATE AD_Field SET SeqNo=290,Updated=TO_TIMESTAMP('2011-09-11 11:51:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=53280 +; + +-- Sep 11, 2011 11:51:25 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Field (AD_Client_ID,AD_Column_ID,AD_Field_ID,AD_Org_ID,AD_Tab_ID,Created,CreatedBy,Description,DisplayLength,EntityType,IsActive,IsCentrallyMaintained,IsDisplayed,IsEncrypted,IsFieldOnly,IsHeading,IsReadOnly,IsSameLine,Name,SeqNo,SortNo,Updated,UpdatedBy) VALUES (0,62200,62468,0,107,TO_TIMESTAMP('2011-09-11 11:51:24','YYYY-MM-DD HH24:MI:SS'),100,'Determine if a column must be copied when pushing the button to copy record',0,'D','Y','Y','Y','N','N','N','N','Y','Allow Copy',280,0,TO_TIMESTAMP('2011-09-11 11:51:24','YYYY-MM-DD HH24:MI:SS'),100) +; + +-- Sep 11, 2011 11:56:01 AM COT +-- IDEMPIERE-67 ProcessedOn should not be copied by MOrder.copyFrom +INSERT INTO AD_Field_Trl (AD_Language,AD_Field_ID, Description,Help,Name, IsTranslated,AD_Client_ID,AD_Org_ID,Created,Createdby,Updated,UpdatedBy) SELECT l.AD_Language,t.AD_Field_ID, t.Description,t.Help,t.Name, 'N',t.AD_Client_ID,t.AD_Org_ID,t.Created,t.Createdby,t.Updated,t.UpdatedBy FROM AD_Language l, AD_Field t WHERE l.IsActive='Y' AND l.IsSystemLanguage='Y' AND l.IsBaseLanguage='N' AND t.AD_Field_ID=62468 AND NOT EXISTS (SELECT * FROM AD_Field_Trl tt WHERE tt.AD_Language=l.AD_Language AND tt.AD_Field_ID=t.AD_Field_ID) +; + +-- Backward compatibility with old PO copyValues method +UPDATE AD_Column SET IsAllowCopy='N' WHERE ColumnName IN ( +'Created', +'Created', +'CreatedBy', +'Updated', +'UpdatedBy', +'IsActive', +'AD_Client_ID', +'AD_Org_ID', +'Processing' +); + +-- additional from GridTable (on AD_Field for better backward compatibility) +UPDATE AD_Field SET IsAllowCopy='N' WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE ColumnName IN ( +'EntityType', +'DocumentNo', +'Processed', +'IsSelfService', +'DocAction', +'DocStatus', +'Posted', +'IsReconciled', +'IsApproved', +'IsGenerated', +'GrandTotal', +'TotalLines', +'C_CashLine_ID', +'C_Payment_ID', +'IsPaid', +'IsAllocated', +'Line' +)); + +-- Ref_ from GridTable +UPDATE AD_Field SET IsAllowCopy='N' WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE ColumnName LIKE 'Ref_%'); + +-- C_DocType_ID if there is DocTypeTarget from GridTable +UPDATE AD_Field SET IsAllowCopy='N' WHERE AD_Column_ID IN + (SELECT AD_Column_ID FROM AD_Column cdt + WHERE cdt.ColumnName = 'C_DocType_ID' AND EXISTS + (SELECT 1 FROM AD_Column cdtt + WHERE cdtt.AD_Table_ID=cdt.AD_Table_ID AND cdtt.ColumnName='C_DocTypeTarget_ID')); + +-- new columns found to be problematic +UPDATE AD_Column SET IsAllowCopy='N' WHERE ColumnName IN ( +'ProcessedOn' +); + +-- new fields found to be problematic +UPDATE AD_Field SET IsAllowCopy='N' WHERE AD_Column_ID IN (SELECT AD_Column_ID FROM AD_Column WHERE ColumnName IN ( +'QtyDelivered', +'QtyInvoiced', +'QtyReserved' +)); + +-- key columns +UPDATE AD_Column SET IsAllowCopy='N' WHERE IsKey='Y'; + +-- virtual columns +UPDATE AD_Column SET IsAllowCopy='N' WHERE ColumnSQL IS NOT NULL; + +-- UUID columns +UPDATE AD_Column SET IsAllowCopy='N' WHERE columnname = (SELECT tablename||'_UU' FROM ad_table t where t.ad_table_id=ad_column.ad_table_id); + +DROP VIEW ad_field_v; + +CREATE OR REPLACE VIEW ad_field_v AS + SELECT t.ad_window_id, f.ad_tab_id, f.ad_field_id, tbl.ad_table_id, f.ad_column_id, + f.name, f.description, f.help, f.isdisplayed, f.displaylogic, f.displaylength, f.seqno, + f.sortno, f.issameline, f.isheading, f.isfieldonly, f.isreadonly, f.isencrypted AS isencryptedfield, + f.obscuretype, c.columnname, c.columnsql, c.fieldlength, c.vformat, + COALESCE(f.defaultvalue, c.defaultvalue) AS defaultvalue, c.iskey, c.isparent, + COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated, + COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.callout, + COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, + COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, + c.isalwaysupdateable, c.readonlylogic, c.mandatorylogic, c.isupdateable, + c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, + fg.name AS fieldgroup, vr.code AS validationcode, f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault, + COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, + COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy + FROM ad_field f + JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id + LEFT JOIN ad_fieldgroup fg ON f.ad_fieldgroup_id = fg.ad_fieldgroup_id + LEFT JOIN ad_column c ON f.ad_column_id = c.ad_column_id + JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id + JOIN ad_reference r ON c.ad_reference_id = r.ad_reference_id + LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) + WHERE f.isactive = 'Y'::bpchar AND c.isactive = 'Y'::bpchar; + +DROP VIEW ad_field_vt; + +CREATE OR REPLACE VIEW ad_field_vt AS + SELECT trl.ad_language, t.ad_window_id, f.ad_tab_id, f.ad_field_id, tbl.ad_table_id, f.ad_column_id, trl.name, trl.description, + trl.help, f.isdisplayed, f.displaylogic, f.displaylength, f.seqno, f.sortno, f.issameline, f.isheading, f.isfieldonly, f.isreadonly, + f.isencrypted AS isencryptedfield, f.obscuretype, c.columnname, c.columnsql, c.fieldlength, c.vformat, COALESCE(f.defaultvalue, c.defaultvalue) AS defaultvalue, + c.iskey, c.isparent, COALESCE(f.ismandatory, c.ismandatory) AS ismandatory, c.isidentifier, c.istranslated, + COALESCE(f.ad_reference_value_id, c.ad_reference_value_id) AS ad_reference_value_id, c.callout, COALESCE(f.ad_reference_id, c.ad_reference_id) AS ad_reference_id, + COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) AS ad_val_rule_id, c.ad_process_id, c.isalwaysupdateable, c.readonlylogic, c.mandatorylogic, c.isupdateable, + c.isencrypted AS isencryptedcolumn, c.isselectioncolumn, tbl.tablename, c.valuemin, c.valuemax, fgt.name AS fieldgroup, vr.code AS validationcode, + f.included_tab_id, fg.fieldgrouptype, fg.iscollapsedbydefault, COALESCE(f.infofactoryclass, c.infofactoryclass) AS infofactoryclass, c.isautocomplete, + COALESCE(f.IsAllowCopy, c.IsAllowCopy) AS IsAllowCopy + FROM ad_field f + JOIN ad_field_trl trl ON f.ad_field_id = trl.ad_field_id + JOIN ad_tab t ON f.ad_tab_id = t.ad_tab_id + LEFT JOIN ad_fieldgroup fg ON f.ad_fieldgroup_id = fg.ad_fieldgroup_id + LEFT JOIN ad_fieldgroup_trl fgt ON f.ad_fieldgroup_id = fgt.ad_fieldgroup_id AND trl.ad_language::text = fgt.ad_language::text + LEFT JOIN ad_column c ON f.ad_column_id = c.ad_column_id + JOIN ad_table tbl ON c.ad_table_id = tbl.ad_table_id + JOIN ad_reference r ON c.ad_reference_id = r.ad_reference_id + LEFT JOIN ad_val_rule vr ON vr.ad_val_rule_id = COALESCE(f.ad_val_rule_id, c.ad_val_rule_id) + WHERE f.isactive = 'Y'::bpchar AND c.isactive = 'Y'::bpchar; + diff --git a/org.adempiere.base/src/org/compiere/model/GridField.java b/org.adempiere.base/src/org/compiere/model/GridField.java index 11d702b255..1465a23e85 100644 --- a/org.adempiere.base/src/org/compiere/model/GridField.java +++ b/org.adempiere.base/src/org/compiere/model/GridField.java @@ -77,7 +77,7 @@ public class GridField /** * */ - private static final long serialVersionUID = -6007475135643071025L; + private static final long serialVersionUID = -2943313231011246615L; /** * Field Constructor. @@ -1027,6 +1027,13 @@ public class GridField public boolean isAutocomplete() { return m_vo.IsAutocomplete; } + /** + * Is Allow Copy + * @return true if allow copy + */ + public boolean isAllowCopy() { + return m_vo.IsAllowCopy; + } /** * Is Always Updateable * @return true if always updateable diff --git a/org.adempiere.base/src/org/compiere/model/GridFieldVO.java b/org.adempiere.base/src/org/compiere/model/GridFieldVO.java index 06394a4acb..6c4fc94f05 100644 --- a/org.adempiere.base/src/org/compiere/model/GridFieldVO.java +++ b/org.adempiere.base/src/org/compiere/model/GridFieldVO.java @@ -41,6 +41,10 @@ import org.compiere.util.Env; */ public class GridFieldVO implements Serializable { + /** + * + */ + private static final long serialVersionUID = 3576685994073893942L; /** * Return the SQL statement used for the MFieldVO.create @@ -178,6 +182,8 @@ public class GridFieldVO implements Serializable // Feature Request FR [ 2003044 ] else if (columnName.equalsIgnoreCase("IsAutocomplete")) vo.IsAutocomplete = "Y".equals(rs.getString(i)); + else if (columnName.equalsIgnoreCase("IsAllowCopy")) + vo.IsAllowCopy = "Y".equals(rs.getString(i)); } if (vo.Header == null) vo.Header = vo.ColumnName; @@ -345,8 +351,6 @@ public class GridFieldVO implements Serializable tabReadOnly = TabReadOnly; } // MFieldVO - static final long serialVersionUID = 4385061125114436797L; - /** Context */ public Properties ctx = null; /** Window No */ @@ -458,6 +462,8 @@ public class GridFieldVO implements Serializable public boolean IsCollapsedByDefault = false; /** Autocompletion for textfields - Feature Request FR [ 1757088 ] */ public boolean IsAutocomplete = false; + /* Allow copy - IDEMPIERE-67 - Carlos Ruiz - globalqss */ + public boolean IsAllowCopy = false; /** * Set Context including contained elements @@ -554,6 +560,7 @@ public class GridFieldVO implements Serializable clone.IsEncryptedColumn = IsEncryptedColumn; clone.IsSelectionColumn = IsSelectionColumn; clone.IsAutocomplete = IsAutocomplete; + clone.IsAllowCopy = IsAllowCopy; clone.SortNo = SortNo; clone.FieldLength = FieldLength; clone.VFormat = VFormat; diff --git a/org.adempiere.base/src/org/compiere/model/GridTable.java b/org.adempiere.base/src/org/compiere/model/GridTable.java index 5499ebdf5c..3c33d18ac4 100644 --- a/org.adempiere.base/src/org/compiere/model/GridTable.java +++ b/org.adempiere.base/src/org/compiere/model/GridTable.java @@ -2478,40 +2478,18 @@ public class GridTable extends AbstractTableModel // fill data if (copyCurrent) { - boolean hasDocTypeTargetField = (getField("C_DocTypeTarget_ID") != null); Object[] origData = getDataAtRow(currentRow); for (int i = 0; i < size; i++) { GridField field = (GridField)m_fields.get(i); - String columnName = field.getColumnName(); if (field.isVirtualColumn()) ; - else if (field.isKey() - || columnName.equals("AD_Client_ID") - // - || columnName.startsWith("Created") || columnName.startsWith("Updated") - || columnName.equals("EntityType") || columnName.equals("DocumentNo") - || columnName.equals("Processed") || columnName.equals("IsSelfService") - || columnName.equals("DocAction") || columnName.equals("DocStatus") - || columnName.equals("Posted") || columnName.equals("IsReconciled") - || columnName.equals("IsApproved") // BF [ 1943682 ] - || columnName.equals("IsGenerated") // BF [ 1943682 ] - || columnName.startsWith("Ref_") - // Order/Invoice - || columnName.equals("GrandTotal") || columnName.equals("TotalLines") - || columnName.equals("C_CashLine_ID") || columnName.equals("C_Payment_ID") - || columnName.equals("IsPaid") || columnName.equals("IsAllocated") - // Bug [ 1807947 ] - || ( columnName.equals("C_DocType_ID") && hasDocTypeTargetField ) - || ( columnName.equals("Line") ) - || ( columnName.equals("C_Location_ID")) - ) - { + else if (field.isAllowCopy()) + rowData[i] = origData[i]; + else { rowData[i] = field.getDefault(); field.setValue(rowData[i], m_inserting); } - else - rowData[i] = origData[i]; } } else // new diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_Column.java b/org.adempiere.base/src/org/compiere/model/I_AD_Column.java index 6992bc68c1..dca0298cfc 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_Column.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_Column.java @@ -31,7 +31,7 @@ public interface I_AD_Column public static final String Table_Name = "AD_Column"; /** AD_Table_ID=101 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); + public static final int Table_ID = 101; KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); @@ -62,6 +62,15 @@ public interface I_AD_Column */ public int getAD_Column_ID(); + /** Column name AD_Column_UU */ + public static final String COLUMNNAME_AD_Column_UU = "AD_Column_UU"; + + /** Set AD_Column_UU */ + public void setAD_Column_UU (String AD_Column_UU); + + /** Get AD_Column_UU */ + public String getAD_Column_UU(); + /** Column name AD_Element_ID */ public static final String COLUMNNAME_AD_Element_ID = "AD_Element_ID"; @@ -75,7 +84,7 @@ public interface I_AD_Column */ public int getAD_Element_ID(); - public I_AD_Element getAD_Element() throws RuntimeException; + public org.compiere.model.I_AD_Element getAD_Element() throws RuntimeException; /** Column name AD_Org_ID */ public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID"; @@ -103,7 +112,7 @@ public interface I_AD_Column */ public int getAD_Process_ID(); - public I_AD_Process getAD_Process() throws RuntimeException; + public org.compiere.model.I_AD_Process getAD_Process() throws RuntimeException; /** Column name AD_Reference_ID */ public static final String COLUMNNAME_AD_Reference_ID = "AD_Reference_ID"; @@ -118,7 +127,7 @@ public interface I_AD_Column */ public int getAD_Reference_ID(); - public I_AD_Reference getAD_Reference() throws RuntimeException; + public org.compiere.model.I_AD_Reference getAD_Reference() throws RuntimeException; /** Column name AD_Reference_Value_ID */ public static final String COLUMNNAME_AD_Reference_Value_ID = "AD_Reference_Value_ID"; @@ -133,7 +142,7 @@ public interface I_AD_Column */ public int getAD_Reference_Value_ID(); - public I_AD_Reference getAD_Reference_Value() throws RuntimeException; + public org.compiere.model.I_AD_Reference getAD_Reference_Value() throws RuntimeException; /** Column name AD_Table_ID */ public static final String COLUMNNAME_AD_Table_ID = "AD_Table_ID"; @@ -148,7 +157,7 @@ public interface I_AD_Column */ public int getAD_Table_ID(); - public I_AD_Table getAD_Table() throws RuntimeException; + public org.compiere.model.I_AD_Table getAD_Table() throws RuntimeException; /** Column name AD_Val_Rule_ID */ public static final String COLUMNNAME_AD_Val_Rule_ID = "AD_Val_Rule_ID"; @@ -163,7 +172,7 @@ public interface I_AD_Column */ public int getAD_Val_Rule_ID(); - public I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException; + public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException; /** Column name Callout */ public static final String COLUMNNAME_Callout = "Callout"; @@ -328,6 +337,19 @@ public interface I_AD_Column */ public boolean isActive(); + /** Column name IsAllowCopy */ + public static final String COLUMNNAME_IsAllowCopy = "IsAllowCopy"; + + /** Set Allow Copy. + * Determine if a column must be copied when pushing the button to copy record + */ + public void setIsAllowCopy (boolean IsAllowCopy); + + /** Get Allow Copy. + * Determine if a column must be copied when pushing the button to copy record + */ + public boolean isAllowCopy(); + /** Column name IsAllowLogging */ public static final String COLUMNNAME_IsAllowLogging = "IsAllowLogging"; diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_Field.java b/org.adempiere.base/src/org/compiere/model/I_AD_Field.java index 92ee6771df..ec9a2c73da 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_Field.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_Field.java @@ -31,7 +31,7 @@ public interface I_AD_Field public static final String Table_Name = "AD_Field"; /** AD_Table_ID=107 */ - public static final int Table_ID = MTable.getTable_ID(Table_Name); + public static final int Table_ID = 107; KeyNamePair Model = new KeyNamePair(Table_ID, Table_Name); @@ -62,7 +62,7 @@ public interface I_AD_Field */ public int getAD_Column_ID(); - public I_AD_Column getAD_Column() throws RuntimeException; + public org.compiere.model.I_AD_Column getAD_Column() throws RuntimeException; /** Column name AD_FieldGroup_ID */ public static final String COLUMNNAME_AD_FieldGroup_ID = "AD_FieldGroup_ID"; @@ -77,7 +77,7 @@ public interface I_AD_Field */ public int getAD_FieldGroup_ID(); - public I_AD_FieldGroup getAD_FieldGroup() throws RuntimeException; + public org.compiere.model.I_AD_FieldGroup getAD_FieldGroup() throws RuntimeException; /** Column name AD_Field_ID */ public static final String COLUMNNAME_AD_Field_ID = "AD_Field_ID"; @@ -92,6 +92,15 @@ public interface I_AD_Field */ public int getAD_Field_ID(); + /** Column name AD_Field_UU */ + public static final String COLUMNNAME_AD_Field_UU = "AD_Field_UU"; + + /** Set AD_Field_UU */ + public void setAD_Field_UU (String AD_Field_UU); + + /** Get AD_Field_UU */ + public String getAD_Field_UU(); + /** Column name AD_Org_ID */ public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID"; @@ -118,7 +127,7 @@ public interface I_AD_Field */ public int getAD_Reference_ID(); - public I_AD_Reference getAD_Reference() throws RuntimeException; + public org.compiere.model.I_AD_Reference getAD_Reference() throws RuntimeException; /** Column name AD_Reference_Value_ID */ public static final String COLUMNNAME_AD_Reference_Value_ID = "AD_Reference_Value_ID"; @@ -133,7 +142,7 @@ public interface I_AD_Field */ public int getAD_Reference_Value_ID(); - public I_AD_Reference getAD_Reference_Value() throws RuntimeException; + public org.compiere.model.I_AD_Reference getAD_Reference_Value() throws RuntimeException; /** Column name AD_Tab_ID */ public static final String COLUMNNAME_AD_Tab_ID = "AD_Tab_ID"; @@ -148,7 +157,7 @@ public interface I_AD_Field */ public int getAD_Tab_ID(); - public I_AD_Tab getAD_Tab() throws RuntimeException; + public org.compiere.model.I_AD_Tab getAD_Tab() throws RuntimeException; /** Column name AD_Val_Rule_ID */ public static final String COLUMNNAME_AD_Val_Rule_ID = "AD_Val_Rule_ID"; @@ -163,7 +172,7 @@ public interface I_AD_Field */ public int getAD_Val_Rule_ID(); - public I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException; + public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException; /** Column name Created */ public static final String COLUMNNAME_Created = "Created"; @@ -276,7 +285,7 @@ public interface I_AD_Field */ public int getIncluded_Tab_ID(); - public I_AD_Tab getIncluded_Tab() throws RuntimeException; + public org.compiere.model.I_AD_Tab getIncluded_Tab() throws RuntimeException; /** Column name InfoFactoryClass */ public static final String COLUMNNAME_InfoFactoryClass = "InfoFactoryClass"; @@ -304,6 +313,19 @@ public interface I_AD_Field */ public boolean isActive(); + /** Column name IsAllowCopy */ + public static final String COLUMNNAME_IsAllowCopy = "IsAllowCopy"; + + /** Set Allow Copy. + * Determine if a column must be copied when pushing the button to copy record + */ + public void setIsAllowCopy (String IsAllowCopy); + + /** Get Allow Copy. + * Determine if a column must be copied when pushing the button to copy record + */ + public String getIsAllowCopy(); + /** Column name IsCentrallyMaintained */ public static final String COLUMNNAME_IsCentrallyMaintained = "IsCentrallyMaintained"; diff --git a/org.adempiere.base/src/org/compiere/model/MColumn.java b/org.adempiere.base/src/org/compiere/model/MColumn.java index 61502b192e..d2d5be642d 100644 --- a/org.adempiere.base/src/org/compiere/model/MColumn.java +++ b/org.adempiere.base/src/org/compiere/model/MColumn.java @@ -145,8 +145,10 @@ public class MColumn extends X_AD_Column if (columnName.equals("AD_Client_ID") || columnName.equals("AD_Org_ID") || columnName.equals("IsActive") - || columnName.startsWith("Created") - || columnName.startsWith("Updated") ) + || columnName.equals("Created") + || columnName.equals("CreatedBy") + || columnName.equals("Updated") + || columnName.equals("UpdatedBy") ) return true; return false; @@ -270,6 +272,18 @@ public class MColumn extends X_AD_Column setDescription (element.getDescription()); setHelp (element.getHelp()); } + + // Validations for IsAllowCopy - some columns must never be set as allowed copying + String colname = getColumnName(); + if (isAllowCopy()) { + if ( isKey() + || getColumnSQL() != null + || colname.equals(getAD_Table().getTableName()+"_UU") + || isStandardColumn() + ) + setIsAllowCopy(false); + } + return true; } // beforeSave diff --git a/org.adempiere.base/src/org/compiere/model/MField.java b/org.adempiere.base/src/org/compiere/model/MField.java index aa21132dac..a2d1406d75 100644 --- a/org.adempiere.base/src/org/compiere/model/MField.java +++ b/org.adempiere.base/src/org/compiere/model/MField.java @@ -128,6 +128,16 @@ public class MField extends X_AD_Field setDescription (element.getDescription ()); setHelp (element.getHelp()); } + + if (getIsAllowCopy() != null) { + MColumn column = (MColumn) getAD_Column(); + if ( column.isKey() + || column.getColumnSQL() != null + || column.isStandardColumn() + ) + setIsAllowCopy(null); + } + return true; } // beforeSave diff --git a/org.adempiere.base/src/org/compiere/model/PO.java b/org.adempiere.base/src/org/compiere/model/PO.java index c0287aff19..29fa591284 100644 --- a/org.adempiere.base/src/org/compiere/model/PO.java +++ b/org.adempiere.base/src/org/compiere/model/PO.java @@ -1225,35 +1225,20 @@ public abstract class PO public static void copyValues (PO from, PO to) { s_log.fine("From ID=" + from.get_ID() + " - To ID=" + to.get_ID()); - String uuidColumn = from.get_TableName()+"_UU"; // Different Classes if (from.getClass() != to.getClass()) { for (int i1 = 0; i1 < from.m_oldValues.length; i1++) { - if (from.p_info.isVirtualColumn(i1) - || from.p_info.isKey(i1)) // KeyColumn + if (! from.p_info.isAllowCopy(i1)) continue; String colName = from.p_info.getColumnName(i1); - // Ignore Standard Values - if (colName.startsWith("Created") - || colName.startsWith("Updated") - || colName.equals("IsActive") - || colName.equals("AD_Client_ID") - || colName.equals("AD_Org_ID") - || colName.equals("Processing") - || colName.equals(uuidColumn) - ) - ; // ignore - else + for (int i2 = 0; i2 < to.m_oldValues.length; i2++) { - for (int i2 = 0; i2 < to.m_oldValues.length; i2++) + if (to.p_info.getColumnName(i2).equals(colName)) { - if (to.p_info.getColumnName(i2).equals(colName)) - { - to.m_newValues[i2] = from.m_oldValues[i1]; - break; - } + to.m_newValues[i2] = from.m_oldValues[i1]; + break; } } } // from loop @@ -1262,22 +1247,9 @@ public abstract class PO { for (int i = 0; i < from.m_oldValues.length; i++) { - if (from.p_info.isVirtualColumn(i) - || from.p_info.isKey(i)) // KeyColumn + if (! from.p_info.isAllowCopy(i)) continue; - String colName = from.p_info.getColumnName(i); - // Ignore Standard Values - if (colName.startsWith("Created") - || colName.startsWith("Updated") - || colName.equals("IsActive") - || colName.equals("AD_Client_ID") - || colName.equals("AD_Org_ID") - || colName.equals("Processing") - || colName.equals(uuidColumn) - ) - ; // ignore - else - to.m_newValues[i] = from.m_oldValues[i]; + to.m_newValues[i] = from.m_oldValues[i]; } } // same class } // copy diff --git a/org.adempiere.base/src/org/compiere/model/POInfo.java b/org.adempiere.base/src/org/compiere/model/POInfo.java index 89afc59d36..d44f411ae8 100644 --- a/org.adempiere.base/src/org/compiere/model/POInfo.java +++ b/org.adempiere.base/src/org/compiere/model/POInfo.java @@ -43,9 +43,12 @@ import org.compiere.util.Env; */ public class POInfo implements Serializable { - /** Used by Remote FinReport */ - static final long serialVersionUID = -5976719579744948419L; + /** + * + */ + private static final long serialVersionUID = 6383466650370705655L; + /** Used by Remote FinReport */ /** * POInfo Factory * @param ctx context @@ -141,7 +144,7 @@ public class POInfo implements Serializable + "c.AD_Reference_Value_ID, vr.Code, " // 12..13 + "c.FieldLength, c.ValueMin, c.ValueMax, c.IsTranslated, " // 14..17 + "t.AccessLevel, c.ColumnSQL, c.IsEncrypted, " // 18..20 - + "c.IsAllowLogging,t.IsChangeLog "); // 21 + + "c.IsAllowLogging,c.IsAllowCopy,t.IsChangeLog "); // 21..23 sql.append("FROM AD_Table t" + " INNER JOIN AD_Column c ON (t.AD_Table_ID=c.AD_Table_ID)" + " LEFT OUTER JOIN AD_Val_Rule vr ON (c.AD_Val_Rule_ID=vr.AD_Val_Rule_ID)" @@ -189,7 +192,8 @@ public class POInfo implements Serializable String ColumnSQL = rs.getString(19); boolean IsEncrypted = "Y".equals(rs.getString(20)); boolean IsAllowLogging = "Y".equals(rs.getString(21)); - m_IsChangeLog="Y".equals(rs.getString(22)); + boolean IsAllowCopy = "Y".equals(rs.getString(22)); + m_IsChangeLog="Y".equals(rs.getString(23)); POInfoColumn col = new POInfoColumn ( AD_Column_ID, ColumnName, ColumnSQL, AD_Reference_ID, @@ -199,7 +203,7 @@ public class POInfo implements Serializable AD_Reference_Value_ID, ValidationCode, FieldLength, ValueMin, ValueMax, IsTranslated, IsEncrypted, - IsAllowLogging); + IsAllowLogging, IsAllowCopy); list.add(col); } } @@ -599,6 +603,19 @@ public class POInfo implements Serializable return m_columns[index].IsAllowLogging; } // isAllowLogging + /** + * Is allowed copying this column + * + * @param index + * index + * @return true if column is allowed to be copied + */ + public boolean isAllowCopy(int index) { + if (index < 0 || index >= m_columns.length) + return false; + return m_columns[index].IsAllowCopy; + } // isAllowCopy + /** * Get Column FieldLength * @param index index diff --git a/org.adempiere.base/src/org/compiere/model/POInfoColumn.java b/org.adempiere.base/src/org/compiere/model/POInfoColumn.java index 814f277f22..921f8adcd4 100644 --- a/org.adempiere.base/src/org/compiere/model/POInfoColumn.java +++ b/org.adempiere.base/src/org/compiere/model/POInfoColumn.java @@ -30,9 +30,12 @@ import org.compiere.util.CLogger; */ public class POInfoColumn implements Serializable { + /** + * + */ + private static final long serialVersionUID = 3882249785085847367L; + /** Used by Remote FinReport */ - static final long serialVersionUID = -3983585608504631958L; - /** * Constructor * @param ad_Column_ID Column ID @@ -54,6 +57,7 @@ public class POInfoColumn implements Serializable * @param isTranslated translated * @param isEncrypted encrypted * @param isAllowLogging allow logging + * @param isAllowCopy allow copy */ public POInfoColumn (int ad_Column_ID, String columnName, String columnSQL, int displayType, boolean isMandatory, boolean isUpdateable, String defaultLogic, @@ -61,7 +65,7 @@ public class POInfoColumn implements Serializable boolean isKey, boolean isParent, int ad_Reference_Value_ID, String validationCode, int fieldLength, String valueMin, String valueMax, - boolean isTranslated, boolean isEncrypted, boolean isAllowLogging) + boolean isTranslated, boolean isEncrypted, boolean isAllowLogging, boolean isAllowCopy) { AD_Column_ID = ad_Column_ID; ColumnName = columnName; @@ -120,6 +124,7 @@ public class POInfoColumn implements Serializable IsTranslated = isTranslated; IsEncrypted = isEncrypted; IsAllowLogging = isAllowLogging; + IsAllowCopy = isAllowCopy; } // Column /** Column ID */ @@ -152,6 +157,8 @@ public class POInfoColumn implements Serializable public boolean IsEncrypted; /** Allow Logging */ public boolean IsAllowLogging; + /** Allow Copy */ + public boolean IsAllowCopy; /** Reference Value */ public int AD_Reference_Value_ID; diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_Column.java b/org.adempiere.base/src/org/compiere/model/X_AD_Column.java index ced66c0a77..84d368c5e0 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_Column.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_Column.java @@ -32,7 +32,7 @@ public class X_AD_Column extends PO implements I_AD_Column, I_Persistent /** * */ - private static final long serialVersionUID = 20100614L; + private static final long serialVersionUID = 20110918L; /** Standard Constructor */ public X_AD_Column (Properties ctx, int AD_Column_ID, String trxName) @@ -47,6 +47,8 @@ public class X_AD_Column extends PO implements I_AD_Column, I_Persistent setColumnName (null); setEntityType (null); // U + setIsAllowCopy (true); +// Y setIsAlwaysUpdateable (false); // N setIsAutocomplete (false); @@ -117,9 +119,23 @@ public class X_AD_Column extends PO implements I_AD_Column, I_Persistent return ii.intValue(); } - public I_AD_Element getAD_Element() throws RuntimeException + /** Set AD_Column_UU. + @param AD_Column_UU AD_Column_UU */ + public void setAD_Column_UU (String AD_Column_UU) + { + set_Value (COLUMNNAME_AD_Column_UU, AD_Column_UU); + } + + /** Get AD_Column_UU. + @return AD_Column_UU */ + public String getAD_Column_UU () + { + return (String)get_Value(COLUMNNAME_AD_Column_UU); + } + + public org.compiere.model.I_AD_Element getAD_Element() throws RuntimeException { - return (I_AD_Element)MTable.get(getCtx(), I_AD_Element.Table_Name) + return (org.compiere.model.I_AD_Element)MTable.get(getCtx(), org.compiere.model.I_AD_Element.Table_Name) .getPO(getAD_Element_ID(), get_TrxName()); } /** Set System Element. @@ -145,9 +161,9 @@ public class X_AD_Column extends PO implements I_AD_Column, I_Persistent return ii.intValue(); } - public I_AD_Process getAD_Process() throws RuntimeException + public org.compiere.model.I_AD_Process getAD_Process() throws RuntimeException { - return (I_AD_Process)MTable.get(getCtx(), I_AD_Process.Table_Name) + return (org.compiere.model.I_AD_Process)MTable.get(getCtx(), org.compiere.model.I_AD_Process.Table_Name) .getPO(getAD_Process_ID(), get_TrxName()); } /** Set Process. @@ -173,9 +189,9 @@ public class X_AD_Column extends PO implements I_AD_Column, I_Persistent return ii.intValue(); } - public I_AD_Reference getAD_Reference() throws RuntimeException + public org.compiere.model.I_AD_Reference getAD_Reference() throws RuntimeException { - return (I_AD_Reference)MTable.get(getCtx(), I_AD_Reference.Table_Name) + return (org.compiere.model.I_AD_Reference)MTable.get(getCtx(), org.compiere.model.I_AD_Reference.Table_Name) .getPO(getAD_Reference_ID(), get_TrxName()); } /** Set Reference. @@ -201,9 +217,9 @@ public class X_AD_Column extends PO implements I_AD_Column, I_Persistent return ii.intValue(); } - public I_AD_Reference getAD_Reference_Value() throws RuntimeException + public org.compiere.model.I_AD_Reference getAD_Reference_Value() throws RuntimeException { - return (I_AD_Reference)MTable.get(getCtx(), I_AD_Reference.Table_Name) + return (org.compiere.model.I_AD_Reference)MTable.get(getCtx(), org.compiere.model.I_AD_Reference.Table_Name) .getPO(getAD_Reference_Value_ID(), get_TrxName()); } /** Set Reference Key. @@ -229,9 +245,9 @@ public class X_AD_Column extends PO implements I_AD_Column, I_Persistent return ii.intValue(); } - public I_AD_Table getAD_Table() throws RuntimeException + public org.compiere.model.I_AD_Table getAD_Table() throws RuntimeException { - return (I_AD_Table)MTable.get(getCtx(), I_AD_Table.Table_Name) + return (org.compiere.model.I_AD_Table)MTable.get(getCtx(), org.compiere.model.I_AD_Table.Table_Name) .getPO(getAD_Table_ID(), get_TrxName()); } /** Set Table. @@ -257,9 +273,9 @@ public class X_AD_Column extends PO implements I_AD_Column, I_Persistent return ii.intValue(); } - public I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException + public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException { - return (I_AD_Val_Rule)MTable.get(getCtx(), I_AD_Val_Rule.Table_Name) + return (org.compiere.model.I_AD_Val_Rule)MTable.get(getCtx(), org.compiere.model.I_AD_Val_Rule.Table_Name) .getPO(getAD_Val_Rule_ID(), get_TrxName()); } /** Set Dynamic Validation. @@ -469,6 +485,30 @@ public class X_AD_Column extends PO implements I_AD_Column, I_Persistent return (String)get_Value(COLUMNNAME_InfoFactoryClass); } + /** Set Allow Copy. + @param IsAllowCopy + Determine if a column must be copied when pushing the button to copy record + */ + public void setIsAllowCopy (boolean IsAllowCopy) + { + set_Value (COLUMNNAME_IsAllowCopy, Boolean.valueOf(IsAllowCopy)); + } + + /** Get Allow Copy. + @return Determine if a column must be copied when pushing the button to copy record + */ + public boolean isAllowCopy () + { + Object oo = get_Value(COLUMNNAME_IsAllowCopy); + if (oo != null) + { + if (oo instanceof Boolean) + return ((Boolean)oo).booleanValue(); + return "Y".equals(oo); + } + return false; + } + /** Set Allow Logging. @param IsAllowLogging Determine if a column must be recorded into the change log diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_Field.java b/org.adempiere.base/src/org/compiere/model/X_AD_Field.java index 524144902b..56c17c4a33 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_Field.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_Field.java @@ -32,7 +32,7 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent /** * */ - private static final long serialVersionUID = 20100614L; + private static final long serialVersionUID = 20110918L; /** Standard Constructor */ public X_AD_Field (Properties ctx, int AD_Field_ID, String trxName) @@ -86,9 +86,9 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent return sb.toString(); } - public I_AD_Column getAD_Column() throws RuntimeException + public org.compiere.model.I_AD_Column getAD_Column() throws RuntimeException { - return (I_AD_Column)MTable.get(getCtx(), I_AD_Column.Table_Name) + return (org.compiere.model.I_AD_Column)MTable.get(getCtx(), org.compiere.model.I_AD_Column.Table_Name) .getPO(getAD_Column_ID(), get_TrxName()); } /** Set Column. @@ -114,9 +114,9 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent return ii.intValue(); } - public I_AD_FieldGroup getAD_FieldGroup() throws RuntimeException + public org.compiere.model.I_AD_FieldGroup getAD_FieldGroup() throws RuntimeException { - return (I_AD_FieldGroup)MTable.get(getCtx(), I_AD_FieldGroup.Table_Name) + return (org.compiere.model.I_AD_FieldGroup)MTable.get(getCtx(), org.compiere.model.I_AD_FieldGroup.Table_Name) .getPO(getAD_FieldGroup_ID(), get_TrxName()); } /** Set Field Group. @@ -165,9 +165,23 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent return ii.intValue(); } - public I_AD_Reference getAD_Reference() throws RuntimeException + /** Set AD_Field_UU. + @param AD_Field_UU AD_Field_UU */ + public void setAD_Field_UU (String AD_Field_UU) + { + set_Value (COLUMNNAME_AD_Field_UU, AD_Field_UU); + } + + /** Get AD_Field_UU. + @return AD_Field_UU */ + public String getAD_Field_UU () + { + return (String)get_Value(COLUMNNAME_AD_Field_UU); + } + + public org.compiere.model.I_AD_Reference getAD_Reference() throws RuntimeException { - return (I_AD_Reference)MTable.get(getCtx(), I_AD_Reference.Table_Name) + return (org.compiere.model.I_AD_Reference)MTable.get(getCtx(), org.compiere.model.I_AD_Reference.Table_Name) .getPO(getAD_Reference_ID(), get_TrxName()); } /** Set Reference. @@ -193,9 +207,9 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent return ii.intValue(); } - public I_AD_Reference getAD_Reference_Value() throws RuntimeException + public org.compiere.model.I_AD_Reference getAD_Reference_Value() throws RuntimeException { - return (I_AD_Reference)MTable.get(getCtx(), I_AD_Reference.Table_Name) + return (org.compiere.model.I_AD_Reference)MTable.get(getCtx(), org.compiere.model.I_AD_Reference.Table_Name) .getPO(getAD_Reference_Value_ID(), get_TrxName()); } /** Set Reference Key. @@ -221,9 +235,9 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent return ii.intValue(); } - public I_AD_Tab getAD_Tab() throws RuntimeException + public org.compiere.model.I_AD_Tab getAD_Tab() throws RuntimeException { - return (I_AD_Tab)MTable.get(getCtx(), I_AD_Tab.Table_Name) + return (org.compiere.model.I_AD_Tab)MTable.get(getCtx(), org.compiere.model.I_AD_Tab.Table_Name) .getPO(getAD_Tab_ID(), get_TrxName()); } /** Set Tab. @@ -249,9 +263,9 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent return ii.intValue(); } - public I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException + public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException { - return (I_AD_Val_Rule)MTable.get(getCtx(), I_AD_Val_Rule.Table_Name) + return (org.compiere.model.I_AD_Val_Rule)MTable.get(getCtx(), org.compiere.model.I_AD_Val_Rule.Table_Name) .getPO(getAD_Val_Rule_ID(), get_TrxName()); } /** Set Dynamic Validation. @@ -385,9 +399,9 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent return (String)get_Value(COLUMNNAME_Help); } - public I_AD_Tab getIncluded_Tab() throws RuntimeException + public org.compiere.model.I_AD_Tab getIncluded_Tab() throws RuntimeException { - return (I_AD_Tab)MTable.get(getCtx(), I_AD_Tab.Table_Name) + return (org.compiere.model.I_AD_Tab)MTable.get(getCtx(), org.compiere.model.I_AD_Tab.Table_Name) .getPO(getIncluded_Tab_ID(), get_TrxName()); } /** Set Included Tab. @@ -430,6 +444,30 @@ public class X_AD_Field extends PO implements I_AD_Field, I_Persistent return (String)get_Value(COLUMNNAME_InfoFactoryClass); } + /** IsAllowCopy AD_Reference_ID=319 */ + public static final int ISALLOWCOPY_AD_Reference_ID=319; + /** Yes = Y */ + public static final String ISALLOWCOPY_Yes = "Y"; + /** No = N */ + public static final String ISALLOWCOPY_No = "N"; + /** Set Allow Copy. + @param IsAllowCopy + Determine if a column must be copied when pushing the button to copy record + */ + public void setIsAllowCopy (String IsAllowCopy) + { + + set_Value (COLUMNNAME_IsAllowCopy, IsAllowCopy); + } + + /** Get Allow Copy. + @return Determine if a column must be copied when pushing the button to copy record + */ + public String getIsAllowCopy () + { + return (String)get_Value(COLUMNNAME_IsAllowCopy); + } + /** Set Centrally maintained. @param IsCentrallyMaintained Information maintained in System Element table