Exemple #1
0
        public ActionResult Annulation()
        {
            int          uid    = int.Parse(Session["uid"].ToString());
            demandeconge e      = db.demandeconge.Find(uid);
            string       button = Request["button"];

            DateTime dateDebut = e.DateDebut.Value;
            DateTime dateFin   = e.DateFin.Value;


            /*   var dure = (dateFin - dateDebut).Days;
             *
             *
             * double du = Convert.ToDouble(dure) + 1;
             * double d = du * 24;
             * double nb = Convert.ToDouble(e.employe.nbHeureR);
             *
             * double res = nb + d;
             */

            var recup = db.CumulRecup.Include(d => d.employe).Where(p => p.employe.idEmploye == e.IdEmploye).Select(u => new {
                hs = u.CumulHr,
                jf = u.CumulJrF,
                jr = u.CumulJrR,
                id = u.IDCumulRecup
            }).Single();

            CumulRecup cr = db.CumulRecup.Find(recup.id);

            double hsA = Convert.ToDouble(cr.CumulHr);

            //en heure
            double jf = Convert.ToDouble(recup.jf);


            double jR = Convert.ToDouble(recup.jr);



            var    dureM = (dateFin - dateDebut).TotalHours + 1;
            var    dureD = (dateFin - dateDebut).Days + 1;
            double duM   = Convert.ToDouble(dureM);
            double nbM   = Convert.ToDouble(e.employe.nbHeureR);
            double resM  = nbM + duM;



            switch (button)
            {
            case "Retour":

                return(RedirectToAction("Index"));

            case "annule":
                if (e.IdtypeConge == 23)
                {
                    double dhs = hsA + dureM;
                    cr.CumulHr = Convert.ToString(dhs);
                }
                else
                if (e.IdtypeConge == 25)
                {
                    double dhs = jf + dureD;
                    string dh  = Convert.ToString(dhs);
                    cr.CumulJrF = float.Parse(dh);
                }
                else
                if (e.IdtypeConge == 24)
                {
                    double dhs = jR + dureD;
                    string dh  = Convert.ToString(dhs);
                    cr.CumulJrR = float.Parse(dh);
                }
                else
                {
                    e.employe.nbHeureR = resM.ToString();
                }



                e.ValdationRH     = "En cours";
                e.ValidationN1    = "En cours";
                e.ValidationN2    = "En cours";
                e.annulation      = "oui";
                db.Entry(e).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));

            default:
                return(View());
            }
        }
        public ActionResult Validation()
        {
            int          uid    = int.Parse(Session["uid"].ToString());
            demandeconge e      = db.demandeconge.Find(uid);
            string       button = Request["button"];
            DCTEMP       dc     = new DCTEMP();

            DateTime dateDebut = e.DateDebut.Value;
            DateTime dateFin   = e.DateFin.Value;

            /*var dure = (dateFin - dateDebut).Days;
             * var dureM = (dateFin - dateDebut).TotalMinutes;
             *
             * double du = Convert.ToDouble(dure) + 1;
             * double duM = Convert.ToDouble(dureM) + 1440;
             * double nb = Convert.ToDouble(e.employe.nbHeureR);
             * double nbM = Convert.ToDouble(e.employe.nbHeureR) * 24 * 60;
             * double res = nb - du;
             * double resM = nbM - duM;
             * double resJ = resM / 1440;
             */

            var recup = db.CumulRecup.Include(d => d.employe).Where(p => p.employe.idEmploye == e.IdEmploye).Select(u => new {
                hs = u.CumulHr,
                jf = u.CumulJrF,
                jr = u.CumulJrR,
                id = u.IDCumulRecup
            }).Single();

            CumulRecup cr = db.CumulRecup.Find(recup.id);

            double hsA = Convert.ToDouble(cr.CumulHr);

            //en heure
            double jf = Convert.ToDouble(recup.jf);


            double jR = Convert.ToDouble(recup.jr);



            var    dureM = (dateFin - dateDebut).TotalHours + 1;
            var    dureD = (dateFin - dateDebut).Days + 1;
            double duM   = Convert.ToDouble(dureM);
            double nbM   = Convert.ToDouble(e.employe.nbHeureR);
            double resM  = nbM - duM;



            switch (button)
            {
            case "Accepté":
                if (e.IdtypeConge == 23)
                {
                    double dhs = hsA - dureM;
                    cr.CumulHr = Convert.ToString(dhs);
                }
                else
                if (e.IdtypeConge == 25)
                {
                    double dhs = jf - dureD;
                    string dh  = Convert.ToString(dhs);
                    cr.CumulJrF = float.Parse(dh);
                }
                else
                if (e.IdtypeConge == 24)
                {
                    double dhs = jR - dureD;
                    string dh  = Convert.ToString(dhs);
                    cr.CumulJrR = float.Parse(dh);
                }
                else
                {
                    e.employe.nbHeureR = resM.ToString();
                }
                e.ValdationRH = "accepte";
                if (e.ValidationN1.Equals("En cours"))
                {
                    e.ValidationN1 = "*******";
                }

                e.DateValidationRH = DateTime.Now;

                //DCTEMP
                dc.matricule   = e.employe.matricule;
                dc.DateDebut   = e.DateDebut;
                dc.DateFin     = e.DateFin;
                dc.typeDeConge = e.typeconge.designation;
                dc.Status      = "En att";


                db.Entry(e).State = EntityState.Modified;

                db.DCTEMP.Add(dc);
                db.SaveChanges();
                return(RedirectToAction("historique"));

            case "Refusé":
                e.ValdationRH     = "refuse";
                db.Entry(e).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("historique"));

            case "Annulé":

                return(RedirectToAction("historique"));

            default:
                return(View());
            }
        }