Skip to content

Commit

Permalink
Fixed error with Gain/Loss Report for Multi-Language
Browse files Browse the repository at this point in the history
  • Loading branch information
yamelsenih committed Mar 26, 2019
1 parent 729cdb9 commit b65a1b1
Show file tree
Hide file tree
Showing 6 changed files with 473 additions and 34 deletions.
26 changes: 16 additions & 10 deletions base/src/org/compiere/model/MQuery.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,24 +56,30 @@ public class MQuery implements Serializable
* Get Query from Parameter
* @param ctx context (to determine language)
* @param AD_PInstance_ID instance
* @param TableName table name
* @param tableName table name
* @return where clause
*/
static public MQuery get (Properties ctx, int AD_PInstance_ID, String TableName)
static public MQuery get (Properties ctx, int AD_PInstance_ID, String tableName)
{
s_log.info("AD_PInstance_ID=" + AD_PInstance_ID + ", TableName=" + TableName);
MQuery query = new MQuery(TableName);
s_log.info("AD_PInstance_ID=" + AD_PInstance_ID + ", TableName=" + tableName);
MQuery query = new MQuery(tableName);
// Temporary Tables - add qualifier (not displayed)
boolean isTemporaryTable = false;
MTable table = null;
table = MTable.get(ctx, TableName);
if (table.getColumn("AD_PInstance_ID") != null)
{
table = MTable.get(ctx, tableName);
String translationTableName = tableName;
if (!Env.isBaseLanguage(ctx, tableName) && tableName.toLowerCase().endsWith("_v")) {
boolean hasVT = DB.isTableOrViewExists(tableName+"t");
if (hasVT) {
translationTableName += "t";
}
}
if (table.getColumn("AD_PInstance_ID") != null) {
// BR [ 236 ]
query.addRestriction(TableName + ".AD_PInstance_ID=" + AD_PInstance_ID, true);
query.addRestriction(translationTableName + ".AD_PInstance_ID=" + AD_PInstance_ID, true);
isTemporaryTable = true;
}
boolean isFinancialReport = ("T_Report".equals(TableName) || "T_ReportStatement".equals(TableName));
boolean isFinancialReport = ("T_Report".equals(tableName) || "T_ReportStatement".equals(tableName));
query.m_AD_PInstance_ID = AD_PInstance_ID;

// How many rows do we have?
Expand Down Expand Up @@ -155,7 +161,7 @@ static public MQuery get (Properties ctx, int AD_PInstance_ID, String TableName)
// This condition applies only to temporary tables - teo_sarca [ 2860022 ]
if (isTemporaryTable && !isFinancialReport && table != null && table.getColumn(ParameterName) == null)
{
s_log.info("Skip parameter "+ParameterName+" because there is no column in table "+TableName);
s_log.info("Skip parameter "+ParameterName+" because there is no column in table "+tableName);
continue;
}

Expand Down
10 changes: 4 additions & 6 deletions db/ddlutils/oracle/views/T_INVOICEGL_V.sql
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ CREATE OR REPLACE VIEW T_INVOICEGL_V
AD_PINSTANCE_ID, APAR, OPENAMT, PERCENT, AMTREVALDR,
AMTREVALCR, DATEREVAL, C_CONVERSIONTYPEREVAL_ID, AMTSOURCEBALANCE, AMTACCTBALANCE,
C_DOCTYPEREVAL_ID, AMTREVALDRDIFF, AMTREVALCRDIFF, ISALLCURRENCIES, AMTACCTOPENDR,
AMTACCTOPENCR, AMTACCTOPENBALANCE)
AMTACCTOPENCR, AMTACCTOPENBALANCE, AD_Language)
AS
SELECT i.AD_Client_ID, i.AD_Org_ID, i.IsActive, i.Created,i.CreatedBy, i.Updated,i.UpdatedBy,
i.C_Invoice_ID, i.IsSOTrx, i.DocumentNo, i.DocStatus, i.C_DocType_ID, i.C_Order_ID,
Expand All @@ -36,10 +36,8 @@ SELECT i.AD_Client_ID, i.AD_Org_ID, i.IsActive, i.Created,i.CreatedBy, i.Updated
gl.C_DocTypeReval_ID,
gl.AmtRevalDrDiff, gl.AmtRevalCrDiff, gl.IsAllCurrencies,
(fa.AmtAcctDr*gl.Percent/100) AS AmtAcctOpenDr, (fa.AmtAcctCr*gl.Percent/100) AS AmtAcctOpenCr,
((fa.AmtAcctDr-fa.AmtAcctCr)*gl.Percent/100) AS AmtAcctOpenBalance
((fa.AmtAcctDr-fa.AmtAcctCr)*gl.Percent/100) AS AmtAcctOpenBalance,
'en_US' AS AD_Language
FROM T_InvoiceGL gl
INNER JOIN C_Invoice i ON (gl.C_Invoice_ID=i.C_Invoice_ID)
INNER JOIN Fact_Acct fa ON (gl.Fact_Acct_ID=fa.Fact_Acct_ID);



