/*
* MoneyOperationObjectSourceListener.java
*/
package budget.listeners;
import budget.domain.MoneyOperation;
import budget.domain.OperationType;
import org.weda.common.ChangeType;
import org.weda.store.ObjectSourceListener;
import org.weda.store.RowsChangeEvent;
/**Делает отрицательной сумму дебетовой операции
* и положительной сумму кредитовой операции.
*
* @author Mikhail
*/
public class MoneyOperationObjectSourceListener implements ObjectSourceListener {
public void rowsChanging(RowsChangeEvent event) {
if ( event.getChangeType() == ChangeType.ADD
|| event.getChangeType() == ChangeType.UPDATE)
{
for (Object[] objects: event.getRows()) {
MoneyOperation money = (MoneyOperation)objects[0];
OperationType opType = money.getOperationItem().getOperationType();
if (opType!=null && money.getAmount()!=null){
if ( ( opType == OperationType.Кредитовая
&& money.getAmount()<0
)
|| ( opType == OperationType.Дебетовая
&& money.getAmount()>0)
)
{
money.setAmount(-1*money.getAmount());
}
}
}
}
}
public void rowsChanged(RowsChangeEvent event) {
}
}