Example #1
0
        private void btnSuaChua_Click(object sender, EventArgs e)
        {
            GridView gridView = grcChungTu.FocusedView as GridView;

            InforDetailSell inforSellGui = new InforDetailSell();

            var maPhieu = gridView.GetRowCellValue(gridView.FocusedRowHandle, "MaPhieu");  // lấy được mã phiếu

            if (maPhieu == null)
            {
                XtraMessageBox.Show("Mời bạn chọn mã phiếu cần sửa");
            }
            else
            {
                // lấy thông tin:


                inforSellGui = inforSell.getInforDetailSellFromMa(maPhieu.ToString());
                List <DetailSellGoods> listDetailBuyGui = detailSellBus.getListChiTietHoaDonBanHangFromMaPhieu(maPhieu.ToString());


                if (UpdateBanHang != null)
                {
                    UpdateBanHang(inforSellGui, listDetailBuyGui); // chhuyeenr sang bên nhận
                }
            }
        }
Example #2
0
        public List <InforDetailSell> getListThanhToanCongNo(DateTime a, DateTime b, int check)
        {
            string sql;

            if (check == 0)
            {
                sql = string.Format("SELECT MaPhieu, NgayLap, MaKH, TenKH, TongTienNhan, GhiChu " +
                                    "FROM THONGTIN_PHIEU_BANHANG where Ma_DieuKhoan = {0} and isCheck = {1}", 1, 1);
            }
            else
            {
                sql = string.Format("SELECT MaPhieu, NgayLap, MaKH, TenKH, TongTienNhan, GhiChu " +
                                    "FROM THONGTIN_PHIEU_BANHANG where Ma_DieuKhoan = {0} and isCheck = {1}  and tt.NgayLap Between '{2}' and '{3}'", 1, 1, a, b);
            }

            DataTable data = ConnectionDB.getData(sql);
            List <InforDetailSell> listInforSell = new List <InforDetailSell>();

            if (data.Rows.Count > 0)
            {
                foreach (DataRow dataRow in data.Rows)
                {
                    InforDetailSell inforSell = new InforDetailSell();
                    inforSell.MaPhieu      = dataRow["MaPhieu"].ToString();
                    inforSell.NgayLap      = DateTime.Parse(dataRow["NgayLap"].ToString());
                    inforSell.MaKH         = dataRow["MaKH"].ToString();
                    inforSell.TenKH        = dataRow["TenKH"].ToString();
                    inforSell.TongTienNhan = float.Parse(dataRow["TongTienNhan"].ToString());
                    inforSell.GhiChu       = dataRow["GhiChu"].ToString();
                    listInforSell.Add(inforSell);
                }
            }
            return(listInforSell);
        }
        public List <InforDetailSell> getThongTinHoaDonFromMaKH(DateTime dtTu, DateTime dtDen, string maKH)// dùng bên chứng từ mua
        {
            string sql = "";

            sql = string.Format("SELECT kh.TenKho, tt.MaPhieu, tt.NgayLap, tt.SoHoaDonVAT, tt.SoPhieuNhapTay, " +
                                " tt.TenKH, tt.CK, tt.VAT, tt.TongTienBan, tt.TongTienNhan, tt.GhiChu " +
                                " FROM KHOHANG kh, THONGTIN_PHIEU_BANHANG tt WHERE kh.MaKho = tt.MaKho and tt.NgayLap Between '{0}' and '{1}' and tt.MaKH = '{2}' ", dtTu, dtDen, maKH);

            List <InforDetailSell> listInforSell = new List <InforDetailSell>();
            DataTable data = ConnectionDB.getData(sql);

            if (data.Rows.Count > 0)
            {
                foreach (DataRow dataRow in data.Rows)
                {
                    InforDetailSell inforSell = new InforDetailSell();
                    inforSell.TenKho         = dataRow["TenKho"].ToString();
                    inforSell.MaPhieu        = dataRow["MaPhieu"].ToString();
                    inforSell.NgayLap        = DateTime.Parse(dataRow["NgayLap"].ToString());
                    inforSell.SoHoaDonVAT    = dataRow["SoHoaDonVAT"].ToString();
                    inforSell.SoPhieuNhapTay = dataRow["SoPhieuNhapTay"].ToString();
                    inforSell.TenKH          = dataRow["TenKH"].ToString();
                    inforSell.CK             = float.Parse(dataRow["CK"].ToString());
                    inforSell.VAT            = float.Parse(dataRow["VAT"].ToString());
                    inforSell.TongTienBan    = float.Parse(dataRow["TongTienBan"].ToString());
                    inforSell.GhiChu         = dataRow["GhiChu"].ToString();
                    inforSell.TongTienNhan   = float.Parse(dataRow["TongTienNhan"].ToString());
                    listInforSell.Add(inforSell);
                }
            }
            return(listInforSell);
        }
