private void dtgvhienthi_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            this.Enabled = false;
            if (i < 0)
            {
                return;
            }
            try
            {
                int sl = 0;

                for (int j = 0; j < hienthibaocao.ToArray().Length; j++)
                {
                    if (hienthibaocao[j].MaNhomHang == dtgvhienthi.Rows[i].Cells["MaNhomHang"].Value.ToString())
                    {
                        sl++;
                    }
                }

                Entities.BCDTTheoNhomHang[] a = new Entities.BCDTTheoNhomHang[sl];
                sl = 0;
                for (int j = 0; j < hienthibaocao.ToArray().Length; j++)
                {
                    if (hienthibaocao[j].MaNhomHang == dtgvhienthi.Rows[i].Cells["MaNhomHang"].Value.ToString())
                    {
                        a[sl] = hienthibaocao[j];
                        sl++;
                    }
                }
                frmBaoCaorpt b = new frmBaoCaorpt(a, truoc, sau);
                b.ShowDialog();
            }
            catch
            {
            }
            finally
            {
                this.Enabled = true;
            }
        }
 private void txttimkiem_TextChanged(object sender, EventArgs e)
 {
     try
     {
         if (rdbtimkiem3.Checked == true)
         {
             return;
         }
         if (txttimkiem.Text.Length == 0)
         {
             dtgvhienthi.DataSource = new Entities.BCDTTheoNhomHang[0];
             return;
         }
         int soluong = 0;
         if (hienthibaocao != null)
         {
             if (rdbtimkiem1.Checked == true)
             {
                 for (int i = 0; i < hienthibaocao.ToArray().Length; i++)
                 {
                     int kiemtra = hienthibaocao[i].MaNhomHang.ToString().ToUpper().IndexOf(txttimkiem.Text.ToUpper());
                     if (kiemtra >= 0)
                     {
                         soluong++;
                     }
                 }
                 if (soluong == 0)
                 {
                     dtgvhienthi.DataSource = new Entities.BCDTTheoNhomHang[0];
                     return;
                 }
                 Entities.BCDTTheoNhomHang[] hienthitheoid = new Entities.BCDTTheoNhomHang[soluong];
                 soluong = 0;
                 for (int i = 0; i < hienthibaocao.ToArray().Length; i++)
                 {
                     int kiemtra = hienthibaocao[i].MaNhomHang.ToString().ToUpper().IndexOf(txttimkiem.Text.ToUpper());
                     if (kiemtra >= 0)
                     {
                         hienthitheoid[soluong] = hienthibaocao[i];
                         soluong++;
                     }
                 }
                 dtgvhienthi.DataSource = hienthitheoid;
             }
             if (rdbtimkiem2.Checked == true)
             {
                 for (int i = 0; i < hienthibaocao.ToArray().Length; i++)
                 {
                     int kiemtra = hienthibaocao[i].TenNhomHang.ToString().ToUpper().IndexOf(txttimkiem.Text.ToUpper());
                     if (kiemtra >= 0)
                     {
                         soluong++;
                     }
                 }
                 if (soluong == 0)
                 {
                     dtgvhienthi.DataSource = new Entities.BCDTTheoNhomHang[0];
                     return;
                 }
                 Entities.BCDTTheoNhomHang[] hienthitheoma = new Entities.BCDTTheoNhomHang[soluong];
                 soluong = 0;
                 for (int i = 0; i < hienthibaocao.ToArray().Length; i++)
                 {
                     int kiemtra = hienthibaocao[i].TenNhomHang.ToString().ToUpper().IndexOf(txttimkiem.Text.ToUpper());
                     if (kiemtra >= 0)
                     {
                         hienthitheoma[soluong] = hienthibaocao[i];
                         soluong++;
                     }
                 }
                 dtgvhienthi.DataSource = hienthitheoma;
             }
             if (dtgvhienthi.RowCount > 0)
             {
                 tsslexcel.Enabled = tsslPdf.Enabled = tsslWord.Enabled = tsslchitiet.Enabled = true;
             }
             else
             {
                 tsslexcel.Enabled = tsslPdf.Enabled = tsslWord.Enabled = tsslchitiet.Enabled = false;
             }
         }
     }
     finally
     {
         fix();
     }
 }
        public void TongTienNhomHang(DateTime batdau, DateTime ketthuc)
        {
            try
            {
                List <Entities.BCDTTheoNhomHang> dtNhomHang = new List <Entities.BCDTTheoNhomHang>();
                // lay tat ca hang hoa trong hoa don.
                for (int i = 0; i < hdbanhang.Length; i++)
                {
                    DateTime hientai = hdbanhang[i].NgayBan;
                    if (hientai.Date >= batdau.Date && hientai.Date <= ketthuc.Date)
                    {
                        for (int j = 0; j < chitiethdbanhang.Length; j++)
                        {
                            if (chitiethdbanhang[j].MaHDBanHang.Equals(hdbanhang[i].MaHDBanHang))
                            {
                                string   tenHangHoa            = chitiethdbanhang[j].TenHangHoa;
                                string   maHangHoa             = chitiethdbanhang[j].MaHangHoa;
                                string   maHoaDonBanHang       = hdbanhang[i].MaHDBanHang;
                                DateTime ngayBan               = hdbanhang[i].NgayBan;
                                double   tienHang              = chitiethdbanhang[j].SoLuong * double.Parse(chitiethdbanhang[j].DonGia);
                                double   giaTriCK              = (tienHang * chitiethdbanhang[j].PhanTramChietKhau) / 100;
                                double   giaTriVAT             = ((tienHang - giaTriCK) * double.Parse(chitiethdbanhang[j].Thue)) / 100;
                                double   thanhTien             = tienHang - giaTriCK + giaTriVAT;
                                Entities.BCDTTheoNhomHang dtnh = new Entities.BCDTTheoNhomHang();
                                dtnh.MaHDBanHang   = maHoaDonBanHang;
                                dtnh.NgayBan       = ngayBan;
                                dtnh.MaHangHoa     = maHangHoa;
                                dtnh.TenHangHoa    = tenHangHoa;
                                dtnh.ThanhToanNgay = thanhTien;
                                dtNhomHang.Add(dtnh);
                            }
                        }
                    }
                }

                // gan tat ca hang hoa cho nhom cua no khi la hang hoa.
                List <Entities.BCDTTheoNhomHang> dtTemp = new List <Entities.BCDTTheoNhomHang>();
                foreach (Entities.BCDTTheoNhomHang item in dtNhomHang.ToArray())
                {
                    foreach (Entities.HangHoa hh in nv)
                    {
                        if (hh.MaHangHoa.Equals(item.MaHangHoa))
                        {
                            foreach (Entities.NhomHang nhTep in nh)
                            {
                                if (hh.MaNhomHangHoa.Equals(nhTep.MaNhomHang))
                                {
                                    item.MaNhomHang  = nhTep.MaNhomHang;
                                    item.TenNhomHang = nhTep.TenNhomHang;
                                    break;
                                }
                            }

                            dtTemp.Add(item);
                            break;
                        }
                    }
                }

                // gan tat ca hang hoa cho nhom cua no khi la goi hang.
                foreach (Entities.BCDTTheoNhomHang item in dtNhomHang.ToArray())
                {
                    foreach (Entities.GoiHang gh in goihang)
                    {
                        if (gh.MaGoiHang.Equals(item.MaHangHoa))
                        {
                            foreach (Entities.NhomHang nhTep in nh)
                            {
                                if (gh.MaNhomHang.Equals(nhTep.MaNhomHang))
                                {
                                    item.MaNhomHang  = nhTep.MaNhomHang;
                                    item.TenNhomHang = nhTep.TenNhomHang;
                                    break;
                                }
                            }

                            dtTemp.Add(item);
                            break;
                        }
                    }
                }

                // lay nhom Group trong List Hang hoa.
                List <string> groupList = new List <string>();
                foreach (Entities.BCDTTheoNhomHang item in dtTemp.ToArray())
                {
                    if (!groupList.Contains(item.MaNhomHang))
                    {
                        groupList.Add(item.MaNhomHang);
                    }
                }

                // tinh doanh thu theo tung nhom
                List <Entities.BCDTTheoNhomHang> dtHienThiList = new List <Entities.BCDTTheoNhomHang>();
                foreach (string group in groupList.ToArray())
                {
                    double thanhToanNgay = 0;
                    string tenNhom       = string.Empty;
                    string maNhom        = string.Empty;
                    foreach (Entities.BCDTTheoNhomHang item in dtTemp.ToArray())
                    {
                        if (group.Equals(item.MaNhomHang))
                        {
                            thanhToanNgay += item.ThanhToanNgay;
                            maNhom         = item.MaNhomHang;
                            tenNhom        = item.TenNhomHang;
                        }
                    }
                    Entities.BCDTTheoNhomHang temp = new Entities.BCDTTheoNhomHang();
                    temp.ThanhToanNgay = thanhToanNgay;
                    temp.MaNhomHang    = maNhom;
                    temp.TenNhomHang   = tenNhom;
                    dtHienThiList.Add(temp);
                }

                hienthibaocao = dtHienThiList;

                //////////////////////////////////////////////Mrk FIX
                List <Entities.BCDTTheoNhomHang> tem0 = new List <Entities.BCDTTheoNhomHang>();
                double tong0 = 0;
                for (int i = 0; i < dtHienThiList.ToArray().Length; i++)
                {
                    if (dtHienThiList[i] == null)
                    {
                        break;
                    }
                    tong0 += dtHienThiList[i].ThanhToanNgay;
                    tem0.Add(dtHienThiList[i]);
                }
                Entities.BCDTTheoNhomHang tem1 = new Entities.BCDTTheoNhomHang();
                tem1.ThanhToanNgay = tong0;
                tem1.TenNhomHang   = "Tổng Cộng: ";
                tem0.Add(tem1);

                //////////////////////////////////////////////////////
                dtgvhienthi.DataSource = tem0.ToArray();

                if (tem0.ToArray().Length > 0)
                {
                    tsslexcel.Enabled = tsslPdf.Enabled = tsslWord.Enabled = tsslchitiet.Enabled = true;
                }
                else
                {
                    tsslexcel.Enabled = tsslPdf.Enabled = tsslWord.Enabled = tsslchitiet.Enabled = false;
                }
                fix();
            }
            catch
            {
            }
        }
        public void TongTienNhomHang(DateTime batdau, DateTime ketthuc)
        {
            try
            {
                List<Entities.BCDTTheoNhomHang> dtNhomHang = new List<Entities.BCDTTheoNhomHang>();
                // lay tat ca hang hoa trong hoa don.
                for (int i = 0; i < hdbanhang.Length; i++)
                {
                    DateTime hientai = hdbanhang[i].NgayBan;
                    if (hientai.Date >= batdau.Date && hientai.Date <= ketthuc.Date)
                    {
                        for (int j = 0; j < chitiethdbanhang.Length; j++)
                        {
                            if (chitiethdbanhang[j].MaHDBanHang.Equals(hdbanhang[i].MaHDBanHang))
                            {
                                string tenHangHoa = chitiethdbanhang[j].TenHangHoa;
                                string maHangHoa = chitiethdbanhang[j].MaHangHoa;
                                string maHoaDonBanHang = hdbanhang[i].MaHDBanHang;
                                DateTime ngayBan = hdbanhang[i].NgayBan;
                                double tienHang = chitiethdbanhang[j].SoLuong * double.Parse(chitiethdbanhang[j].DonGia);
                                double giaTriCK = (tienHang * chitiethdbanhang[j].PhanTramChietKhau) / 100;
                                double giaTriVAT = ((tienHang - giaTriCK) * double.Parse(chitiethdbanhang[j].Thue)) / 100;
                                double thanhTien = tienHang - giaTriCK + giaTriVAT;
                                Entities.BCDTTheoNhomHang dtnh = new Entities.BCDTTheoNhomHang();
                                dtnh.MaHDBanHang = maHoaDonBanHang;
                                dtnh.NgayBan = ngayBan;
                                dtnh.MaHangHoa = maHangHoa;
                                dtnh.TenHangHoa = tenHangHoa;
                                dtnh.ThanhToanNgay = thanhTien;
                                dtNhomHang.Add(dtnh);
                            }
                        }
                    }
                }

                // gan tat ca hang hoa cho nhom cua no khi la hang hoa.
                List<Entities.BCDTTheoNhomHang> dtTemp = new List<Entities.BCDTTheoNhomHang>();
                foreach (Entities.BCDTTheoNhomHang item in dtNhomHang.ToArray())
                {
                    foreach (Entities.HangHoa hh in nv)
                    {
                        if (hh.MaHangHoa.Equals(item.MaHangHoa))
                        {
                            foreach (Entities.NhomHang nhTep in nh)
                            {
                                if (hh.MaNhomHangHoa.Equals(nhTep.MaNhomHang))
                                {
                                    item.MaNhomHang = nhTep.MaNhomHang;
                                    item.TenNhomHang = nhTep.TenNhomHang;
                                    break;
                                }
                            }

                            dtTemp.Add(item);
                            break;
                        }
                    }
                }

                // gan tat ca hang hoa cho nhom cua no khi la goi hang.
                foreach (Entities.BCDTTheoNhomHang item in dtNhomHang.ToArray())
                {
                    foreach (Entities.GoiHang gh in goihang)
                    {
                        if (gh.MaGoiHang.Equals(item.MaHangHoa))
                        {
                            foreach (Entities.NhomHang nhTep in nh)
                            {
                                if (gh.MaNhomHang.Equals(nhTep.MaNhomHang))
                                {
                                    item.MaNhomHang = nhTep.MaNhomHang;
                                    item.TenNhomHang = nhTep.TenNhomHang;
                                    break;
                                }
                            }

                            dtTemp.Add(item);
                            break;
                        }
                    }
                }

                // lay nhom Group trong List Hang hoa.
                List<string> groupList = new List<string>();
                foreach (Entities.BCDTTheoNhomHang item in dtTemp.ToArray())
                {
                    if (!groupList.Contains(item.MaNhomHang))
                    {
                        groupList.Add(item.MaNhomHang);
                    }
                }

                // tinh doanh thu theo tung nhom
                List<Entities.BCDTTheoNhomHang> dtHienThiList = new List<Entities.BCDTTheoNhomHang>();
                foreach (string group in groupList.ToArray())
                {
                    double thanhToanNgay = 0;
                    string tenNhom = string.Empty;
                    string maNhom = string.Empty;
                    foreach (Entities.BCDTTheoNhomHang item in dtTemp.ToArray())
                    {
                        if (group.Equals(item.MaNhomHang))
                        {
                            thanhToanNgay += item.ThanhToanNgay;
                            maNhom = item.MaNhomHang;
                            tenNhom = item.TenNhomHang;
                        }
                    }
                    Entities.BCDTTheoNhomHang temp = new Entities.BCDTTheoNhomHang();
                    temp.ThanhToanNgay = thanhToanNgay;
                    temp.MaNhomHang = maNhom;
                    temp.TenNhomHang = tenNhom;
                    dtHienThiList.Add(temp);
                }

                hienthibaocao = dtHienThiList;

                //////////////////////////////////////////////Mrk FIX
                List<Entities.BCDTTheoNhomHang> tem0 = new List<Entities.BCDTTheoNhomHang>();
                double tong0 = 0;
                for (int i = 0; i < dtHienThiList.ToArray().Length; i++)
                {
                    if (dtHienThiList[i] == null)
                    {
                        break;
                    }
                    tong0 += dtHienThiList[i].ThanhToanNgay;
                    tem0.Add(dtHienThiList[i]);
                }
                Entities.BCDTTheoNhomHang tem1 = new Entities.BCDTTheoNhomHang();
                tem1.ThanhToanNgay = tong0;
                tem1.TenNhomHang = "Tổng Cộng: ";
                tem0.Add(tem1);

                //////////////////////////////////////////////////////
                dtgvhienthi.DataSource = tem0.ToArray();

                if (tem0.ToArray().Length > 0)
                {
                    tsslexcel.Enabled = tsslPdf.Enabled = tsslWord.Enabled = tsslchitiet.Enabled = true;
                }
                else
                {
                    tsslexcel.Enabled = tsslPdf.Enabled = tsslWord.Enabled = tsslchitiet.Enabled = false;
                }
                fix();
            }
            catch
            {
            }
        }
        private void txttimkiem_TextChanged(object sender, EventArgs e)
        {
            try
            {
                if (rdbtimkiem3.Checked == true)
                {
                    return;
                }
                if (txttimkiem.Text.Length == 0)
                {
                    dtgvhienthi.DataSource = new Entities.BCDTTheoNhomHang[0];
                    return;
                }
                int soluong = 0;
                if (hienthibaocao != null)
                {
                    if (rdbtimkiem1.Checked == true)
                    {
                        for (int i = 0; i < hienthibaocao.ToArray().Length; i++)
                        {
                            int kiemtra = hienthibaocao[i].MaNhomHang.ToString().ToUpper().IndexOf(txttimkiem.Text.ToUpper());
                            if (kiemtra >= 0)
                            {
                                soluong++;
                            }
                        }
                        if (soluong == 0)
                        {
                            dtgvhienthi.DataSource = new Entities.BCDTTheoNhomHang[0];
                            return;
                        }
                        Entities.BCDTTheoNhomHang[] hienthitheoid = new Entities.BCDTTheoNhomHang[soluong];
                        soluong = 0;
                        for (int i = 0; i < hienthibaocao.ToArray().Length; i++)
                        {
                            int kiemtra = hienthibaocao[i].MaNhomHang.ToString().ToUpper().IndexOf(txttimkiem.Text.ToUpper());
                            if (kiemtra >= 0)
                            {
                                hienthitheoid[soluong] = hienthibaocao[i];
                                soluong++;
                            }
                        }
                        dtgvhienthi.DataSource = hienthitheoid;
                    }
                    if (rdbtimkiem2.Checked == true)
                    {
                        for (int i = 0; i < hienthibaocao.ToArray().Length; i++)
                        {
                            int kiemtra = hienthibaocao[i].TenNhomHang.ToString().ToUpper().IndexOf(txttimkiem.Text.ToUpper());
                            if (kiemtra >= 0)
                            {
                                soluong++;
                            }
                        }
                        if (soluong == 0)
                        {
                            dtgvhienthi.DataSource = new Entities.BCDTTheoNhomHang[0];
                            return;
                        }
                        Entities.BCDTTheoNhomHang[] hienthitheoma = new Entities.BCDTTheoNhomHang[soluong];
                        soluong = 0;
                        for (int i = 0; i < hienthibaocao.ToArray().Length; i++)
                        {
                            int kiemtra = hienthibaocao[i].TenNhomHang.ToString().ToUpper().IndexOf(txttimkiem.Text.ToUpper());
                            if (kiemtra >= 0)
                            {
                                hienthitheoma[soluong] = hienthibaocao[i];
                                soluong++;
                            }
                        }
                        dtgvhienthi.DataSource = hienthitheoma;

                    }
                    if (dtgvhienthi.RowCount > 0)
                    {
                        tsslexcel.Enabled = tsslPdf.Enabled = tsslWord.Enabled = tsslchitiet.Enabled = true;
                    }
                    else
                    {
                        tsslexcel.Enabled = tsslPdf.Enabled = tsslWord.Enabled = tsslchitiet.Enabled = false;
                    }
                }
            }
            finally
            {
                fix();
            }
        }
        private void dtgvhienthi_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            this.Enabled = false;
            if (i < 0)
                return;
            try
            {
                int sl = 0;

                for (int j = 0; j < hienthibaocao.ToArray().Length; j++)
                {
                    if (hienthibaocao[j].MaNhomHang == dtgvhienthi.Rows[i].Cells["MaNhomHang"].Value.ToString())
                    {
                        sl++;
                    }
                }

                Entities.BCDTTheoNhomHang[] a = new Entities.BCDTTheoNhomHang[sl];
                sl = 0;
                for (int j = 0; j < hienthibaocao.ToArray().Length; j++)
                {
                    if (hienthibaocao[j].MaNhomHang == dtgvhienthi.Rows[i].Cells["MaNhomHang"].Value.ToString())
                    {
                        a[sl] = hienthibaocao[j];
                        sl++;
                    }
                }
                frmBaoCaorpt b = new frmBaoCaorpt(a, truoc, sau);
                b.ShowDialog();
            }
            catch
            {
            }
            finally
            {
                this.Enabled = true;
            }
        }