예제 #1
0
        // GET: PDCAs
        public ActionResult Index()
        {
            List <PDCA>     temp = ServicePDCA.GetPDCAByPilote(User.Identity.Name);
            ApplicationUser user = ServiceUser.getUserWD(User.Identity.Name);
            Zone            zone = ServiceZone.GetZoneBypliote(user.pilote);
            //checking if pilote already asked for a certifcation
            Semaine      semaine            = ServiceSemaine.getLastSemaineWD();
            bool         certificationasked = false;
            List <Audit> auditscertif       = semaine.audits.Where(a => a.TypeAudit.Equals("Certification")).ToList <Audit>();

            foreach (var item in auditscertif)
            {
                if (item.zone.PiloteZoneObli.PiloteId == user.pilote.PiloteId)
                {
                    certificationasked = true;
                }
                if (item.zone.PiloteZoneOpti != null)
                {
                    if (item.zone.PiloteZoneOpti.PiloteId == user.pilote.PiloteId)
                    {
                        certificationasked = true;
                    }
                }
            }
            PilotepdcaViewModel PPVM = new PilotepdcaViewModel {
                pdcas = temp, zone = zone, pilote = user.pilote, certificationasked = certificationasked
            };

            return(View(PPVM));
        }
예제 #2
0
        // GET: Delegation
        public ActionResult demanderdelegation([Bind] DelagationViewModel vm)
        {
            Delegation delegation = new Delegation();

            delegation.Delegate       = ServiceAuditeur.GetAuditeur(vm.audit);
            delegation.Concernedaudit = ServiceAudit.getAuditdetached(vm.AuditId);
            delegation.Delegator      = ServiceAuditeur.GetAuditeur(ServiceUser.getAuditeurUser(User.Identity.Name));
            delegation.semaine        = ServiceSemaine.getCurrentSemaine();
            ServiceDelegation.addDelegation(delegation);
            return(RedirectToAction("Index", "Auditeur"));
        }
예제 #3
0
        static public void RemindLateAudit()
        {
            //Getting this week ready this is abdallah
            //Semaine semaineactuelle = ServiceSemaine.addSemaine(semaineactuelle); ;
            List <Audit> nonaudits = ServiceSemaine.getCurrentSemaineWD().audits.Where(a => !a.isCompleted && a.AuditDay < DateTime.Now).ToList();

            foreach (var item in nonaudits)
            {
                ApplicationUser auditeuruser = ServiceUser.getUserAuditeur(item.auditeur.AuditeurId);
                ApplicationUser piloteuser   = ServiceUser.getUserPilote(item.zone.PiloteZoneObli.PiloteId);
                ServiceEmail.sendEmail(auditeuruser.Email, "Rappel d'audit", item.AuditDay + " a passé, s'il vous plaît effectuer l'audit de la zone " + item.zone.NomZone);
                ServiceEmail.sendEmail(piloteuser.Email, "Rappel d'audit", item.AuditDay + " a passé, s'il vous plaît effectuer l'audit de la zone " + item.zone.NomZone);
                ApplicationUser optpiloteuser = ServiceUser.getUserPilote(item.zone.PiloteZoneOpti.PiloteId);
                if (optpiloteuser != null)
                {
                    ServiceEmail.sendEmail(optpiloteuser.Email, "Rappel d'audit", item.AuditDay + " a passé, s'il vous plaît effectuer l'audit de la zone " + item.zone.NomZone);
                }
            }
        }
예제 #4
0
        static List <Audit> getzonesnonauditées()
        {
            List <Audit> audits = ServiceSemaine.getCurrentSemaineWD().audits.Where(a => !a.isCompleted).ToList();

            return(audits);
        }
예제 #5
0
        public void Assign()
        {
            Semaine semaineactuelle = ServiceSemaine.getLastSemaine();

            if (!semaineactuelle.isCurrent)
            {
                semaineactuelle.isCurrent = true;
                ServiceSemaine.updateSemaine(semaineactuelle);
            }
            else
            {
                //Getting this week ready this is abdallah
                semaineactuelle           = new Semaine();
                semaineactuelle.isCurrent = true;
                semaineactuelle.Datedebut = DateTime.Now;
                semaineactuelle.Datefin   = semaineactuelle.Datedebut.AddDays(6);
                ServiceSemaine.addSemaine(semaineactuelle);
            }

            List <Semaine> Allsemaines = ServiceSemaine.getAllsem();

            Allsemaines = Allsemaines.Where(s => s.SemaineId != semaineactuelle.SemaineId).ToList();
            foreach (var item in Allsemaines)
            {
                item.isCurrent = false;
                ServiceSemaine.updateSemaine(item);
            }
            //I'm going to get the number of "zones" and "auditeurs"
            //and make sure that I don't choose the same person twice
            //if there is an other zone to audit and there are auditeurs
            //that were not yet assigned to any zone
            //GG dude


            //modified by abdallah
            //PS!!!: if i forget to mention it directly always go through the services
            //see the Services folders and u will instantly get it
            //and encapsulate the repository inside a Using
            //so that the repository gets disposed of
            //thats very critical dude to get rid of the DbContext object
            //thats a nasty object man its messes every thing when it gets tangled with its own kind dude
            //They are Jhon Snows they are LONE WOLVES :p

            List <Zone> zones    = ServiceZone.GetAllZones();
            int         numZones = zones.Count;

            //same here

            List <Auditeur> auditeurs    = ServiceAuditeur.GetAllAuditeurs();
            int             numAuditeurs = auditeurs.Count;

            List <int> auditeursPris = new List <int>(numAuditeurs);

            for (int i = 0; i < numAuditeurs; i++)
            {
                auditeursPris.Add(0);
            }

            Random rand = new Random();
            int    r;
            int    numAssignments = 0;


            for (int i = 0; i < numZones; i++)
            {
                if (numAssignments == numAuditeurs)
                {
                    auditeursPris.Clear();
                    for (int j = 0; j < numAuditeurs; j++)
                    {
                        auditeursPris.Add(0);
                    }
                    numAssignments = 0;
                }
                r = rand.Next(0, numAuditeurs);
                while (auditeursPris[r] != 0 && numAssignments < numAuditeurs)
                {
                    r = rand.Next(0, numAuditeurs);
                }
                numAssignments++;
                auditeursPris[r] = 1;

                //Adding Audits. this is abdallah
                Audit audittemp = new Audit();
                audittemp.TypeAudit    = "Regulier";
                audittemp.semaine      = semaineactuelle;
                audittemp.auditeur     = auditeurs[r];
                audittemp.zone         = zones[i];
                audittemp.AuditDay     = semaineactuelle.Datedebut.AddDays(rand.Next(2, 6));
                audittemp.isInProgress = false;
                audittemp.isCompleted  = false;
                ServiceAudit.addAudit(audittemp);

                Console.WriteLine("l'auditeur " + auditeurs[r].Nom + " est affecté à la zone" + zones[i].NomZone);

                //Sending mail to Auditeur
                //ServiceEmail.sendEmail(auditeurs[r].Mail, "Information sur un prochain Audit", " La zone " + zones[i].NomZone + " sera auditée le jour J par l’auditeur " + auditeurs[r].Nom + " " + auditeurs[r].Prenom + ", merci de vous fixer l’heure de l’audit ");

                //sending mail To Audité aka pilote zone its not provided
                //ServiceEmail.sendEmail("no access to company emails", "Information sur un Audit cette semaine", " La zone " + zones[i].NomZone + " sera auditée le jour J par l’auditeur " + auditeurs[r].Nom + " " + auditeurs[r].Prenom + ", merci de vous fixer l’heure de l’audit ");
            }
        }