Merge development (8e403d4382f8) into zk7 branch
This commit is contained in:
commit
23c684d467
|
@ -61,7 +61,7 @@ BEGIN
|
||||||
FROM (
|
FROM (
|
||||||
SELECT C_ConversionType_ID
|
SELECT C_ConversionType_ID
|
||||||
FROM C_ConversionType
|
FROM C_ConversionType
|
||||||
WHERE IsDefault='Y'
|
WHERE IsActive='Y' AND IsDefault='Y'
|
||||||
AND AD_Client_ID IN (0,p_Client_ID)
|
AND AD_Client_ID IN (0,p_Client_ID)
|
||||||
ORDER BY AD_Client_ID DESC
|
ORDER BY AD_Client_ID DESC
|
||||||
)
|
)
|
||||||
|
@ -137,7 +137,7 @@ BEGIN
|
||||||
CURSOR CUR_Rate IS
|
CURSOR CUR_Rate IS
|
||||||
SELECT MultiplyRate
|
SELECT MultiplyRate
|
||||||
FROM C_Conversion_Rate
|
FROM C_Conversion_Rate
|
||||||
WHERE C_Currency_ID=v_CurrencyFrom AND C_Currency_ID_To=v_CurrencyTo
|
WHERE IsActive='Y' AND C_Currency_ID=v_CurrencyFrom AND C_Currency_ID_To=v_CurrencyTo
|
||||||
AND C_ConversionType_ID=v_ConversionType_ID
|
AND C_ConversionType_ID=v_ConversionType_ID
|
||||||
AND v_ConvDate BETWEEN ValidFrom AND ValidTo
|
AND v_ConvDate BETWEEN ValidFrom AND ValidTo
|
||||||
AND AD_Client_ID IN (0,p_Client_ID) AND AD_Org_ID IN (0,p_Org_ID)
|
AND AD_Client_ID IN (0,p_Client_ID) AND AD_Org_ID IN (0,p_Org_ID)
|
||||||
|
|
|
@ -65,7 +65,7 @@ BEGIN
|
||||||
SELECT C_ConversionType_ID
|
SELECT C_ConversionType_ID
|
||||||
INTO v_ConversionType_ID
|
INTO v_ConversionType_ID
|
||||||
FROM C_ConversionType
|
FROM C_ConversionType
|
||||||
WHERE IsDefault='Y'
|
WHERE IsActive='Y' AND IsDefault='Y'
|
||||||
AND AD_Client_ID IN (0,p_Client_ID)
|
AND AD_Client_ID IN (0,p_Client_ID)
|
||||||
ORDER BY AD_Client_ID DESC
|
ORDER BY AD_Client_ID DESC
|
||||||
LIMIT 1;
|
LIMIT 1;
|
||||||
|
@ -140,7 +140,7 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
FOR c IN SELECT MultiplyRate
|
FOR c IN SELECT MultiplyRate
|
||||||
FROM C_Conversion_Rate
|
FROM C_Conversion_Rate
|
||||||
WHERE C_Currency_ID=v_CurrencyFrom AND C_Currency_ID_To=v_CurrencyTo
|
WHERE IsActive='Y' AND C_Currency_ID=v_CurrencyFrom AND C_Currency_ID_To=v_CurrencyTo
|
||||||
AND C_ConversionType_ID=v_ConversionType_ID
|
AND C_ConversionType_ID=v_ConversionType_ID
|
||||||
AND v_ConvDate BETWEEN ValidFrom AND ValidTo
|
AND v_ConvDate BETWEEN ValidFrom AND ValidTo
|
||||||
AND AD_Client_ID IN (0,p_Client_ID) AND AD_Org_ID IN (0,p_Org_ID)
|
AND AD_Client_ID IN (0,p_Client_ID) AND AD_Org_ID IN (0,p_Org_ID)
|
||||||
|
|
|
@ -0,0 +1,194 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- Oct 23, 2014 7:27:09 PM COT
|
||||||
|
-- IDEMPIERE-2250 Charge on bank transfer not needed
|
||||||
|
DELETE FROM C_Conversion_Rate WHERE C_Conversion_Rate_ID=117
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 23, 2014 7:27:11 PM COT
|
||||||
|
DELETE FROM C_Conversion_Rate WHERE C_Conversion_Rate_ID=120
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 23, 2014 7:27:14 PM COT
|
||||||
|
DELETE FROM C_Conversion_Rate WHERE C_Conversion_Rate_ID=119
|
||||||
|
;
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION currencyRate
|
||||||
|
(
|
||||||
|
p_CurFrom_ID IN NUMBER,
|
||||||
|
p_CurTo_ID IN NUMBER,
|
||||||
|
p_ConvDate IN DATE,
|
||||||
|
p_ConversionType_ID IN NUMBER,
|
||||||
|
p_Client_ID IN NUMBER,
|
||||||
|
p_Org_ID IN NUMBER
|
||||||
|
)
|
||||||
|
RETURN NUMBER
|
||||||
|
/*************************************************************************
|
||||||
|
* The contents of this file are subject to the Compiere License. You may
|
||||||
|
* obtain a copy of the License at http://www.compiere.org/license.html
|
||||||
|
* Software is on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
|
||||||
|
* express or implied. See the License for details. Code: Compiere ERP+CRM
|
||||||
|
* Copyright (C) 1999-2001 Jorg Janke, ComPiere, Inc. All Rights Reserved.
|
||||||
|
*************************************************************************
|
||||||
|
* $Id: C_Currency_Rate.sql,v 1.1 2006/04/21 17:51:58 jjanke Exp $
|
||||||
|
***
|
||||||
|
* Title: Return Conversion Rate
|
||||||
|
* Description:
|
||||||
|
* from CurrencyFrom_ID to CurrencyTo_ID
|
||||||
|
* Returns NULL, if rate not found
|
||||||
|
* Test
|
||||||
|
* SELECT C_Currency_Rate(116, 100, null, null) FROM DUAL; => .647169
|
||||||
|
* SELECT C_Currency_Rate(116, 100) FROM DUAL; => .647169
|
||||||
|
************************************************************************/
|
||||||
|
AS
|
||||||
|
-- Currency From variables
|
||||||
|
cf_IsEuro CHAR(1);
|
||||||
|
cf_IsEMUMember CHAR(1);
|
||||||
|
cf_EMUEntryDate DATE;
|
||||||
|
cf_EMURate NUMBER;
|
||||||
|
-- Currency To variables
|
||||||
|
ct_IsEuro CHAR(1);
|
||||||
|
ct_IsEMUMember CHAR(1);
|
||||||
|
ct_EMUEntryDate DATE;
|
||||||
|
ct_EMURate NUMBER;
|
||||||
|
-- Triangle
|
||||||
|
v_CurrencyFrom NUMBER;
|
||||||
|
v_CurrencyTo NUMBER;
|
||||||
|
v_CurrencyEuro NUMBER;
|
||||||
|
--
|
||||||
|
v_ConvDate DATE := SysDate;
|
||||||
|
v_ConversionType_ID NUMBER := 0;
|
||||||
|
v_Rate NUMBER;
|
||||||
|
BEGIN
|
||||||
|
-- No Conversion
|
||||||
|
IF (p_CurFrom_ID = p_CurTo_ID) THEN
|
||||||
|
RETURN 1;
|
||||||
|
END IF;
|
||||||
|
-- Default Date Parameter
|
||||||
|
IF (p_ConvDate IS NOT NULL) THEN
|
||||||
|
v_ConvDate := p_ConvDate; -- SysDate
|
||||||
|
END IF;
|
||||||
|
-- Default Conversion Type
|
||||||
|
IF (p_ConversionType_ID IS NULL OR p_ConversionType_ID = 0) THEN
|
||||||
|
BEGIN
|
||||||
|
SELECT C_ConversionType_ID
|
||||||
|
INTO v_ConversionType_ID
|
||||||
|
FROM (
|
||||||
|
SELECT C_ConversionType_ID
|
||||||
|
FROM C_ConversionType
|
||||||
|
WHERE IsActive='Y' AND IsDefault='Y'
|
||||||
|
AND AD_Client_ID IN (0,p_Client_ID)
|
||||||
|
ORDER BY AD_Client_ID DESC
|
||||||
|
)
|
||||||
|
WHERE ROWNUM=1;
|
||||||
|
EXCEPTION WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Conversion Type Not Found');
|
||||||
|
END;
|
||||||
|
ELSE
|
||||||
|
v_ConversionType_ID := p_ConversionType_ID;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Get Currency Info
|
||||||
|
SELECT MAX(TO_CHAR(IsEuro)), MAX(TO_CHAR(IsEMUMember)), MAX(EMUEntryDate), MAX(EMURate)
|
||||||
|
INTO cf_IsEuro, cf_IsEMUMember, cf_EMUEntryDate, cf_EMURate
|
||||||
|
FROM C_Currency
|
||||||
|
WHERE C_Currency_ID = p_CurFrom_ID;
|
||||||
|
-- Not Found
|
||||||
|
IF (cf_IsEuro IS NULL) THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('From Currency Not Found');
|
||||||
|
RETURN NULL;
|
||||||
|
END IF;
|
||||||
|
SELECT MAX(TO_CHAR(IsEuro)), MAX(TO_CHAR(IsEMUMember)), MAX(EMUEntryDate), MAX(EMURate)
|
||||||
|
INTO ct_IsEuro, ct_IsEMUMember, ct_EMUEntryDate, ct_EMURate
|
||||||
|
FROM C_Currency
|
||||||
|
WHERE C_Currency_ID = p_CurTo_ID;
|
||||||
|
-- Not Found
|
||||||
|
IF (ct_IsEuro IS NULL) THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('To Currency Not Found');
|
||||||
|
RETURN NULL;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Fixed - From Euro to EMU
|
||||||
|
IF (cf_IsEuro = 'Y' AND ct_IsEMUMember ='Y' AND v_ConvDate >= ct_EMUEntryDate) THEN
|
||||||
|
RETURN ct_EMURate;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Fixed - From EMU to Euro
|
||||||
|
IF (ct_IsEuro = 'Y' AND cf_IsEMUMember ='Y' AND v_ConvDate >= cf_EMUEntryDate) THEN
|
||||||
|
RETURN 1 / cf_EMURate;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Fixed - From EMU to EMU
|
||||||
|
IF (cf_IsEMUMember = 'Y' AND cf_IsEMUMember ='Y'
|
||||||
|
AND v_ConvDate >= cf_EMUEntryDate AND v_ConvDate >= ct_EMUEntryDate) THEN
|
||||||
|
RETURN ct_EMURate / cf_EMURate;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Flexible Rates
|
||||||
|
v_CurrencyFrom := p_CurFrom_ID;
|
||||||
|
v_CurrencyTo := p_CurTo_ID;
|
||||||
|
|
||||||
|
-- if EMU Member involved, replace From/To Currency
|
||||||
|
IF ((cf_isEMUMember = 'Y' AND v_ConvDate >= cf_EMUEntryDate)
|
||||||
|
OR (ct_isEMUMember = 'Y' AND v_ConvDate >= ct_EMUEntryDate)) THEN
|
||||||
|
SELECT MAX(C_Currency_ID)
|
||||||
|
INTO v_CurrencyEuro
|
||||||
|
FROM C_Currency
|
||||||
|
WHERE IsEuro = 'Y';
|
||||||
|
-- Conversion Rate not Found
|
||||||
|
IF (v_CurrencyEuro IS NULL) THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Euro Not Found');
|
||||||
|
RETURN NULL;
|
||||||
|
END IF;
|
||||||
|
IF (cf_isEMUMember = 'Y' AND v_ConvDate >= cf_EMUEntryDate) THEN
|
||||||
|
v_CurrencyFrom := v_CurrencyEuro;
|
||||||
|
ELSE
|
||||||
|
v_CurrencyTo := v_CurrencyEuro;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Get Rate
|
||||||
|
DECLARE
|
||||||
|
CURSOR CUR_Rate IS
|
||||||
|
SELECT MultiplyRate
|
||||||
|
FROM C_Conversion_Rate
|
||||||
|
WHERE IsActive='Y' AND C_Currency_ID=v_CurrencyFrom AND C_Currency_ID_To=v_CurrencyTo
|
||||||
|
AND C_ConversionType_ID=v_ConversionType_ID
|
||||||
|
AND v_ConvDate BETWEEN ValidFrom AND ValidTo
|
||||||
|
AND AD_Client_ID IN (0,p_Client_ID) AND AD_Org_ID IN (0,p_Org_ID)
|
||||||
|
ORDER BY AD_Client_ID DESC, AD_Org_ID DESC, ValidFrom DESC;
|
||||||
|
BEGIN
|
||||||
|
FOR c IN CUR_Rate LOOP
|
||||||
|
v_Rate := c.MultiplyRate;
|
||||||
|
EXIT; -- only first
|
||||||
|
END LOOP;
|
||||||
|
END;
|
||||||
|
-- Not found
|
||||||
|
IF (v_Rate IS NULL) THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Conversion Rate Not Found');
|
||||||
|
RETURN NULL;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Currency From was EMU
|
||||||
|
IF (cf_isEMUMember = 'Y' AND v_ConvDate >= cf_EMUEntryDate) THEN
|
||||||
|
RETURN v_Rate / cf_EMURate;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Currency To was EMU
|
||||||
|
IF (ct_isEMUMember = 'Y' AND v_ConvDate >= ct_EMUEntryDate) THEN
|
||||||
|
RETURN v_Rate * ct_EMURate;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
RETURN v_Rate;
|
||||||
|
|
||||||
|
EXCEPTION WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(SQLERRM);
|
||||||
|
RETURN NULL;
|
||||||
|
|
||||||
|
END currencyRate;
|
||||||
|
/
|
||||||
|
|
||||||
|
SELECT register_migration_script('201410231928_IDEMPIERE-2269.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- Oct 27, 2014 3:39:07 PM COT
|
||||||
|
-- IDEMPIERE-2250 Charge on bank transfer not needed
|
||||||
|
UPDATE AD_Field SET DisplayLogic='@PaymentRule@=''P''',Updated=TO_DATE('2014-10-27 15:39:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3439
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201410271541_IDEMPIERE-2276.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
SET SQLBLANKLINES ON
|
||||||
|
SET DEFINE OFF
|
||||||
|
|
||||||
|
-- Oct 28, 2014 6:45:00 PM CET
|
||||||
|
-- IDEMPIERE-2279 C_ContactActivity SalesRep_ID has no AD_Reference_Value_ID
|
||||||
|
UPDATE AD_Column SET AD_Reference_Value_ID=110,Updated=TO_DATE('2014-10-28 18:45:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=62467
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201410271848_IDEMPIERE-2279.sql') FROM dual
|
||||||
|
;
|
|
@ -0,0 +1,6 @@
|
||||||
|
update ad_system set name='iDempiere' where name='?'
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201410291142_IDEMPIERE-2260.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,195 @@
|
||||||
|
-- Oct 23, 2014 7:27:09 PM COT
|
||||||
|
-- IDEMPIERE-2250 Charge on bank transfer not needed
|
||||||
|
DELETE FROM C_Conversion_Rate WHERE C_Conversion_Rate_ID=117
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 23, 2014 7:27:11 PM COT
|
||||||
|
DELETE FROM C_Conversion_Rate WHERE C_Conversion_Rate_ID=120
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Oct 23, 2014 7:27:14 PM COT
|
||||||
|
DELETE FROM C_Conversion_Rate WHERE C_Conversion_Rate_ID=119
|
||||||
|
;
|
||||||
|
|
||||||
|
CREATE OR REPLACE FUNCTION currencyRate(
|
||||||
|
p_CurFrom_ID NUMERIC,
|
||||||
|
p_CurTo_ID NUMERIC,
|
||||||
|
p_ConvDate timestamp with time zone,
|
||||||
|
p_ConversionType_ID NUMERIC,
|
||||||
|
p_Client_ID NUMERIC,
|
||||||
|
p_Org_ID NUMERIC
|
||||||
|
)
|
||||||
|
|
||||||
|
RETURNS numeric AS $body$
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
* The contents of this file are subject to the Compiere License. You may
|
||||||
|
* obtain a copy of the License at http://www.compiere.org/license.html
|
||||||
|
* Software is on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either
|
||||||
|
* express or implied. See the License for details. Code: Compiere ERP+CRM
|
||||||
|
* Copyright (C) 1999-2001 Jorg Janke, ComPiere, Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* converted to postgreSQL by Karsten Thiemann (Schaeffer AG),
|
||||||
|
* kthiemann@adempiere.org
|
||||||
|
*************************************************************************
|
||||||
|
***
|
||||||
|
* Title: Return Conversion Rate
|
||||||
|
* Description:
|
||||||
|
* from CurrencyFrom_ID to CurrencyTo_ID
|
||||||
|
* Returns NULL, if rate not found
|
||||||
|
* Test
|
||||||
|
* SELECT currencyrate(116, 100, null, null, null, null) FROM AD_System; => .647169
|
||||||
|
************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
-- Currency From variables
|
||||||
|
cf_IsEuro CHAR(1);
|
||||||
|
cf_IsEMUMember CHAR(1);
|
||||||
|
cf_EMUEntryDate timestamp with time zone;
|
||||||
|
cf_EMURate NUMERIC;
|
||||||
|
-- Currency To variables
|
||||||
|
ct_IsEuro CHAR(1);
|
||||||
|
ct_IsEMUMember CHAR(1);
|
||||||
|
ct_EMUEntryDate DATE;
|
||||||
|
ct_EMURate NUMERIC;
|
||||||
|
-- Triangle
|
||||||
|
v_CurrencyFrom NUMERIC;
|
||||||
|
v_CurrencyTo NUMERIC;
|
||||||
|
v_CurrencyEuro NUMERIC;
|
||||||
|
--
|
||||||
|
v_ConvDate timestamp with time zone := now();
|
||||||
|
v_ConversionType_ID NUMERIC := 0;
|
||||||
|
v_Rate NUMERIC;
|
||||||
|
c RECORD;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
-- No Conversion
|
||||||
|
IF (p_CurFrom_ID = p_CurTo_ID) THEN
|
||||||
|
RETURN 1;
|
||||||
|
END IF;
|
||||||
|
-- Default Date Parameter
|
||||||
|
IF (p_ConvDate IS NOT NULL) THEN
|
||||||
|
v_ConvDate := p_ConvDate; -- SysDate
|
||||||
|
END IF;
|
||||||
|
-- Default Conversion Type
|
||||||
|
IF (p_ConversionType_ID IS NULL OR p_ConversionType_ID = 0) THEN
|
||||||
|
BEGIN
|
||||||
|
SELECT C_ConversionType_ID
|
||||||
|
INTO v_ConversionType_ID
|
||||||
|
FROM C_ConversionType
|
||||||
|
WHERE IsActive='Y' AND IsDefault='Y'
|
||||||
|
AND AD_Client_ID IN (0,p_Client_ID)
|
||||||
|
ORDER BY AD_Client_ID DESC
|
||||||
|
LIMIT 1;
|
||||||
|
EXCEPTION WHEN OTHERS THEN
|
||||||
|
RAISE NOTICE 'Conversion Type Not Found';
|
||||||
|
END;
|
||||||
|
ELSE
|
||||||
|
v_ConversionType_ID := p_ConversionType_ID;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Get Currency Info
|
||||||
|
SELECT MAX(IsEuro), MAX(IsEMUMember), MAX(EMUEntryDate), MAX(EMURate)
|
||||||
|
INTO cf_IsEuro, cf_IsEMUMember, cf_EMUEntryDate, cf_EMURate
|
||||||
|
FROM C_Currency
|
||||||
|
WHERE C_Currency_ID = p_CurFrom_ID;
|
||||||
|
-- Not Found
|
||||||
|
IF (cf_IsEuro IS NULL) THEN
|
||||||
|
RAISE NOTICE 'From Currency Not Found';
|
||||||
|
RETURN NULL;
|
||||||
|
END IF;
|
||||||
|
SELECT MAX(IsEuro), MAX(IsEMUMember), MAX(EMUEntryDate), MAX(EMURate)
|
||||||
|
INTO ct_IsEuro, ct_IsEMUMember, ct_EMUEntryDate, ct_EMURate
|
||||||
|
FROM C_Currency
|
||||||
|
WHERE C_Currency_ID = p_CurTo_ID;
|
||||||
|
-- Not Found
|
||||||
|
IF (ct_IsEuro IS NULL) THEN
|
||||||
|
RAISE NOTICE 'To Currency Not Found';
|
||||||
|
RETURN NULL;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Fixed - From Euro to EMU
|
||||||
|
IF (cf_IsEuro = 'Y' AND ct_IsEMUMember ='Y' AND v_ConvDate >= ct_EMUEntryDate) THEN
|
||||||
|
RETURN ct_EMURate;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Fixed - From EMU to Euro
|
||||||
|
IF (ct_IsEuro = 'Y' AND cf_IsEMUMember ='Y' AND v_ConvDate >= cf_EMUEntryDate) THEN
|
||||||
|
RETURN 1 / cf_EMURate;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Fixed - From EMU to EMU
|
||||||
|
IF (cf_IsEMUMember = 'Y' AND cf_IsEMUMember ='Y'
|
||||||
|
AND v_ConvDate >= cf_EMUEntryDate AND v_ConvDate >= ct_EMUEntryDate) THEN
|
||||||
|
RETURN ct_EMURate / cf_EMURate;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Flexible Rates
|
||||||
|
v_CurrencyFrom := p_CurFrom_ID;
|
||||||
|
v_CurrencyTo := p_CurTo_ID;
|
||||||
|
|
||||||
|
-- if EMU Member involved, replace From/To Currency
|
||||||
|
IF ((cf_isEMUMember = 'Y' AND v_ConvDate >= cf_EMUEntryDate)
|
||||||
|
OR (ct_isEMUMember = 'Y' AND v_ConvDate >= ct_EMUEntryDate)) THEN
|
||||||
|
SELECT MAX(C_Currency_ID)
|
||||||
|
INTO v_CurrencyEuro
|
||||||
|
FROM C_Currency
|
||||||
|
WHERE IsEuro = 'Y';
|
||||||
|
-- Conversion Rate not Found
|
||||||
|
IF (v_CurrencyEuro IS NULL) THEN
|
||||||
|
RAISE NOTICE 'Euro Not Found';
|
||||||
|
RETURN NULL;
|
||||||
|
END IF;
|
||||||
|
IF (cf_isEMUMember = 'Y' AND v_ConvDate >= cf_EMUEntryDate) THEN
|
||||||
|
v_CurrencyFrom := v_CurrencyEuro;
|
||||||
|
ELSE
|
||||||
|
v_CurrencyTo := v_CurrencyEuro;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Get Rate
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
FOR c IN SELECT MultiplyRate
|
||||||
|
FROM C_Conversion_Rate
|
||||||
|
WHERE IsActive='Y' AND C_Currency_ID=v_CurrencyFrom AND C_Currency_ID_To=v_CurrencyTo
|
||||||
|
AND C_ConversionType_ID=v_ConversionType_ID
|
||||||
|
AND v_ConvDate BETWEEN ValidFrom AND ValidTo
|
||||||
|
AND AD_Client_ID IN (0,p_Client_ID) AND AD_Org_ID IN (0,p_Org_ID)
|
||||||
|
ORDER BY AD_Client_ID DESC, AD_Org_ID DESC, ValidFrom DESC
|
||||||
|
LOOP
|
||||||
|
v_Rate := c.MultiplyRate;
|
||||||
|
EXIT; -- only first
|
||||||
|
END LOOP;
|
||||||
|
END;
|
||||||
|
-- Not found
|
||||||
|
IF (v_Rate IS NULL) THEN
|
||||||
|
RAISE NOTICE 'Conversion Rate Not Found';
|
||||||
|
RETURN NULL;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Currency From was EMU
|
||||||
|
IF (cf_isEMUMember = 'Y' AND v_ConvDate >= cf_EMUEntryDate) THEN
|
||||||
|
RETURN v_Rate / cf_EMURate;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Currency To was EMU
|
||||||
|
IF (ct_isEMUMember = 'Y' AND v_ConvDate >= ct_EMUEntryDate) THEN
|
||||||
|
RETURN v_Rate * ct_EMURate;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
RETURN v_Rate;
|
||||||
|
|
||||||
|
EXCEPTION WHEN OTHERS THEN
|
||||||
|
RAISE NOTICE '%', SQLERRM;
|
||||||
|
RETURN NULL;
|
||||||
|
|
||||||
|
|
||||||
|
END;
|
||||||
|
|
||||||
|
$body$ LANGUAGE plpgsql STABLE;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201410231928_IDEMPIERE-2269.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
-- Oct 27, 2014 3:39:07 PM COT
|
||||||
|
-- IDEMPIERE-2250 Charge on bank transfer not needed
|
||||||
|
UPDATE AD_Field SET DisplayLogic='@PaymentRule@=''P''',Updated=TO_TIMESTAMP('2014-10-27 15:39:07','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3439
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201410271541_IDEMPIERE-2276.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
-- Oct 28, 2014 6:45:00 PM CET
|
||||||
|
-- IDEMPIERE-2279 C_ContactActivity SalesRep_ID has no AD_Reference_Value_ID
|
||||||
|
UPDATE AD_Column SET AD_Reference_Value_ID=110,Updated=TO_TIMESTAMP('2014-10-28 18:45:00','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=62467
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201410271848_IDEMPIERE-2279.sql') FROM dual
|
||||||
|
;
|
|
@ -0,0 +1,6 @@
|
||||||
|
update ad_system set name='iDempiere' where name='?'
|
||||||
|
;
|
||||||
|
|
||||||
|
SELECT register_migration_script('201410291142_IDEMPIERE-2260.sql') FROM dual
|
||||||
|
;
|
||||||
|
|
|
@ -616,13 +616,9 @@ public class ModelInterfaceGenerator
|
||||||
if ("D".equals(entityType))
|
if ("D".equals(entityType))
|
||||||
return "org.compiere.model";
|
return "org.compiere.model";
|
||||||
|
|
||||||
for (MEntityType entity : MEntityType.getEntityTypes(Env.getCtx()))
|
MEntityType entity = MEntityType.get(Env.getCtx(), entityType);
|
||||||
{
|
if (entity != null)
|
||||||
if (entity.getEntityType().equals(entityType))
|
return entity.getModelPackage();
|
||||||
{
|
|
||||||
return entity.getModelPackage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,7 @@ import javax.swing.event.EventListenerList;
|
||||||
import org.adempiere.base.Core;
|
import org.adempiere.base.Core;
|
||||||
import org.compiere.db.CConnection;
|
import org.compiere.db.CConnection;
|
||||||
import org.compiere.model.MClient;
|
import org.compiere.model.MClient;
|
||||||
|
import org.compiere.model.MSysConfig;
|
||||||
import org.compiere.model.MSystem;
|
import org.compiere.model.MSystem;
|
||||||
import org.compiere.model.ModelValidationEngine;
|
import org.compiere.model.ModelValidationEngine;
|
||||||
import org.compiere.model.ServerStateChangeEvent;
|
import org.compiere.model.ServerStateChangeEvent;
|
||||||
|
@ -153,6 +154,10 @@ public final class Adempiere
|
||||||
*/
|
*/
|
||||||
public static String getVersion()
|
public static String getVersion()
|
||||||
{
|
{
|
||||||
|
String version = MSysConfig.getValue(MSysConfig.APPLICATION_MAIN_VERSION, null);
|
||||||
|
if(version != null)
|
||||||
|
return version;
|
||||||
|
|
||||||
IProduct product = Platform.getProduct();
|
IProduct product = Platform.getProduct();
|
||||||
if (product != null) {
|
if (product != null) {
|
||||||
Bundle bundle = product.getDefiningBundle();
|
Bundle bundle = product.getDefiningBundle();
|
||||||
|
@ -170,9 +175,40 @@ public final class Adempiere
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
} // getVersion
|
} // getVersion
|
||||||
|
|
||||||
|
public static boolean isVersionShown(){
|
||||||
|
return MSysConfig.getBooleanValue(MSysConfig.APPLICATION_MAIN_VERSION_SHOWN, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isDBVersionShown(){
|
||||||
|
boolean defaultVal = MSystem.get(Env.getCtx()).getSystemStatus().equalsIgnoreCase("P") ? false : true;
|
||||||
|
return MSysConfig.getBooleanValue(MSysConfig.APPLICATION_DATABASE_VERSION_SHOWN, defaultVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isVendorShown(){
|
||||||
|
return MSysConfig.getBooleanValue(MSysConfig.APPLICATION_IMPLEMENTATION_VENDOR_SHOWN, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isJVMShown(){
|
||||||
|
boolean defaultVal = MSystem.get(Env.getCtx()).getSystemStatus().equalsIgnoreCase("P") ? false : true;
|
||||||
|
return MSysConfig.getBooleanValue(MSysConfig.APPLICATION_JVM_VERSION_SHOWN, defaultVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isOSShown(){
|
||||||
|
boolean defaultVal = MSystem.get(Env.getCtx()).getSystemStatus().equalsIgnoreCase("P") ? false : true;
|
||||||
|
return MSysConfig.getBooleanValue(MSysConfig.APPLICATION_OS_INFO_SHOWN, defaultVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isHostShown()
|
||||||
|
{
|
||||||
|
boolean defaultVal = MSystem.get(Env.getCtx()).getSystemStatus().equalsIgnoreCase("P") ? false : true;
|
||||||
|
return MSysConfig.getBooleanValue(MSysConfig.APPLICATION_HOST_SHOWN, defaultVal);
|
||||||
|
}
|
||||||
|
|
||||||
public static String getDatabaseVersion()
|
public static String getDatabaseVersion()
|
||||||
{
|
{
|
||||||
return DB.getSQLValueString(null, "select lastmigrationscriptapplied from ad_system");
|
// return DB.getSQLValueString(null, "select lastmigrationscriptapplied from ad_system");
|
||||||
|
return MSysConfig.getValue(MSysConfig.APPLICATION_DATABASE_VERSION,
|
||||||
|
DB.getSQLValueString(null, "select lastmigrationscriptapplied from ad_system"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -238,6 +274,11 @@ public final class Adempiere
|
||||||
*/
|
*/
|
||||||
public static String getImplementationVendor()
|
public static String getImplementationVendor()
|
||||||
{
|
{
|
||||||
|
if(DB.isConnected()){
|
||||||
|
String vendor = MSysConfig.getValue(MSysConfig.APPLICATION_IMPLEMENTATION_VENDOR, null);
|
||||||
|
if(vendor != null)
|
||||||
|
return vendor;
|
||||||
|
}
|
||||||
if (s_ImplementationVendor == null)
|
if (s_ImplementationVendor == null)
|
||||||
setPackageInfo();
|
setPackageInfo();
|
||||||
return s_ImplementationVendor;
|
return s_ImplementationVendor;
|
||||||
|
|
|
@ -58,6 +58,8 @@ public class MAssetGroup extends X_A_Asset_Group
|
||||||
ag = new MAssetGroup(ctx, A_Asset_Group_ID, null);
|
ag = new MAssetGroup(ctx, A_Asset_Group_ID, null);
|
||||||
if (ag != null && ag.get_ID() != A_Asset_Group_ID)
|
if (ag != null && ag.get_ID() != A_Asset_Group_ID)
|
||||||
ag = null;
|
ag = null;
|
||||||
|
else
|
||||||
|
s_cache.put(A_Asset_Group_ID, ag);
|
||||||
//
|
//
|
||||||
return ag;
|
return ag;
|
||||||
}
|
}
|
||||||
|
|
|
@ -447,9 +447,10 @@ public class MClient extends X_AD_Client
|
||||||
return msgreturn.toString();
|
return msgreturn.toString();
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
StringBuilder msgce = new StringBuilder("iDempiere EMail Test: ").append(toString());
|
String systemName = MSystem.get(getCtx()).getName();
|
||||||
|
StringBuilder msgce = new StringBuilder(systemName).append(" EMail Test: ").append(toString());
|
||||||
EMail email = createEMail (getRequestEMail(),
|
EMail email = createEMail (getRequestEMail(),
|
||||||
"iDempiere EMail Test",msgce.toString());
|
systemName + " EMail Test",msgce.toString());
|
||||||
if (email == null){
|
if (email == null){
|
||||||
StringBuilder msgreturn = new StringBuilder("Could not create EMail: ").append(getName());
|
StringBuilder msgreturn = new StringBuilder("Could not create EMail: ").append(getName());
|
||||||
return msgreturn.toString();
|
return msgreturn.toString();
|
||||||
|
|
|
@ -16,15 +16,13 @@
|
||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
package org.compiere.model;
|
package org.compiere.model;
|
||||||
|
|
||||||
|
import static org.compiere.model.SystemIDs.ENTITYTYPE_ADEMPIERE;
|
||||||
|
import static org.compiere.model.SystemIDs.ENTITYTYPE_DICTIONARY;
|
||||||
|
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.StringTokenizer;
|
|
||||||
import java.util.logging.Level;
|
|
||||||
|
|
||||||
import static org.compiere.model.SystemIDs.*;
|
|
||||||
|
|
||||||
|
import org.compiere.util.CCache;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -46,27 +44,8 @@ public class MEntityType extends X_AD_EntityType
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 4670009709141738924L;
|
private static final long serialVersionUID = -8449015496292546851L;
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Entity Types
|
|
||||||
* @param ctx context
|
|
||||||
* @return entity type array
|
|
||||||
*/
|
|
||||||
static synchronized public MEntityType[] getEntityTypes(Properties ctx)
|
|
||||||
{
|
|
||||||
if (s_entityTypes != null)
|
|
||||||
return s_entityTypes;
|
|
||||||
List<MEntityType> list = new Query(ctx, Table_Name, null, null)
|
|
||||||
.setOnlyActiveRecords(true)
|
|
||||||
.setOrderBy(COLUMNNAME_AD_EntityType_ID)
|
|
||||||
.list();
|
|
||||||
s_entityTypes = new MEntityType[list.size()];
|
|
||||||
list.toArray(s_entityTypes);
|
|
||||||
if (s_log.isLoggable(Level.FINER)) s_log.finer("# " + s_entityTypes.length);
|
|
||||||
return s_entityTypes;
|
|
||||||
} // getEntityTypes
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get EntityType object by name
|
* Get EntityType object by name
|
||||||
* @param ctx
|
* @param ctx
|
||||||
|
@ -75,102 +54,21 @@ public class MEntityType extends X_AD_EntityType
|
||||||
*/
|
*/
|
||||||
public static MEntityType get(Properties ctx, String entityType)
|
public static MEntityType get(Properties ctx, String entityType)
|
||||||
{
|
{
|
||||||
for (MEntityType entity : getEntityTypes(ctx))
|
MEntityType retValue = (MEntityType) s_cache.get (entityType);
|
||||||
{
|
if (retValue != null)
|
||||||
if (entity.getEntityType().equals(entityType))
|
return retValue;
|
||||||
{
|
retValue = new Query(ctx, Table_Name, "EntityType=?", null)
|
||||||
return entity;
|
.setParameters(entityType)
|
||||||
}
|
.firstOnly();
|
||||||
}
|
if (retValue != null)
|
||||||
return null;
|
s_cache.put (entityType, retValue);
|
||||||
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Entity Type as String array
|
|
||||||
* @param ctx context
|
|
||||||
* @return entity type array
|
|
||||||
*/
|
|
||||||
static public String[] getEntityTypeStrings(Properties ctx)
|
|
||||||
{
|
|
||||||
MEntityType[] entityTypes = getEntityTypes(ctx);
|
|
||||||
ArrayList<String> list = new ArrayList<String>(); // list capabilities
|
|
||||||
String[] retValue = new String[entityTypes.length];
|
|
||||||
for (int i = 0; i < entityTypes.length; i++)
|
|
||||||
{
|
|
||||||
String s = entityTypes[i].getEntityType().trim();
|
|
||||||
list.add(s);
|
|
||||||
retValue[i] = s;
|
|
||||||
}
|
|
||||||
if (s_log.isLoggable(Level.FINER)) s_log.finer(list.toString());
|
|
||||||
return retValue;
|
|
||||||
} // getEntityTypeStrings
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Entity Type Classpath array
|
|
||||||
* @param ctx context
|
|
||||||
* @return classpath array
|
|
||||||
*/
|
|
||||||
static public String[] getClasspaths(Properties ctx)
|
|
||||||
{
|
|
||||||
MEntityType[] entityTypes = getEntityTypes(ctx);
|
|
||||||
ArrayList<String> list = new ArrayList<String>();
|
|
||||||
for (int i = 0; i < entityTypes.length; i++)
|
|
||||||
{
|
|
||||||
String classpath = entityTypes[i].getClasspath();
|
|
||||||
if (classpath == null || classpath.length() == 0)
|
|
||||||
continue;
|
|
||||||
StringTokenizer st = new StringTokenizer(classpath, ";, \t\n\r\f");
|
|
||||||
while (st.hasMoreTokens())
|
|
||||||
{
|
|
||||||
String token = st.nextToken();
|
|
||||||
if (token.length() > 0)
|
|
||||||
{
|
|
||||||
if (!list.contains(token))
|
|
||||||
list.add(token);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String[] retValue = new String[list.size()];
|
|
||||||
list.toArray(retValue);
|
|
||||||
if (s_log.isLoggable(Level.FINER)) s_log.finer(list.toString());
|
|
||||||
return retValue;
|
|
||||||
} // getClathpaths
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get Entity Type Model Package array
|
|
||||||
* @param ctx context
|
|
||||||
* @return entity type array
|
|
||||||
*/
|
|
||||||
static public String[] getModelPackages(Properties ctx)
|
|
||||||
{
|
|
||||||
MEntityType[] entityTypes = getEntityTypes(ctx);
|
|
||||||
ArrayList<String> list = new ArrayList<String>();
|
|
||||||
list.add("adempiere.model"); // default
|
|
||||||
for (int i = 0; i < entityTypes.length; i++)
|
|
||||||
{
|
|
||||||
String modelPackage = entityTypes[i].getModelPackage();
|
|
||||||
if (modelPackage == null || modelPackage.length() == 0)
|
|
||||||
continue;
|
|
||||||
StringTokenizer st = new StringTokenizer(modelPackage, ";, \t\n\r\f");
|
|
||||||
while (st.hasMoreTokens())
|
|
||||||
{
|
|
||||||
String token = st.nextToken();
|
|
||||||
if (token.length() > 0)
|
|
||||||
{
|
|
||||||
if (!list.contains(token))
|
|
||||||
list.add(token);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
String[] retValue = new String[list.size()];
|
|
||||||
list.toArray(retValue);
|
|
||||||
if (s_log.isLoggable(Level.FINER)) s_log.finer(list.toString());
|
|
||||||
return retValue;
|
|
||||||
} // getModelPackages
|
|
||||||
|
|
||||||
/** Cached EntityTypes */
|
/** Cached EntityTypes */
|
||||||
private static MEntityType[] s_entityTypes = null;
|
private static CCache<String,MEntityType> s_cache = new CCache<String,MEntityType>(Table_Name, 20);
|
||||||
/** Logger */
|
/** Logger */
|
||||||
|
@SuppressWarnings("unused")
|
||||||
private static CLogger s_log = CLogger.getCLogger (MEntityType.class);
|
private static CLogger s_log = CLogger.getCLogger (MEntityType.class);
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
@ -268,7 +166,6 @@ public class MEntityType extends X_AD_EntityType
|
||||||
*/
|
*/
|
||||||
//setAD_EntityType_ID();
|
//setAD_EntityType_ID();
|
||||||
} // new
|
} // new
|
||||||
s_entityTypes = null; // reset
|
|
||||||
return true;
|
return true;
|
||||||
} // beforeSave
|
} // beforeSave
|
||||||
|
|
||||||
|
@ -283,7 +180,6 @@ public class MEntityType extends X_AD_EntityType
|
||||||
log.saveError("Error", "You cannot delete a System maintained entity");
|
log.saveError("Error", "You cannot delete a System maintained entity");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
s_entityTypes = null; // reset
|
|
||||||
return true;
|
return true;
|
||||||
} // beforeDelete
|
} // beforeDelete
|
||||||
|
|
||||||
|
|
|
@ -170,8 +170,8 @@ public class MInfoWindow extends X_AD_InfoWindow
|
||||||
Iterator<MInfoProcess> iterator = lsInfoProcess.iterator();
|
Iterator<MInfoProcess> iterator = lsInfoProcess.iterator();
|
||||||
while (iterator.hasNext()){
|
while (iterator.hasNext()){
|
||||||
MInfoProcess testInfoProcess = iterator.next();
|
MInfoProcess testInfoProcess = iterator.next();
|
||||||
// need more review
|
Boolean access = MRole.getDefault().getProcessAccess(testInfoProcess.getAD_Process_ID());
|
||||||
if (MRole.getDefault().getProcessAccess(testInfoProcess.getAD_Process_ID()) == null){
|
if (access == null || !access.booleanValue()) {
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,10 +52,13 @@ public class MProductCategory extends X_M_Product_Category
|
||||||
public static MProductCategory get (Properties ctx, int M_Product_Category_ID)
|
public static MProductCategory get (Properties ctx, int M_Product_Category_ID)
|
||||||
{
|
{
|
||||||
Integer ii = new Integer (M_Product_Category_ID);
|
Integer ii = new Integer (M_Product_Category_ID);
|
||||||
MProductCategory pc = (MProductCategory)s_cache.get(ii);
|
MProductCategory retValue = (MProductCategory)s_cache.get(ii);
|
||||||
if (pc == null)
|
if (retValue != null)
|
||||||
pc = new MProductCategory (ctx, M_Product_Category_ID, null);
|
return retValue;
|
||||||
return pc;
|
retValue = new MProductCategory (ctx, M_Product_Category_ID, null);
|
||||||
|
if (retValue.get_ID () != 0)
|
||||||
|
s_cache.put (M_Product_Category_ID, retValue);
|
||||||
|
return retValue;
|
||||||
} // get
|
} // get
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -42,14 +42,22 @@ public class MSysConfig extends X_AD_SysConfig
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 1418216769489567455L;
|
private static final long serialVersionUID = -5043918406658386237L;
|
||||||
|
|
||||||
public static final String ADDRESS_SAVE_REQUEST_RESPONSE_LOG = "ADDRESS_SAVE_REQUEST_RESPONSE_LOG";
|
|
||||||
public static final String ADDRESS_VALIDATION = "ADDRESS_VALIDATION";
|
public static final String ADDRESS_VALIDATION = "ADDRESS_VALIDATION";
|
||||||
public static final String ALERT_SEND_ATTACHMENT_AS_XLS = "ALERT_SEND_ATTACHMENT_AS_XLS";
|
public static final String ALERT_SEND_ATTACHMENT_AS_XLS = "ALERT_SEND_ATTACHMENT_AS_XLS";
|
||||||
public static final String ALLOW_APPLY_PAYMENT_TO_CREDITMEMO = "ALLOW_APPLY_PAYMENT_TO_CREDITMEMO";
|
public static final String ALLOW_APPLY_PAYMENT_TO_CREDITMEMO = "ALLOW_APPLY_PAYMENT_TO_CREDITMEMO";
|
||||||
public static final String ALLOW_OVER_APPLIED_PAYMENT = "ALLOW_OVER_APPLIED_PAYMENT";
|
public static final String ALLOW_OVER_APPLIED_PAYMENT = "ALLOW_OVER_APPLIED_PAYMENT";
|
||||||
public static final String ALogin_ShowOneRole = "ALogin_ShowOneRole";
|
public static final String ALogin_ShowOneRole = "ALogin_ShowOneRole";
|
||||||
|
public static final String APPLICATION_DATABASE_VERSION = "APPLICATION_DATABASE_VERSION";
|
||||||
|
public static final String APPLICATION_DATABASE_VERSION_SHOWN = "APPLICATION_DATABASE_VERSION_SHOWN";
|
||||||
|
public static final String APPLICATION_HOST_SHOWN = "APPLICATION_HOST_SHOWN";
|
||||||
|
public static final String APPLICATION_IMPLEMENTATION_VENDOR = "APPLICATION_IMPLEMENTATION_VENDOR";
|
||||||
|
public static final String APPLICATION_IMPLEMENTATION_VENDOR_SHOWN = "APPLICATION_IMPLEMENTATION_VENDOR_SHOWN";
|
||||||
|
public static final String APPLICATION_JVM_VERSION_SHOWN = "APPLICATION_JVM_VERSION_SHOWN";
|
||||||
|
public static final String APPLICATION_MAIN_VERSION = "APPLICATION_MAIN_VERSION";
|
||||||
|
public static final String APPLICATION_MAIN_VERSION_SHOWN = "APPLICATION_MAIN_VERSION_SHOWN";
|
||||||
|
public static final String APPLICATION_OS_INFO_SHOWN = "APPLICATION_OS_INFO_SHOWN";
|
||||||
public static final String BACKGROUND_JOB_ALLOWED = "BACKGROUND_JOB_ALLOWED";
|
public static final String BACKGROUND_JOB_ALLOWED = "BACKGROUND_JOB_ALLOWED";
|
||||||
public static final String BACKGROUND_JOB_BY_DEFAULT = "BACKGROUND_JOB_BY_DEFAULT";
|
public static final String BACKGROUND_JOB_BY_DEFAULT = "BACKGROUND_JOB_BY_DEFAULT";
|
||||||
public static final String BACKGROUND_JOB_MAX_IN_SYSTEM = "BACKGROUND_JOB_MAX_IN_SYSTEM";
|
public static final String BACKGROUND_JOB_MAX_IN_SYSTEM = "BACKGROUND_JOB_MAX_IN_SYSTEM";
|
||||||
|
@ -107,7 +115,6 @@ public class MSysConfig extends X_AD_SysConfig
|
||||||
public static final String RecentItems_MaxShown = "RecentItems_MaxShown";
|
public static final String RecentItems_MaxShown = "RecentItems_MaxShown";
|
||||||
public static final String REPORT_SWAP_MAX_ROWS = "REPORT_SWAP_MAX_ROWS";
|
public static final String REPORT_SWAP_MAX_ROWS = "REPORT_SWAP_MAX_ROWS";
|
||||||
public static final String SHIPPING_DEFAULT_WEIGHT_PER_PACKAGE = "SHIPPING_DEFAULT_WEIGHT_PER_PACKAGE";
|
public static final String SHIPPING_DEFAULT_WEIGHT_PER_PACKAGE = "SHIPPING_DEFAULT_WEIGHT_PER_PACKAGE";
|
||||||
public static final String SHIPPING_SAVE_REQUEST_RESPONSE_LOG = "SHIPPING_SAVE_REQUEST_RESPONSE_LOG";
|
|
||||||
public static final String START_VALUE_BPLOCATION_NAME = "START_VALUE_BPLOCATION_NAME";
|
public static final String START_VALUE_BPLOCATION_NAME = "START_VALUE_BPLOCATION_NAME";
|
||||||
public static final String SWING_LOGIN_ALLOW_REMEMBER_ME = "SWING_LOGIN_ALLOW_REMEMBER_ME";
|
public static final String SWING_LOGIN_ALLOW_REMEMBER_ME = "SWING_LOGIN_ALLOW_REMEMBER_ME";
|
||||||
public static final String SWING_OVERRIDE_TEXT_AREA_BEHAVIOUR = "SWING_OVERRIDE_TEXT_AREA_BEHAVIOUR";
|
public static final String SWING_OVERRIDE_TEXT_AREA_BEHAVIOUR = "SWING_OVERRIDE_TEXT_AREA_BEHAVIOUR";
|
||||||
|
@ -116,7 +123,6 @@ public class MSysConfig extends X_AD_SysConfig
|
||||||
public static final String SYSTEM_IN_MAINTENANCE_MODE = "SYSTEM_IN_MAINTENANCE_MODE";
|
public static final String SYSTEM_IN_MAINTENANCE_MODE = "SYSTEM_IN_MAINTENANCE_MODE";
|
||||||
public static final String SYSTEM_INSERT_CHANGELOG = "SYSTEM_INSERT_CHANGELOG";
|
public static final String SYSTEM_INSERT_CHANGELOG = "SYSTEM_INSERT_CHANGELOG";
|
||||||
public static final String SYSTEM_NATIVE_SEQUENCE = "SYSTEM_NATIVE_SEQUENCE";
|
public static final String SYSTEM_NATIVE_SEQUENCE = "SYSTEM_NATIVE_SEQUENCE";
|
||||||
public static final String TAX_SAVE_REQUEST_RESPONSE_LOG = "TAX_SAVE_REQUEST_RESPONSE_LOG";
|
|
||||||
public static final String TWOPACK_HANDLE_TRANSLATIONS = "2PACK_HANDLE_TRANSLATIONS";
|
public static final String TWOPACK_HANDLE_TRANSLATIONS = "2PACK_HANDLE_TRANSLATIONS";
|
||||||
public static final String USE_EMAIL_FOR_LOGIN = "USE_EMAIL_FOR_LOGIN";
|
public static final String USE_EMAIL_FOR_LOGIN = "USE_EMAIL_FOR_LOGIN";
|
||||||
public static final String USER_LOCKING_MAX_ACCOUNT_LOCK_MINUTES = "USER_LOCKING_MAX_ACCOUNT_LOCK_MINUTES";
|
public static final String USER_LOCKING_MAX_ACCOUNT_LOCK_MINUTES = "USER_LOCKING_MAX_ACCOUNT_LOCK_MINUTES";
|
||||||
|
|
|
@ -3014,6 +3014,8 @@ public abstract class PO
|
||||||
{
|
{
|
||||||
if (m_KeyColumns[i].endsWith("_ID"))
|
if (m_KeyColumns[i].endsWith("_ID"))
|
||||||
sb.append(m_IDs[i]);
|
sb.append(m_IDs[i]);
|
||||||
|
else if(m_IDs[i] instanceof Timestamp)
|
||||||
|
sb.append(DB.TO_DATE((Timestamp)m_IDs[i], false));
|
||||||
else {
|
else {
|
||||||
sb.append("'");
|
sb.append("'");
|
||||||
if (m_IDs[i] instanceof Boolean) {
|
if (m_IDs[i] instanceof Boolean) {
|
||||||
|
|
|
@ -22,7 +22,7 @@ import java.text.DateFormat;
|
||||||
import java.text.DecimalFormatSymbols;
|
import java.text.DecimalFormatSymbols;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ public class Language implements Serializable
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = 6705748825004207885L;
|
private static final long serialVersionUID = 8855937839841807335L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -59,19 +59,19 @@ public class Language implements Serializable
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* System Languages.
|
* System Languages.
|
||||||
* If you want to add a language, extend the array
|
* If you want to add a language, use the method getLanguage which extends the array
|
||||||
* - or use the addLanguage() method.
|
|
||||||
**/
|
**/
|
||||||
static private Language[] s_languages = new Language[] {
|
private static List<Language> s_languages = new ArrayList<Language>();
|
||||||
new Language ("English",
|
|
||||||
AD_Language_en_US, Locale.US, null, null,
|
|
||||||
MediaSize.NA.LETTER)
|
|
||||||
};
|
|
||||||
|
|
||||||
/** Base Language */
|
/** Base Language */
|
||||||
private static Language s_baseLanguage = s_languages[0];
|
private static Language s_baseLanguage = null;
|
||||||
private static boolean isBaseLanguageSet = false;
|
private static boolean isBaseLanguageSet = false;
|
||||||
|
|
||||||
|
static {
|
||||||
|
s_languages.add(new Language ("English", AD_Language_en_US, Locale.US, null, null, MediaSize.NA.LETTER));
|
||||||
|
s_baseLanguage = s_languages.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
/** Logger */
|
/** Logger */
|
||||||
private static CLogger log = CLogger.getCLogger(Language.class.getName());
|
private static CLogger log = CLogger.getCLogger(Language.class.getName());
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ public class Language implements Serializable
|
||||||
*/
|
*/
|
||||||
public static int getLanguageCount()
|
public static int getLanguageCount()
|
||||||
{
|
{
|
||||||
return s_languages.length;
|
return s_languages.size();
|
||||||
} // getLanguageCount
|
} // getLanguageCount
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -91,33 +91,18 @@ public class Language implements Serializable
|
||||||
*/
|
*/
|
||||||
public static Language getLanguage (int index)
|
public static Language getLanguage (int index)
|
||||||
{
|
{
|
||||||
if (index < 0 || index >= s_languages.length)
|
if (index < 0 || index >= s_languages.size())
|
||||||
return s_baseLanguage;
|
return s_baseLanguage;
|
||||||
return s_languages[index];
|
return s_languages.get(index);
|
||||||
} // getLanguage
|
} // getLanguage
|
||||||
|
|
||||||
/**
|
|
||||||
* Add Language to supported Languages
|
|
||||||
* @param language new language
|
|
||||||
* @deprecated IDEMPIERE-489 Configure the language in the database
|
|
||||||
*/
|
|
||||||
public static void addLanguage (Language language)
|
|
||||||
{
|
|
||||||
if (language == null)
|
|
||||||
return;
|
|
||||||
ArrayList<Language> list = new ArrayList<Language>(Arrays.asList(s_languages));
|
|
||||||
list.add(language);
|
|
||||||
s_languages = new Language[list.size()];
|
|
||||||
list.toArray(s_languages);
|
|
||||||
} // addLanguage
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* Get Language.
|
* Get Language.
|
||||||
* If language does not exist, create it on the fly assuming that it is valid
|
* If language does not exist, create it on the fly assuming that it is valid
|
||||||
* @param langInfo either language (en) or locale (en-US) or display name
|
* @param langInfo either language (en) or locale (en-US) or display name
|
||||||
* @return Name (e.g. Deutsch)
|
* @return Name (e.g. Deutsch)
|
||||||
*/
|
*/
|
||||||
public static Language getLanguage (String langInfo)
|
public synchronized static Language getLanguage (String langInfo)
|
||||||
{
|
{
|
||||||
int idxReplace = -1;
|
int idxReplace = -1;
|
||||||
String lang = langInfo;
|
String lang = langInfo;
|
||||||
|
@ -125,17 +110,17 @@ public class Language implements Serializable
|
||||||
lang = System.getProperty("user.language", "");
|
lang = System.getProperty("user.language", "");
|
||||||
|
|
||||||
// Search existing Languages
|
// Search existing Languages
|
||||||
for (int i = 0; i < s_languages.length; i++)
|
for (int i = 0; i < s_languages.size(); i++)
|
||||||
{
|
{
|
||||||
if ( lang.equals(s_languages[i].getName())
|
if ( lang.equals(s_languages.get(i).getAD_Language())
|
||||||
|| lang.equals(s_languages[i].getLanguageCode())
|
|| lang.equals(s_languages.get(i).getLanguageCode())
|
||||||
|| lang.equals(s_languages[i].getAD_Language())) {
|
|| lang.equals(s_languages.get(i).getName())) {
|
||||||
if (!s_languages[i].m_fromDB && DB.isConnected()) {
|
if (!s_languages.get(i).m_fromDB && DB.isConnected()) {
|
||||||
// if language was not get from DB and now we're connected
|
// if language was not get from DB and now we're connected
|
||||||
idxReplace = i;
|
idxReplace = i;
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
return s_languages[i];
|
return s_languages.get(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -181,17 +166,16 @@ public class Language implements Serializable
|
||||||
if (ll == null) {
|
if (ll == null) {
|
||||||
ll = new Language (lang, lang, locale);
|
ll = new Language (lang, lang, locale);
|
||||||
}
|
}
|
||||||
|
if (log.isLoggable(Level.INFO)) {
|
||||||
|
StringBuilder msglog = new StringBuilder("Adding Language=").append(language).append(", Country=").append(country).append(", Locale=").append(locale);
|
||||||
|
log.info (msglog.toString());
|
||||||
|
}
|
||||||
StringBuilder msglog = new StringBuilder("Adding Language=").append(language).append(", Country=").append(country).append(", Locale=").append(locale);
|
StringBuilder msglog = new StringBuilder("Adding Language=").append(language).append(", Country=").append(country).append(", Locale=").append(locale);
|
||||||
if (log.isLoggable(Level.INFO)) log.info (msglog.toString());
|
log.warning(msglog.toString());
|
||||||
if (idxReplace >= 0) {
|
if (idxReplace >= 0) {
|
||||||
s_languages[idxReplace] = ll;
|
s_languages.set(idxReplace, ll);
|
||||||
} else {
|
} else {
|
||||||
// Add to Languages
|
s_languages.add(ll);
|
||||||
ArrayList<Language> list = new ArrayList<Language>(Arrays.asList(s_languages));
|
|
||||||
list.add(ll);
|
|
||||||
s_languages = new Language [list.size()];
|
|
||||||
list.toArray(s_languages);
|
|
||||||
// Return Language
|
|
||||||
}
|
}
|
||||||
return ll;
|
return ll;
|
||||||
}
|
}
|
||||||
|
@ -274,10 +258,10 @@ public class Language implements Serializable
|
||||||
{
|
{
|
||||||
if (locale != null)
|
if (locale != null)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < s_languages.length; i++)
|
for (int i = 0; i < s_languages.size(); i++)
|
||||||
{
|
{
|
||||||
if (locale.getLanguage().equals(s_languages[i].getLocale().getLanguage()))
|
if (locale.getLanguage().equals(s_languages.get(i).getLocale().getLanguage()))
|
||||||
return s_languages[i].getAD_Language();
|
return s_languages.get(i).getAD_Language();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return s_baseLanguage.getAD_Language();
|
return s_baseLanguage.getAD_Language();
|
||||||
|
@ -309,9 +293,9 @@ public class Language implements Serializable
|
||||||
*/
|
*/
|
||||||
public static String[] getNames()
|
public static String[] getNames()
|
||||||
{
|
{
|
||||||
String[] retValue = new String[s_languages.length];
|
String[] retValue = new String[s_languages.size()];
|
||||||
for (int i = 0; i < s_languages.length; i++)
|
for (int i = 0; i < s_languages.size(); i++)
|
||||||
retValue[i] = s_languages[i].getName();
|
retValue[i] = s_languages.get(i).getName();
|
||||||
return retValue;
|
return retValue;
|
||||||
} // getNames
|
} // getNames
|
||||||
|
|
||||||
|
|
|
@ -85,6 +85,7 @@ public class CashFlow extends SvrProcess {
|
||||||
dateFrom.set(Calendar.HOUR_OF_DAY, 0);
|
dateFrom.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
dateFrom.set(Calendar.MINUTE, 0);
|
dateFrom.set(Calendar.MINUTE, 0);
|
||||||
dateFrom.set(Calendar.SECOND, 0);
|
dateFrom.set(Calendar.SECOND, 0);
|
||||||
|
dateFrom.set(Calendar.MILLISECOND, 0);
|
||||||
p_dateFrom = new Timestamp(dateFrom.getTimeInMillis());
|
p_dateFrom = new Timestamp(dateFrom.getTimeInMillis());
|
||||||
p_dateFrom.setNanos(0);
|
p_dateFrom.setNanos(0);
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
# FileName: idempiere.init
|
# FileName: idempiere.init
|
||||||
# Description: adempiere erp software startup and shutdown
|
# Description: idempiere erp software startup and shutdown
|
||||||
# Vendor: K.K. Alice
|
# Vendor: K.K. Alice
|
||||||
# Created: 05. April 2004
|
# Created: 05. April 2004
|
||||||
# Author: S. Christians
|
# Author: S. Christians
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
# FilePerms: 0755
|
# FilePerms: 0755
|
||||||
#
|
#
|
||||||
# chkconfig: 2345 97 06
|
# chkconfig: 2345 97 06
|
||||||
# $Id: adempiere,v 1.1 2006/03/16 05:00:28 cruiz Exp $
|
# $Id: idempiere,v 1.1 2006/03/16 05:00:28 cruiz Exp $
|
||||||
|
|
||||||
# initialization
|
# initialization
|
||||||
# adjust these variables to your environment
|
# adjust these variables to your environment
|
||||||
|
@ -39,7 +39,7 @@ start () {
|
||||||
echo "iDempiere is already running"
|
echo "iDempiere is already running"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
echo -n "Starting ADempiere ERP: "
|
echo -n "Starting iDempiere ERP: "
|
||||||
cd $IDEMPIERE_HOME/utils
|
cd $IDEMPIERE_HOME/utils
|
||||||
source $ENVFILE
|
source $ENVFILE
|
||||||
export LOGFILE=$IDEMPIERE_HOME/log/idempiere_`date +%Y%m%d%H%M%S`.log
|
export LOGFILE=$IDEMPIERE_HOME/log/idempiere_`date +%Y%m%d%H%M%S`.log
|
||||||
|
@ -85,7 +85,7 @@ stop () {
|
||||||
cd $IDEMPIERE_HOME/utils
|
cd $IDEMPIERE_HOME/utils
|
||||||
source $ENVFILE
|
source $ENVFILE
|
||||||
echo "Trying direct kill with signal -15"
|
echo "Trying direct kill with signal -15"
|
||||||
# Adempiere didn't finish - try direct kill with signal 15, then signal 9
|
# iDempiere didn't finish - try direct kill with signal 15, then signal 9
|
||||||
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 -v grep | grep $IDEMPIERE_HOME | sed -e 's/^ *//g' | cut -f 1 -d " " | sort -u`
|
||||||
sleep 5
|
sleep 5
|
||||||
getidempierestatus
|
getidempierestatus
|
||||||
|
|
|
@ -57,7 +57,8 @@ public class ExecuteProcessCommand extends ServerResource {
|
||||||
String procedureName = (String) entity.get("procedureName");
|
String procedureName = (String) entity.get("procedureName");
|
||||||
|
|
||||||
MRole role = MRole.get(context, Env.getAD_Role_ID(context), Env.getAD_User_ID(context), false);
|
MRole role = MRole.get(context, Env.getAD_Role_ID(context), Env.getAD_User_ID(context), false);
|
||||||
if (!role.getProcessAccess(pi.getAD_Process_ID())) {
|
Boolean access = role.getProcessAccess(pi.getAD_Process_ID());
|
||||||
|
if (access == null || !access.booleanValue()) {
|
||||||
throw new AdempiereException("Access denied.");
|
throw new AdempiereException("Access denied.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,7 @@ import org.compiere.model.GridWindow;
|
||||||
import org.compiere.model.I_AD_Preference;
|
import org.compiere.model.I_AD_Preference;
|
||||||
import org.compiere.model.MLookup;
|
import org.compiere.model.MLookup;
|
||||||
import org.compiere.model.MPreference;
|
import org.compiere.model.MPreference;
|
||||||
|
import org.compiere.model.MRole;
|
||||||
import org.compiere.model.MTab;
|
import org.compiere.model.MTab;
|
||||||
import org.compiere.model.MTable;
|
import org.compiere.model.MTable;
|
||||||
import org.compiere.model.MToolBarButton;
|
import org.compiere.model.MToolBarButton;
|
||||||
|
@ -633,8 +634,11 @@ DataStatusListener, IADTabpanel, IdSpace, IFieldEditorContainer
|
||||||
//get extra toolbar process buttons
|
//get extra toolbar process buttons
|
||||||
MToolBarButton[] mToolbarButtons = MToolBarButton.getProcessButtonOfTab(gridTab.getAD_Tab_ID(), null);
|
MToolBarButton[] mToolbarButtons = MToolBarButton.getProcessButtonOfTab(gridTab.getAD_Tab_ID(), null);
|
||||||
for(MToolBarButton mToolbarButton : mToolbarButtons) {
|
for(MToolBarButton mToolbarButton : mToolbarButtons) {
|
||||||
ToolbarProcessButton toolbarProcessButton = new ToolbarProcessButton(mToolbarButton, this, windowPanel, windowNo);
|
Boolean access = MRole.getDefault().getProcessAccess(mToolbarButton.getAD_Process_ID());
|
||||||
toolbarProcessButtons.add(toolbarProcessButton);
|
if (access != null && access.booleanValue()) {
|
||||||
|
ToolbarProcessButton toolbarProcessButton = new ToolbarProcessButton(mToolbarButton, this, windowPanel, windowNo);
|
||||||
|
toolbarProcessButtons.add(toolbarProcessButton);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (toolbarProcessButtons.size() > 0) {
|
if (toolbarProcessButtons.size() > 0) {
|
||||||
|
|
|
@ -20,6 +20,8 @@ import static org.compiere.model.SystemIDs.COLUMN_C_INVOICE_C_BPARTNER_ID;
|
||||||
import static org.compiere.model.SystemIDs.COLUMN_C_INVOICE_C_CURRENCY_ID;
|
import static org.compiere.model.SystemIDs.COLUMN_C_INVOICE_C_CURRENCY_ID;
|
||||||
import static org.compiere.model.SystemIDs.COLUMN_C_PERIOD_AD_ORG_ID;
|
import static org.compiere.model.SystemIDs.COLUMN_C_PERIOD_AD_ORG_ID;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
@ -336,7 +338,13 @@ public class WAllocation extends Allocation
|
||||||
statusBar.setVflex("min");
|
statusBar.setVflex("min");
|
||||||
|
|
||||||
// Date set to Login Date
|
// Date set to Login Date
|
||||||
dateField.setValue(Env.getContextAsDate(Env.getCtx(), "#Date"));
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.setTime(Env.getContextAsDate(Env.getCtx(), "#Date"));
|
||||||
|
cal.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
|
cal.set(Calendar.MINUTE, 0);
|
||||||
|
cal.set(Calendar.SECOND, 0);
|
||||||
|
cal.set(Calendar.MILLISECOND, 0);
|
||||||
|
dateField.setValue(new Timestamp(cal.getTimeInMillis()));
|
||||||
dateField.addValueChangeListener(this);
|
dateField.addValueChangeListener(this);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,7 @@ public class DefaultFeedbackService implements IFeedbackService {
|
||||||
Msg.getMsg(Env.getCtx(), "EMailSupport"),
|
Msg.getMsg(Env.getCtx(), "EMailSupport"),
|
||||||
MUser.get(Env.getCtx()),
|
MUser.get(Env.getCtx()),
|
||||||
"", // to
|
"", // to
|
||||||
"iDempiere " + Msg.getMsg(Env.getCtx(), "TraceInfo"),
|
MSystem.get(Env.getCtx()).getName() + " " + Msg.getMsg(Env.getCtx(), "TraceInfo"),
|
||||||
"", ds);
|
"", ds);
|
||||||
dialog.setAttribute(Window.MODE_KEY, Mode.OVERLAPPED);
|
dialog.setAttribute(Window.MODE_KEY, Mode.OVERLAPPED);
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,13 @@ Copyright (C) 2009 Idalica Corporation
|
||||||
var vendor = Adempiere.getImplementationVendor();
|
var vendor = Adempiere.getImplementationVendor();
|
||||||
var jvm = Adempiere.getJavaInfo();
|
var jvm = Adempiere.getJavaInfo();
|
||||||
var os = Adempiere.getOSInfo();
|
var os = Adempiere.getOSInfo();
|
||||||
|
var isVersionShown = Adempiere.isVersionShown();
|
||||||
|
var isDBVersionShown = Adempiere.isDBVersionShown();
|
||||||
|
var isVendorShown = Adempiere.isVendorShown();
|
||||||
|
var isJVMShown = Adempiere.isJVMShown();
|
||||||
|
var isOSShown = Adempiere.isOSShown();
|
||||||
|
var isHostShown = Adempiere.isHostShown();
|
||||||
|
var isInfoShown = isVersionShown || isDBVersionShown || isVendorShown || isJVMShown || isOSShown || isHostShown;
|
||||||
</zscript>
|
</zscript>
|
||||||
<html>
|
<html>
|
||||||
<![CDATA[
|
<![CDATA[
|
||||||
|
@ -25,40 +32,41 @@ Copyright (C) 2009 Idalica Corporation
|
||||||
font-size: 8pt;
|
font-size: 8pt;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<div class="versionInfoBox">
|
]]>
|
||||||
|
<div class="versionInfoBox" if="${isInfoShown == true}">
|
||||||
<table border="0">
|
<table border="0">
|
||||||
<tr>
|
<tr if="${isVersionShown == true}">
|
||||||
<td align="right">Version</td>
|
<td align="right">Version</td>
|
||||||
<td>:</td>
|
<td>:</td>
|
||||||
<td aligh="left">${mainVersion}</td>
|
<td aligh="left">${mainVersion}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr if="${isDBVersionShown == true}">
|
||||||
<td align="right">Database Version</td>
|
<td align="right">Database Version</td>
|
||||||
<td>:</td>
|
<td>:</td>
|
||||||
<td aligh="left">${dbVersion}</td>
|
<td aligh="left">${dbVersion}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr if="${isVendorShown == true}">
|
||||||
<td align="right">Vendor</td>
|
<td align="right">Vendor</td>
|
||||||
<td>:</td>
|
<td>:</td>
|
||||||
<td aligh="left">${vendor}</td>
|
<td aligh="left">${vendor}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr if="${isJVMShown == true}">
|
||||||
<td align="right">JVM</td>
|
<td align="right">JVM</td>
|
||||||
<td>:</td>
|
<td>:</td>
|
||||||
<td aligh="left">${jvm}</td>
|
<td aligh="left">${jvm}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr if="${isOSShown == true}">
|
||||||
<td align="right">OS</td>
|
<td align="right">OS</td>
|
||||||
<td>:</td>
|
<td>:</td>
|
||||||
<td aligh="left">${os}</td>
|
<td aligh="left">${os}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr if="${isHostShown == true}">
|
||||||
<td align="right">Host</td>
|
<td align="right">Host</td>
|
||||||
<td>:</td>
|
<td>:</td>
|
||||||
<td aligh="left">${desktop.execution.serverName}</td>
|
<td aligh="left">${desktop.execution.serverName}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
]]>
|
|
||||||
</html>
|
</html>
|
||||||
</zk>
|
</zk>
|
||||||
|
|
Loading…
Reference in New Issue