Пример #1
0
 protected override void Initialize(System.Web.Routing.RequestContext requestContext)
 {
     this.cnx = new HeliantisEntities();
     this.rulesManager = new RulesManager();
     this.rulesManager.setNewContext(requestContext.HttpContext);
     base.Initialize(requestContext);
 }
Пример #2
0
        public Boolean isUnique()
        {
            HeliantisEntities cnx=new HeliantisEntities();

              var nb = cnx.utilisateur.Where(u => u.identifiant ==this.utilisateur.identifiant && u.id_utilisateur!=this.utilisateur.id_utilisateur && u.employe.FirstOrDefault().z_actif==true).Count();
              if (nb == 0) return true;
              else return false;
        }
Пример #3
0
        /// <summary>
        /// L'utilisateur peut-il exécuter le droit ruleName
        /// </summary>
        /// <param name="ruleName"></param>
        /// <returns></returns>
        public bool isAuthorized(string ruleName)
        {
            HeliantisEntities cnx = new HeliantisEntities();
            {
                List<StockRules> mRole = this.CurrentContext.Session["user_role"] as List<StockRules>;
                if (mRole != null)
                {
                    StockRules mRule = mRole.Where(d => d.rulename == ruleName).FirstOrDefault();

                    if (mRule != null)
                        return true;
                    else
                        return false;
                }
            }

            return false;
        }
Пример #4
0
        /// <summary>
        /// retourne pour une liste d'employé, un mois et une année donnée, la liste de tous les temps de travail 
        /// organisé en objets LigneReportTempsEmp
        /// </summary>
        public static List<LigneReportTempsEmp> calculTemps(int year, int month, List<employe> emps)
        {
            HeliantisEntities cnx = new HeliantisEntities();
            List<LigneReportTempsEmp> retourListe = new List<LigneReportTempsEmp>();
            List<LigneHeure> listeHeures = (from tps in cnx.temps
                                            where (tps.date_debut.Month == month && tps.date_debut.Year == year && tps.id_type_temps != 1 && tps.employe.z_actif == true)
                                            select new LigneHeure
                                            {
                                                date_debut = tps.date_debut,
                                                date_fin = tps.date_fin,
                                                nom_projet = tps.projet.nom,
                                                nom_client = tps.projet.client.nom,
                                                commentaires = tps.commentaires,
                                                type_tps = tps.id_type_temps,
                                                nom_type_tps = tps.type_temps.nom,
                                                repas_ext = tps.repas_ext,
                                                employe_nom = tps.employe.nom,
                                                employe_prenom = tps.employe.prenom,
                                                employe_id = tps.employe.id_employe
                                            }).ToList();

            foreach (var emp in emps)
            {
                DateTime date = new DateTime(year, month, 1);
                while (date.Month == month)
                {
                    if ((date.DayOfWeek == DayOfWeek.Saturday) || (date.DayOfWeek == DayOfWeek.Sunday))
                    {
                        date = date.AddDays(1);
                        continue;
                    }
                    LigneReportTempsEmp ligne = new LigneReportTempsEmp(date);
                    retourListe.Add(ligne);
                    ligne.UpadeEmploye(emp);
                    var listeHeure = listeHeures.Where(l => l.date_debut.ToShortDateString() == date.ToShortDateString() && l.employe_id == emp.id_employe).ToList();
                    foreach (var lstHeure in listeHeure)
                    {
                        ligne.UpgradeObjet(lstHeure);
                    }
                    date = date.AddDays(1);
                }
            }
            return retourListe;
        }
Пример #5
0
        /// <summary>
        /// Crée une connexion à l'application, si les droits et le login/password sont ok
        /// </summary>
        public void setConnexion(string identifiant, string mot_passe)
        {
            using (HeliantisEntities cnx = new HeliantisEntities())
            {
                utilisateur user = cnx.utilisateur.Where(d => d.identifiant == identifiant && d.mot_passe == mot_passe && d.employe.FirstOrDefault().z_actif == true).FirstOrDefault();
                if (user != null)
                {
                    // l'utilisateur existe et sa connexion est ok.
                    // a t il le droit d'accéder à l'application.
                    employe emp = user.employe.FirstOrDefault();
                    if ((emp != null))
                    {
                        this.CurrentContext.Session["user"] = emp;

                        rule mRule = cnx.rule.Where(d => d.rulename == "access").FirstOrDefault();
                        if (mRule != null)
                        {
                            rule_role mRuleRole = emp.role.rule_role.Where(c => c.id_rule == mRule.id_rule).FirstOrDefault();
                            if (mRuleRole != null)
                            {
                                List<StockRules> RuleRole = (from e1 in cnx.role
                                                             join e2 in cnx.rule_role on e1.id_role equals e2.id_role
                                                             where e1.id_role == emp.id_role
                                                             select new StockRules
                                                             {
                                                                 id_role = e1.id_role,
                                                                 id_rule = (int)e2.id_rule,
                                                                 rulename = e2.rule.rulename
                                                             }).ToList();

                                this.CurrentContext.Session["user_role"] = RuleRole;
                            }
                        }
                    }
                }
            }
        }
