use of org.compiere.model.POInfo in project adempiere by adempiere.
the class MigrationCreate method doIt.
/**
*
* Process to create migration from selected records
*
* @author Paul Bowden, Adaxa Pty Ltd
*
*/
@Override
protected String doIt() throws Exception {
MMigration migration = new MMigration(getCtx(), 0, get_TrxName());
MTable table = MTable.get(getCtx(), tableId);
String whereClause;
List<PO> pos;
if (recordId > 0) {
pos = new ArrayList<PO>(1);
pos.add(table.getPO(recordId, get_TrxName()));
} else {
String where = "EntityType = ?";
pos = table.createQuery(where, get_TrxName()).list();
}
for (PO po : pos) {
POInfo info = POInfo.getPOInfo(getCtx(), tableId, get_TrxName());
MMigrationStep step = new MMigrationStep(migration, po, info, MMigrationStep.ACTION_Insert);
}
return "@OK@";
}
use of org.compiere.model.POInfo in project adempiere by adempiere.
the class PrintPaperElementHandler method loadAttribute.
protected void loadAttribute(Attributes atts, String name, PO po) {
final String strValueExact = atts.getValue(name);
String strValue = strValueExact;
if (Util.isEmpty(strValue, true)) {
strValue = null;
} else {
strValue = strValue.trim();
}
final POInfo poInfo = POInfo.getPOInfo(po.getCtx(), getTable_ID());
final Class<?> clazz = poInfo.getColumnClass(poInfo.getColumnIndex(name));
if (strValue == null) {
po.set_ValueOfColumn(name, null);
} else if (clazz == BigDecimal.class) {
po.set_ValueOfColumn(name, new BigDecimal(strValue));
} else if (clazz == Integer.class) {
po.set_ValueOfColumn(name, new BigDecimal(strValue).intValueExact());
} else if (clazz == String.class) {
po.set_ValueOfColumn(name, strValueExact);
} else if (clazz == Boolean.class) {
po.set_ValueOfColumn(name, Boolean.valueOf(strValue));
} else if (clazz == Timestamp.class) {
Timestamp ts = Timestamp.valueOf(strValue);
po.set_ValueOfColumn(name, ts);
} else {
throw new AdempiereException("Class not supported - " + clazz);
}
}
use of org.compiere.model.POInfo in project adempiere by adempiere.
the class ModelADServiceImpl method readData.
// updateData
public WindowTabDataDocument readData(ModelCRUDRequestDocument req) throws XFireFault {
WindowTabDataDocument ret = WindowTabDataDocument.Factory.newInstance();
WindowTabData resp = ret.addNewWindowTabData();
ModelCRUD modelCRUD = req.getModelCRUDRequest().getModelCRUD();
String serviceType = modelCRUD.getServiceType();
int cnt = 0;
ADLoginRequest reqlogin = req.getModelCRUDRequest().getADLoginRequest();
String err = modelLogin(reqlogin, webServiceName, "readData", serviceType);
if (err != null && err.length() > 0) {
resp.setError(err);
return ret;
}
// Validate parameters vs service type
validateCRUD(modelCRUD);
Properties ctx = m_cs.getM_ctx();
String tableName = modelCRUD.getTableName();
int recordID = modelCRUD.getRecordID();
// get the PO for the tablename and record ID
MTable table = MTable.get(ctx, tableName);
if (table == null)
throw new XFireFault("Web service type " + m_webservicetype.getValue() + ": table " + tableName + " not found", new QName("readData"));
PO po = table.getPO(recordID, null);
if (po == null) {
resp.setSuccess(false);
resp.setRowCount(cnt);
resp.setNumRows(cnt);
resp.setTotalRows(cnt);
resp.setStartRow(0);
return ret;
}
cnt = 1;
POInfo poinfo = POInfo.getPOInfo(ctx, table.getAD_Table_ID());
DataSet ds = resp.addNewDataSet();
DataRow dr = ds.addNewDataRow();
for (int i = 0; i < poinfo.getColumnCount(); i++) {
String columnName = poinfo.getColumnName(i);
if (m_webservicetype.isOutputColumnNameAllowed(columnName)) {
DataField dfid = dr.addNewField();
dfid.setColumn(columnName);
if (po.get_Value(i) != null)
dfid.setVal(po.get_Value(i).toString());
else
dfid.setVal(null);
}
}
resp.setSuccess(true);
resp.setRowCount(cnt);
resp.setNumRows(cnt);
resp.setTotalRows(cnt);
resp.setStartRow(1);
return ret;
}
use of org.compiere.model.POInfo in project adempiere by adempiere.
the class ModelADServiceImpl method queryData.
public WindowTabDataDocument queryData(ModelCRUDRequestDocument req) throws XFireFault {
WindowTabDataDocument ret = WindowTabDataDocument.Factory.newInstance();
WindowTabData resp = ret.addNewWindowTabData();
ModelCRUD modelCRUD = req.getModelCRUDRequest().getModelCRUD();
String serviceType = modelCRUD.getServiceType();
/** 2014-12-04 Carlos Parada Add Support for Paginate Records */
/** Current Page*/
int currentPage = req.getModelCRUDRequest().getModelCRUD().getPageNo();
/** Records per Page*/
int m_RecByPage = MSysConfig.getIntValue("WS_RECORDS_BY_PAGE", 1);
/** Quantity Pages*/
int qtyPages = 0;
log.info("Current Page " + currentPage);
/** 2014-12-04 Carlos Parada */
ADLoginRequest reqlogin = req.getModelCRUDRequest().getADLoginRequest();
String err = modelLogin(reqlogin, webServiceName, "queryData", serviceType);
if (err != null && err.length() > 0) {
resp.setError(err);
return ret;
}
// Validate parameters vs service type
validateCRUD(modelCRUD);
Properties ctx = m_cs.getM_ctx();
String tableName = modelCRUD.getTableName();
// get the PO for the tablename and record ID
MTable table = MTable.get(ctx, tableName);
if (table == null)
throw new XFireFault("Web service type " + m_webservicetype.getValue() + ": table " + tableName + " not found", new QName("queryData"));
int roleid = reqlogin.getRoleID();
MRole role = new MRole(ctx, roleid, null);
// 2014-12-04 Carlos Parada Replace ResultSet For Query
List<PO> records = null;
String key = m_cs.getM_AD_User_ID() + "_" + serviceType;
if (currentPage != 0)
records = (List<PO>) s_cache.get(key);
//"SELECT * FROM " + tableName;
String sqlWhere = "";
//sqlquery = role.addAccessSQL(sqlquery, tableName, true, true);
for (DataField field : modelCRUD.getDataRow().getFieldList()) {
if (m_webservicetype.isInputColumnNameAllowed(field.getColumn())) {
sqlWhere += (sqlWhere.equals("") ? "" : " AND ") + field.getColumn() + "=?";
} else {
throw new XFireFault("Web service type " + m_webservicetype.getValue() + ": input column " + field.getColumn() + " not allowed", new QName("queryData"));
}
}
if (modelCRUD.getFilter() != null && modelCRUD.getFilter().length() > 0)
sqlWhere += " AND " + modelCRUD.getFilter();
POInfo poinfo = POInfo.getPOInfo(ctx, table.getAD_Table_ID());
int cnt = 0;
try {
if (records == null) {
Query query = new Query(ctx, poinfo.getTableName(), sqlWhere, null);
Object[] parameters = new Object[modelCRUD.getDataRow().getFieldList().size()];
int p = 1;
int i = 0;
for (DataField field : modelCRUD.getDataRow().getFieldList()) {
parameters[i] = field.getVal();
i++;
}
if (parameters.length > 0)
query.setParameters(parameters);
records = query.setApplyAccessFilter(true).list();
}
// Angelo Dabala' (genied) must create just one DataSet, moved outside of the while loop
DataSet ds = resp.addNewDataSet();
// Set Quantity of Pages
if (records.size() != 0)
qtyPages = new BigDecimal(records.size()).divide(new BigDecimal(m_RecByPage)).setScale(0, BigDecimal.ROUND_UP).intValue();
int begin = 0, end = 0;
begin = currentPage * m_RecByPage;
end = (((currentPage + 1) * m_RecByPage) > records.size() ? records.size() : ((currentPage + 1) * m_RecByPage));
for (int j = begin; j < end; j++) {
PO record = records.get(j);
cnt++;
DataRow dr = ds.addNewDataRow();
for (int i = 0; i < poinfo.getColumnCount(); i++) {
String columnName = poinfo.getColumnName(i);
if (m_webservicetype.isOutputColumnNameAllowed(columnName)) {
DataField dfid = dr.addNewField();
dfid.setColumn(columnName);
dfid.setLval(record.get_ValueAsString(columnName));
}
}
}
} catch (Exception e) {
e.printStackTrace();
// ignore this exception
}
resp.setSuccess(true);
resp.setRowCount(cnt);
resp.setNumRows(cnt);
resp.setTotalRows(cnt);
resp.setStartRow(1);
resp.setQtyPages(qtyPages);
return ret;
}
Aggregations