public static string ThemPhieuThu(PhieuThuTien_DTO pt)
 {
     if (PhieuThuTien_DAO.GetPhieuThuByMa(pt.MaPT) == null)
     {
         return(PhieuThuTien_DAO.Insert(pt));
     }
     else
     {
         return("Phiếu thu đã tồn tại trong cơ sở dữ liệu");
     }
 }
 public static string SuaPhieuThu(PhieuThuTien_DTO pt)
 {
     if (PhieuThuTien_DAO.GetPhieuThuByMa(pt.MaPT) != null)
     {
         return(PhieuThuTien_DAO.Update(pt));
     }
     else
     {
         return("Mã không tồn tại trong Cơ sở dữ liệu");
     }
 }
 //Xóa phiếu thu tiền
 public static string XoaPhieuThu(PhieuThuTien_DTO pt)
 {
     if (PhieuThuTien_DAO.GetPhieuThuByMa(pt.MaPT) != null)
     {
         return(PhieuThuTien_DAO.Delete(pt));
     }
     else
     {
         return("Mã phiếu thu không tồn tại");
     }
 }
        private void textBox1_TextChanged_1(object sender, EventArgs e)
        {
            PhieuThuTien_DTO pt = new PhieuThuTien_DTO();

            if (KhachHang_BUS.LayMakhachhang(txtTimKhachhang.Text) != null)
            {
                pt.MaPT = PhieuThuTien_BUS.PhieuNhapMoiNhat(int.Parse(KhachHang_BUS.LayMakhachhang(txtTimKhachhang.Text)));
                dgvPhieuThuTien.DataSource = PhieuThuTien_BUS.SelectMaPTLikeMaPT(pt);
            }
            else
            {
                HienThiPhieuThu();
            }
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            PhieuThuTien_DTO pt = new PhieuThuTien_DTO();

            if (txtTimKiem.Text == "")
            {
                HienThiPhieuThu();
            }
            else
            {
                pt.MaPT = int.Parse(txtTimKiem.Text);
                dgvPhieuThuTien.DataSource = PhieuThuTien_BUS.SelectMaPTLikeMaPT(pt);
            }
        }
        private void btnXoa_Click(object sender, EventArgs e)
        {
            PhieuThuTien_DTO pt = new PhieuThuTien_DTO();

            pt.MaPT = int.Parse(txtMaPhieuThu.Text);
            string ketQua = PhieuThuTien_BUS.XoaPhieuThu(pt);

            if (ketQua != "Success")
            {
                MessageBox.Show(ketQua);
                return;
            }
            MessageBox.Show("Xóa thành công");
            HienThiPhieuThu();
        }
        //Lấy ra đối tượng phiếu thu trùng với MaPT
        public static PhieuThuTien_DTO GetPhieuThuByMa(int Ma)
        {
            string    sql = "select * from PHIEUTHUTIEN where MaPT=" + Ma + "";
            DataTable dt  = DataAccess.ThucThiQuery(sql);

            if (dt.Rows.Count == 0)
            {
                return(null);
            }
            else
            {
                PhieuThuTien_DTO pt = new PhieuThuTien_DTO();
                pt.MaPT        = int.Parse(dt.Rows[0].ItemArray[0].ToString());
                pt.NgayLap     = dt.Rows[0].ItemArray[2].ToString();
                pt.SoTienThu   = UInt64.Parse(dt.Rows[0].ItemArray[3].ToString());
                pt.MaKhachHang = int.Parse(dt.Rows[0].ItemArray[1].ToString());
                return(pt);
            }
        }
        public void CapNhat()
        {
            PhieuThuTien_DTO pt = new PhieuThuTien_DTO();

            pt.MaPT = int.Parse(txtMaPhieuThu.Text);

            dtpNgayThuTien.Format       = DateTimePickerFormat.Custom;
            dtpNgayThuTien.CustomFormat = "MM-dd-yy";
            pt.NgayLap            = dtpNgayThuTien.Text;
            dtpNgayThuTien.Format = DateTimePickerFormat.Short;

            try
            {
                int kh = int.Parse(txtMaKhachHang.Text);
                pt.MaKhachHang = kh;
            }
            catch (FormatException)
            {
                MessageBox.Show("Mã khách hàng không được bỏ trống");
                return;
            }
            DataTable dt        = ThamSo_BUS.GetThamSoAll();
            int       ktchophep = int.Parse(dt.Rows[0].ItemArray[6].ToString());
            DataTable dt2       = ThamSo_BUS.SelectTienNoKH(int.Parse(txtMaKhachHang.Text));
            UInt64    tienno    = UInt64.Parse(dt2.Rows[0].ItemArray[5].ToString());
            UInt64    tienthu   = 0;

            try
            {
                pt.SoTienThu = UInt64.Parse(txtSoTien.Text);
                tienthu      = UInt64.Parse(txtSoTien.Text);
            }
            catch (FormatException)
            {
                MessageBox.Show("Số tiền thu chưa nhập đúng quy định");
                return;
            }
            catch (OverflowException)
            {
                MessageBox.Show("Số tiền thu không được âm");
                return;
            }
            if (ktchophep == 1)
            {
                if (tienno < tienthu)
                {
                    MessageBox.Show("Tiền thu đã lớn hơn tiền khách hàng đang nợ");
                    return;
                }
            }
            UInt64 tienthunew = (tienthu - luusotienthu);
            UInt64 tiennonew  = (UInt64)(tienno) - tienthunew;

            string ketQua = PhieuThuTien_BUS.SuaPhieuThu(pt);

            if (ketQua != "Success")
            {
                MessageBox.Show(ketQua, "Lỗi");
            }
            else
            {
                KhachHang_DTO kh = new KhachHang_DTO();
                kh.MaKhachHang = int.Parse(txtMaKhachHang.Text);
                kh.SoTienNo    = tiennonew;
                KhachHang_BUS.UpdateTienNo(kh);
                MessageBox.Show("Thành công");
                HienThiPhieuThu();
            }
        }
        //Trả về 1 bảng chứa thông tin của một MaPT giống tên với MaPT cần tìm
        static public DataTable SelectMaPTLikeMaPT(PhieuThuTien_DTO pt)
        {
            string sql = "select * from PHIEUTHUTIEN where MaPT=" + pt.MaPT + "";

            return(DataAccess.ThucThiQuery(sql));
        }
        //Xóa phiếu thu
        public static string Delete(PhieuThuTien_DTO pt)
        {
            string sql = "delete from PHIEUTHUTIEN where MaPT= " + pt.MaPT + "";

            return(DataAccess.ThucThiNonQuery(sql));
        }
        //Cập nhật 1 phiếu thu
        public static string Update(PhieuThuTien_DTO pt)
        {
            string sql = "Update  PHIEUTHUTIEN set MaKhachHang=" + pt.MaKhachHang + ",NgayLap ='" + pt.NgayLap + "',SoTienThu=" + pt.SoTienThu + " where MaPT=" + pt.MaPT + "";

            return(DataAccess.ThucThiNonQuery(sql));
        }
        //Chèn thêm 1 phiếu thu
        public static string Insert(PhieuThuTien_DTO pt)
        {
            string sql = "insert into PHIEUTHUTIEN(NgayLap,SoTienThu,MaKhachHang,TienNoBanDau) values('" + pt.NgayLap + "'," + pt.SoTienThu + "," + pt.MaKhachHang + "," + pt.TienNoBanDau + ")";

            return(DataAccess.ThucThiNonQuery(sql));
        }
        public void CapNhat()
        {
            PhieuThuTien_DTO pt = new PhieuThuTien_DTO();

            pt.MaPT = int.Parse(txtMaPhieuThu.Text);

            dtpNgayThuTien.Format       = DateTimePickerFormat.Custom;
            dtpNgayThuTien.CustomFormat = "MM-dd-yy";
            pt.NgayLap            = dtpNgayThuTien.Text;
            dtpNgayThuTien.Format = DateTimePickerFormat.Short;

            try
            {
                int kh = int.Parse(txtMaKhachHang.Text);
                pt.MaKhachHang = kh;
            }
            catch (FormatException)
            {
                MessageBox.Show("Mã khách hàng không được bỏ trống");
                return;
            }

            if (int.Parse(txtMaPhieuThu.Text) != PhieuThuTien_BUS.PhieuNhapMoiNhat(int.Parse(txtMaKhachHang.Text)))
            {
                MessageBox.Show("Bạn chỉ được chỉnh sửa phiếu thanh toán mới nhất của khách hàng này." + "\n" + "Mã phiếu thanh toán mới nhất của khách hàng này là: " + PhieuThuTien_BUS.PhieuNhapMoiNhat(int.Parse(txtMaKhachHang.Text)));
                return;
            }

            DataTable dt        = ThamSo_BUS.GetThamSoAll();
            int       ktchophep = int.Parse(dt.Rows[0].ItemArray[5].ToString());
            DataTable dt2       = ThamSo_BUS.SelectTienNoKH(int.Parse(txtMaKhachHang.Text));
            UInt64    tienno    = UInt64.Parse(dt2.Rows[0].ItemArray[5].ToString());
            UInt64    tienthu   = 0;

            try
            {
                pt.SoTienThu = UInt64.Parse(txtSoTien.Text);
                tienthu      = UInt64.Parse(txtSoTien.Text);
            }
            catch (FormatException)
            {
                MessageBox.Show("Số tiền thu chưa nhập đúng quy định");
                return;
            }
            catch (OverflowException)
            {
                MessageBox.Show("Số tiền thu không được âm");
                return;
            }

            UInt64 tienthunew;
            UInt64 tiennonew;

            if (ktchophep == 1)
            {
                if (tienthu > luusotienthu)
                {
                    //if (ktchophep == 1)
                    //{
                    if (tienno < tienthu - luusotienthu)
                    {
                        MessageBox.Show("Tiền thu đã lớn hơn tiền khách hàng đang nợ");
                        return;
                    }
                    //}
                    tienthunew = (tienthu - luusotienthu);
                    tiennonew  = (UInt64)(tienno) - tienthunew;
                }
                else
                {
                    tienthunew = tienthu;
                    tiennonew  = (UInt64)(tienno) + (luusotienthu - tienthu);
                }

                string ketQua = PhieuThuTien_BUS.SuaPhieuThu(pt);
                if (ketQua != "Success")
                {
                    MessageBox.Show(ketQua, "Lỗi");
                }
                else
                {
                    KhachHang_DTO kh = new KhachHang_DTO();
                    kh.MaKhachHang = int.Parse(txtMaKhachHang.Text);
                    kh.SoTienNo    = tiennonew;
                    KhachHang_BUS.UpdateTienNo(kh);
                    MessageBox.Show("Thành công");
                    HienThiPhieuThu();
                }
            }
            else
            {
                uint tiennobandau = PhieuThuTien_BUS.LayTienNoBanDau(int.Parse(txtMaPhieuThu.Text));
                if (tienthu > luusotienthu)
                {
                    //if (ktchophep == 1)
                    //{
                    if (tienno < tienthu - luusotienthu)
                    {
                        tiennonew = 0;
                        string ketQua2 = PhieuThuTien_BUS.SuaPhieuThu(pt);
                        if (ketQua2 != "Success")
                        {
                            MessageBox.Show(ketQua2, "Lỗi");
                        }
                        else
                        {
                            KhachHang_DTO kh = new KhachHang_DTO();
                            kh.MaKhachHang = int.Parse(txtMaKhachHang.Text);
                            kh.SoTienNo    = tiennonew;
                            KhachHang_BUS.UpdateTienNo(kh);
                            MessageBox.Show("Thành công");
                            HienThiPhieuThu();
                        }
                        return;
                    }
                    //}
                    tienthunew = (tienthu - luusotienthu);
                    tiennonew  = (UInt64)(tienno) - tienthunew;
                }
                else
                {
                    if (tienno == 0)
                    {
                        tienthunew = tienthu;
                        tiennonew  = tiennobandau - tienthu;
                    }
                    else
                    {
                        tienthunew = tienthu;
                        tiennonew  = (UInt64)(tienno) + (luusotienthu - tienthu);
                    }
                }

                string ketQua = PhieuThuTien_BUS.SuaPhieuThu(pt);
                if (ketQua != "Success")
                {
                    MessageBox.Show(ketQua, "Lỗi");
                }
                else
                {
                    KhachHang_DTO kh = new KhachHang_DTO();
                    kh.MaKhachHang = int.Parse(txtMaKhachHang.Text);
                    kh.SoTienNo    = tiennonew;
                    KhachHang_BUS.UpdateTienNo(kh);
                    MessageBox.Show("Thành công");
                    HienThiPhieuThu();
                }
            }
        }
 //Trả về 1 bảng chứa thông tin 1 MaPT giống tên với MaPT cần tìm
 static public DataTable SelectMaPTLikeMaPT(PhieuThuTien_DTO pt)
 {
     return(PhieuThuTien_DAO.SelectMaPTLikeMaPT(pt));
 }