IDEMPIERE-3235 Posting error when currency rate is different between MR and PO.
This commit is contained in:
parent
bc1da867ef
commit
263759c138
|
@ -202,7 +202,7 @@ public class Doc_MatchPO extends Doc
|
|||
if (m_oLine.getC_Currency_ID() != as.getC_Currency_ID())
|
||||
{
|
||||
MOrder order = m_oLine.getParent();
|
||||
Timestamp dateAcct = order.getDateAcct();
|
||||
Timestamp dateAcct = inOut.getDateAcct();
|
||||
BigDecimal rate = MConversionRate.getRate(
|
||||
order.getC_Currency_ID(), as.getC_Currency_ID(),
|
||||
dateAcct, order.getC_ConversionType_ID(),
|
||||
|
@ -236,7 +236,7 @@ public class Doc_MatchPO extends Doc
|
|||
if (m_oLine.getC_Currency_ID() != as.getC_Currency_ID())
|
||||
{
|
||||
MOrder order = m_oLine.getParent();
|
||||
Timestamp dateAcct = order.getDateAcct();
|
||||
Timestamp dateAcct = inOut.getDateAcct();
|
||||
BigDecimal rate = MConversionRate.getRate(
|
||||
order.getC_Currency_ID(), as.getC_Currency_ID(),
|
||||
dateAcct, order.getC_ConversionType_ID(),
|
||||
|
|
|
@ -253,6 +253,18 @@ public final class Fact
|
|||
// No lines -> balanced
|
||||
if (m_lines.size() == 0 || m_doc.isMultiCurrency())
|
||||
return true;
|
||||
|
||||
// If there is more than 1 currency in fact lines, it is a multi currency doc
|
||||
ArrayList<Integer> list = new ArrayList<Integer>();
|
||||
for (int i = 0; i < m_lines.size(); i++){
|
||||
FactLine line = (FactLine)m_lines.get(i);
|
||||
if (line.getC_Currency_ID() > 0 && !list.contains(line.getC_Currency_ID()))
|
||||
list.add(line.getC_Currency_ID());
|
||||
|
||||
}
|
||||
if (list.size() > 1 )
|
||||
return true;
|
||||
|
||||
BigDecimal balance = getSourceBalance();
|
||||
boolean retValue = balance.signum() == 0;
|
||||
if (retValue) {
|
||||
|
@ -328,7 +340,17 @@ public final class Fact
|
|||
// No lines -> balanced
|
||||
if (m_lines.size() == 0 || m_doc.isMultiCurrency())
|
||||
return true;
|
||||
|
||||
|
||||
// If there is more than 1 currency in fact lines, it is a multi currency doc
|
||||
ArrayList<Integer> list = new ArrayList<Integer>();
|
||||
for (int i = 0; i < m_lines.size(); i++){
|
||||
FactLine line = (FactLine)m_lines.get(i);
|
||||
if (line.getC_Currency_ID() > 0 && !list.contains(line.getC_Currency_ID()))
|
||||
list.add(line.getC_Currency_ID());
|
||||
}
|
||||
if (list.size() > 1 )
|
||||
return true;
|
||||
|
||||
MAcctSchemaElement[] elements = m_acctSchema.getAcctSchemaElements();
|
||||
// check all balancing segments
|
||||
for (int i = 0; i < elements.length; i++)
|
||||
|
|
Loading…
Reference in New Issue