예제 #1
0
        private void btnThem_Click(object sender, EventArgs e)
        {
            if (this.txtMasp.Text == string.Empty || this.txtSoLuong.Text == string.Empty)
            {
                MessageBox.Show("Bạn chưa điền đầy đủ thông tin !!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                this.txtMasp.Focus();
                return;
            }
            if (!SanPhamBUS.KiemTraMaSPTonTai(this.txtMasp.Text))
            {
                MessageBox.Show("Mã sản phẩm không tồn tại !!!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.txtMasp.Focus();
                return;
            }

            if (!KiemTraSLMasp(this.txtMasp.Text, Convert.ToInt32(this.txtSoLuong.Text)))
            {
                this.txtSoLuong.Focus();
                return;
            }

            if (!KiemTraMaspTonTaiTrongCTHD(this.txtMasp.Text))
            {
                CTHoaDonBanHangBUS.ThemCTHoaDon(new CTHOADONBANHANG
                {
                    MAHD      = hd.MAHD,
                    MASP      = this.txtMasp.Text,
                    SOLUONG   = Convert.ToInt32(this.txtSoLuong.Text.Trim()),
                    DONGIA    = TinhDonGia(this.txtMasp.Text, Convert.ToInt32(this.txtSoLuong.Text)),
                    DVT       = sp.Where(p => p.MASP == this.txtMasp.Text).FirstOrDefault().DVT,
                    TRANGTHAI = true
                });
                MessageBox.Show("Thêm sản phẩm thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                loadDSCTHD(hd.MAHD);
                CapNhatSoLuongSanPham(this.txtMasp.Text, Convert.ToInt32(this.txtSoLuong.Text), 0);
                hd.TONGTIEN = lstcthd.Sum(p => p.DONGIA);
                HoaDonBanHangBUS.CapNhatHoaDon(hd);
                if (CongNoBUS.LayDanhSachCongNo().Where(p => p.MAKH == this.lblMaKH.Text && p.MAHD == hd.MAHD && p.TRANGTHAI == true).FirstOrDefault() != null)
                {
                    CapNhatThongTienCongNo();
                }
                this.dangThayDoiCTHD = false;
                loadThongTinHD(hd.MAHD);
                Reset();
                string lsth = "[" + DateTime.Now.ToString("dd/MM/yyyy-h:m:s") + "] " + this.manv + " đã thêm sản phẩm " + this.txtMasp.Text + " vào chi tiết hóa đơn " + hd.MAHD;
                LichSuHeThongBUS.ThemLSHT(new LICHSUHETHONG
                {
                    NGAYTAO       = DateTime.Now.Date,
                    NV_THAOTAC    = this.manv,
                    VITRI_THAOTAC = this.vitrithaotac,
                    GHICHU        = lsth
                });
            }
            else
            {
                MessageBox.Show("Mã sản phẩm đã tồn tại !!!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                this.txtMasp.Focus();
                return;
            }
        }
        private void frmXuatHoaDonBanHang_Load(object sender, EventArgs e)
        {
            HoaDonBanHang report = new HoaDonBanHang();

            report.SetDataSource(HoaDonBanHangBUS.XuatHoaDonBanHang(MaHD));
            crvHoaDon.ReportSource = report;
        }
예제 #3
0
        private void Load_AllMaHD()
        {
            HoaDonBanHangBUS HD_bus  = new HoaDonBanHangBUS();
            List <int>       List_HD = HD_bus.LoadMaHD();

            XoaHoaDon_comboBox.DataSource = List_HD;
        }
 private void dgvDanhSach_KeyDown(object sender, KeyEventArgs e)
 {
     tsbtnXoa.Enabled      = true;
     dgvChiTiet.DataSource = HoaDonBanHangBUS.LoadDSCTHoaDon(dgvDanhSach.CurrentRow.Cells[0].Value.ToString());
     Custom2();
     dgvChiTiet.ClearSelection();
 }
 private void frmHoaDon_Load(object sender, EventArgs e)
 {
     tsbtnXoa.Enabled       = false;
     dgvDanhSach.DataSource = HoaDonBanHangBUS.LoadDSHoaDon();
     Custom1();
     dgvDanhSach.ClearSelection();
 }
예제 #6
0
 private void btnLuu_Click(object sender, EventArgs e)
 {
     if (this.dtNgayGiao.Value == hd.NGAYGIAO)
     {
         MessageBox.Show("Bạn chưa thay đổi dữ liệu 'Ngày giao'", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         return;
     }
     hd.NGAYGIAO = dtNgayGiao.Value;
     if (HoaDonBanHangBUS.CapNhatHoaDon(hd))
     {
         MessageBox.Show("Cập nhật ngày giao thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
         loadThongTinHD(hd.MAHD);
         this.dangThayDoiNgayGiao = false;
         string lsth = "[" + DateTime.Now.ToString("dd/MM/yyyy-h:m:s") + "] " + this.manv + " đã cập nhật ngày giao " + this.lblMaHD.Text;
         LichSuHeThongBUS.ThemLSHT(new LICHSUHETHONG
         {
             NGAYTAO       = DateTime.Now.Date,
             NV_THAOTAC    = this.manv,
             VITRI_THAOTAC = this.vitrithaotac,
             GHICHU        = lsth
         });
     }
     else
     {
         MessageBox.Show("Cập nhật ngày giao thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
 }
        private void btnThemSP_Click(object sender, EventArgs e)
        {
            int j = 0;
            ChiTietHoaDonBanHangDTO CT = new ChiTietHoaDonBanHangDTO();

            CT.MaSanPham = txtMaSP.Text;
            if (txtSoLuong.Text == "")
            {
                CT.SoLuong = 0;
            }
            else
            {
                CT.SoLuong = Int32.Parse(txtSoLuong.Text);
            }
            if (HoaDonBanHangBUS.KiemTra(CT) != "")
            {
                MessageBox.Show(string.Format("{0}", HoaDonBanHangBUS.KiemTra(CT)), "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (txtTenSP.Text != "")
            {
                // Đưa giá trị vào DataGridView.
                if (dgvDanhSach.Rows.Count > 0)
                {
                    foreach (DataGridViewRow row in dgvDanhSach.Rows)
                    {
                        if (txtMaSP.Text == dgvDanhSach.Rows[j].Cells[0].Value.ToString())
                        {
                            dgvDanhSach.Rows[j].Cells[2].Value = (Int32.Parse(dgvDanhSach.Rows[j].Cells[2].Value.ToString()) + Int32.Parse(txtSoLuong.Text)).ToString();
                            break;
                        }
                        else if (j == dgvDanhSach.Rows.Count - 1)
                        {
                            dgvDanhSach.Rows.Add();
                            dgvDanhSach.Rows[i].Cells[0].Value = txtMaSP.Text;
                            dgvDanhSach.Rows[i].Cells[1].Value = txtTenSP.Text;
                            dgvDanhSach.Rows[i].Cells[2].Value = txtSoLuong.Text;
                            dgvDanhSach.Rows[i].Cells[3].Value = txtGiaBan.Text;
                            i++;
                            break;
                        }
                        j++;
                    }
                }
                else
                {
                    dgvDanhSach.Rows.Add();
                    dgvDanhSach.Rows[i].Cells[0].Value = txtMaSP.Text;
                    dgvDanhSach.Rows[i].Cells[1].Value = txtTenSP.Text;
                    dgvDanhSach.Rows[i].Cells[2].Value = txtSoLuong.Text;
                    dgvDanhSach.Rows[i].Cells[3].Value = txtGiaBan.Text;
                    i++;
                }
                // Tính tổng tiền.
                TongTien();
            }
        }
예제 #8
0
        void LoadDSSP()
        {
            lstSanPham = SanPhamBUS.LayDanhSachSanPham();
            lstHoaDon  = HoaDonBanHangBUS.LayDSHoaDon();
            var kq = from sp in lstSanPham
                     select sp;

            this.dgvDSSanPham.AutoGenerateColumns = false;
            this.dgvDSSanPham.DataSource          = kq.ToList();
        }
예제 #9
0
        private void btn_LapHoaDon_Click(object sender, EventArgs e)
        {
            HOADONBANHANG hd = new HOADONBANHANG();

            hd.TenKH    = edt_TenKH.Text.ToString();
            hd.NgayLap  = DateTime.Now;
            hd.TongTien = 0;
            HoaDonBanHangBUS.ThemHoaDon(hd, ref this.currentMaHD);
            this.EnableAll();
        }
예제 #10
0
        private void XoaHoaDon_comboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            HoaDonBanHangBUS HD_bus = new HoaDonBanHangBUS();
            ChiTietHoaDonBUS CT_bus = new ChiTietHoaDonBUS();
            KhachHangBUS     KH_bus = new KhachHangBUS();

            // Đọc thông tin hóa đơn và tìm thông tin khách hàng với MaKH trong hóa đơn
            HoaDonBanHangDTO HD = HD_bus.LoadTTHoaDon(Int32.Parse(XoaHoaDon_comboBox.Text));
            KhachHangDTO     KH = KH_bus.TimKhachHangTheoMaKH(HD.maKH);

            // Đổ các thông tin dữ liệu vào phần textbox
            MaDonXoaHD_textBox.Text        = HD.maHoaDon.ToString();
            NgayLapXoaHD_textBox.Text      = HD.ngayLap.ToString();
            NgayGiaoHangXoaHD_textBox.Text = HD.ngayGiao.ToString();

            HoTenXoaHD_textBox.Text  = KH.tenKH;
            DiaChiXoaHD_textBox.Text = KH.diaChiKH;
            EmailXoaHD_textBox.Text  = KH.emailKH;

            MaNVGiaoXoaHD_textBox.Text     = HD.maNVGiao.ToString();
            MaNVLapXoaHD_textBox.Text      = HD.maNVLap.ToString();
            TongTienHoaDonXoa_textBox.Text = HD.tongTien.ToString();
            if (HD.xacNhanDaThanhToan == false)
            {
                TrangThaiHoaDon_textBox.Text = "Chưa Thanh Toán";
            }
            else
            {
                TrangThaiHoaDon_textBox.Text = "Đã Thanh Toán";
            }

            //Đọc các chi tiết hóa đơn của hóa đơn
            List <ChiTietHoaDonDTO> List_CT = CT_bus.LoadCTHoaDon(HD.maHoaDon);

            // Tạo datatable để đổ data từ chi tiết hóa đơn từ giỏ hàng vào
            DataTable source = new DataTable();

            source.Columns.Add(new DataColumn("MA HANG", Type.GetType("System.Int32")));
            source.Columns.Add(new DataColumn("TEN HANG", Type.GetType("System.String")));
            source.Columns.Add(new DataColumn("SO LUONG MUA", Type.GetType("System.Int32")));
            source.Columns.Add(new DataColumn("DON GIA", Type.GetType("System.Single")));

            // Thêm từng dòng dữ liệu vào datatable
            foreach (ChiTietHoaDonDTO i in List_CT)
            {
                DataRow temp = source.NewRow();
                temp["MA HANG"]      = i.maHang;
                temp["TEN HANG"]     = i.TenHang;
                temp["SO LUONG MUA"] = i.soLuong;
                temp["DON GIA"]      = i.DonGia;
                source.Rows.Add(temp);
            }

            ChiTietHoaDonXoaHD_dataGridView.DataSource = source;
        }
예제 #11
0
        void loadThongTinHD(string mahd)
        {
            lstThongTinHD = HoaDonBanHangBUS.LayThongTinCuaHD(mahd);
            var hd = lstThongTinHD.FirstOrDefault();

            this.lblMaHD.Text     = hd.MAHD;
            this.lblMaKH.Text     = hd.MAKH.ToString();
            this.lblTenKH.Text    = KhachHangBUS.LayThongTin(hd.MAKH).TENKH;
            this.lblTongTien.Text = Convert.ToInt32(hd.TONGTIEN).ToString("#,##0") + " VND";
            this.dtNgayGiao.Value = hd.NGAYGIAO.Value;
        }
예제 #12
0
        private void btnBH_Luu_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Lưu hóa đơn " + txtBH_MaHD.Text + " thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            HoaDonBanHangBUS hdbhBUS = new HoaDonBanHangBUS();

            hdbhBUS.HoaDonBanHang_Insert_ByMaNV(new HoaDonBanHangObj(Settings.Default["MaNV"].ToString()));
            //  bindDataGridView();
            //   MessageBox.Show("Ok");
            //  else
            //MessageBox.Show("Noooo");
        }
 private void tsbtnXoa_Click(object sender, EventArgs e)
 {
     if (HoaDonBanHangBUS.XoaHD(dgvDanhSach.CurrentRow.Cells[0].Value.ToString()) == true)
     {
         LoadData();
     }
     else
     {
         MessageBox.Show("Xóa thất bại.", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
예제 #14
0
        private void XoaHoaDon_button_Click(object sender, EventArgs e)
        {
            HoaDonBanHangBUS HD_bus = new HoaDonBanHangBUS();
            ChiTietHoaDonBUS CT_bus = new ChiTietHoaDonBUS();

            // Đọc MaHD và trạng thái lên từ textbox
            int MaHD      = Int32.Parse(MaDonXoaHD_textBox.Text);
            int TrangThai = (TrangThaiHoaDon_textBox.Text == "Đã Thanh Toán") ? 1 : 0;

            // Kiểm tra trạng thái của hóa đơn nếu đã thanh toán rồi thì không được phép xóa
            if (TrangThai == 0)
            {
                try
                {
                    CT_bus.XoaCT(MaHD);
                    HD_bus.XoaHD(MaHD);
                    MessageBox.Show("Đã Xóa Hóa Đơn Thành Công");
                }
                catch (Exception er)
                {
                    MessageBox.Show("Xóa Hóa đơn không thành công, lỗi: " + er.ToString());
                }
                finally
                {
                    // reset normal state
                    //MaDonXoaHD_textBox.Text = "";
                    //NgayLapXoaHD_textBox.Text = "";
                    //NgayGiaoHangXoaHD_textBox.Text = "";

                    //HoTenXoaHD_textBox.Text = "";
                    //DiaChiXoaHD_textBox.Text = "";
                    //EmailXoaHD_textBox.Text = "";

                    //MaNVGiaoXoaHD_textBox.Text = "";
                    //MaNVLapXoaHD_textBox.Text = "";
                    //TongTienHoaDonXoa_textBox.Text = "";
                    //TrangThaiHoaDon_textBox.Text = "";

                    //if (ChiTietHoaDonXoaHD_dataGridView.Rows.Count != 0) // Nếu lượng dòng trong Gridview != 0 thì mới clear
                    //    ChiTietHoaDonXoaHD_dataGridView.Rows.Clear();
                    //ChiTietHoaDonXoaHD_dataGridView.Refresh();

                    Load_AllMaHD();
                }
            }
            else
            {
                MessageBox.Show("Hóa Đơn đã được thanh toán, không được phép xóa!");
            }
        }
예제 #15
0
        private void btnSua_Click(object sender, EventArgs e)
        {
            if (this.txtMasp.Text == string.Empty || this.txtSoLuong.Text == string.Empty)
            {
                MessageBox.Show("Bạn chưa chọn dòng sản phẩm muốn cập nhật !!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            if (!KiemTraSLMasp(this.txtMasp.Text, Convert.ToInt32(this.txtSoLuong.Text)))
            {
                this.txtSoLuong.Focus();
                return;
            }
            CTHOADONBANHANG ct = new CTHOADONBANHANG
            {
                MAHD    = hd.MAHD,
                MASP    = this.txtMasp.Text,
                SOLUONG = Convert.ToInt32(this.txtSoLuong.Text.Trim()),
                DONGIA  = TinhDonGia(this.txtMasp.Text, Convert.ToInt32(this.txtSoLuong.Text)),
                DVT     = sp.Where(p => p.MASP == this.txtMasp.Text).FirstOrDefault().DVT
            };


            if (CTHoaDonBanHangBUS.SuaCTHoaDon(ct))
            {
                MessageBox.Show("Cập nhật thông tin thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                loadDSCTHD(hd.MAHD);
                CapNhatSoLuongSanPham(this.txtMasp.Text, Convert.ToInt32(this.txtSoLuong.Text), 1);
                hd.TONGTIEN = lstcthd.Sum(p => p.DONGIA);
                HoaDonBanHangBUS.CapNhatHoaDon(hd);
                if (CongNoBUS.LayDanhSachCongNo().Where(p => p.MAKH == this.lblMaKH.Text && p.MAHD == hd.MAHD && p.TRANGTHAI == true).FirstOrDefault() != null)
                {
                    CapNhatThongTienCongNo();
                }
                this.dangThayDoiCTHD = false;
                loadThongTinHD(hd.MAHD);
                Reset();
                string lsth = "[" + DateTime.Now.ToString("dd/MM/yyyy-h:m:s") + "] " + this.manv + " đã cập nhật thông tin chi tiết hóa đơn " + hd.MAHD;
                LichSuHeThongBUS.ThemLSHT(new LICHSUHETHONG
                {
                    NGAYTAO       = DateTime.Now.Date,
                    NV_THAOTAC    = this.manv,
                    VITRI_THAOTAC = this.vitrithaotac,
                    GHICHU        = lsth
                });
            }
            else
            {
                MessageBox.Show("Cập nhật thông tin thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        void LoadData()
        {
            dgvDanhSach.DataSource = HoaDonBanHangBUS.LoadDSHoaDon();
            Custom1();
            dgvDanhSach.ClearSelection();

            if (dgvDanhSach.Rows.Count > 0)
            {
                dgvChiTiet.DataSource = HoaDonBanHangBUS.LoadDSCTHoaDon(dgvDanhSach.CurrentRow.Cells[0].Value.ToString());
                Custom2();
                dgvChiTiet.ClearSelection();
            }
            else
            {
                dgvChiTiet.DataSource = null;
            }
        }
예제 #17
0
        // ============================TRA HANG SECTION ================== //
        private void Nhap_THHoaDon_Click(object sender, EventArgs e)
        {
            if (trahangMaHD_txtbox.Text.Trim() == string.Empty)
            {
                MessageBox.Show("Bạn Chưa Nhập Mã Hóa Đơn!");
                return;
            }
            int maHD = Int32.Parse(trahangMaHD_txtbox.Text);
            HoaDonBanHangBUS hoadonBus    = new HoaDonBanHangBUS();
            HoaDonBanHangDTO hoadonSearch = hoadonBus.SearchHD_TraHang(maHD);

            this.dtGV_THHoaDon.Rows.Clear();
            this.dtGV_THHoaDon.Rows.Add(hoadonSearch.maKH, hoadonSearch.maNVLap, hoadonSearch.maNVGiao,
                                        hoadonSearch.maNVXacThuc, hoadonSearch.tongTien, hoadonSearch.hinhThucThanhToan,
                                        hoadonSearch.xacNhanDaThanhToan, hoadonSearch.ngayGiao,
                                        hoadonSearch.soTienThanhToan, hoadonSearch.ngayLap);
            this.dtGV_THHoaDon.ClearSelection();
        }
예제 #18
0
        private void btnBH_In_Click(object sender, EventArgs e)
        {
            HoaDonBanHangBUS b = new HoaDonBanHangBUS();
            var lst            = b.HoaDonBanHang_Query(txtBH_MaHD.Text);

            if (lst.Count > 0)
            {
                string tenKH = khBUS.KhachHang_GetByTop("", "MaKH='" + lst[0].MaKH + "'", "")[0].TenKH;
                using (FormBanHangIn frm = new FormBanHangIn(lst, txtTongTien.Text, tenKH, txtBH_NhanVien.Text))
                {
                    frm.ShowDialog();
                }
            }
            else
            {
                MessageBox.Show("Hóa đơn bán hàng rỗng", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #19
0
        private void InitHoaDonBanHang()
        {
            // CAC BUOC INIT CAN BAN (đọc mã hóa đơn, ngày lập hiện tại, gán mã nhân viên hiện tại vào)
            HoaDonBanHangBUS HD_bus = new HoaDonBanHangBUS();
            ChiTietHoaDonBUS CT_bus = new ChiTietHoaDonBUS();

            MaNVLapHDBan_textBox.Text = MaNV_login.ToString();
            int MaHD = HD_bus.CreateMaHD();

            MaHoaDonBan_textbox.Text  = MaHD.ToString();
            NgayLapHDBan_textBox.Text = DateTime.Now.ToString();


            // Đọc thông tin chi tiết hóa đơn từ giỏ hàng
            List <ChiTietHoaDonDTO> GioHang = CT_bus.DocChiTietTuGioHang(MaHD);

            // Tính tổng hóa đơn và gán vào text box
            float TongTien = CT_bus.TinhTongHoaDon(GioHang);

            TongTienLap_textbox.Text = TongTien.ToString();

            // Tạo datatable để đổ data từ chi tiết hóa đơn từ giỏ hàng vào
            DataTable source = new DataTable();

            source.Columns.Add(new DataColumn("MA HANG", Type.GetType("System.Int32")));
            source.Columns.Add(new DataColumn("TEN HANG", Type.GetType("System.String")));
            source.Columns.Add(new DataColumn("SO LUONG MUA", Type.GetType("System.Int32")));
            source.Columns.Add(new DataColumn("DON GIA", Type.GetType("System.Single")));

            // Thêm từng dòng dữ liệu vào datatable
            foreach (ChiTietHoaDonDTO i in GioHang)
            {
                DataRow temp = source.NewRow();
                temp["MA HANG"]      = i.maHang;
                temp["TEN HANG"]     = i.TenHang;
                temp["SO LUONG MUA"] = i.soLuong;
                temp["DON GIA"]      = i.DonGia;
                source.Rows.Add(temp);
            }
            // Bind Datatable vào DataGridView
            //var bindlingList = new BindingList<ChiTietHoaDonDTO>(CT_bus.DocChiTietTuGioHang(MaHD));
            //var source = new BindingSource(bindlingList, null);
            ChiTietHDBan_dataGridView.DataSource = source;
        }
 private void btnLapHoaDonMoi_Click(object sender, EventArgs e)
 {
     i                       = 0;
     Tien                    = 0;
     txtTongtien.Text        = "0";
     btnLapHoaDonMoi.Enabled = false;
     btnThemSP.Enabled       = false;
     pbcheck.Enabled         = true;
     btnIn.Enabled           = true;
     txtMaKH.ReadOnly        = false;
     txtSoHD.Text            = HoaDonBanHangBUS.GetIDHoaDon();
     txtMaSP.ResetText();
     txtTenSP.ResetText();
     txtGiamGia.ResetText();
     txtGiaBan.ResetText();
     txtMaKH.ResetText();
     dtkNgayLap.Value = DateTime.Now;
     dgvDanhSach.Rows.Clear();
 }
        void TongTien()
        {
            int TongTien = 0;

            for (int k = 0; k < dgvDanhSach.Rows.Count; k++)
            {
                TongTien = TongTien + (HoaDonBanHangBUS.TinhTongTien(Int32.Parse(dgvDanhSach.Rows[k].Cells[2].Value.ToString()), Int32.Parse(dgvDanhSach.Rows[k].Cells[3].Value.ToString())));
            }
            txtTongtien.Text = String.Format("{0:0,0}", TongTien);
            Tien             = TongTien;
            if (Tien <= 40000000)
            {
                btnIn.Enabled = true;
            }
            else if (Tien > 40000000)
            {
                btnIn.Enabled = false;
            }
        }
        private void txtSoLuong_TextChanged(object sender, EventArgs e)
        {
            bool Flag;
            int  SL;

            if (txtSoLuong.Text == "")
            {
                SL = 0;
            }
            else
            {
                SL = Int32.Parse(txtSoLuong.Text);
            }
            Flag = HoaDonBanHangBUS.KiemTraSLT(txtMaSP.Text, SL);
            if (Flag == false)
            {
                MessageBox.Show("Số lượng hàng không đủ.", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #23
0
        void TaoHoaDon(string makh, string manv)
        {
            if (lstHoaDon.Count == 0)
            {
                mahd = "HD1";
            }
            else
            {
                mahd = lstHoaDon.Select(p => p.MAHD).LastOrDefault();
                int somahd = Convert.ToInt32(mahd.Remove(0, 2)) + 1;
                mahd = "HD" + somahd;
                for (int i = 0; i < lstHoaDon.Count(); i++)
                {
                    if (mahd == lstHoaDon[i].MAHD)
                    {
                        somahd = Convert.ToInt32(mahd.Remove(0, 2)) + 1;
                        mahd   = "HD" + somahd;
                    }
                }
            }
            HoaDonBanHangBUS.ThemHoaDon(new HOADONBANHANG
            {
                MAHD      = mahd,
                MAKH      = makh,
                NV_LAP_HD = manv,
                NGAYLAP   = DateTime.Now,
                TONGTIEN  = Convert.ToInt32(lstCTHD.Sum(p => p.DONGIA)),
                NGAYGIAO  = this.dtNgayGiao.Value,
                TRANGTHAI = true
            });
            string lsth = "[" + DateTime.Now.ToString("dd/MM/yyyy-h:m:s") + "] " + this.manv + " đã lập hóa đơn " + mahd;

            LichSuHeThongBUS.ThemLSHT(new LICHSUHETHONG
            {
                NGAYTAO       = DateTime.Now.Date,
                NV_THAOTAC    = this.manv,
                VITRI_THAOTAC = this.vitrithaotac,
                GHICHU        = lsth
            });
        }
예제 #24
0
        void LoadDSHoaDon()
        {
            // lstHD = HoaDonBanHangBUS.LayDanhSachHoaDon();
            lstHD   = HoaDonBanHangBUS.LayDSHoaDon();
            lstDSKH = KhachHangBUS.LayDanhSachKhachHang();
            var kq = from hd in lstHD
                     join kh in lstDSKH
                     on hd.MAKH equals kh.MAKH
                     select new
            {
                hd.MAHD,
                hd.MAKH,
                kh.TENKH,
                hd.NGAYGIAO,
                hd.TONGTIEN,
                hd.NV_LAP_HD,
                hd.NGAYLAP
            };

            this.dgvDanhSachHD.AutoGenerateColumns = false;
            this.dgvDanhSachHD.DataSource          = kq.ToList();
        }
예제 #25
0
 private void btnXoa_Click(object sender, EventArgs e)
 {
     if (this.txtMasp.Text == string.Empty || this.txtSoLuong.Text == string.Empty)
     {
         MessageBox.Show("Bạn chưa chọn dòng sản phẩm muốn xóa !!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         return;
     }
     if (MessageBox.Show("Bạn có chắc chứ?", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
     {
         if (CTHoaDonBanHangBUS.XoaCTHoaDon(hd.MAHD, this.txtMasp.Text))
         {
             MessageBox.Show("Xóa thông tin thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
             loadDSCTHD(hd.MAHD);
             CapNhatSoLuongSanPham(this.txtMasp.Text, Convert.ToInt32(this.txtSoLuong.Text), 2);
             hd.TONGTIEN = lstcthd.Sum(p => p.DONGIA);
             HoaDonBanHangBUS.CapNhatHoaDon(hd);
             if (CongNoBUS.LayDanhSachCongNo().Where(p => p.MAKH == this.lblMaKH.Text && p.MAHD == hd.MAHD && p.TRANGTHAI == true).FirstOrDefault() != null)
             {
                 CapNhatThongTienCongNo();
             }
             this.dangThayDoiCTHD = false;
             loadThongTinHD(hd.MAHD);
             Reset();
             string lsth = "[" + DateTime.Now.ToString("dd/MM/yyyy-h:m:s") + "] " + this.manv + " đã xóa sản phẩm " + this.txtMasp.Text + " của chi tiết hóa đơn " + hd.MAHD;
             LichSuHeThongBUS.ThemLSHT(new LICHSUHETHONG
             {
                 NGAYTAO       = DateTime.Now.Date,
                 NV_THAOTAC    = this.manv,
                 VITRI_THAOTAC = this.vitrithaotac,
                 GHICHU        = lsth
             });
         }
         else
         {
             MessageBox.Show("Xóa thông tin thất bại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
     }
 }
예제 #26
0
        private void LapHoaDonBanHang_button_Click_1(object sender, EventArgs e)
        {
            HoaDonBanHangBUS HD_bus = new HoaDonBanHangBUS();
            ChiTietHoaDonBUS CT_bus = new ChiTietHoaDonBUS();
            KhachHangBUS     KH_bus = new KhachHangBUS();

            // Đọc dữ liệu từ text box lên
            int MaHD = Int32.Parse(MaHoaDonBan_textbox.Text);
            //DateTime NgayLap = DateTime.Parse(NgayLapHDBan_textBox.Text);
            DateTime NgayGiao = NgayGiaoHang_dateTimePicker4.Value;

            string HoTen  = HoTen_textBox.Text;
            string DiaChi = DiaChiKhach_textBox.Text;
            string Email  = EmailKhachHang_textBox.Text;

            int MaNV     = Int32.Parse(MaNVLapHDBan_textBox.Text);
            int MaNVGiao = Int32.Parse(MaNVGiaoHangHDBan_comboBox.Text);
            int TongTien = Int32.Parse(TongTienLap_textbox.Text);

            //KH_bus.KiemTraThongTinKH(HoTen, DiaChi, Email) == true
            // xử lí thông tin
            if (HD_bus.KiemTraNgayGiaoHang(NgayGiao) == true && KH_bus.KiemTraThongTinKH(HoTen, DiaChi, Email) == true) // kiểm tra tính đúng đắn thông tin của khách hàng và ngày giao
            {
                int MaKH = KH_bus.SearchKH(HoTen, Email);                                                               // Kiểm tra xem có khách hàng nào có thông tin như trên trong db không
                if (MaKH == 0)                                                                                          //khong có khách hàng trong database
                {
                    try
                    {
                        MaKH = KH_bus.CreateMaKH(); // tạo 1 mã Khách hàng mới
                        KhachHangDTO KH = KH_bus.KhoiTao(HoTen, Email, DiaChi);
                        KH_bus.ThemKhachHang_bus(KH);
                        MessageBox.Show("Them khach hang thanh cong!");
                    }
                    catch (Exception er)
                    {
                        MessageBox.Show("Them khach hang khong thanh cong, Loi:" + er.ToString());
                        return;
                    }
                }

                try
                {
                    // Khoi tạo hóa đơn
                    HoaDonBanHangDTO HD = HD_bus.KhoiTao(NgayGiao, MaKH, MaNV, MaNVGiao, MaHD, TongTien);
                    HD_bus.LapHoaDonBanHang(HD);

                    // Đọc lại chi tiết từ giỏ hàng
                    List <ChiTietHoaDonDTO> GioHang = CT_bus.DocChiTietTuGioHang(HD_bus.CreateMaHD() - 1);
                    foreach (ChiTietHoaDonDTO CT in GioHang)
                    {
                        //MessageBox.Show("MaHoaDon:" + CT.maHoaDon.ToString() + "MaHang: " + CT.maHang.ToString() + "SoLuong:" + CT.soLuong.ToString());
                        CT_bus.ThemChiTietDon_bus(CT);
                    }
                    MessageBox.Show("Them Hóa đơn thành công!");
                }
                catch (Exception er)
                {
                    MessageBox.Show("Thêm hóa đơn thất bại!, Loi: " + er.ToString());
                    return;
                }

                MaHoaDonBan_textbox.Text       = HD_bus.CreateMaHD().ToString();
                NgayLapHDBan_textBox.Text      = DateTime.Now.ToString();
                DiaChiKhach_textBox.Text       = "";
                EmailKhachHang_textBox.Text    = "";
                HoTen_textBox.Text             = "";
                TongTienHoaDonXoa_textBox.Text = "";
                if (ChiTietHoaDonXoaHD_dataGridView.Rows.Count != 0)
                {
                    ChiTietHDBan_dataGridView.DataSource = null;
                }
                ChiTietHDBan_dataGridView.Refresh();
            }
            else
            {
                MessageBox.Show("Thong tin khách hàng sai qui cách hoặc ngày sai qui định!");
            }
        }
예제 #27
0
        private void btnLuu_Click(object sender, EventArgs e)
        {
            if (checkValid())
            {
                //them vao ct hoa don
                ChiTietHDBH hh = new ChiTietHDBH();
                hh.MaHDBH = maHDBH;
                if (String.IsNullOrEmpty(cmbThemHH.SelectedValue.ToString()))
                {
                    MessageBox.Show("Nhập đầy đủ thông tin", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                else
                {
                    hh.MaHH = cmbThemHH.SelectedValue.ToString();
                }

                HangHoaObj o1 = hhBUS.HangHoa_GetByTop("", "MaHH='" + hh.MaHH + "'", "")[0];
                hh.MaLoai     = o1.MaLoai;
                hh.TenLoai    = loaiHangBUS.LoaiHang_GetByTop("", "MaLoai='" + hh.MaLoai + "'", "")[0].TenLoai;
                hh.SoLuongMua = txtSoLuong.Text;
                hh.GiaBan     = txtGia.Text;

                bool isExisted = false;
                var  lst       = new HoaDonBanHangBUS().HoaDonBanHang_Query("", " and tb_HDBanHang.MaHDBH='" + hh.MaHDBH + "' and tb_HangHoa.MaHH='" + hh.MaHH + "'", "");

                if (lst.Count == 1)
                {
                    isExisted = true;
                }
                else
                {
                    isExisted = false;
                }

                if (isThem)
                {
                    if (!isExisted)
                    {
                        if (cthdbhBUS.ChiTietHDBH_Insert(hh))
                        {
                            MessageBox.Show("Ok Add 1 item");
                        }
                        else
                        {
                            MessageBox.Show("Fail Add 1 item");
                        }
                    }
                    else
                    {
                        int sl = int.Parse(lst[0].SoLuongMua);
                        hh.SoLuongMua = (sl + int.Parse(txtSoLuong.Text)).ToString();

                        if (cthdbhBUS.ChiTietHDBH_Update(hh))
                        {
                            MessageBox.Show("Ok Add 1 item!");
                        }
                        else
                        {
                            MessageBox.Show(" Fail Add 1 item!");
                        }
                    }
                }
                else
                {
                    if (cthdbhBUS.ChiTietHDBH_Update(hh))
                    {
                        MessageBox.Show("Ok Update 1 item");
                    }
                    else
                    {
                        MessageBox.Show("Fail Update 1 item");
                    }
                }
                // ucBH.bindDataGridView();
            }
            else
            {
                txtSoLuong.Focus();
            }
        }
        private void btnIn_Click(object sender, EventArgs e)
        {
            int SoDiem = 0;

            if (HoaDonBanHangBUS.KiemTraChiTietHoaDon(dgvDanhSach.RowCount) == "")
            {
                // Thêm hóa đơn mới.
                HoaDonBanHangDTO HD = new HoaDonBanHangDTO();
                HD.MaHoaDonBanHang = txtSoHD.Text;
                HD.NgayLap         = dtkNgayLap.Value;
                HD.MaKhachHang     = txtMaKH.Text;
                HD.MaNhanVien      = txtMaNV.Text;
                HD.TongTien        = Tien;
                if (HoaDonBanHangBUS.ThemHD(HD) == true)
                {
                    btnLapHoaDonMoi.Enabled = true;
                    pbcheck.Enabled         = false;
                    // Thêm chi tiết hóa đơn.
                    for (int k = 0; k < dgvDanhSach.Rows.Count; k++)
                    {
                        ChiTietHoaDonBanHangDTO CT = new ChiTietHoaDonBanHangDTO();
                        CT.MaHoaDonBanHang = txtSoHD.Text;
                        CT.MaSanPham       = dgvDanhSach.Rows[k].Cells[0].Value.ToString();
                        CT.SoLuong         = int.Parse(dgvDanhSach.Rows[k].Cells[2].Value.ToString());
                        if (HoaDonBanHangBUS.ThemCTHD(CT) == true)
                        {
                            // Update số lượng tồn.
                            if (HoaDonBanHangBUS.UpdateSLT(dgvDanhSach.Rows[k].Cells[0].Value.ToString(), int.Parse(dgvDanhSach.Rows[k].Cells[2].Value.ToString())) == false)
                            {
                                MessageBox.Show("Cập nhật số lượng tồn thất bại.", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                        else
                        {
                            MessageBox.Show("Thêm chi tiết hóa đơn thất bại.", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    // Cập nhật điểm cho khách hàng.
                    SoDiem = KhachHangBUS.Congdiem(Tien);
                    if (KhachHangBUS.UpdateDiemKH(txtMaKH.Text, SoDiem) == false)
                    {
                        MessageBox.Show("Cập nhật điểm thất bại.", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    btnIn.Enabled     = false;
                    btnThemSP.Enabled = false;
                    // Xuất ra cystal report.
                    frmXuatHoaDonBanHang frm = new frmXuatHoaDonBanHang(txtSoHD.Text);
                    this.Hide();
                    frm.ShowDialog();
                    this.Show();
                }
                else
                {
                    MessageBox.Show("Thêm hóa đơn thất bại.", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show(string.Format("{0}", HoaDonBanHangBUS.KiemTraChiTietHoaDon(dgvDanhSach.RowCount)), "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #29
0
 private void btnChotDon_Click(object sender, EventArgs e)
 {
     hd.TRANGTHAI = false;
     HoaDonBanHangBUS.CapNhatHoaDon(hd);
     Reset();
 }
예제 #30
0
 private void timer1_Tick(object sender, EventArgs e)
 {
     lstHD   = HoaDonBanHangBUS.LayDSHoaDon();
     lstCTHD = CTHoaDonBanHangBUS.LayDSCTHD();
     lstDSSP = SanPhamBUS.LayDanhSachSP();
 }