using System;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using Transport.BLL;

namespace Transport
{
    public partial class company: Office2007Form
    {
        public company()
        {
            InitializeComponent();
        }

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

                //********************************************************
                // تنظیم شناسه شرکت
                edit_company.company_id= dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[0].Value.ToString();

                // تنظیم شناسه شهر
                edit_company.city_id= dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[1].Value.ToString();

                // تنظیم نام شرکت
                edit_company.company_name= dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[3].Value.ToString();

                // تنظیم نام شرکت
                edit_company.company_address = dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[4].Value.ToString();

                // تنظیم شماره تماس 1 شرکت
                edit_company.company_tel1 = dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[5].Value.ToString();

                // تنظیم شماره تماس 2 شرکت
                edit_company.company_tel2 = dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[6].Value.ToString();

                



                // تنظیم نام شرکت
                edit_company.company_max_fix_weight = dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[7].Value.ToString();

                // تنظیم نام شرکت
                edit_company.company_base_price = dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[8].Value.ToString();

                // تنظیم شماره تماس 1 شرکت
                edit_company.company_addition_price = dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[9].Value.ToString();

                // تنظیم شماره تماس 2 شرکت
                edit_company.company_agency_portion = dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[10].Value.ToString();



                // تنظیم نام شرکت
                edit_company.company_max_fix_weight2 = dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[11].Value.ToString();

                // تنظیم نام شرکت
                edit_company.company_base_price2 = dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[12].Value.ToString();

                // تنظیم شماره تماس 1 شرکت
                edit_company.company_addition_price2 = dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[13].Value.ToString();

                // تنظیم شماره تماس 2 شرکت
                edit_company.company_agency_portion2 = dgv_company.Rows[dgv_company.CurrentRow.Index].Cells[14].Value.ToString();

               
            }
        }

        //   متد پر کردن اطلاعات جدول شرکت ها
        public void FillDataGrid()
        {
            DataTable ResultTable = bll_company.SelectAllRecord("tbl_company");

            dgv_company.DataSource = ResultTable;

            dgv_company.Columns[0].HeaderText = "شناسه شرکت";
            dgv_company.Columns[1].HeaderText = "شناسه شهرستان";
            dgv_company.Columns[2].HeaderText = "شهرستان";
            dgv_company.Columns[3].HeaderText = "نام شرکت";
            dgv_company.Columns[4].HeaderText = "آدرس شرکت";
            dgv_company.Columns[5].HeaderText = "شماره تماس 1";
            dgv_company.Columns[6].HeaderText = "شماره تماس 2";
            

            dgv_company.Columns[7].HeaderText = "ورودی - حداکثر وزن قیمت ثابت";
            dgv_company.Columns[8].HeaderText = "ورودی - قیمت پایه";
            dgv_company.Columns[9].HeaderText = "ورودی - قیمت وزن اضافه";
            dgv_company.Columns[10].HeaderText = "ورودی - سهم نمایندگی";

            dgv_company.Columns[11].HeaderText = "خروجی - حداکثر وزن قیمت ثابت";
            dgv_company.Columns[12].HeaderText = "خروجی - قیمت پایه";
            dgv_company.Columns[13].HeaderText = "خروجی - قیمت وزن اضافه";
            dgv_company.Columns[14].HeaderText = "خروجی - سهم نمایندگی";

            dgv_company.Columns[0].Visible = false;
            dgv_company.Columns[1].Visible = false;
            special_class.setRowNumber(dgv_company);
        }

        // متد بارگذاری فرم شرکت ها
        private void company_Load(object sender, EventArgs e)
        {
            FillDataGrid();
            btn_new_company.Focus();
        }

        // متد دکمه برگشت
        private void btn_back_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        // متد دکمه اضافه کردن شرکت جدید
        private void btn_new_company_Click(object sender, EventArgs e)
        {
            edit_company.Is_Action_Edit = false;
            edit_company frm_edit_company = new edit_company();
            frm_edit_company.ShowDialog();
        }

        // متد دکمه ویرایش شرکت
        private void btn_edit_company_Click(object sender, EventArgs e)
        {
            if (dgv_company.Rows.Count>0)
            {
                Fill_EditCompany_Properties();
                edit_company.Is_Action_Edit = true;
                edit_company frm_edit_company = new edit_company();
                frm_edit_company.ShowDialog();
            } 
        }

        // متد رویداد سل اینتر دیتاگرید شرکت ها 
        private void dgv_company_CellEnter(object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
        {
            Fill_EditCompany_Properties();
        }

        // متد دکمه حذف شرکت
        private void btn_delete_Click(object sender, EventArgs e)
        {
            if (dgv_company.Rows.Count > 0)
            {
                try
                {
                    string Company_ID = lbl_company_id.Text;


                    if (!bll_company.checkRecordExist("tbl_transport","company_id",Company_ID))
                    {
                        if (FMessegeBox.FarsiMessegeBox.Show("آیا از حذف اطلاعات این شرکت مطمئن هستید ؟", "تایید حذف اطلاعات", FMessegeBox.FMessegeBoxButtons.YesNo, FMessegeBox.FMessegeBoxIcons.Question) == DialogResult.Yes)
                        {

                            string Query = "DELETE FROM tbl_company WHERE company_id=" + 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 company_Activated(object sender, EventArgs e)
        {
            FillDataGrid();
        }


        // متغیری برای نگهداری رشته پرس و جوی جستجو
        public static string SQLQueryParameter = "";
        
        // رویداد تکست چنج فیلد جستجوی اطلاعات
        private void txt_search_TextChanged(object sender, EventArgs e)
        {
            string wherePart = string.Format(" WHERE tbl_city.city_name like '%{0}%' or company_name like '%{0}%' or company_tel1 like '%{0}%' or company_tel2 like '%{0}%' or company_address like '%{0}%' ", txt_search.Text);
            SQLQueryParameter= "SELECT tbl_company.company_id, tbl_city.city_id,tbl_city.city_name, tbl_company.company_name, tbl_company.company_address, tbl_company.company_tel1, tbl_company.company_tel2, tbl_company.company_max_fix_weight, tbl_company.company_base_price, tbl_company.company_addition_price, tbl_company.company_agency_portion"
                                  + " FROM tbl_city INNER JOIN tbl_company ON tbl_city.city_id = tbl_company.company_city_id " + wherePart;
            
            
            dgv_company.DataSource = bll_company.search_in_company(SQLQueryParameter);
            special_class.setRowNumber(dgv_company);
        }

        //  متد رویداد کی داوون فرو شرکت ها
        private void company_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.F3)
            {
                txt_search.Focus();
            }
        }
    }
}
