예제 #1
0
 private void btnThanhToan_Click(object sender, EventArgs e)
 {
     if (txtMaKH.Text == "")
     {
         MessageBox.Show("Chưa nhập mã khách hàng,\r\nKhách lẻ vui lòng nhập '1'");
     }
     else
     {
         HDBanHangDTO HDBanDTO = new HDBanHangDTO();
         HDBanDTO.MaNV = Convert.ToInt32(lblMaNV.Text);
         HDBanDTO.MaKH = Convert.ToInt32(txtMaKH.Text);
         int  mahd                 = HDBanBUS.Them(HDBanDTO);
         bool isThanhCong          = true;
         List <CTHDBanHangDTO> lst = new List <CTHDBanHangDTO>();
         foreach (DataGridViewRow row in dgvCTHDBanHang.Rows)
         {
             CTHDBanHangDTO CTHDBanDTO = new CTHDBanHangDTO();
             CTHDBanDTO.MaHD      = mahd;
             CTHDBanDTO.MaSach    = Convert.ToInt32(row.Cells["colMaSach"].Value);
             CTHDBanDTO.TenSach   = row.Cells["colTenSach"].Value.ToString();
             CTHDBanDTO.SoLuong   = Convert.ToInt32(row.Cells["colSoLuong"].Value);
             CTHDBanDTO.GiaBan    = Convert.ToInt32(row.Cells["colDonGia"].Value);
             CTHDBanDTO.ThanhTien = Convert.ToInt32(row.Cells["colThanhTien"].Value);
             isThanhCong          = CTHDBanBUS.Them(CTHDBanDTO);
             if (!isThanhCong)
             {
                 break;
             }
             sachBUS.CapNhatSoLuong(CTHDBanDTO.MaSach, CTHDBanDTO.SoLuong);
             lst.Add(CTHDBanDTO);
         }
         if (isThanhCong)
         {
             MessageBox.Show("Thanh toán thành công!");
             HDBanBUS.CapNhatTongTien(mahd, Convert.ToInt32(txtTongTienSauKM.Text));
             using (frmThanhToan f = new frmThanhToan())
             {
                 f.rpvHoaDon.LocalReport.ReportEmbeddedResource = "QuanLyCuaHangSach.rptHDBanHang.rdlc";
                 f.rpvHoaDon.LocalReport.DataSources.Add(new ReportDataSource("InHDBanHang", lst));
                 f.rpvHoaDon.LocalReport.SetParameters(new ReportParameter("paTenNV", lblHoTenNV.Text, false));
                 f.ShowDialog();
             }
         }
         else
         {
             MessageBox.Show("Thanh toán không thành công");
         }
         dgvCTHDBanHang.Rows.Clear();
     }
 }
예제 #2
0
        //Tạo HD bán hàng
        public static bool TaoHDBanHang(HDBanHangDTO hdBH)
        {
            string query = "INSERT INTO tblHDBanHang(MaHD, TenTaiKhoan, NgayLapHD, TongTien, GhiChu, TrangThai, TonTai) VALUES (@MaHD, @TenTaiKhoan, @NgayLapHD, @TongTien, @GhiChu, @TrangThai, @TonTai)";

            SqlParameter[] pars = new SqlParameter[7];
            pars[0] = new SqlParameter("@MaHD", hdBH.MaHD);
            pars[1] = new SqlParameter("@TenTaiKhoan", hdBH.TenTaiKhoan);
            pars[2] = new SqlParameter("@NgayLapHD", hdBH.NgayLapHD);
            pars[3] = new SqlParameter("@TongTien", hdBH.TongTien);
            pars[4] = new SqlParameter("@GhiChu", hdBH.GhiChu);
            pars[5] = new SqlParameter("@TrangThai", hdBH.TrangThai);
            pars[6] = new SqlParameter("@TonTai", hdBH.TonTai);
            return(DataProvider.ExecuteInsertQuery(query, pars) == 1);
        }
예제 #3
0
        //Cập nhật hóa đơn
        public static bool CapNhatHoaDon(HDBanHangDTO hdBH)
        {
            string query = "UPDATE tblHDBanHang SET TenTaiKhoan = @TenTaiKhoan, NgayLapHD = @NgayLapHD, TongTien = @TongTien, TienCuaKH =@TienCuaKH, TienThua = @TienThua, GhiChu = @GhiChu, TrangThai = @TrangThai, TonTai = @TonTai WHERE MaHD = @MaHD";

            SqlParameter[] pars = new SqlParameter[9];
            pars[0] = new SqlParameter("@MaHD", hdBH.MaHD);
            pars[1] = new SqlParameter("@TenTaiKhoan", hdBH.TenTaiKhoan);
            pars[2] = new SqlParameter("@NgayLapHD", hdBH.NgayLapHD);
            pars[3] = new SqlParameter("@TongTien", hdBH.TongTien);
            pars[4] = new SqlParameter("@GhiChu", hdBH.GhiChu);
            pars[5] = new SqlParameter("@TrangThai", hdBH.TrangThai);
            pars[6] = new SqlParameter("@TonTai", hdBH.TonTai);
            pars[7] = new SqlParameter("@TienCuaKH", hdBH.TienCuaKH);
            pars[8] = new SqlParameter("@TienThua", hdBH.TienThua);
            return(DataProvider.ExecuteUpdateQuery(query, pars) == 1);
        }
