Esempio n. 1
0
 public fmDFRec(Form owner, DFCt dfCt)
 {
     InitializeComponent();
     this.SingleFormMode(owner);
     this.BaseFormStyle("1ДФ");
     _dfCt = dfCt;
 }
Esempio n. 2
0
        //Обновление строки
        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);
        }
Esempio n. 4
0
        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;
            }
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        //Физическое удаление строки
        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();
            }
        }
Esempio n. 7
0
        //Добавить каталог ЕСВ
        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);;
        }
Esempio n. 8
0
        //Вставка строки
        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());
            }
        }
Esempio n. 9
0
        //Расчет строки
        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();
        }
Esempio n. 10
0
 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;
     }
 }
Esempio n. 11
0
        //Получить список каталогов 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);
        }
Esempio n. 12
0
        //Вход в документ
        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();
        }
Esempio n. 13
0
        //Изменить каталог ЕСВ
        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);
        }
Esempio n. 14
0
        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("Експорт виконаний", "Увага");
        }