hg merge release-5.1 (merge release5.1 into default)
This commit is contained in:
commit
40bcba3ce2
|
@ -0,0 +1,12 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- IDEMPIERE-3651 Report Column Set=>Report Column=>User Element List1 not displaying User1_ID values
|
||||||
|
-- Jun 6, 2018 1:29:52 PM CEST
|
||||||
|
UPDATE AD_Val_Rule SET Code='C_ElementValue.C_Element_ID IN
|
||||||
|
(SELECT C_Element_ID FROM C_AcctSchema_Element WHERE AD_Client_ID=@#AD_Client_ID@ AND (ElementType=''@ElementType@'' OR (''@ElementType@''=''CO'' AND ElementType=''AC'')))',Updated=TO_DATE('2018-06-06 13:29:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=258
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201806061330_IDEMPIERE-3651.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- IDEMPIERE-3651 Report Column Set=>Report Column=>User Element List1 not displaying User1_ID values
|
||||||
|
-- Jun 13, 2018 2:32:06 PM CEST
|
||||||
|
UPDATE AD_Val_Rule SET Code='C_ElementValue.C_Element_ID IN
|
||||||
|
(SELECT C_Element_ID FROM C_AcctSchema_Element WHERE IsActive=''Y'' AND AD_Client_ID=@#AD_Client_ID@ AND (ElementType=''@ElementType@'' OR (''@ElementType@''=''CO'' AND ElementType=''AC'')))',Updated=TO_DATE('2018-06-13 14:32:06','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=258
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201806131433_IDEMPIERE-3651.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,135 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- IDEMPIERE-3738 Reference Color broken
|
||||||
|
-- Jul 4, 2018 4:02:49 PM CEST
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203229,0,0,'Y',TO_DATE('2018-07-04 16:02:37','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2018-07-04 16:02:37','YYYY-MM-DD HH24:MI:SS'),100,'Color','Color',NULL,NULL,'Color','D','c43cfcc2-2c92-4e91-88b8-88947297184d')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:03:02 PM CEST
|
||||||
|
INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure) VALUES (213570,0,'Color',135,'Color',7,'N','N','N','N','N',0,'N',27,0,0,'Y',TO_DATE('2018-07-04 16:03:02','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2018-07-04 16:03:02','YYYY-MM-DD HH24:MI:SS'),100,203229,'Y','N','D','N','N','N','Y','46472ac6-1648-48d8-b0bd-aef0d61a447f','Y',0,'N','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:03:03 PM CEST
|
||||||
|
ALTER TABLE Test ADD Color VARCHAR2(7) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:03:17 PM CEST
|
||||||
|
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (205590,'Color',152,213570,'Y',7,260,'N','N','N','N',0,0,'Y',TO_DATE('2018-07-04 16:03:16','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2018-07-04 16:03:16','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','dc447e1a-b62a-4a90-92db-17203eb7d6ac','Y',260,2)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=10, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=415
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=20, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2024
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=30, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=417
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=40, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=418
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=50, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=419
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=60, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=420
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=70, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=423
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=80, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=424
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=90, AD_FieldGroup_ID=103, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=421
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=100, AD_FieldGroup_ID=103, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=422
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=110, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3059
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=120, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3062
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=130, AD_FieldGroup_ID=50003, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=425
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=140, AD_FieldGroup_ID=50003, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=426
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=150, AD_FieldGroup_ID=200016, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3209
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=160, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3902
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=170, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3210
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4251
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3057
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3056
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=210, AD_FieldGroup_ID=123, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205590
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=0, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=416
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=0, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205058
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:08:25 PM CEST
|
||||||
|
UPDATE Test SET Color='#bfca3f',Updated=TO_DATE('2018-07-04 16:08:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE Test_ID=103
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:09:13 PM CEST
|
||||||
|
UPDATE AD_Menu SET IsActive='N',Updated=TO_DATE('2018-07-04 16:09:13','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Menu_ID=294
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:09:21 PM CEST
|
||||||
|
UPDATE AD_Window SET IsActive='N',Updated=TO_DATE('2018-07-04 16:09:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Window_ID=225
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:13:03 PM CEST
|
||||||
|
UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=18 | @AD_Reference_ID@=21 | @AD_Reference_ID@=25 | @AD_Reference_ID@=31 | @AD_Reference_ID@=35 | @AD_Reference_ID@=33 | @AD_Reference_ID@=32 | @AD_Reference_ID@=53370', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:13:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202518
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:13:12 PM CEST
|
||||||
|
UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=18 | @AD_Reference_ID@=21 | @AD_Reference_ID@=25 | @AD_Reference_ID@=31 | @AD_Reference_ID@=35 | @AD_Reference_ID@=33 | @AD_Reference_ID@=32 | @AD_Reference_ID@=53370', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-04 16:13:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202519
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201807041616_IDEMPIERE-3738.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- IDEMPIERE-1421 Tax Group field is enabled in the window Customer
|
||||||
|
-- Jul 11, 2018 4:25:37 PM CEST
|
||||||
|
UPDATE AD_Field SET IsActive='N', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-11 16:25:37','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=62773
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201807111626_IDEMPIERE-1421.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
-- IDEMPIERE-3651 Report Column Set=>Report Column=>User Element List1 not displaying User1_ID values
|
||||||
|
-- Jun 6, 2018 1:29:52 PM CEST
|
||||||
|
UPDATE AD_Val_Rule SET Code='C_ElementValue.C_Element_ID IN
|
||||||
|
(SELECT C_Element_ID FROM C_AcctSchema_Element WHERE AD_Client_ID=@#AD_Client_ID@ AND (ElementType=''@ElementType@'' OR (''@ElementType@''=''CO'' AND ElementType=''AC'')))',Updated=TO_TIMESTAMP('2018-06-06 13:29:52','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=258
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201806061330_IDEMPIERE-3651.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
-- IDEMPIERE-3651 Report Column Set=>Report Column=>User Element List1 not displaying User1_ID values
|
||||||
|
-- Jun 13, 2018 2:32:06 PM CEST
|
||||||
|
UPDATE AD_Val_Rule SET Code='C_ElementValue.C_Element_ID IN
|
||||||
|
(SELECT C_Element_ID FROM C_AcctSchema_Element WHERE IsActive=''Y'' AND AD_Client_ID=@#AD_Client_ID@ AND (ElementType=''@ElementType@'' OR (''@ElementType@''=''CO'' AND ElementType=''AC'')))',Updated=TO_TIMESTAMP('2018-06-13 14:32:06','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Val_Rule_ID=258
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201806131433_IDEMPIERE-3651.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,132 @@
|
||||||
|
-- IDEMPIERE-3738 Reference Color broken
|
||||||
|
-- Jul 4, 2018 4:02:49 PM CEST
|
||||||
|
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,Description,Help,PrintName,EntityType,AD_Element_UU) VALUES (203229,0,0,'Y',TO_TIMESTAMP('2018-07-04 16:02:37','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2018-07-04 16:02:37','YYYY-MM-DD HH24:MI:SS'),100,'Color','Color',NULL,NULL,'Color','D','c43cfcc2-2c92-4e91-88b8-88947297184d')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:03:02 PM CEST
|
||||||
|
INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure) VALUES (213570,0,'Color',135,'Color',7,'N','N','N','N','N',0,'N',27,0,0,'Y',TO_TIMESTAMP('2018-07-04 16:03:02','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2018-07-04 16:03:02','YYYY-MM-DD HH24:MI:SS'),100,203229,'Y','N','D','N','N','N','Y','46472ac6-1648-48d8-b0bd-aef0d61a447f','Y',0,'N','N')
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:03:03 PM CEST
|
||||||
|
ALTER TABLE Test ADD COLUMN Color VARCHAR(7) DEFAULT NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:03:17 PM CEST
|
||||||
|
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (205590,'Color',152,213570,'Y',7,260,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2018-07-04 16:03:16','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2018-07-04 16:03:16','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','dc447e1a-b62a-4a90-92db-17203eb7d6ac','Y',260,2)
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=10, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=415
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=20, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2024
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=30, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=417
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=40, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=418
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=50, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=419
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=60, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=420
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=70, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=423
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=80, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=424
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=90, AD_FieldGroup_ID=103, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=421
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=100, AD_FieldGroup_ID=103, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=422
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=110, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3059
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=120, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3062
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=130, AD_FieldGroup_ID=50003, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=425
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=140, AD_FieldGroup_ID=50003, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=426
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=150, AD_FieldGroup_ID=200016, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3209
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=160, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3902
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=170, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3210
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4251
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3057
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3056
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=210, AD_FieldGroup_ID=123, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205590
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=0, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=416
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:07:48 PM CEST
|
||||||
|
UPDATE AD_Field SET SeqNo=0, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:07:48','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205058
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:08:25 PM CEST
|
||||||
|
UPDATE Test SET Color='#bfca3f',Updated=TO_TIMESTAMP('2018-07-04 16:08:25','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE Test_ID=103
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:09:13 PM CEST
|
||||||
|
UPDATE AD_Menu SET IsActive='N',Updated=TO_TIMESTAMP('2018-07-04 16:09:13','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Menu_ID=294
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:09:21 PM CEST
|
||||||
|
UPDATE AD_Window SET IsActive='N',Updated=TO_TIMESTAMP('2018-07-04 16:09:21','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Window_ID=225
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:13:03 PM CEST
|
||||||
|
UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=18 | @AD_Reference_ID@=21 | @AD_Reference_ID@=25 | @AD_Reference_ID@=31 | @AD_Reference_ID@=35 | @AD_Reference_ID@=33 | @AD_Reference_ID@=32 | @AD_Reference_ID@=53370', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:13:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202518
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Jul 4, 2018 4:13:12 PM CEST
|
||||||
|
UPDATE AD_Field SET DisplayLogic='@AD_Reference_ID@=19 | @AD_Reference_ID@=30 | @AD_Reference_ID@=18 | @AD_Reference_ID@=21 | @AD_Reference_ID@=25 | @AD_Reference_ID@=31 | @AD_Reference_ID@=35 | @AD_Reference_ID@=33 | @AD_Reference_ID@=32 | @AD_Reference_ID@=53370', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-04 16:13:12','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202519
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201807041616_IDEMPIERE-3738.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
-- IDEMPIERE-1421 Tax Group field is enabled in the window Customer
|
||||||
|
-- Jul 11, 2018 4:25:37 PM CEST
|
||||||
|
UPDATE AD_Field SET IsActive='N', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-11 16:25:37','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=62773
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201807111626_IDEMPIERE-1421.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -651,58 +651,31 @@ public class CalloutOrder extends CalloutEngine
|
||||||
Integer M_PriceList_ID = (Integer) mTab.getValue("M_PriceList_ID");
|
Integer M_PriceList_ID = (Integer) mTab.getValue("M_PriceList_ID");
|
||||||
if (M_PriceList_ID == null || M_PriceList_ID.intValue()== 0)
|
if (M_PriceList_ID == null || M_PriceList_ID.intValue()== 0)
|
||||||
return "";
|
return "";
|
||||||
if (steps) log.warning("init");
|
|
||||||
PreparedStatement pstmt = null;
|
MPriceList pl = MPriceList.get(ctx, M_PriceList_ID, null);
|
||||||
ResultSet rs = null;
|
if (pl != null && pl.getM_PriceList_ID() == M_PriceList_ID) {
|
||||||
String sql = "SELECT pl.IsTaxIncluded,pl.EnforcePriceLimit,pl.C_Currency_ID,c.StdPrecision,"
|
if (!readonly) {
|
||||||
+ "plv.M_PriceList_Version_ID,plv.ValidFrom "
|
// Tax Included
|
||||||
+ "FROM M_PriceList pl,C_Currency c,M_PriceList_Version plv "
|
mTab.setValue("IsTaxIncluded", pl.isTaxIncluded());
|
||||||
+ "WHERE pl.C_Currency_ID=c.C_Currency_ID"
|
// Currency
|
||||||
+ " AND pl.M_PriceList_ID=plv.M_PriceList_ID"
|
mTab.setValue("C_Currency_ID", pl.getC_Currency_ID());
|
||||||
+ " AND pl.M_PriceList_ID=? " // 1
|
}
|
||||||
+ " AND plv.ValidFrom <= ? "
|
// Price Limit Enforce
|
||||||
+ "ORDER BY plv.ValidFrom DESC";
|
Env.setContext(ctx, WindowNo, "EnforcePriceLimit", pl.isEnforcePriceLimit());
|
||||||
// Use newest price list - may not be future
|
|
||||||
try
|
// PriceList Version
|
||||||
{
|
Timestamp date = null;
|
||||||
pstmt = DB.prepareStatement(sql, null);
|
|
||||||
pstmt.setInt(1, M_PriceList_ID.intValue());
|
|
||||||
Timestamp date = new Timestamp(System.currentTimeMillis());
|
|
||||||
if (mTab.getAD_Table_ID() == I_C_Order.Table_ID)
|
if (mTab.getAD_Table_ID() == I_C_Order.Table_ID)
|
||||||
date = Env.getContextAsDate(ctx, WindowNo, "DateOrdered");
|
date = Env.getContextAsDate(ctx, WindowNo, "DateOrdered");
|
||||||
else if (mTab.getAD_Table_ID() == I_C_Invoice.Table_ID)
|
else if (mTab.getAD_Table_ID() == I_C_Invoice.Table_ID)
|
||||||
date = Env.getContextAsDate(ctx, WindowNo, "DateInvoiced");
|
date = Env.getContextAsDate(ctx, WindowNo, "DateInvoiced");
|
||||||
pstmt.setTimestamp(2, date);
|
MPriceListVersion plv = pl.getPriceListVersion(date);
|
||||||
|
if (plv != null && plv.getM_PriceList_Version_ID() > 0) {
|
||||||
rs = pstmt.executeQuery();
|
Env.setContext(ctx, WindowNo, "M_PriceList_Version_ID", plv.getM_PriceList_Version_ID());
|
||||||
if (rs.next())
|
} else {
|
||||||
{
|
Env.setContext(ctx, WindowNo, "M_PriceList_Version_ID", (String) null);
|
||||||
// Tax Included
|
|
||||||
if (!readonly) {
|
|
||||||
mTab.setValue("IsTaxIncluded", new Boolean("Y".equals(rs.getString(1))));
|
|
||||||
}
|
|
||||||
// Price Limit Enforce
|
|
||||||
Env.setContext(ctx, WindowNo, "EnforcePriceLimit", rs.getString(2));
|
|
||||||
// Currency
|
|
||||||
if (!readonly) {
|
|
||||||
Integer ii = new Integer(rs.getInt(3));
|
|
||||||
mTab.setValue("C_Currency_ID", ii);
|
|
||||||
}
|
|
||||||
// PriceList Version
|
|
||||||
Env.setContext(ctx, WindowNo, "M_PriceList_Version_ID", rs.getInt(5));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (SQLException e)
|
|
||||||
{
|
|
||||||
log.log(Level.SEVERE, sql, e);
|
|
||||||
return e.getLocalizedMessage();
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
DB.close(rs, pstmt);
|
|
||||||
rs = null; pstmt = null;
|
|
||||||
}
|
|
||||||
if (steps) log.warning("fini");
|
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
} // priceListFill
|
} // priceListFill
|
||||||
|
|
|
@ -1485,6 +1485,7 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
StringBuilder postSelect = new StringBuilder(" FROM ")
|
StringBuilder postSelect = new StringBuilder(" FROM ")
|
||||||
.append(foreignTable).append(" WHERE ")
|
.append(foreignTable).append(" WHERE ")
|
||||||
.append(foreignColumn).append("=? AND IsActive='Y' AND AD_Client_ID=?");
|
.append(foreignColumn).append("=? AND IsActive='Y' AND AD_Client_ID=?");
|
||||||
|
if (field != null ) {
|
||||||
if (!Util.isEmpty(field.getVO().ValidationCode)) {
|
if (!Util.isEmpty(field.getVO().ValidationCode)) {
|
||||||
String dynamicValid = Env.parseContext(Env.getCtx(), field.getWindowNo(), field.getGridTab().getTabNo(), field.getVO().ValidationCode, false);
|
String dynamicValid = Env.parseContext(Env.getCtx(), field.getWindowNo(), field.getGridTab().getTabNo(), field.getVO().ValidationCode, false);
|
||||||
if (Util.isEmpty(dynamicValid)) {
|
if (Util.isEmpty(dynamicValid)) {
|
||||||
|
@ -1509,6 +1510,7 @@ public class GridTabCSVImporter implements IGridTabImporter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
StringBuilder selectCount = new StringBuilder("SELECT COUNT(*)").append(postSelect);
|
StringBuilder selectCount = new StringBuilder("SELECT COUNT(*)").append(postSelect);
|
||||||
StringBuilder selectId = new StringBuilder("SELECT ").append(foreignTable).append("_ID").append(postSelect);
|
StringBuilder selectId = new StringBuilder("SELECT ").append(foreignTable).append("_ID").append(postSelect);
|
||||||
int count = DB.getSQLValueEx(trxName, selectCount.toString(), value, thisClientId);
|
int count = DB.getSQLValueEx(trxName, selectCount.toString(), value, thisClientId);
|
||||||
|
|
|
@ -116,16 +116,14 @@ public class Doc_Payment extends Doc
|
||||||
return facts;
|
return facts;
|
||||||
}
|
}
|
||||||
|
|
||||||
FactLine dr = null;
|
|
||||||
FactLine cr = null;
|
|
||||||
int AD_Org_ID = getBank_Org_ID(); // Bank Account Org
|
int AD_Org_ID = getBank_Org_ID(); // Bank Account Org
|
||||||
if (getDocumentType().equals(DOCTYPE_ARReceipt))
|
if (getDocumentType().equals(DOCTYPE_ARReceipt))
|
||||||
{
|
{
|
||||||
// Asset
|
// Asset
|
||||||
dr = fact.createLine(null, getAccount(Doc.ACCTTYPE_BankInTransit, as),
|
FactLine fl = fact.createLine(null, getAccount(Doc.ACCTTYPE_BankInTransit, as),
|
||||||
getC_Currency_ID(), getAmount(), null);
|
getC_Currency_ID(), getAmount(), null);
|
||||||
if (dr != null && AD_Org_ID != 0)
|
if (fl != null && AD_Org_ID != 0)
|
||||||
dr.setAD_Org_ID(AD_Org_ID);
|
fl.setAD_Org_ID(AD_Org_ID);
|
||||||
//
|
//
|
||||||
MAccount acct = null;
|
MAccount acct = null;
|
||||||
if (getC_Charge_ID() != 0)
|
if (getC_Charge_ID() != 0)
|
||||||
|
@ -134,11 +132,11 @@ public class Doc_Payment extends Doc
|
||||||
acct = getAccount(Doc.ACCTTYPE_C_Prepayment, as);
|
acct = getAccount(Doc.ACCTTYPE_C_Prepayment, as);
|
||||||
else
|
else
|
||||||
acct = getAccount(Doc.ACCTTYPE_UnallocatedCash, as);
|
acct = getAccount(Doc.ACCTTYPE_UnallocatedCash, as);
|
||||||
cr = fact.createLine(null, acct,
|
fl = fact.createLine(null, acct,
|
||||||
getC_Currency_ID(), null, getAmount());
|
getC_Currency_ID(), null, getAmount());
|
||||||
if (cr != null && AD_Org_ID != 0
|
if (fl != null && AD_Org_ID != 0
|
||||||
&& getC_Charge_ID() == 0) // don't overwrite charge
|
&& getC_Charge_ID() == 0) // don't overwrite charge
|
||||||
cr.setAD_Org_ID(AD_Org_ID);
|
fl.setAD_Org_ID(AD_Org_ID);
|
||||||
}
|
}
|
||||||
// APP
|
// APP
|
||||||
else if (getDocumentType().equals(DOCTYPE_APPayment))
|
else if (getDocumentType().equals(DOCTYPE_APPayment))
|
||||||
|
@ -150,17 +148,17 @@ public class Doc_Payment extends Doc
|
||||||
acct = getAccount(Doc.ACCTTYPE_V_Prepayment, as);
|
acct = getAccount(Doc.ACCTTYPE_V_Prepayment, as);
|
||||||
else
|
else
|
||||||
acct = getAccount(Doc.ACCTTYPE_PaymentSelect, as);
|
acct = getAccount(Doc.ACCTTYPE_PaymentSelect, as);
|
||||||
dr = fact.createLine(null, acct,
|
FactLine fl = fact.createLine(null, acct,
|
||||||
getC_Currency_ID(), getAmount(), null);
|
getC_Currency_ID(), getAmount(), null);
|
||||||
if (dr != null && AD_Org_ID != 0
|
if (fl != null && AD_Org_ID != 0
|
||||||
&& getC_Charge_ID() == 0) // don't overwrite charge
|
&& getC_Charge_ID() == 0) // don't overwrite charge
|
||||||
dr.setAD_Org_ID(AD_Org_ID);
|
fl.setAD_Org_ID(AD_Org_ID);
|
||||||
|
|
||||||
// Asset
|
// Asset
|
||||||
cr = fact.createLine(null, getAccount(Doc.ACCTTYPE_BankInTransit, as),
|
fl = fact.createLine(null, getAccount(Doc.ACCTTYPE_BankInTransit, as),
|
||||||
getC_Currency_ID(), null, getAmount());
|
getC_Currency_ID(), null, getAmount());
|
||||||
if (cr != null && AD_Org_ID != 0)
|
if (fl != null && AD_Org_ID != 0)
|
||||||
cr.setAD_Org_ID(AD_Org_ID);
|
fl.setAD_Org_ID(AD_Org_ID);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -168,27 +166,6 @@ public class Doc_Payment extends Doc
|
||||||
log.log(Level.SEVERE, p_Error);
|
log.log(Level.SEVERE, p_Error);
|
||||||
fact = null;
|
fact = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Avoid usage of clearing accounts
|
|
||||||
// If both accounts and orgs are the same then remove the posting
|
|
||||||
if (dr != null && cr != null) {
|
|
||||||
MAccount acct_dr = dr.getAccount();
|
|
||||||
MAccount acct_cr = cr.getAccount();
|
|
||||||
int org_dr = dr.getAD_Org_ID();
|
|
||||||
int org_cr = cr.getAD_Org_ID();
|
|
||||||
if (!as.isPostIfClearingEqual() && acct_dr!=null && acct_dr.equals(acct_cr) && org_dr == org_cr) {
|
|
||||||
|
|
||||||
BigDecimal debit = dr.getAmtSourceDr();
|
|
||||||
BigDecimal credit = cr.getAmtSourceCr();
|
|
||||||
|
|
||||||
if (debit.compareTo(credit) == 0) {
|
|
||||||
fact.remove(dr);
|
|
||||||
fact.remove(cr);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// End Avoid usage of clearing accounts
|
|
||||||
//
|
//
|
||||||
ArrayList<Fact> facts = new ArrayList<Fact>();
|
ArrayList<Fact> facts = new ArrayList<Fact>();
|
||||||
facts.add(fact);
|
facts.add(fact);
|
||||||
|
|
|
@ -23,7 +23,11 @@ import java.io.InputStreamReader;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.GregorianCalendar;
|
||||||
|
import java.util.StringTokenizer;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
import javax.xml.parsers.SAXParser;
|
import javax.xml.parsers.SAXParser;
|
||||||
|
@ -198,6 +202,10 @@ public abstract class OFXBankStatementHandler extends DefaultHandler
|
||||||
m_errorMessage = new StringBuffer("ErrorInitializingParser");
|
m_errorMessage = new StringBuffer("ErrorInitializingParser");
|
||||||
m_errorDescription = new StringBuffer("Unable to initialize SAX parser: ").append(e.getMessage());
|
m_errorDescription = new StringBuffer("Unable to initialize SAX parser: ").append(e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!result)
|
||||||
|
closeBufferedReader();
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
} // init
|
} // init
|
||||||
|
|
||||||
|
@ -216,7 +224,7 @@ public abstract class OFXBankStatementHandler extends DefaultHandler
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
|
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
|
||||||
reader.mark(HEADER_SIZE + 100);
|
reader.mark(HEADER_SIZE + 20000);
|
||||||
StringBuilder header = new StringBuilder();
|
StringBuilder header = new StringBuilder();
|
||||||
for (int i = 0; i < HEADER_SIZE; i++)
|
for (int i = 0; i < HEADER_SIZE; i++)
|
||||||
{
|
{
|
||||||
|
@ -252,6 +260,7 @@ public abstract class OFXBankStatementHandler extends DefaultHandler
|
||||||
{
|
{
|
||||||
m_errorMessage = new StringBuffer("ErrorReadingData");
|
m_errorMessage = new StringBuffer("ErrorReadingData");
|
||||||
m_errorDescription = new StringBuffer(e.getMessage());
|
m_errorDescription = new StringBuffer(e.getMessage());
|
||||||
|
closeBufferedReader();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -318,11 +327,22 @@ public abstract class OFXBankStatementHandler extends DefaultHandler
|
||||||
{
|
{
|
||||||
m_errorMessage = new StringBuffer("ErrorReadingData");
|
m_errorMessage = new StringBuffer("ErrorReadingData");
|
||||||
m_errorDescription = new StringBuffer(e.getMessage());
|
m_errorDescription = new StringBuffer(e.getMessage());
|
||||||
|
} finally {
|
||||||
|
closeBufferedReader();
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
} // loadLines
|
} // loadLines
|
||||||
|
|
||||||
|
private void closeBufferedReader() {
|
||||||
|
if (m_reader != null)
|
||||||
|
try {
|
||||||
|
m_reader.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method getDateLastRun
|
* Method getDateLastRun
|
||||||
* @return Timestamp
|
* @return Timestamp
|
||||||
|
@ -748,6 +768,87 @@ public abstract class OFXBankStatementHandler extends DefaultHandler
|
||||||
} // endElement
|
} // endElement
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2008 Web Cohesion
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* source: https://github.com/stoicflame/ofx4j/blob/a604e4f6ffefea61403434cf853bbd1b20740386/src/main/java/com/webcohesion/ofx4j/io/DefaultStringConversion.java
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Parse the timezone offset of the form [HOURS_OFF_GMT:TZ_ID]
|
||||||
|
*
|
||||||
|
* @param tzoffset The offset pattern.
|
||||||
|
* @return The timezone.
|
||||||
|
*/
|
||||||
|
protected TimeZone parseTimeZone(String tzoffset) {
|
||||||
|
StringTokenizer tokenizer = new StringTokenizer(tzoffset, "[]:");
|
||||||
|
TimeZone tz = GMT_TIME_ZONE;
|
||||||
|
if (tokenizer.hasMoreTokens()) {
|
||||||
|
String hoursOff = tokenizer.nextToken();
|
||||||
|
tz = TimeZone.getTimeZone("GMT" + hoursOff);
|
||||||
|
}
|
||||||
|
|
||||||
|
return tz;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final TimeZone GMT_TIME_ZONE = TimeZone.getTimeZone("GMT");
|
||||||
|
public static final int DATE_FORMAT_LENGTH = "yyyyMMddHHmmss.SSS".length();
|
||||||
|
public static final int TIME_FORMAT_LENGTH = "HHmmss.SSS".length();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses a date according to OFX.
|
||||||
|
*
|
||||||
|
* @param value The value of the date.
|
||||||
|
* @return The date value.
|
||||||
|
*/
|
||||||
|
protected Date parseDate(String value) {
|
||||||
|
char[] parseableDate = new char[DATE_FORMAT_LENGTH];
|
||||||
|
Arrays.fill(parseableDate, '0');
|
||||||
|
parseableDate[parseableDate.length - 4] = '.';
|
||||||
|
char[] valueChars = value.toCharArray();
|
||||||
|
int index = 0;
|
||||||
|
while (index < valueChars.length && valueChars[index] != '[') {
|
||||||
|
if (index < DATE_FORMAT_LENGTH) {
|
||||||
|
parseableDate[index] = valueChars[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
int year = Integer.parseInt(new String(parseableDate, 0, 4));
|
||||||
|
int month = Integer.parseInt(new String(parseableDate, 4, 2)) - 1; //java month numberss are zero-based
|
||||||
|
int day = Integer.parseInt(new String(parseableDate, 6, 2));
|
||||||
|
int hour = Integer.parseInt(new String(parseableDate, 8, 2));
|
||||||
|
int minute = Integer.parseInt(new String(parseableDate, 10, 2));
|
||||||
|
int second = Integer.parseInt(new String(parseableDate, 12, 2));
|
||||||
|
int milli = Integer.parseInt(new String(parseableDate, 15, 3));
|
||||||
|
|
||||||
|
//set up a new calendar at zero, then set all the fields.
|
||||||
|
GregorianCalendar calendar = new GregorianCalendar(year, month, day, hour, minute, second);
|
||||||
|
if (index < valueChars.length && valueChars[index] == '[') {
|
||||||
|
String tzoffset = value.substring(index);
|
||||||
|
calendar.setTimeZone(parseTimeZone(tzoffset));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
calendar.setTimeZone(GMT_TIME_ZONE);
|
||||||
|
}
|
||||||
|
calendar.add(GregorianCalendar.MILLISECOND, milli);
|
||||||
|
|
||||||
|
return calendar.getTime();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method parseOfxDate
|
* Method parseOfxDate
|
||||||
* @param value String
|
* @param value String
|
||||||
|
@ -758,9 +859,7 @@ public abstract class OFXBankStatementHandler extends DefaultHandler
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
return new Timestamp (parseDate(value).getTime());
|
||||||
sdf.setLenient(false);
|
|
||||||
return new Timestamp (sdf.parse(value).getTime());
|
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
package org.compiere.impexp;
|
package org.compiere.impexp;
|
||||||
|
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import org.compiere.model.MBankStatementLoader;
|
import org.compiere.model.MBankStatementLoader;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
@ -38,6 +37,9 @@ public final class OFXFileBankStatementLoader extends OFXBankStatementHandler im
|
||||||
* @return boolean
|
* @return boolean
|
||||||
* @see org.compiere.impexp.BankStatementLoaderInterface#init(MBankStatementLoader)
|
* @see org.compiere.impexp.BankStatementLoaderInterface#init(MBankStatementLoader)
|
||||||
*/
|
*/
|
||||||
|
//m_stream is not closed because the BufferedReader in the parent class is closed and according to the Java docs:
|
||||||
|
//Calling close() on the BufferedReader closes the underlying stream by default implementation
|
||||||
|
@SuppressWarnings("resource")
|
||||||
public boolean init(MBankStatementLoader controller)
|
public boolean init(MBankStatementLoader controller)
|
||||||
{
|
{
|
||||||
boolean result = false;
|
boolean result = false;
|
||||||
|
@ -72,13 +74,6 @@ public final class OFXFileBankStatementLoader extends OFXBankStatementHandler im
|
||||||
{
|
{
|
||||||
m_errorMessage = new StringBuffer("ErrorReadingData");
|
m_errorMessage = new StringBuffer("ErrorReadingData");
|
||||||
m_errorDescription = new StringBuffer();
|
m_errorDescription = new StringBuffer();
|
||||||
}finally{
|
|
||||||
if (m_stream != null)
|
|
||||||
try {
|
|
||||||
m_stream.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -104,11 +104,12 @@ public class GridTable extends AbstractTableModel
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -4651516342985623070L;
|
private static final long serialVersionUID = -2741647620577906242L;
|
||||||
|
|
||||||
public static final String DATA_REFRESH_MESSAGE = "Refreshed";
|
public static final String DATA_REFRESH_MESSAGE = "Refreshed";
|
||||||
public static final String DATA_UPDATE_COPIED_MESSAGE = "UpdateCopied";
|
public static final String DATA_UPDATE_COPIED_MESSAGE = "UpdateCopied";
|
||||||
public static final String DATA_INSERTED_MESSAGE = "Inserted";
|
public static final String DATA_INSERTED_MESSAGE = "Inserted";
|
||||||
|
public static final String DATA_IGNORED_MESSAGE = "Ignored";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JDBC Based Buffered Table
|
* JDBC Based Buffered Table
|
||||||
|
@ -549,7 +550,7 @@ public class GridTable extends AbstractTableModel
|
||||||
* @param index index
|
* @param index index
|
||||||
* @return GridField
|
* @return GridField
|
||||||
*/
|
*/
|
||||||
protected GridField getField (int index)
|
public GridField getField (int index)
|
||||||
{
|
{
|
||||||
if (index < 0 || index >= m_fields.size())
|
if (index < 0 || index >= m_fields.size())
|
||||||
return null;
|
return null;
|
||||||
|
@ -2858,7 +2859,7 @@ public class GridTable extends AbstractTableModel
|
||||||
// fireTableRowsUpdated(m_rowChanged, m_rowChanged); >> messes up display?? (clearSelection)
|
// fireTableRowsUpdated(m_rowChanged, m_rowChanged); >> messes up display?? (clearSelection)
|
||||||
}
|
}
|
||||||
m_newRow = -1;
|
m_newRow = -1;
|
||||||
fireDataStatusIEvent("Ignored", "");
|
fireDataStatusIEvent(DATA_IGNORED_MESSAGE, "");
|
||||||
} // dataIgnore
|
} // dataIgnore
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -743,8 +743,6 @@ public class MColumn extends X_AD_Column
|
||||||
foreignTable = "S_ResourceAssignment";
|
foreignTable = "S_ResourceAssignment";
|
||||||
} else if (DisplayType.Image == refid) {
|
} else if (DisplayType.Image == refid) {
|
||||||
foreignTable = "AD_Image";
|
foreignTable = "AD_Image";
|
||||||
} else if (DisplayType.Color == refid) {
|
|
||||||
foreignTable = "AD_Color";
|
|
||||||
} else if (DisplayType.Chart == refid) {
|
} else if (DisplayType.Chart == refid) {
|
||||||
foreignTable = "AD_Chart";
|
foreignTable = "AD_Chart";
|
||||||
}
|
}
|
||||||
|
|
|
@ -248,7 +248,7 @@ public class MPriceList extends X_M_PriceList
|
||||||
.setOrderBy("ValidFrom DESC")
|
.setOrderBy("ValidFrom DESC")
|
||||||
.first();
|
.first();
|
||||||
if (m_plv == null)
|
if (m_plv == null)
|
||||||
log.warning("None found M_PriceList_ID=" + getM_PriceList_ID() + " - " + valid);
|
if (log.isLoggable(Level.INFO)) log.info("None found M_PriceList_ID=" + getM_PriceList_ID() + " - " + valid);
|
||||||
else
|
else
|
||||||
if (log.isLoggable(Level.FINE)) log.fine(m_plv.toString());
|
if (log.isLoggable(Level.FINE)) log.fine(m_plv.toString());
|
||||||
return m_plv;
|
return m_plv;
|
||||||
|
|
|
@ -45,6 +45,11 @@ import org.compiere.util.ValueNamePair;
|
||||||
*/
|
*/
|
||||||
public class MQuery implements Serializable
|
public class MQuery implements Serializable
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private static final long serialVersionUID = 481623650333512326L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Query from Parameter
|
* Get Query from Parameter
|
||||||
* @param ctx context (to determine language)
|
* @param ctx context (to determine language)
|
||||||
|
@ -357,9 +362,6 @@ public class MQuery implements Serializable
|
||||||
m_TableName = MTable.getTableName (Env.getCtx(), AD_Table_ID);
|
m_TableName = MTable.getTableName (Env.getCtx(), AD_Table_ID);
|
||||||
} // MQuery
|
} // MQuery
|
||||||
|
|
||||||
/** Serialization Info **/
|
|
||||||
private static final long serialVersionUID = 4883859385509199306L;
|
|
||||||
|
|
||||||
/** Table Name */
|
/** Table Name */
|
||||||
private String m_TableName = "";
|
private String m_TableName = "";
|
||||||
/** PInstance */
|
/** PInstance */
|
||||||
|
@ -448,6 +450,11 @@ public class MQuery implements Serializable
|
||||||
new ValueNamePair (NULL, " NULL "),
|
new ValueNamePair (NULL, " NULL "),
|
||||||
new ValueNamePair (NOT_NULL, " !NULL ")
|
new ValueNamePair (NOT_NULL, " !NULL ")
|
||||||
};
|
};
|
||||||
|
/** Operators for encrypted fields */
|
||||||
|
public static final ValueNamePair[] OPERATORS_ENCRYPTED = new ValueNamePair[] {
|
||||||
|
new ValueNamePair (NULL, " NULL "),
|
||||||
|
new ValueNamePair (NOT_NULL, " !NULL ")
|
||||||
|
};
|
||||||
|
|
||||||
/** Operators for Numbers, Dates, Integers */
|
/** Operators for Numbers, Dates, Integers */
|
||||||
public static final ValueNamePair[] OPERATORS_NUMBERS = new ValueNamePair[] {
|
public static final ValueNamePair[] OPERATORS_NUMBERS = new ValueNamePair[] {
|
||||||
|
|
|
@ -16,11 +16,13 @@ package org.compiere.model;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import org.adempiere.base.Service;
|
import org.adempiere.base.Service;
|
||||||
import org.adempiere.base.event.EventManager;
|
import org.adempiere.base.event.EventManager;
|
||||||
|
@ -42,18 +44,20 @@ import org.osgi.service.event.Event;
|
||||||
public class MRecentItem extends X_AD_RecentItem
|
public class MRecentItem extends X_AD_RecentItem
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 6899554875745832L;
|
private static final long serialVersionUID = -311416268128338337L;
|
||||||
|
|
||||||
public static final String ON_RECENT_ITEM_CHANGED_TOPIC = "onRecentItemChanged";
|
public static final String ON_RECENT_ITEM_CHANGED_TOPIC = "onRecentItemChanged";
|
||||||
|
|
||||||
/** Recent Item Cache */
|
/** Recent Item Cache */
|
||||||
private static CCache<Integer,MRecentItem> s_cache = new CCache<Integer,MRecentItem>(Table_Name, 10);
|
private static CCache<String,MRecentItem> s_cache = new CCache<String,MRecentItem>(Table_Name, 10);
|
||||||
/** Logger */
|
/** Logger */
|
||||||
@SuppressWarnings("unused")
|
|
||||||
private static CLogger s_log = CLogger.getCLogger(MRecentItem.class);
|
private static CLogger s_log = CLogger.getCLogger(MRecentItem.class);
|
||||||
|
|
||||||
|
/* Recent Item cached Label */
|
||||||
|
private String m_label;
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* Standard Constructor
|
* Standard Constructor
|
||||||
* @param ctx context
|
* @param ctx context
|
||||||
|
@ -65,13 +69,17 @@ public class MRecentItem extends X_AD_RecentItem
|
||||||
super (ctx, AD_RecentItem_ID, trxName);
|
super (ctx, AD_RecentItem_ID, trxName);
|
||||||
if (AD_RecentItem_ID > 0) {
|
if (AD_RecentItem_ID > 0) {
|
||||||
synchronized (MRecentItem.class) {
|
synchronized (MRecentItem.class) {
|
||||||
Integer key = new Integer (AD_RecentItem_ID);
|
String key = getCacheKey(AD_RecentItem_ID, ctx);
|
||||||
if (!s_cache.containsKey(key))
|
if (!s_cache.containsKey(key))
|
||||||
s_cache.put (key, this);
|
s_cache.put (key, this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // MRecentItem
|
} // MRecentItem
|
||||||
|
|
||||||
|
private static String getCacheKey(int AD_RecentItem_ID, Properties ctx) {
|
||||||
|
return AD_RecentItem_ID + "|" + Env.getAD_Language(ctx);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load Constructor
|
* Load Constructor
|
||||||
* @param ctx ctx
|
* @param ctx ctx
|
||||||
|
@ -81,9 +89,9 @@ public class MRecentItem extends X_AD_RecentItem
|
||||||
public MRecentItem (Properties ctx, ResultSet rs, String trxName)
|
public MRecentItem (Properties ctx, ResultSet rs, String trxName)
|
||||||
{
|
{
|
||||||
super(ctx, rs, trxName);
|
super(ctx, rs, trxName);
|
||||||
Integer key = null;
|
String key = null;
|
||||||
try {
|
try {
|
||||||
key = new Integer (rs.getInt("AD_RecentItem_ID"));
|
key = getCacheKey(rs.getInt("AD_RecentItem_ID"), ctx);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new AdempiereException(e);
|
throw new AdempiereException(e);
|
||||||
}
|
}
|
||||||
|
@ -101,7 +109,7 @@ public class MRecentItem extends X_AD_RecentItem
|
||||||
*/
|
*/
|
||||||
public static synchronized MRecentItem get (Properties ctx, int AD_RecentItem_ID)
|
public static synchronized MRecentItem get (Properties ctx, int AD_RecentItem_ID)
|
||||||
{
|
{
|
||||||
Integer ii = new Integer (AD_RecentItem_ID);
|
String ii = getCacheKey(AD_RecentItem_ID, ctx);
|
||||||
MRecentItem ri = (MRecentItem)s_cache.get(ii);
|
MRecentItem ri = (MRecentItem)s_cache.get(ii);
|
||||||
if (ri == null)
|
if (ri == null)
|
||||||
ri = new MRecentItem (ctx, AD_RecentItem_ID, null);
|
ri = new MRecentItem (ctx, AD_RecentItem_ID, null);
|
||||||
|
@ -123,7 +131,8 @@ public class MRecentItem extends X_AD_RecentItem
|
||||||
MRecentItem retValue = it.next();
|
MRecentItem retValue = it.next();
|
||||||
if (retValue.getAD_Table_ID() == AD_Table_ID
|
if (retValue.getAD_Table_ID() == AD_Table_ID
|
||||||
&& retValue.getRecord_ID() == Record_ID
|
&& retValue.getRecord_ID() == Record_ID
|
||||||
&& retValue.getCtx() == ctx
|
&& retValue.getAD_User_ID() == AD_User_ID
|
||||||
|
&& Env.getAD_Language(ctx).equals(Env.getAD_Language(retValue.getCtx()))
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
return retValue;
|
return retValue;
|
||||||
|
@ -155,7 +164,7 @@ public class MRecentItem extends X_AD_RecentItem
|
||||||
|
|
||||||
if (retValue != null)
|
if (retValue != null)
|
||||||
{
|
{
|
||||||
Integer key = new Integer (retValue.getAD_RecentItem_ID());
|
String key = getCacheKey(retValue.getAD_RecentItem_ID(), ctx);
|
||||||
s_cache.put (key, retValue);
|
s_cache.put (key, retValue);
|
||||||
}
|
}
|
||||||
return retValue;
|
return retValue;
|
||||||
|
@ -265,7 +274,7 @@ public class MRecentItem extends X_AD_RecentItem
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean delete(boolean force) {
|
public boolean delete(boolean force) {
|
||||||
Integer ii = new Integer (getAD_RecentItem_ID());
|
String ii = getCacheKey(getAD_RecentItem_ID(), getCtx());
|
||||||
synchronized (MRecentItem.class) {
|
synchronized (MRecentItem.class) {
|
||||||
s_cache.remove(ii);
|
s_cache.remove(ii);
|
||||||
}
|
}
|
||||||
|
@ -273,16 +282,23 @@ public class MRecentItem extends X_AD_RecentItem
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<MRecentItem> getFromUser(Properties ctx, int AD_User_ID) {
|
public static List<MRecentItem> getFromUser(Properties ctx, int AD_User_ID) {
|
||||||
List<MRecentItem> ris = new Query(ctx, MRecentItem.Table_Name, "NVL(AD_User_ID,0)=?", null)
|
int[] ids = new Query(ctx, MRecentItem.Table_Name, "NVL(AD_User_ID,0)=?", null)
|
||||||
.setOnlyActiveRecords(true)
|
.setOnlyActiveRecords(true)
|
||||||
.setClient_ID()
|
.setClient_ID()
|
||||||
.setParameters(AD_User_ID)
|
.setParameters(AD_User_ID)
|
||||||
.setOrderBy("Updated DESC")
|
.setOrderBy("Updated DESC")
|
||||||
.list();
|
.getIDs();
|
||||||
|
List<MRecentItem> ris = new ArrayList<MRecentItem>();
|
||||||
|
for (int id : ids) {
|
||||||
|
ris.add(MRecentItem.get(ctx, id));
|
||||||
|
}
|
||||||
return ris;
|
return ris;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getLabel() {
|
public String getLabel() {
|
||||||
|
if (m_label != null) {
|
||||||
|
return m_label;
|
||||||
|
}
|
||||||
String windowName;
|
String windowName;
|
||||||
MWindow win = MWindow.get(getCtx(), getAD_Window_ID());
|
MWindow win = MWindow.get(getCtx(), getAD_Window_ID());
|
||||||
MUserDefWin userDef = MUserDefWin.getBestMatch(getCtx(), getAD_Window_ID());
|
MUserDefWin userDef = MUserDefWin.getBestMatch(getCtx(), getAD_Window_ID());
|
||||||
|
@ -322,7 +338,29 @@ public class MRecentItem extends X_AD_RecentItem
|
||||||
if (recordIdentifier.length() == 0)
|
if (recordIdentifier.length() == 0)
|
||||||
recordIdentifier.append(" [no identifier]");
|
recordIdentifier.append(" [no identifier]");
|
||||||
}
|
}
|
||||||
return windowName + ": " + recordIdentifier.substring(1);
|
m_label = windowName + ": " + recordIdentifier.substring(1);
|
||||||
|
if (s_log.isLoggable(Level.INFO)) s_log.info(m_label);
|
||||||
|
return m_label;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static synchronized void clearLabel(int AD_Table_ID, int Record_ID) {
|
||||||
|
Iterator<MRecentItem> it = s_cache.values().iterator();
|
||||||
|
while (it.hasNext()) {
|
||||||
|
MRecentItem retValue = it.next();
|
||||||
|
if (retValue.getAD_Table_ID() == AD_Table_ID && retValue.getRecord_ID() == Record_ID) {
|
||||||
|
retValue.clearLabel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void clearLabel() {
|
||||||
|
m_label = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
StringBuilder sb = new StringBuilder("MRecentItem[").append(get_ID()).append("]=").append(getLabel());
|
||||||
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // MRecentItem
|
} // MRecentItem
|
||||||
|
|
|
@ -63,8 +63,7 @@ public class MReportCube extends X_PA_ReportCube {
|
||||||
"INNER JOIN Fact_Acct fact ON (fact.dateacct between p.startdate and p.enddate " +
|
"INNER JOIN Fact_Acct fact ON (fact.dateacct between p.startdate and p.enddate " +
|
||||||
" and fact.ad_client_id = c.ad_client_id) " +
|
" and fact.ad_client_id = c.ad_client_id) " +
|
||||||
"WHERE c.PA_ReportCube_ID = ? " +
|
"WHERE c.PA_ReportCube_ID = ? " +
|
||||||
"AND fact.updated > c.LastRecalculated " +
|
"AND fact.updated > c.LastRecalculated";
|
||||||
"AND p.periodtype='S' ";
|
|
||||||
|
|
||||||
log.log (Level.FINE, sql);
|
log.log (Level.FINE, sql);
|
||||||
|
|
||||||
|
@ -130,10 +129,9 @@ public class MReportCube extends X_PA_ReportCube {
|
||||||
"p.c_period_id, p.StartDate, COALESCE(SUM(AmtAcctDr),0), COALESCE(SUM(AmtAcctCr),0), " +
|
"p.c_period_id, p.StartDate, COALESCE(SUM(AmtAcctDr),0), COALESCE(SUM(AmtAcctCr),0), " +
|
||||||
"COALESCE(SUM(Qty),0)");
|
"COALESCE(SUM(Qty),0)");
|
||||||
String from = " FROM fact_acct f " +
|
String from = " FROM fact_acct f " +
|
||||||
" INNER JOIN C_Period p ON ( f.DateAcct BETWEEN p.StartDate AND p.EndDate ) " +
|
" INNER JOIN C_Period p ON ( f.C_Period_ID = p.C_Period_ID ) " +
|
||||||
" INNER JOIN C_Year y ON ( p.C_Year_ID = y.C_Year_ID ) " +
|
" INNER JOIN C_Year y ON ( p.C_Year_ID = y.C_Year_ID ) " +
|
||||||
" WHERE p.PeriodType = 'S' " +
|
" WHERE y.C_Calendar_ID = ? AND f.AD_Client_ID = ? ";
|
||||||
" AND y.C_Calendar_ID = ? ";
|
|
||||||
if ( getLastRecalculated() != null && !reset )
|
if ( getLastRecalculated() != null && !reset )
|
||||||
from += "AND p.C_Period_ID IN " + periods;
|
from += "AND p.C_Period_ID IN " + periods;
|
||||||
|
|
||||||
|
@ -190,7 +188,7 @@ public class MReportCube extends X_PA_ReportCube {
|
||||||
|
|
||||||
String sql = insert.append(select.toString()).append(from).append(groups.toString()).toString();
|
String sql = insert.append(select.toString()).append(from).append(groups.toString()).toString();
|
||||||
if (log.isLoggable(Level.FINE))log.log(Level.FINE, sql);
|
if (log.isLoggable(Level.FINE))log.log(Level.FINE, sql);
|
||||||
Object[] params = new Object[] { getPA_ReportCube_ID(), getC_Calendar_ID() };
|
Object[] params = new Object[] { getPA_ReportCube_ID(), getC_Calendar_ID(), getAD_Client_ID() };
|
||||||
|
|
||||||
start = System.currentTimeMillis();
|
start = System.currentTimeMillis();
|
||||||
int rows = DB.executeUpdateEx(sql, params, get_TrxName());
|
int rows = DB.executeUpdateEx(sql, params, get_TrxName());
|
||||||
|
|
|
@ -2069,7 +2069,10 @@ public abstract class PO
|
||||||
l_trxname.setLength(23);
|
l_trxname.setLength(23);
|
||||||
m_trxName = Trx.createTrxName(l_trxname.toString());
|
m_trxName = Trx.createTrxName(l_trxname.toString());
|
||||||
localTrx = Trx.get(m_trxName, true);
|
localTrx = Trx.get(m_trxName, true);
|
||||||
localTrx.setDisplayName(getClass().getName()+"_save");
|
if (newRecord)
|
||||||
|
localTrx.setDisplayName(getClass().getName() + "_insert");
|
||||||
|
else
|
||||||
|
localTrx.setDisplayName(getClass().getName() + "_update_ID" + get_ID());
|
||||||
localTrx.getConnection();
|
localTrx.getConnection();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2341,9 +2344,10 @@ public abstract class PO
|
||||||
m_newValues = new Object[size];
|
m_newValues = new Object[size];
|
||||||
m_createNew = false;
|
m_createNew = false;
|
||||||
}
|
}
|
||||||
if (!newRecord)
|
if (!newRecord) {
|
||||||
CacheMgt.get().reset(p_info.getTableName());
|
CacheMgt.get().reset(p_info.getTableName());
|
||||||
else if (get_ID() > 0 && success)
|
MRecentItem.clearLabel(p_info.getAD_Table_ID(), get_ID());
|
||||||
|
} else if (get_ID() > 0 && success)
|
||||||
CacheMgt.get().newRecord(p_info.getTableName(), get_ID());
|
CacheMgt.get().newRecord(p_info.getTableName(), get_ID());
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
|
@ -3215,7 +3219,7 @@ public abstract class PO
|
||||||
{
|
{
|
||||||
localTrxName = Trx.createTrxName("POdel");
|
localTrxName = Trx.createTrxName("POdel");
|
||||||
localTrx = Trx.get(localTrxName, true);
|
localTrx = Trx.get(localTrxName, true);
|
||||||
localTrx.setDisplayName(getClass().getName()+"_delete");
|
localTrx.setDisplayName(getClass().getName()+ "_delete_ID" + get_ID());
|
||||||
localTrx.getConnection();
|
localTrx.getConnection();
|
||||||
m_trxName = localTrxName;
|
m_trxName = localTrxName;
|
||||||
}
|
}
|
||||||
|
|
|
@ -199,7 +199,7 @@ public final class DisplayType
|
||||||
if (displayType == ID || displayType == Table || displayType == TableDir
|
if (displayType == ID || displayType == Table || displayType == TableDir
|
||||||
|| displayType == Search || displayType == Location || displayType == Locator
|
|| displayType == Search || displayType == Location || displayType == Locator
|
||||||
|| displayType == Account || displayType == Assignment || displayType == PAttribute
|
|| displayType == Account || displayType == Assignment || displayType == PAttribute
|
||||||
|| displayType == Image || displayType == Chart || displayType == Color)
|
|| displayType == Image || displayType == Chart)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
List<IDisplayTypeFactory> factoryList = Service.locator().list(IDisplayTypeFactory.class).getServices();
|
List<IDisplayTypeFactory> factoryList = Service.locator().list(IDisplayTypeFactory.class).getServices();
|
||||||
|
@ -622,13 +622,8 @@ public final class DisplayType
|
||||||
else
|
else
|
||||||
return "VARCHAR2(" + fieldLength + ")";
|
return "VARCHAR2(" + fieldLength + ")";
|
||||||
}
|
}
|
||||||
if (displayType == DisplayType.Color) // this condition is never reached - filtered above in isID
|
if (displayType == DisplayType.Color)
|
||||||
{
|
return "VARCHAR2(" + fieldLength + ")";
|
||||||
if (columnName.endsWith("_ID"))
|
|
||||||
return "NUMBER(10)";
|
|
||||||
else
|
|
||||||
return "CHAR(" + fieldLength + ")";
|
|
||||||
}
|
|
||||||
if (displayType == DisplayType.Button)
|
if (displayType == DisplayType.Button)
|
||||||
{
|
{
|
||||||
if (columnName.endsWith("_ID"))
|
if (columnName.endsWith("_ID"))
|
||||||
|
|
|
@ -72,7 +72,7 @@ public final class EMail implements Serializable
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -2489441683920482601L;
|
private static final long serialVersionUID = 5355436165040508855L;
|
||||||
|
|
||||||
//use in server bean
|
//use in server bean
|
||||||
public final static String HTML_MAIL_MARKER = "ContentType=text/html;";
|
public final static String HTML_MAIL_MARKER = "ContentType=text/html;";
|
||||||
|
@ -602,7 +602,7 @@ public final class EMail implements Serializable
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
m_from = new InternetAddress (newFrom, true);
|
m_from = createInternetAddress(newFrom);
|
||||||
if (MSysConfig.getBooleanValue(MSysConfig.MAIL_SEND_BCC_TO_FROM, false, Env.getAD_Client_ID(Env.getCtx())))
|
if (MSysConfig.getBooleanValue(MSysConfig.MAIL_SEND_BCC_TO_FROM, false, Env.getAD_Client_ID(Env.getCtx())))
|
||||||
addBcc(newFrom);
|
addBcc(newFrom);
|
||||||
}
|
}
|
||||||
|
@ -628,7 +628,7 @@ public final class EMail implements Serializable
|
||||||
InternetAddress ia = null;
|
InternetAddress ia = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ia = new InternetAddress (newTo, true);
|
ia = createInternetAddress(newTo);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -679,7 +679,7 @@ public final class EMail implements Serializable
|
||||||
InternetAddress ia = null;
|
InternetAddress ia = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ia = new InternetAddress (newCc, true);
|
ia = createInternetAddress(newCc);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -719,7 +719,7 @@ public final class EMail implements Serializable
|
||||||
InternetAddress ia = null;
|
InternetAddress ia = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ia = new InternetAddress (bccAddress, true);
|
ia = createInternetAddress(bccAddress);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -758,7 +758,7 @@ public final class EMail implements Serializable
|
||||||
InternetAddress ia = null;
|
InternetAddress ia = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ia = new InternetAddress (newTo, true);
|
ia = createInternetAddress(newTo);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
@ -1221,4 +1221,21 @@ public final class EMail implements Serializable
|
||||||
additionalHeaders.add(new ValueNamePair(value, name));
|
additionalHeaders.add(new ValueNamePair(value, name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an internet address with personal if the email address is formatted as "Personal <email>"
|
||||||
|
* @param email
|
||||||
|
* @return internet address with personal if defined
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public static InternetAddress createInternetAddress(String email) throws Exception {
|
||||||
|
InternetAddress ia = new InternetAddress (email, true);
|
||||||
|
if (email.contains("<") && email.contains(">")) {
|
||||||
|
int idx = email.lastIndexOf("<");
|
||||||
|
String personal = email.substring(0, idx).trim();
|
||||||
|
if (! personal.isEmpty())
|
||||||
|
ia.setPersonal(personal);
|
||||||
|
}
|
||||||
|
return ia;
|
||||||
|
}
|
||||||
|
|
||||||
} // EMail
|
} // EMail
|
||||||
|
|
|
@ -1324,6 +1324,7 @@ public class Login
|
||||||
user.setIsLocked(false);
|
user.setIsLocked(false);
|
||||||
user.setDateAccountLocked(null);
|
user.setDateAccountLocked(null);
|
||||||
user.setFailedLoginCount(0);
|
user.setFailedLoginCount(0);
|
||||||
|
Env.setContext(Env.getCtx(), "#AD_Client_ID", user.getAD_Client_ID());
|
||||||
if (!user.save())
|
if (!user.save())
|
||||||
log.severe("Failed to unlock user account");
|
log.severe("Failed to unlock user account");
|
||||||
}
|
}
|
||||||
|
@ -1337,6 +1338,7 @@ public class Login
|
||||||
{
|
{
|
||||||
user.setIsLocked(true);
|
user.setIsLocked(true);
|
||||||
user.setDateAccountLocked(new Timestamp(now));
|
user.setDateAccountLocked(new Timestamp(now));
|
||||||
|
Env.setContext(Env.getCtx(), "#AD_Client_ID", user.getAD_Client_ID());
|
||||||
if (!user.save())
|
if (!user.save())
|
||||||
log.severe("Failed to lock user account");
|
log.severe("Failed to lock user account");
|
||||||
}
|
}
|
||||||
|
@ -1441,6 +1443,7 @@ public class Login
|
||||||
{
|
{
|
||||||
user.setFailedLoginCount(0);
|
user.setFailedLoginCount(0);
|
||||||
user.setDateLastLogin(new Timestamp(now));
|
user.setDateLastLogin(new Timestamp(now));
|
||||||
|
Env.setContext(Env.getCtx(), "#AD_Client_ID", user.getAD_Client_ID());
|
||||||
if (!user.save())
|
if (!user.save())
|
||||||
log.severe("Failed to update user record with date last login (" + user.getName() + " / clientID = " + user.getAD_Client_ID() + ")");
|
log.severe("Failed to update user record with date last login (" + user.getName() + " / clientID = " + user.getAD_Client_ID() + ")");
|
||||||
}
|
}
|
||||||
|
@ -1490,6 +1493,7 @@ public class Login
|
||||||
user.setFailedLoginCount(count);
|
user.setFailedLoginCount(count);
|
||||||
user.setIsLocked(reachMaxAttempt);
|
user.setIsLocked(reachMaxAttempt);
|
||||||
user.setDateAccountLocked(user.isLocked() ? new Timestamp(now) : null);
|
user.setDateAccountLocked(user.isLocked() ? new Timestamp(now) : null);
|
||||||
|
Env.setContext(Env.getCtx(), "#AD_Client_ID", user.getAD_Client_ID());
|
||||||
if (!user.save())
|
if (!user.save())
|
||||||
log.severe("Failed to update user record with increase failed login count");
|
log.severe("Failed to update user record with increase failed login count");
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ esac
|
||||||
# adjust these variables to your environment
|
# adjust these variables to your environment
|
||||||
IDEMPIERE_USER=idempiere
|
IDEMPIERE_USER=idempiere
|
||||||
IDEMPIERE_HOME=/opt/idempiere-server
|
IDEMPIERE_HOME=/opt/idempiere-server
|
||||||
JAVA_HOME=`ls -r /usr/lib/jvm/java-[678]-openjdk*/bin/javac /usr/lib/jvm/java-[8]-oracle*/bin/javac | head -1`
|
JAVA_HOME=`ls -r /usr/lib/jvm/java-[6789]-openjdk*/bin/javac /usr/lib/jvm/java-[89]-oracle*/bin/javac | head -1`
|
||||||
JAVA_HOME=`dirname $JAVA_HOME`
|
JAVA_HOME=`dirname $JAVA_HOME`
|
||||||
JAVA_HOME=`dirname $JAVA_HOME`
|
JAVA_HOME=`dirname $JAVA_HOME`
|
||||||
SU=su
|
SU=su
|
||||||
|
@ -533,8 +533,8 @@ Enter postgres password:"
|
||||||
}
|
}
|
||||||
|
|
||||||
getidempierestatus() {
|
getidempierestatus() {
|
||||||
IDEMPIERESTATUSSTRING=$(ps ax | grep -v grep | grep ${IDEMPIERE_HOME})
|
IDEMPIERESTATUSSTRING=$(ps ax | grep java | grep org.adempiere.server.application | grep -v grep)
|
||||||
echo $IDEMPIERESTATUSSTRING | grep -q ${IDEMPIERE_HOME}
|
echo $IDEMPIERESTATUSSTRING | grep -q org.adempiere.server.application
|
||||||
IDEMPIERESTATUS=$?
|
IDEMPIERESTATUS=$?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -626,14 +626,14 @@ stop () {
|
||||||
log_success_msg "Service stopped with OSGi shutdown"
|
log_success_msg "Service stopped with OSGi shutdown"
|
||||||
else
|
else
|
||||||
log_warning_msg "Trying direct kill with signal -15"
|
log_warning_msg "Trying direct kill with signal -15"
|
||||||
kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
kill -15 -`ps ax o pgid,command | grep org.adempiere.server.application | grep -v grep | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
||||||
sleep 5
|
sleep 5
|
||||||
getidempierestatus
|
getidempierestatus
|
||||||
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
||||||
log_success_msg "Service stopped with kill -15"
|
log_success_msg "Service stopped with kill -15"
|
||||||
else
|
else
|
||||||
log_warning_msg "Trying direct kill with signal -9"
|
log_warning_msg "Trying direct kill with signal -9"
|
||||||
kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
kill -9 -`ps ax o pgid,command | grep org.adempiere.server.application | grep -v grep | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
||||||
sleep 5
|
sleep 5
|
||||||
getidempierestatus
|
getidempierestatus
|
||||||
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
||||||
|
@ -664,7 +664,7 @@ dostatus () {
|
||||||
if [ $IDEMPIERESTATUS -eq 0 ] ; then
|
if [ $IDEMPIERESTATUS -eq 0 ] ; then
|
||||||
echo
|
echo
|
||||||
echo "iDempiere is running:"
|
echo "iDempiere is running:"
|
||||||
ps ax | grep -v grep | grep ${IDEMPIERE_HOME} | sed 's/^[[:space:]]*\([[:digit:]]*\).*:[[:digit:]][[:digit:]][[:space:]]\(.*\)/\1 \2/'
|
ps ax | grep org.adempiere.server.application | grep -v grep | sed 's/^[[:space:]]*\([[:digit:]]*\).*:[[:digit:]][[:digit:]][[:space:]]\(.*\)/\1 \2/'
|
||||||
echo
|
echo
|
||||||
else
|
else
|
||||||
echo "iDempiere is stopped"
|
echo "iDempiere is stopped"
|
||||||
|
|
|
@ -32,8 +32,8 @@ IDEMPIERESTATUS=
|
||||||
MAXITERATIONS=60
|
MAXITERATIONS=60
|
||||||
|
|
||||||
getidempierestatus() {
|
getidempierestatus() {
|
||||||
IDEMPIERESTATUSSTRING=$(ps ax | grep -v grep | grep $IDEMPIERE_HOME)
|
IDEMPIERESTATUSSTRING=$(ps ax | grep java | grep org.adempiere.server.application | grep -v grep)
|
||||||
echo $IDEMPIERESTATUSSTRING | grep -q $IDEMPIERE_HOME
|
echo $IDEMPIERESTATUSSTRING | grep -q org.adempiere.server.application
|
||||||
IDEMPIERESTATUS=$?
|
IDEMPIERESTATUS=$?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,14 +96,14 @@ stop () {
|
||||||
log_success_msg "Service stopped with OSGi shutdown"
|
log_success_msg "Service stopped with OSGi shutdown"
|
||||||
else
|
else
|
||||||
log_warning_msg "Trying direct kill with signal -15"
|
log_warning_msg "Trying direct kill with signal -15"
|
||||||
kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
kill -15 -`ps ax o pgid,command | grep org.adempiere.server.application | grep -v grep | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
||||||
sleep 5
|
sleep 5
|
||||||
getidempierestatus
|
getidempierestatus
|
||||||
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
||||||
log_success_msg "Service stopped with kill -15"
|
log_success_msg "Service stopped with kill -15"
|
||||||
else
|
else
|
||||||
log_warning_msg "Trying direct kill with signal -9"
|
log_warning_msg "Trying direct kill with signal -9"
|
||||||
kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
kill -9 -`ps ax o pgid,command | grep org.adempiere.server.application | grep -v grep | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
||||||
sleep 5
|
sleep 5
|
||||||
getidempierestatus
|
getidempierestatus
|
||||||
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
||||||
|
@ -118,7 +118,7 @@ stop () {
|
||||||
|
|
||||||
restart () {
|
restart () {
|
||||||
stop
|
stop
|
||||||
sleep 1
|
sleep 2
|
||||||
start
|
start
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ status () {
|
||||||
if [ $IDEMPIERESTATUS -eq 0 ] ; then
|
if [ $IDEMPIERESTATUS -eq 0 ] ; then
|
||||||
echo
|
echo
|
||||||
echo "iDempiere is running:"
|
echo "iDempiere is running:"
|
||||||
ps ax | grep -v grep | grep $IDEMPIERE_HOME | sed 's/^[[:space:]]*\([[:digit:]]*\).*:[[:digit:]][[:digit:]][[:space:]]\(.*\)/\1 \2/'
|
ps ax | grep org.adempiere.server.application | grep -v grep | sed 's/^[[:space:]]*\([[:digit:]]*\).*:[[:digit:]][[:digit:]][[:space:]]\(.*\)/\1 \2/'
|
||||||
echo
|
echo
|
||||||
else
|
else
|
||||||
echo "iDempiere is stopped"
|
echo "iDempiere is stopped"
|
||||||
|
|
|
@ -25,11 +25,11 @@ IDEMPIEREUSER=idempiere
|
||||||
|
|
||||||
RETVAL=0
|
RETVAL=0
|
||||||
IDEMPIERESTATUS=
|
IDEMPIERESTATUS=
|
||||||
MAXITERATIONS=60 # 2 seconds every iteration, max wait 2 minutes)
|
MAXITERATIONS=60 # 2 seconds every iteration, max wait 2 minutes
|
||||||
|
|
||||||
getidempierestatus() {
|
getidempierestatus() {
|
||||||
IDEMPIERESTATUSSTRING=$(ps ax | grep -v grep | grep $IDEMPIERE_HOME)
|
IDEMPIERESTATUSSTRING=$(ps ax | grep java | grep org.adempiere.server.application | grep -v grep)
|
||||||
echo $IDEMPIERESTATUSSTRING | grep -q $IDEMPIERE_HOME
|
echo $IDEMPIERESTATUSSTRING | grep -q org.adempiere.server.application
|
||||||
IDEMPIERESTATUS=$?
|
IDEMPIERESTATUS=$?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ start () {
|
||||||
stop () {
|
stop () {
|
||||||
getidempierestatus
|
getidempierestatus
|
||||||
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
||||||
echo "idempiere is already stopped"
|
echo "iDempiere is already stopped"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
echo -n "Stopping iDempiere ERP: "
|
echo -n "Stopping iDempiere ERP: "
|
||||||
|
@ -92,14 +92,14 @@ stop () {
|
||||||
echo_success
|
echo_success
|
||||||
else
|
else
|
||||||
echo "Trying direct kill with signal -15"
|
echo "Trying direct kill with signal -15"
|
||||||
kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
kill -15 -`ps ax o pgid,command | grep org.adempiere.server.application | grep -v grep | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
||||||
sleep 5
|
sleep 5
|
||||||
getidempierestatus
|
getidempierestatus
|
||||||
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
||||||
echo_success
|
echo_success
|
||||||
else
|
else
|
||||||
echo "Trying direct kill with signal -9"
|
echo "Trying direct kill with signal -9"
|
||||||
kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
kill -9 -`ps ax o pgid,command | grep org.adempiere.server.application | grep -v grep | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
||||||
sleep 5
|
sleep 5
|
||||||
getidempierestatus
|
getidempierestatus
|
||||||
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
||||||
|
@ -130,11 +130,11 @@ status () {
|
||||||
getidempierestatus
|
getidempierestatus
|
||||||
if [ $IDEMPIERESTATUS -eq 0 ] ; then
|
if [ $IDEMPIERESTATUS -eq 0 ] ; then
|
||||||
echo
|
echo
|
||||||
echo "idempiere is running:"
|
echo "iDempiere is running:"
|
||||||
ps ax | grep -v grep | grep $IDEMPIERE_HOME | sed 's/^[[:space:]]*\([[:digit:]]*\).*:[[:digit:]][[:digit:]][[:space:]]\(.*\)/\1 \2/'
|
ps ax | grep org.adempiere.server.application | grep -v grep | sed 's/^[[:space:]]*\([[:digit:]]*\).*:[[:digit:]][[:digit:]][[:space:]]\(.*\)/\1 \2/'
|
||||||
echo
|
echo
|
||||||
else
|
else
|
||||||
echo "idempiere is stopped"
|
echo "iDempiere is stopped"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,8 +57,8 @@ IDEMPIERESTATUS=
|
||||||
MAXITERATIONS=60
|
MAXITERATIONS=60
|
||||||
|
|
||||||
getidempierestatus() {
|
getidempierestatus() {
|
||||||
IDEMPIERESTATUSSTRING=$(ps ax | grep -v grep | grep $IDEMPIERE_HOME)
|
IDEMPIERESTATUSSTRING=$(ps ax | grep java | grep org.adempiere.server.application | grep -v grep)
|
||||||
echo $IDEMPIERESTATUSSTRING | grep -q $IDEMPIERE_HOME
|
echo $IDEMPIERESTATUSSTRING | grep -q org.adempiere.server.application
|
||||||
IDEMPIERESTATUS=$?
|
IDEMPIERESTATUS=$?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,14 +123,14 @@ stop () {
|
||||||
echo "Service stopped with OSGi shutdown"
|
echo "Service stopped with OSGi shutdown"
|
||||||
else
|
else
|
||||||
echo "Trying direct kill with signal -15"
|
echo "Trying direct kill with signal -15"
|
||||||
kill -15 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
kill -15 -`ps ax o pgid,command | grep org.adempiere.server.application | grep -v grep | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
||||||
sleep 5
|
sleep 5
|
||||||
getidempierestatus
|
getidempierestatus
|
||||||
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
||||||
echo "Service stopped with kill -15"
|
echo "Service stopped with kill -15"
|
||||||
else
|
else
|
||||||
echo "Trying direct kill with signal -9"
|
echo "Trying direct kill with signal -9"
|
||||||
kill -9 -`ps ax o pgid,command | grep -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
kill -9 -`ps ax o pgid,command | grep org.adempiere.server.application | grep -v grep | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
||||||
sleep 5
|
sleep 5
|
||||||
getidempierestatus
|
getidempierestatus
|
||||||
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
if [ $IDEMPIERESTATUS -ne 0 ] ; then
|
||||||
|
@ -146,7 +146,7 @@ stop () {
|
||||||
|
|
||||||
restart () {
|
restart () {
|
||||||
stop
|
stop
|
||||||
sleep 1
|
sleep 2
|
||||||
start
|
start
|
||||||
rc_status
|
rc_status
|
||||||
}
|
}
|
||||||
|
@ -166,7 +166,7 @@ status () {
|
||||||
if [ $IDEMPIERESTATUS -eq 0 ] ; then
|
if [ $IDEMPIERESTATUS -eq 0 ] ; then
|
||||||
echo
|
echo
|
||||||
echo "iDempiere is running:"
|
echo "iDempiere is running:"
|
||||||
ps ax | grep -v grep | grep $IDEMPIERE_HOME | sed 's/^[[:space:]]*\([[:digit:]]*\).*:[[:digit:]][[:digit:]][[:space:]]\(.*\)/\1 \2/'
|
ps ax | grep org.adempiere.server.application | grep -v grep | sed 's/^[[:space:]]*\([[:digit:]]*\).*:[[:digit:]][[:digit:]][[:space:]]\(.*\)/\1 \2/'
|
||||||
echo
|
echo
|
||||||
else
|
else
|
||||||
echo "iDempiere is stopped"
|
echo "iDempiere is stopped"
|
||||||
|
@ -182,9 +182,6 @@ case "$1" in
|
||||||
stop)
|
stop)
|
||||||
stop
|
stop
|
||||||
;;
|
;;
|
||||||
reload)
|
|
||||||
restart
|
|
||||||
;;
|
|
||||||
restart)
|
restart)
|
||||||
restart
|
restart
|
||||||
;;
|
;;
|
||||||
|
@ -195,7 +192,7 @@ case "$1" in
|
||||||
status
|
status
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo $"Usage: $0 {start|stop|reload|restart|condrestart|status}"
|
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
|
||||||
exit 1
|
exit 1
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
@ -807,7 +807,7 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
|
||||||
@Override
|
@Override
|
||||||
public void onCallback(Boolean result) {
|
public void onCallback(Boolean result) {
|
||||||
if (result) {
|
if (result) {
|
||||||
adTabbox.getSelectedGridTab().navigate(0);
|
adTabbox.getSelectedGridTab().navigate(-1); // not zero because of IDEMPIERE-3736
|
||||||
focusToActivePanel();
|
focusToActivePanel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1398,11 +1398,12 @@ public abstract class AbstractADWindowContent extends AbstractUIPart implements
|
||||||
|| GridTab.DEFAULT_STATUS_MESSAGE.equals(adInfo)
|
|| GridTab.DEFAULT_STATUS_MESSAGE.equals(adInfo)
|
||||||
|| GridTable.DATA_REFRESH_MESSAGE.equals(adInfo)
|
|| GridTable.DATA_REFRESH_MESSAGE.equals(adInfo)
|
||||||
|| GridTable.DATA_INSERTED_MESSAGE.equals(adInfo)
|
|| GridTable.DATA_INSERTED_MESSAGE.equals(adInfo)
|
||||||
|
|| GridTable.DATA_IGNORED_MESSAGE.equals(adInfo)
|
||||||
|| GridTable.DATA_UPDATE_COPIED_MESSAGE.equals(adInfo)
|
|| GridTable.DATA_UPDATE_COPIED_MESSAGE.equals(adInfo)
|
||||||
) {
|
) {
|
||||||
|
|
||||||
String prefix = null;
|
String prefix = null;
|
||||||
if (dbInfo.contains("*"))
|
if (dbInfo.contains("*") || dbInfo.contains("?")) // ? used when not-autosave
|
||||||
prefix = "*";
|
prefix = "*";
|
||||||
|
|
||||||
String titleLogic = null;
|
String titleLogic = null;
|
||||||
|
|
|
@ -114,10 +114,10 @@ public class FeedbackRequestWindow extends Window implements EventListener<Event
|
||||||
throw new RuntimeException(Msg.getMsg(Env.getCtx(), "AccessTableNoUpdate"));
|
throw new RuntimeException(Msg.getMsg(Env.getCtx(), "AccessTableNoUpdate"));
|
||||||
}
|
}
|
||||||
|
|
||||||
Label lblRequestType = new Label("Request Type");
|
Label lblRequestType = new Label(Msg.getElement(Env.getCtx(), "R_RequestType_ID"));
|
||||||
Label lblPriority = new Label("Priority");
|
Label lblPriority = new Label(Msg.getElement(Env.getCtx(), "Priority"));
|
||||||
Label lblSummary = new Label("Summary");
|
Label lblSummary = new Label(Msg.getElement(Env.getCtx(), "Summary"));
|
||||||
Label lblSalesRep = new Label("Sales Representative");
|
Label lblSalesRep = new Label(Msg.getElement(Env.getCtx(), "SalesRep_ID"));
|
||||||
|
|
||||||
int columnID = MColumn.getColumn_ID(MRequest.Table_Name, MRequest.COLUMNNAME_R_RequestType_ID);
|
int columnID = MColumn.getColumn_ID(MRequest.Table_Name, MRequest.COLUMNNAME_R_RequestType_ID);
|
||||||
MLookup lookup = MLookupFactory.get(Env.getCtx(), 0, 0, columnID, DisplayType.TableDir);
|
MLookup lookup = MLookupFactory.get(Env.getCtx(), 0, 0, columnID, DisplayType.TableDir);
|
||||||
|
|
|
@ -294,8 +294,14 @@ public class WListItemRenderer implements ListitemRenderer<Object>, EventListene
|
||||||
}
|
}
|
||||||
else if (field instanceof Timestamp)
|
else if (field instanceof Timestamp)
|
||||||
{
|
{
|
||||||
|
int refId = 0;
|
||||||
|
if (m_tableColumns != null && columnIndex < m_tableColumns.size()) {
|
||||||
|
refId = m_tableColumns.get(columnIndex).getAD_Reference_ID();
|
||||||
|
}
|
||||||
|
|
||||||
SimpleDateFormat dateFormat = DisplayType.getDateFormat(DisplayType.Date, AEnv.getLanguage(Env.getCtx()));
|
if (refId == 0)
|
||||||
|
refId = DisplayType.Date;
|
||||||
|
SimpleDateFormat dateFormat = DisplayType.getDateFormat(refId, AEnv.getLanguage(Env.getCtx()));
|
||||||
listcell.setValue(dateFormat.format((Timestamp)field));
|
listcell.setValue(dateFormat.format((Timestamp)field));
|
||||||
if (isCellEditable)
|
if (isCellEditable)
|
||||||
{
|
{
|
||||||
|
@ -396,7 +402,10 @@ public class WListItemRenderer implements ListitemRenderer<Object>, EventListene
|
||||||
{
|
{
|
||||||
addColumn(header, null);
|
addColumn(header, null);
|
||||||
}
|
}
|
||||||
|
public void addColumn(String header, String description)
|
||||||
|
{
|
||||||
|
addColumn(header, description, 0);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Add Table Column.
|
* Add Table Column.
|
||||||
* after adding a column, you need to set the column classes again
|
* after adding a column, you need to set the column classes again
|
||||||
|
@ -405,13 +414,14 @@ public class WListItemRenderer implements ListitemRenderer<Object>, EventListene
|
||||||
* @param header The header text for the column
|
* @param header The header text for the column
|
||||||
* @param description
|
* @param description
|
||||||
*/
|
*/
|
||||||
public void addColumn(String header, String description)
|
public void addColumn(String header, String description, int AD_Reference_ID)
|
||||||
{
|
{
|
||||||
WTableColumn tableColumn;
|
WTableColumn tableColumn;
|
||||||
|
|
||||||
tableColumn = new WTableColumn();
|
tableColumn = new WTableColumn();
|
||||||
tableColumn.setHeaderValue(Util.cleanAmp(header));
|
tableColumn.setHeaderValue(Util.cleanAmp(header));
|
||||||
tableColumn.setTooltipText(description);
|
tableColumn.setTooltipText(description);
|
||||||
|
tableColumn.setAD_Reference_ID(AD_Reference_ID);
|
||||||
m_tableColumns.add(tableColumn);
|
m_tableColumns.add(tableColumn);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -59,7 +59,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -706774424788688953L;
|
private static final long serialVersionUID = -5501893389366975849L;
|
||||||
|
|
||||||
/** Logger. */
|
/** Logger. */
|
||||||
private static CLogger logger = CLogger.getCLogger(WListbox.class);
|
private static CLogger logger = CLogger.getCLogger(WListbox.class);
|
||||||
|
@ -371,7 +371,7 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis
|
||||||
}
|
}
|
||||||
|
|
||||||
// add to model
|
// add to model
|
||||||
addColumn(layout[columnIndex].getColHeader(), layout[columnIndex].getColDescription());
|
addColumn(layout[columnIndex].getColHeader(), layout[columnIndex].getColDescription(), layout[columnIndex].getAD_Reference_ID());
|
||||||
|
|
||||||
// set the colour column
|
// set the colour column
|
||||||
if (layout[columnIndex].isColorColumn())
|
if (layout[columnIndex].isColorColumn())
|
||||||
|
@ -438,16 +438,20 @@ public class WListbox extends Listbox implements IMiniTable, TableValueChangeLis
|
||||||
addColumn(header, null);
|
addColumn(header, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addColumn (String header, String description)
|
||||||
|
{
|
||||||
|
addColumn(header, description, 0);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Add Table Column and specify the column header.
|
* Add Table Column and specify the column header.
|
||||||
*
|
*
|
||||||
* @param header name of column header
|
* @param header name of column header
|
||||||
* @param description
|
* @param description
|
||||||
*/
|
*/
|
||||||
public void addColumn (String header, String description)
|
public void addColumn (String header, String description, int AD_Reference_ID)
|
||||||
{
|
{
|
||||||
WListItemRenderer renderer = (WListItemRenderer)getItemRenderer();
|
WListItemRenderer renderer = (WListItemRenderer)getItemRenderer();
|
||||||
renderer.addColumn(Util.cleanAmp(header), description);
|
renderer.addColumn(Util.cleanAmp(header), description, AD_Reference_ID);
|
||||||
getModel().addColumn();
|
getModel().addColumn();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -45,6 +45,8 @@ public class WTableColumn
|
||||||
|
|
||||||
protected String tooltipText;
|
protected String tooltipText;
|
||||||
|
|
||||||
|
private int AD_Reference_ID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cover method, using a default width of 75
|
* Cover method, using a default width of 75
|
||||||
* @see #WTableColumn(int)
|
* @see #WTableColumn(int)
|
||||||
|
@ -288,4 +290,12 @@ public class WTableColumn
|
||||||
public void setTooltipText(String tooltipText) {
|
public void setTooltipText(String tooltipText) {
|
||||||
this.tooltipText = tooltipText;
|
this.tooltipText = tooltipText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getAD_Reference_ID() {
|
||||||
|
return AD_Reference_ID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAD_Reference_ID(int AD_Reference_ID) {
|
||||||
|
this.AD_Reference_ID=AD_Reference_ID;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -179,6 +179,7 @@ public class WLocationEditor extends WEditor implements EventListener<Event>, Pr
|
||||||
{
|
{
|
||||||
if (log.isLoggable(Level.CONFIG)) log.config( "actionPerformed - " + m_value);
|
if (log.isLoggable(Level.CONFIG)) log.config( "actionPerformed - " + m_value);
|
||||||
final WLocationDialog ld = new WLocationDialog(Msg.getMsg(Env.getCtx(), "Location"), m_value, gridField);
|
final WLocationDialog ld = new WLocationDialog(Msg.getMsg(Env.getCtx(), "Location"), m_value, gridField);
|
||||||
|
final int oldValue = m_value == null ? 0 : m_value.getC_Location_ID();
|
||||||
ld.addEventListener(DialogEvents.ON_WINDOW_CLOSE, new EventListener<Event>() {
|
ld.addEventListener(DialogEvents.ON_WINDOW_CLOSE, new EventListener<Event>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -194,10 +195,8 @@ public class WLocationEditor extends WEditor implements EventListener<Event>, Pr
|
||||||
if (m_value != null)
|
if (m_value != null)
|
||||||
C_Location_ID = m_value.getC_Location_ID();
|
C_Location_ID = m_value.getC_Location_ID();
|
||||||
Integer ii = new Integer(C_Location_ID);
|
Integer ii = new Integer(C_Location_ID);
|
||||||
// force Change - user does not realize that embedded object is already saved.
|
|
||||||
ValueChangeEvent valuechange = new ValueChangeEvent(WLocationEditor.this,getColumnName(),null,null);
|
if (C_Location_ID != 0 && oldValue == 0)
|
||||||
fireValueChange(valuechange); // resets m_mLocation
|
|
||||||
if (C_Location_ID != 0)
|
|
||||||
{
|
{
|
||||||
ValueChangeEvent vc = new ValueChangeEvent(WLocationEditor.this,getColumnName(),null,ii);
|
ValueChangeEvent vc = new ValueChangeEvent(WLocationEditor.this,getColumnName(),null,ii);
|
||||||
fireValueChange(vc);
|
fireValueChange(vc);
|
||||||
|
|
|
@ -728,6 +728,7 @@ public class InfoWindow extends InfoPanel implements ValueChangeListener, EventL
|
||||||
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), colSQL, DisplayType.getClass(infoColumn.getAD_Reference_ID(), true));
|
columnInfo = new ColumnInfo(infoColumn.get_Translation("Name"), colSQL, DisplayType.getClass(infoColumn.getAD_Reference_ID(), true));
|
||||||
}
|
}
|
||||||
columnInfo.setColDescription(infoColumn.get_Translation("Description"));
|
columnInfo.setColDescription(infoColumn.get_Translation("Description"));
|
||||||
|
columnInfo.setAD_Reference_ID(infoColumn.getAD_Reference_ID());
|
||||||
columnInfo.setGridField(gridFields.get(i));
|
columnInfo.setGridField(gridFields.get(i));
|
||||||
list.add(columnInfo);
|
list.add(columnInfo);
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,7 @@ import org.adempiere.webui.event.DialogEvents;
|
||||||
import org.adempiere.webui.event.ValueChangeEvent;
|
import org.adempiere.webui.event.ValueChangeEvent;
|
||||||
import org.adempiere.webui.event.ValueChangeListener;
|
import org.adempiere.webui.event.ValueChangeListener;
|
||||||
import org.adempiere.webui.factory.ButtonFactory;
|
import org.adempiere.webui.factory.ButtonFactory;
|
||||||
|
import org.adempiere.webui.panel.StatusBarPanel;
|
||||||
import org.adempiere.webui.part.MultiTabPart;
|
import org.adempiere.webui.part.MultiTabPart;
|
||||||
import org.adempiere.webui.theme.ThemeManager;
|
import org.adempiere.webui.theme.ThemeManager;
|
||||||
import org.adempiere.webui.util.ZKUpdateUtil;
|
import org.adempiere.webui.util.ZKUpdateUtil;
|
||||||
|
@ -93,7 +94,6 @@ import org.compiere.util.DB;
|
||||||
import org.compiere.util.DisplayType;
|
import org.compiere.util.DisplayType;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Msg;
|
import org.compiere.util.Msg;
|
||||||
import org.compiere.util.SecureEngine;
|
|
||||||
import org.compiere.util.Util;
|
import org.compiere.util.Util;
|
||||||
import org.compiere.util.ValueNamePair;
|
import org.compiere.util.ValueNamePair;
|
||||||
import org.zkoss.zk.au.out.AuFocus;
|
import org.zkoss.zk.au.out.AuFocus;
|
||||||
|
@ -232,8 +232,14 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
private Properties m_simpleCtx;
|
private Properties m_simpleCtx;
|
||||||
private Properties m_advanceCtx;
|
private Properties m_advanceCtx;
|
||||||
|
|
||||||
|
private int rowCount;
|
||||||
|
|
||||||
private static final String ON_POST_VISIBLE_ATTR = "onPostVisible.Event.Posted";
|
private static final String ON_POST_VISIBLE_ATTR = "onPostVisible.Event.Posted";
|
||||||
|
|
||||||
|
/** START DEVCOFFEE **/
|
||||||
|
private StatusBarPanel statusBar = new StatusBarPanel();
|
||||||
|
/** END DEVCOFFEE **/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FindPanel Constructor
|
* FindPanel Constructor
|
||||||
* @param targetWindowNo targetWindowNo
|
* @param targetWindowNo targetWindowNo
|
||||||
|
@ -344,6 +350,10 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
btnNew.setId("btnNew");
|
btnNew.setId("btnNew");
|
||||||
btnNew.addEventListener(Events.ON_CLICK,this);
|
btnNew.addEventListener(Events.ON_CLICK,this);
|
||||||
|
|
||||||
|
Button btnClear = ButtonFactory.createNamedButton(ConfirmPanel.A_RESET);
|
||||||
|
btnClear.setId("btnReset");
|
||||||
|
btnClear.addEventListener(Events.ON_CLICK,this);
|
||||||
|
|
||||||
Button btnOk = ButtonFactory.createNamedButton(ConfirmPanel.A_OK);
|
Button btnOk = ButtonFactory.createNamedButton(ConfirmPanel.A_OK);
|
||||||
btnOk.setName("btnOkSimple");
|
btnOk.setName("btnOkSimple");
|
||||||
btnOk.setId("btnOk");
|
btnOk.setId("btnOk");
|
||||||
|
@ -354,6 +364,7 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
btnCancel.addEventListener(Events.ON_CLICK,this);
|
btnCancel.addEventListener(Events.ON_CLICK,this);
|
||||||
|
|
||||||
Panel pnlButtonRight = new Panel();
|
Panel pnlButtonRight = new Panel();
|
||||||
|
pnlButtonRight.appendChild(btnClear);
|
||||||
pnlButtonRight.appendChild(btnOk);
|
pnlButtonRight.appendChild(btnOk);
|
||||||
pnlButtonRight.appendChild(btnCancel);
|
pnlButtonRight.appendChild(btnCancel);
|
||||||
pnlButtonRight.setStyle("text-align:right");
|
pnlButtonRight.setStyle("text-align:right");
|
||||||
|
@ -631,6 +642,9 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
winMain.addTab(tabPanel, Msg.getMsg(Env.getCtx(), "Advanced").replaceAll("&", ""), false, false);
|
winMain.addTab(tabPanel, Msg.getMsg(Env.getCtx(), "Advanced").replaceAll("&", ""), false, false);
|
||||||
initSimple();
|
initSimple();
|
||||||
initAdvanced();
|
initAdvanced();
|
||||||
|
/** START DEVCOFFEE **/
|
||||||
|
layout.appendChild(statusBar);
|
||||||
|
/** START DEVCOFFEE **/
|
||||||
|
|
||||||
} // initPanel
|
} // initPanel
|
||||||
|
|
||||||
|
@ -672,7 +686,7 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
mField.getVO().FieldLength = 32767; // a conservative max literal string - like oracle extended
|
mField.getVO().FieldLength = 32767; // a conservative max literal string - like oracle extended
|
||||||
mField.getVO().DisplayLength = mField.getVO().FieldLength;
|
mField.getVO().DisplayLength = mField.getVO().FieldLength;
|
||||||
}
|
}
|
||||||
if (mField.getVO().displayType == DisplayType.YesNo) {
|
if (mField.getVO().displayType == DisplayType.YesNo || mField.isEncrypted() || mField.isEncryptedColumn()) {
|
||||||
// Make Yes-No searchable as list
|
// Make Yes-No searchable as list
|
||||||
GridFieldVO vo = mField.getVO();
|
GridFieldVO vo = mField.getVO();
|
||||||
GridFieldVO ynvo = vo.clone(m_simpleCtx, vo.WindowNo, vo.TabNo, vo.AD_Window_ID, vo.AD_Tab_ID, vo.tabReadOnly);
|
GridFieldVO ynvo = vo.clone(m_simpleCtx, vo.WindowNo, vo.TabNo, vo.AD_Window_ID, vo.AD_Tab_ID, vo.tabReadOnly);
|
||||||
|
@ -810,6 +824,11 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
gridFieldList = null;
|
gridFieldList = null;
|
||||||
m_total = getNoOfRecords(null, false);
|
m_total = getNoOfRecords(null, false);
|
||||||
|
|
||||||
|
/** START DEVCOFFEE **/
|
||||||
|
// Get Total
|
||||||
|
setStatusDB (m_total);
|
||||||
|
statusBar.setStatusLine("");
|
||||||
|
/** END DEVCOFFEE **/
|
||||||
} // initFind
|
} // initFind
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -842,7 +861,7 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
if (null!=fields && fields.length>=1 && fields[0].contains(HISTORY_SEPARATOR))
|
if (null!=fields && fields.length>=1 && fields[0].contains(HISTORY_SEPARATOR))
|
||||||
return;
|
return;
|
||||||
ListItem listItem = new ListItem();
|
ListItem listItem = new ListItem();
|
||||||
listItem.setId("Row"+advancedPanel.getItemCount());
|
listItem.setId("Row"+ rowCount++);
|
||||||
|
|
||||||
Listbox listColumn = new Listbox();
|
Listbox listColumn = new Listbox();
|
||||||
listColumn.setId("listColumn"+listItem.getId());
|
listColumn.setId("listColumn"+listItem.getId());
|
||||||
|
@ -1132,7 +1151,8 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
editor.addValueChangeListener(this);
|
editor.addValueChangeListener(this);
|
||||||
Label label = editor.getLabel();
|
Label label = editor.getLabel();
|
||||||
Component fieldEditor = editor.getComponent();
|
Component fieldEditor = editor.getComponent();
|
||||||
|
//Fix miss lable of checkbox
|
||||||
|
label.setValue(mField.getHeader());
|
||||||
//
|
//
|
||||||
if (displayLength > 0) // set it back
|
if (displayLength > 0) // set it back
|
||||||
mField.setDisplayLength(displayLength);
|
mField.setDisplayLength(displayLength);
|
||||||
|
@ -1355,6 +1375,21 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
m_isCancel = false;
|
m_isCancel = false;
|
||||||
dispose();
|
dispose();
|
||||||
}
|
}
|
||||||
|
else if ("btnReset".equals(btn.getName())){
|
||||||
|
for (WEditor clearField : m_sEditors){
|
||||||
|
clearField.setValue(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (WEditor clearField : m_sEditorsTo){
|
||||||
|
if (clearField != null){
|
||||||
|
clearField.setValue(null);
|
||||||
|
clearField.setVisible(false);
|
||||||
|
|
||||||
|
ToolBarButton moreButtor = m_sEditorsFlag.get(m_sEditorsTo.indexOf(clearField));
|
||||||
|
moreButtor.setChecked(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (Events.ON_OK.equals(event.getName()))
|
else if (Events.ON_OK.equals(event.getName()))
|
||||||
|
@ -1785,13 +1820,22 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
// globalqss - Carlos Ruiz - 20060711
|
// globalqss - Carlos Ruiz - 20060711
|
||||||
// fix a bug with virtualColumn + isSelectionColumn not yielding results
|
// fix a bug with virtualColumn + isSelectionColumn not yielding results
|
||||||
GridField field = getTargetMField(ColumnName);
|
GridField field = getTargetMField(ColumnName);
|
||||||
// add encryption here if the field is encrypted.
|
|
||||||
if (field.isEncryptedColumn()) {
|
|
||||||
value = SecureEngine.encrypt(value, Env.getAD_Client_ID(Env.getCtx()));
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean isProductCategoryField = isProductCategoryField(field.getColumnName());
|
boolean isProductCategoryField = isProductCategoryField(field.getColumnName());
|
||||||
StringBuilder ColumnSQL = new StringBuilder(field.getColumnSQL(false));
|
StringBuilder ColumnSQL = new StringBuilder(field.getColumnSQL(false));
|
||||||
|
|
||||||
|
// add encryption here if the field is encrypted.
|
||||||
|
if (field.isEncrypted()) {
|
||||||
|
String Operator = MQuery.NULL;
|
||||||
|
if ("Y".equals(value)){
|
||||||
|
Operator = MQuery.NOT_NULL;
|
||||||
|
}
|
||||||
|
m_query.addRestriction(ColumnSQL.toString(), Operator, null,
|
||||||
|
ColumnName, wed.getDisplay());
|
||||||
|
appendCode(code, ColumnName, Operator, "", "", "AND", "", "");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Be more permissive for String columns
|
// Be more permissive for String columns
|
||||||
if (isSearchLike(field))
|
if (isSearchLike(field))
|
||||||
|
@ -1932,12 +1976,19 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
{
|
{
|
||||||
String columnName = column.getValue().toString();
|
String columnName = column.getValue().toString();
|
||||||
int referenceType = -1;
|
int referenceType = -1;
|
||||||
|
boolean isEncrypted = false;
|
||||||
if (columnName != null) {
|
if (columnName != null) {
|
||||||
MTable table = MTable.get(Env.getCtx(), m_tableName);
|
MTable table = MTable.get(Env.getCtx(), m_tableName);
|
||||||
MColumn col = table.getColumn(columnName);
|
MColumn col = table.getColumn(columnName);
|
||||||
referenceType = col.getAD_Reference_ID();
|
referenceType = col.getAD_Reference_ID();
|
||||||
|
GridField field = getTargetMField(columnName);
|
||||||
|
isEncrypted = (col.isEncrypted() || field.isEncrypted());
|
||||||
}
|
}
|
||||||
if (DisplayType.isLookup(referenceType)
|
if (isEncrypted)
|
||||||
|
{
|
||||||
|
addOperators(MQuery.OPERATORS_ENCRYPTED, listOperator);
|
||||||
|
}
|
||||||
|
else if (DisplayType.isLookup(referenceType)
|
||||||
|| DisplayType.YesNo == referenceType
|
|| DisplayType.YesNo == referenceType
|
||||||
|| DisplayType.Button == referenceType)
|
|| DisplayType.Button == referenceType)
|
||||||
{
|
{
|
||||||
|
@ -2577,6 +2628,18 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
|
||||||
public boolean isValid()
|
public boolean isValid()
|
||||||
{
|
{
|
||||||
return isvalid;
|
return isvalid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** START DEVCOFFEE **/
|
||||||
|
/**
|
||||||
|
* Display current count
|
||||||
|
* @param currentCount String representation of current/total
|
||||||
|
*/
|
||||||
|
private void setStatusDB (int currentCount)
|
||||||
|
{
|
||||||
|
StringBuilder text = new StringBuilder(" ").append(currentCount).append(" / ").append(m_total).append(" ");
|
||||||
|
statusBar.setStatusDB(text.toString());
|
||||||
|
} // setDtatusDB
|
||||||
|
/** END DEVCOFFEE **/
|
||||||
|
|
||||||
} // FindPanel
|
} // FindPanel
|
|
@ -530,7 +530,7 @@ public class WEMailDialog extends Window implements EventListener<Event>, ValueC
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringTokenizer st = new StringTokenizer(getTo(), " ,;", false);
|
StringTokenizer st = new StringTokenizer(getTo(), ",;", false);
|
||||||
String to = st.nextToken();
|
String to = st.nextToken();
|
||||||
EMail email = m_client.createEMail(getFrom(), to, getSubject(), replaceBASE64Img(getMessage()), true);
|
EMail email = m_client.createEMail(getFrom(), to, getSubject(), replaceBASE64Img(getMessage()), true);
|
||||||
String status = "Check Setup";
|
String status = "Check Setup";
|
||||||
|
@ -539,7 +539,7 @@ public class WEMailDialog extends Window implements EventListener<Event>, ValueC
|
||||||
while (st.hasMoreTokens())
|
while (st.hasMoreTokens())
|
||||||
email.addTo(st.nextToken());
|
email.addTo(st.nextToken());
|
||||||
// cc
|
// cc
|
||||||
StringTokenizer stcc = new StringTokenizer(getCc(), " ,;", false);
|
StringTokenizer stcc = new StringTokenizer(getCc(), ",;", false);
|
||||||
while (stcc.hasMoreTokens())
|
while (stcc.hasMoreTokens())
|
||||||
{
|
{
|
||||||
String cc = stcc.nextToken();
|
String cc = stcc.nextToken();
|
||||||
|
|
|
@ -35,6 +35,7 @@ import org.adempiere.webui.component.Window;
|
||||||
import org.adempiere.webui.theme.ThemeManager;
|
import org.adempiere.webui.theme.ThemeManager;
|
||||||
import org.adempiere.webui.util.ZKUpdateUtil;
|
import org.adempiere.webui.util.ZKUpdateUtil;
|
||||||
import org.compiere.model.DataStatusEvent;
|
import org.compiere.model.DataStatusEvent;
|
||||||
|
import org.compiere.model.GridField;
|
||||||
import org.compiere.model.GridTab;
|
import org.compiere.model.GridTab;
|
||||||
import org.compiere.model.GridTable;
|
import org.compiere.model.GridTable;
|
||||||
import org.compiere.model.MChangeLog;
|
import org.compiere.model.MChangeLog;
|
||||||
|
@ -248,21 +249,51 @@ public class WRecordInfo extends Window implements EventListener<Event>
|
||||||
|
|
||||||
//get uuid
|
//get uuid
|
||||||
GridTable gridTable = null;
|
GridTable gridTable = null;
|
||||||
|
String tabName = null;
|
||||||
if (dse.getSource() instanceof GridTab)
|
if (dse.getSource() instanceof GridTab)
|
||||||
{
|
{
|
||||||
GridTab gridTab = (GridTab) dse.getSource();
|
GridTab gridTab = (GridTab) dse.getSource();
|
||||||
gridTable = gridTab.getTableModel();
|
gridTable = gridTab.getTableModel();
|
||||||
|
tabName = gridTab.getName();
|
||||||
}
|
}
|
||||||
else if (dse.getSource() instanceof GridTable)
|
else if (dse.getSource() instanceof GridTable)
|
||||||
{
|
{
|
||||||
gridTable = (GridTable) dse.getSource();
|
gridTable = (GridTable) dse.getSource();
|
||||||
|
GridField firstField = gridTable.getField(0);
|
||||||
|
if (firstField != null && firstField.getGridTab() != null)
|
||||||
|
tabName = firstField.getGridTab().getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int Record_ID = -1;
|
||||||
|
if (dse.Record_ID instanceof Integer)
|
||||||
|
Record_ID = ((Integer)dse.Record_ID).intValue();
|
||||||
|
else
|
||||||
|
log.info("dynInit - Invalid Record_ID=" + dse.Record_ID);
|
||||||
|
|
||||||
|
MTable dbtable = null;
|
||||||
|
if (dse.AD_Table_ID != 0)
|
||||||
|
dbtable = MTable.get(Env.getCtx(), dse.AD_Table_ID);
|
||||||
|
|
||||||
if (gridTable != null && dse.getCurrentRow() >= 0 && dse.getCurrentRow() < gridTable.getRowCount())
|
if (gridTable != null && dse.getCurrentRow() >= 0 && dse.getCurrentRow() < gridTable.getRowCount())
|
||||||
{
|
{
|
||||||
PO po = gridTable.getPO(dse.getCurrentRow());
|
PO po = gridTable.getPO(dse.getCurrentRow());
|
||||||
if (po != null) {
|
if (po != null) {
|
||||||
String uuidcol = po.getUUIDColumnName();
|
String uuidcol = po.getUUIDColumnName();
|
||||||
String uuid = po.get_ValueAsString(uuidcol);
|
String uuid = null;
|
||||||
|
if (po.is_new()) {
|
||||||
|
if (Record_ID == 0 && MTable.isZeroIDTable(dbtable.getTableName())) {
|
||||||
|
StringBuilder sql = new StringBuilder("SELECT ")
|
||||||
|
.append(uuidcol)
|
||||||
|
.append(" FROM ")
|
||||||
|
.append(dbtable.getTableName())
|
||||||
|
.append(" WHERE ")
|
||||||
|
.append(dbtable.getTableName())
|
||||||
|
.append("_ID=0");
|
||||||
|
uuid = DB.getSQLValueString(null, sql.toString());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
uuid = po.get_ValueAsString(uuidcol);
|
||||||
|
}
|
||||||
if (!Util.isEmpty(uuid))
|
if (!Util.isEmpty(uuid))
|
||||||
m_info.append("\n ").append(uuidcol).append("=").append(uuid);
|
m_info.append("\n ").append(uuidcol).append("=").append(uuid);
|
||||||
m_permalink.setHref(AEnv.getZoomUrlTableID(po));
|
m_permalink.setHref(AEnv.getZoomUrlTableID(po));
|
||||||
|
@ -271,22 +302,17 @@ public class WRecordInfo extends Window implements EventListener<Event>
|
||||||
}
|
}
|
||||||
|
|
||||||
// Title
|
// Title
|
||||||
if (dse.AD_Table_ID != 0)
|
if (tabName == null && dse.AD_Table_ID != 0)
|
||||||
{
|
{
|
||||||
MTable table1 = MTable.get (Env.getCtx(), dse.AD_Table_ID);
|
tabName = dbtable.getName();
|
||||||
setTitle(title + " - " + table1.getName());
|
|
||||||
}
|
}
|
||||||
|
setTitle(title + " - " + tabName);
|
||||||
|
|
||||||
// Only Client Preference can view Change Log
|
// Only Client Preference can view Change Log
|
||||||
if (!MRole.PREFERENCETYPE_Client.equals(MRole.getDefault().getPreferenceType()))
|
if (!MRole.PREFERENCETYPE_Client.equals(MRole.getDefault().getPreferenceType()))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
int Record_ID = 0;
|
if (Record_ID <= 0)
|
||||||
if (dse.Record_ID instanceof Integer)
|
|
||||||
Record_ID = ((Integer)dse.Record_ID).intValue();
|
|
||||||
else
|
|
||||||
log.info("dynInit - Invalid Record_ID=" + dse.Record_ID);
|
|
||||||
if (Record_ID == 0)
|
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Data
|
// Data
|
||||||
|
|
|
@ -99,14 +99,19 @@ public abstract class CreateFrom implements ICreateFrom
|
||||||
.append(DB.TO_CHAR("o.GrandTotal", DisplayType.Amount, Env.getAD_Language(Env.getCtx())));
|
.append(DB.TO_CHAR("o.GrandTotal", DisplayType.Amount, Env.getAD_Language(Env.getCtx())));
|
||||||
//
|
//
|
||||||
String column = "ol.QtyDelivered";
|
String column = "ol.QtyDelivered";
|
||||||
|
String colBP = "o.C_BPartner_ID";
|
||||||
if (forInvoice)
|
if (forInvoice)
|
||||||
|
{
|
||||||
column = "ol.QtyInvoiced";
|
column = "ol.QtyInvoiced";
|
||||||
StringBuffer sql = new StringBuffer("SELECT o.C_Order_ID,").append(display)
|
colBP = "o.Bill_BPartner_ID";
|
||||||
.append(" FROM C_Order o "
|
}
|
||||||
+ "WHERE o.C_BPartner_ID=? AND o.IsSOTrx=? AND o.DocStatus IN ('CL','CO')"
|
StringBuffer sql = new StringBuffer("SELECT o.C_Order_ID,")
|
||||||
+ " AND o.C_Order_ID IN "
|
.append(display)
|
||||||
+ "(SELECT ol.C_Order_ID FROM C_OrderLine ol"
|
.append(" FROM C_Order o WHERE ")
|
||||||
+ " WHERE ol.QtyOrdered - ").append(column).append(" != 0) ");
|
.append(colBP)
|
||||||
|
.append("=? AND o.IsSOTrx=? AND o.DocStatus IN ('CL','CO') AND o.C_Order_ID IN (SELECT ol.C_Order_ID FROM C_OrderLine ol WHERE ol.QtyOrdered-")
|
||||||
|
.append(column)
|
||||||
|
.append("!=0) ");
|
||||||
if(sameWarehouseOnly)
|
if(sameWarehouseOnly)
|
||||||
{
|
{
|
||||||
sql = sql.append(" AND o.M_Warehouse_ID=? ");
|
sql = sql.append(" AND o.M_Warehouse_ID=? ");
|
||||||
|
|
|
@ -82,6 +82,7 @@ public class ColumnInfo
|
||||||
private GridField m_gridField;
|
private GridField m_gridField;
|
||||||
|
|
||||||
private String colDescription;
|
private String colDescription;
|
||||||
|
private int AD_Reference_ID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Col Class
|
* Get Col Class
|
||||||
|
@ -214,4 +215,12 @@ public class ColumnInfo
|
||||||
public void setColDescription(String colDescription) {
|
public void setColDescription(String colDescription) {
|
||||||
this.colDescription = colDescription;
|
this.colDescription = colDescription;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getAD_Reference_ID() {
|
||||||
|
return AD_Reference_ID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAD_Reference_ID(int AD_Reference_ID) {
|
||||||
|
this.AD_Reference_ID = AD_Reference_ID;
|
||||||
|
}
|
||||||
} // infoColumn
|
} // infoColumn
|
||||||
|
|
|
@ -925,7 +925,6 @@ public class DB_Oracle implements AdempiereDatabase
|
||||||
// IDs
|
// IDs
|
||||||
case DisplayType.Account:
|
case DisplayType.Account:
|
||||||
case DisplayType.Assignment:
|
case DisplayType.Assignment:
|
||||||
case DisplayType.Color:
|
|
||||||
case DisplayType.ID:
|
case DisplayType.ID:
|
||||||
case DisplayType.Location:
|
case DisplayType.Location:
|
||||||
case DisplayType.Locator:
|
case DisplayType.Locator:
|
||||||
|
@ -979,6 +978,7 @@ public class DB_Oracle implements AdempiereDatabase
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// NVARCHAR
|
// NVARCHAR
|
||||||
|
case DisplayType.Color:
|
||||||
case DisplayType.Memo:
|
case DisplayType.Memo:
|
||||||
case DisplayType.String:
|
case DisplayType.String:
|
||||||
case DisplayType.Text:
|
case DisplayType.Text:
|
||||||
|
|
|
@ -159,6 +159,7 @@ public class CompiereService {
|
||||||
Properties savedCache = new Properties();
|
Properties savedCache = new Properties();
|
||||||
savedCache.putAll(Env.getCtx());
|
savedCache.putAll(Env.getCtx());
|
||||||
ctxMap.put(key.toString(), savedCache);
|
ctxMap.put(key.toString(), savedCache);
|
||||||
|
if (log.isLoggable(Level.INFO)) log.info("Saving " + this + " in cache");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -201,15 +202,16 @@ public class CompiereService {
|
||||||
String loginInfo = null;
|
String loginInfo = null;
|
||||||
// Verify existence of User/Client/Org/Role and User's acces to Client & Org
|
// Verify existence of User/Client/Org/Role and User's acces to Client & Org
|
||||||
String sql = "SELECT u.Name || '@' || c.Name || '.' || o.Name AS Text "
|
String sql = "SELECT u.Name || '@' || c.Name || '.' || o.Name AS Text "
|
||||||
+ "FROM AD_User u, AD_Client c, AD_Org o, AD_User_Roles ur "
|
+ "FROM AD_User u, AD_Client c, AD_Org o, AD_User_Roles ur, AD_Role r "
|
||||||
+ "WHERE u.AD_User_ID=?" // #1
|
+ "WHERE u.AD_User_ID=?" // #1
|
||||||
+ " AND c.AD_Client_ID=?" // #2
|
+ " AND c.AD_Client_ID=?" // #2
|
||||||
+ " AND o.AD_Org_ID=?" // #3
|
+ " AND o.AD_Org_ID=?" // #3
|
||||||
+ " AND ur.AD_Role_ID=?" // #4
|
+ " AND ur.AD_Role_ID=?" // #4
|
||||||
+ " AND ur.AD_User_ID=u.AD_User_ID"
|
+ " AND ur.AD_User_ID=u.AD_User_ID"
|
||||||
|
+ " AND ur.AD_Role_ID=r.AD_Role_ID"
|
||||||
+ " AND (o.AD_Client_ID = 0 OR o.AD_Client_ID=c.AD_Client_ID)"
|
+ " AND (o.AD_Client_ID = 0 OR o.AD_Client_ID=c.AD_Client_ID)"
|
||||||
+ " AND c.AD_Client_ID IN (SELECT AD_Client_ID FROM AD_Role_OrgAccess ca WHERE ca.AD_Role_ID=ur.AD_Role_ID)"
|
+ " AND (r.IsAccessAllOrgs='Y' OR (c.AD_Client_ID IN (SELECT AD_Client_ID FROM AD_Role_OrgAccess ca WHERE ca.AD_Role_ID=ur.AD_Role_ID)"
|
||||||
+ " AND o.AD_Org_ID IN (SELECT AD_Org_ID FROM AD_Role_OrgAccess ca WHERE ca.AD_Role_ID=ur.AD_Role_ID)";
|
+ " AND o.AD_Org_ID IN (SELECT AD_Org_ID FROM AD_Role_OrgAccess ca WHERE ca.AD_Role_ID=ur.AD_Role_ID)))";
|
||||||
PreparedStatement pstmt = null;
|
PreparedStatement pstmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
try
|
try
|
||||||
|
@ -406,10 +408,13 @@ public class CompiereService {
|
||||||
l_cs = csMap.get(key);
|
l_cs = csMap.get(key);
|
||||||
if (l_cs != null) {
|
if (l_cs != null) {
|
||||||
if (l_cs.isExpired()) {
|
if (l_cs.isExpired()) {
|
||||||
|
csMap.remove(key);
|
||||||
|
ctxMap.remove(key);
|
||||||
l_cs = null;
|
l_cs = null;
|
||||||
} else {
|
} else {
|
||||||
Properties cachedCtx = ctxMap.get(key);
|
Properties cachedCtx = ctxMap.get(key);
|
||||||
Env.getCtx().putAll(cachedCtx);
|
Env.getCtx().putAll(cachedCtx);
|
||||||
|
if (log.isLoggable(Level.INFO)) log.info("Reusing " + l_cs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -445,6 +450,7 @@ public class CompiereService {
|
||||||
);
|
);
|
||||||
if (m_connected && expired)
|
if (m_connected && expired)
|
||||||
{
|
{
|
||||||
|
if (log.isLoggable(Level.INFO)) log.info("Closing expired/invalid " + this);
|
||||||
Env.logout();
|
Env.logout();
|
||||||
ServerContext.dispose();
|
ServerContext.dispose();
|
||||||
m_loggedin = false;
|
m_loggedin = false;
|
||||||
|
|
|
@ -35,6 +35,7 @@ public class CompiereUtil {
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (log.isLoggable(Level.INFO)) log.info("Starting webservices iDempiere session");
|
||||||
s_initOK = Adempiere.startup(false);
|
s_initOK = Adempiere.startup(false);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|
Loading…
Reference in New Issue