Пример #6
0
 /// <summary>
 /// retourne la liste des frais d'un employé entre 2 dates données
 /// </summary>
 public static List<FraisDetail> calculFrais(DateTime dateDeb, DateTime dateFin, int idEmp)
 {
     HeliantisEntities cnx = new HeliantisEntities();
     List<FraisDetail> fraisListe = (from expense in cnx.frais
                                     where (expense.temps.FirstOrDefault().id_employe == idEmp && expense.temps.FirstOrDefault().date_debut >= dateDeb && expense.temps.FirstOrDefault().date_debut <= dateFin)
                                     orderby (expense.temps.FirstOrDefault().date_debut)
                                     select new FraisDetail
                                     {
                                         datefrais = expense.temps.FirstOrDefault().date_debut,
                                         divers = expense.divers,
                                         libelle = expense.commentaires,
                                         km = expense.kilometres,
                                         parking = expense.peage,
                                         projet = expense.temps.FirstOrDefault().projet.nom + " " + expense.temps.FirstOrDefault().projet.client.nom,
                                         resto = expense.hotel_resto,
                                         id_employe = expense.temps.FirstOrDefault().id_employe,
                                         nom_employe = expense.temps.FirstOrDefault().employe.nom,
                                         prenom_employe = expense.temps.FirstOrDefault().employe.prenom,
                                         id_frais=expense.id_frais,
                                         type_temps=expense.temps.FirstOrDefault().type_temps.nom
                                     }).ToList();
     cnx.Dispose();
     return fraisListe;
 }
Пример #7
0
 /// <summary>
 /// retourne le nom d'un projet (utilisé par l'outil de reporting)
 /// </summary>
 public static List<NomProj> nomProjet(int idProjet)
 {
     HeliantisEntities cnx = new HeliantisEntities();
     var nomprojet = cnx.projet.Where(t => t.id_projet == idProjet).Select(t => new NomProj{ nom = t.reference + " " + t.nom + " / " + t.client.reference + " " + t.client.nom }).ToList();
     return nomprojet;
 }
Пример #8
0
 /// <summary>
 /// retourne le temps global passé pour un projet donné par tâche
 /// </summary>
 public static List<TempsProjetTache> calculTempsProjetTache(int idProjet , int? year, int? month)
 {
     HeliantisEntities cnx = new HeliantisEntities();
     var tempsprojet = cnx.temps.Where(t => t.id_projet == idProjet).Select(t => new CalcultempsTmp { nom = t.tache.nom_tache, id_tache = t.id_tache, dateDeb = t.date_debut, dateFin = t.date_fin, projet = t.projet.reference + " " + t.projet.nom + " / " + t.projet.client.reference + " " + t.projet.client.nom });
     if (year.HasValue) tempsprojet = tempsprojet.Where(t => t.dateDeb.Month == month && t.dateFin.Year == year);
     var totalprojet = tempsprojet.ToList().GroupBy(t => t.id_tache).Select(tg => new TempsProjetTache
     {
         nomTache = tg.FirstOrDefault().nom,
         nomProjet = tg.FirstOrDefault().projet,
         temps = tg.Sum(t => t.dateFin.Subtract(t.dateDeb).TotalHours)
     }).ToList();
     return totalprojet;
 }
Пример #9
0
 /// <summary>
 /// retourne le temps global passé par un employé sur un projet, pour un mois et une année donnée
 /// </summary>
 public static List<TempsProjetEmploye> calculTempsProjetEmployeGlobal(int idProjet, int? year, int? month)
 {
     HeliantisEntities cnx = new HeliantisEntities();
     var tempsprojet = cnx.temps.Where(t => t.id_projet == idProjet).
                      Select(t => new CalcultempsTmp { nom = t.employe.nom + " " + t.employe.prenom, id_employe = t.id_employe, dateDeb = t.date_debut, dateFin = t.date_fin, groupe = t.employe.groupe.nom });
     if (year.HasValue) tempsprojet = tempsprojet.Where(t => t.dateDeb.Month == month && t.dateFin.Year == year);
     var totalprojet = tempsprojet.ToList().GroupBy(t => t.id_employe).Select(tg => new TempsProjetEmploye {
         nomComplet = tg.FirstOrDefault().nom,
         nomService=tg.FirstOrDefault().groupe,
         temps = tg.Sum(t => t.dateFin.Subtract(t.dateDeb).TotalHours) }).ToList();
     return totalprojet;
 }
Пример #10
0
 /// <summary>
 /// retourne tous les temps passés par un employé sur un projet, sur un mois et une année donnée
 /// </summary>
 public static List<TempsProjetListe> calculTempsProjetEmploye(int? idEmp, int idProjet, int? year, int? month)
 {
     HeliantisEntities cnx=new HeliantisEntities();
                 var tempsprojetListe = from t in cnx.temps
                            where (t.id_projet == idProjet)
                            orderby (t.date_debut)
                            select new TempsProjetListe
                            {
                                nom_projet = t.projet.nom,
                                client = t.projet.client.nom,
                                datedeb = t.date_debut,
                                datefin = t.date_fin,
                                tache = t.tache.nom_tache,
                                type = t.type_temps.nom,
                                commentaires = t.commentaires,
                                id_employe = t.id_employe,
                                nom_employe = t.employe.nom,
                                prenom_employe = t.employe.prenom
                            };
     if (idEmp.HasValue) tempsprojetListe = tempsprojetListe.Where(t => t.id_employe == idEmp);
     if (year.HasValue) tempsprojetListe = tempsprojetListe.Where(t => t.datedeb.Month == month && t.datedeb.Year == year);
     return tempsprojetListe.ToList();
 }