예제 #1
0
        // Exécution du processus de provisionnement à date voulue
        private Boolean ExecuterProcessus(DateTime date)
        {
            // Init
            Boolean exec = false;

            // Tentative provision
            var service = new ProvisionServices(uow, groupeId);
            var traceur = new ProvisionTraceur(groupeId);

            if (service.VerifierPrerequis())
            {
                // Exécuter provision
                var _fabrique = new ProvisionFabrique(uow, groupeId);
                var provision = _fabrique.creerProvision(date);

                // Ajout repo
                uow.Provision.Add(provision);

                // Trace execution
                int nbMouvs = 0;
                var mvts = new List<MouvementBudget>().AsQueryable<MouvementBudget>();
                if (provision.Mouvements != null)
                {
                    mvts = provision.Mouvements.AsQueryable<MouvementBudget>();
                    nbMouvs = provision.Mouvements.Count;
                }
                var rapportS = traceur.SaveForRapportSuccess(provision.DateSaisie, mvts);
                TraceLog trace = traceur.Success(date, nbMouvs, rapportS);

                // Ajout repo
                uow.TraceLog.Add(trace);

                // Succès
                exec = true;

            }
            else
            {
                //// Récupération du libellé de la provision
                //ServiceDate svc = new ServiceDate();
                //string lib = "Provision du mois "
                //    + svc.LibelleMoisInFrench(date.Month)
                //    + " "
                //    + date.Year;

                // Trace execution
                var rapport = traceur.SaveForRapportEchec(date);
                TraceLog trace = traceur.Echec(date, 0, rapport);

                // Ajout repo
                uow.TraceLog.Add(trace);

            };

            // Retour
            return exec;
        }
        // TracerProvisionsGroupe2
        private void TracerProvisionsGroupe()
        {
            IQueryable<Provision> ps = context.Provision
                //.Where(o => o.Active == true) // non annulée
                //.Where(o => o.GroupeId == 2) // Groupe2
                .OrderBy(o => o.DateMAJ)
                ;

            foreach (var prov in ps)
            {
                var mouvs = context.MouvementBudget
                    .Where(m => m.ProvisionId == prov.Id)
                    .Where(m => m.Budget.Libelle != null)
                    ;

                // Création de la trace à partir de la provision
                DateTime dateCreation = new DateTime(prov.DateSaisie.Year, prov.DateSaisie.Month, 02);
                var traceur = new ProvisionTraceur(prov.GroupeId);
                var rapport1 = traceur.SaveForRapportSuccess(prov.DateSaisie, mouvs);
                int nb = mouvs.Count();
                var trace = traceur.Success(dateCreation, nb, rapport1);

                // Ajout au context
                context.TraceLog.Add(trace);

            }
        }