use of org.compiere.model.PO in project adempiere by adempiere.
the class InterfaceWrapperHelper method getValueByColumnId.
public static <T> T getValueByColumnId(Object model, int adColumnId) {
Check.assumeNotNull(model, "model is not null");
Check.assume(adColumnId > 0, "adColumnId > 0");
if (GridTabWrapper.isHandled(model)) {
final GridTab gridTab = GridTabWrapper.getGridTab(model);
for (final GridField field : gridTab.getFields()) {
if (field.getAD_Column_ID() == adColumnId) {
@SuppressWarnings("unchecked") final T value = (T) field.getValue();
return value;
}
}
throw new AdempiereException("No field with AD_Column_ID=" + adColumnId + " found in " + gridTab + " for " + model);
} else if (POWrapper.isHandled(model)) {
PO po = POWrapper.getPO(model, false);
@SuppressWarnings("unchecked") T value = (T) po.get_ValueOfColumn(adColumnId);
return value;
} else // else if (POJOWrapper.isHandled(model))
// {
// final POJOWrapper wrapper = POJOWrapper.getWrapper(model);
// // MColumn.getColumnName(ctx, AD_Column_ID)
// }
{
throw new AdempiereException("Model wrapping is not supported for " + model + " (class:" + model.getClass() + ")");
}
}
use of org.compiere.model.PO in project adempiere by adempiere.
the class POWrapper method getCtx.
/**
* Get context form model. If <code>useClientOrgFromModel</code> is true, then the returned context will contain the given <code>model</code>'s AD_Client_ID and AD_Org_ID in its
* <code>#AD_client_ID</code> and <code>#AD_Org_ID</code> properties.
*
* @param model
* @param useClientOrgFromModel
* @return
*/
public static Properties getCtx(final Object model, final boolean useClientOrgFromModel) {
final PO po = getPO(model);
if (po != null) {
final Properties poCtx;
if (useClientOrgFromModel) {
// won't change the original.
poCtx = new Properties(po.getCtx());
Env.setContext(poCtx, "#AD_Client_ID", po.getAD_Client_ID());
Env.setContext(poCtx, "#AD_Org_ID", po.getAD_Org_ID());
} else {
poCtx = po.getCtx();
}
return poCtx;
}
return Env.getCtx();
}
use of org.compiere.model.PO in project adempiere by adempiere.
the class POWrapper method create.
public static <T> T create(Properties ctx, Class<T> cl, String trxName) {
String tableName = getTableName(cl);
PO po = MTable.get(ctx, tableName).getPO(0, trxName);
if (po == null) {
// throw new AdempiereException("@PONotFound@ @" + tableName + "@ (ID=" + record_id + ")");
return null;
}
return create(po, cl);
}
use of org.compiere.model.PO in project adempiere by adempiere.
the class POWrapper method translate.
public static <T> T translate(T model, Class<T> cl, String trlAdLanguage) {
final PO po = getPO(model);
if (trlAdLanguage == null) {
final Properties ctx = getCtx(model);
trlAdLanguage = Env.getAD_Language(ctx);
}
if (Env.isBaseLanguage(trlAdLanguage, po.get_TableName())) {
// no need to translate because context language is same as base language
trlAdLanguage = null;
}
final boolean useOldValues = false;
return create(po, cl, useOldValues, trlAdLanguage);
}
use of org.compiere.model.PO in project metasfresh-webui-api by metasfresh.
the class SqlDocumentsRepository method retrieveOrCreatePO.
private PO retrieveOrCreatePO(final Document document) {
final SqlDocumentEntityDataBindingDescriptor dataBinding = SqlDocumentEntityDataBindingDescriptor.cast(document.getEntityDescriptor().getDataBinding());
final String sqlTableName = dataBinding.getTableName();
//
// Load the PO / Create new PO instance
final PO po;
if (document.isNew()) {
po = TableModelLoader.instance.newPO(document.getCtx(), sqlTableName, ITrx.TRXNAME_ThreadInherited);
} else if (dataBinding.isSingleKey()) {
final boolean checkCache = false;
po = TableModelLoader.instance.getPO(document.getCtx(), sqlTableName, document.getDocumentIdAsInt(), checkCache, ITrx.TRXNAME_ThreadInherited);
} else {
po = toQueryBuilder(dataBinding, document.getDocumentId()).create().firstOnly(PO.class);
}
if (po == null) {
throw new DBException("No PO found for " + document);
}
//
//
po.set_ManualUserAction(document.getWindowNo());
// allow changing any columns
InterfaceWrapperHelper.ATTR_ReadOnlyColumnCheckDisabled.setValue(po, true);
return po;
}
Aggregations