private void btnXoa_Click(object sender, EventArgs e)
        {
            GridView gridView = grcBangKeTongHop.FocusedView as GridView;
            var      maPhieu  = gridView.GetRowCellValue(gridView.FocusedRowHandle, "MaPhieuChuyen"); // lấy được mã phiếu

            if (maPhieu == null)
            {
                XtraMessageBox.Show("Mời bạn chọn mã phiếu nhập hàng cần xóa");
            }
            else
            {
                // cấp nhật lại số lượng 2 bên kho đã chuyển cho nhau:

                // lấy được mã phiếu chuyển

                // lấy các thông tin chi tiết của phiếu chuyểnn:

                DataTable data = detailTransBUS.getDetailTransFromMa((string)maPhieu);



                foreach (DataRow dataRow in data.Rows)
                {
                    TonKho tkChuyen = new TonKho();
                    TonKho tkNhan   = new TonKho();

                    tkChuyen.MaKho = dataRow["MaKhoXuat"].ToString();
                    tkNhan.MaKho   = dataRow["MaKhoNhan"].ToString();
                    tkNhan.MaHang  = tkChuyen.MaHang = dataRow["MaHang"].ToString();

                    int slChuyen = int.Parse(dataRow["SoLuong"].ToString());

                    // lấy số lượng hiện tại của các mặt hàng mỗi kho
                    int slKhoChuyen = tkBUS.getSoLuong(tkChuyen);
                    int slKhoNhan   = tkBUS.getSoLuong(tkNhan);

                    tkBUS.UpdateSoLuong(tkChuyen, slKhoChuyen + slChuyen);
                    tkBUS.UpdateSoLuong(tkNhan, slKhoNhan - slChuyen);
                }

                try
                {
                    // xóa thông tin chuyển
                    inforTransBUS.DeleteInforTransWarehouse((string)maPhieu);
                    // xóa chi tiết
                    detailTransBUS.DeleteDetailTransWarehouse((string)maPhieu);
                    XtraMessageBox.Show("Xóa thành công phiếu chuyển kho");
                    grcBangKeTongHop.DataSource = inforTransBUS.getListInforTrans(a, b, 0);
                }
                catch (SqlException ex)
                {
                    XtraMessageBox.Show("Lỗi tại xóa thông tin chuyển kho:  " + ex.Message);
                }
            }
        }
        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 #3
