diff --git a/base/src/org/compiere/acct/Doc_MatchInv.java b/base/src/org/compiere/acct/Doc_MatchInv.java
index 858d038cbc..70d836b3c0 100644
--- a/base/src/org/compiere/acct/Doc_MatchInv.java
+++ b/base/src/org/compiere/acct/Doc_MatchInv.java
@@ -46,6 +46,8 @@ import org.compiere.util.Env;
* FR [ 1840016 ] Avoid usage of clearing accounts - subject to C_AcctSchema.IsPostIfClearingEqual
* Avoid posting if both accounts Not Invoiced Receipts and Inventory Clearing are equal
*
+ * @author Bayu Cahya, Sistematika
+ *
BF [ 2268355 ] Invoice price variance doesn't use transactional currency
*/
public class Doc_MatchInv extends Doc
{
@@ -259,12 +261,16 @@ public class Doc_MatchInv extends Doc
// Invoice Price Variance difference
- BigDecimal ipv = cr.getAcctBalance().add(dr.getAcctBalance()).negate();
+ // Bayu, Sistematika
+ // BF [ 2268355 ] Invoice price variance doesn't use transactional currency
+ 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);
+ 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 @@ public class Doc_MatchInv extends Doc
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