//Обновление строки private void UpdateCardSpecExp() { if (dgvCardSpecExp.CurrentRow == null) { return; } CardSpecExp cardSpecExp = dgvCardSpecExp.CurrentRow.DataBoundItem as v_CardSpecExp; if (cardSpecExp == null) { MessageBox.Show("Не знайдений рядок для оновлення", "Помилка"); return; } fmPersCardSpecExpEdit fmСardSpecExpEdit = new fmPersCardSpecExpEdit(EnumFormMode.Edit, "Зміна інтервалу", refSpecExps); fmСardSpecExpEdit.AddControlPeriod(cardSpecExps); fmСardSpecExpEdit.SetData(cardSpecExp); if (fmСardSpecExpEdit.ShowDialog() == DialogResult.OK) { cardSpecExp = fmСardSpecExpEdit.GetData(); CardSpecExp findСardSpecExp = cardSpecExps.FirstOrDefault(rec => rec.CardSpecExp_Id == cardSpecExp.CardSpecExp_Id); if (findСardSpecExp == null) { MessageBox.Show("Не знайдений рядок для оновлення", "Помилка"); return; } findСardSpecExp.CardSpecExp_PerBeg = cardSpecExp.CardSpecExp_PerBeg; findСardSpecExp.CardSpecExp_PerEnd = cardSpecExp.CardSpecExp_PerEnd; findСardSpecExp.CardSpecExp_RefSpecExp_Id = cardSpecExp.CardSpecExp_RefSpecExp_Id; RefreshTableCardSpecExp(); } }
//Создать строку вставки интервала статуса работника public string CreateStrInsertCardSpecExp(CardSpecExp cardSpecExp) { if (cardSpecExp == null) { return(string.Empty); } StringBuilder sql = new StringBuilder(); sql.Append(@"Insert into CardSpecExp (CardSpecExp_PersCard_Id"); if (cardSpecExp.CardSpecExp_PerBeg != DateTime.MinValue) { sql.Append(@",CardSpecExp_PerBeg"); } if (cardSpecExp.CardSpecExp_PerEnd != DateTime.MinValue) { sql.Append(@",CardSpecExp_PerEnd"); } sql.Append(@",CardSpecExp_RefSpecExp_Id) values ("); sql.Append(cardSpecExp.CardSpecExp_PersCard_Id); if (cardSpecExp.CardSpecExp_PerBeg != DateTime.MinValue) { sql.AppendFormat(", {{d'{0}'}}", cardSpecExp.CardSpecExp_PerBeg.ToString("yyyy-MM-dd")); } if (cardSpecExp.CardSpecExp_PerEnd != DateTime.MinValue) { sql.AppendFormat(", {{d'{0}'}}", cardSpecExp.CardSpecExp_PerEnd.ToString("yyyy-MM-dd")); } sql.AppendFormat(", {0} );", cardSpecExp.CardSpecExp_RefSpecExp_Id); return(sql.ToString()); }
private void FillDataRec(SqlDataReader reader, CardSpecExp CardSpecExp) { int resInt = 0; DateTime resDate = DateTime.MinValue; if (int.TryParse(reader["CardSpecExp_Id"].ToString(), out resInt)) { CardSpecExp.CardSpecExp_Id = resInt; } if (int.TryParse(reader["CardSpecExp_PersCard_Id"].ToString(), out resInt)) { CardSpecExp.CardSpecExp_PersCard_Id = resInt; } if (DateTime.TryParse(reader["CardSpecExp_PerBeg"].ToString(), out resDate)) { CardSpecExp.CardSpecExp_PerBeg = resDate; } if (DateTime.TryParse(reader["CardSpecExp_PerEnd"].ToString(), out resDate)) { CardSpecExp.CardSpecExp_PerEnd = resDate; } if (int.TryParse(reader["CardSpecExp_RefSpecExp_Id"].ToString(), out resInt)) { CardSpecExp.CardSpecExp_RefSpecExp_Id = resInt; } }
public CardSpecExp GetData() { CardSpecExp cardSpecExp = new CardSpecExp(); cardSpecExp.CardSpecExp_Id = _id; DateTime perBeg; DateTime.TryParse(tbPerBeg.Text, out perBeg); cardSpecExp.CardSpecExp_PerBeg = perBeg; DateTime perEnd; DateTime.TryParse(tbPerEnd.Text, out perEnd); cardSpecExp.CardSpecExp_PerEnd = perEnd; int resInt = 0; ResField fldId = resFldSpecExp.FirstOrDefault(rec => rec.Name == "RefSpecExp_Id"); if (fldId != null) { if (int.TryParse(fldId.Val, out resInt)) { cardSpecExp.CardSpecExp_RefSpecExp_Id = resInt; } } return(cardSpecExp); }
public void SetData(CardSpecExp сardSpecExp) { _id = сardSpecExp.CardSpecExp_Id; if (сardSpecExp.CardSpecExp_PerBeg != DateTime.MinValue) { tbPerBeg.Text = сardSpecExp.CardSpecExp_PerBeg.ToShortDateString(); } if (сardSpecExp.CardSpecExp_PerEnd != DateTime.MinValue) { tbPerEnd.Text = сardSpecExp.CardSpecExp_PerEnd.ToShortDateString(); } cmbSpecExp.ReadCombobox("RefSpecExp_Id", сardSpecExp.CardSpecExp_RefSpecExp_Id.ToString()); }
//Получить интервалы спецстажа работника по параметрам public List <CardSpecExp> GetCardSpecExpByParams(int persCard_Id, out string error) { error = string.Empty; if (conn == null) { error = "conn == null"; return(null); } if (persCard_Id == 0) { error = "Не задані вхідні параметри"; return(null); } List <CardSpecExp> cardSpecExpes = new List <CardSpecExp>(); SqlCommand command = new SqlCommand(spCardSpecExpSelect, conn); command.CommandType = System.Data.CommandType.StoredProcedure; command.Connection = conn; command.Parameters.AddWithValue("@inCardSpecExp_PersCard_Id", persCard_Id); SqlDataReader reader = null; try { reader = command.ExecuteReader(); while (reader.Read()) { CardSpecExp cardSpecExp = new CardSpecExp(); FillDataRec(reader, cardSpecExp); cardSpecExpes.Add(cardSpecExp); } } catch (Exception ex) { error = ex.Message; cardSpecExpes = null; } finally { if (reader != null) { reader.Close(); } } return(cardSpecExpes); }
//Добавить интервал статуса работника public int AddCardSpecExp(CardSpecExp cardSpecExp, out string error) { error = string.Empty; if (cardSpecExp == null) { error = "cardSpecExp == null"; return(0); } if (conn == null) { error = "conn == null"; return(0); } SqlCommand command = new SqlCommand(spCardSpecExpInsert, conn); command.CommandType = System.Data.CommandType.StoredProcedure; command.Connection = conn; command.Parameters.AddWithValue("@inCardSpecExp_PersCard_Id", cardSpecExp.CardSpecExp_PersCard_Id == 0 ? Convert.DBNull : cardSpecExp.CardSpecExp_PersCard_Id); command.Parameters.AddWithValue("@inCardSpecExp_PerBeg", cardSpecExp.CardSpecExp_PerBeg == DateTime.MinValue ? Convert.DBNull : cardSpecExp.CardSpecExp_PerBeg); command.Parameters.AddWithValue("@inCardSpecExp_PerEnd", cardSpecExp.CardSpecExp_PerEnd == DateTime.MinValue ? Convert.DBNull : cardSpecExp.CardSpecExp_PerEnd); command.Parameters.AddWithValue("@inCardSpecExp_RefSpecExp_Id", cardSpecExp.CardSpecExp_RefSpecExp_Id == 0 ? Convert.DBNull : cardSpecExp.CardSpecExp_RefSpecExp_Id); // определяем выходной параметр SqlParameter outId = new SqlParameter { ParameterName = "outId", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Int }; command.Parameters.Add(outId); try { command.ExecuteNonQuery(); } catch (Exception ex) { error = ex.Message; return(0); } int id = 0; int.TryParse(command.Parameters["outId"].Value.ToString(), out id); return(id); }
//Физическое удаление строки private void DeleteCardSpecExp() { if (dgvCardSpecExp.CurrentRow == null) { return; } if (MessageBox.Show("Ви впевнені, що бажаєте видалити обраний рядок?", "Видалення", MessageBoxButtons.YesNo) == DialogResult.No) { return; } CardSpecExp cardSpecExp = dgvCardSpecExp.CurrentRow.DataBoundItem as v_CardSpecExp; if (cardSpecExp == null) { MessageBox.Show("Не знайдений рядок для видалення", "Помилка"); return; } cardSpecExps.Remove(cardSpecExp); RefreshTableCardSpecExp(); }
//Получить интервалы спецстажа работников public List <CardSpecExp> GetAllCardSpecExps(out string error) { error = string.Empty; List <CardSpecExp> cardSpecExps = new List <CardSpecExp>(); if (conn == null) { error = "conn == null"; return(cardSpecExps); } SqlCommand command = new SqlCommand(spCardSpecExpSelect, conn); command.CommandType = CommandType.StoredProcedure; SqlDataReader reader = null; try { reader = command.ExecuteReader(); while (reader.Read()) { CardSpecExp cardSpecExp = new CardSpecExp(); FillDataRec(reader, cardSpecExp); cardSpecExps.Add(cardSpecExp); } } catch (Exception exc) { error = exc.Message; } finally { if (reader != null) { reader.Close(); } } return(cardSpecExps); }
//============================================================================================================================= // Спецстажи //============================================================================================================================= //Вставка строки private void InsertCardSpecExp() { fmPersCardSpecExpEdit fmСardSpecExpEdit = new fmPersCardSpecExpEdit(EnumFormMode.Insert, "Створення інтервалу", refSpecExps); fmСardSpecExpEdit.AddControlPeriod(cardSpecExps); if (fmСardSpecExpEdit.ShowDialog() == DialogResult.OK) { CardSpecExp getСardSpecExp = fmСardSpecExpEdit.GetData(); if (cardSpecExps.Count == 0) { getСardSpecExp.CardSpecExp_Id = 1; } else { getСardSpecExp.CardSpecExp_Id = cardSpecExps.Max(rec => rec.CardSpecExp_Id) + 1; } getСardSpecExp.CardSpecExp_PersCard_Id = id; cardSpecExps.Add(getСardSpecExp); RefreshTableCardSpecExp(); } }
//Изменить интервал статуса работника public bool ModifyCardSpecExp(CardSpecExp cardSpecExp, out string error) { error = string.Empty; if (conn == null) { error = "conn == null"; return(false); } if (cardSpecExp == null) { error = "cardSpecExp == null"; return(false); } SqlCommand command = new SqlCommand(spCardSpecExpUpdate, conn); command.CommandType = System.Data.CommandType.StoredProcedure; command.Connection = conn; command.Parameters.AddWithValue("@inCardSpecExp_Id", cardSpecExp.CardSpecExp_Id); command.Parameters.AddWithValue("@inCardSpecExp_PersCard_Id", cardSpecExp.CardSpecExp_PersCard_Id == 0 ? Convert.DBNull : cardSpecExp.CardSpecExp_PersCard_Id); command.Parameters.AddWithValue("@inCardSpecExp_PerBeg", cardSpecExp.CardSpecExp_PerBeg == DateTime.MinValue ? Convert.DBNull : cardSpecExp.CardSpecExp_PerBeg); command.Parameters.AddWithValue("@inCardSpecExp_PerEnd", cardSpecExp.CardSpecExp_PerEnd == DateTime.MinValue ? Convert.DBNull : cardSpecExp.CardSpecExp_PerEnd); command.Parameters.AddWithValue("@inCardSpecExp_RefSpecExp_Id", cardSpecExp.CardSpecExp_RefSpecExp_Id == 0 ? Convert.DBNull : cardSpecExp.CardSpecExp_RefSpecExp_Id); try { command.ExecuteNonQuery(); } catch (Exception ex) { error = ex.Message; return(false); } return(true); }