BF 2858043 Correct Included Tax in Average Costing
https://sourceforge.net/tracker/?func=detail&aid=2858043&group_id=176962&atid=879332
This commit is contained in:
parent
9083f1ed51
commit
d48e627f68
|
|
@ -21,6 +21,8 @@ import java.sql.ResultSet;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
import org.compiere.model.MTax;
|
||||||
|
import org.compiere.model.MCurrency;
|
||||||
import org.compiere.model.MAccount;
|
import org.compiere.model.MAccount;
|
||||||
import org.compiere.model.MAcctSchema;
|
import org.compiere.model.MAcctSchema;
|
||||||
import org.compiere.model.MCostDetail;
|
import org.compiere.model.MCostDetail;
|
||||||
|
|
@ -41,6 +43,7 @@ import org.compiere.util.Env;
|
||||||
* @author Jorg Janke
|
* @author Jorg Janke
|
||||||
* @author Armen Rizal, Goodwill Consulting
|
* @author Armen Rizal, Goodwill Consulting
|
||||||
* <li>BF [ 1745154 ] Cost in Reversing Material Related Docs
|
* <li>BF [ 1745154 ] Cost in Reversing Material Related Docs
|
||||||
|
* <li>BF [ 2858043 ] Correct Included Tax in Average Costing
|
||||||
* @version $Id: Doc_InOut.java,v 1.3 2006/07/30 00:53:33 jjanke Exp $
|
* @version $Id: Doc_InOut.java,v 1.3 2006/07/30 00:53:33 jjanke Exp $
|
||||||
*/
|
*/
|
||||||
public class Doc_InOut extends Doc
|
public class Doc_InOut extends Doc
|
||||||
|
|
@ -364,13 +367,28 @@ public class Doc_InOut extends Doc
|
||||||
if (C_OrderLine_ID > 0)
|
if (C_OrderLine_ID > 0)
|
||||||
{
|
{
|
||||||
MOrderLine orderLine = new MOrderLine (getCtx(), C_OrderLine_ID, getTrxName());
|
MOrderLine orderLine = new MOrderLine (getCtx(), C_OrderLine_ID, getTrxName());
|
||||||
costs = orderLine.getPriceCost();
|
|
||||||
if (costs == null || costs.signum() == 0)
|
|
||||||
costs = orderLine.getPriceActual();
|
|
||||||
costs = costs.multiply(line.getQty());
|
|
||||||
// Elaine 2008/06/26
|
// Elaine 2008/06/26
|
||||||
C_Currency_ID = orderLine.getC_Currency_ID();
|
C_Currency_ID = orderLine.getC_Currency_ID();
|
||||||
//
|
//
|
||||||
|
costs = orderLine.getPriceCost();
|
||||||
|
if (costs == null || costs.signum() == 0)
|
||||||
|
{
|
||||||
|
costs = orderLine.getPriceActual();
|
||||||
|
// Goodwill: Correct included Tax
|
||||||
|
int C_Tax_ID = orderLine.getC_Tax_ID();
|
||||||
|
if (orderLine.isTaxIncluded() && C_Tax_ID != 0)
|
||||||
|
{
|
||||||
|
MTax tax = MTax.get(getCtx(), C_Tax_ID);
|
||||||
|
if (!tax.isZeroTax())
|
||||||
|
{
|
||||||
|
int stdPrecision = MCurrency.getStdPrecision(getCtx(), C_Currency_ID);
|
||||||
|
BigDecimal costTax = tax.calculateTax(costs, true, stdPrecision);
|
||||||
|
log.fine("Costs=" + costs + " - Tax=" + costTax);
|
||||||
|
costs = costs.subtract(costTax);
|
||||||
|
}
|
||||||
|
} // correct included Tax
|
||||||
|
}
|
||||||
|
costs = costs.multiply(line.getQty());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ import org.compiere.util.Env;
|
||||||
*
|
*
|
||||||
* @author Armen Rizal, Goodwill Consulting
|
* @author Armen Rizal, Goodwill Consulting
|
||||||
* <li>BF [ 2215840 ] MatchPO Bug Collection
|
* <li>BF [ 2215840 ] MatchPO Bug Collection
|
||||||
|
* <li>BF [ 2858043 ] Correct Included Tax in Average Costing
|
||||||
*
|
*
|
||||||
* @author victor.perez@e-evolution.com, e-Evolution http://www.e-evolution.com
|
* @author victor.perez@e-evolution.com, e-Evolution http://www.e-evolution.com
|
||||||
* <li> FR [ 2520591 ] Support multiples calendar for Org
|
* <li> FR [ 2520591 ] Support multiples calendar for Org
|
||||||
|
|
@ -874,7 +875,22 @@ public class MMatchPO extends X_M_MatchPO
|
||||||
// Purchase Order Line
|
// Purchase Order Line
|
||||||
BigDecimal poCost = oLine.getPriceCost();
|
BigDecimal poCost = oLine.getPriceCost();
|
||||||
if (poCost == null || poCost.signum() == 0)
|
if (poCost == null || poCost.signum() == 0)
|
||||||
|
{
|
||||||
poCost = oLine.getPriceActual();
|
poCost = oLine.getPriceActual();
|
||||||
|
// Goodwill: Correct included Tax
|
||||||
|
int C_Tax_ID = oLine.getC_Tax_ID();
|
||||||
|
if (oLine.isTaxIncluded() && C_Tax_ID != 0)
|
||||||
|
{
|
||||||
|
MTax tax = MTax.get(getCtx(), C_Tax_ID);
|
||||||
|
if (!tax.isZeroTax())
|
||||||
|
{
|
||||||
|
int stdPrecision = MCurrency.getStdPrecision(getCtx(), oLine.getC_Currency_ID());
|
||||||
|
BigDecimal costTax = tax.calculateTax(poCost, true, stdPrecision);
|
||||||
|
log.fine("Costs=" + poCost + " - Tax=" + costTax);
|
||||||
|
poCost = poCost.subtract(costTax);
|
||||||
|
}
|
||||||
|
} // correct included Tax
|
||||||
|
}
|
||||||
|
|
||||||
// Source from Doc_MatchPO.createFacts(MAcctSchema)
|
// Source from Doc_MatchPO.createFacts(MAcctSchema)
|
||||||
MInOutLine receiptLine = new MInOutLine (getCtx(), getM_InOutLine_ID(), get_TrxName());
|
MInOutLine receiptLine = new MInOutLine (getCtx(), getM_InOutLine_ID(), get_TrxName());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue