Index: Doc_MatchInv.java =================================================================== --- Doc_MatchInv.java (revision 6957) +++ Doc_MatchInv.java (working copy) @@ -259,12 +259,18 @@ // Invoice Price Variance difference - BigDecimal ipv = cr.getAcctBalance().add(dr.getAcctBalance()).negate(); + // Bayu, Sistematika + // Calculate invoice price variance within transactional currency + // BigDecimal ipv = cr.getAcctBalance().add(dr.getAcctBalance()).negate(); + BigDecimal ipv = cr.getSourceBalance().add(dr.getSourceBalance()).negate(); if (ipv.signum() != 0) { + MInvoice m_invoice = m_invoiceLine.getParent(); + int C_Currency_ID = m_invoice.getC_Currency_ID(); FactLine pv = fact.createLine(null, m_pc.getAccount(ProductCost.ACCTTYPE_P_IPV, as), - as.getC_Currency_ID(), ipv); + // as.getC_Currency_ID(), ipv); + C_Currency_ID, ipv); pv.setC_Activity_ID(m_invoiceLine.getC_Activity_ID()); pv.setC_Campaign_ID(m_invoiceLine.getC_Campaign_ID()); pv.setC_Project_ID(m_invoiceLine.getC_Project_ID()); @@ -273,6 +279,7 @@ pv.setUser2_ID(m_invoiceLine.getUser2_ID()); } log.fine("IPV=" + ipv + "; Balance=" + fact.getSourceBalance()); + // end Bayu // Elaine 2008/6/20 /* Source move to MInvoice.createMatchInvCostDetail() // Cost Detail Record - data from Expense/IncClearing (CR) record