예제 #4
0
        private void SetHDBanHang()
        {
            frmMain frm = new frmMain();

            if (hdBH == null)
            {
                hdBH = new HDBanHangDTO();
            }
            hdBH.MaHD        = HDBanHangBUS.LayMaHDLonNhat();
            hdBH.TenTaiKhoan = ((frmMain)this.ParentForm).getTenTK();
            hdBH.NgayLapHD   = DateTime.Now;
            hdBH.TongTien    = 0;
            hdBH.GhiChu      = "";
            hdBH.TrangThai   = 0;
            hdBH.TonTai      = 1;
        }
예제 #5
0
        public static HDBanHangDTO LayHDTrangThaiChuaThanhToan()
        {
            HDBanHangDTO hd = new HDBanHangDTO();
            DataRow      dr = HDBanHangDAO.LayHDTrangThaiChuaThanhToan();

            if (dr == null)
            {
                return(null);
            }
            hd.MaHD        = Convert.ToInt32(dr[0]);
            hd.TenTaiKhoan = dr[1].ToString();
            hd.NgayLapHD   = DateTime.Now;
            hd.TongTien    = Convert.ToInt32(dr[3]);
            hd.GhiChu      = dr[4].ToString();
            hd.TrangThai   = Convert.ToInt32(dr[5]);
            return(hd);
        }
예제 #6
0
 public void TaoHDBanHang()
 {
     btnThanhToan.Enabled = true;
     panel1.Enabled       = true;
     btnTaoHD.Enabled     = false;
     btnHuy.Enabled       = true;
     hdBH = HDBanHangBUS.LayHDTrangThaiChuaThanhToan();
     if (hdBH == null)
     {
         hdBH = new HDBanHangDTO();
         SetHDBanHang();
         if (!HDBanHangBUS.TaoHDBanHang(hdBH))
         {
             MessageBox.Show("Tạo hóa đơn thất bại!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
         }
     }
     else
     {
         LoadDSCTHDBanHang();
     }
 }
예제 #7
0
 private void dgvDSHDThanhToan_SelectionChanged(object sender, EventArgs e)
 {
     if (dgvDSHDThanhToan.SelectedRows.Count > 0)
     {
         DataRowView drv = (DataRowView)dgvDSHDThanhToan.SelectedRows[0].DataBoundItem;
         hdBH        = new HDBanHangDTO();
         hdBH.MaHD   = Convert.ToInt32(drv[0].ToString());
         hdBH.TonTai = Convert.ToInt32(drv[8]);
         setHDBanHang();
         if (chkTrangThai.Checked)
         {
             AddStatus(-2);
         }
         else
         {
             AddStatus(-1);
         }
         LoadChiTietHD(hdBH.MaHD);
     }
     else
     {
         hdBH = null;
     }
 }
예제 #8
0
        public int Them(HDBanHangDTO hd)
        {
            conn.Open();
            SqlCommand com = new SqlCommand();

            com.CommandType = CommandType.StoredProcedure;
            com.CommandText = "SP_ThemHDBanHang";
            com.Parameters.Add("@ngayban", SqlDbType.DateTime).Value = hd.NgayBan;
            com.Parameters.Add("@manv", SqlDbType.Int).Value         = hd.MaNV;
            com.Parameters.Add("@makh", SqlDbType.Int).Value         = hd.MaKH;
            com.Connection = conn;
            int kq = com.ExecuteNonQuery();
            int id = 0;

            if (kq > 0)
            {
                //Lấy mã hóa đơn tự động tăng sau khi insert
                string SQL = @"SELECT @@IDENTITY";
                com = new SqlCommand(SQL, conn);
                id  = (int)((decimal)com.ExecuteScalar());
            }
            conn.Close();
            return(id);
        }
예제 #9
0
 public int Them(HDBanHangDTO hdDTO)
 {
     return(hdDAO.Them(hdDTO));
 }
예제 #10
0
 public frmBanHang(HDBanHangDTO hdBH) : this()
 {
     this._hdBH = hdBH;
 }
예제 #11
0
 //Cập nhật hóa đơn
 public static bool CapNhatHoaDon(HDBanHangDTO hdBH)
 {
     return(HDBanHangDAO.CapNhatHoaDon(hdBH));
 }
예제 #12
0
 //Tạo HD bán hàng
 public static bool TaoHDBanHang(HDBanHangDTO hdBH)
 {
     return(HDBanHangDAO.TaoHDBanHang(hdBH));
 }