public void CloseCurrentErfassungsperiod(ErfassungsabschlussModel erfassungsabschlussModel) { Guid closedPeriodId; try { var closedPeriod = CloseCurrentPeriod(erfassungsabschlussModel); closedPeriodId = closedPeriod.Id; var currentPeriod = CreateNewPeriod(closedPeriod); erfassungsPeriodService.InvalidateCurrentErfassungsPeriodCache(); CreateNewErfassungsPeriodData(closedPeriod, currentPeriod); ereignisLogService.LogEreignis(EreignisTyp.Jahresabschluss, new Dictionary <string, object> { { "abgeschlossene jahr", closedPeriod.Erfassungsjahr.Year } }); transactionScopeProvider.CurrentTransactionScope.Commit(); } catch (Exception e) { Loggers.ApplicationLogger.Warn(String.Format("Error during CloseCurrentErfassungsperiod: {0}", e.ToString())); transactionScopeProvider.CurrentTransactionScope.Rollback(); throw; } finally { transactionScopeProvider.ResetCurrentTransactionScope(); } //Run the DeleteNotUsedData in its own transaction to avoid deadlocks in the database DeleteNotUsedData(closedPeriodId); }
private ErfassungsPeriod CloseCurrentPeriod(ErfassungsabschlussModel erfassungsabschlussModel) { var currentPeriod = erfassungsPeriodService.GetCurrentErfassungsPeriod(); currentPeriod.Erfassungsjahr = erfassungsabschlussModel.AbschlussDate; currentPeriod.Name = erfassungsabschlussModel.AbschlussDate.Year.ToString(); return(currentPeriod); }
private void DoJahresabschluss() { var erfassungsabschlussModel = new ErfassungsabschlussModel { AbschlussDate = new DateTime(2010, 1, 1) }; BrowserDriver.InvokePostAction <ErfassungsPeriodAbschlussController, ErfassungsabschlussModel>( (c, r) => c.ErfassungsPeriodAbschluss(r), erfassungsabschlussModel, false); }
public ActionResult ErfassungsPeriodAbschluss(ErfassungsabschlussModel erfassungsabschlussModel) { ErfassungsabschlussModel model = null; if (ModelState.IsValid) { jahresabschlussService.CloseCurrentErfassungsperiod(erfassungsabschlussModel); } else { model = erfassungsabschlussModel; } CreateErfassungsabschlussModel(); return(PartialView("ErfassungsPeriodAbschluss", model)); }