FR [ 2797806 ] new method MPriceList.getDefault(ctx, isSO, Currency)

This commit is contained in:
usrdno 2009-05-31 17:17:25 +00:00
parent 509489323a
commit 9355459b27
1 changed files with 47 additions and 0 deletions

View File

@ -99,6 +99,53 @@ public class MPriceList extends X_M_PriceList
return retValue;
} // getDefault
/**
* Get Default Price List for Client (cached) with given currency
* @param ctx context
* @param IsSOPriceList SO or PO
* @param ISOCurrency
* @return PriceList or null
*/
public static MPriceList getDefault(Properties ctx, boolean IsSOPriceList, String ISOCurrency)
{
int AD_Client_ID = Env.getAD_Client_ID(ctx);
MCurrency currency = MCurrency.get(ctx, ISOCurrency);
// If currency is null, return the default without looking at currency
if (currency==null) return(getDefault(ctx, IsSOPriceList));
int M_Currency_ID = currency.get_ID();
MPriceList retValue = null;
// Search for it in cache
Iterator<MPriceList> it = s_cache.values().iterator();
while (it.hasNext())
{
retValue = it.next();
if (retValue.isDefault()
&& retValue.getAD_Client_ID() == AD_Client_ID
&& retValue.isSOPriceList() == IsSOPriceList
&& retValue.getC_Currency_ID()==M_Currency_ID
)
{
return retValue;
}
}
// Get from DB
final String whereClause = "AD_Client_ID=? AND IsDefault=? AND IsSOPriceList=? AND C_Currency_ID=?";
retValue = new Query(ctx, Table_Name, whereClause, null)
.setParameters(new Object[]{AD_Client_ID, "Y", IsSOPriceList ? "Y" : "N", Integer.valueOf(M_Currency_ID)})
.setOrderBy("M_PriceList_ID")
.first();
// Return value
if (retValue != null)
{
s_cache.put(retValue.get_ID(), retValue);
}
return retValue;
}
/**
* Get Standard Currency Precision
* @param ctx context