Exemplo n.º 1
0
        public void HoursDuration_EmptyWorkWeekSchouldReturn0()
        {
            WorkMonth wm = new WorkMonth(2011, 1, null, new WorkDayParserSettings(), 1);
            WorkWeek  ww = new WorkWeek(wm, 1);

            Assert.AreEqual(0, ww.HoursDuration);
        }
        private void CreateMissingWorkMonths(List <WorkDay> workDays, List <WorkMonth> existingMonths, AppUser user)
        {
            foreach (WorkDay day in workDays)
            {
                WorkMonth matchingMonth = existingMonths.FirstOrDefault(x => x.Month == day.Date.Month && x.Year == day.Date.Year);

                if (matchingMonth == null)
                {
                    WorkMonth month = new()
                    {
                        ContractId = day.ContractId,
                        Year       = day.Date.Year,
                        Month      = day.Date.Month,
                    };

                    _context.WorkMonths.Add(month);
                    existingMonths.Add(month);

                    day.WorkMonth = month;
                }
                else
                {
                    day.WorkMonth = matchingMonth;
                }
            }
        }
Exemplo n.º 3
0
        public async Task <WorkMonth> AddWorkMonth(WorkMonth workMonth)
        {
            using (var context = new TimeKeeperDbContext(_options))
            {
                var result = context.Add(workMonth);
                await context.SaveChangesAsync();

                return(result.Entity);
            }
        }
Exemplo n.º 4
0
        private void ListerPaiements()
        {
            //--

            var result = from a in dataSet1.AGENTS
                         join p in dataSet2.PAIEMENTS
                         on a.AGENT_ID equals p.AGENT_ID
                         where (p.DATE_PAIEMENT.ToString("MMM yyyy").Equals(WorkMonth.ToString("MMM yyyy")))
                         group p by new { t1 = a.AGENT_ID, t2 = a.NOM, t3 = a.PRENOM } into g
                select new Pmts {
                Num_agent = g.Key.t1, Nom = g.Key.t2, Prenom = g.Key.t3, Montant = g.Sum(p => p.MONTANT_PAIEMENT), NumCheque = "En attente"
            };


            dgvPaiements.DataSource = result.ToList();
        }
Exemplo n.º 5
0
        public void HoursDuration_OnAMonth_ShouldSumCorrect()
        {
            WorkMonth wm = new WorkMonth(2011, 1, null, new WorkDayParserSettings(), 1);
            WorkDay   wd = wm.Days.First();

            wd.AddWorkItem(new WorkItem(new TimeItem(10), new TimeItem(11)));
            Assert.AreEqual(1, wd.HoursDuration);
            wd.AddWorkItem(new WorkItem(new TimeItem(11), new TimeItem(12)));
            Assert.AreEqual(2, wd.HoursDuration);
            wd.AddWorkItem(new WorkItem(new TimeItem(12), new TimeItem(12, 15)));
            Assert.AreEqual(2.25, wd.HoursDuration);
            wd.AddWorkItem(new WorkItem(new TimeItem(12, 15), new TimeItem(13)));
            Assert.AreEqual(3, wd.HoursDuration);

            Assert.AreEqual(3, wm.HoursDuration);
        }
Exemplo n.º 6
0
        public async Task <ActionResult <List <Dto.UserForGetHR> > > GetConsultants()
        {
            if (User.FindFirst(ClaimTypes.Role).Value == Config.GetSection("Role:Consultant:name").Value)
            {
                return(Unauthorized());
            }

            /*
             * var users = Task.Run(()=> Repo.GetAllConsultant());
             * var workMonths = Task.Run(() => Repo.GetAllWorkMonths());
             * await Task.WhenAll(users, workMonths);
             */
            var users = await Repo.GetAllConsultant();

            var workMonths = await Repo.GetAllWorkMonths();

            List <Dto.UserForGetHR> userDto = new List <Dto.UserForGetHR>();

            if (users == null)
            {
                return(BadRequest());
            }
            foreach (Models.User user in users)
            {
                Dto.UserForGetHR userForGetHR = new UserForGetHR {
                    Id = user.Id, Email = user.Email, Name = user.Name, ChangeHistory = user.ChangeHistory
                };
                //Mapper.Map<Dto.UserForGetHR>(user);
                try
                {
                    Models.WorkMonth workMonthModel = workMonths.Where(x => x.UserId == user.Id).SingleOrDefault();
                    Dto.WorkMonth    workMonth      = new WorkMonth {
                        Id = workMonthModel.Id, Month = workMonthModel.Month, Accepted = workMonthModel.Accepted, UserId = workMonthModel.UserId
                    };
                    //Mapper.Map<Dto.WorkMonth>(workMonths.Result.Where(x => x.UserId == user.Id));
                    workMonth.Salary       = Repo.GetSalary(user);
                    workMonth.TotalHours   = Repo.GetTotalTime(user);
                    userForGetHR.WorkMonth = workMonth;
                }
                catch (Exception e)
                {
                    return(BadRequest());
                }
                userDto.Add(userForGetHR);
            }
            return(Ok(userDto));
        }
