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);
        }
示例#3
0
        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));
        }