// Exécution batch prolongation budgets
        public void Executer()
        {
            // Date exécution: égale à la fin du mois qui précède la date du jour
            var scvDate = new ServiceDate();
            var current = scvDate.GetDerniereDateMoisPrecedent();

            // Récupération des budgets A terme
            var service = new EcheanceService(uow, groupeId);
            var echeances = service.ImputationsEchues(current);

            // Pour chaque budget dans la liste, exécuter le processus
            // puis tracer
            foreach (var echeance in echeances)
            {
                // Exécuter process
                echeance.Annuler();
            }

            // Report des résidus sur imputations suivantes
            var nextImputations = service.NextActiveImputations(current);
            foreach (var ech in echeances) {
                foreach (var imp in nextImputations)
                {
                    if (ech.ContratId == imp.ContratId)
                    {
                        ech.Montant += imp.Montant;
                    };
                }
            }

            // Tracer le processus
            if (echeances.Count() > 0)
            {
                var traceur = new AnnulationImputationTraceur(groupeId);
                string rapport = traceur.SaveForRapportSuccess(current, echeances);
                int nb = echeances.Count();
                TraceLog trace = traceur.Success(current, nb, rapport);

                // Ajout repo
                uow.TraceLog.Add(trace);
            }
        }
Esempio n. 2
0
        public IEnumerable<EcheanceContrat> NextActiveImputations()
        {
            ServiceDate scvDate = new ServiceDate();
            DateTime date = scvDate.GetDerniereDateMoisPrecedent();

            var service = new EcheanceService(uow, ProfileUser.GroupeId);
            return service.NextActiveImputations(date);
        }