Example #4
0
 private void UpdatePhieuBanHang(InforDetailSell inforSell, List <DetailSellGoods> list)
 {
     uc.Dock = DockStyle.Fill;
     userControl.Controls.Clear();
     userControl.Controls.Add(uc);
     userControl.Dock = DockStyle.Fill;
     uc.getDuLieu(inforSell, list);
 }
Example #5
0
        private void grvChungTu_MasterRowGetChildList(object sender, DevExpress.XtraGrid.Views.Grid.MasterRowGetChildListEventArgs e)
        {
            GridView grv = sender as GridView;

            InforDetailSell infor = grv.GetRow(e.RowHandle) as InforDetailSell;


            e.ChildList = listChiTietSell.Where(x => x.MaPhieuXuat == infor.MaPhieu).ToList();
        }
Example #6
0
        private void grvChungTu_MasterRowEmpty(object sender, DevExpress.XtraGrid.Views.Grid.MasterRowEmptyEventArgs e)
        {
            GridView grv = sender as GridView;

            InforDetailSell infor = grv.GetRow(e.RowHandle) as InforDetailSell;

            if (infor != null)
            {
                e.IsEmpty = !listChiTietSell.Any(x => x.MaPhieuXuat == infor.MaPhieu);
            }
        }
Example #7
0
        public int UpdateInforSell(InforDetailSell Infordetail)
        {
            string sql = string.Format("UPDATE [THONGTIN_PHIEU_BANHANG] SET " +
                                       " MaKH = '{1}' , TenKH =  N'{2}', DiaChi = N'{3}', SoHoaDonVAT = '{4}' ,MaKho = '{5}', NgayLap = '{6}', HanThanhToan = '{7}', Ma_DieuKhoan =  {8}, Ma_PhuongThuc = '{9}', MaNVLap = '{10}', CK = {11}, VAT = {12}, TongTienBan = {13}, TongTienNhan = {14}, ischeck = {15} " +
                                       " WHERE MaPhieu = '{0}'", Infordetail.MaPhieu,
                                       Infordetail.MaKH, Infordetail.TenKH, Infordetail.DiaChi, Infordetail.SoHoaDonVAT, Infordetail.MaKho,
                                       Infordetail.NgayLap, Infordetail.HanThanhToan, Infordetail.Ma_DieuKhoan, Infordetail.Ma_PhuongThuc, Infordetail.MaNVLap, Infordetail.CK, Infordetail.VAT, Infordetail.TongTienBan, Infordetail.TongTienNhan, 1);
            int check = ConnectionDB.ExcuteNonQuery(sql);

            return(check);
        }
Example #8
0
        public int InsertDetailSellGoods(InforDetailSell Infordetail)
        {
            string sql = string.Format("INSERT INTO [THONGTIN_PHIEU_BANHANG](MaPhieu ," +
                                       " MaKH, TenKH, DiaChi, SoHoaDonVAT ,MaKho, NgayLap, HanThanhToan, Ma_DieuKhoan, Ma_PhuongThuc, MaNVLap, CK, GhiChu, TongTienBan, TongTienNhan, VAT, IsCheck) " +
                                       "VALUES ('{0}', '{1}', N'{2}',N'{3}', '{4}', '{5}', '{6}', '{7}', {8}, '{9}', '{10}', {11}, N'{12}', {13}, {14}, {15}, {16})", Infordetail.MaPhieu,
                                       Infordetail.MaKH, Infordetail.TenKH, Infordetail.DiaChi, Infordetail.SoHoaDonVAT, Infordetail.MaKho,
                                       Infordetail.NgayLap, Infordetail.HanThanhToan, Infordetail.Ma_DieuKhoan, Infordetail.Ma_PhuongThuc, Infordetail.MaNVLap, Infordetail.CK, Infordetail.GhiChu, Infordetail.TongTienBan, Infordetail.TongTienNhan, Infordetail.VAT, 1);
            int check = ConnectionDB.ExcuteNonQuery(sql);

            return(check);
        }
        public void getDuLieu(InforDetailSell infor, List <DetailSellGoods> listDetail)
        {
            txtPhieu.Text = infor.MaPhieu;

            txtMaKH.Text                   = infor.MaKH;
            cbKhachHang.Text               = infor.TenKH;
            cbKhoNhap.EditValue            = infor.MaKho;
            cbDieuKhoanThanhToan.EditValue = infor.Ma_DieuKhoan;
            cbHinhThucThanhToan.EditValue  = infor.Ma_PhuongThuc;
            dtNgay.Text          = infor.NgayLap.ToString();
            cbNhanVien.EditValue = infor.MaNVLap;

            foreach (DetailSellGoods x in listDetail)
            {
                detailSellBUS.InsertChiTietHoaDonBanHang_Ao(x);
            }
            grcHangHoa.DataSource = detailSellBUS.getHTDetailSellBuy(); // lấy bảng ảo để hiển thị
        }
