public fmDFRec(Form owner, DFCt dfCt) { InitializeComponent(); this.SingleFormMode(owner); this.BaseFormStyle("1ДФ"); _dfCt = dfCt; }
//Обновление строки private void UpdateRecord() { if (dgvDFCt.CurrentRow == null) { return; } DFCt setDFCt = dgvDFCt.CurrentRow.DataBoundItem as DFCt; if (setDFCt == null) { MessageBox.Show("Не знайдений рядок для оновлення", "Помилка"); return; } fmDFCtEdit fmEdit = new fmDFCtEdit(EnumFormMode.Edit, "Зміна каталога 1 ДФ"); fmEdit.SetData(setDFCt); if (fmEdit.ShowDialog() == DialogResult.OK) { DFCt getDFCt = fmEdit.GetData(); string error; if (!_repoDFCt.ModifyDFCt(getDFCt, out error)) { MessageBox.Show("Помилка оновлення рядка.\nТехнічна інформація: " + error, "Помилка"); return; } RefreshTable(); } }
public DFCt GetData() { DFCt dfCt = new DFCt(); dfCt.DFCt_Id = _id; dfCt.DFCt_Date = SalaryHelper.GetDateByQrt( cmbQrt.SelectedIndex + 1, DateTime.Today.Year - SetupProgram.YearSalary + cmbYr.SelectedIndex ); int resInt = 0; if (int.TryParse(tbNmr.Text, out resInt)) { dfCt.DFCt_Nmr = resInt; } dfCt.DFCt_Nm = tbNm.Text; dfCt.DFCt_Flg = 0; if (rbAskClc.Checked) { dfCt.DFCt_Flg |= (int)EnumActionEnterDF.AskCalc; } else if (rbClc.Checked) { dfCt.DFCt_Flg |= (int)EnumActionEnterDF.AlwaysCalc; } dfCt.DFCt_DateClc = DateTime.MinValue; return(dfCt); }
private void FillDataRec(SqlDataReader reader, DFCt ustCt) { int resInt = 0; DateTime resDate = DateTime.MinValue; if (int.TryParse(reader["DFCt_Id"].ToString(), out resInt)) { ustCt.DFCt_Id = resInt; } if (DateTime.TryParse(reader["DFCt_Date"].ToString(), out resDate)) { ustCt.DFCt_Date = resDate; } if (int.TryParse(reader["DFCt_Nmr"].ToString(), out resInt)) { ustCt.DFCt_Nmr = resInt; } ustCt.DFCt_Nm = reader["DFCt_Nm"].ToString(); if (DateTime.TryParse(reader["DFCt_DateClc"].ToString(), out resDate)) { ustCt.DFCt_DateClc = resDate; } if (int.TryParse(reader["DFCt_Flg"].ToString(), out resInt)) { ustCt.DFCt_Flg = resInt; } }
private bool CalcDF(DFCt dfCt) { if (dfCt == null) { return(false); } string error; if (!_repoDFRec.DeleteDFRecByParams(dfCt.DFCt_Id, out error)) { MessageBox.Show("Помилка видалення 1ДФ.\nТехнічна інформація: " + error, "Помилка"); return(false); } if (!_repoDFRec.CalcDFRec(dfCt.DFCt_Id, out error)) { MessageBox.Show("Помилка розрахунку 1ДФ.\nТехнічна інформація: " + error, "Помилка"); return(false); } dfCt.DFCt_DateClc = DateTime.Now; if (!_repoDFCt.ModifyDFCt(dfCt, out error)) { MessageBox.Show("Помилка оновлення рядка каталога.\nТехнічна інформація: " + error, "Помилка"); return(false); } return(true); }
//Физическое удаление строки private void DeleteRecord() { List <DFCt> checkedDFCts = dgvDFCt.GetCheckedRecords <DFCt>(); if (checkedDFCts.Count > 0) { if (MessageBox.Show("Ви впевнені, що бажаєте видалити обрані рядки?", "Видалення", MessageBoxButtons.YesNo) == DialogResult.Yes) { Coffee.Init("Видалення..."); foreach (DFCt dfCt in checkedDFCts) { string error; if (!_repoDFCt.DeleteDFCt(dfCt.DFCt_Id, out error)) { MessageBox.Show("Помилка видалення рядка.\nТехнічна інформація: " + error, "Помилка"); break; } } Coffee.Term(); RefreshTable(); } } else { if (dgvDFCt.CurrentRow == null) { return; } if (MessageBox.Show("Ви впевнені, що бажаєте видалити обраний рядок?", "Видалення", MessageBoxButtons.YesNo) == DialogResult.No) { return; } DFCt dfCt = dgvDFCt.CurrentRow.DataBoundItem as DFCt; if (dfCt == null) { MessageBox.Show("Не знайдений рядок для видалення", "Помилка"); return; } string error; if (!_repoDFCt.DeleteDFCt(dfCt.DFCt_Id, out error)) { MessageBox.Show("Помилка видалення рядка.\nТехнічна інформація: " + error, "Помилка"); return; } RefreshTable(); } }
//Добавить каталог ЕСВ public int AddDFCt(DFCt dfCt, out string error) { error = string.Empty; if (dfCt == null) { error = "dfCt == null"; return(0); } if (conn == null) { error = "conn == null"; return(0); } SqlCommand command = new SqlCommand(spDFCtInsert, conn); command.CommandType = System.Data.CommandType.StoredProcedure; command.Connection = conn; command.Parameters.AddWithValue("@inDFCt_Date", dfCt.DFCt_Date == DateTime.MinValue ? Convert.DBNull : dfCt.DFCt_Date); command.Parameters.AddWithValue("@inDFCt_Nmr", dfCt.DFCt_Nmr.ToString()); command.Parameters.AddWithValue("@inDFCt_Nm", dfCt.DFCt_Nm); command.Parameters.AddWithValue("@inDFCt_DateClc", dfCt.DFCt_DateClc == DateTime.MinValue ? Convert.DBNull : dfCt.DFCt_DateClc); command.Parameters.AddWithValue("@inDFCt_Flg", dfCt.DFCt_Flg.ToString()); // определяем выходной параметр 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 InsertRecord() { fmDFCtEdit fmEdit = new fmDFCtEdit(EnumFormMode.Insert, "Створення каталога 1 ДФ"); if (fmEdit.ShowDialog() == DialogResult.OK) { string error; DFCt getDFCt = fmEdit.GetData(); int id = _repoDFCt.AddDFCt(getDFCt, out error); if (id == 0) { MessageBox.Show("Помилка додавання рядка.\nТехнічна інформація: " + error, "Помилка"); return; } RefreshTable(); dgvDFCt.SetPositionRow <DFCt>("DFCt_Id", id.ToString()); } }
//Расчет строки private void CalcRecord() { List <DFCt> checkedDFCts = dgvDFCt.GetCheckedRecords <DFCt>(); if (checkedDFCts.Count > 0) { if (MessageBox.Show("Виконати розрахунок обраних рядки?", "Розрахування", MessageBoxButtons.YesNo) == DialogResult.Yes) { Coffee.Init("Розрахування..."); foreach (DFCt dfCt in checkedDFCts) { if (!CalcDF(dfCt)) { break; } } Coffee.Term(); } } else { if (dgvDFCt.CurrentRow == null) { return; } if (MessageBox.Show("Ви впевнені, що бажаєте видалити обраний рядок?", "Видалення", MessageBoxButtons.YesNo) == DialogResult.No) { return; } DFCt dfCt = dgvDFCt.CurrentRow.DataBoundItem as DFCt; if (dfCt == null) { MessageBox.Show("Не знайдений рядок для видалення", "Помилка"); return; } if (!CalcDF(dfCt)) { return; } } RefreshTable(); }
public void SetData(DFCt dfCt) { _id = dfCt.DFCt_Id; cmbQrt.SelectedIndex = SalaryHelper.GetQrtByDate(dfCt.DFCt_Date) - 1; cmbYr.SelectedIndex = DateTime.Today.Year - dfCt.DFCt_Date.Year + 1; tbNmr.Text = dfCt.DFCt_Nmr.ToString(); tbNm.Text = dfCt.DFCt_Nm; if ((dfCt.DFCt_Flg & (int)EnumActionEnterDF.AskCalc) > 0) { rbAskClc.Checked = true; } else if ((dfCt.DFCt_Flg & (int)EnumActionEnterDF.AlwaysCalc) > 0) { rbClc.Checked = true; } else { rbNoClc.Checked = true; } }
//Получить список каталогов 1ДФ public List <DFCt> GetAllDFCts(out string error) { error = string.Empty; List <DFCt> dfCts = new List <DFCt>(); if (conn == null) { error = "conn == null"; return(dfCts); } SqlCommand command = new SqlCommand(spDFCtSelect, conn); command.CommandType = CommandType.StoredProcedure; SqlDataReader reader = null; try { reader = command.ExecuteReader(); while (reader.Read()) { DFCt dfCt = new DFCt(); FillDataRec(reader, dfCt); dfCts.Add(dfCt); } } catch (Exception exc) { error = exc.Message; } finally { if (reader != null) { reader.Close(); } } return(dfCts); }
//Вход в документ private void EnterToDoc() { if (dgvDFCt.CurrentRow == null) { return; } DFCt dfCt = dgvDFCt.CurrentRow.DataBoundItem as DFCt; if (dfCt == null) { MessageBox.Show("Не знайдений рядок", "Помилка"); return; } bool isNeedClc = false; if ((dfCt.DFCt_Flg & (int)EnumActionEnterDF.AskCalc) > 0) { if (MessageBox.Show("Виконати розрахунок 1ДФ?", "Розрахування", MessageBoxButtons.YesNo) == DialogResult.Yes) { isNeedClc = true; } } else if ((dfCt.DFCt_Flg & (int)EnumActionEnterDF.AlwaysCalc) > 0) { isNeedClc = true; } if (isNeedClc) { if (!CalcDF(dfCt)) { return; } } fmDFRec dfRec = new fmDFRec(this, dfCt); dfRec.ShowDialog(); RefreshTable(); }
//Изменить каталог ЕСВ public bool ModifyDFCt(DFCt dfCt, out string error) { error = string.Empty; if (conn == null) { error = "conn == null"; return(false); } if (dfCt == null) { error = "dfCt == null"; return(false); } SqlCommand command = new SqlCommand(spDFCtUpdate, conn); command.CommandType = CommandType.StoredProcedure; command.Connection = conn; command.Parameters.AddWithValue("@inDFCt_Id", dfCt.DFCt_Id); command.Parameters.AddWithValue("@inDFCt_Date", dfCt.DFCt_Date == DateTime.MinValue ? Convert.DBNull : dfCt.DFCt_Date); command.Parameters.AddWithValue("@inDFCt_Nmr", dfCt.DFCt_Nmr.ToString()); command.Parameters.AddWithValue("@inDFCt_Nm", dfCt.DFCt_Nm); command.Parameters.AddWithValue("@inDFCt_DateClc", dfCt.DFCt_DateClc == DateTime.MinValue ? Convert.DBNull : dfCt.DFCt_DateClc); command.Parameters.AddWithValue("@inDFCt_Flg", dfCt.DFCt_Flg.ToString()); try { command.ExecuteNonQuery(); } catch (Exception ex) { error = ex.Message; return(false); } return(true); }
private void ExportToDbf() { List <DFCt> checkedDFCts = dgvDFCt.GetCheckedRecords <DFCt>(); DFCt currentDFCt = null; if (checkedDFCts.Count == 0) { currentDFCt = dgvDFCt.CurrentRow.DataBoundItem as DFCt; if (currentDFCt == null) { MessageBox.Show("Не обрані рядок/рядки для експорту", "Помилка"); return; } } fmDFExport fmExport = new fmDFExport(); fmExport.SetPathExport(_pathExport); if (fmExport.ShowDialog() == DialogResult.No) { _pathExport = fmExport.GetPathExport(); return; } _pathExport = fmExport.GetPathExport(); string error = string.Empty; List <DFCt> dfCts = new List <DFCt>(); List <DFRec> dfRecs = new List <DFRec>(); if (checkedDFCts.Count > 0) { dfCts = checkedDFCts; } else { dfCts.Add(currentDFCt); } Coffee.Init("Завантаження даних..."); if (_refAdms == null) { _refAdms = _repoRefAdm.GetAllAdms(out error); if (error != string.Empty) { Coffee.Term(); MessageBox.Show("Помилка завантаження администрации", "Помилка"); return; } } foreach (DFCt dfCt in dfCts) { Coffee.Refresh("Завантаження 1 ДФ..."); dfRecs = _repoDFRec.GetAllDFRecByParams(dfCt.DFCt_Id, out error); if (error != string.Empty) { Coffee.Term(); MessageBox.Show("Помилка завантаження 1ДФ", "Помилка"); return; } Coffee.Refresh("Експорт 1 ДФ..."); int qrt = SalaryHelper.GetQrtByDate(dfCt.DFCt_Date); List <ExportDFRec> exportDfRec = ExportDF.GetExportDataDF(dfCt.DFCt_Date, dfRecs, _refAdms); if (!ExportDF.ExportDFToDbf(_pathExport, qrt, exportDfRec, out error)) { Coffee.Term(); MessageBox.Show("Помилка експорту 1 ДФ", "Помилка"); return; } } Coffee.Term(); MessageBox.Show("Експорт виконаний", "Увага"); }