umsaetze = (Umsatz[]) context;
if (umsaetze.length == 0)
throw new ApplicationException(i18n.tr("Bitte w�hlen Sie einen oder mehrere Ums�tze aus"));
UmsatzTyp ut = null;
try
{
int typ = UmsatzTyp.TYP_EGAL;
if (umsaetze.length == 1)
{
// Mal schauen, ob der Umsatz schon einen Typ hat
ut = umsaetze[0].getUmsatzTyp();
// Dialog anzeigen, bei dem nur die zum Betrag passenden Kategorien angezeigt werden
if (ut == null && umsaetze[0].getBetrag() != 0)
typ = (umsaetze[0].getBetrag() > 0 ? UmsatzTyp.TYP_EINNAHME : UmsatzTyp.TYP_AUSGABE);
}
UmsatzTypListDialog d = new UmsatzTypListDialog(UmsatzTypListDialog.POSITION_CENTER,ut,typ);
ut = (UmsatzTyp) d.open();
}
catch (OperationCanceledException oce)
{
Logger.info(oce.getMessage());
return;
}
catch (ApplicationException ae)
{
throw ae;
}
catch (Exception e)
{
Logger.error("error while choosing umsatztyp",e);
Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("Fehler beim Ausw�hlen der Umsatz-Kategorie"), StatusBarMessage.TYPE_ERROR));
}
try
{
umsaetze[0].transactionBegin();
for (int i=0;i<umsaetze.length;++i)
{
umsaetze[i].setUmsatzTyp(ut);
umsaetze[i].store();
Application.getMessagingFactory().sendMessage(new ObjectChangedMessage(umsaetze[i]));
}
umsaetze[0].transactionCommit();
if (ut == null)
Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("Zuordnung der Kategorie entfernt"), StatusBarMessage.TYPE_SUCCESS));
else
Application.getMessagingFactory().sendMessage(new StatusBarMessage(i18n.tr("Umsatz-Kategorie {0} zugeordnet", ut.getName()), StatusBarMessage.TYPE_SUCCESS));
}
catch (ApplicationException ae)
{
rollback(umsaetze[0]);
throw ae;