* into the database.
*/
public void doUpdate(RunData data, Context context)
throws Exception
{
Dorder entry = new Dorder();
data.getParameters().setProperties(entry);
entry.setIssuedDate(parseDate(data.getParameters().getString("issueddate")));
entry.setClosedDate(parseDate(data.getParameters().getString("closeddate")));
entry.setCreated(parseDateTime(data.getParameters().getString("created")));
entry.setSalesDate(parseDate(data.getParameters().getString("salesdate")));
entry.setExpectedTime(parseDateShortTime(data.getParameters().getString("expectedtime")));
entry.setDescription(" ---");
entry.setModifiedBy(data.getUser().getUserName());
entry.setModified(new Date());
ParameterParser pp= data.getParameters();
Enumeration paramKeys= pp.keys();
int qtyTotal= 0;
double unitAmount = entry.getUnitPrice();
double unitWeight = entry.getUnitWeight();
BigDecimal totAmount = new BigDecimal(unitAmount);
BigDecimal totWeight = new BigDecimal(unitWeight);
while(paramKeys.hasMoreElements()) {
String paramName = paramKeys.nextElement().toString();
if(paramName.startsWith("locationid")) {
String suffix=paramName.substring(10, paramName.length());
DorderItem entryItem= new DorderItem();
entryItem.setLocationId(pp.getInt("locationid" + suffix));
int itmQuantity= pp.getInt("orderedqty" + suffix);
entryItem.setOrderedQty(itmQuantity);
entryItem.setShippedQty(itmQuantity);
entryItem.setUnsoldQty(0);
entryItem.setLostQty(0);
qtyTotal= qtyTotal + itmQuantity;
entry.addDorderItem(entryItem);
}
}
totAmount= totAmount.multiply(BigDecimal.valueOf(qtyTotal));
totWeight= totWeight.multiply(BigDecimal.valueOf(qtyTotal));
entry.setTotalQuantity(qtyTotal);
entry.setTotalAmount(totAmount);
entry.setTotalWeight(totWeight);
entry.setModified(true);
entry.setNew(false);
Criteria crit = new Criteria();
crit.add(DorderItemPeer.DORDER_ID, entry.getDorderId());
Connection conn = Transaction.begin(DorderPeer.DATABASE_NAME);
boolean success = false;
try {
DorderItemPeer.doDelete(crit, conn);
entry.save(conn);
Transaction.commit(conn);
success = true;
} finally {
if (!success) Transaction.safeRollback(conn);