0
        private void btnLuuVaThem_Click(object sender, EventArgs e)
        {
            // lấy những mặt hàng từ kho xuất vào kho nhận:
            bool   check     = true;
            int    count     = grvChuyenKho.RowCount;
            string maKhoXuat = "";
            string maKhoNhan = "";

            if (count < 2)
            {
                XtraMessageBox.Show("Mời bạn chọn các mặt hàng cần chuyền");
                check = false;
            }
            else // khi có các mặt hàng:
            {
                // Lấy thông tin chuyển kho để insert:

                maKhoXuat = inforTrans.MaKhoXuat = cbKhoXuatHang.EditValue != null?cbKhoXuatHang.EditValue.ToString() : null;

                maKhoNhan = inforTrans.MaKhoNhan = cbKhoNhanHang.EditValue != null?cbKhoNhanHang.EditValue.ToString() : null;

                for (int i = 0; i < count - 1; i++)
                {
                    TonKho  tkXuat = new TonKho();
                    TonKho  tkNhan = new TonKho();
                    DataRow data   = grvChuyenKho.GetDataRow(i);
                    tkNhan.MaHang       = tkXuat.MaHang = detailTrans.MaHang = data[1].ToString();
                    detailTrans.SoLuong = int.Parse(data[4].ToString());
                    // Check kho xuất
                    tkXuat.MaKho = maKhoXuat;
                    int slTon;
                    int slHienTai = slTon = tkBUS.getSoLuong(tkXuat);
                    slHienTai = slHienTai - detailTrans.SoLuong;
                    int checkMaHangXuat = tkBUS.checkMatHang(detailTrans.MaHang, maKhoXuat);

                    if (checkMaHangXuat != 1) // chưa có
                    {
                        DialogResult dr;
                        dr = XtraMessageBox.Show("Mặt hàng " + detailTrans.TenHang + " Hiện chưa có trong kho: " + maKhoXuat + " Nếu bạn thực hiện. Số lượng tồn sẽ bị âm", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                        if (dr == DialogResult.No)
                        {
                            check = false;
                            break;
                        }
                    }
                    else // có rồi
                    {
                        if (slHienTai <= 0)
                        {
                            DialogResult dr;
                            dr = XtraMessageBox.Show("Mặt hàng " + detailTrans.TenHang + " Hiện có " + slTon + " trong kho: " + maKhoXuat + " Nếu bạn thực hiện. Số lượng tồn sẽ bị âm", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                            if (dr == DialogResult.No)
                            {
                                check = false;
                                break;
                            }
                        }
                    }
                }
            }
            if (check)
            {
                inforTrans.MaNVXuat = cbNguoiChuyen.EditValue != null?cbNguoiChuyen.EditValue.ToString() : null;

                inforTrans.MaNVNhan = cbNguoiNhan.EditValue != null?cbNguoiNhan.EditValue.ToString() : null;

                inforTrans.NgayLap          = DateTime.Parse(String.Format("{0:MM/dd/yyyy}", dtNgayChuyen.Text));
                inforTrans.GhiChu           = txtGhiChu.Text;
                detailTrans.MaPhieuChuyen   = inforTrans.MaPhieuChuyen = txtPhieuCK.Text;
                inforTrans.SoPhieuChuyenTay = txtPhieuChuyenTay.Text;
                inforTrans.TongTienChuyen   = getTongTien();

                int checkMPhieu = inforTransBUS.checkMaPhieuChuyenKho(txtPhieuCK.Text);

                try   // kiểm tra xem đã có phiếu hay chưa. neeuc có rồi thì upate else: insert
                {
                    if (checkMPhieu == 1)
                    {
                        inforTransBUS.UpdateInforTranWarehouse(inforTrans);
                    }
                    else
                    {
                        inforTransBUS.InsertInforTranWarehouse(inforTrans);
                    }
                }
                catch (SqlException ex)
                {
                    XtraMessageBox.Show("Lỗi tại thêm thông tin chuyển kho: " + ex.Message);
                }
                //Insert Chi Tiết chuyển kho:

                int isDelete = 0;

                for (int i = 0; i < count - 1; i++)
                {
                    TonKho  tkXuat = new TonKho();
                    TonKho  tkNhan = new TonKho();
                    DataRow data   = grvChuyenKho.GetDataRow(i);
                    tkNhan.MaHang         = tkXuat.MaHang = detailTrans.MaHang = data[1].ToString();
                    detailTrans.TenHang   = data[2].ToString();
                    detailTrans.DonVi     = data[3].ToString();
                    detailTrans.SoLuong   = int.Parse(data[4].ToString());
                    detailTrans.DonGia    = float.Parse(data[5].ToString());
                    detailTrans.ThanhTien = float.Parse(data[6].ToString());
                    try
                    {
                        if (checkMPhieu == 1 && isDelete == 0)
                        {
                            ckBUS.DeleteDetailTransWarehouse(txtPhieuCK.Text);
                            isDelete = 1;
                        }
                        ckBUS.InsertDetailTransWarehouse(detailTrans);
                    }
                    catch (SqlException ex)
                    {
                        XtraMessageBox.Show("Lỗi thêm chi tiết chuyển kho: " + ex.Message);
                    }

                    // Xử lý về tồn kho:

                    // Lấy từ KHO A chuyển Sang Kho B:
                    // Lấy số lượng mặt hàng chuyển và kho chuyển:
                    // Nếu mặt hàng chưa có trong KHO mà vẫn chuyển thì mặt hàng đó bị âm
                    // Lấy bên này cộng vào bên kia

                    // Check kho xuất
                    tkXuat.MaKho = maKhoXuat;
                    int slTon;
                    int slHienTai = slTon = tkBUS.getSoLuong(tkXuat);
                    slHienTai = slHienTai - detailTrans.SoLuong;
                    int checkMaHangXuat = tkBUS.checkMatHang(detailTrans.MaHang, maKhoXuat);

                    if (checkMaHangXuat != 1) // chưa có
                    {
                        try
                        {
                            int checkInsert = tkBUS.insertTonKho(tkXuat, slHienTai);
                        }
                        catch (SqlException ex)
                        {
                            XtraMessageBox.Show("Lỗi khi update số lượng kho nhận:  " + ex.Message);
                        }
                    }
                    else // có rồi
                    {
                        try
                        {
                            tkBUS.UpdateSoLuong(tkXuat, slHienTai);  // nếu có rồi thì chỉ cần update số luọng
                        }
                        catch (SqlException ex)
                        {
                            XtraMessageBox.Show("Lỗi khi update số lượng kho nhận:  " + ex.Message);
                        }
                    }
                    // check kho nhận
                    int checkMaHangNhan = tkBUS.checkMatHang(detailTrans.MaHang, maKhoNhan);
                    tkNhan.MaKho = maKhoNhan;
                    int slTonNhan;
                    int slHienTaiNhan = slTonNhan = tkBUS.getSoLuong(tkNhan);
                    slHienTaiNhan = slHienTaiNhan + detailTrans.SoLuong;
                    if (checkMaHangNhan == 1) // nếu có rồi
                    {
                        try
                        {
                            tkBUS.UpdateSoLuong(tkNhan, slHienTaiNhan);
                        }
                        catch (SqlException ex)
                        {
                            XtraMessageBox.Show("Lỗi khi update số lượng kho nhận:  " + ex.Message);
                        }
                    }
                    else // chưa có thì thêm vào
                    {
                        try
                        {
                            tkBUS.insertTonKho(tkNhan, slHienTaiNhan);
                        }
                        catch (SqlException ex)
                        {
                            XtraMessageBox.Show("Lỗi khi thêm mặt hàng vô kho nhận:  " + ex.Message);
                        }
                    }
                }
                XtraMessageBox.Show("Giao dịch thành công");
                txtPhieuCK.Text         = inforTransBUS.IDAuto();
                grcChuyenKho.DataSource = detailBuyBus.getChiTietHoaDonMuaHang();
            }
            else
            {
                XtraMessageBox.Show("Giao dịch thất bại");
            }
        }
Example #4
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            bool   check = true;
            TonKho tk    = new TonKho();
            int    count = grdHoaDon.RowCount;

            //float TongTienMua = 0;

            string maPhieu = "";
            int    sl      = 0;

            if (cbTenNCC.Text == "")
            {
                XtraMessageBox.Show("Thiếu trường thông tin");
                cbTenNCC.Focus();
            }
            else if (count < 2)
            {
                XtraMessageBox.Show("Mời bạn chọn mặt hàng");
                grdHoaDon.Focus();
            }
            else
            {
                InforDetailBuy inforBuy = new InforDetailBuy();
                inforBuy.MaPhieu = txtPhieu.Text;
                inforBuy.TenNCC  = cbTenNCC.Text;
                inforBuy.MaNCC   = txtMaNCC.Text;
                inforBuy.NgayLap = DateTime.Parse(String.Format("{0:MM/dd/yyyy}", dtNgay.Text));

                inforBuy.HanThanhToan = DateTime.Parse(String.Format("{0:MM/dd/yyyy}", dtHanThanhToan.Text));
                inforBuy.MaNVLap      = cbNhanVien.EditValue != null?cbNhanVien.EditValue.ToString() : null;

                inforBuy.MaKhoNhap = cbKhoNhap.EditValue != null?cbKhoNhap.EditValue.ToString() : null;

                inforBuy.VAT         = float.Parse(calVAT.Text);
                inforBuy.CK          = float.Parse(calCK.Text);
                inforBuy.TongTienMua = getTongTien();
                inforBuy.TongTienTra = float.Parse(calTongTienTra.Text);
                tk.MaKho             = inforBuy.MaKhoNhap; // lấy Mã kho của măt hàng mua vào

                inforBuy.Ma_PhuongThuc = cbHinhThucThanhToan.EditValue != null?cbHinhThucThanhToan.EditValue.ToString() : null;

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

                int checkMPhieu = inforBUS.checkMaPhieuMua(txtPhieu.Text);



                try
                {
                    // check xem mã đã có hay chưa. nếu chưa thì insert. COnf có rồi thò updaye
                    if (checkMPhieu == 1)
                    {
                        inforBUS.UpdateInforBuy(inforBuy);
                    }

                    else
                    {
                        inforBUS.InsertDetailBuyGoods(inforBuy);
                    }
                }
                catch (SqlException ex)
                {
                    XtraMessageBox.Show("Lỗi  DetailBuyGoods:  " + ex.Message);
                }

                int isDelete = 0;
                for (int i = 0; i < count - 1; i++)
                {
                    DetailBuyGoods detailBuy = new DetailBuyGoods();
                    DataRow        data      = grdHoaDon.GetDataRow(i);

                    detailBuy.MaPhieu = txtPhieu.Text;
                    maPhieu           = txtPhieu.Text;


                    txtMaNCC.Text = cbTenNCC.EditValue != null?cbTenNCC.EditValue.ToString() : null;

                    detailBuy.MaHang = data[1].ToString();

                    detailBuy.TenHang = detailBuy.TenHang = data[2].ToString();
                    detailBuy.DonVi   = data[3].ToString();
                    sl = detailBuy.SoLuong = int.Parse(data[4].ToString());
                    detailBuy.DonGia    = float.Parse(data[5].ToString());
                    detailBuy.ThanhTien = float.Parse(data[6].ToString());

                    //  TongTienMua += detailBuy.ThanhTien;

                    tk.MaHang = data[1].ToString();  // lấy mã mặt hàng

                    try
                    {
                        if (checkMPhieu == 1 && isDelete == 0) //có rồi
                        {
                            // xóa rồi thêm lại
                            detailBuyBus.DeleteDetailBuy(detailBuy.MaPhieu);
                            isDelete = 1;
                        }


                        detailBuyBus.InsertDetailBuyGoods(detailBuy);
                    }
                    catch (SqlException ex)
                    {
                        XtraMessageBox.Show("Lỗi tại thêm chi tiết phiếu mua:  " + ex.Message);
                    }

                    // nếu mặt hàng mua đã có trong Kho rồi thì chỉ cần Update lại số lượng
                    // còn nếu chưa có trong kho thì cần thêm mới vào tồn kho
                    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)
                    {
                        tkBus.UpdateSoLuong(tk, slHienTai);  // nếu có rồi thì chỉ cần update số luọng
                    }
                    else // chưa có thì insert
                    {
                        int checkInsertTonKho = tkBus.insertTonKho(tk, sl);
                        if (checkInsertTonKho == 0)
                        {
                            check = false;
                        }
                    }
                }
                if (check == false)
                {
                    XtraMessageBox.Show("Thêm Mặt hàng thất bại");
                }
                else
                {
                    XtraMessageBox.Show("Thêm Mặt hàng thành công");
                    AddNhatKy("Thêm", TenChucNang);
                    txtPhieu.Text = inforBUS.IDAuto();
                    detailBuyBus.deleteChiTietHoaDonAo();
                    grcHangHoa.DataSource = detailBuyBus.getChiTietHoaDonMuaHang();
                }
            }
        }