Exemplo n.º 1
0
        public bool IsModified()
        {
            bool result = false;

            if (_listUserTableRecords == null)
            {
                _listUserTableRecords = new List <clTableRecord>();
            }
            if (_listUserTableRecords_Original == null)
            {
                _listUserTableRecords_Original = new List <clTableRecord>();
            }

            //Ищем новые табельные записи
            foreach (var item in _listUserTableRecords)
            {
                clTableRecord tr = _listUserTableRecords_Original.Find(x => (x.SetGuid.Equals(item.SetGuid)) &&
                                                                       (x.StageGuid.Equals(item.StageGuid)) &&
                                                                       (x.ExecutorId.Equals(item.ExecutorId)) &&
                                                                       (x.WorkDate.ToShortDateString().Equals(item.WorkDate.ToShortDateString()))
                                                                       );
                if (tr == null)
                {
                    //Новая табельная запись, ее нет в исходном списке
                    result = true;
                    return(result);
                }
                else
                {
                    //Проверить была ли изменена табельная запись
                    if ((tr.WorkFact != item.WorkFact))
                    {
                        result = true;
                        return(result);
                    }
                }
            }

            //Ищем удаленные табельные записи
            foreach (var item in _listUserTableRecords_Original)
            {
                clTableRecord tr = _listUserTableRecords.Find(x => (x.SetGuid.Equals(item.SetGuid)) &&
                                                              (x.StageGuid.Equals(item.StageGuid)) &&
                                                              (x.ExecutorId.Equals(item.ExecutorId)) &&
                                                              (x.WorkDate.ToShortDateString().Equals(item.WorkDate.ToShortDateString()))
                                                              );
                if (tr == null)
                {
                    //Табельная запись есть в исходном но отсутствует в модифицированном - была удалена
                    result = true;
                    return(result);
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        private void CreateTableRecord(string set_guid, string stage_guid, DateTime work_date, double work_fact)
        {
            clSet set = _listUserSets.Find(x => (x.SetGuid.Equals(set_guid)) && (x.StageGuid.Equals(stage_guid)));

            if (set == null)
            {
                return;
            }

            double day_max_fact     = 15;
            double day_actualy_fact = 0;

            List <clTableRecord> _templist = _listUserTableRecords.FindAll(x => (x.WorkDate.ToShortDateString().Equals(work_date.ToShortDateString())));

            if ((_templist != null) && (_templist.Count > 0))
            {
                day_actualy_fact = _templist.Sum(x => x.WorkFact);
                if (work_fact > day_max_fact - day_actualy_fact)
                {
                    work_fact = day_max_fact - day_actualy_fact;
                }

                if (work_fact <= 0)
                {
                    MessageBox.Show("Количество отработанных часов в сутки должно быть меньше 15", "Превышен лимит", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
            }

            clTableRecord tr = new clTableRecord();

            tr.CreateDate   = DateTime.Now;
            tr.CreateUserId = this.UserId;

            tr.DeptId        = this.DepartmentId;
            tr.ExecutorId    = SelectedUserID;
            tr.ManuallyInput = 1;
            tr.ModifyDate    = DateTime.Now;
            tr.ModifyUserId  = this.SelectedUserID;
            tr.SetGuid       = set.SetGuid;
            tr.StageGuid     = set.StageGuid;

            tr.WorkDate = work_date;
            tr.WorkFact = work_fact;
            tr.WorkPlan = 0;

            _listUserTableRecords.Add(tr);
        }
Exemplo n.º 3
0
        public clTableRecord GetTableRecord(string set_guid, DateTime work_date)
        {
            clTableRecord result = null;

            if ((_listUserTableRecords != null) && (_listUserTableRecords.Count > 0))
            {
                var tr = _listUserTableRecords.Find(x =>
                                                    (x.SetGuid.Equals(set_guid)) &&
                                                    (x.WorkDate.ToShortDateString().Equals(work_date.ToShortDateString()))
                                                    );
                if (tr != null)
                {
                    result = tr;
                }
            }

            return(result);
        }
Exemplo n.º 4
0
        public void FindChanges(ref List <clTableRecord> _original, ref List <clTableRecord> _modified, ref List <clTableRecord> _new, ref List <clTableRecord> _updated, ref List <clTableRecord> _deleted)
        {
            //Ищем новые табельные записи
            foreach (var item in _modified)
            {
                clTableRecord tr = _original.Find(x => (x.SetGuid.Equals(item.SetGuid)) &&
                                                  (x.StageGuid.Equals(item.StageGuid)) &&
                                                  (x.ExecutorId.Equals(item.ExecutorId)) &&
                                                  (x.WorkDate.ToShortDateString().Equals(item.WorkDate.ToShortDateString()))
                                                  );
                if (tr == null)
                {
                    //Новая табельная запись, ее нет в исходном списке
                    _new.Add(item);
                }
                else
                {
                    //Проверить была ли изменена табельная запись
                    if ((tr.WorkFact != item.WorkFact))
                    {
                        _updated.Add(item);
                    }
                }
            }

            //Ищем удаленные табельные записи
            foreach (var item in _original)
            {
                clTableRecord tr = _modified.Find(x => (x.SetGuid.Equals(item.SetGuid)) &&
                                                  (x.StageGuid.Equals(item.StageGuid)) &&
                                                  (x.ExecutorId.Equals(item.ExecutorId)) &&
                                                  (x.WorkDate.ToShortDateString().Equals(item.WorkDate.ToShortDateString()))
                                                  );
                if (tr == null)
                {
                    //Табельная запись есть в исходном но отсутствует в модифицированном - была удалена
                    _deleted.Add(item);
                }
            }
        }
Exemplo n.º 5
0
        public void CreateOrUpdateTableRecord(string set_guid, string stage_guid, DateTime work_date, double work_fact)
        {
            if ((_listUserTableRecords == null))
            {
                _listUserTableRecords = new List <clTableRecord>();
            }

            clTableRecord tr = _listUserTableRecords.Find(x =>
                                                          (x.SetGuid.Equals(set_guid)) &&
                                                          (x.StageGuid.Equals(stage_guid)) &&
                                                          (x.WorkDate.ToShortDateString().Equals(work_date.ToShortDateString()))
                                                          );

            if (tr == null)
            {
                //Создать новую табельную запись
                CreateTableRecord(set_guid, stage_guid, work_date, work_fact);
            }
            else
            {
                //Обновить табельную запись
                UpdateTableRecord(set_guid, stage_guid, work_date, work_fact);
            }
        }
Exemplo n.º 6
0
        public void LoadIndividualPlan(DateTime PlanDate)
        {
            DateTime from = new DateTime(PlanDate.Year, PlanDate.Month, 1, 0, 0, 0);
            DateTime to   = new DateTime(PlanDate.Year, PlanDate.Month, DateTime.DaysInMonth(PlanDate.Year, PlanDate.Month), 0, 0, 0);

            //skud.LoadData(from.ToShortDateString(), to.ToShortDateString());

            if (_listUserTableRecords == null)
            {
                _listUserTableRecords = new List <clTableRecord>();
            }
            else
            {
                _listUserTableRecords.Clear();
            }

            if (_listUserSets == null)
            {
                _listUserSets = new List <clSet>();
            }
            else
            {
                _listUserSets.Clear();
            }

            SqlConnection connection = null;
            SqlDataReader dr         = null;

            try
            {
                connection = new SqlConnection(this.ConnStringSprut);
                SqlCommand command = new SqlCommand("[dbo].[PL_GetUserPlan]", connection);
                command.CommandType = CommandType.StoredProcedure;
                command.Parameters.Add("@user_id", SqlDbType.BigInt).Value = this._selected_user_id;
                command.Parameters.Add("@year", SqlDbType.Int).Value       = PlanDate.Year;
                command.Parameters.Add("@month", SqlDbType.Int).Value      = PlanDate.Month;

                connection.Open();
                dr = command.ExecuteReader();

                if (dr.HasRows)
                {
                    while (dr.Read())
                    {
                        DateTime dt;
                        double   val = 0;

                        #region Считываем табельную запись
                        clTableRecord tr = new clTableRecord();
                        tr.SetGuid    = dr["set_guid"].ToString();
                        tr.StageGuid  = dr["stage_guid"].ToString();
                        tr.ExecutorId = dr["executor_id"].ToString();
                        if (DateTime.TryParse(dr["work_date"].ToString(), out dt))
                        {
                            tr.WorkDate = dt;
                        }
                        else
                        {
                            tr.WorkDate = DateTime.Now;
                        }

                        if (Double.TryParse(dr["work_plan"].ToString(), out val))
                        {
                            tr.WorkPlan = val;
                        }
                        else
                        {
                            tr.WorkPlan = 0;
                        }

                        if (Double.TryParse(dr["work_fact"].ToString(), out val))
                        {
                            tr.WorkFact = val;
                        }
                        else
                        {
                            tr.WorkFact = 0;
                        }

                        if (Double.TryParse(dr["manually_input"].ToString(), out val))
                        {
                            tr.ManuallyInput = val;
                        }
                        else
                        {
                            tr.ManuallyInput = 0;
                        }

                        tr.DeptId = dr["dept_id"].ToString();
                        if (DateTime.TryParse(dr["modify_date"].ToString(), out dt))
                        {
                            tr.ModifyDate = dt;
                        }
                        else
                        {
                            tr.ModifyDate = DateTime.Now;
                        }
                        tr.ModifyUserId = dr["modify_user_id"].ToString();
                        if (DateTime.TryParse(dr["create_date"].ToString(), out dt))
                        {
                            tr.CreateDate = dt;
                        }
                        else
                        {
                            tr.CreateDate = DateTime.Now;
                        }
                        tr.CreateUserId = dr["create_user_id"].ToString();
                        _listUserTableRecords.Add(tr);
                        #endregion


                        #region Считываем комплект
                        clSet set = new clSet();
                        set.Contract  = dr["contract"].ToString();
                        set.SetCode   = dr["set_code"].ToString();
                        set.SetName   = dr["set_name"].ToString();
                        set.StageName = dr["stage_name"].ToString();
                        set.StageGuid = dr["stage_guid"].ToString();
                        //set.Kks = dr["set_kks"].ToString();
                        set.Building = dr["building"].ToString();

                        if (DateTime.TryParse(dr["gip_start"].ToString(), out dt))
                        {
                            set.GipStart = dt;
                        }
                        else
                        {
                            set.GipStart = DateTime.Now;
                        }

                        if (DateTime.TryParse(dr["gip_end"].ToString(), out dt))
                        {
                            set.GipEnd = dt;
                        }
                        else
                        {
                            set.GipEnd = DateTime.Now;
                        }

                        set.SetGuid = dr["set_guid"].ToString();

                        var temp = _listUserSets.Find(x => (x.SetGuid.Equals(set.SetGuid)));
                        if (temp == null)
                        {
                            _listUserSets.Add(set);
                        }

                        #endregion
                    }
                }

                if (_listUserTableRecords_Original == null)
                {
                    _listUserTableRecords_Original = new List <clTableRecord>();
                }
                else
                {
                    _listUserTableRecords_Original.Clear();
                }

                foreach (var item in _listUserTableRecords)
                {
                    clTableRecord tr = new clTableRecord();

                    tr.CreateDate    = item.CreateDate;
                    tr.CreateUserId  = item.CreateUserId;
                    tr.DeptId        = item.DeptId;
                    tr.ExecutorId    = item.ExecutorId;
                    tr.ManuallyInput = item.ManuallyInput;
                    tr.ModifyDate    = item.ModifyDate;
                    tr.ModifyUserId  = item.ModifyUserId;
                    tr.SetGuid       = item.SetGuid;
                    tr.StageGuid     = item.StageGuid;
                    tr.WorkDate      = item.WorkDate;
                    tr.WorkFact      = item.WorkFact;
                    tr.WorkPlan      = item.WorkPlan;

                    _listUserTableRecords_Original.Add(tr);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Произошла ошибка при получении индивидуального плана сотрудника.\n" + ex.Message + "\n" + ex.StackTrace, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                if (dr != null)
                {
                    dr.Close();
                }
                if (connection != null)
                {
                    connection.Close();
                }
            }

            FillTableIndividualPlan(PlanDate);
        }