예제 #1
0
        public void ThanhToanBill()
        {
            // thanh toán... đưa dữ liệu lai from chính, laod lại món ăn, tiền giờ.OK
            if (MessageBox.Show("Thanh Toán", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
            {
                if (listChiTietMonAnThanhToan.Count > 0)
                {
                    bool     KT         = true;
                    int      IDHoaDon   = DAO_Setting.KiemtraGiaDien(frmDangNhap.NguoiDung.Idchinhanh) == 0 ? DAO_BanHang.IDHoaDon(frmBanHang.IDBan) : DAO_BanHang.IDHoaDon(frmBanHang2.IDBan);
                    int      IDBan      = DAO_Setting.KiemtraGiaDien(frmDangNhap.NguoiDung.Idchinhanh) == 0 ? frmBanHang.IDBan : frmBanHang2.IDBan;
                    int      IDNhanVien = frmDangNhap.NguoiDung.Id;
                    DateTime GioVao     = DAO_ChiTietHoaDonChinh.LayGioVao(IDHoaDon);
                    object   ID         = DAO_ChiTietHoaDonChinh.ThemMoiHoaDon(IDBan, IDNhanVien, GioVao, frmDangNhap.NguoiDung.Idchinhanh);
                    if (listChiTietMonAnThanhToan.Count > 0 && KT == true && ID != null)// thanh toán món ăn
                    {
                        double TongTien = 0;
                        foreach (ChiTietHoaDonB1 item in listChiTietMonAnThanhToan)
                        {
                            TongTien = TongTien + item.ThanhTien;
                            double TrongLuong  = item.TrongLuong;
                            string MaHang      = item.MaHangHoa;
                            int    SoLuong     = item.SoLuong;
                            int    IDHangHoa   = TrongLuong > 0 ? DAO_Setting.LayIDHangHoaTuChon(MaHang) : DAO_Setting.LayIDHangHoa(MaHang);
                            double DonGia      = item.DonGia;
                            double ThanhTien   = TrongLuong > 0 ? (SoLuong * (TrongLuong * DonGia)) : (SoLuong * DonGia);
                            int    IDDonViTinh = TrongLuong > 0 ? DAO_Setting.LayIDDonViTinhTuChon(MaHang) : DAO_Setting.LayIDDonViTinh(MaHang);

                            //thêm vào chi tiết hóa đơn chính, cập nhật chi tiết hóa đơn củ, if  Sl = nhau xóa hóa đơn củ
                            // kiểm tra thêm chi tiết
                            if (DAO_ChiTietHoaDonChinh.KiemTraHangHoa(Int32.Parse(ID.ToString()), IDHangHoa, IDBan, float.Parse(TrongLuong.ToString()), frmDangNhap.NguoiDung.Idchinhanh) == false)
                            {
                                DAO_ChiTietHoaDonChinh.ThemChiTietHoaDonChinh(Int32.Parse(ID.ToString()), IDHangHoa, SoLuong, DonGia, ThanhTien, IDBan, MaHang, IDDonViTinh, float.Parse(TrongLuong.ToString()), frmDangNhap.NguoiDung.Idchinhanh);
                            }
                            else
                            {
                                DAO_ChiTietHoaDonChinh.CapNhatChiTietHoaDon(Int32.Parse(ID.ToString()), SoLuong, ThanhTien, IDHangHoa, IDBan, frmDangNhap.NguoiDung.Idchinhanh);
                            }
                            //if (TrongLuong == 0)
                            //{
                            //    List<DTO_NguyenLieu> ListNguyenLieu = DAO_NguyenLieu.Instance.LoadNguyenLieu(IDHangHoa);// trừ nguyên liệu tồn kho
                            //    if (ListNguyenLieu.Count > 0)
                            //    {
                            //        foreach (DTO_NguyenLieu itemNL in ListNguyenLieu)
                            //        {
                            //            double SLTru = (itemNL.TrongLuong * SoLuong);
                            //            DAO_Setting.TruTonKho(itemNL.IDNguyenLieu, frmDangNhap.NguoiDung.Idchinhanh, SLTru);
                            //            // trừ tồn kho
                            //        }
                            //    }
                            //}
                            //else if (TrongLuong > 0)
                            //{
                            //    DAO_Setting.TruTonKho(IDHangHoa, frmDangNhap.NguoiDung.Idchinhanh, SoLuong * TrongLuong);
                            //}
                        }
                        if (ID != null)
                        {
                            DAO_ChuyenBan.XoaChiTietBanCu(IDHoaDon, IDBan);
                            foreach (ChiTietHoaDonA1 item in listChiTietMonAn)
                            {
                                string MaHang      = item.MaHangHoa;
                                int    SoLuong     = item.SoLuong;
                                float  DonGia      = item.DonGia;
                                float  TrongLuong  = item.TrongLuong;
                                float  ThanhTien   = TrongLuong > 0 ? (SoLuong * (TrongLuong * DonGia)) : (SoLuong * DonGia);
                                int    IDHangHoa   = TrongLuong > 0 ? DAO_Setting.LayIDHangHoaTuChon(MaHang) : DAO_Setting.LayIDHangHoa(MaHang);
                                int    IDDonViTinh = TrongLuong > 0 ? DAO_Setting.LayIDDonViTinhTuChon(MaHang) : DAO_Setting.LayIDDonViTinh(MaHang);
                                DAO_GoiMon.ThemChiTietHoaDon(IDHoaDon, IDHangHoa, SoLuong, DonGia, ThanhTien, IDBan, MaHang, IDDonViTinh, TrongLuong, frmDangNhap.NguoiDung.Idchinhanh);
                            }

                            DAO_ChiTietHoaDonChinh.CapNhatTongTienHoaDonChinh(Int32.Parse(ID.ToString()), IDBan, TongTien, frmDangNhap.NguoiDung.Idchinhanh);
                        }
                    }

                    if (KT == true && ID != null)
                    {
                        if (MyGetData != null)
                        {
                            MyGetData(1, IDHoaDon, IDBan);
                            this.Close();
                        }

                        if (MessageBox.Show("In hóa đơn", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
                        {
                            // in hóa đớn, cập nhật hóa đơn
                            DAO_ConnectSQL connect = new DAO_ConnectSQL();

                            // Tên máy in
                            string NamePrinter = DAO_Setting.LayTenMayInBill(frmDangNhap.NguoiDung.Idchinhanh);

                            // Lấy máy in bill..
                            int IDBill = DAO_Setting.ReportBill(frmDangNhap.NguoiDung.Idchinhanh);
                            if (IDBill == 58)
                            {
                                rpHoaDonBanHang_581 rp            = new rpHoaDonBanHang_581();
                                SqlDataSource       sqlDataSource = rp.DataSource as SqlDataSource;
                                sqlDataSource.Connection.ConnectionString += connect.ConnectString();

                                rp.Parameters["ID"].Value           = ID;
                                rp.Parameters["ID"].Visible         = false;
                                rp.Parameters["IDChiNhanh"].Value   = frmDangNhap.NguoiDung.Idchinhanh;
                                rp.Parameters["IDChiNhanh"].Visible = false;
                                //rp.ShowPreviewDialog();
                                rp.Print(NamePrinter);
                            }
                            else
                            {
                                rpHoaDonBanHang1 rp            = new rpHoaDonBanHang1();
                                SqlDataSource    sqlDataSource = rp.DataSource as SqlDataSource;
                                sqlDataSource.Connection.ConnectionString += connect.ConnectString();

                                rp.Parameters["ID"].Value           = ID;
                                rp.Parameters["ID"].Visible         = false;
                                rp.Parameters["IDChiNhanh"].Value   = frmDangNhap.NguoiDung.Idchinhanh;
                                rp.Parameters["IDChiNhanh"].Visible = false;
                                //rp.ShowPreviewDialog();
                                rp.Print(NamePrinter);
                            }
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Lỗi thanh toán. Danh sách hóa đơn trống?", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
예제 #2
0
        public void ThanhToanTien()
        {
            int IDBanHT    = IDBan;
            int IDHoaDonHT = DAO_BanHang.IDHoaDon(IDBanHT);

            if (IDBanHT == 0)
            {
                MessageBox.Show("Vui lòng chọn bàn để thanh toán.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (DAO_BanHang.IDHoaDon(IDBanHT) == 0)
            {
                MessageBox.Show("Bàn chưa có hóa đơn để thanh toán.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (float.Parse(txtKhachThanhToan.Text.ToString()) < float.Parse(txtKhachCanTra.Text.ToString()))
            {
                txtKhachThanhToan.Focus();
                MessageBox.Show("Khách thanh toán không đủ số tiền.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                if (MessageBox.Show("Thanh Toán", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
                {
                    bool insert = true;
                    List <DTO_ChiTietHoaDon> DanhSachHoaDon = DAO_ChiTietHoaDon.Instance.ChiTietHoaDon(IDHoaDonHT, frmDangNhap.NguoiDung.Idchinhanh);
                    // đổi trạng thái hóa đơn + thêm vào CTHD chính, xóa tạm + Chi tiết giờ
                    foreach (DTO_ChiTietHoaDon item in DanhSachHoaDon)
                    {
                        //thêm vào chi tiết hóa đơn chính
                        int    IDHangHoa   = item.IDHangHoa;
                        int    SoLuong     = item.SoLuong;
                        double DonGia      = item.DonGia;
                        double ThanhTien   = item.ThanhTien;
                        string MaHangHoa   = item.MaHangHoa;
                        int    IDDonViTinh = item.IDDonViTinh;
                        float  TrongLuong  = item.TrongLuong;
                        //thêm chi tiết hóa đơn chính, - nguyên liệu hàng hóa
                        if (DAO_ChiTietHoaDonChinh.ThemChiTietHoaDonChinh(IDHoaDonHT, IDHangHoa, SoLuong, DonGia, ThanhTien, IDBanHT, MaHangHoa, IDDonViTinh, TrongLuong, frmDangNhap.NguoiDung.Idchinhanh) == false)
                        {
                            insert = false;
                        }
                        //else
                        //{
                        //    //if (TrongLuong == 0)
                        //    //{
                        //    //    // trừ tồn kho nguyên liệu chế biến
                        //    //    List<DTO_NguyenLieu> ListNguyenLieu = DAO_NguyenLieu.Instance.LoadNguyenLieu(IDHangHoa);
                        //    //    if (ListNguyenLieu.Count > 0)
                        //    //    {
                        //    //        foreach (DTO_NguyenLieu itemNL in ListNguyenLieu)
                        //    //        {
                        //    //            double SLTru = (itemNL.TrongLuong * SoLuong);
                        //    //            DAO_Setting.TruTonKho(itemNL.IDNguyenLieu, frmDangNhap.NguoiDung.Idchinhanh, SLTru);
                        //    //            // trừ tồn kho
                        //    //        }
                        //    //    }
                        //    //}
                        //    //else if (TrongLuong > 0)
                        //    //{
                        //    //    //trừ nguyên liệu tự chọn
                        //    //    DAO_Setting.TruTonKho(IDHangHoa, frmDangNhap.NguoiDung.Idchinhanh, SoLuong * TrongLuong);
                        //    //}
                        //}
                    }
                    if (insert == true)
                    {
                        // xóa chi tiết hóa đơn temp,
                        if (DAO_ChiTietHoaDonChinh.XoaChiTietHoaDonTemp(IDHoaDonHT, frmDangNhap.NguoiDung.Idchinhanh, IDBanHT) == true)
                        {
                            // cập nhật trạng thái hóa đơn đã thanh toán, đổi trạng thái bàn
                            int    IDNhanVien        = frmDangNhap.NguoiDung.Id;
                            double KhachThanhToan    = double.Parse(txtKhachThanhToan.Text.ToString());
                            double TienThua          = double.Parse(txtTienThoi.Text.ToString());
                            double GiamGia           = double.Parse(txtTienSauGiamGia.Text.ToString());
                            double KhachCanTra       = double.Parse(txtKhachCanTra.Text.ToString());
                            string HinhThucThanhToan = cmbHinhThucGiamGia.Text.ToString();
                            double TienGiamGia       = double.Parse(txtTienSauGiamGia.Text.ToString());
                            double TyLeGiamGia       = double.Parse(txtGiamGia.Text.ToString());
                            if (DAO_ChiTietHoaDonChinh.CapNhatHoaDonChinh(IDHoaDonHT, IDBanHT, IDNhanVien, KhachThanhToan, TienThua, KhachCanTra, HinhThucThanhToan, GiamGia, TyLeGiamGia, TienGiamGia, frmDangNhap.NguoiDung.Idchinhanh) == true && DAO.DAO_BAN.XoaBanVeMatDinh(IDBanHT, frmDangNhap.NguoiDung.Idchinhanh) == true)// thành công
                            {
                                txtKhachThanhToan.Text           = "0";
                                txtTienThoi.Text                 = "0";
                                cmbHinhThucGiamGia.SelectedIndex = 0;
                                txtTienSauGiamGia.Text           = "0";
                                txtKhachCanTra.Text              = "0";
                                DanhSachBan();
                                HienThiHoaDon(IDBanHT);

                                if (MessageBox.Show("In hóa đơn", "Thông báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
                                {
                                    // in hóa đớn, cập nhật hóa đơn
                                    DAO_ConnectSQL connect = new DAO_ConnectSQL();
                                    // Tên máy in
                                    string NamePrinter = DAO_Setting.LayTenMayInBill(frmDangNhap.NguoiDung.Idchinhanh);
                                    // Lấy máy in bill..
                                    int IDBill = DAO_Setting.ReportBill(frmDangNhap.NguoiDung.Idchinhanh);
                                    //for (int i = 1; i <= 2; i++)
                                    //{
                                    if (IDBill == 58)
                                    {
                                        rpHoaDonBanHang_581 rp            = new rpHoaDonBanHang_581();
                                        SqlDataSource       sqlDataSource = rp.DataSource as SqlDataSource;
                                        sqlDataSource.Connection.ConnectionString += connect.ConnectString();
                                        rp.Parameters["ID"].Value           = IDHoaDonHT;
                                        rp.Parameters["ID"].Visible         = false;
                                        rp.Parameters["IDChiNhanh"].Value   = frmDangNhap.NguoiDung.Idchinhanh;
                                        rp.Parameters["IDChiNhanh"].Visible = false;
                                        //rp.ShowPreviewDialog();
                                        rp.Print(NamePrinter);
                                    }
                                    else
                                    {
                                        rpHoaDonBanHang1 rp            = new rpHoaDonBanHang1();
                                        SqlDataSource    sqlDataSource = rp.DataSource as SqlDataSource;
                                        sqlDataSource.Connection.ConnectionString += connect.ConnectString();
                                        rp.Parameters["ID"].Value           = IDHoaDonHT;
                                        rp.Parameters["ID"].Visible         = false;
                                        rp.Parameters["IDChiNhanh"].Value   = frmDangNhap.NguoiDung.Idchinhanh;
                                        rp.Parameters["IDChiNhanh"].Visible = false;
                                        //rp.ShowPreviewDialog();
                                        rp.Print(NamePrinter);
                                    }
                                }
                                //}
                            }
                        }
                    }
                }
            }
        }