Example #1
0
        public void ReloadList(object sender, EventArgs e)
        {
            int yearInt     = int.Parse(YearsList[SelectedYearIndex]);
            var periodBegin = new DateTime(yearInt, SelectedMonthIndex + 1, 1);
            var periodEnd   = new DateTime(periodBegin.Year, periodBegin.Month, DateTime.DaysInMonth(yearInt, periodBegin.Month));

            var monthPlanTime = Context.timeTableWork.GetTimeForAMonth(periodBegin.Year, periodBegin.Month);

            var wrk = WorksVM.Dictionary.Select(p => p.Value.Work).Where(w => w.StartDate >= periodBegin && w.StartDate <= periodEnd &&
                                                                         w.UserID == GlobalInfo.CurrentUser.ID);


            WorksList = monthPlanTime.GroupJoin(wrk, p => p.Date, w => w.StartDate, (mpt, w) => new { tt = mpt, work = w })
                        .DefaultIfEmpty()
                        .Where(q => q.tt.PlanningTime > 0.0 || q.work.Sum(m => m.Minutes) > 0)
                        .Select(tmp => new LaborCostsDay
            {
                DateTm   = tmp.tt.Date,
                Time     = tmp.work.Sum(q => q.Minutes) / 60.0,
                PlanTime = tmp.tt.PlanningTime
            }).ToList();

            var userAbsences = Context.workWork.GetUserReasonAbsence();

            foreach (var day in WorksList)
            {
                var reason = userAbsences.FirstOrDefault(ua => ua.AbsenceDate == day.DateTm);
                day.Reason = reason != null ? reason.Reason.ReasonText : "";
            }

            SumTime     = WorksList.Sum(w => w.Time);
            SumTimePlan = WorksList.Sum(w => w.PlanTime);
            DiffTime    = SumTime - SumTimePlan;
        }
Example #2
0
        public OrderViewModel(OrderViewModel model)
        {
            WorksTree = new ObservableCollection <WorkTreeModel>();
            WorksTree.Add(new WorkTreeModel
            {
                Name = "Периодические",
                id   = -1
            });
            WorksTree.Add(new WorkTreeModel
            {
                Name = "Остальные",
                id   = -2
            });

            UpdateOrder(model);
            model.WorksList.ToList().ForEach(o => WorksList.Add(o));
            SelectedWorks.CollectionChanged    += SelectedWorks_CollectionChanged;
            _storage.LoadOtherWorkListComplete += Instance_LoadOtherWorkListComplete;
            _storage.LoadWorkListComplete      += Instance_LoadWorkListComplete;
            _storage.LoadWorkTypesComplete     += Instance_LoadWorkTypesComplete;

            _storage.LoadMarksComplete         += _storage_LoadMarksComplete;
            _storage.LoadModelsComplete        += _storage_LoadModelsComplete;
            _storage.LoadBodiesComplete        += _storage_LoadBodiesComplete;
            _storage.LoadEngineTypesComplete   += _storage_LoadEngineTypesComplete;
            _storage.LoadEnginsComplete        += _storage_LoadEnginsComplete;
            _storage.LoadTransmissionsComplete += _storage_LoadTransmissionsComplete;
            _storage.LoadWorkPartsListComplete += _storage_LoadWorkPartsListComplete;


            _storage.Update();
            _storage.UpdateWorkTypes();
            PostsHandler.Instance.ClientsLoaded += Instance_ClientsLoaded;
        }
 public void BuildList()
 {
     WorksList.Nodes.Clear();
     WorksList.Nodes.Add("Все категории");
     if (JSONSerializeService.InputItems != null)
     {
         TreeNodeCollection   tree      = WorksList.Nodes[0].Nodes;
         List <WorkTypeClass> workslist = JSONSerializeService.InputItems;
         //Добавляем категорию
         foreach (var pair in WorkTypeClass.CategoryNames)
         {
             TreeNode newnode = new TreeNode(pair.Value);
             newnode.Name = pair.Value;
             newnode.Tag  = pair.Key;
             tree.Add(newnode);
         }
         //Разбиваем по категориям
         foreach (WorkTypeClass ob in workslist)
         {
             TreeNode newnode = new TreeNode(ob.Article);
             newnode.Text = ob.Article;
             newnode.Name = workslist.IndexOf(ob).ToString();
             newnode.Tag  = ob;
             tree[WorkTypeClass.CategoryNames[ob.category]].Nodes.Add(newnode);
         }
         WorksList.Sort();
     }
 }
Example #4
0
        /// <summary>
        /// Добавить работу в список заявляемых
        /// </summary>
        /// <param name="obj"></param>
        private void AddWork(object obj)
        {
            //if (_selectedWork == null) return;
            //SelectedWorks.Add(_selectedWork);

            if (SelectedWorkTree == null)
            {
                return;
            }
            var work = WorksList.FirstOrDefault(o => o.Name.Equals(SelectedWorkTree.Name) && o.id_Class == SelectedWorkTree.id_Class)
                       ?? OtherWorksList.FirstOrDefault(o => o.Name.Equals(SelectedWorkTree.Name) && o.id_Class == SelectedWorkTree.id_Class);

            if (work == null || SelectedWorks.IndexOf(work) >= 0)
            {
                return;
            }
            SelectedWorks.Add(work);
            _storage.GetWorkParts(work.id);
        }