public int AddNewRequest(int factoryId, int workUnitId, int workSectionId, DateTime requestDate,
                                 int workerId, string requestNote)
        {
            var newDr = TechnologyProblemsTable.NewRow();

            newDr["GlobalID"]        = "0200000";
            newDr["FactoryID"]       = factoryId;
            newDr["WorkUnitID"]      = workUnitId;
            newDr["WorkSectionID"]   = workSectionId;
            newDr["RequestDate"]     = requestDate;
            newDr["RequestWorkerID"] = workerId;
            newDr["RequestNotes"]    = requestNote;
            newDr["RequestClose"]    = false;
            newDr["Enable"]          = true;
            TechnologyProblemsTable.Rows.Add(newDr);

            UpdateTechnologyProblems();

            var techProblemId = GetTechnologyProblemId(workSectionId, workerId, requestDate);

            if (techProblemId != -1)
            {
                newDr["TechnologyProblemID"] = techProblemId;
                newDr.AcceptChanges();

                newDr["GlobalID"] = "02" + techProblemId.ToString("00000");
                UpdateTechnologyProblems();
            }

            return(techProblemId);
        }
        private IEnumerable <long> GetTechnologyProblemIds()
        {
            var ids = from technologyProblemsView in TechnologyProblemsTable.AsEnumerable()
                      select technologyProblemsView.Field <Int64>("TechnologyProblemID");

            return(ids.ToList());
        }
        public void ChangeReceivedNotes(int techProblemId, string receivedNotes)
        {
            var rows = TechnologyProblemsTable.Select("TechnologyProblemID = " + techProblemId);

            if (!rows.Any())
            {
                return;
            }

            var techProblemRow = rows.First();

            techProblemRow["ReceivedNotes"] = receivedNotes;

            UpdateTechnologyProblems();
        }
        public void DeleteTechnologyProblem(int techProblemId)
        {
            var rows = TechnologyProblemsTable.Select("TechnologyProblemID = " + techProblemId);

            if (!rows.Any())
            {
                return;
            }

            var deletingRow = rows.First();

            deletingRow["Enable"] = false;

            UpdateTechnologyProblems();
        }
        public void FillReceivedInfo(int techProblemId, DateTime receivedDate, int receivedWorkerId, string receivedNote)
        {
            var rows = TechnologyProblemsTable.Select("TechnologyProblemID = " + techProblemId);

            if (!rows.Any())
            {
                return;
            }

            var receivedRow = rows.First();

            receivedRow["ReceivedDate"]     = receivedDate;
            receivedRow["ReceivedWorkerID"] = receivedWorkerId;
            receivedRow["ReceivedNotes"]    = receivedNote;
            UpdateTechnologyProblems();
        }
        public void FillPlannedCompletionDate(int techProblemId, object plannedCompleteDate, DateTime editingDate,
                                              int editingWorkerId)
        {
            var rows = TechnologyProblemsTable.Select("TechnologyProblemID = " + techProblemId);

            if (!rows.Any())
            {
                return;
            }

            var additionalRow = rows.First();

            additionalRow["PlanedCompletionDate"] = plannedCompleteDate;
            additionalRow["EditingDate"]          = editingDate;
            additionalRow["EditingWorkerID"]      = editingWorkerId;
            UpdateTechnologyProblems();
        }
        public void FillCompletionInfo(string globalId, DateTime completionDate, int completionWorkerId)
        {
            var rows = TechnologyProblemsTable.Select("GlobalID = " + globalId);

            if (!rows.Any())
            {
                CompleteRequest(globalId, completionDate, completionWorkerId);
                return;
            }

            var completionRow = rows.First();

            completionRow["CompletionDate"]     = completionDate;
            completionRow["CompletionWorkerID"] = completionWorkerId;

            UpdateTechnologyProblems();
        }
        public void CompleteRequest(int techProblemId, DateTime completionDate, int completionWorkerId,
                                    string completionNote)
        {
            var rows = TechnologyProblemsTable.Select("TechnologyProblemID = " + techProblemId);

            if (!rows.Any())
            {
                return;
            }

            var completionRow = rows.First();

            completionRow["CompletionDate"]     = completionDate;
            completionRow["CompletionWorkerID"] = completionWorkerId;
            completionRow["CompletionNotes"]    = completionNote;
            completionRow["RequestClose"]       = true;

            UpdateTechnologyProblems();
        }