Example #10
0
        public InforDetailSell getInforDetailSellFromMa(string maPhieu)
        {
            string          sql    = string.Format("SELECT * FROM THONGTIN_PHIEU_BANHANG WHERE MaPhieu = '{0}'", maPhieu);
            DataTable       data   = ConnectionDB.getData(sql);
            InforDetailSell inforX = new InforDetailSell();

            if (data.Rows.Count > 0)
            {
                inforX.MaPhieu       = data.Rows[0]["MaPhieu"].ToString();
                inforX.MaKH          = data.Rows[0]["MaKH"].ToString();
                inforX.TenKH         = data.Rows[0]["TenKH"].ToString();
                inforX.MaKho         = data.Rows[0]["MaKho"].ToString();
                inforX.Ma_DieuKhoan  = int.Parse(data.Rows[0]["Ma_DieuKhoan"].ToString());
                inforX.Ma_PhuongThuc = data.Rows[0]["Ma_PhuongThuc"].ToString();
                inforX.NgayLap       = DateTime.Parse(data.Rows[0]["NgayLap"].ToString());
                inforX.MaNVLap       = data.Rows[0]["MaNVLap"].ToString();
            }
            return(inforX);
        }
        private void btnLuuVaThem_Click(object sender, EventArgs e)
        {
            InforDetailSell infor = new InforDetailSell();


            string maPhieu = "";
            int    sl      = 0;
            bool   check   = true;
            // lấy thông tin infor để lưu

            // phần bắt lỗi:
            int count = grvListGoodSell.RowCount;

            if (cbKhachHang.Text == "")
            {
                XtraMessageBox.Show("Thiếu trường thông tin");
                cbKhachHang.Focus();
            }
            else if (count < 2)
            {
                XtraMessageBox.Show("Mời bạn chọn mặt hàng");
            }
            else
            {
                tk.MaKho = infor.MaKho = cbKhoNhap.EditValue != null?cbKhoNhap.EditValue.ToString() : null; // lấy Mã kho của măt hàng mua vào

                for (int i = 0; i < count - 1; i++)                                                         /// Chạy for để lấy ra tất cả những mặt hành nào đã bán
                {
                    DetailSellGoods detailSell = new DetailSellGoods();
                    DataRow         data       = grvListGoodSell.GetDataRow(i);
                    sl        = detailSell.SoLuong = int.Parse(data[4].ToString());
                    tk.MaHang = detailSell.MaHang = data[1].ToString();

                    int checkMaHang = tkBus.checkMatHang(tk.MaHang, tk.MaKho);
                    int slHienTaiMH = tkBus.getSoLuong(tk);
                    slHienTaiMH -= sl;
                    // kiểm tra xem là mặt hàng nãy đã có trong kho hay chưa
                    if (checkMaHang == 1)
                    {
                        if (slHienTaiMH < 0)
                        {
                            DialogResult dr;
                            dr = XtraMessageBox.Show("Số lượng tồn kho đang ít hơn số lượng bán. Nếu thực hiện giao dịch, số lượng tồn của mặt hàng " + tk.MaHang + " sẽ là âm ", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                            if (dr == DialogResult.No)
                            {
                                check = false;
                                break;
                            }
                        }
                    }
                    else // neếu mặt hang chưa có trong Kho.
                    {
                        DialogResult dr;
                        dr = XtraMessageBox.Show("Mặt hàng hiện chưa có trong kho. Nếu thực hiện giao dịch. Số lượng tồn của mặt hàng " + tk.MaHang + " sẽ là âm ", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (dr == DialogResult.No)
                        {
                            check = false;
                            break;
                        }
                    }
                }

                if (check == false)
                {
                    XtraMessageBox.Show("Thêm Mặt hàng thất bại");
                }
                else
                {
                    infor.TongTienNhan = float.Parse(ThanhTien.Text);
                    infor.TongTienBan  = getSumTien();
                    infor.CK           = float.Parse(calCK.Text);
                    infor.VAT          = float.Parse(calVAT.Text);
                    infor.MaPhieu      = maPhieu = txtPhieu.Text;
                    infor.TenKH        = cbKhachHang.Text;
                    infor.MaKH         = txtMaKH.Text;
                    infor.NgayLap      = DateTime.Parse(String.Format("{0:MM/dd/yyyy}", dtNgay.Text));
                    infor.HanThanhToan = DateTime.Parse(String.Format("{0:MM/dd/yyyy}", dtHanThanhToan.Text));
                    infor.MaNVLap      = cbNhanVien.EditValue != null?cbNhanVien.EditValue.ToString() : null;

                    infor.SoHoaDonVAT    = txtSoHoaDonVAT.Text;
                    infor.SoPhieuNhapTay = txtSoPhieuVietTay.Text;
                    infor.DiaChi         = txtDiaChi.Text;
                    infor.GhiChu         = txtGhiChu.Text;
                    infor.Ma_PhuongThuc  = cbHinhThucThanhToan.EditValue != null?cbHinhThucThanhToan.EditValue.ToString() : null;

                    infor.Ma_DieuKhoan = int.Parse(cbDieuKhoanThanhToan.EditValue != null ? cbDieuKhoanThanhToan.EditValue.ToString() : null);

                    // kieemre tra xem đã  tông tại chưa. nếu chưa thò insert. có rồi thì update:
                    int checkMPhieu = inforSellBus.checkMaPhieuBan(infor.MaPhieu);

                    try
                    {
                        if (checkMPhieu == 1)
                        {
                            inforSellBus.UpdateInforSell(infor);  // Nhập thông tin bán hàng
                        }
                        else
                        {
                            inforSellBus.InsertDetailSellGoods(infor);  // Nhập thông tin bán hàng
                        }
                    }
                    catch (SqlException ex)
                    {
                        XtraMessageBox.Show("Lỗi Insert DetailSellGoods:  " + ex.Message);
                    }
                    int isDelete = 0;
                    for (int i = 0; i < count - 1; i++) /// Chạy for để lấy ra tất cả những mặt hành nào đã bán
                    {
                        DetailSellGoods detailSell = new DetailSellGoods();
                        DataRow         data       = grvListGoodSell.GetDataRow(i);
                        detailSell.MaPhieuXuat = maPhieu;
                        tk.MaHang          = detailSell.MaHang = data[1].ToString();
                        detailSell.TenHang = detailSell.TenHang = data[2].ToString();
                        detailSell.DonVi   = data[3].ToString();
                        sl = detailSell.SoLuong = int.Parse(data[4].ToString());
                        detailSell.DonGia    = float.Parse(data[5].ToString());
                        detailSell.ThanhTien = float.Parse(data[6].ToString());
                        detailSell.CK        = int.Parse(data[7].ToString());
                        detailSell.ThanhToan = float.Parse(data[9].ToString());
                        try
                        {
                            if (checkMPhieu == 1 && isDelete == 0) //có rồi
                            {
                                // xóa rồi thêm lại
                                detailSellBUS.DeleteDetailSell(txtPhieu.Text);
                                isDelete = 1;
                            }
                            detailSellBUS.InsertDetailSell(detailSell);
                        }
                        catch (SqlException ex)
                        {
                            XtraMessageBox.Show("Lỗi tại thêm chi tiết phiếu bán:  " + ex.Message);
                            check = false;
                        }
                        int checkMaHang = tkBus.checkMatHang(tk.MaHang, tk.MaKho);
                        int slHienTai   = tkBus.getSoLuong(tk);
                        slHienTai -= sl;
                        // kiểm tra xem là mặt hàng nãy đã có trong kho hay chưa
                        if (checkMaHang == 1)
                        {
                            //slHienTai -= sl;
                            try
                            {
                                tkBus.UpdateSoLuong(tk, slHienTai);  // nếu có rồi thì chỉ cần update số luọng
                            }
                            catch (SqlException ex)
                            {
                                XtraMessageBox.Show("Lỗi tại update số luọng:  " + ex.Message);
                            }
                        }
                        else // neếu mặt hang chưa có trong Kho.
                        {
                            try
                            {
                                tkBus.insertTonKho(tk, slHienTai);
                            }
                            catch (SqlException ex)
                            {
                                XtraMessageBox.Show("Lỗi tại thêm vào tồn kho:  " + ex.Message);
                            }
                        }
                    }
                    AddNhatKy("Thêm", TenChucNang);
                    XtraMessageBox.Show("Thêm Mặt hàng thành công");
                    txtPhieu.Text = inforSellBus.IDAuto();
                    detailSellBUS.deleteChiTietHoaDonAo();
                    grcHangHoa.DataSource = detailSellBUS.getHTDetailSellBuy();
                }
            }
        }
Example #12
0
 public int UpdateInforSell(InforDetailSell Infordetail)
 {
     return(inforSell.UpdateInforSell(Infordetail));
 }
Example #13
0
 public int InsertDetailSellGoods(InforDetailSell Infordetail)
 {
     return(inforSell.InsertDetailSellGoods(Infordetail));
 }