IDEMPIERE-3155 Posting issue in Matching PO-Receipt-Invoice. Fix posting for un-matching of Receipt and Invoice.
This commit is contained in:
parent
35933b6ce2
commit
5b29241d87
|
@ -191,9 +191,12 @@ public class Doc_MatchInv extends Doc
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
BigDecimal effMultiplier = multiplier;
|
||||||
|
if (getQty().signum() < 0)
|
||||||
|
effMultiplier = effMultiplier.negate();
|
||||||
if (!dr.updateReverseLine (MInOut.Table_ID, // Amt updated
|
if (!dr.updateReverseLine (MInOut.Table_ID, // Amt updated
|
||||||
m_receiptLine.getM_InOut_ID(), m_receiptLine.getM_InOutLine_ID(),
|
m_receiptLine.getM_InOut_ID(), m_receiptLine.getM_InOutLine_ID(),
|
||||||
multiplier))
|
effMultiplier))
|
||||||
{
|
{
|
||||||
p_Error = "Mat.Receipt not posted yet";
|
p_Error = "Mat.Receipt not posted yet";
|
||||||
return null;
|
return null;
|
||||||
|
@ -241,10 +244,14 @@ public class Doc_MatchInv extends Doc
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cr.setQty(getQty().negate());
|
cr.setQty(getQty().negate());
|
||||||
|
BigDecimal effMultiplier = multiplier;
|
||||||
|
if (getQty().signum() < 0)
|
||||||
|
effMultiplier = effMultiplier.negate();
|
||||||
|
|
||||||
// Set AmtAcctCr/Dr from Invoice (sets also Project)
|
// Set AmtAcctCr/Dr from Invoice (sets also Project)
|
||||||
if (!cr.updateReverseLine (MInvoice.Table_ID, // Amt updated
|
if (!cr.updateReverseLine (MInvoice.Table_ID, // Amt updated
|
||||||
m_invoiceLine.getC_Invoice_ID(), m_invoiceLine.getC_InvoiceLine_ID(), multiplier))
|
m_invoiceLine.getC_Invoice_ID(), m_invoiceLine.getC_InvoiceLine_ID(), effMultiplier))
|
||||||
{
|
{
|
||||||
p_Error = "Invoice not posted yet";
|
p_Error = "Invoice not posted yet";
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -301,6 +301,25 @@ public final class FactLine extends X_Fact_Acct
|
||||||
*/
|
*/
|
||||||
public void setAmtAcct(int C_Currency_ID, BigDecimal AmtAcctDr, BigDecimal AmtAcctCr)
|
public void setAmtAcct(int C_Currency_ID, BigDecimal AmtAcctDr, BigDecimal AmtAcctCr)
|
||||||
{
|
{
|
||||||
|
if (! m_acctSchema.isAllowNegativePosting()) {
|
||||||
|
// fix Debit & Credit
|
||||||
|
if (AmtAcctDr != null)
|
||||||
|
{
|
||||||
|
if (AmtAcctDr.compareTo(Env.ZERO) == -1)
|
||||||
|
{
|
||||||
|
AmtAcctCr = AmtAcctDr.abs();
|
||||||
|
AmtAcctDr = Env.ZERO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (AmtAcctCr != null)
|
||||||
|
{
|
||||||
|
if (AmtAcctCr.compareTo(Env.ZERO) == -1)
|
||||||
|
{
|
||||||
|
AmtAcctDr = AmtAcctCr.abs();
|
||||||
|
AmtAcctCr = Env.ZERO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
setAmtAcctDr (AmtAcctDr);
|
setAmtAcctDr (AmtAcctDr);
|
||||||
setAmtAcctCr (AmtAcctCr);
|
setAmtAcctCr (AmtAcctCr);
|
||||||
// Currency Precision
|
// Currency Precision
|
||||||
|
|
Loading…
Reference in New Issue