protected void btnDelete_Click(object sender, EventArgs e)
        {
            ActivityWorkerBusinessLogic activityWorkerBusinessLogic = new ActivityWorkerBusinessLogic();
            ActivityWorker AativityWorker = activityWorkerBusinessLogic.GetByID(Convert.ToInt32(HfDeleteID.Value));


            Activity activity = AativityWorker.Activity;

            Worker worker = AativityWorker.Worker;

            ActivityBusinessLogic activityBusinessLogic = new ActivityBusinessLogic();

            activityBusinessLogic.DetachWoker(activity, worker);

            BindDdListWorkers();

            BindGridVeiwWorksByActivity();


            ScriptManager.RegisterClientScriptBlock(this,
                                                    this.GetType(),
                                                    "delHideModalScript",
                                                    Util.GetScriptToHideModalDialog("deleteModal"),
                                                    false);
        }
        public ActivityWorker AttachWoker(Activity activity, Worker worker, double hours, string comment)
        {
            ActivityWorkerBusinessLogic activityWorkerBusinessLogic = new ActivityWorkerBusinessLogic();
            ActivityWorker activityWorker = null;


            if (activity.GetWorkers().Contains(worker))
            {
                activityWorker = activity.GetActivityWorkerByWorker(worker);
                if (activityWorker.Hours != hours)
                {
                    activityWorker.Hours = hours;
                    activityWorkerBusinessLogic.Update(activityWorker);
                }

                return(activityWorker);
            }


            activityWorker = new ActivityWorker()
            {
                Activity = activity,
                Worker   = worker,
                Hours    = hours,
                Comment  = comment
            };

            activityWorkerBusinessLogic.Insert(activityWorker);

            activity.ActivityWorkers.Add(activityWorker);

            return(activityWorker);
        }
        public void DetachWoker(Activity activity, Worker worker)
        {
            if (!activity.GetWorkers().Contains(worker))
            {
                return;
            }


            ActivityWorker activityWorker = activity.GetActivityWorkerByWorker(worker);

            activity.ActivityWorkers.Remove(activityWorker);

            ActivityWorkerBusinessLogic activityWorkerBusinessLogic = new ActivityWorkerBusinessLogic();

            activityWorkerBusinessLogic.Delete(activityWorker);
        }
        private void EditRow(GridViewCommandEventArgs e)
        {
            int index = Convert.ToInt32(e.CommandArgument);

            int id = Convert.ToInt32(gridViewWorksByActivity.DataKeys[index].Value.ToString());

            GridViewRow gvrow = gridViewWorksByActivity.Rows[index];

            this.HfUpdateID.Value = id.ToString();



            Activity activity = CurrentActivity();


            ActivityWorker activityWorker = activity.ActivityWorkers.Where(a => a.ID == id).SingleOrDefault();

            this.txtEditDate.Text       = activity.Date.ToShortDateString();
            this.txtEditWorkername.Text = activityWorker.Worker.FullName;
            this.txtEditHours.Text      = activityWorker.Hours.ToString("N2").Replace(",", ".");
            this.txtEditComment.Text    = activityWorker.Comment;

            this.lblEditErrorMessage.Text = string.Empty;


            Worker worker = activityWorker.Worker;

            ActivityBusinessLogic activityBusinessLogic = new ActivityBusinessLogic();

            double hoursAvaiable = activityBusinessLogic.GetAvaiablesHoursByWorkerOnDate(worker, activity.Date);

            this.lblEditAvaiableHours.Text = hoursAvaiable.ToString("N2").Replace(",", ".");;



            ScriptManager.RegisterClientScriptBlock(this,
                                                    this.GetType(),
                                                    "EditModalScript",
                                                    Util.GetScriptToShowModalDialog("editModal"),
                                                    false);
        }
示例#5
0
        public IList <ReportObjectHoursByWorker> GetWorkedHours(DateTime date)
        {
            ActivityBusinessLogic activityBusinessLogic = new ActivityBusinessLogic();

            IList <Activity> listActivity = activityBusinessLogic.GetAll();

            listActivity = listActivity.Where(a => a.Date == date).ToList();

            List <Worker> listWorkers = new List <Worker>();

            foreach (var item in listActivity)
            {
                listWorkers.AddRange(item.GetWorkers().Distinct());
            }

            var listWorkersDistinct = listWorkers.Distinct();


            IList <ReportObjectHoursByWorker> list = new List <ReportObjectHoursByWorker>();

            foreach (Worker worker in listWorkersDistinct)
            {
                double hours = 0;
                foreach (Activity activity in listActivity)
                {
                    ActivityWorker activityWorker = activity.GetActivityWorkerByWorker(worker);
                    if (activityWorker != null)
                    {
                        hours += activityWorker.Hours;
                    }
                }

                list.Add(new ReportObjectHoursByWorker()
                {
                    Name  = worker.FullName,
                    Hours = hours
                });
            }

            return(list);
        }
        protected void btnUpdate_Click(object sender, EventArgs e)
        {
            System.Text.StringBuilder sb = null;

            double hoursWorked;

            if (!Double.TryParse(txtEditHours.Text.Replace('.', ','), out hoursWorked) || hoursWorked <= 0)
            {
                this.lblEditErrorMessage.Text = "Valor das horas não é válido!";
                return;
            }


            if (string.IsNullOrWhiteSpace(txtEditComment.Text))
            {
                this.lblEditErrorMessage.Text = "É necessário informar um comentário!";
                return;
            }


            int      id       = Convert.ToInt32(HfUpdateID.Value);
            Activity activity = CurrentActivity();

            ActivityWorker activityWorker = activity.ActivityWorkers.Where(a => a.ID == id).SingleOrDefault();

            ActivityBusinessLogic activityBusinessLogic = new ActivityBusinessLogic();

            double maxHoursByDay = ActivityBusinessLogic.MaxWorkHoursByDay();

            double temp = activityWorker.Hours;

            activityWorker.Hours = hoursWorked;

            double hoursAvaiable = activityBusinessLogic.GetAvaiablesHoursByWorkerOnDate(activityWorker.Worker, activity.Date);


            if (hoursAvaiable < 0 || hoursWorked > maxHoursByDay || (hoursWorked - hoursAvaiable) > maxHoursByDay)
            {
                activityWorker.Hours          = temp;
                this.lblEditErrorMessage.Text = "As horas trabalhas superam as horas dispónives!";
                return;
            }

            activityWorker.Hours   = hoursWorked;
            activityWorker.Comment = txtEditComment.Text;


            ActivityWorkerBusinessLogic activityWorkerBusinessLogic = new ActivityWorkerBusinessLogic();

            activityWorkerBusinessLogic.Update(activityWorker);

            BindGridVeiwWorksByActivity();



            ScriptManager.RegisterClientScriptBlock(this,
                                                    this.GetType(),
                                                    "EditHideModalScript",
                                                    Util.GetScriptToHideModalDialog("editModal"),
                                                    false);



            this.txtEditDate.Text       = string.Empty;
            this.txtEditWorkername.Text = string.Empty;
        }