INNER JOIN Fact_Acct fa ON (gl.Fact_Acct_ID=fa.Fact_Acct_ID);
11 changes: 5 additions & 6 deletions db/ddlutils/oracle/views/T_INVOICEGL_VT.sql
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ CREATE OR REPLACE VIEW T_INVOICEGL_VT
AD_PINSTANCE_ID, APAR, OPENAMT, PERCENT, AMTREVALDR,
AMTREVALCR, DATEREVAL, C_CONVERSIONTYPEREVAL_ID, AMTSOURCEBALANCE, AMTACCTBALANCE,
C_DOCTYPEREVAL_ID, AMTREVALDRDIFF, AMTREVALCRDIFF, ISALLCURRENCIES, AMTACCTOPENDR,
AMTACCTOPENCR, AMTACCTOPENBALANCE)
AMTACCTOPENCR, AMTACCTOPENBALANCE, AD_Language)
AS
SELECT i.AD_Client_ID, i.AD_Org_ID, i.IsActive, i.Created,i.CreatedBy, i.Updated,i.UpdatedBy,
i.C_Invoice_ID, i.IsSOTrx, i.DocumentNo, i.DocStatus, i.C_DocType_ID, i.C_Order_ID,
Expand All @@ -36,10 +36,9 @@ SELECT i.AD_Client_ID, i.AD_Org_ID, i.IsActive, i.Created,i.CreatedBy, i.Updated
gl.C_DocTypeReval_ID,
gl.AmtRevalDrDiff, gl.AmtRevalCrDiff, gl.IsAllCurrencies,
(fa.AmtAcctDr*gl.Percent/100) AS AmtAcctOpenDr, (fa.AmtAcctCr*gl.Percent/100) AS AmtAcctOpenCr,
((fa.AmtAcctDr-fa.AmtAcctCr)*gl.Percent/100) AS AmtAcctOpenBalance
((fa.AmtAcctDr-fa.AmtAcctCr)*gl.Percent/100) AS AmtAcctOpenBalance,
l.AD_Language
FROM T_InvoiceGL gl
INNER JOIN C_Invoice i ON (gl.C_Invoice_ID=i.C_Invoice_ID)
INNER JOIN Fact_Acct fa ON (gl.Fact_Acct_ID=fa.Fact_Acct_ID);



