// 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); } }
public IEnumerable<EcheanceContrat> NextActiveImputations() { ServiceDate scvDate = new ServiceDate(); DateTime date = scvDate.GetDerniereDateMoisPrecedent(); var service = new EcheanceService(uow, ProfileUser.GroupeId); return service.NextActiveImputations(date); }