Exemplo n.º 7
0
        public async Task <WorkMonth> GetLastActiveWorkMonthAsync(string userId, int organisationId)
        {
            List <WorkMonth> workMonths;

            using (var _context = new TimeKeeperDbContext(_options))
            {
                workMonths = await _context.WorkMonths.Where(x => x.Organisation.Id == organisationId && x.UserId == userId && x.IsApproved == false).Include(x => x.Organisation).Include(x => x.Deviations).ThenInclude(x => x.DeviationType).ToListAsync();
            }

            if (workMonths.Count < 1)
            {
                return(null);
            }

            WorkMonth result = workMonths.OrderBy(x => x.Id).Last();

            return(result);
        }
Exemplo n.º 8
0
        private void AdminView_Load(object sender, EventArgs e)
        {
            this.dataSet1.EnforceConstraints = false;
            this.dataSet2.EnforceConstraints = false;

            //  this.aGENTSTableAdapter1.Fill(this.dataSet2.AGENTS);

            this.pAIEMENTSTableAdapter.Fill(this.dataSet2.PAIEMENTS);
            this.aGENTSTableAdapter.Fill(this.dataSet1.AGENTS);
            this.tYPE_POLICESTableAdapter.Fill(this.dataSet1.TYPE_POLICES);

            // initialisation du paneau paiements
            InitialiserAffichage();
            ListerPaiements();

            // fermeture du splash
            Program.SplashRef.Visible = false;
            lblMois.Text = WorkMonth.ToString("MMM yyyy");
        }
Exemplo n.º 9
0
        private void btnConfirmer_Click(object sender, EventArgs e)
        {
            // récupération des numéro de cheque à partir du DataGridView
            List <object> listePaiements = new List <object>();

            foreach (DataGridViewRow item in dgvPaiements.Rows)
            {
                listePaiements.Add(new {
                    Num_agent = item.Cells["Num_agent"].Value,
                    NumCheque = item.Cells["NumCheque"].Value
                });
            }

            // enregistrement des numéro de cheque dans la table paiements
            decimal numAgent;
            string  numCheque;

            foreach (DataGridViewRow item in dgvPaiements.Rows)
            {
                numAgent  = (decimal)item.Cells["Num_agent"].Value;
                numCheque = (string)item.Cells["NumCheque"].Value;

                foreach (DataSet2.PAIEMENTSRow row in dataSet2.PAIEMENTS.Rows)
                {
                    if ((row.DATE_PAIEMENT.ToString("MMM yyyy").Equals(WorkMonth.ToString("MMM yyyy"))) &&
                        (row.AGENT_ID == numAgent))
                    {
                        row.NUM_CHEQUE = numCheque;
                    }
                }
            }

            dgvPaiements.DataSource = dataSet2.PAIEMENTS;

            // persister les changements
            this.pAIEMENTSTableAdapter.Update(dataSet2.PAIEMENTS);

            MessageBox.Show("Changements enregistrés");
        }
Exemplo n.º 10
0
        public void ShortCutStatistic_OnAMonth_ShouldSumCorrect()
        {
            var abbr = new List <ShortCut>();

            abbr.Add(new ShortCut("ctb", "11111-111"));
            WorkDayParserSettings workDayParserSettings = new WorkDayParserSettings {
                ShortCuts = abbr, InsertDayBreak = false
            };
            WorkDayParser wdp = new WorkDayParser(workDayParserSettings);

            WorkDayParser.Instance = wdp;
            WorkMonth wm = new WorkMonth(2011, 1, null, workDayParserSettings, 1);
            WorkDay   wd = wm.Days.First();

            wd.OriginalString = "8,8;ctb";

            wm.CalcShortCutStatistic();
            var scs = wm.ShortCutStatistic.FirstOrDefault(s => s.Key == "ctb");

            Assert.NotNull(scs);
            Assert.AreEqual(8, scs.UsedInMonth);
        }