INNER JOIN Fact_Acct fa ON (gl.Fact_Acct_ID=fa.Fact_Acct_ID)
LEFT JOIN AD_Language l ON (l.IsSystemLanguage='Y' AND l.IsActive = 'Y');
10 changes: 4 additions & 6 deletions db/ddlutils/postgresql/views/T_INVOICEGL_V.sql
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ CREATE OR REPLACE VIEW T_INVOICEGL_V
AD_PINSTANCE_ID, APAR, OPENAMT, PERCENT, AMTREVALDR,
AMTREVALCR, DATEREVAL, C_CONVERSIONTYPEREVAL_ID, AMTSOURCEBALANCE, AMTACCTBALANCE,
C_DOCTYPEREVAL_ID, AMTREVALDRDIFF, AMTREVALCRDIFF, ISALLCURRENCIES, AMTACCTOPENDR,
AMTACCTOPENCR, AMTACCTOPENBALANCE)
AMTACCTOPENCR, AMTACCTOPENBALANCE, AD_Language)
AS
SELECT i.AD_Client_ID, i.AD_Org_ID, i.IsActive, i.Created,i.CreatedBy, i.Updated,i.UpdatedBy,
i.C_Invoice_ID, i.IsSOTrx, i.DocumentNo, i.DocStatus, i.C_DocType_ID, i.C_Order_ID,
Expand All @@ -36,10 +36,8 @@ SELECT i.AD_Client_ID, i.AD_Org_ID, i.IsActive, i.Created,i.CreatedBy, i.Updated
gl.C_DocTypeReval_ID,
gl.AmtRevalDrDiff, gl.AmtRevalCrDiff, gl.IsAllCurrencies,
(fa.AmtAcctDr*gl.Percent/100) AS AmtAcctOpenDr, (fa.AmtAcctCr*gl.Percent/100) AS AmtAcctOpenCr,
((fa.AmtAcctDr-fa.AmtAcctCr)*gl.Percent/100) AS AmtAcctOpenBalance
((fa.AmtAcctDr-fa.AmtAcctCr)*gl.Percent/100) AS AmtAcctOpenBalance,
'en_US' AS AD_Language
FROM T_InvoiceGL gl
INNER JOIN C_Invoice i ON (gl.C_Invoice_ID=i.C_Invoice_ID)
INNER JOIN Fact_Acct fa ON (gl.Fact_Acct_ID=fa.Fact_Acct_ID);



INNER JOIN Fact_Acct fa ON (gl.Fact_Acct_ID=fa.Fact_Acct_ID);
11 changes: 5 additions & 6 deletions db/ddlutils/postgresql/views/T_INVOICEGL_VT.sql
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ CREATE OR REPLACE VIEW T_INVOICEGL_VT
AD_PINSTANCE_ID, APAR, OPENAMT, PERCENT, AMTREVALDR,
AMTREVALCR, DATEREVAL, C_CONVERSIONTYPEREVAL_ID, AMTSOURCEBALANCE, AMTACCTBALANCE,
C_DOCTYPEREVAL_ID, AMTREVALDRDIFF, AMTREVALCRDIFF, ISALLCURRENCIES, AMTACCTOPENDR,
AMTACCTOPENCR, AMTACCTOPENBALANCE)
AMTACCTOPENCR, AMTACCTOPENBALANCE, AD_Language)
AS
SELECT i.AD_Client_ID, i.AD_Org_ID, i.IsActive, i.Created,i.CreatedBy, i.Updated,i.UpdatedBy,
i.C_Invoice_ID, i.IsSOTrx, i.DocumentNo, i.DocStatus, i.C_DocType_ID, i.C_Order_ID,
Expand All @@ -36,10 +36,9 @@ SELECT i.AD_Client_ID, i.AD_Org_ID, i.IsActive, i.Created,i.CreatedBy, i.Updated
gl.C_DocTypeReval_ID,
gl.AmtRevalDrDiff, gl.AmtRevalCrDiff, gl.IsAllCurrencies,
(fa.AmtAcctDr*gl.Percent/100) AS AmtAcctOpenDr, (fa.AmtAcctCr*gl.Percent/100) AS AmtAcctOpenCr,
((fa.AmtAcctDr-fa.AmtAcctCr)*gl.Percent/100) AS AmtAcctOpenBalance
((fa.AmtAcctDr-fa.AmtAcctCr)*gl.Percent/100) AS AmtAcctOpenBalance,
l.AD_Language
FROM T_InvoiceGL gl
INNER JOIN C_Invoice i ON (gl.C_Invoice_ID=i.C_Invoice_ID)
INNER JOIN Fact_Acct fa ON (gl.Fact_Acct_ID=fa.Fact_Acct_ID);



INNER JOIN Fact_Acct fa ON (gl.Fact_Acct_ID=fa.Fact_Acct_ID)
LEFT JOIN AD_Language l ON (l.IsSystemLanguage='Y' AND l.IsActive = 'Y');
Loading

0 comments on commit b65a1b1

Please sign in to comment.