diff --git a/migration/i1.0a-release/oracle/201301040851_IDEMPIERE-325.sql b/migration/i1.0a-release/oracle/201301040851_IDEMPIERE-325.sql new file mode 100644 index 0000000000..b4b644d01e --- /dev/null +++ b/migration/i1.0a-release/oracle/201301040851_IDEMPIERE-325.sql @@ -0,0 +1,660 @@ +-- Dec 27, 2012 4:09:41 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET IsActive='N',Updated=TO_DATE('2012-12-27 16:09:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=54358 +; + +-- Dec 27, 2012 4:10:13 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET IsActive='N',Updated=TO_DATE('2012-12-27 16:10:13','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=54359 +; + +-- Dec 27, 2012 4:11:59 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET IsDisplayedGrid='N', IsDisplayed='N', IsActive='N',Updated=TO_DATE('2012-12-27 16:11:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200275 +; + +-- Dec 27, 2012 4:14:32 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET IsDisplayedGrid='N', IsDisplayed='N', IsActive='N',Updated=TO_DATE('2012-12-27 16:14:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54403 +; + +-- Dec 28, 2012 7:46:43 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Val_Rule (Code,AD_Val_Rule_ID,Updated,UpdatedBy,EntityType,Name,AD_Val_Rule_UU,Type,CreatedBy,Created,AD_Client_ID,IsActive,AD_Org_ID) VALUES ('AD_InfoWindow.AD_Table_ID=@AD_Table_ID@',200019,TO_DATE('2012-12-28 07:46:39','YYYY-MM-DD HH24:MI:SS'),100,'U','AD_InfoWindow of Table','e9d81675-ce1f-4d7c-9354-9b8d5a23ced9','S',100,TO_DATE('2012-12-28 07:46:39','YYYY-MM-DD HH24:MI:SS'),0,'Y',0) +; + +-- Dec 28, 2012 7:47:24 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,AD_Val_Rule_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,103,'U','N','N','N',0,'N',10,'N',19,200019,'N',3068,TO_DATE('2012-12-28 07:47:23','YYYY-MM-DD HH24:MI:SS'),'N','Y','069cc811-f05e-4d64-9d22-322f6a15a7b5','Y','AD_InfoWindow_ID','Info and search/select Window','The Info window is used to search and select records as well as display information relevant to the selection.','Info Window','Y','Y',100,TO_DATE('2012-12-28 07:47:23','YYYY-MM-DD HH24:MI:SS'),0,100,0,208343,'N',0) +; + +-- Dec 28, 2012 7:47:34 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_Ref_Table ADD AD_InfoWindow_ID NUMBER(10) DEFAULT NULL +; + +-- Dec 28, 2012 8:15:11 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,895,'U','N','N','N',0,'N',2000,'N',14,'N',630,TO_DATE('2012-12-28 08:15:10','YYYY-MM-DD HH24:MI:SS'),'N','Y','23771259-ec7c-4111-b0d1-64d90bfe3242','Y','WhereClause','Fully qualified SQL WHERE clause','The Where Clause indicates the SQL WHERE clause to use for record selection. The WHERE clause is added to the query. Fully qualified means "tablename.columnname".','Sql WHERE','Y','Y',100,TO_DATE('2012-12-28 08:15:10','YYYY-MM-DD HH24:MI:SS'),0,100,0,208344,'N',0) +; + +-- Dec 28, 2012 8:16:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoWindow ADD WhereClause NVARCHAR2(2000) DEFAULT NULL +; + +-- Dec 28, 2012 8:23:46 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,AD_Reference_Value_ID,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,AD_Val_Rule_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,897,'D',53330,'N','N','N',0,'N',10,'N',18,115,'N',121,TO_DATE('2012-12-28 08:23:45','YYYY-MM-DD HH24:MI:SS'),'N','Y','65aee3e9-d2d5-4993-8815-2166a5942bb2','Y','AD_Reference_Value_ID','Required to specify, if data type is Table or List','The Reference Value indicates where the reference values are stored. It must be specified if the data type is Table or List. ','Reference Key','Y','Y',100,TO_DATE('2012-12-28 08:23:45','YYYY-MM-DD HH24:MI:SS'),0,100,0,208346,'N',0) +; + +-- Dec 28, 2012 8:24:35 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET AD_Reference_Value_ID=4,Updated=TO_DATE('2012-12-28 08:24:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=208346 +; + +-- Dec 28, 2012 8:24:39 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoColumn ADD AD_Reference_Value_ID NUMBER(10) DEFAULT NULL +; + +-- Dec 28, 2012 8:25:27 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET EntityType='D',Updated=TO_DATE('2012-12-28 08:25:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=208345 +; + +-- Dec 28, 2012 8:25:36 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET EntityType='D',Updated=TO_DATE('2012-12-28 08:25:36','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=208344 +; + +-- Dec 28, 2012 8:32:22 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,897,'D','N','N','N',0,'N',10,'N',19,'N',139,TO_DATE('2012-12-28 08:32:20','YYYY-MM-DD HH24:MI:SS'),'N','Y','49a4d4cd-7fa4-437e-80c1-1f05513d5b23','Y','AD_Val_Rule_ID','Dynamic Validation Rule','These rules define how an entry is determined to valid. You can use variables for dynamic (context sensitive) validation.','Dynamic Validation','Y','Y',100,TO_DATE('2012-12-28 08:32:20','YYYY-MM-DD HH24:MI:SS'),0,100,0,208347,'N',0) +; + +-- Dec 28, 2012 8:32:29 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoColumn ADD AD_Val_Rule_ID NUMBER(10) DEFAULT NULL +; + +-- Dec 28, 2012 8:34:33 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,DefaultValue,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,897,'D','Y','N','N',0,'N',1,'N',20,'N',362,TO_DATE('2012-12-28 08:34:32','YYYY-MM-DD HH24:MI:SS'),'N','Y','ffddca95-c0ec-430d-be98-035ac95d35df','Y','Y','IsCentrallyMaintained','Information maintained in System Element table','The Centrally Maintained checkbox indicates if the Name, Description and Help maintained in ''System Element'' table or ''Window'' table.','Centrally maintained','Y','Y',100,TO_DATE('2012-12-28 08:34:32','YYYY-MM-DD HH24:MI:SS'),0,100,0,208348,'N',0) +; + +-- Dec 28, 2012 8:34:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoColumn ADD IsCentrallyMaintained CHAR(1) DEFAULT 'Y' CHECK (IsCentrallyMaintained IN ('Y','N')) NOT NULL +; + +-- Dec 28, 2012 8:36:34 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,897,'D','N','N','N',0,'N',2000,'N',14,'N',283,TO_DATE('2012-12-28 08:36:33','YYYY-MM-DD HH24:MI:SS'),'N','Y','ed45c16a-6427-4fb9-b68f-7cf64b1546a7','Y','DisplayLogic','If the Field is displayed, the result determines if the field is actually displayed','format := {expression} [{logic} {expression}]
+expression := @{context}@{operand}{value} or @{context}@{operand}{value}
+logic := {|}|{&}
+context := any global or window context
+value := strings or numbers
+logic operators := AND or OR with the previous result from left to right
+operand := eq{=}, gt{>}, le{<}, not{~^!}
+Examples:
+@AD_Table_ID@=14 | @Language@!GERGER
+@PriceLimit@>10 | @PriceList@>@PriceActual@
+@Name@>J
+Strings may be in single quotes (optional)','Display Logic','Y','Y',100,TO_DATE('2012-12-28 08:36:33','YYYY-MM-DD HH24:MI:SS'),0,100,0,208349,'N',0) +; + +-- Dec 28, 2012 8:36:46 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoColumn ADD DisplayLogic NVARCHAR2(2000) DEFAULT NULL +; + +-- Dec 28, 2012 8:40:39 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (2,1,'N',0,'N',103,'N','N',208343,130,'Y',201620,'N','The Info window is used to search and select records as well as display information relevant to the selection.',0,TO_DATE('2012-12-28 08:40:38','YYYY-MM-DD HH24:MI:SS'),'N',130,'D',0,'Info and search/select Window','Y','N','823993ba-87be-430e-b4a8-19c4e0061b3d',100,TO_DATE('2012-12-28 08:40:38','YYYY-MM-DD HH24:MI:SS'),0,'Info Window',100,'Y',1) +; + +-- Dec 28, 2012 8:45:00 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (5,3,'N',0,'N',842,'N','N',208344,95,'Y',201621,'N','The Where Clause indicates the SQL WHERE clause to use for record selection. The WHERE clause is added to the query. Fully qualified means "tablename.columnname".',0,TO_DATE('2012-12-28 08:44:59','YYYY-MM-DD HH24:MI:SS'),'N',95,'D',0,'Fully qualified SQL WHERE clause','Y','N','8e6453b7-db4b-42d7-ac6a-76f9ee34de63',100,TO_DATE('2012-12-28 08:44:59','YYYY-MM-DD HH24:MI:SS'),0,'Sql WHERE',100,'Y',1) +; + +-- Dec 31, 2012 11:42:23 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,897,'D','Y','N','N',0,'N',30,'N',10,'N',228,TO_DATE('2012-12-31 23:42:20','YYYY-MM-DD HH24:MI:SS'),'N','Y','07a7935b-2a59-48e3-a80a-f11b785afed3','Y','ColumnName','Name of the column in the database','The Column Name indicates the name of a column on a table as defined in the database.','DB Column Name','Y','Y',100,TO_DATE('2012-12-31 23:42:20','YYYY-MM-DD HH24:MI:SS'),0,100,0,208350,'N',0) +; + +-- Dec 31, 2012 11:42:33 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoColumn ADD ColumnName NVARCHAR2(30) NOT NULL +; + +-- Dec 31, 2012 11:46:58 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,DisplayLogic,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',844,'N','N',208346,150,'Y',201622,'N','The Reference Value indicates where the reference values are stored. It must be specified if the data type is Table or List. ',0,TO_DATE('2012-12-31 23:46:56','YYYY-MM-DD HH24:MI:SS'),'Y',150,'D',0,'Required to specify, if data type is Table or List','Y','N','e4bcdb5e-998d-43b1-84f3-46ade9370a71',100,TO_DATE('2012-12-31 23:46:56','YYYY-MM-DD HH24:MI:SS'),0,'@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28','Reference Key',100,'Y',1) +; + +-- Dec 31, 2012 11:48:15 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,DisplayLogic,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',844,'N','N',208347,160,'Y',201623,'N','These rules define how an entry is determined to valid. You can use variables for dynamic (context sensitive) validation.',0,TO_DATE('2012-12-31 23:48:14','YYYY-MM-DD HH24:MI:SS'),'N',160,'D',0,'Dynamic Validation Rule','Y','N','6de8a2af-30ec-452b-8420-050fb5c39fb1',100,TO_DATE('2012-12-31 23:48:14','YYYY-MM-DD HH24:MI:SS'),0,'@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012','Dynamic Validation',100,'Y',1) +; + +-- Dec 31, 2012 11:48:37 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',844,'N','N',208350,170,'Y',201624,'N','The Column Name indicates the name of a column on a table as defined in the database.',0,TO_DATE('2012-12-31 23:48:36','YYYY-MM-DD HH24:MI:SS'),'Y',170,'U',0,'Name of the column in the database','Y','N','03b13bf8-d2f8-4d2d-b3a5-68a9ef3df63c',100,TO_DATE('2012-12-31 23:48:36','YYYY-MM-DD HH24:MI:SS'),0,'DB Column Name',100,'Y',1) +; + +-- Dec 31, 2012 11:52:45 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',844,'N','N',208349,180,'Y',201625,'N','format := {expression} [{logic} {expression}]
+expression := @{context}@{operand}{value} or @{context}@{operand}{value}
+logic := {|}|{&}
+context := any global or window context
+value := strings or numbers
+logic operators := AND or OR with the previous result from left to right
+operand := eq{=}, gt{>}, le{<}, not{~^!}
+Examples:
+@AD_Table_ID@=14 | @Language@!GERGER
+@PriceLimit@>10 | @PriceList@>@PriceActual@
+@Name@>J
+Strings may be in single quotes (optional)',0,TO_DATE('2012-12-31 23:52:44','YYYY-MM-DD HH24:MI:SS'),'N',180,'D',0,'If the Field is displayed, the result determines if the field is actually displayed','Y','N','538692f6-ff16-4157-ac9e-df7beca9eecb',100,TO_DATE('2012-12-31 23:52:44','YYYY-MM-DD HH24:MI:SS'),0,'Display Logic',100,'Y',1) +; + +-- Dec 31, 2012 11:58:10 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET DisplayLogic='@IsDisplayed@=Y',Updated=TO_DATE('2012-12-31 23:58:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201625 +; + +-- Jan 1, 2013 9:14:55 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET DefaultValue='Y',Updated=TO_DATE('2013-01-01 09:14:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=15788 +; + +-- Jan 1, 2013 9:15:11 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET DefaultValue='Y',Updated=TO_DATE('2013-01-01 09:15:11','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=15776 +; + +-- Jan 1, 2013 9:15:49 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET AD_Reference_ID=30,Updated=TO_DATE('2013-01-01 09:15:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=15790 +; + +-- Jan 1, 2013 9:30:54 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',844,'N','N',208348,190,'Y',201626,'N','The Centrally Maintained checkbox indicates if the Name, Description and Help maintained in ''System Element'' table or ''Window'' table.',0,TO_DATE('2013-01-01 09:30:52','YYYY-MM-DD HH24:MI:SS'),'Y',190,'D',0,'Information maintained in System Element table','Y','N','ae37e609-8640-453f-b1be-e2bfcbd099cc',100,TO_DATE('2013-01-01 09:30:52','YYYY-MM-DD HH24:MI:SS'),0,'Centrally maintained',100,'Y',1) +; + +-- Jan 1, 2013 9:35:57 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET DefaultValue='@SQL=SELECT NVL(MAX(SeqNo),0)+10 AS DefaultValue FROM AD_InfoColumn WHERE AD_InfoWindow_ID=@AD_InfoWindow_ID@',Updated=TO_DATE('2013-01-01 09:35:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=15787 +; + +-- Jan 1, 2013 12:11:44 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Tab SET SeqNo=40,Updated=TO_DATE('2013-01-01 00:11:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=843 +; + +-- Jan 1, 2013 12:12:02 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Tab SET SeqNo=20,Updated=TO_DATE('2013-01-01 00:12:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=844 +; + +-- Jan 1, 2013 12:12:10 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Tab SET SeqNo=30,Updated=TO_DATE('2013-01-01 00:12:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=845 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=10, XPosition=1,Updated=TO_DATE('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13599 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=20, XPosition=4,Updated=TO_DATE('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13593 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=30, XPosition=7,Updated=TO_DATE('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13601 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=5, SeqNo=40, XPosition=1,Updated=TO_DATE('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13600 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=50, XPosition=7,Updated=TO_DATE('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13604 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=5, SeqNo=60, XPosition=1,Updated=TO_DATE('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13595 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=5, SeqNo=70, XPosition=1,Updated=TO_DATE('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13594 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=80, XPosition=2,Updated=TO_DATE('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13592 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=90, XPosition=3,Updated=TO_DATE('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13596 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=5, SeqNo=100, XPosition=1,Updated=TO_DATE('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201625 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=5, SeqNo=110, XPosition=1,Updated=TO_DATE('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13605 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=120, XPosition=8,Updated=TO_DATE('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13602 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=130, XPosition=1,Updated=TO_DATE('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201624 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=140, XPosition=4,Updated=TO_DATE('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13606 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=150, XPosition=8,Updated=TO_DATE('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201626 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=160, XPosition=1,Updated=TO_DATE('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13603 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=170, XPosition=4,Updated=TO_DATE('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201622 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=180, XPosition=7,Updated=TO_DATE('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201623 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=190, XPosition=1,Updated=TO_DATE('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13597 +; + +-- Jan 2, 2013 8:34:15 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=100, IsDisplayed='Y', XPosition=5,Updated=TO_DATE('2013-01-02 08:34:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13602 +; + +-- Jan 2, 2013 8:34:15 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=110,Updated=TO_DATE('2013-01-02 08:34:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201625 +; + +-- Jan 2, 2013 8:34:15 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=120,Updated=TO_DATE('2013-01-02 08:34:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13605 +; + +-- Jan 2, 2013 8:34:15 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=150, IsDisplayed='Y', XPosition=7,Updated=TO_DATE('2013-01-02 08:34:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201626 +; + +-- Jan 2, 2013 8:35:46 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=80,Updated=TO_DATE('2013-01-02 08:35:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13592 +; + +-- Jan 2, 2013 8:35:46 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=90, XPosition=4,Updated=TO_DATE('2013-01-02 08:35:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13596 +; + +-- Jan 2, 2013 8:35:46 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=100, XPosition=6,Updated=TO_DATE('2013-01-02 08:35:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13602 +; + +-- Jan 4, 2013 10:03:29 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,DefaultValue,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,895,'D','Y','N','N',0,'N',1,'N',20,'N',1103,TO_DATE('2013-01-04 10:03:27','YYYY-MM-DD HH24:MI:SS'),'N','Y','34ce8949-69ce-49f3-add5-9a4b073e9abb','N','Y','IsDefault','Default value','The Default Checkbox indicates if this record will be used as a default value.','Default','Y','Y',100,TO_DATE('2013-01-04 10:03:27','YYYY-MM-DD HH24:MI:SS'),0,100,0,208351,'N',0) +; + +-- Jan 4, 2013 10:03:35 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoWindow ADD IsDefault CHAR(1) DEFAULT 'N' CHECK (IsDefault IN ('Y','N')) NOT NULL +; + +-- Jan 4, 2013 10:05:30 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Element (AD_Element_UU,EntityType,ColumnName,Name,Description,PrintName,Created,CreatedBy,UpdatedBy,AD_Org_ID,AD_Element_ID,AD_Client_ID,Updated,IsActive) VALUES ('f201cb26-043b-42c3-8e46-847801008534','D','IsDistinct','Distinct','Select Distinct','Distinct',TO_DATE('2013-01-04 10:05:28','YYYY-MM-DD HH24:MI:SS'),100,100,0,202186,0,TO_DATE('2013-01-04 10:05:28','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Jan 4, 2013 10:06:11 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,DefaultValue,IsUpdateable,ColumnName,Description,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,895,'U','Y','N','N',0,'N',1,'N',20,'N',202186,TO_DATE('2013-01-04 10:06:10','YYYY-MM-DD HH24:MI:SS'),'N','Y','773fd373-deca-44a4-bbdf-5f9c07d16c9f','N','Y','IsDistinct','Select Distinct','Distinct','Y','Y',100,TO_DATE('2013-01-04 10:06:10','YYYY-MM-DD HH24:MI:SS'),0,100,0,208352,'N',0) +; + +-- Jan 4, 2013 10:06:15 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoWindow ADD IsDistinct CHAR(1) DEFAULT 'N' CHECK (IsDistinct IN ('Y','N')) NOT NULL +; + +-- Jan 4, 2013 10:07:12 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',842,'N','N',208352,120,'Y',201627,'N',0,TO_DATE('2013-01-04 10:07:10','YYYY-MM-DD HH24:MI:SS'),'N',120,'D',0,'Select Distinct','Y','N','b7862f66-669e-49a4-8c5d-73b1f0962ed1',100,TO_DATE('2013-01-04 10:07:10','YYYY-MM-DD HH24:MI:SS'),0,'Distinct',100,'Y',1) +; + +-- Jan 4, 2013 10:07:28 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',842,'N','N',208351,130,'Y',201628,'N','The Default Checkbox indicates if this record will be used as a default value.',0,TO_DATE('2013-01-04 10:07:27','YYYY-MM-DD HH24:MI:SS'),'Y',130,'D',0,'Default value','Y','N','b938a746-41d4-4f3e-9e35-2fefa5461cee',100,TO_DATE('2013-01-04 10:07:27','YYYY-MM-DD HH24:MI:SS'),0,'Default',100,'Y',1) +; + +-- Jan 4, 2013 10:07:59 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=100,Updated=TO_DATE('2013-01-04 10:07:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201621 +; + +-- Jan 4, 2013 10:07:59 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=110,Updated=TO_DATE('2013-01-04 10:07:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13579 +; + +-- Jan 4, 2013 10:07:59 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=120,Updated=TO_DATE('2013-01-04 10:07:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13580 +; + +-- Jan 4, 2013 10:07:59 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=130, IsDisplayed='Y', XPosition=2,Updated=TO_DATE('2013-01-04 10:07:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201627 +; + +-- Jan 4, 2013 10:07:59 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=140, IsDisplayed='Y', XPosition=4,Updated=TO_DATE('2013-01-04 10:07:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201628 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=40, IsDisplayed='Y', XPosition=1,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13606 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=50, IsDisplayed='Y', XPosition=4,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201624 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=60, IsDisplayed='Y', XPosition=7,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13604 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=70, IsDisplayed='Y', XPosition=1,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13605 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=80,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13600 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=90,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13595 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=100,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13594 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=110,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13592 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=120,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13596 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=130,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13602 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=140,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201626 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=150,Updated=TO_DATE('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201625 +; + +-- Jan 4, 2013 1:36:51 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Tab SET IsSingleRow='Y',Updated=TO_DATE('2013-01-04 13:36:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=842 +; + +-- Jan 4, 2013 3:34:29 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=50,Updated=TO_DATE('2013-01-04 15:34:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201624 +; + +-- Jan 4, 2013 3:34:29 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=140, IsDisplayed='Y', XPosition=8,Updated=TO_DATE('2013-01-04 15:34:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201626 +; + +-- Jan 4, 2013 3:34:29 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=170,Updated=TO_DATE('2013-01-04 15:34:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201622 +; + +-- Jan 4, 2013 3:34:29 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=180,Updated=TO_DATE('2013-01-04 15:34:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201623 +; + +-- Jan 4, 2013 3:35:26 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +DELETE FROM AD_InfoWindow_Trl WHERE AD_InfoWindow_ID=1000000 +; + +-- Jan 4, 2013 3:35:26 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +DELETE FROM AD_InfoWindow WHERE AD_InfoWindow_ID=1000000 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13572 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201627 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13575 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13578 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13579 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13581 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201621 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13580 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=10,IsDisplayedGrid='Y' WHERE AD_Field_ID=13577 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=20,IsDisplayedGrid='Y' WHERE AD_Field_ID=13574 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=30,IsDisplayedGrid='Y' WHERE AD_Field_ID=13573 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=40,IsDisplayedGrid='Y' WHERE AD_Field_ID=13582 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=50,IsDisplayedGrid='Y' WHERE AD_Field_ID=201628 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201626 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13593 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13594 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13595 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201625 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201623 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13597 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13601 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201622 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=10,IsDisplayedGrid='Y' WHERE AD_Field_ID=13599 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=20,IsDisplayedGrid='Y' WHERE AD_Field_ID=13604 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=30,IsDisplayedGrid='Y' WHERE AD_Field_ID=13600 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=40,IsDisplayedGrid='Y' WHERE AD_Field_ID=13606 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=50,IsDisplayedGrid='Y' WHERE AD_Field_ID=201624 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=60,IsDisplayedGrid='Y' WHERE AD_Field_ID=13605 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=70,IsDisplayedGrid='Y' WHERE AD_Field_ID=13603 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=80,IsDisplayedGrid='Y' WHERE AD_Field_ID=13596 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=90,IsDisplayedGrid='Y' WHERE AD_Field_ID=13602 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=100,IsDisplayedGrid='Y' WHERE AD_Field_ID=13592 +; + +-- Jan 4, 2013 4:37:01 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=70,IsDisplayedGrid='Y' WHERE AD_Field_ID=13580 +; + +SELECT register_migration_script('201301040851_IDEMPIERE-325.sql') FROM dual +; + diff --git a/migration/i1.0a-release/postgresql/201301040851_IDEMPIERE-325.sql b/migration/i1.0a-release/postgresql/201301040851_IDEMPIERE-325.sql new file mode 100644 index 0000000000..f63769db73 --- /dev/null +++ b/migration/i1.0a-release/postgresql/201301040851_IDEMPIERE-325.sql @@ -0,0 +1,660 @@ +-- Dec 27, 2012 4:09:41 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET IsActive='N',Updated=TO_TIMESTAMP('2012-12-27 16:09:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=54358 +; + +-- Dec 27, 2012 4:10:13 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET IsActive='N',Updated=TO_TIMESTAMP('2012-12-27 16:10:13','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=54359 +; + +-- Dec 27, 2012 4:11:59 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET IsDisplayedGrid='N', IsDisplayed='N', IsActive='N',Updated=TO_TIMESTAMP('2012-12-27 16:11:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200275 +; + +-- Dec 27, 2012 4:14:32 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET IsDisplayedGrid='N', IsDisplayed='N', IsActive='N',Updated=TO_TIMESTAMP('2012-12-27 16:14:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=54403 +; + +-- Dec 28, 2012 7:46:43 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Val_Rule (Code,AD_Val_Rule_ID,Updated,UpdatedBy,EntityType,Name,AD_Val_Rule_UU,Type,CreatedBy,Created,AD_Client_ID,IsActive,AD_Org_ID) VALUES ('AD_InfoWindow.AD_Table_ID=@AD_Table_ID@',200019,TO_TIMESTAMP('2012-12-28 07:46:39','YYYY-MM-DD HH24:MI:SS'),100,'U','AD_InfoWindow of Table','e9d81675-ce1f-4d7c-9354-9b8d5a23ced9','S',100,TO_TIMESTAMP('2012-12-28 07:46:39','YYYY-MM-DD HH24:MI:SS'),0,'Y',0) +; + +-- Dec 28, 2012 7:47:24 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,AD_Val_Rule_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,103,'U','N','N','N',0,'N',10,'N',19,200019,'N',3068,TO_TIMESTAMP('2012-12-28 07:47:23','YYYY-MM-DD HH24:MI:SS'),'N','Y','069cc811-f05e-4d64-9d22-322f6a15a7b5','Y','AD_InfoWindow_ID','Info and search/select Window','The Info window is used to search and select records as well as display information relevant to the selection.','Info Window','Y','Y',100,TO_TIMESTAMP('2012-12-28 07:47:23','YYYY-MM-DD HH24:MI:SS'),0,100,0,208343,'N',0) +; + +-- Dec 28, 2012 7:47:34 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_Ref_Table ADD COLUMN AD_InfoWindow_ID NUMERIC(10) DEFAULT NULL +; + +-- Dec 28, 2012 8:15:11 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,895,'U','N','N','N',0,'N',2000,'N',14,'N',630,TO_TIMESTAMP('2012-12-28 08:15:10','YYYY-MM-DD HH24:MI:SS'),'N','Y','23771259-ec7c-4111-b0d1-64d90bfe3242','Y','WhereClause','Fully qualified SQL WHERE clause','The Where Clause indicates the SQL WHERE clause to use for record selection. The WHERE clause is added to the query. Fully qualified means "tablename.columnname".','Sql WHERE','Y','Y',100,TO_TIMESTAMP('2012-12-28 08:15:10','YYYY-MM-DD HH24:MI:SS'),0,100,0,208344,'N',0) +; + +-- Dec 28, 2012 8:16:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoWindow ADD COLUMN WhereClause VARCHAR(2000) DEFAULT NULL +; + +-- Dec 28, 2012 8:23:46 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,AD_Reference_Value_ID,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,AD_Val_Rule_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,897,'D',53330,'N','N','N',0,'N',10,'N',18,115,'N',121,TO_TIMESTAMP('2012-12-28 08:23:45','YYYY-MM-DD HH24:MI:SS'),'N','Y','65aee3e9-d2d5-4993-8815-2166a5942bb2','Y','AD_Reference_Value_ID','Required to specify, if data type is Table or List','The Reference Value indicates where the reference values are stored. It must be specified if the data type is Table or List. ','Reference Key','Y','Y',100,TO_TIMESTAMP('2012-12-28 08:23:45','YYYY-MM-DD HH24:MI:SS'),0,100,0,208346,'N',0) +; + +-- Dec 28, 2012 8:24:35 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET AD_Reference_Value_ID=4,Updated=TO_TIMESTAMP('2012-12-28 08:24:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=208346 +; + +-- Dec 28, 2012 8:24:39 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoColumn ADD COLUMN AD_Reference_Value_ID NUMERIC(10) DEFAULT NULL +; + +-- Dec 28, 2012 8:25:27 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET EntityType='D',Updated=TO_TIMESTAMP('2012-12-28 08:25:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=208345 +; + +-- Dec 28, 2012 8:25:36 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET EntityType='D',Updated=TO_TIMESTAMP('2012-12-28 08:25:36','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=208344 +; + +-- Dec 28, 2012 8:32:22 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,897,'D','N','N','N',0,'N',10,'N',19,'N',139,TO_TIMESTAMP('2012-12-28 08:32:20','YYYY-MM-DD HH24:MI:SS'),'N','Y','49a4d4cd-7fa4-437e-80c1-1f05513d5b23','Y','AD_Val_Rule_ID','Dynamic Validation Rule','These rules define how an entry is determined to valid. You can use variables for dynamic (context sensitive) validation.','Dynamic Validation','Y','Y',100,TO_TIMESTAMP('2012-12-28 08:32:20','YYYY-MM-DD HH24:MI:SS'),0,100,0,208347,'N',0) +; + +-- Dec 28, 2012 8:32:29 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoColumn ADD COLUMN AD_Val_Rule_ID NUMERIC(10) DEFAULT NULL +; + +-- Dec 28, 2012 8:34:33 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,DefaultValue,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,897,'D','Y','N','N',0,'N',1,'N',20,'N',362,TO_TIMESTAMP('2012-12-28 08:34:32','YYYY-MM-DD HH24:MI:SS'),'N','Y','ffddca95-c0ec-430d-be98-035ac95d35df','Y','Y','IsCentrallyMaintained','Information maintained in System Element table','The Centrally Maintained checkbox indicates if the Name, Description and Help maintained in ''System Element'' table or ''Window'' table.','Centrally maintained','Y','Y',100,TO_TIMESTAMP('2012-12-28 08:34:32','YYYY-MM-DD HH24:MI:SS'),0,100,0,208348,'N',0) +; + +-- Dec 28, 2012 8:34:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoColumn ADD COLUMN IsCentrallyMaintained CHAR(1) DEFAULT 'Y' CHECK (IsCentrallyMaintained IN ('Y','N')) NOT NULL +; + +-- Dec 28, 2012 8:36:34 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,897,'D','N','N','N',0,'N',2000,'N',14,'N',283,TO_TIMESTAMP('2012-12-28 08:36:33','YYYY-MM-DD HH24:MI:SS'),'N','Y','ed45c16a-6427-4fb9-b68f-7cf64b1546a7','Y','DisplayLogic','If the Field is displayed, the result determines if the field is actually displayed','format := {expression} [{logic} {expression}]
+expression := @{context}@{operand}{value} or @{context}@{operand}{value}
+logic := {|}|{&}
+context := any global or window context
+value := strings or numbers
+logic operators := AND or OR with the previous result from left to right
+operand := eq{=}, gt{>}, le{<}, not{~^!}
+Examples:
+@AD_Table_ID@=14 | @Language@!GERGER
+@PriceLimit@>10 | @PriceList@>@PriceActual@
+@Name@>J
+Strings may be in single quotes (optional)','Display Logic','Y','Y',100,TO_TIMESTAMP('2012-12-28 08:36:33','YYYY-MM-DD HH24:MI:SS'),0,100,0,208349,'N',0) +; + +-- Dec 28, 2012 8:36:46 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoColumn ADD COLUMN DisplayLogic VARCHAR(2000) DEFAULT NULL +; + +-- Dec 28, 2012 8:40:39 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (2,1,'N',0,'N',103,'N','N',208343,130,'Y',201620,'N','The Info window is used to search and select records as well as display information relevant to the selection.',0,TO_TIMESTAMP('2012-12-28 08:40:38','YYYY-MM-DD HH24:MI:SS'),'N',130,'D',0,'Info and search/select Window','Y','N','823993ba-87be-430e-b4a8-19c4e0061b3d',100,TO_TIMESTAMP('2012-12-28 08:40:38','YYYY-MM-DD HH24:MI:SS'),0,'Info Window',100,'Y',1) +; + +-- Dec 28, 2012 8:45:00 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (5,3,'N',0,'N',842,'N','N',208344,95,'Y',201621,'N','The Where Clause indicates the SQL WHERE clause to use for record selection. The WHERE clause is added to the query. Fully qualified means "tablename.columnname".',0,TO_TIMESTAMP('2012-12-28 08:44:59','YYYY-MM-DD HH24:MI:SS'),'N',95,'D',0,'Fully qualified SQL WHERE clause','Y','N','8e6453b7-db4b-42d7-ac6a-76f9ee34de63',100,TO_TIMESTAMP('2012-12-28 08:44:59','YYYY-MM-DD HH24:MI:SS'),0,'Sql WHERE',100,'Y',1) +; + +-- Dec 31, 2012 11:42:23 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,897,'D','Y','N','N',0,'N',30,'N',10,'N',228,TO_TIMESTAMP('2012-12-31 23:42:20','YYYY-MM-DD HH24:MI:SS'),'N','Y','07a7935b-2a59-48e3-a80a-f11b785afed3','Y','ColumnName','Name of the column in the database','The Column Name indicates the name of a column on a table as defined in the database.','DB Column Name','Y','Y',100,TO_TIMESTAMP('2012-12-31 23:42:20','YYYY-MM-DD HH24:MI:SS'),0,100,0,208350,'N',0) +; + +-- Dec 31, 2012 11:42:33 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoColumn ADD COLUMN ColumnName VARCHAR(30) NOT NULL +; + +-- Dec 31, 2012 11:46:58 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,DisplayLogic,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',844,'N','N',208346,150,'Y',201622,'N','The Reference Value indicates where the reference values are stored. It must be specified if the data type is Table or List. ',0,TO_TIMESTAMP('2012-12-31 23:46:56','YYYY-MM-DD HH24:MI:SS'),'Y',150,'D',0,'Required to specify, if data type is Table or List','Y','N','e4bcdb5e-998d-43b1-84f3-46ade9370a71',100,TO_TIMESTAMP('2012-12-31 23:46:56','YYYY-MM-DD HH24:MI:SS'),0,'@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=30 | @AD_Reference_ID@=28','Reference Key',100,'Y',1) +; + +-- Dec 31, 2012 11:48:15 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,DisplayLogic,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',844,'N','N',208347,160,'Y',201623,'N','These rules define how an entry is determined to valid. You can use variables for dynamic (context sensitive) validation.',0,TO_TIMESTAMP('2012-12-31 23:48:14','YYYY-MM-DD HH24:MI:SS'),'N',160,'D',0,'Dynamic Validation Rule','Y','N','6de8a2af-30ec-452b-8420-050fb5c39fb1',100,TO_TIMESTAMP('2012-12-31 23:48:14','YYYY-MM-DD HH24:MI:SS'),0,'@AD_Reference_ID@=17 | @AD_Reference_ID@=18 | @AD_Reference_ID@=19 | @AD_Reference_ID@=28 | @AD_Reference_ID@=30 | @AD_Reference_ID@=200012','Dynamic Validation',100,'Y',1) +; + +-- Dec 31, 2012 11:48:37 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',844,'N','N',208350,170,'Y',201624,'N','The Column Name indicates the name of a column on a table as defined in the database.',0,TO_TIMESTAMP('2012-12-31 23:48:36','YYYY-MM-DD HH24:MI:SS'),'Y',170,'U',0,'Name of the column in the database','Y','N','03b13bf8-d2f8-4d2d-b3a5-68a9ef3df63c',100,TO_TIMESTAMP('2012-12-31 23:48:36','YYYY-MM-DD HH24:MI:SS'),0,'DB Column Name',100,'Y',1) +; + +-- Dec 31, 2012 11:52:45 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',844,'N','N',208349,180,'Y',201625,'N','format := {expression} [{logic} {expression}]
+expression := @{context}@{operand}{value} or @{context}@{operand}{value}
+logic := {|}|{&}
+context := any global or window context
+value := strings or numbers
+logic operators := AND or OR with the previous result from left to right
+operand := eq{=}, gt{>}, le{<}, not{~^!}
+Examples:
+@AD_Table_ID@=14 | @Language@!GERGER
+@PriceLimit@>10 | @PriceList@>@PriceActual@
+@Name@>J
+Strings may be in single quotes (optional)',0,TO_TIMESTAMP('2012-12-31 23:52:44','YYYY-MM-DD HH24:MI:SS'),'N',180,'D',0,'If the Field is displayed, the result determines if the field is actually displayed','Y','N','538692f6-ff16-4157-ac9e-df7beca9eecb',100,TO_TIMESTAMP('2012-12-31 23:52:44','YYYY-MM-DD HH24:MI:SS'),0,'Display Logic',100,'Y',1) +; + +-- Dec 31, 2012 11:58:10 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET DisplayLogic='@IsDisplayed@=Y',Updated=TO_TIMESTAMP('2012-12-31 23:58:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201625 +; + +-- Jan 1, 2013 12:11:44 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Tab SET SeqNo=40,Updated=TO_TIMESTAMP('2013-01-01 00:11:44','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=843 +; + +-- Jan 1, 2013 12:12:02 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Tab SET SeqNo=20,Updated=TO_TIMESTAMP('2013-01-01 00:12:02','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=844 +; + +-- Jan 1, 2013 12:12:10 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Tab SET SeqNo=30,Updated=TO_TIMESTAMP('2013-01-01 00:12:10','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=845 +; + +-- Jan 1, 2013 9:14:55 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET DefaultValue='Y',Updated=TO_TIMESTAMP('2013-01-01 09:14:55','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=15788 +; + +-- Jan 1, 2013 9:15:11 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET DefaultValue='Y',Updated=TO_TIMESTAMP('2013-01-01 09:15:11','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=15776 +; + +-- Jan 1, 2013 9:15:49 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET AD_Reference_ID=30,Updated=TO_TIMESTAMP('2013-01-01 09:15:49','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=15790 +; + +-- Jan 1, 2013 9:30:54 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',844,'N','N',208348,190,'Y',201626,'N','The Centrally Maintained checkbox indicates if the Name, Description and Help maintained in ''System Element'' table or ''Window'' table.',0,TO_TIMESTAMP('2013-01-01 09:30:52','YYYY-MM-DD HH24:MI:SS'),'Y',190,'D',0,'Information maintained in System Element table','Y','N','ae37e609-8640-453f-b1be-e2bfcbd099cc',100,TO_TIMESTAMP('2013-01-01 09:30:52','YYYY-MM-DD HH24:MI:SS'),0,'Centrally maintained',100,'Y',1) +; + +-- Jan 1, 2013 9:35:57 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Column SET DefaultValue='@SQL=SELECT NVL(MAX(SeqNo),0)+10 AS DefaultValue FROM AD_InfoColumn WHERE AD_InfoWindow_ID=@AD_InfoWindow_ID@',Updated=TO_TIMESTAMP('2013-01-01 09:35:57','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=15787 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=10, XPosition=1,Updated=TO_TIMESTAMP('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13599 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=20, XPosition=4,Updated=TO_TIMESTAMP('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13593 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=30, XPosition=7,Updated=TO_TIMESTAMP('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13601 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=5, SeqNo=40, XPosition=1,Updated=TO_TIMESTAMP('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13600 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=50, XPosition=7,Updated=TO_TIMESTAMP('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13604 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=5, SeqNo=60, XPosition=1,Updated=TO_TIMESTAMP('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13595 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=5, SeqNo=70, XPosition=1,Updated=TO_TIMESTAMP('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13594 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=80, XPosition=2,Updated=TO_TIMESTAMP('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13592 +; + +-- Jan 2, 2013 8:30:41 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=90, XPosition=3,Updated=TO_TIMESTAMP('2013-01-02 08:30:41','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13596 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=5, SeqNo=100, XPosition=1,Updated=TO_TIMESTAMP('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201625 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=5, SeqNo=110, XPosition=1,Updated=TO_TIMESTAMP('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13605 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=120, XPosition=8,Updated=TO_TIMESTAMP('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13602 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=130, XPosition=1,Updated=TO_TIMESTAMP('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201624 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=140, XPosition=4,Updated=TO_TIMESTAMP('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13606 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=150, XPosition=8,Updated=TO_TIMESTAMP('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201626 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=160, XPosition=1,Updated=TO_TIMESTAMP('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13603 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=170, XPosition=4,Updated=TO_TIMESTAMP('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201622 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=180, XPosition=7,Updated=TO_TIMESTAMP('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201623 +; + +-- Jan 2, 2013 8:30:42 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=190, XPosition=1,Updated=TO_TIMESTAMP('2013-01-02 08:30:42','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13597 +; + +-- Jan 2, 2013 8:34:15 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=100, IsDisplayed='Y', XPosition=5,Updated=TO_TIMESTAMP('2013-01-02 08:34:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13602 +; + +-- Jan 2, 2013 8:34:15 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=110,Updated=TO_TIMESTAMP('2013-01-02 08:34:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201625 +; + +-- Jan 2, 2013 8:34:15 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=120,Updated=TO_TIMESTAMP('2013-01-02 08:34:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13605 +; + +-- Jan 2, 2013 8:34:15 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=150, IsDisplayed='Y', XPosition=7,Updated=TO_TIMESTAMP('2013-01-02 08:34:15','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201626 +; + +-- Jan 2, 2013 8:35:46 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=80,Updated=TO_TIMESTAMP('2013-01-02 08:35:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13592 +; + +-- Jan 2, 2013 8:35:46 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=90, XPosition=4,Updated=TO_TIMESTAMP('2013-01-02 08:35:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13596 +; + +-- Jan 2, 2013 8:35:46 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=100, XPosition=6,Updated=TO_TIMESTAMP('2013-01-02 08:35:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13602 +; + +-- Jan 4, 2013 10:03:29 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,DefaultValue,IsUpdateable,ColumnName,Description,Help,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,895,'D','Y','N','N',0,'N',1,'N',20,'N',1103,TO_TIMESTAMP('2013-01-04 10:03:27','YYYY-MM-DD HH24:MI:SS'),'N','Y','34ce8949-69ce-49f3-add5-9a4b073e9abb','N','Y','IsDefault','Default value','The Default Checkbox indicates if this record will be used as a default value.','Default','Y','Y',100,TO_TIMESTAMP('2013-01-04 10:03:27','YYYY-MM-DD HH24:MI:SS'),0,100,0,208351,'N',0) +; + +-- Jan 4, 2013 10:03:35 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoWindow ADD COLUMN IsDefault CHAR(1) DEFAULT 'N' CHECK (IsDefault IN ('Y','N')) NOT NULL +; + +-- Jan 4, 2013 10:05:30 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Element (AD_Element_UU,EntityType,ColumnName,Name,Description,PrintName,Created,CreatedBy,UpdatedBy,AD_Org_ID,AD_Element_ID,AD_Client_ID,Updated,IsActive) VALUES ('f201cb26-043b-42c3-8e46-847801008534','D','IsDistinct','Distinct','Select Distinct','Distinct',TO_TIMESTAMP('2013-01-04 10:05:28','YYYY-MM-DD HH24:MI:SS'),100,100,0,202186,0,TO_TIMESTAMP('2013-01-04 10:05:28','YYYY-MM-DD HH24:MI:SS'),'Y') +; + +-- Jan 4, 2013 10:06:11 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Column (IsSyncDatabase,IsAlwaysUpdateable,IsEncrypted,Version,AD_Table_ID,EntityType,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsParent,FieldLength,IsSelectionColumn,AD_Reference_ID,IsKey,AD_Element_ID,Created,IsAutocomplete,IsAllowLogging,AD_Column_UU,DefaultValue,IsUpdateable,ColumnName,Description,Name,IsAllowCopy,IsActive,CreatedBy,Updated,AD_Org_ID,UpdatedBy,AD_Client_ID,AD_Column_ID,IsToolbarButton,SeqNoSelection) VALUES ('N','N','N',1,895,'U','Y','N','N',0,'N',1,'N',20,'N',202186,TO_TIMESTAMP('2013-01-04 10:06:10','YYYY-MM-DD HH24:MI:SS'),'N','Y','773fd373-deca-44a4-bbdf-5f9c07d16c9f','N','Y','IsDistinct','Select Distinct','Distinct','Y','Y',100,TO_TIMESTAMP('2013-01-04 10:06:10','YYYY-MM-DD HH24:MI:SS'),0,100,0,208352,'N',0) +; + +-- Jan 4, 2013 10:06:15 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +ALTER TABLE AD_InfoWindow ADD COLUMN IsDistinct CHAR(1) DEFAULT 'N' CHECK (IsDistinct IN ('Y','N')) NOT NULL +; + +-- Jan 4, 2013 10:07:12 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',842,'N','N',208352,120,'Y',201627,'N',0,TO_TIMESTAMP('2013-01-04 10:07:10','YYYY-MM-DD HH24:MI:SS'),'N',120,'D',0,'Select Distinct','Y','N','b7862f66-669e-49a4-8c5d-73b1f0962ed1',100,TO_TIMESTAMP('2013-01-04 10:07:10','YYYY-MM-DD HH24:MI:SS'),0,'Distinct',100,'Y',1) +; + +-- Jan 4, 2013 10:07:28 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +INSERT INTO AD_Field (ColumnSpan,NumLines,IsQuickEntry,SortNo,IsEncrypted,AD_Tab_ID,IsSameLine,IsHeading,AD_Column_ID,SeqNo,IsCentrallyMaintained,AD_Field_ID,IsReadOnly,Help,AD_Org_ID,Created,IsDisplayedGrid,SeqNoGrid,EntityType,AD_Client_ID,Description,IsDisplayed,IsFieldOnly,AD_Field_UU,CreatedBy,Updated,DisplayLength,Name,UpdatedBy,IsActive,XPosition) VALUES (1,1,'N',0,'N',842,'N','N',208351,130,'Y',201628,'N','The Default Checkbox indicates if this record will be used as a default value.',0,TO_TIMESTAMP('2013-01-04 10:07:27','YYYY-MM-DD HH24:MI:SS'),'Y',130,'D',0,'Default value','Y','N','b938a746-41d4-4f3e-9e35-2fefa5461cee',100,TO_TIMESTAMP('2013-01-04 10:07:27','YYYY-MM-DD HH24:MI:SS'),0,'Default',100,'Y',1) +; + +-- Jan 4, 2013 10:07:59 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=100,Updated=TO_TIMESTAMP('2013-01-04 10:07:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201621 +; + +-- Jan 4, 2013 10:07:59 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=110,Updated=TO_TIMESTAMP('2013-01-04 10:07:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13579 +; + +-- Jan 4, 2013 10:07:59 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=120,Updated=TO_TIMESTAMP('2013-01-04 10:07:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13580 +; + +-- Jan 4, 2013 10:07:59 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=130, IsDisplayed='Y', XPosition=2,Updated=TO_TIMESTAMP('2013-01-04 10:07:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201627 +; + +-- Jan 4, 2013 10:07:59 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=140, IsDisplayed='Y', XPosition=4,Updated=TO_TIMESTAMP('2013-01-04 10:07:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201628 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=40, IsDisplayed='Y', XPosition=1,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13606 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=50, IsDisplayed='Y', XPosition=4,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201624 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=60, IsDisplayed='Y', XPosition=7,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13604 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=70, IsDisplayed='Y', XPosition=1,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13605 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=80,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13600 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=90,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13595 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=100,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13594 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=110,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13592 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=120,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13596 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=130,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=13602 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=140,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201626 +; + +-- Jan 4, 2013 10:11:09 AM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNo=150,Updated=TO_TIMESTAMP('2013-01-04 10:11:09','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201625 +; + +-- Jan 4, 2013 1:36:51 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Tab SET IsSingleRow='Y',Updated=TO_TIMESTAMP('2013-01-04 13:36:51','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Tab_ID=842 +; + +-- Jan 4, 2013 3:34:29 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=50,Updated=TO_TIMESTAMP('2013-01-04 15:34:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201624 +; + +-- Jan 4, 2013 3:34:29 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=140, IsDisplayed='Y', XPosition=8,Updated=TO_TIMESTAMP('2013-01-04 15:34:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201626 +; + +-- Jan 4, 2013 3:34:29 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=170,Updated=TO_TIMESTAMP('2013-01-04 15:34:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201622 +; + +-- Jan 4, 2013 3:34:29 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET ColumnSpan=2, SeqNo=180,Updated=TO_TIMESTAMP('2013-01-04 15:34:29','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=201623 +; + +-- Jan 4, 2013 3:35:26 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +DELETE FROM AD_InfoWindow_Trl WHERE AD_InfoWindow_ID=1000000 +; + +-- Jan 4, 2013 3:35:26 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +DELETE FROM AD_InfoWindow WHERE AD_InfoWindow_ID=1000000 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13572 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201627 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13575 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13578 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13579 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13581 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201621 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13580 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=10,IsDisplayedGrid='Y' WHERE AD_Field_ID=13577 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=20,IsDisplayedGrid='Y' WHERE AD_Field_ID=13574 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=30,IsDisplayedGrid='Y' WHERE AD_Field_ID=13573 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=40,IsDisplayedGrid='Y' WHERE AD_Field_ID=13582 +; + +-- Jan 4, 2013 3:37:20 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=50,IsDisplayedGrid='Y' WHERE AD_Field_ID=201628 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201626 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13593 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13594 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13595 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201625 +; + +-- Jan 4, 2013 3:42:43 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201623 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13597 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=13601 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=0,IsDisplayedGrid='N' WHERE AD_Field_ID=201622 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=10,IsDisplayedGrid='Y' WHERE AD_Field_ID=13599 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=20,IsDisplayedGrid='Y' WHERE AD_Field_ID=13604 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=30,IsDisplayedGrid='Y' WHERE AD_Field_ID=13600 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=40,IsDisplayedGrid='Y' WHERE AD_Field_ID=13606 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=50,IsDisplayedGrid='Y' WHERE AD_Field_ID=201624 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=60,IsDisplayedGrid='Y' WHERE AD_Field_ID=13605 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=70,IsDisplayedGrid='Y' WHERE AD_Field_ID=13603 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=80,IsDisplayedGrid='Y' WHERE AD_Field_ID=13596 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=90,IsDisplayedGrid='Y' WHERE AD_Field_ID=13602 +; + +-- Jan 4, 2013 3:42:44 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=100,IsDisplayedGrid='Y' WHERE AD_Field_ID=13592 +; + +-- Jan 4, 2013 4:37:01 PM MYT +-- IDEMPIERE-325 Complete AD based info window ( AD_InfoWindow ) implementation +UPDATE AD_Field SET SeqNoGrid=70,IsDisplayedGrid='Y' WHERE AD_Field_ID=13580 +; + +SELECT register_migration_script('201301040851_IDEMPIERE-325.sql') FROM dual +; + diff --git a/org.adempiere.base-feature/model.generator.launch b/org.adempiere.base-feature/model.generator.launch index dfcca9f1d9..40a85cd213 100644 --- a/org.adempiere.base-feature/model.generator.launch +++ b/org.adempiere.base-feature/model.generator.launch @@ -12,7 +12,7 @@ - + @@ -21,7 +21,7 @@ - + diff --git a/org.adempiere.base.process/src/org/compiere/process/InfoWindowValidate.java b/org.adempiere.base.process/src/org/compiere/process/InfoWindowValidate.java index 890c398ff8..945e73f51c 100644 --- a/org.adempiere.base.process/src/org/compiere/process/InfoWindowValidate.java +++ b/org.adempiere.base.process/src/org/compiere/process/InfoWindowValidate.java @@ -16,6 +16,12 @@ *****************************************************************************/ package org.compiere.process; +import java.sql.PreparedStatement; + +import org.compiere.model.MInfoColumn; +import org.compiere.model.MInfoWindow; +import org.compiere.util.DB; + /** * Validate Info Window SQL * @@ -25,7 +31,6 @@ package org.compiere.process; public class InfoWindowValidate extends SvrProcess { /** Info Window */ - @SuppressWarnings("unused") private int p_AD_InfoWindow_ID = 0; /** @@ -44,7 +49,51 @@ public class InfoWindowValidate extends SvrProcess protected String doIt () throws Exception { - return null; + MInfoWindow infoWindow = new MInfoWindow(getCtx(), p_AD_InfoWindow_ID, (String)null); + StringBuilder builder = new StringBuilder("SELECT "); + if (infoWindow.isDistinct()) + builder.append("DISTINCT "); + + MInfoColumn[] infoColumns = infoWindow.getInfoColumns(); + if (infoColumns.length == 0) + throw new Exception("NoColumns"); + + for (int columnIndex = 0; columnIndex < infoColumns.length; columnIndex++) { + if (columnIndex > 0) + { + builder.append(", "); + } + builder.append(infoColumns[columnIndex].getSelectClause()); + } + + builder.append( " FROM ").append(infoWindow.getFromClause()); + if (infoWindow.getWhereClause() != null && infoWindow.getWhereClause().trim().length() > 0) { + builder.append(" WHERE ").append(infoWindow.getWhereClause()); + } + + if (infoWindow.getOtherClause() != null && infoWindow.getOtherClause().trim().length() > 0) { + builder.append(" ").append(infoWindow.getOtherClause()); + } + + while(builder.indexOf("@") >= 0) { + int start = builder.indexOf("@"); + int end = builder.indexOf("@", start+1); + if (start >=0 && end > start) { + builder.replace(start, end+1, "0"); + } else { + break; + } + } + + PreparedStatement pstmt = null; + try { + pstmt = DB.prepareStatement(builder.toString(), get_TrxName()); + pstmt.executeQuery(); + } finally { + DB.close(pstmt); + } + + return "Ok"; } // doIt } // InfoWindowValidate diff --git a/org.adempiere.base/plugin.xml b/org.adempiere.base/plugin.xml index f15b8e2913..3b16000b02 100644 --- a/org.adempiere.base/plugin.xml +++ b/org.adempiere.base/plugin.xml @@ -69,5 +69,25 @@ + + + + + + + + diff --git a/org.adempiere.base/src/org/adempiere/model/CalloutInfoWindow.java b/org.adempiere.base/src/org/adempiere/model/CalloutInfoWindow.java new file mode 100644 index 0000000000..8c18ec7a11 --- /dev/null +++ b/org.adempiere.base/src/org/adempiere/model/CalloutInfoWindow.java @@ -0,0 +1,109 @@ +/** + * + */ +package org.adempiere.model; + +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import org.adempiere.base.IColumnCallout; +import org.compiere.model.AccessSqlParser; +import org.compiere.model.AccessSqlParser.TableInfo; +import org.compiere.model.GridField; +import org.compiere.model.GridTab; +import org.compiere.model.I_AD_InfoColumn; +import org.compiere.model.I_AD_InfoWindow; +import org.compiere.model.MColumn; +import org.compiere.model.MTable; +import org.compiere.model.M_Element; +import org.compiere.util.Env; + +/** + * @author hengsin + * + */ +public class CalloutInfoWindow implements IColumnCallout { + + /** + * + */ + public CalloutInfoWindow() { + } + + /* (non-Javadoc) + * @see org.adempiere.base.IColumnCallout#start(java.util.Properties, int, org.compiere.model.GridTab, org.compiere.model.GridField, java.lang.Object, java.lang.Object) + */ + @Override + public String start(Properties ctx, int WindowNo, GridTab mTab, + GridField mField, Object value, Object oldValue) { + if (mTab.getTableName().equals("AD_InfoColumn")) + return element(mTab, value); + else if (mTab.getTableName().equals("AD_InfoWindow")) + return table(mTab, value); + else + return ""; + } + + private String table(GridTab mTab, Object value) { + if (value != null) { + int id = ((Number)value).intValue(); + if (id > 0) { + I_AD_InfoWindow infoWindow = GridTabWrapper.create(mTab, I_AD_InfoWindow.class); + if (infoWindow.getFromClause() == null || infoWindow.getFromClause().trim().length() == 0) { + MTable table = MTable.get(Env.getCtx(), id); + if (table != null) { + infoWindow.setFromClause(table.getTableName() + " a"); + if (infoWindow.getName() == null || infoWindow.getName().trim().length() == 0) { + infoWindow.setName(table.getName()); + } + } + } + } + } + return null; + } + + protected String element(GridTab mTab, Object value) { + if (value != null) { + int id = ((Number)value).intValue(); + if (id > 0) { + I_AD_InfoColumn infoColumn = GridTabWrapper.create(mTab, I_AD_InfoColumn.class); + M_Element element = new M_Element(Env.getCtx(), id, (String)null); + infoColumn.setColumnName(element.getColumnName()); + infoColumn.setDescription(element.getDescription()); + infoColumn.setHelp(element.getHelp()); + infoColumn.setName(element.getName()); + if (infoColumn.getSelectClause() == null || infoColumn.getSelectClause().trim().length() == 0) { + String fromClause = infoColumn.getAD_InfoWindow().getFromClause(); + AccessSqlParser parser = new AccessSqlParser("SELECT * FROM " + fromClause); + TableInfo[] tableInfos = parser.getTableInfo(0); + Map map = new HashMap(); + for(TableInfo ti : tableInfos) { + String alias = ti.getSynonym(); + String tableName = ti.getTableName(); + + MTable table = map.get(tableName); + if (table == null) { + table = MTable.get(Env.getCtx(), tableName); + if (table == null) continue; + map.put(tableName, table); + } + MColumn col = table.getColumn(element.getColumnName()); + if (col != null) { + infoColumn.setSelectClause(alias+"."+element.getColumnName()); + infoColumn.setAD_Reference_ID(col.getAD_Reference_ID()); + infoColumn.setAD_Reference_Value_ID(col.getAD_Reference_Value_ID()); + infoColumn.setAD_Val_Rule_ID(col.getAD_Val_Rule_ID()); + if ((col.isSelectionColumn() || col.isIdentifier()) && !col.isKey()) + infoColumn.setIsQueryCriteria(true); + break; + } + } + } + } + } + return ""; + } + +} diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_InfoColumn.java b/org.adempiere.base/src/org/compiere/model/I_AD_InfoColumn.java index 68347694e4..54053100bf 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_InfoColumn.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_InfoColumn.java @@ -129,6 +129,49 @@ public interface I_AD_InfoColumn 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"; + + /** Set Reference Key. + * Required to specify, if data type is Table or List + */ + public void setAD_Reference_Value_ID (int AD_Reference_Value_ID); + + /** Get Reference Key. + * Required to specify, if data type is Table or List + */ + public int getAD_Reference_Value_ID(); + + public org.compiere.model.I_AD_Reference getAD_Reference_Value() throws RuntimeException; + + /** Column name AD_Val_Rule_ID */ + public static final String COLUMNNAME_AD_Val_Rule_ID = "AD_Val_Rule_ID"; + + /** Set Dynamic Validation. + * Dynamic Validation Rule + */ + public void setAD_Val_Rule_ID (int AD_Val_Rule_ID); + + /** Get Dynamic Validation. + * Dynamic Validation Rule + */ + public int getAD_Val_Rule_ID(); + + public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException; + + /** Column name ColumnName */ + public static final String COLUMNNAME_ColumnName = "ColumnName"; + + /** Set DB Column Name. + * Name of the column in the database + */ + public void setColumnName (String ColumnName); + + /** Get DB Column Name. + * Name of the column in the database + */ + public String getColumnName(); + /** Column name Created */ public static final String COLUMNNAME_Created = "Created"; @@ -158,6 +201,19 @@ public interface I_AD_InfoColumn */ public String getDescription(); + /** Column name DisplayLogic */ + public static final String COLUMNNAME_DisplayLogic = "DisplayLogic"; + + /** Set Display Logic. + * If the Field is displayed, the result determines if the field is actually displayed + */ + public void setDisplayLogic (String DisplayLogic); + + /** Get Display Logic. + * If the Field is displayed, the result determines if the field is actually displayed + */ + public String getDisplayLogic(); + /** Column name EntityType */ public static final String COLUMNNAME_EntityType = "EntityType"; @@ -199,6 +255,19 @@ public interface I_AD_InfoColumn */ public boolean isActive(); + /** Column name IsCentrallyMaintained */ + public static final String COLUMNNAME_IsCentrallyMaintained = "IsCentrallyMaintained"; + + /** Set Centrally maintained. + * Information maintained in System Element table + */ + public void setIsCentrallyMaintained (boolean IsCentrallyMaintained); + + /** Get Centrally maintained. + * Information maintained in System Element table + */ + public boolean isCentrallyMaintained(); + /** Column name IsDisplayed */ public static final String COLUMNNAME_IsDisplayed = "IsDisplayed"; diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_InfoWindow.java b/org.adempiere.base/src/org/compiere/model/I_AD_InfoWindow.java index 198f95fc9c..50635315dd 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_InfoWindow.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_InfoWindow.java @@ -182,6 +182,32 @@ public interface I_AD_InfoWindow */ public boolean isActive(); + /** Column name IsDefault */ + public static final String COLUMNNAME_IsDefault = "IsDefault"; + + /** Set Default. + * Default value + */ + public void setIsDefault (boolean IsDefault); + + /** Get Default. + * Default value + */ + public boolean isDefault(); + + /** Column name IsDistinct */ + public static final String COLUMNNAME_IsDistinct = "IsDistinct"; + + /** Set Distinct. + * Select Distinct + */ + public void setIsDistinct (boolean IsDistinct); + + /** Get Distinct. + * Select Distinct + */ + public boolean isDistinct(); + /** Column name Name */ public static final String COLUMNNAME_Name = "Name"; @@ -232,4 +258,17 @@ public interface I_AD_InfoWindow * User who updated this records */ public int getUpdatedBy(); + + /** Column name WhereClause */ + public static final String COLUMNNAME_WhereClause = "WhereClause"; + + /** Set Sql WHERE. + * Fully qualified SQL WHERE clause + */ + public void setWhereClause (String WhereClause); + + /** Get Sql WHERE. + * Fully qualified SQL WHERE clause + */ + public String getWhereClause(); } diff --git a/org.adempiere.base/src/org/compiere/model/I_AD_Ref_Table.java b/org.adempiere.base/src/org/compiere/model/I_AD_Ref_Table.java index eca9da3f59..256d8ebf5a 100644 --- a/org.adempiere.base/src/org/compiere/model/I_AD_Ref_Table.java +++ b/org.adempiere.base/src/org/compiere/model/I_AD_Ref_Table.java @@ -64,6 +64,21 @@ public interface I_AD_Ref_Table public org.compiere.model.I_AD_Column getAD_Disp() throws RuntimeException; + /** Column name AD_InfoWindow_ID */ + public static final String COLUMNNAME_AD_InfoWindow_ID = "AD_InfoWindow_ID"; + + /** Set Info Window. + * Info and search/select Window + */ + public void setAD_InfoWindow_ID (int AD_InfoWindow_ID); + + /** Get Info Window. + * Info and search/select Window + */ + public int getAD_InfoWindow_ID(); + + public org.compiere.model.I_AD_InfoWindow getAD_InfoWindow() throws RuntimeException; + /** Column name AD_Key */ public static final String COLUMNNAME_AD_Key = "AD_Key"; diff --git a/org.adempiere.base/src/org/compiere/model/Lookup.java b/org.adempiere.base/src/org/compiere/model/Lookup.java index 1108f09924..e3bafc583e 100644 --- a/org.adempiere.base/src/org/compiere/model/Lookup.java +++ b/org.adempiere.base/src/org/compiere/model/Lookup.java @@ -504,13 +504,4 @@ public abstract class Lookup extends AbstractListModel return m_loaded; } - /** - * Get custom info factory class - * @return info factory class name - */ - public String getInfoFactoryClass() - { - return ""; - } - } // Lookup diff --git a/org.adempiere.base/src/org/compiere/model/MInfoColumn.java b/org.adempiere.base/src/org/compiere/model/MInfoColumn.java index b44d66d25b..fc8fab76ac 100644 --- a/org.adempiere.base/src/org/compiere/model/MInfoColumn.java +++ b/org.adempiere.base/src/org/compiere/model/MInfoColumn.java @@ -18,9 +18,12 @@ package org.compiere.model; import java.sql.ResultSet; import java.util.Properties; +import java.util.logging.Level; import org.compiere.model.AccessSqlParser.TableInfo; import org.compiere.util.Env; +import org.compiere.util.Evaluatee; +import org.compiere.util.Evaluator; /** * Info Window Column Model @@ -91,4 +94,44 @@ public class MInfoColumn extends X_AD_InfoColumn } return true; } + + /** + * @param ctx + * @param windowNo + * @return boolean + */ + public boolean isDisplayed(final Properties ctx, final int windowNo) { + if (!isDisplayed()) + return false; + + if (getDisplayLogic() == null || getDisplayLogic().trim().length() == 0) + return true; + + Evaluatee evaluatee = new Evaluatee() { + public String get_ValueAsString(String variableName) { + return Env.getContext (ctx, windowNo, variableName, true); + } + }; + + boolean retValue = Evaluator.evaluateLogic(evaluatee, getDisplayLogic()); + if (log.isLoggable(Level.FINEST)) { + log.finest(getName() + + " (" + getDisplayLogic() + ") => " + retValue); + } + return retValue; + } + + @Override + protected boolean beforeSave(boolean newRecord) { + // Sync Terminology + if ((newRecord || is_ValueChanged ("AD_Element_ID")) + && getAD_Element_ID() != 0 && isCentrallyMaintained()) + { + M_Element element = new M_Element (getCtx(), getAD_Element_ID (), get_TrxName()); + setName (element.getName()); + } + return true; + } + + } // MInfoColumn diff --git a/org.adempiere.base/src/org/compiere/model/MInfoWindow.java b/org.adempiere.base/src/org/compiere/model/MInfoWindow.java index 3b102eb0cc..749f728742 100644 --- a/org.adempiere.base/src/org/compiere/model/MInfoWindow.java +++ b/org.adempiere.base/src/org/compiere/model/MInfoWindow.java @@ -63,7 +63,7 @@ public class MInfoWindow extends X_AD_InfoWindow MTable table = MTable.get(Env.getCtx(), tableName); if (table != null) { return query.setParameters(table.getAD_Table_ID()) - .setOrderBy("AD_Client_ID Desc, AD_Org_ID Desc, AD_InfoWidnow_ID Desc") + .setOrderBy("AD_Client_ID Desc, AD_Org_ID Desc, IsDefault Desc, AD_InfoWindow_ID Desc") .setOnlyActiveRecords(true) .setApplyAccessFilter(true) .first(); @@ -83,6 +83,14 @@ public class MInfoWindow extends X_AD_InfoWindow } return list.toArray(new MInfoColumn[0]); } + + public MInfoColumn[] getInfoColumns() { + Query query = new Query(getCtx(), MTable.get(getCtx(), I_AD_InfoColumn.Table_ID), I_AD_InfoColumn.COLUMNNAME_AD_InfoWindow_ID+"=?", get_TrxName()); + List list = query.setParameters(getAD_InfoWindow_ID()) + .setOrderBy(I_AD_InfoColumn.COLUMNNAME_SeqNo) + .list(); + return list.toArray(new MInfoColumn[0]); + } @Override protected boolean beforeSave(boolean newRecord) { @@ -99,7 +107,28 @@ public class MInfoWindow extends X_AD_InfoWindow return false; } + //only one default per table + if (newRecord || is_ValueChanged("IsDefault")) { + if (isDefault()) { + if (newRecord) { + Query query = new Query(getCtx(), MTable.get(getCtx(), Table_ID), + "AD_Table_ID=? AND IsDefault='Y' AND AD_Client_ID=?", get_TrxName()); + List list = query.setParameters(getAD_Table_ID(),getAD_Client_ID()).list(); + for(MInfoWindow iw : list) { + iw.setIsDefault(false); + iw.saveEx(); + } + } else { + Query query = new Query(getCtx(), MTable.get(getCtx(), Table_ID), + "AD_InfoWindow_ID<>? AND AD_Table_ID=? AND IsDefault='Y' AND AD_Client_ID=?", get_TrxName()); + List list = query.setParameters(getAD_InfoWindow_ID(), getAD_Table_ID(), getAD_Client_ID()).list(); + for(MInfoWindow iw : list) { + iw.setIsDefault(false); + iw.saveEx(); + } + } + } + } return true; } - } // MInfoWindow diff --git a/org.adempiere.base/src/org/compiere/model/MLookup.java b/org.adempiere.base/src/org/compiere/model/MLookup.java index 8f84a1d4ca..7c522391eb 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookup.java +++ b/org.adempiere.base/src/org/compiere/model/MLookup.java @@ -341,6 +341,14 @@ public final class MLookup extends Lookup implements Serializable return m_hasInactive; } // hasInactive + /** + * @return AD_InfoWindow_ID + */ + public int getAD_InfoWindow_ID() + { + return m_info.InfoWindowId; + } + /** * Return info as ArrayList containing Value/KeyNamePair * @param onlyValidated only validated @@ -639,13 +647,6 @@ public final class MLookup extends Lookup implements Serializable return false; } - @Override - public String getInfoFactoryClass() { - return m_info.InfoFactoryClass != null ? m_info.InfoFactoryClass : ""; - } - - - /************************************************************************** * MLookup Loader */ diff --git a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java index 9352d43f63..54bd0805e4 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookupFactory.java +++ b/org.adempiere.base/src/org/compiere/model/MLookupFactory.java @@ -374,7 +374,7 @@ public class MLookupFactory + "cd.ColumnName AS DisplayColumn,rt.IsValueDisplayed,cd.IsTranslated," // 3..5 + "rt.WhereClause,rt.OrderByClause,t.AD_Window_ID,t.PO_Window_ID, " // 6..9 + "t.AD_Table_ID, cd.ColumnSQL as DisplayColumnSQL, " // 10..11 - + "rt.AD_Window_ID as RT_AD_Window_ID " // 12 + + "rt.AD_Window_ID as RT_AD_Window_ID, rt.AD_InfoWindow_ID as AD_InfoWindow_ID " // 12..13 + "FROM AD_Ref_Table rt" + " INNER JOIN AD_Table t ON (rt.AD_Table_ID=t.AD_Table_ID)" + " INNER JOIN AD_Column ck ON (rt.AD_Key=ck.AD_Column_ID)" @@ -389,6 +389,7 @@ public class MLookupFactory int ZoomWindow = 0; int ZoomWindowPO = 0; int overrideZoomWindow = 0; + int infoWindowId = 0; //int AD_Table_ID = 0; boolean loaded = false; @@ -413,6 +414,7 @@ public class MLookupFactory //AD_Table_ID = rs.getInt(10); displayColumnSQL = rs.getString(11); overrideZoomWindow = rs.getInt(12); + infoWindowId = rs.getInt(13); loaded = true; } } @@ -560,6 +562,7 @@ public class MLookupFactory retValue = new MLookupInfo (realSQL.toString(), TableName, msginf.toString(), ZoomWindow, ZoomWindowPO, zoomQuery); retValue.DisplayColumn = lookupDisplayColumn; + retValue.InfoWindowId = infoWindowId; s_cacheRefTable.put(key.toString(), retValue.cloneIt()); return retValue; } // getLookup_Table diff --git a/org.adempiere.base/src/org/compiere/model/MLookupInfo.java b/org.adempiere.base/src/org/compiere/model/MLookupInfo.java index 56ef1660e1..65a3362786 100644 --- a/org.adempiere.base/src/org/compiere/model/MLookupInfo.java +++ b/org.adempiere.base/src/org/compiere/model/MLookupInfo.java @@ -190,9 +190,9 @@ public class MLookupInfo implements Serializable, Cloneable public String parsedValidationCode = ""; - public String InfoFactoryClass = null; - public String DisplayColumn; + + public int InfoWindowId; /** * String representation diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_InfoColumn.java b/org.adempiere.base/src/org/compiere/model/X_AD_InfoColumn.java index 6a2868f7cc..e653537a7f 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_InfoColumn.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_InfoColumn.java @@ -30,7 +30,7 @@ public class X_AD_InfoColumn extends PO implements I_AD_InfoColumn, I_Persistent /** * */ - private static final long serialVersionUID = 20121031L; + private static final long serialVersionUID = 20130101L; /** Standard Constructor */ public X_AD_InfoColumn (Properties ctx, int AD_InfoColumn_ID, String trxName) @@ -41,9 +41,13 @@ public class X_AD_InfoColumn extends PO implements I_AD_InfoColumn, I_Persistent setAD_InfoColumn_ID (0); setAD_InfoWindow_ID (0); setAD_Reference_ID (0); + setColumnName (null); setEntityType (null); // U - setIsDisplayed (false); + setIsCentrallyMaintained (true); +// Y + setIsDisplayed (true); +// Y setIsQueryCriteria (false); setName (null); setSelectClause (null); @@ -200,6 +204,79 @@ public class X_AD_InfoColumn extends PO implements I_AD_InfoColumn, I_Persistent return ii.intValue(); } + public org.compiere.model.I_AD_Reference getAD_Reference_Value() throws RuntimeException + { + 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. + @param AD_Reference_Value_ID + Required to specify, if data type is Table or List + */ + public void setAD_Reference_Value_ID (int AD_Reference_Value_ID) + { + if (AD_Reference_Value_ID < 1) + set_Value (COLUMNNAME_AD_Reference_Value_ID, null); + else + set_Value (COLUMNNAME_AD_Reference_Value_ID, Integer.valueOf(AD_Reference_Value_ID)); + } + + /** Get Reference Key. + @return Required to specify, if data type is Table or List + */ + public int getAD_Reference_Value_ID () + { + Integer ii = (Integer)get_Value(COLUMNNAME_AD_Reference_Value_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + + public org.compiere.model.I_AD_Val_Rule getAD_Val_Rule() throws RuntimeException + { + 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. + @param AD_Val_Rule_ID + Dynamic Validation Rule + */ + public void setAD_Val_Rule_ID (int AD_Val_Rule_ID) + { + if (AD_Val_Rule_ID < 1) + set_Value (COLUMNNAME_AD_Val_Rule_ID, null); + else + set_Value (COLUMNNAME_AD_Val_Rule_ID, Integer.valueOf(AD_Val_Rule_ID)); + } + + /** Get Dynamic Validation. + @return Dynamic Validation Rule + */ + public int getAD_Val_Rule_ID () + { + Integer ii = (Integer)get_Value(COLUMNNAME_AD_Val_Rule_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + + /** Set DB Column Name. + @param ColumnName + Name of the column in the database + */ + public void setColumnName (String ColumnName) + { + set_Value (COLUMNNAME_ColumnName, ColumnName); + } + + /** Get DB Column Name. + @return Name of the column in the database + */ + public String getColumnName () + { + return (String)get_Value(COLUMNNAME_ColumnName); + } + /** Set Description. @param Description Optional short description of the record @@ -217,6 +294,23 @@ public class X_AD_InfoColumn extends PO implements I_AD_InfoColumn, I_Persistent return (String)get_Value(COLUMNNAME_Description); } + /** Set Display Logic. + @param DisplayLogic + If the Field is displayed, the result determines if the field is actually displayed + */ + public void setDisplayLogic (String DisplayLogic) + { + set_Value (COLUMNNAME_DisplayLogic, DisplayLogic); + } + + /** Get Display Logic. + @return If the Field is displayed, the result determines if the field is actually displayed + */ + public String getDisplayLogic () + { + return (String)get_Value(COLUMNNAME_DisplayLogic); + } + /** EntityType AD_Reference_ID=389 */ public static final int ENTITYTYPE_AD_Reference_ID=389; /** Set Entity Type. @@ -254,6 +348,30 @@ public class X_AD_InfoColumn extends PO implements I_AD_InfoColumn, I_Persistent return (String)get_Value(COLUMNNAME_Help); } + /** Set Centrally maintained. + @param IsCentrallyMaintained + Information maintained in System Element table + */ + public void setIsCentrallyMaintained (boolean IsCentrallyMaintained) + { + set_Value (COLUMNNAME_IsCentrallyMaintained, Boolean.valueOf(IsCentrallyMaintained)); + } + + /** Get Centrally maintained. + @return Information maintained in System Element table + */ + public boolean isCentrallyMaintained () + { + Object oo = get_Value(COLUMNNAME_IsCentrallyMaintained); + if (oo != null) + { + if (oo instanceof Boolean) + return ((Boolean)oo).booleanValue(); + return "Y".equals(oo); + } + return false; + } + /** Set Displayed. @param IsDisplayed Determines, if this field is displayed diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_InfoWindow.java b/org.adempiere.base/src/org/compiere/model/X_AD_InfoWindow.java index 617c44e85f..639b7ec047 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_InfoWindow.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_InfoWindow.java @@ -30,7 +30,7 @@ public class X_AD_InfoWindow extends PO implements I_AD_InfoWindow, I_Persistent /** * */ - private static final long serialVersionUID = 20121031L; + private static final long serialVersionUID = 20130104L; /** Standard Constructor */ public X_AD_InfoWindow (Properties ctx, int AD_InfoWindow_ID, String trxName) @@ -43,6 +43,10 @@ public class X_AD_InfoWindow extends PO implements I_AD_InfoWindow, I_Persistent setEntityType (null); // U setFromClause (null); + setIsDefault (false); +// N + setIsDistinct (false); +// N setName (null); } */ } @@ -211,6 +215,54 @@ public class X_AD_InfoWindow extends PO implements I_AD_InfoWindow, I_Persistent return (String)get_Value(COLUMNNAME_Help); } + /** Set Default. + @param IsDefault + Default value + */ + public void setIsDefault (boolean IsDefault) + { + set_Value (COLUMNNAME_IsDefault, Boolean.valueOf(IsDefault)); + } + + /** Get Default. + @return Default value + */ + public boolean isDefault () + { + Object oo = get_Value(COLUMNNAME_IsDefault); + if (oo != null) + { + if (oo instanceof Boolean) + return ((Boolean)oo).booleanValue(); + return "Y".equals(oo); + } + return false; + } + + /** Set Distinct. + @param IsDistinct + Select Distinct + */ + public void setIsDistinct (boolean IsDistinct) + { + set_Value (COLUMNNAME_IsDistinct, Boolean.valueOf(IsDistinct)); + } + + /** Get Distinct. + @return Select Distinct + */ + public boolean isDistinct () + { + Object oo = get_Value(COLUMNNAME_IsDistinct); + if (oo != null) + { + if (oo instanceof Boolean) + return ((Boolean)oo).booleanValue(); + return "Y".equals(oo); + } + return false; + } + /** Set Name. @param Name Alphanumeric identifier of the entity @@ -273,4 +325,21 @@ public class X_AD_InfoWindow extends PO implements I_AD_InfoWindow, I_Persistent } return false; } + + /** Set Sql WHERE. + @param WhereClause + Fully qualified SQL WHERE clause + */ + public void setWhereClause (String WhereClause) + { + set_Value (COLUMNNAME_WhereClause, WhereClause); + } + + /** Get Sql WHERE. + @return Fully qualified SQL WHERE clause + */ + public String getWhereClause () + { + return (String)get_Value(COLUMNNAME_WhereClause); + } } \ No newline at end of file diff --git a/org.adempiere.base/src/org/compiere/model/X_AD_Ref_Table.java b/org.adempiere.base/src/org/compiere/model/X_AD_Ref_Table.java index 641fcb3bc4..9bfa4cc815 100644 --- a/org.adempiere.base/src/org/compiere/model/X_AD_Ref_Table.java +++ b/org.adempiere.base/src/org/compiere/model/X_AD_Ref_Table.java @@ -30,7 +30,7 @@ public class X_AD_Ref_Table extends PO implements I_AD_Ref_Table, I_Persistent /** * */ - private static final long serialVersionUID = 20121031L; + private static final long serialVersionUID = 20121231L; /** Standard Constructor */ public X_AD_Ref_Table (Properties ctx, int AD_Ref_Table_ID, String trxName) @@ -101,6 +101,34 @@ public class X_AD_Ref_Table extends PO implements I_AD_Ref_Table, I_Persistent return ii.intValue(); } + public org.compiere.model.I_AD_InfoWindow getAD_InfoWindow() throws RuntimeException + { + return (org.compiere.model.I_AD_InfoWindow)MTable.get(getCtx(), org.compiere.model.I_AD_InfoWindow.Table_Name) + .getPO(getAD_InfoWindow_ID(), get_TrxName()); } + + /** Set Info Window. + @param AD_InfoWindow_ID + Info and search/select Window + */ + public void setAD_InfoWindow_ID (int AD_InfoWindow_ID) + { + if (AD_InfoWindow_ID < 1) + set_Value (COLUMNNAME_AD_InfoWindow_ID, null); + else + set_Value (COLUMNNAME_AD_InfoWindow_ID, Integer.valueOf(AD_InfoWindow_ID)); + } + + /** Get Info Window. + @return Info and search/select Window + */ + public int getAD_InfoWindow_ID () + { + Integer ii = (Integer)get_Value(COLUMNNAME_AD_InfoWindow_ID); + if (ii == null) + return 0; + return ii.intValue(); + } + public org.compiere.model.I_AD_Column getAD_() throws RuntimeException { return (org.compiere.model.I_AD_Column)MTable.get(getCtx(), org.compiere.model.I_AD_Column.Table_Name) diff --git a/org.adempiere.ui.swing/src/org/adempiere/ui/swing/factory/DefaultInfoFactory.java b/org.adempiere.ui.swing/src/org/adempiere/ui/swing/factory/DefaultInfoFactory.java index 5872ac886b..6c1f276a20 100644 --- a/org.adempiere.ui.swing/src/org/adempiere/ui/swing/factory/DefaultInfoFactory.java +++ b/org.adempiere.ui.swing/src/org/adempiere/ui/swing/factory/DefaultInfoFactory.java @@ -14,14 +14,12 @@ package org.adempiere.ui.swing.factory; import java.awt.Frame; -import java.util.logging.Level; import org.compiere.apps.search.Info; import org.compiere.apps.search.InfoAsset; import org.compiere.apps.search.InfoAssignment; import org.compiere.apps.search.InfoBPartner; import org.compiere.apps.search.InfoCashLine; -import org.compiere.apps.search.InfoFactory; import org.compiere.apps.search.InfoGeneral; import org.compiere.apps.search.InfoInOut; import org.compiere.apps.search.InfoInvoice; @@ -45,6 +43,7 @@ import org.eevolution.model.I_PP_Product_BOMLine; */ public class DefaultInfoFactory implements IInfoFactory { + @SuppressWarnings("unused") private final static CLogger log = CLogger.getCLogger(DefaultInfoFactory.class); @Override @@ -56,20 +55,7 @@ public class DefaultInfoFactory implements IInfoFactory { if (col.indexOf('.') != -1) col = col.substring(col.indexOf('.')+1); boolean multipleSelection = false; - String infoFactoryClass = lookup.getInfoFactoryClass(); - if (infoFactoryClass != null && infoFactoryClass.trim().length() > 0) - { - try { - @SuppressWarnings("unchecked") - Class clazz = (Class)this.getClass().getClassLoader().loadClass(infoFactoryClass); - InfoFactory factory = clazz.newInstance(); - info = factory.create (frame, true, lookup.getWindowNo(), - tableName, keyColumn, queryValue, false, whereClause); - } catch (Exception e) { - log.log(Level.SEVERE, "Failed to load custom InfoFactory - " + e.getLocalizedMessage(), e); - } - } - else if (col.equals("M_Product_ID")) + if (col.equals("M_Product_ID")) { int M_Warehouse_ID = Env.getContextAsInt(Env.getCtx(), lookup.getWindowNo(), "M_Warehouse_ID"); int M_PriceList_ID = Env.getContextAsInt(Env.getCtx(), lookup.getWindowNo(), "M_PriceList_ID"); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListbox.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListbox.java index 2eeaaff1f2..6c8c392be9 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListbox.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/component/WListbox.java @@ -343,6 +343,9 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis boolean multiSelection, String tableName,boolean addAccessSQL) { + if (getListhead() != null) + getListHead().detach(); + int columnIndex = 0; StringBuilder sql = new StringBuilder ("SELECT "); setLayout(layout); diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java index c8e26abe7e..fcb81704ef 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/editor/WSearchEditor.java @@ -321,71 +321,10 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value actionButton(text); return; } -// text = text.toUpperCase(); - log.config(getColumnName() + " - " + text); + if (log.isLoggable(Level.CONFIG)) + log.config(getColumnName() + " - " + text); - // Exact first - /* - PreparedStatement pstmt = null; - String finalSQL = Msg.parseTranslation(Env.getCtx(), getDirectAccessSQL(text)); - int id = -3; - - try - { - pstmt = DB.prepareStatement(finalSQL, null); - ResultSet rs = pstmt.executeQuery(); - if (rs.next()) - { - id = rs.getInt(1); // first - if (rs.next()) - id = -1; // only if unique - } - rs.close(); - pstmt.close(); - } - catch (Exception e) - { - log.log(Level.SEVERE, finalSQL, e); - id = -2; - } - - // Try like - if (id == -3 && !text.endsWith("%")) - { - text += "%"; - finalSQL = Msg.parseTranslation(Env.getCtx(), getDirectAccessSQL(text)); - - try - { - pstmt = DB.prepareStatement(finalSQL, null); - ResultSet rs = pstmt.executeQuery(); - if (rs.next()) - { - id = rs.getInt(1); // first - if (rs.next()) - id = -1; // only if unique - } - rs.close(); - pstmt.close(); - } - catch (Exception e) - { - log.log(Level.SEVERE, finalSQL, e); - id = -2; - } - } - - try - { - if (pstmt != null) - pstmt.close(); - } - catch (Exception e) - { - } - */ - - int id = -3; + int id = -1; if (m_tableName == null) // sets table name & key column getDirectAccessSQL("*"); @@ -414,7 +353,8 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value } return; } - log.fine(getColumnName() + " - Unique ID=" + id); + if (log.isLoggable(Level.FINE)) + log.fine(getColumnName() + " - Unique ID=" + id); actionCombo(new Integer(id)); // data binding //m_text.requestFocus(); @@ -423,8 +363,9 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value private void actionCombo (Object value) { - log.fine("Value=" + value); - + if (log.isLoggable(Level.FINE)) + log.fine("Value=" + value); + ValueChangeEvent evt = new ValueChangeEvent(this, this.getColumnName(), getValue(), value); // -> ADTabpanel - valuechange fireValueChange(evt); @@ -518,7 +459,8 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value // Zoom / Validation String whereClause = getWhereClause(); - log.fine(lookup.getColumnName() + ", Zoom=" + lookup.getZoom() + " (" + whereClause + ")"); + if (log.isLoggable(Level.FINE)) + log.fine(lookup.getColumnName() + ", Zoom=" + lookup.getZoom() + " (" + whereClause + ")"); // boolean resetValue = false; // Reset value so that is always treated as new entry @@ -559,12 +501,14 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value } else if (cancelled) { - log.config(getColumnName() + " - Result = null (cancelled)"); + if (log.isLoggable(Level.CONFIG)) + log.config(getColumnName() + " - Result = null (cancelled)"); actionCombo(null); } else { - log.config(getColumnName() + " - Result = null (not cancelled)"); + if (log.isLoggable(Level.CONFIG)) + log.config(getColumnName() + " - Result = null (not cancelled)"); } } }); @@ -654,7 +598,8 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value sql.append(" AND IsActive='Y'"); // *** - log.finest(m_columnName + " (predefined) " + sql.toString()); + if (log.isLoggable(Level.FINEST)) + log.finest(m_columnName + " (predefined) " + sql.toString()); return MRole.getDefault().addAccessSQL(sql.toString(), m_tableName, MRole.SQL_NOTQUALIFIED, MRole.SQL_RO); @@ -727,7 +672,8 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value // *** - log.finest(m_columnName + " (Table) " + sql.toString()); + if (log.isLoggable(Level.FINEST)) + log.finest(m_columnName + " (Table) " + sql.toString()); return MRole.getDefault().addAccessSQL(sql.toString(), m_tableName, MRole.SQL_NOTQUALIFIED, MRole.SQL_RO); @@ -799,7 +745,8 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value if (wc != null && wc.length() > 0) retValue.append(" AND ").append(wc); // *** - log.finest(m_columnName + " (TableDir) " + sql.toString()); + if (log.isLoggable(Level.FINEST)) + log.finest(m_columnName + " (TableDir) " + sql.toString()); return MRole.getDefault().addAccessSQL(retValue.toString(), m_tableName, MRole.SQL_NOTQUALIFIED, MRole.SQL_RO); } @@ -835,7 +782,8 @@ public class WSearchEditor extends WEditor implements ContextMenuListener, Value log.severe(getColumnName() + " - Cannot Parse=" + whereClause); else { - log.fine(getColumnName() + " - Parsed: " + validated); + if (log.isLoggable(Level.FINE)) + log.fine(getColumnName() + " - Parsed: " + validated); return validated; } } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java index 6b463e2338..e922c9f1b8 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/DefaultInfoFactory.java @@ -13,6 +13,14 @@ *****************************************************************************/ package org.adempiere.webui.factory; +import org.adempiere.webui.info.InfoAssetWindow; +import org.adempiere.webui.info.InfoAssignmentWindow; +import org.adempiere.webui.info.InfoBPartnerWindow; +import org.adempiere.webui.info.InfoInOutWindow; +import org.adempiere.webui.info.InfoInvoiceWindow; +import org.adempiere.webui.info.InfoOrderWindow; +import org.adempiere.webui.info.InfoPaymentWindow; +import org.adempiere.webui.info.InfoProductWindow; import org.adempiere.webui.info.InfoWindow; import org.adempiere.webui.panel.InfoAssetPanel; import org.adempiere.webui.panel.InfoAssignmentPanel; @@ -38,45 +46,68 @@ public class DefaultInfoFactory implements IInfoFactory { @Override public InfoPanel create(int WindowNo, String tableName, String keyColumn, - String value, boolean multiSelection, String whereClause, boolean lookup) { + String value, boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup) { InfoPanel info = null; - //TODO: info window for c_bpartner, m_product, c_invoice, a_asset, c_order, m_inout, c_payment and resource - if (tableName.equals("C_BPartner")) - info = new InfoBPartnerPanel (value,WindowNo, !Env.getContext(Env.getCtx(),"IsSOTrx").equals("N"), + if (tableName.equals("C_BPartner")) { + info = new InfoBPartnerWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID); + if (!info.loadedOK()) { + info = new InfoBPartnerPanel (value,WindowNo, !Env.getContext(Env.getCtx(),"IsSOTrx").equals("N"), + multiSelection, whereClause, lookup); + } + } else if (tableName.equals("M_Product")) { + info = new InfoProductWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID); + if (!info.loadedOK()) { + info = new InfoProductPanel ( WindowNo, + Env.getContextAsInt(Env.getCtx(), WindowNo, "M_Warehouse_ID"), + Env.getContextAsInt(Env.getCtx(), WindowNo, "M_PriceList_ID"), + multiSelection, value,whereClause, lookup); + } + } else if (tableName.equals("C_Invoice")) { + info = new InfoInvoiceWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID); + if (!info.loadedOK()) { + info = new InfoInvoicePanel ( WindowNo, value, multiSelection, whereClause, lookup); - else if (tableName.equals("M_Product")) - info = new InfoProductPanel ( WindowNo, - Env.getContextAsInt(Env.getCtx(), WindowNo, "M_Warehouse_ID"), - Env.getContextAsInt(Env.getCtx(), WindowNo, "M_PriceList_ID"), - multiSelection, value,whereClause, lookup); - else if (tableName.equals("C_Invoice")) - info = new InfoInvoicePanel ( WindowNo, value, + } + } else if (tableName.equals("A_Asset")) { + info = new InfoAssetWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID); + if (!info.loadedOK()) { + info = new InfoAssetPanel (WindowNo, 0, value, + multiSelection, whereClause, lookup); + } + } else if (tableName.equals("C_Order")) { + info = new InfoOrderWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID); + if (!info.loadedOK()) { + info = new InfoOrderPanel ( WindowNo, value, + multiSelection, whereClause, lookup); + } + } else if (tableName.equals("M_InOut")) { + info = new InfoInOutWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID); + if (!info.loadedOK()) { + info = new InfoInOutPanel (WindowNo, value, + multiSelection, whereClause, lookup); + } + } else if (tableName.equals("C_Payment")) { + info = new InfoPaymentWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID); + if (!info.loadedOK()) { + info = new InfoPaymentPanel (WindowNo, value, multiSelection, whereClause, lookup); + } + } else if (tableName.equals("C_CashLine")) { + info = new InfoCashLinePanel (WindowNo, value, multiSelection, whereClause, lookup); - else if (tableName.equals("A_Asset")) - info = new InfoAssetPanel (WindowNo, 0, value, - multiSelection, whereClause, lookup); - else if (tableName.equals("C_Order")) - info = new InfoOrderPanel ( WindowNo, value, - multiSelection, whereClause, lookup); - else if (tableName.equals("M_InOut")) - info = new InfoInOutPanel (WindowNo, value, - multiSelection, whereClause, lookup); - else if (tableName.equals("C_Payment")) - info = new InfoPaymentPanel (WindowNo, value, multiSelection, whereClause, lookup); - else if (tableName.equals("C_CashLine")) - info = new InfoCashLinePanel (WindowNo, value, - multiSelection, whereClause, lookup); - else if (tableName.equals("S_ResourceAssigment")) - info = new InfoAssignmentPanel (WindowNo, value, - multiSelection, whereClause, lookup); - else { -// info = new InfoWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, lookup); -// if (!((InfoWindow)info).loadedOK()) { + } else if (tableName.equals("S_ResourceAssigment")) { + info = new InfoAssignmentWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID); + if (!info.loadedOK()) { + info = new InfoAssignmentPanel (WindowNo, value, + multiSelection, whereClause, lookup); + } + } else { + info = new InfoWindow(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, AD_InfoWindow_ID); + if (!info.loadedOK()) { info = new InfoGeneralPanel (value, WindowNo, tableName, keyColumn, multiSelection, whereClause, lookup); -// } + } } // return info; @@ -85,20 +116,20 @@ public class DefaultInfoFactory implements IInfoFactory { @Override public InfoPanel create(Lookup lookup, GridField field, String tableName, String keyColumn, String queryValue, boolean multiSelection, - String whereClause) { + String whereClause, int AD_InfoWindow_ID) { InfoPanel info = null; + String col = lookup.getColumnName(); // fully qualified name if (col.indexOf('.') != -1) col = col.substring(col.indexOf('.')+1); + if (col.equals("M_Product_ID")) { - //TODO: Product info window - /* - InfoWindow infoWindow = new InfoWindow(lookup.getWindowNo(), tableName, keyColumn, value, multiSelection, whereClause); - if (infoWindow.loadedOk()) + InfoWindow infoWindow = new InfoProductWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID); + if (infoWindow.loadedOK()) return infoWindow; - */ + // Reset Env.setContext(Env.getCtx(), lookup.getWindowNo(), Env.TAB_INFO, "M_Product_ID", "0"); Env.setContext(Env.getCtx(), lookup.getWindowNo(), Env.TAB_INFO, "M_AttributeSetInstance_ID", "0"); @@ -115,12 +146,10 @@ public class DefaultInfoFactory implements IInfoFactory { } else if (col.equals("C_BPartner_ID")) { - //TODO: BPartner info window - /* - InfoWindow infoWindow = new InfoWindow(lookup.getWindowNo(), tableName, keyColumn, multiSelection, whereClause); - if (infoWindow.isValid()) + InfoWindow infoWindow = new InfoBPartnerWindow(lookup.getWindowNo(), tableName, keyColumn, queryValue, multiSelection, whereClause, AD_InfoWindow_ID); + if (infoWindow.loadedOK()) return infoWindow; - */ + boolean isSOTrx = true; // default if (Env.getContext(Env.getCtx(), lookup.getWindowNo(), "IsSOTrx").equals("N")) @@ -131,7 +160,7 @@ public class DefaultInfoFactory implements IInfoFactory { } else // General Info { - info = create(lookup.getWindowNo(), tableName, keyColumn, queryValue, false, whereClause, true); + info = create(lookup.getWindowNo(), tableName, keyColumn, queryValue, false, whereClause, AD_InfoWindow_ID, true); } return info; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IInfoFactory.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IInfoFactory.java index 0e9c9a2a9f..0d2a7e5122 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IInfoFactory.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/IInfoFactory.java @@ -26,9 +26,9 @@ public interface IInfoFactory { public InfoPanel create (int WindowNo, String tableName, String keyColumn, String value, - boolean multiSelection, String whereClause, boolean lookup); + boolean multiSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup); public InfoPanel create (Lookup lookup, GridField field, String tableName, String keyColumn, String value, - boolean multiSelection, String whereClause); + boolean multiSelection, String whereClause, int AD_InfoWindow_ID); } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/InfoManager.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/InfoManager.java index f9c6b9f7cf..b277474262 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/InfoManager.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/factory/InfoManager.java @@ -19,6 +19,7 @@ import org.adempiere.base.Service; import org.adempiere.webui.panel.InfoPanel; import org.compiere.model.GridField; import org.compiere.model.Lookup; +import org.compiere.model.MLookup; /** * @@ -36,7 +37,7 @@ public class InfoManager List factoryList = Service.locator().list(IInfoFactory.class).getServices(); for(IInfoFactory factory : factoryList) { - info = factory.create(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, lookup); + info = factory.create(WindowNo, tableName, keyColumn, value, multiSelection, whereClause, 0, lookup); if (info != null) break; } @@ -49,10 +50,15 @@ public class InfoManager String whereClause) { InfoPanel ip = null; + int AD_InfoWindow_ID = 0; + if (lookup instanceof MLookup) + { + AD_InfoWindow_ID = ((MLookup)lookup).getAD_InfoWindow_ID(); + } List factoryList = Service.locator().list(IInfoFactory.class).getServices(); for(IInfoFactory factory : factoryList) { - ip = factory.create(lookup, field, tableName, keyColumn, queryValue, false, whereClause); + ip = factory.create(lookup, field, tableName, keyColumn, queryValue, false, whereClause, AD_InfoWindow_ID); if (ip != null) break; } diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssetWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssetWindow.java new file mode 100644 index 0000000000..e323516b68 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssetWindow.java @@ -0,0 +1,52 @@ +/** + * + */ +package org.adempiere.webui.info; + +/** + * @author hengsin + * + */ +public class InfoAssetWindow extends InfoWindow { + + /** + * + */ + private static final long serialVersionUID = 623767863373135404L; + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + */ + public InfoAssetWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID); + // TODO Auto-generated constructor stub + } + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + * @param lookup + */ + public InfoAssetWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID, boolean lookup) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID, lookup); + // TODO Auto-generated constructor stub + } + +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssignmentWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssignmentWindow.java new file mode 100644 index 0000000000..ed868171bd --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoAssignmentWindow.java @@ -0,0 +1,52 @@ +/** + * + */ +package org.adempiere.webui.info; + +/** + * @author hengsin + * + */ +public class InfoAssignmentWindow extends InfoWindow { + + /** + * + */ + private static final long serialVersionUID = -5726562881863657609L; + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + */ + public InfoAssignmentWindow(int WindowNo, String tableName, + String keyColumn, String queryValue, boolean multipleSelection, + String whereClause, int AD_InfoWindow_ID) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID); + // TODO Auto-generated constructor stub + } + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + * @param lookup + */ + public InfoAssignmentWindow(int WindowNo, String tableName, + String keyColumn, String queryValue, boolean multipleSelection, + String whereClause, int AD_InfoWindow_ID, boolean lookup) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID, lookup); + // TODO Auto-generated constructor stub + } + +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoBPartnerWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoBPartnerWindow.java new file mode 100644 index 0000000000..1aabe7428b --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoBPartnerWindow.java @@ -0,0 +1,52 @@ +/** + * + */ +package org.adempiere.webui.info; + +/** + * @author hengsin + * + */ +public class InfoBPartnerWindow extends InfoWindow { + + /** + * + */ + private static final long serialVersionUID = -8994747783253141939L; + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + */ + public InfoBPartnerWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID); + // TODO Auto-generated constructor stub + } + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + * @param lookup + */ + public InfoBPartnerWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID, boolean lookup) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID, lookup); + // TODO Auto-generated constructor stub + } + +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInOutWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInOutWindow.java new file mode 100644 index 0000000000..7692e32364 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInOutWindow.java @@ -0,0 +1,52 @@ +/** + * + */ +package org.adempiere.webui.info; + +/** + * @author hengsin + * + */ +public class InfoInOutWindow extends InfoWindow { + + /** + * + */ + private static final long serialVersionUID = 3027121642718090785L; + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + */ + public InfoInOutWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID); + // TODO Auto-generated constructor stub + } + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + * @param lookup + */ + public InfoInOutWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID, boolean lookup) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID, lookup); + // TODO Auto-generated constructor stub + } + +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInvoiceWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInvoiceWindow.java new file mode 100644 index 0000000000..5fb63bc8db --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoInvoiceWindow.java @@ -0,0 +1,52 @@ +/** + * + */ +package org.adempiere.webui.info; + +/** + * @author hengsin + * + */ +public class InfoInvoiceWindow extends InfoWindow { + + /** + * + */ + private static final long serialVersionUID = 3413423439591833575L; + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + */ + public InfoInvoiceWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID); + // TODO Auto-generated constructor stub + } + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + * @param lookup + */ + public InfoInvoiceWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID, boolean lookup) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID, lookup); + // TODO Auto-generated constructor stub + } + +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoOrderWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoOrderWindow.java new file mode 100644 index 0000000000..5a1ec09815 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoOrderWindow.java @@ -0,0 +1,52 @@ +/** + * + */ +package org.adempiere.webui.info; + +/** + * @author hengsin + * + */ +public class InfoOrderWindow extends InfoWindow { + + /** + * + */ + private static final long serialVersionUID = 1241927188305227636L; + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + */ + public InfoOrderWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID); + // TODO Auto-generated constructor stub + } + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + * @param lookup + */ + public InfoOrderWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID, boolean lookup) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID, lookup); + // TODO Auto-generated constructor stub + } + +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPAttributeInstanceWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPAttributeInstanceWindow.java new file mode 100644 index 0000000000..60669c6869 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPAttributeInstanceWindow.java @@ -0,0 +1,52 @@ +/** + * + */ +package org.adempiere.webui.info; + +/** + * @author hengsin + * + */ +public class InfoPAttributeInstanceWindow extends InfoWindow { + + /** + * + */ + private static final long serialVersionUID = 8387016462564425684L; + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + */ + public InfoPAttributeInstanceWindow(int WindowNo, String tableName, + String keyColumn, String queryValue, boolean multipleSelection, + String whereClause, int AD_InfoWindow_ID) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID); + // TODO Auto-generated constructor stub + } + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + * @param lookup + */ + public InfoPAttributeInstanceWindow(int WindowNo, String tableName, + String keyColumn, String queryValue, boolean multipleSelection, + String whereClause, int AD_InfoWindow_ID, boolean lookup) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID, lookup); + // TODO Auto-generated constructor stub + } + +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPAttributeWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPAttributeWindow.java new file mode 100644 index 0000000000..4f671fc942 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPAttributeWindow.java @@ -0,0 +1,52 @@ +/** + * + */ +package org.adempiere.webui.info; + +/** + * @author hengsin + * + */ +public class InfoPAttributeWindow extends InfoWindow { + + /** + * + */ + private static final long serialVersionUID = -4554543873526769338L; + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + */ + public InfoPAttributeWindow(int WindowNo, String tableName, + String keyColumn, String queryValue, boolean multipleSelection, + String whereClause, int AD_InfoWindow_ID) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID); + // TODO Auto-generated constructor stub + } + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + * @param lookup + */ + public InfoPAttributeWindow(int WindowNo, String tableName, + String keyColumn, String queryValue, boolean multipleSelection, + String whereClause, int AD_InfoWindow_ID, boolean lookup) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID, lookup); + // TODO Auto-generated constructor stub + } + +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPaymentWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPaymentWindow.java new file mode 100644 index 0000000000..1dc6b8a4c7 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoPaymentWindow.java @@ -0,0 +1,52 @@ +/** + * + */ +package org.adempiere.webui.info; + +/** + * @author hengsin + * + */ +public class InfoPaymentWindow extends InfoWindow { + + /** + * + */ + private static final long serialVersionUID = 1322780214387328688L; + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + */ + public InfoPaymentWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID); + // TODO Auto-generated constructor stub + } + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + * @param lookup + */ + public InfoPaymentWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID, boolean lookup) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID, lookup); + // TODO Auto-generated constructor stub + } + +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoProductWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoProductWindow.java new file mode 100644 index 0000000000..a38e9227b2 --- /dev/null +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoProductWindow.java @@ -0,0 +1,799 @@ +/** + * + */ +package org.adempiere.webui.info; + +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Vector; +import java.util.logging.Level; + +import org.adempiere.webui.AdempiereWebUI; +import org.adempiere.webui.component.Borderlayout; +import org.adempiere.webui.component.Label; +import org.adempiere.webui.component.ListItem; +import org.adempiere.webui.component.ListModelTable; +import org.adempiere.webui.component.Listbox; +import org.adempiere.webui.component.ListboxFactory; +import org.adempiere.webui.component.Tab; +import org.adempiere.webui.component.Tabbox; +import org.adempiere.webui.component.Tabpanel; +import org.adempiere.webui.component.Tabpanels; +import org.adempiere.webui.component.Tabs; +import org.adempiere.webui.component.Textbox; +import org.adempiere.webui.component.WListbox; +import org.adempiere.webui.session.SessionManager; +import org.compiere.minigrid.ColumnInfo; +import org.compiere.model.MDocType; +import org.compiere.model.MRole; +import org.compiere.util.CLogMgt; +import org.compiere.util.DB; +import org.compiere.util.Env; +import org.compiere.util.Msg; +import org.compiere.util.Util; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zk.ui.event.Events; +import org.zkoss.zul.Center; +import org.zkoss.zul.South; + +/** + * @author hengsin + * + */ +public class InfoProductWindow extends InfoWindow { + + /** + * + */ + private static final long serialVersionUID = 4939032152860189380L; + + private Label lblWarehouse; + private Listbox pickWarehouse; + private Label lblPriceList; + private Listbox pickPriceList; + + private Tabbox tabbedPane; + private WListbox warehouseTbl; + private String m_sqlWarehouse; + private WListbox substituteTbl; + private String m_sqlSubstitute; + private WListbox relatedTbl; + private String m_sqlRelated; + //Available to Promise Tab + private WListbox m_tableAtp; + + //IDEMPIERE-337 + private WListbox productpriceTbl; + private String m_sqlProductprice; + + private Textbox fieldDescription; + + /** ASI */ + private int m_M_AttributeSetInstance_ID; + + private Borderlayout contentBorderLayout; + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + */ + public InfoProductWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID) { + this(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, true); + } + + /** + * @param WindowNo + * @param tableName + * @param keyColumn + * @param queryValue + * @param multipleSelection + * @param whereClause + * @param AD_InfoWindow_ID + * @param lookup + */ + public InfoProductWindow(int WindowNo, String tableName, String keyColumn, + String queryValue, boolean multipleSelection, String whereClause, + int AD_InfoWindow_ID, boolean lookup) { + super(WindowNo, tableName, keyColumn, queryValue, multipleSelection, + whereClause, AD_InfoWindow_ID, lookup); + } + + @Override + protected String getSQLWhere() { + StringBuilder where = new StringBuilder(super.getSQLWhere()); + return where.toString(); + } + + @Override + protected void createParameterPanel() { + super.createParameterPanel(); + initParameters(); + addSearchParameter(lblWarehouse, pickWarehouse); + } + + + @Override + protected void renderContentPane(Center center) { + ColumnInfo[] s_layoutWarehouse = new ColumnInfo[]{ + new ColumnInfo(Msg.translate(Env.getCtx(), "Warehouse"), "Warehouse", String.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "QtyAvailable"), "sum(QtyAvailable)", Double.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "QtyOnHand"), "sum(QtyOnHand)", Double.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "QtyReserved"), "sum(QtyReserved)", Double.class)}; + /** From Clause */ + String s_sqlFrom = " M_PRODUCT_STOCK_V "; + /** Where Clause */ + String s_sqlWhere = "Value = ?"; + warehouseTbl = ListboxFactory.newDataTable(); + m_sqlWarehouse = warehouseTbl.prepareTable(s_layoutWarehouse, s_sqlFrom, s_sqlWhere, false, "M_PRODUCT_STOCK_V"); + m_sqlWarehouse += " GROUP BY Warehouse"; + warehouseTbl.setMultiSelection(false); + warehouseTbl.setShowTotals(true); + warehouseTbl.autoSize(); + warehouseTbl.getModel().addTableModelListener(this); + + ColumnInfo[] s_layoutSubstitute = new ColumnInfo[]{ + new ColumnInfo(Msg.translate(Env.getCtx(), "Warehouse"), "orgname", String.class), + new ColumnInfo( + Msg.translate(Env.getCtx(), "Value"), + "(Select Value from M_Product p where p.M_Product_ID=M_PRODUCT_SUBSTITUTERELATED_V.Substitute_ID)", + String.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "Name"), "Name", String.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "QtyAvailable"), "QtyAvailable", Double.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "QtyOnHand"), "QtyOnHand", Double.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "QtyReserved"), "QtyReserved", Double.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "PriceStd"), "PriceStd", Double.class)}; + s_sqlFrom = "M_PRODUCT_SUBSTITUTERELATED_V"; + s_sqlWhere = "M_Product_ID = ? AND M_PriceList_Version_ID = ? and RowType = 'S'"; + substituteTbl = ListboxFactory.newDataTable(); + m_sqlSubstitute = substituteTbl.prepareTable(s_layoutSubstitute, s_sqlFrom, s_sqlWhere, false, "M_PRODUCT_SUBSTITUTERELATED_V"); + substituteTbl.setMultiSelection(false); + substituteTbl.autoSize(); + substituteTbl.getModel().addTableModelListener(this); + + ColumnInfo[] s_layoutRelated = new ColumnInfo[]{ + new ColumnInfo(Msg.translate(Env.getCtx(), "Warehouse"), "orgname", String.class), + new ColumnInfo( + Msg.translate(Env.getCtx(), "Value"), + "(Select Value from M_Product p where p.M_Product_ID=M_PRODUCT_SUBSTITUTERELATED_V.Substitute_ID)", + String.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "Name"), "Name", String.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "QtyAvailable"), "QtyAvailable", Double.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "QtyOnHand"), "QtyOnHand", Double.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "QtyReserved"), "QtyReserved", Double.class), + new ColumnInfo(Msg.translate(Env.getCtx(), "PriceStd"), "PriceStd", Double.class)}; + s_sqlFrom = "M_PRODUCT_SUBSTITUTERELATED_V"; + s_sqlWhere = "M_Product_ID = ? AND M_PriceList_Version_ID = ? and RowType = 'R'"; + relatedTbl = ListboxFactory.newDataTable(); + m_sqlRelated = relatedTbl.prepareTable(s_layoutRelated, s_sqlFrom, s_sqlWhere, false, "M_PRODUCT_SUBSTITUTERELATED_V"); + relatedTbl.setMultiSelection(false); + relatedTbl.autoSize(); + relatedTbl.getModel().addTableModelListener(this); + + //Available to Promise Tab + m_tableAtp = ListboxFactory.newDataTable(); + m_tableAtp.setMultiSelection(false); + + //IDEMPIERE-337 + ArrayList list = new ArrayList(); + list.add(new ColumnInfo(Msg.translate(Env.getCtx(), "PriceListVersion"), "plv.Name", String.class)); + list.add(new ColumnInfo(Msg.translate(Env.getCtx(), "ValidFrom"), "plv.ValidFrom", Timestamp.class)); + if (MRole.getDefault().isColumnAccess(251 /*M_ProductPrice*/, 3027/*PriceList*/, false)) + list.add(new ColumnInfo(Msg.translate(Env.getCtx(), "PriceList"), "bomPriceList(pp.M_Product_ID, pp.M_PriceList_Version_ID) AS PriceList", Double.class)); + if (MRole.getDefault().isColumnAccess(251 /*M_ProductPrice*/, 3028/*PriceStd*/, false)) + list.add(new ColumnInfo(Msg.translate(Env.getCtx(), "PriceStd"), "bomPriceStd(pp.M_Product_ID, pp.M_PriceList_Version_ID) AS PriceStd", Double.class)); + if (MRole.getDefault().isColumnAccess(251 /*M_ProductPrice*/, 3028/*PriceStd*/, false) && MRole.getDefault().isColumnAccess(251 /*M_ProductPrice*/, 3029/*PriceLimit*/, false)) + list.add(new ColumnInfo(Msg.translate(Env.getCtx(), "Margin"), "bomPriceStd(pp.M_Product_ID, pp.M_PriceList_Version_ID)-bomPriceLimit(pp.M_Product_ID, pp.M_PriceList_Version_ID) AS Margin", Double.class)); + if (MRole.getDefault().isColumnAccess(251 /*M_ProductPrice*/, 3029/*PriceLimit*/, false)) + list.add(new ColumnInfo(Msg.translate(Env.getCtx(), "PriceLimit"), "bomPriceLimit(pp.M_Product_ID, pp.M_PriceList_Version_ID) AS PriceLimit", Double.class)); + ColumnInfo[] s_layoutProductPrice = new ColumnInfo[list.size()]; + list.toArray(s_layoutProductPrice); + s_sqlFrom = "M_ProductPrice pp INNER JOIN M_PriceList_Version plv ON (pp.M_PriceList_Version_ID = plv.M_PriceList_Version_ID)"; + s_sqlWhere = "pp.M_Product_ID = ? AND plv.IsActive = 'Y' AND pp.IsActive = 'Y'"; + productpriceTbl = ListboxFactory.newDataTable(); + m_sqlProductprice = productpriceTbl.prepareTable(s_layoutProductPrice, s_sqlFrom, s_sqlWhere, false, "pp") + " ORDER BY plv.ValidFrom DESC"; + productpriceTbl.setMultiSelection(false); + productpriceTbl.autoSize(); + productpriceTbl.getModel().addTableModelListener(this); + + tabbedPane = new Tabbox(); + tabbedPane.setHeight("100%"); + Tabpanels tabPanels = new Tabpanels(); + tabbedPane.appendChild(tabPanels); + Tabs tabs = new Tabs(); + tabbedPane.appendChild(tabs); + + Tab tab = new Tab(Util.cleanAmp(Msg.translate(Env.getCtx(), "Warehouse"))); + tabs.appendChild(tab); + Tabpanel desktopTabPanel = new Tabpanel(); + desktopTabPanel.setHeight("100%"); + desktopTabPanel.appendChild(warehouseTbl); + tabPanels.appendChild(desktopTabPanel); + + tab = new Tab(Msg.translate(Env.getCtx(), "Description")); + tabs.appendChild(tab); + desktopTabPanel = new Tabpanel(); + desktopTabPanel.setHeight("100%"); + fieldDescription = new Textbox(); + fieldDescription.setMultiline(true); + fieldDescription.setReadonly(true); + fieldDescription.setHflex("1"); + fieldDescription.setWidth("99%"); + fieldDescription.setHeight("99%"); + desktopTabPanel.appendChild(fieldDescription); + tabPanels.appendChild(desktopTabPanel); + + tab = new Tab(Msg.translate(Env.getCtx(), "Substitute_ID")); + tabs.appendChild(tab); + desktopTabPanel = new Tabpanel(); + desktopTabPanel.setHeight("100%"); + desktopTabPanel.appendChild(substituteTbl); + tabPanels.appendChild(desktopTabPanel); + + tab = new Tab(Msg.translate(Env.getCtx(), "RelatedProduct_ID")); + tabs.appendChild(tab); + desktopTabPanel = new Tabpanel(); + desktopTabPanel.setHeight("100%"); + desktopTabPanel.appendChild(relatedTbl); + tabPanels.appendChild(desktopTabPanel); + + tab = new Tab(Msg.getMsg(Env.getCtx(), "ATP")); + tabs.appendChild(tab); + desktopTabPanel = new Tabpanel(); + desktopTabPanel.setHeight("100%"); + desktopTabPanel.appendChild(m_tableAtp); + tabPanels.appendChild(desktopTabPanel); + + tab = new Tab(Msg.translate(Env.getCtx(), "Price")); + tabs.appendChild(tab); + desktopTabPanel = new Tabpanel(); + desktopTabPanel.setHeight("100%"); + desktopTabPanel.appendChild(productpriceTbl); + tabPanels.appendChild(desktopTabPanel); + // + int height = SessionManager.getAppDesktop().getClientInfo().desktopHeight * 90 / 100; +// int width = SessionManager.getAppDesktop().getClientInfo().desktopWidth * 80 / 100; + + contentBorderLayout = new Borderlayout(); + contentBorderLayout.setWidth("100%"); + contentBorderLayout.setHeight("100%"); + if (isLookup()) + contentBorderLayout.setStyle("border: none; position: relative; "); + else + contentBorderLayout.setStyle("border: none; position: absolute; "); + contentBorderLayout.appendCenter(contentPanel); + //true will conflict with listbox scrolling + contentBorderLayout.getCenter().setAutoscroll(false); + South south = new South(); + int detailHeight = (height * 25 / 100); + south.setHeight(detailHeight + "px"); + south.setCollapsible(true); + south.setSplittable(true); + south.setTitle(Msg.translate(Env.getCtx(), "WarehouseStock")); + south.setTooltiptext(Msg.translate(Env.getCtx(), "WarehouseStock")); + contentBorderLayout.appendChild(south); + tabbedPane.setSclass("info-product-tabbedpane"); + south.appendChild(tabbedPane); + tabbedPane.setVflex("1"); + tabbedPane.setHflex("1"); + + center.appendChild(contentBorderLayout); + + contentPanel.addActionListener(new EventListener() { + public void onEvent(Event event) throws Exception { + int row = contentPanel.getSelectedRow(); + if (row >= 0) { + int M_Warehouse_ID = 0; + ListItem listitem = pickWarehouse.getSelectedItem(); + if (listitem != null) + M_Warehouse_ID = (Integer)listitem.getValue(); + + int M_PriceList_Version_ID = 0; + listitem = pickPriceList.getSelectedItem(); + if (listitem != null) + M_PriceList_Version_ID = (Integer)listitem.getValue(); + + for(int i = 0; i < columnInfos.length; i++) { + if (columnInfos[i].getGridField() != null && columnInfos[i].getGridField().getColumnName().equals("Value")) { + refresh(contentPanel.getValueAt(row,i), M_Warehouse_ID, M_PriceList_Version_ID); + contentBorderLayout.getSouth().setOpen(true); + break; + } + } + } + } + }); + } + + private void initParameters() { + lblWarehouse = new Label(); + lblWarehouse.setValue(Util.cleanAmp(Msg.getMsg(Env.getCtx(), "Warehouse"))); + + pickWarehouse = new Listbox(); + pickWarehouse.setMultiple(false); + pickWarehouse.setMold("select"); + pickWarehouse.setHflex("1"); + pickWarehouse.addEventListener(Events.ON_SELECT, new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + ListItem item = InfoProductWindow.this.pickWarehouse.getSelectedItem(); + if (item != null && item.getValue() != null) { + Env.setContext(infoContext, p_WindowNo, "Pick_Warehouse_ID", item.getValue().toString()); + } else { + Env.setContext(infoContext, p_WindowNo, "Pick_Warehouse_ID", "0"); + } + } + }); + pickWarehouse.setWidgetAttribute(AdempiereWebUI.WIDGET_INSTANCE_NAME, "warehouse"); + + // Warehouse + String sql = MRole.getDefault().addAccessSQL ( + "SELECT M_Warehouse_ID, Value || ' - ' || Name AS ValueName " + + "FROM M_Warehouse " + + "WHERE IsActive='Y'", + "M_Warehouse", MRole.SQL_NOTQUALIFIED, MRole.SQL_RO) + + " ORDER BY Value"; + pickWarehouse.appendItem("", new Integer(0)); + PreparedStatement pstmt = null; + ResultSet rs = null; + try { + pstmt = DB.prepareStatement(sql, null); + rs = pstmt.executeQuery(); + while (rs.next()) + { + pickWarehouse.appendItem(rs.getString("ValueName"), new Integer(rs.getInt("M_Warehouse_ID"))); + } + } catch (SQLException e) { + log.log(Level.SEVERE, e.getLocalizedMessage(), e); + } finally { + DB.close(rs, pstmt); + } + + lblPriceList = new Label(); + lblPriceList.setValue(Msg.getMsg(Env.getCtx(), "PriceListVersion")); + + pickPriceList = new Listbox(); + pickPriceList.setMultiple(false); + pickPriceList.setMold("select"); + pickPriceList.setHflex("1"); + pickPriceList.addEventListener(Events.ON_SELECT, new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + ListItem item = InfoProductWindow.this.pickPriceList.getSelectedItem(); + if (item != null && item.getValue() != null) { + Env.setContext(infoContext, p_WindowNo, "Pick_PriceList_ID", item.getValue().toString()); + } else { + Env.setContext(infoContext, p_WindowNo, "Pick_PriceList_ID", "0"); + } + } + }); + pickPriceList.setWidgetAttribute(AdempiereWebUI.WIDGET_INSTANCE_NAME, "priceList"); + addSearchParameter(lblPriceList, pickPriceList); + + int M_Warehouse_ID = Env.getContextAsInt(Env.getCtx(), p_WindowNo, "M_Warehouse_ID"); + int M_PriceList_ID = Env.getContextAsInt(Env.getCtx(), p_WindowNo, "M_PriceList_ID"); + fillPickPriceList(M_PriceList_ID); + + int M_PriceList_Version_ID = findPLV (M_PriceList_ID); + // Set Warehouse + if (M_Warehouse_ID == 0) + M_Warehouse_ID = Env.getContextAsInt(Env.getCtx(), "#M_Warehouse_ID"); + if (M_Warehouse_ID != 0) + setWarehouse (M_Warehouse_ID); + // Set PriceList Version + if (M_PriceList_Version_ID != 0) + setPriceListVersion (M_PriceList_Version_ID); + } + + /** + * Find Price List Version and update context + * + * @param M_PriceList_ID price list + * @return M_PriceList_Version_ID price list version + */ + private int findPLV (int M_PriceList_ID) + { + Timestamp priceDate = null; + // Sales Order Date + String dateStr = Env.getContext(Env.getCtx(), p_WindowNo, "DateOrdered"); + if (dateStr != null && dateStr.length() > 0) + priceDate = Env.getContextAsDate(Env.getCtx(), p_WindowNo, "DateOrdered"); + else // Invoice Date + { + dateStr = Env.getContext(Env.getCtx(), p_WindowNo, "DateInvoiced"); + if (dateStr != null && dateStr.length() > 0) + priceDate = Env.getContextAsDate(Env.getCtx(), p_WindowNo, "DateInvoiced"); + } + // Today + if (priceDate == null) + priceDate = new Timestamp(System.currentTimeMillis()); + // + if (log.isLoggable(Level.CONFIG)) + log.config("M_PriceList_ID=" + M_PriceList_ID + " - " + priceDate); + int retValue = 0; + String sql = "SELECT plv.M_PriceList_Version_ID, plv.ValidFrom " + + "FROM M_PriceList pl, M_PriceList_Version plv " + + "WHERE pl.M_PriceList_ID=plv.M_PriceList_ID" + + " AND plv.IsActive='Y'" + + " AND pl.M_PriceList_ID=? " // 1 + + "ORDER BY plv.ValidFrom DESC"; + // find newest one + PreparedStatement pstmt = null; + ResultSet rs = null; + try + { + pstmt = DB.prepareStatement(sql, null); + pstmt.setInt(1, M_PriceList_ID); + rs = pstmt.executeQuery(); + while (rs.next() && retValue == 0) + { + Timestamp plDate = rs.getTimestamp(2); + if (!priceDate.before(plDate)) + retValue = rs.getInt(1); + } + } + catch (SQLException e) + { + log.log(Level.SEVERE, sql, e); + } + finally + { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + Env.setContext(Env.getCtx(), p_WindowNo, "M_PriceList_Version_ID", retValue); + return retValue; + } // findPLV + + /** + * Set Warehouse + * + * @param M_Warehouse_ID warehouse + */ + private void setWarehouse(int M_Warehouse_ID) + { + for (int i = 0; i < pickWarehouse.getItemCount(); i++) + { + Integer key = (Integer) pickWarehouse.getItemAtIndex(i).getValue(); + if (key == M_Warehouse_ID) + { + pickWarehouse.setSelectedIndex(i); + Env.setContext(infoContext, p_WindowNo, "Pick_Warehouse_ID", M_Warehouse_ID); + return; + } + } + } // setWarehouse + + /** + * Set PriceList + * + * @param M_PriceList_Version_ID price list + */ + private void setPriceListVersion(int M_PriceList_Version_ID) + { + if (log.isLoggable(Level.CONFIG)) + log.config("M_PriceList_Version_ID=" + M_PriceList_Version_ID); + for (int i = 0; i < pickPriceList.getItemCount(); i++) + { + Integer key = (Integer) pickPriceList.getItemAtIndex(i).getValue(); + if (key == M_PriceList_Version_ID) + { + pickPriceList.setSelectedIndex(i); + Env.setContext(infoContext, "Pick_PriceList_Version_ID", M_PriceList_Version_ID); + return; + } + } + if (log.isLoggable(Level.FINE)) + log.fine("NOT found"); + } // setPriceListVersion + + /** + * Refresh Query + */ + private void refresh(Object obj, int M_Warehouse_ID, int M_PriceList_Version_ID) + { + //int M_Product_ID = 0; + String sql = m_sqlWarehouse; + if (log.isLoggable(Level.FINEST)) + log.finest(sql); + PreparedStatement pstmt = null; + ResultSet rs = null; + try + { + pstmt = DB.prepareStatement(sql, null); + pstmt.setString(1, (String)obj); + rs = pstmt.executeQuery(); + warehouseTbl.loadTable(rs); + } + catch (Exception e) + { + log.log(Level.WARNING, sql, e); + } + finally + { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + + int m_M_Product_ID = getSelectedRowKey(); + sql = "SELECT DocumentNote FROM M_Product WHERE M_Product_ID=?"; + fieldDescription.setText(DB.getSQLValueString(null, sql, m_M_Product_ID)); + + sql = m_sqlSubstitute; + if (log.isLoggable(Level.FINEST)) + log.finest(sql); + try { + pstmt = DB.prepareStatement(sql, null); + pstmt.setInt(1, m_M_Product_ID); + pstmt.setInt(2, M_PriceList_Version_ID); + rs = pstmt.executeQuery(); + substituteTbl.loadTable(rs); + } catch (Exception e) { + log.log(Level.WARNING, sql, e); + } + finally + { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + + sql = m_sqlRelated; + if (log.isLoggable(Level.FINEST)) + log.finest(sql); + try { + pstmt = DB.prepareStatement(sql, null); + pstmt.setInt(1, m_M_Product_ID); + pstmt.setInt(2, M_PriceList_Version_ID); + rs = pstmt.executeQuery(); + relatedTbl.loadTable(rs); + } catch (Exception e) { + log.log(Level.WARNING, sql, e); + } + finally + { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + initAtpTab(M_Warehouse_ID, m_M_Product_ID); + + //IDEMPIERE-337 + sql = m_sqlProductprice; + if (log.isLoggable(Level.FINEST)) + log.finest(sql); + try { + pstmt = DB.prepareStatement(sql, null); + pstmt.setInt(1, m_M_Product_ID); + rs = pstmt.executeQuery(); + productpriceTbl.loadTable(rs); + } catch (Exception e) { + log.log(Level.WARNING, sql, e); + } + finally + { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + } // refresh + + // Elaine 2008/11/26 + /** + * Query ATP + * @param m_M_Warehouse_ID + * @param m_M_Product_ID + */ + private void initAtpTab (int m_M_Warehouse_ID, int m_M_Product_ID) + { + // Header + Vector columnNames = new Vector(); + columnNames.add(Msg.translate(Env.getCtx(), "Date")); + columnNames.add(Msg.translate(Env.getCtx(), "QtyOnHand")); + columnNames.add(Msg.translate(Env.getCtx(), "C_BPartner_ID")); + columnNames.add(Msg.translate(Env.getCtx(), "QtyOrdered")); + columnNames.add(Msg.translate(Env.getCtx(), "QtyReserved")); + columnNames.add(Msg.translate(Env.getCtx(), "M_Locator_ID")); + columnNames.add(Msg.translate(Env.getCtx(), "M_AttributeSetInstance_ID")); + columnNames.add(Msg.translate(Env.getCtx(), "DocumentNo")); + columnNames.add(Msg.translate(Env.getCtx(), "M_Warehouse_ID")); + + // Fill Storage Data + boolean showDetail = CLogMgt.isLevelFine(); + String sql = "SELECT s.QtyOnHand, s.QtyReserved, s.QtyOrdered," + + " productAttribute(s.M_AttributeSetInstance_ID), s.M_AttributeSetInstance_ID,"; + if (!showDetail) + sql = "SELECT SUM(s.QtyOnHand), SUM(s.QtyReserved), SUM(s.QtyOrdered)," + + " productAttribute(s.M_AttributeSetInstance_ID), 0,"; + sql += " w.Name, l.Value " + + "FROM M_Storage s" + + " INNER JOIN M_Locator l ON (s.M_Locator_ID=l.M_Locator_ID)" + + " INNER JOIN M_Warehouse w ON (l.M_Warehouse_ID=w.M_Warehouse_ID) " + + "WHERE M_Product_ID=?"; + if (m_M_Warehouse_ID != 0) + sql += " AND l.M_Warehouse_ID=?"; + if (m_M_AttributeSetInstance_ID > 0) + sql += " AND s.M_AttributeSetInstance_ID=?"; + sql += " AND (s.QtyOnHand<>0 OR s.QtyReserved<>0 OR s.QtyOrdered<>0)"; + if (!showDetail) + sql += " GROUP BY productAttribute(s.M_AttributeSetInstance_ID), w.Name, l.Value"; + sql += " ORDER BY l.Value"; + + Vector> data = new Vector>(); + double qty = 0; + PreparedStatement pstmt = null; + ResultSet rs = null; + try + { + pstmt = DB.prepareStatement(sql, null); + pstmt.setInt(1, m_M_Product_ID); + if (m_M_Warehouse_ID != 0) + pstmt.setInt(2, m_M_Warehouse_ID); + if (m_M_AttributeSetInstance_ID > 0) + pstmt.setInt(3, m_M_AttributeSetInstance_ID); + rs = pstmt.executeQuery(); + while (rs.next()) + { + Vector line = new Vector(9); + line.add(null); // Date + double qtyOnHand = rs.getDouble(1); + qty += qtyOnHand; + line.add(new Double(qtyOnHand)); // Qty + line.add(null); // BPartner + line.add(new Double(rs.getDouble(3))); // QtyOrdered + line.add(new Double(rs.getDouble(2))); // QtyReserved + line.add(rs.getString(7)); // Locator + String asi = rs.getString(4); + if (showDetail && (asi == null || asi.length() == 0)) + asi = "{" + rs.getInt(5) + "}"; + line.add(asi); // ASI + line.add(null); // DocumentNo + line.add(rs.getString(6)); // Warehouse + data.add(line); + } + } + catch (SQLException e) + { + log.log(Level.SEVERE, sql, e); + } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + + // Orders + sql = "SELECT o.DatePromised, ol.QtyReserved," + + " productAttribute(ol.M_AttributeSetInstance_ID), ol.M_AttributeSetInstance_ID," + + " dt.DocBaseType, bp.Name," + + " dt.PrintName || ' ' || o.DocumentNo As DocumentNo, w.Name " + + "FROM C_Order o" + + " INNER JOIN C_OrderLine ol ON (o.C_Order_ID=ol.C_Order_ID)" + + " INNER JOIN C_DocType dt ON (o.C_DocType_ID=dt.C_DocType_ID)" + + " INNER JOIN M_Warehouse w ON (ol.M_Warehouse_ID=w.M_Warehouse_ID)" + + " INNER JOIN C_BPartner bp ON (o.C_BPartner_ID=bp.C_BPartner_ID) " + + "WHERE ol.QtyReserved<>0" + + " AND ol.M_Product_ID=?"; + if (m_M_Warehouse_ID != 0) + sql += " AND ol.M_Warehouse_ID=?"; + if (m_M_AttributeSetInstance_ID > 0) + sql += " AND ol.M_AttributeSetInstance_ID=?"; + sql += " ORDER BY o.DatePromised"; + try + { + pstmt = DB.prepareStatement(sql, null); + pstmt.setInt(1, m_M_Product_ID); + if (m_M_Warehouse_ID != 0) + pstmt.setInt(2, m_M_Warehouse_ID); + if (m_M_AttributeSetInstance_ID > 0) + pstmt.setInt(3, m_M_AttributeSetInstance_ID); + rs = pstmt.executeQuery(); + while (rs.next()) + { + Vector line = new Vector(9); + line.add(rs.getTimestamp(1)); // Date + double oq = rs.getDouble(2); + String DocBaseType = rs.getString(5); + Double qtyReserved = null; + Double qtyOrdered = null; + if (MDocType.DOCBASETYPE_PurchaseOrder.equals(DocBaseType)) + { + qtyOrdered = new Double(oq); + qty += oq; + } + else + { + qtyReserved = new Double(oq); + qty -= oq; + } + line.add(new Double(qty)); // Qty + line.add(rs.getString(6)); // BPartner + line.add(qtyOrdered); // QtyOrdered + line.add(qtyReserved); // QtyReserved + line.add(null); // Locator + String asi = rs.getString(3); + if (showDetail && (asi == null || asi.length() == 0)) + asi = "{" + rs.getInt(4) + "}"; + line.add(asi); // ASI + line.add(rs.getString(7)); // DocumentNo + line.add(rs.getString(8)); // Warehouse + data.add(line); + } + } + catch (SQLException e) + { + log.log(Level.SEVERE, sql, e); + } + finally { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + + // Table + ListModelTable model = new ListModelTable(data); + m_tableAtp.setData(model, columnNames); + // + m_tableAtp.setColumnClass(0, Timestamp.class, true); // Date + m_tableAtp.setColumnClass(1, Double.class, true); // Quantity + m_tableAtp.setColumnClass(2, String.class, true); // Partner + m_tableAtp.setColumnClass(3, Double.class, true); // Quantity + m_tableAtp.setColumnClass(4, Double.class, true); // Quantity + m_tableAtp.setColumnClass(5, String.class, true); // Locator + m_tableAtp.setColumnClass(6, String.class, true); // ASI + m_tableAtp.setColumnClass(7, String.class, true); // DocNo + m_tableAtp.setColumnClass(8, String.class, true); // Warehouse + // + m_tableAtp.autoSize(); + } // initAtpTab + + /** + * Fill Picks with values + * + * @param M_PriceList_ID price list + */ + private void fillPickPriceList (int M_PriceList_ID) + { + // Price List + String SQL = "SELECT M_PriceList_Version.M_PriceList_Version_ID," + + " M_PriceList_Version.Name || ' (' || c.Iso_Code || ')' AS ValueName " + + "FROM M_PriceList_Version, M_PriceList pl, C_Currency c " + + "WHERE M_PriceList_Version.M_PriceList_ID=pl.M_PriceList_ID" + + " AND pl.C_Currency_ID=c.C_Currency_ID" + + " AND M_PriceList_Version.IsActive='Y' AND pl.IsActive='Y'"; + // Same PL currency as original one + if (M_PriceList_ID != 0) + SQL += " AND EXISTS (SELECT * FROM M_PriceList xp WHERE xp.M_PriceList_ID=" + M_PriceList_ID + + " AND pl.C_Currency_ID=xp.C_Currency_ID)"; + // Add Access & Order + SQL = MRole.getDefault().addAccessSQL (SQL, "M_PriceList_Version", true, false) // fully qualidfied - RO + + " ORDER BY M_PriceList_Version.Name"; + PreparedStatement pstmt = null; + ResultSet rs = null; + try + { + pickPriceList.appendItem("",new Integer(0)); + pstmt = DB.prepareStatement(SQL, null); + rs = pstmt.executeQuery(); + while (rs.next()) + { + pickPriceList.appendItem(rs.getString(2),new Integer(rs.getInt(1))); + } + } + catch (SQLException e) + { + log.log(Level.SEVERE, SQL, e); + setStatusLine(e.getLocalizedMessage(), true); + } + finally + { + DB.close(rs, pstmt); + rs = null; pstmt = null; + } + } +} diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java index 6c5a359c7e..cf4e8d63f2 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/info/InfoWindow.java @@ -9,6 +9,7 @@ import java.sql.Timestamp; import java.util.ArrayList; import java.util.List; import java.util.Properties; +import java.util.logging.Level; import org.adempiere.webui.AdempiereWebUI; import org.adempiere.webui.component.Grid; @@ -64,19 +65,20 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { private Borderlayout layout; private Vbox southBody; /** List of WEditors */ - private List editors = null; - private Properties infoContext = new Properties(Env.getCtx()); + private List editors; + protected Properties infoContext; /** Max Length of Fields */ public static final int FIELDLENGTH = 20; - protected ColumnInfo[] columnInfos = new ColumnInfo[0]; + protected ColumnInfo[] columnInfos; protected MInfoWindow infoWindow; protected TableInfo[] tableInfos; protected MInfoColumn[] infoColumns; protected String queryValue; - private List gridFields = null; + private List gridFields; + private int AD_InfoWindow_ID; /** * @param WindowNo @@ -86,8 +88,8 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { * @param whereClause */ public InfoWindow(int WindowNo, String tableName, String keyColumn, String queryValue, - boolean multipleSelection, String whereClause) { - this(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, true); + boolean multipleSelection, String whereClause, int AD_InfoWindow_ID) { + this(WindowNo, tableName, keyColumn, queryValue, multipleSelection, whereClause, AD_InfoWindow_ID, true); } /** @@ -99,16 +101,23 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { * @param lookup */ public InfoWindow(int WindowNo, String tableName, String keyColumn, String queryValue, - boolean multipleSelection, String whereClause, boolean lookup) { + boolean multipleSelection, String whereClause, int AD_InfoWindow_ID, boolean lookup) { super(WindowNo, tableName, keyColumn, multipleSelection, whereClause, lookup); this.queryValue = queryValue; + this.AD_InfoWindow_ID = AD_InfoWindow_ID; + infoContext = new Properties(Env.getCtx()); p_loadedOK = loadInfoDefinition(); if (loadedOK()) { - initUI(); + if (isLookup()) { + Env.clearTabContext(Env.getCtx(), p_WindowNo, Env.TAB_INFO); + } + + renderWindow(); if (queryValue != null && queryValue.trim().length() > 0) { + prepareTable(); processQueryValue(); } } @@ -136,10 +145,12 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { } private boolean loadInfoDefinition() { - if (p_tableName.startsWith("AD_InfoWindow_ID=")) { - int AD_InfoWindow_ID = Integer.parseInt(p_tableName.substring("AD_InfoWindow_ID=".length())); + if (AD_InfoWindow_ID > 0) { infoWindow = new MInfoWindow(Env.getCtx(), AD_InfoWindow_ID, null); - p_tableName = MTable.getTableName(Env.getCtx(), infoWindow.getAD_Table_ID()); + String tableName = MTable.getTableName(Env.getCtx(), infoWindow.getAD_Table_ID()); + if (!tableName.equalsIgnoreCase(p_tableName)) { + throw new IllegalArgumentException("AD_InfoWindow.TableName <> TableName argument. ("+tableName + " <> " + p_tableName+")"); + } } else { infoWindow = MInfoWindow.get(p_tableName, (String)null); } @@ -147,10 +158,42 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { if (infoWindow != null) { AccessSqlParser sqlParser = new AccessSqlParser("SELECT * FROM " + infoWindow.getFromClause()); tableInfos = sqlParser.getTableInfo(0); + if (tableInfos[0].getSynonym() != null && tableInfos[0].getSynonym().trim().length() > 0) { + p_tableName = tableInfos[0].getSynonym().trim(); + if (p_whereClause != null && p_whereClause.trim().length() > 0) { + p_whereClause = p_whereClause.replace(tableInfos[0].getTableName()+".", p_tableName+"."); + } + } infoColumns = infoWindow.getInfoColumns(tableInfos); + + gridFields = new ArrayList(); + for(MInfoColumn infoColumn : infoColumns) { + String columnName = infoColumn.getColumnName(); + GridFieldVO vo = GridFieldVO.createParameter(infoContext, p_WindowNo, 0, + columnName, infoColumn.get_Translation("Name"), infoColumn.getAD_Reference_ID(), + infoColumn.getAD_Reference_Value_ID(), false, false); + if (infoColumn.getAD_Val_Rule_ID() > 0) { + vo.ValidationCode = infoColumn.getAD_Val_Rule().getCode(); + } + GridField gridField = new GridField(vo); + gridFields.add(gridField); + } - prepareTable(); + StringBuilder builder = new StringBuilder(p_whereClause != null ? p_whereClause.trim() : ""); + String infoWhereClause = infoWindow.getWhereClause(); + if (infoWhereClause != null && infoWhereClause.indexOf("@") >= 0) { + infoWhereClause = Env.parseContext(Env.getCtx(), p_WindowNo, infoWhereClause, false, false); + if (infoWhereClause.length() == 0) + log.log(Level.SEVERE, "Cannot parse context= " + infoWindow.getWhereClause()); + } + if (infoWhereClause != null && infoWhereClause.trim().length() > 0) { + if (builder.length() > 0) { + builder.append(" AND "); + } + builder.append(infoWhereClause); + p_whereClause = builder.toString(); + } return true; } else { @@ -167,17 +210,10 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { String keySelectClause = keyTableAlias+"."+p_keyColumn; list.add(new ColumnInfo(" ", keySelectClause, IDColumn.class)); - gridFields = new ArrayList(); + int i = 0; for(MInfoColumn infoColumn : infoColumns) { - String columnName = infoColumn.getAD_Element().getColumnName(); - GridFieldVO vo = GridFieldVO.createParameter(infoContext, p_WindowNo, 0, - columnName, infoColumn.get_Translation("Name"), infoColumn.getAD_Reference_ID(), - 0, false, false); - GridField gridField = new GridField(vo); - gridFields.add(gridField); - //TODO: check display logic using info context - if (infoColumn.isDisplayed()) + if (infoColumn.isDisplayed(infoContext, p_WindowNo)) { ColumnInfo columnInfo = null; if (infoColumn.getAD_Reference_ID() == DisplayType.ID) @@ -195,19 +231,20 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { } else { - columnInfo = createLookupColumnInfo(tableInfos, gridField, infoColumn); + columnInfo = createLookupColumnInfo(tableInfos, gridFields.get(i), infoColumn); } } else { columnInfo = new ColumnInfo(infoColumn.getName(), infoColumn.getSelectClause(), DisplayType.getClass(infoColumn.getAD_Reference_ID(), true)); } - columnInfo.setGridField(gridField); + columnInfo.setGridField(gridFields.get(i)); list.add(columnInfo); - } + } + i++; } - columnInfos = list.toArray(columnInfos); + columnInfos = list.toArray(new ColumnInfo[0]); prepareTable(columnInfos, infoWindow.getFromClause(), p_whereClause, infoWindow.getOtherClause()); } @@ -255,14 +292,35 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { @Override protected String getSQLWhere() { StringBuilder builder = new StringBuilder(); + MTable table = MTable.get(Env.getCtx(), infoWindow.getAD_Table_ID()); + if (table.get_ColumnIndex("IsActive") >=0 ) { + if (p_whereClause != null && p_whereClause.trim().length() > 0) { + builder.append(" AND "); + } + builder.append(tableInfos[0].getSynonym()).append(".IsActive='Y'"); + } for(WEditor editor : editors) { - if (editor.getValue() != null) { + if (editor.getGridField() != null && editor.getValue() != null && editor.getValue().toString().trim().length() > 0) { if (builder.length() > 0) { builder.append(" AND "); + } else if (p_whereClause != null && p_whereClause.trim().length() > 0) { + builder.append(" AND "); + } + String columnName = editor.getColumnName(); + for(MInfoColumn infoColumn: infoColumns) { + if (columnName.equals(infoColumn.getColumnName())) { + columnName = infoColumn.getSelectClause(); + } + } + if (isSearchLike(editor.getGridField())) { + builder.append("UPPER(") + .append(columnName) + .append(") LIKE ?"); + } else { + builder.append(columnName).append("=?"); } - builder.append(editor.getColumnName()).append("=?"); } - } + } return builder.toString(); } @@ -275,7 +333,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { int parameterIndex = 0; for(WEditor editor : editors) { Object value = editor.getValue(); - if (value != null) { + if (value != null && value.toString().trim().length() > 0) { parameterIndex++; if (value instanceof Boolean) { pstmt.setString(parameterIndex, ((Boolean) value).booleanValue() ? "Y" : "N"); @@ -297,10 +355,28 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { } - protected void initUI() - { - initParameterPanel(); + @Override + protected void prepareTable(ColumnInfo[] layout, String from, String where, + String orderBy) { + super.prepareTable(layout, from, where, orderBy); + if (m_sqlMain.indexOf("@") >= 0) { + String sql = Env.parseContext(infoContext, p_WindowNo, m_sqlMain, true); + if (sql == null || sql.length() == 9) { + log.severe("Failed to parsed sql. sql=" + m_sqlMain); + } else { + m_sqlMain = sql; + } + } + if (infoWindow.isDistinct()) { + m_sqlMain = m_sqlMain.substring("SELECT ".length()); + m_sqlMain = "SELECT DISTINCT " + m_sqlMain; + } + } + + protected void renderWindow() + { + setTitle(infoWindow.get_Translation("Name")); layout = new Borderlayout(); layout.setWidth("100%"); layout.setHeight("100%"); @@ -309,42 +385,52 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { layout.setStyle("position: absolute"); } this.appendChild(layout); - - North north = new North(); - layout.appendChild(north); - north.appendChild(parameterGrid); - - Center center = new Center(); - layout.appendChild(center); - Div div = new Div(); - div.appendChild(contentPanel); - if (isLookup()) + + if (isLookup()) contentPanel.setWidth("99%"); else contentPanel.setStyle("width: 99%; margin: 0px auto;"); contentPanel.setVflex(true); - div.setStyle("width :100%; height: 100%"); - center.appendChild(div); - div.setVflex("1"); - div.setHflex("1"); + + North north = new North(); + layout.appendChild(north); + renderParameterPane(north); - South south = new South(); + Center center = new Center(); + layout.appendChild(center); + renderContentPane(center); + + South south = new South(); layout.appendChild(south); + renderFooter(south); + } + + protected void renderFooter(South south) { southBody = new Vbox(); southBody.setHflex("1"); south.appendChild(southBody); southBody.appendChild(new Separator()); southBody.appendChild(confirmPanel); southBody.appendChild(statusBar); - - if (isLookup()) { - Env.clearTabContext(Env.getCtx(), p_WindowNo, Env.TAB_INFO); - } - } - protected void initParameterPanel() { + protected void renderContentPane(Center center) { + Div div = new Div(); + div.setStyle("width :100%; height: 100%"); + div.setVflex("1"); + div.setHflex("1"); + div.appendChild(contentPanel); + center.appendChild(div); + } + + protected void renderParameterPane(North north) { + createParameterPanel(); + north.appendChild(parameterGrid); + } + + protected void createParameterPanel() { parameterGrid = GridFactory.newGridLayout(); + parameterGrid.setInnerWidth("auto"); parameterGrid.setWidgetAttribute(AdempiereWebUI.WIDGET_INSTANCE_NAME, "infoParameterPanel"); Rows rows = new Rows(); @@ -433,6 +519,8 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { for(ColumnInfo columnInfo : columnInfos) { GridField field = columnInfo.getGridField(); + if (field == null) continue; + String columnName = field.getColumnName(); if (columnInfo.getColClass().equals(KeyNamePair.class)) { @@ -453,6 +541,12 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener { } } // saveSelectionDetail + @Override + protected void executeQuery() { + prepareTable(); + super.executeQuery(); + } + private boolean isSearchLike(GridField field) { return DisplayType.isText(field.getDisplayType()) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java index bc601c58a9..64a3b0eab4 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/panel/InfoPanel.java @@ -251,7 +251,8 @@ public abstract class InfoPanel extends Window implements EventListener, String whereClause, boolean lookup) { - log.info("WinNo=" + p_WindowNo + " " + whereClause); + if (log.isLoggable(Level.INFO)) + log.info("WinNo=" + p_WindowNo + " " + whereClause); p_WindowNo = WindowNo; p_tableName = tableName; p_keyColumn = keyColumn; @@ -349,7 +350,7 @@ public abstract class InfoPanel extends Window implements EventListener, /** Layout of Grid */ protected ColumnInfo[] p_layout; /** Main SQL Statement */ - private String m_sqlMain; + protected String m_sqlMain; /** Count SQL Statement */ private String m_sqlCount; /** Order By Clause */ @@ -626,6 +627,11 @@ public abstract class InfoPanel extends Window implements EventListener, StringBuilder sql = new StringBuilder (m_sqlMain); if (dynWhere.length() > 0) sql.append(dynWhere); // includes first AND + + if (sql.toString().trim().endsWith("WHERE")) { + int index = sql.lastIndexOf(" WHERE"); + sql.delete(index, sql.length()); + } if (m_sqlUserOrder != null && m_sqlUserOrder.trim().length() > 0) sql.append(m_sqlUserOrder); else @@ -637,15 +643,18 @@ public abstract class InfoPanel extends Window implements EventListener, { dataSql = DB.getDatabase().addPagingSQL(dataSql, cacheStart, cacheEnd); } - log.finer(dataSql); + if (log.isLoggable(Level.FINER)) + log.finer(dataSql); try { m_pstmt = DB.prepareStatement(dataSql, null); setParameters (m_pstmt, false); // no count - log.fine("Start query - " + (System.currentTimeMillis()-startTime) + "ms"); + if (log.isLoggable(Level.FINE)) + log.fine("Start query - " + (System.currentTimeMillis()-startTime) + "ms"); m_pstmt.setFetchSize(100); m_rs = m_pstmt.executeQuery(); - log.fine("End query - " + (System.currentTimeMillis()-startTime) + "ms"); + if (log.isLoggable(Level.FINE)) + log.fine("End query - " + (System.currentTimeMillis()-startTime) + "ms"); //skips the row that we dont need if we can't use native db paging if (end > start && m_useDatabasePaging && !DB.getDatabase().isPagingSupported()) { @@ -723,9 +732,14 @@ public abstract class InfoPanel extends Window implements EventListener, sql.append(dynWhere); // includes first AND String countSql = Msg.parseTranslation(Env.getCtx(), sql.toString()); // Variables + if (countSql.trim().endsWith("WHERE")) { + countSql = countSql.trim(); + countSql = countSql.substring(0, countSql.length() - 5); + } countSql = MRole.getDefault().addAccessSQL (countSql, getTableName(), MRole.SQL_FULLYQUALIFIED, MRole.SQL_RO); - log.finer(countSql); + if (log.isLoggable(Level.FINER)) + log.finer(countSql); m_count = -1; try @@ -746,7 +760,8 @@ public abstract class InfoPanel extends Window implements EventListener, m_count = -2; } - log.fine("#" + m_count + " - " + (System.currentTimeMillis()-start) + "ms"); + if (log.isLoggable(Level.FINE)) + log.fine("#" + m_count + " - " + (System.currentTimeMillis()-start) + "ms"); return true; } // testCount @@ -761,7 +776,8 @@ public abstract class InfoPanel extends Window implements EventListener, if (contentPanel == null) return; - log.config( "OK=" + m_ok); + if (log.isLoggable(Level.CONFIG)) + log.config( "OK=" + m_ok); if (!m_ok) // did not press OK { @@ -783,7 +799,8 @@ public abstract class InfoPanel extends Window implements EventListener, m_results.add(data); } - log.config(getSelectedSQL()); + if (log.isLoggable(Level.CONFIG)) + log.config(getSelectedSQL()); // Save Settings of detail info screens saveSelectionDetail(); @@ -892,8 +909,9 @@ public abstract class InfoPanel extends Window implements EventListener, Object[] keys = getSelectedKeys(); if (keys == null || keys.length == 0) { - log.config("No Results - OK=" - + m_ok + ", Cancel=" + m_cancel); + if (log.isLoggable(Level.CONFIG)) + log.config("No Results - OK=" + + m_ok + ", Cancel=" + m_cancel); return ""; } // @@ -1253,7 +1271,8 @@ public abstract class InfoPanel extends Window implements EventListener, */ public void dispose(boolean ok) { - log.config("OK=" + ok); + if (log.isLoggable(Level.CONFIG)) + log.config("OK=" + ok); m_ok = ok; // End Worker