private void FillDataRec(SqlDataReader reader, TaxRelief TaxRelief) { int resInt = 0; DateTime resDate = DateTime.MinValue; decimal resDec = 0; if (int.TryParse(reader["TaxRelief_Id"].ToString(), out resInt)) { TaxRelief.TaxRelief_Id = resInt; } if (int.TryParse(reader["TaxRelief_PersCard_Id"].ToString(), out resInt)) { TaxRelief.TaxRelief_PersCard_Id = resInt; } if (DateTime.TryParse(reader["TaxRelief_PerBeg"].ToString(), out resDate)) { TaxRelief.TaxRelief_PerBeg = resDate; } if (DateTime.TryParse(reader["TaxRelief_PerEnd"].ToString(), out resDate)) { TaxRelief.TaxRelief_PerEnd = resDate; } if (decimal.TryParse(reader["TaxRelief_Koef"].ToString(), out resDec)) { TaxRelief.TaxRelief_Koef = resDec; } }
//Создать строку вставки интервала налоговой льготы public string CreateStrInsertTaxRelief(TaxRelief taxRelief) { if (taxRelief == null) { return(string.Empty); } StringBuilder sql = new StringBuilder(); sql.Append(@"Insert into TaxRelief (TaxRelief_PersCard_Id"); if (taxRelief.TaxRelief_PerBeg != DateTime.MinValue) { sql.Append(@",TaxRelief_PerBeg"); } if (taxRelief.TaxRelief_PerEnd != DateTime.MinValue) { sql.Append(@",TaxRelief_PerEnd"); } sql.Append(@",TaxRelief_Koef) values ("); sql.Append(taxRelief.TaxRelief_PersCard_Id); if (taxRelief.TaxRelief_PerBeg != DateTime.MinValue) { sql.AppendFormat(", {{d'{0}'}}", taxRelief.TaxRelief_PerBeg.ToString("yyyy-MM-dd")); } if (taxRelief.TaxRelief_PerEnd != DateTime.MinValue) { sql.AppendFormat(", {{d'{0}'}}", taxRelief.TaxRelief_PerEnd.ToString("yyyy-MM-dd")); } sql.AppendFormat(", {0} );", taxRelief.TaxRelief_Koef.ToString().Replace(',', '.')); return(sql.ToString()); }
//Обновление строки private void UpdateTaxRelief() { if (dgvTaxRelief.CurrentRow == null) { return; } TaxRelief taxRelief = dgvTaxRelief.CurrentRow.DataBoundItem as TaxRelief; if (taxRelief == null) { MessageBox.Show("Не знайдений рядок для оновлення", "Помилка"); return; } fmPersCardTaxReliefEdit fmTaxReliefEdit = new fmPersCardTaxReliefEdit(EnumFormMode.Edit, "Зміна інтервалу"); fmTaxReliefEdit.AddControlPeriod(taxReliefs); fmTaxReliefEdit.SetData(taxRelief); if (fmTaxReliefEdit.ShowDialog() == DialogResult.OK) { taxRelief = fmTaxReliefEdit.GetData(); TaxRelief findTaxRelief = taxReliefs.FirstOrDefault(rec => rec.TaxRelief_Id == taxRelief.TaxRelief_Id); if (findTaxRelief == null) { MessageBox.Show("Не знайдений рядок для оновлення", "Помилка"); return; } findTaxRelief.TaxRelief_PerBeg = taxRelief.TaxRelief_PerBeg; findTaxRelief.TaxRelief_PerEnd = taxRelief.TaxRelief_PerEnd; findTaxRelief.TaxRelief_Koef = taxRelief.TaxRelief_Koef; RefreshTableTaxRelief(); } }
public void SetData(TaxRelief taxRelief) { _id = taxRelief.TaxRelief_Id; if (taxRelief.TaxRelief_PerBeg != DateTime.MinValue) { tbPerBeg.Text = taxRelief.TaxRelief_PerBeg.ToShortDateString(); } if (taxRelief.TaxRelief_PerEnd != DateTime.MinValue) { tbPerEnd.Text = taxRelief.TaxRelief_PerEnd.ToShortDateString(); } tbKoef.Text = taxRelief.TaxRelief_Koef.ToString(); }
//Получить интервалы налоговых льгот по параметрам public List <TaxRelief> GetTaxReliefByParams(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 <TaxRelief> taxReliefs = new List <TaxRelief>(); SqlCommand command = new SqlCommand(spTaxReliefSelect, conn); command.CommandType = System.Data.CommandType.StoredProcedure; command.Connection = conn; command.Parameters.AddWithValue("@inTaxRelief_PersCard_Id", persCard_Id); SqlDataReader reader = null; try { reader = command.ExecuteReader(); while (reader.Read()) { TaxRelief taxRelief = new TaxRelief(); FillDataRec(reader, taxRelief); taxReliefs.Add(taxRelief); } } catch (Exception ex) { error = ex.Message; taxReliefs = null; } finally { if (reader != null) { reader.Close(); } } return(taxReliefs); }
//Добавить интервал налоговой льготы public int AddTaxRelief(TaxRelief taxRelief, out string error) { error = string.Empty; if (taxRelief == null) { error = "taxRelief == null"; return(0); } if (conn == null) { error = "conn == null"; return(0); } SqlCommand command = new SqlCommand(spTaxReliefInsert, conn); command.CommandType = System.Data.CommandType.StoredProcedure; command.Connection = conn; command.Parameters.AddWithValue("@inTaxRelief_PersCard_Id", taxRelief.TaxRelief_PersCard_Id == 0 ? Convert.DBNull : taxRelief.TaxRelief_PersCard_Id); command.Parameters.AddWithValue("@inTaxRelief_PerBeg", taxRelief.TaxRelief_PerBeg == DateTime.MinValue ? Convert.DBNull : taxRelief.TaxRelief_PerBeg); command.Parameters.AddWithValue("@inTaxRelief_PerEnd", taxRelief.TaxRelief_PerEnd == DateTime.MinValue ? Convert.DBNull : taxRelief.TaxRelief_PerEnd); command.Parameters.AddWithValue("@inTaxRelief_Koef", taxRelief.TaxRelief_Koef); // определяем выходной параметр 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 DeleteTaxRelief() { if (dgvTaxRelief.CurrentRow == null) { return; } if (MessageBox.Show("Ви впевнені, що бажаєте видалити обраний рядок?", "Видалення", MessageBoxButtons.YesNo) == DialogResult.No) { return; } TaxRelief taxRelief = dgvTaxRelief.CurrentRow.DataBoundItem as TaxRelief; if (taxRelief == null) { MessageBox.Show("Не знайдений рядок для видалення", "Помилка"); return; } taxReliefs.Remove(taxRelief); RefreshTableTaxRelief(); }
//Получить интервалы налоговых льгот public List <TaxRelief> GetAllTaxReliefs(out string error) { error = string.Empty; List <TaxRelief> taxReliefs = new List <TaxRelief>(); if (conn == null) { error = "conn == null"; return(taxReliefs); } SqlCommand command = new SqlCommand(spTaxReliefSelect, conn); command.CommandType = CommandType.StoredProcedure; SqlDataReader reader = null; try { reader = command.ExecuteReader(); while (reader.Read()) { TaxRelief taxRelief = new TaxRelief(); FillDataRec(reader, taxRelief); taxReliefs.Add(taxRelief); } } catch (Exception exc) { error = exc.Message; } finally { if (reader != null) { reader.Close(); } } return(taxReliefs); }
//============================================================================================================================= // Льготы //============================================================================================================================= //Вставка строки private void InsertTaxRelief() { fmPersCardTaxReliefEdit fmTaxReliefEdit = new fmPersCardTaxReliefEdit(EnumFormMode.Insert, "Створення інтервалу"); fmTaxReliefEdit.AddControlPeriod(taxReliefs); if (fmTaxReliefEdit.ShowDialog() == DialogResult.OK) { TaxRelief getTaxRelief = fmTaxReliefEdit.GetData(); if (taxReliefs.Count == 0) { getTaxRelief.TaxRelief_Id = 1; } else { getTaxRelief.TaxRelief_Id = childs.Max(rec => rec.Child_Id) + 1; } getTaxRelief.TaxRelief_PersCard_Id = id; taxReliefs.Add(getTaxRelief); RefreshTableTaxRelief(); } }
public TaxRelief GetData() { TaxRelief taxRelief = new TaxRelief(); taxRelief.TaxRelief_Id = _id; DateTime perBeg; DateTime.TryParse(tbPerBeg.Text, out perBeg); taxRelief.TaxRelief_PerBeg = perBeg; DateTime perEnd; DateTime.TryParse(tbPerEnd.Text, out perEnd); taxRelief.TaxRelief_PerEnd = perEnd; decimal koef = 0; decimal.TryParse(tbKoef.Text, out koef); taxRelief.TaxRelief_Koef = koef; return(taxRelief); }
//Изменить интервал налоговой льготы public bool ModifyTaxRelief(TaxRelief taxRelief, out string error) { error = string.Empty; if (conn == null) { error = "conn == null"; return(false); } if (taxRelief == null) { error = "taxRelief == null"; return(false); } SqlCommand command = new SqlCommand(spTaxReliefUpdate, conn); command.CommandType = System.Data.CommandType.StoredProcedure; command.Connection = conn; command.Parameters.AddWithValue("@inTaxRelief_Id", taxRelief.TaxRelief_Id); command.Parameters.AddWithValue("@inTaxRelief_PersCard_Id", taxRelief.TaxRelief_PersCard_Id == 0 ? Convert.DBNull : taxRelief.TaxRelief_PersCard_Id); command.Parameters.AddWithValue("@inTaxRelief_PerBeg", taxRelief.TaxRelief_PerBeg == DateTime.MinValue ? Convert.DBNull : taxRelief.TaxRelief_PerBeg); command.Parameters.AddWithValue("@inTaxRelief_PerEnd", taxRelief.TaxRelief_PerEnd == DateTime.MinValue ? Convert.DBNull : taxRelief.TaxRelief_PerEnd); command.Parameters.AddWithValue("@inTaxRelief_Koef", taxRelief.TaxRelief_Koef); try { command.ExecuteNonQuery(); } catch (Exception ex) { error = ex.Message; return(false); } return(true); }