//nút thống kê theo kì
        private void metroButton2_Click(object sender, EventArgs e)
        {
            xuatkhobus bus = new xuatkhobus();

            danhsachthongketheokidgv.DataSource = bus.thongketheongay(dateTimePicker1.Value, dateTimePicker3.Value);
            tinhthongketheoky(textBox1);
        }
        //nhập vào xuất kho
        private void button15_Click(object sender, EventArgs e)
        {
            XUATKHO entity = new XUATKHO();

            entity.MATONKHO    = Int32.Parse(matonkholbl.Text);
            entity.SOLUONGXUAT = (int)numericUpDown1.Value;
            entity.NGAYXUAT    = dateTimePicker2.Value.Date;
            entity.DONGIAXUAT  = common.ktdecimal(textBox5.Text);
            entity.MANV        = currentuser.user;
            xuatkhobus bus     = new xuatkhobus();
            bool       success = bus.add(entity);

            if (success)
            {
                errorProvider1.Clear();
                common.successorerror(success);
                xuatdgv.DataSource = bus.list();

                xuatdgv.Columns[0].HeaderText = "Số thứ tự";
                xuatdgv.Columns[1].HeaderText = "Mã tồn kho";
                xuatdgv.Columns[2].HeaderText = "Số lượng xuất";
                xuatdgv.Columns[3].HeaderText = "Ngày xuất";
                xuatdgv.Columns[4].HeaderText = "Đơn giá xuất";
                xuatdgv.Columns[5].HeaderText = "Mã nhân viên";

                xuatdgv.Columns["NHANVIEN"].Visible = false;
                xuatdgv.Columns["TONKHO"].Visible   = false;
            }
            else
            {
                ViewErrors(bus.validatedictionary);
            }
        }
        //nút thống kê theo sản phẩm trong kì
        private void metroButton1_Click(object sender, EventArgs e)
        {
            xuatkhobus bus = new xuatkhobus();

            danhsachxuatkhodgv.DataSource = bus.timkiem1(textBox4.Text, dateTimePicker2.Value, dateTimePicker4.Value);
            tinhthongketheosp(txttongsoluong, txttonggiaxuat);
        }
        //tìm kiếm theo ngày
        private void btntimkiemtheongay_Click(object sender, EventArgs e)
        {
            xuatkhobus bus           = new xuatkhobus();
            int        ngay          = dateTimePicker2.Value.Date.Day;
            int        thang         = dateTimePicker2.Value.Date.Month;
            int        nam           = dateTimePicker2.Value.Date.Year;
            var        checkedbutton = pnthongkexuatkho.Controls.OfType <RadioButton>().FirstOrDefault(r => r.Checked);

            if (checkedbutton == null)//nếu không chọn radio button
            {
                danhsachxuatkhodgv.DataSource = bus.timkiemtheongay(dateTimePicker2.Value.Date);
            }
            else// nếu chọn radio button
            {
                if (checkedbutton.Text.Equals("Ngày"))
                {
                    danhsachxuatkhodgv.DataSource = bus.timkiemtheodieukien(ngay, checkedbutton.Text);
                }
                else
                {
                    if (checkedbutton.Text.Equals("Tháng"))
                    {
                        danhsachxuatkhodgv.DataSource = bus.timkiemtheodieukien(thang, checkedbutton.Text);
                    }
                    else
                    {
                        danhsachxuatkhodgv.DataSource = bus.timkiemtheodieukien(nam, checkedbutton.Text);
                    }
                }
            }
        }
 //tìm theo mã tồn kho và mã xuất kho
 private void textBox4_KeyUp(object sender, KeyEventArgs e)
 {
     if (e.KeyData == Keys.Enter)
     {
         xuatkhobus bus = new xuatkhobus();
         danhsachxuatkhodgv.DataSource = bus.timkiem(textBox4.Text);
     }
 }
        public void BindAutoCompleteList()
        {
            AutoCompleteStringCollection acDataSource = new AutoCompleteStringCollection();
            xuatkhobus bus = new xuatkhobus();

            acDataSource.AddRange(bus.findsanpham().ToArray());

            textBox4.AutoCompleteMode         = AutoCompleteMode.SuggestAppend;
            textBox4.AutoCompleteSource       = AutoCompleteSource.CustomSource;
            textBox4.AutoCompleteCustomSource = acDataSource;
        }
        public void loaddulieulenpie()
        {
            tonkhobus  bus  = new tonkhobus();
            xuatkhobus bus1 = new xuatkhobus();
            DateTime   dt   = DateTime.Now;

            chart2.Series[0].Points.AddXY("Tổng giá nhập", bus.tonggianhaptheonam(dateTimePicker1.Value.Date.Year));
            decimal?a = bus1.tonggiaxuattheonam(dt.Year);

            chart2.Series[0].Points.AddXY("Tổng giá xuất", bus1.tonggiaxuattheonam(dateTimePicker1.Value.Date.Year));
        }
        //button lấy dữ liệu xuất kho
        private void button14_Click(object sender, EventArgs e)
        {
            xuatkhobus bus = new xuatkhobus();

            xuatdgv.DataSource = bus.list();
            xuatdgv.Columns["STT"].HeaderText         = "Số thứ tự";
            xuatdgv.Columns["MATONKHO"].HeaderText    = "Mã tồn kho";
            xuatdgv.Columns["SOLUONGXUAT"].HeaderText = "Số lượng xuất";
            xuatdgv.Columns["NGAYXUAT"].HeaderText    = "Ngày xuất";
            xuatdgv.Columns["DONGIAXUAT"].HeaderText  = "Đơn giá xuất";
            xuatdgv.Columns["MANV"].HeaderText        = "Mã nhân viên";
            xuatdgv.Columns["NHANVIEN"].Visible       = false;
            xuatdgv.Columns["TONKHO"].Visible         = false;
        }
        private void metroButton3_Click(object sender, EventArgs e)
        {
            panel1.Visible = true;
            chart1.Visible = false;
            chart2.Visible = false;
            tonkhobus  bus  = new tonkhobus();
            xuatkhobus bus1 = new xuatkhobus();
            DateTime   dt   = DateTime.Now;

            lbltonggianhaphomnay.Text = bus.tonggianhaptheongay(dt.Date).ToString();
            lbltonggiaxuathomnay.Text = bus1.tonggiaxuattheongay(dt.Date).ToString();
            lbltonggianhaphomqua.Text = bus.tonggianhaptheongay(dt.AddDays(-1).Date).ToString();
            lbltonggiaxuathomqua.Text = bus1.tonggiaxuattheongay(dt.AddDays(-1).Date).ToString();
        }
        //xóa xuất kho
        private void xoaxuatkho(object sender, EventArgs args)
        {
            XUATKHO entity = new XUATKHO();

            entity.STT         = (int)xuatdgv.SelectedCells[0].Value;
            entity.SOLUONGXUAT = (int)xuatdgv.SelectedCells[2].Value;
            entity.MATONKHO    = (int)xuatdgv.SelectedCells[1].Value;
            xuatkhobus bus    = new xuatkhobus();
            bool       delete = bus.delete(entity);

            common.successorerror(delete);
            if (delete)
            {
                xuatdgv.DataSource = bus.list();
            }
            else
            {
            }
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            xuatkhobus bus = new xuatkhobus();

            if (textBox1.Text.Equals(""))
            {
            }
            else
            {
                xuatdgv.DataSource = bus.timxuatkho(textBox1.Text);
                xuatdgv.Columns["STT"].HeaderText         = "Số thứ tự";
                xuatdgv.Columns["MATONKHO"].HeaderText    = "Mã tồn kho";
                xuatdgv.Columns["SOLUONGXUAT"].HeaderText = "Số lượng xuất";
                xuatdgv.Columns["NGAYXUAT"].HeaderText    = "Ngày xuất";
                xuatdgv.Columns["DONGIAXUAT"].HeaderText  = "Đơn giá xuất";
                xuatdgv.Columns["MANV"].HeaderText        = "Mã nhân viên";
                xuatdgv.Columns["NHANVIEN"].Visible       = false;
                xuatdgv.Columns["TONKHO"].Visible         = false;
            }
        }
        //button sửa xuất kho
        private void button18_Click(object sender, EventArgs e)
        {
            button18.Enabled = false;
            XUATKHO entity = new XUATKHO();

            entity.STT         = (int)xuatdgv.SelectedCells[0].Value;
            entity.MATONKHO    = Int32.Parse(matonkholbl.Text);
            entity.SOLUONGXUAT = (int)numericUpDown1.Value - soluongxuathientai;

            entity.NGAYXUAT   = dateTimePicker2.Value.Date;
            entity.DONGIAXUAT = common.ktdecimal(textBox5.Text);
            entity.MANV       = currentuser.user;
            xuatkhobus bus    = new xuatkhobus();
            bool       update = bus.update(entity, soluongxuathientai);

            common.successorerror(update);
            if (update)
            {
                errorProvider1.Clear();
                xuatdgv.DataSource = bus.find((int)xuatdgv.SelectedCells[0].Value);

                xuatdgv.Columns[0].HeaderText = "Số thứ tự";
                xuatdgv.Columns[1].HeaderText = "Mã tồn kho";
                xuatdgv.Columns[2].HeaderText = "Số lượng xuất";
                xuatdgv.Columns[3].HeaderText = "Ngày xuất";
                xuatdgv.Columns[4].HeaderText = "Đơn giá xuất";
                xuatdgv.Columns[5].HeaderText = "Mã nhân viên";

                xuatdgv.Columns["NHANVIEN"].Visible = false;
                xuatdgv.Columns["TONKHO"].Visible   = false;

                matonkholbl.Text     = "Mã tồn kho";
                numericUpDown1.Value = 0;
                textBox5.Clear();
                dateTimePicker2.ResetText();
            }
            else
            {
                ViewErrors(bus.validatedictionary);
            }
        }
        public void loaddulieulenchart()
        {
            tonkhobus  bus  = new tonkhobus();
            xuatkhobus bus1 = new xuatkhobus();


            Axis XA = chart1.ChartAreas[0].AxisX;

            List <DateTime> dates = new List <DateTime>();

            for (int i = 1; i <= 12; i++)
            {
                dates.Add(new DateTime(dateTimePicker1.Value.Date.Year, i, 1));
            }

            chart1.Series["Tổng giá nhập"].XValueType = ChartValueType.Date;
            chart1.Series["Tổng giá xuất"].XValueType = ChartValueType.Date;


            XA.MajorGrid.Enabled = false;                  // no gridlines
            XA.LabelStyle.Format = "MMM";                  // show months as names

            XA.IntervalType = DateTimeIntervalType.Months; // show axis labels..
            XA.Interval     = 1;

            int y    = 1;
            int year = dateTimePicker1.Value.Date.Year;

            foreach (DateTime d in dates)
            {
                chart1.Series["Tổng giá nhập"].Points.AddXY(d, bus.tonggianhaptheothang(y, year));
                chart1.Series["Tổng giá xuất"].Points.AddXY(d, bus1.tonggiaxuattheothang(y, year));
                y++;
            }
            if (y == 12)
            {
                y = 1;
            }
        }