using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using Transport.BLL;
namespace Transport
{
    public partial class cost_group : Office2007Form
    {
        public cost_group()
        {
            InitializeComponent();
        }

        //   متد پر کردن اطلاعات جدول گروه هزینه ها
        public void FillDataGrid()
        {
            DataTable ResultTable = bll_cost_group.SelectAllRecord("tbl_cost_group");

            dgv_cost_group.DataSource = ResultTable;

            dgv_cost_group.Columns[0].HeaderText = "شناسه گروه هزینه";
            dgv_cost_group.Columns[1].HeaderText = "نام گروه هزینه";

            dgv_cost_group.Columns[0].Visible = false;

            special_class.setRowNumber(dgv_cost_group);
        }

        // متد مقداردهی خاصیت های فرم ویرایش گروه هزینه ها
        public void Fill_EditCostGroup_Properties()
        {
            if (dgv_cost_group.Rows.Count > 0)
            {
                // تنظیم شناسه شهر و قرار دادن در یک برچسب برای عملیات حذف
                lbl_cost_company_id.Text = dgv_cost_group.Rows[dgv_cost_group.CurrentRow.Index].Cells[0].Value.ToString();

                //********************************************************
                
                // تنظیم شناسه گروه هزینه
                edit_cost_group.cost_group_name_id = dgv_cost_group.Rows[dgv_cost_group.CurrentRow.Index].Cells[0].Value.ToString();

                // تنظیم  نام  گروه هزینه
                edit_cost_group.cost_group_name = dgv_cost_group.Rows[dgv_cost_group.CurrentRow.Index].Cells[1].Value.ToString();



            }
        }

        private void cost_group_Load(object sender, EventArgs e)
        {
            FillDataGrid();
            btn_new_cost_group.Focus();
        }

        private void dgv_cost_group_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            Fill_EditCostGroup_Properties();
        }

        private void dgv_cost_group_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            
        }

        // متغیری برای نگهداری رشته پرس و جوی جستجو
        public static string SQLQueryParameter = "";

        // رویداد تکست چنج فیلد جستجوی اطلاعات
        private void txt_search_TextChanged(object sender, EventArgs e)
        {
            SQLQueryParameter = string.Format("SELECT * FROM tbl_cost_group WHERE cost_group_name like '%{0}%' ", txt_search.Text);
            dgv_cost_group.DataSource = bll_cost_group.search_in_company(SQLQueryParameter);
            special_class.setRowNumber(dgv_cost_group);
        }

        private void btn_delete_Click(object sender, EventArgs e)
        {
            if (dgv_cost_group.Rows.Count > 0)
            {
                try
                {
                    string Cost_Company_ID = lbl_cost_company_id.Text;

                    if (!bll_cost_group.checkRecordExist("tbl_cost", "cost_group_id", Cost_Company_ID))
                    {



                        if (FMessegeBox.FarsiMessegeBox.Show("آیا از حذف اطلاعات این گروه هزینه مطمئن هستید ؟", "تایید حذف اطلاعات", FMessegeBox.FMessegeBoxButtons.YesNo, FMessegeBox.FMessegeBoxIcons.Question) == DialogResult.Yes)
                        {

                            string Query = "DELETE FROM tbl_cost_group WHERE cost_group_id=" + Cost_Company_ID;

                            bool result = bll_transport.RunQuery(Query);
                            if (result)
                            {
                                lblMessage.ForeColor = Color.Green;
                                lblMessage.Text = "اطلاعات با موفقيت حذف شد";
                            }
                            else
                            {
                                lblMessage.ForeColor = Color.Red;
                                lblMessage.Text = "خطا در حذف اطلاعات.لطفا دوباره سعي نماييد";
                            }
                            FillDataGrid();
                        }
                    }
                    else
                    {
                        lblMessage.ForeColor = Color.Red;
                        lblMessage.Text = "امکان حذف وجود ندارد .این گروه هزینه شامل هزینه می باشد.";
                    }
                }
                catch (Exception)
                {
                    lblMessage.ForeColor = Color.Red;
                    lblMessage.Text = "لطفاً يک رکورد را براي حذف انتخاب کنيد";
                }
            }
        }

        private void btn_new_cost_group_Click(object sender, EventArgs e)
        {
            edit_cost_group.Is_Action_Edit = false;
            edit_cost_group frm_edit_cost_group=new  edit_cost_group();
            frm_edit_cost_group.ShowDialog();
        }

        private void btn_edit_cost_group_Click(object sender, EventArgs e)
        {
            if (dgv_cost_group.Rows.Count > 0)
            {
                Fill_EditCostGroup_Properties();
                edit_cost_group.Is_Action_Edit = true;
                edit_cost_group frm_edit_cost_group = new edit_cost_group();
                frm_edit_cost_group.ShowDialog();
            } 
        }

        private void cost_group_Activated(object sender, EventArgs e)
        {
            FillDataGrid();
        }

        private void btn_back_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void cost_group_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode==Keys.F3)
            {
                txt_search.Focus();
            }
            if (e.KeyCode==Keys.Escape)
            {
                this.Close();
            }
        }
    }
}
