Пример #1
0
        private void gridViewBillProduct_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            if (e.RowHandle >= 0)
            {
                if ((currentReceipt.Trangthai < 1) || (Program.userLevel == Level.Admin))
                {
                    if (e.Column == colDeleteCTHD)
                    {
                        ////delete here
                        //get the number of avalable product with this bill
                        DataSet dsCTHD = new DataAccess().getChitietHDXuatByIDSanphamAndIDHoadon(Convert.ToInt32(gridViewBillProduct.GetRowCellValue(e.RowHandle, "IDSanpham")), iCurrentReceiptID);
                        int i;
                        int sum = 0;
                        for (i = 0; i < dsCTHD.Tables[0].Rows.Count; i++)
                        {
                            sum = sum + Convert.ToInt32(dsCTHD.Tables[0].Rows[i]["Soluong"]);
                        }
                        ChitietHDXuat obj = new ChitietHDXuat();
                        obj.Giam = Convert.ToInt32(gridViewBillProduct.GetRowCellValue(e.RowHandle, "Giam"));
                        obj.IDGiaxuat = Convert.ToInt32(gridViewBillProduct.GetRowCellValue(e.RowHandle, "IDGiaXuatSP"));
                        obj.IDHoadonXuat = Convert.ToInt32(gridViewBillProduct.GetRowCellValue(e.RowHandle, "IDHoadonXuat"));
                        obj.IDSanpham = Convert.ToInt32(gridViewBillProduct.GetRowCellValue(e.RowHandle, "IDSanpham"));
                        obj.Soluong = Convert.ToInt32(gridViewBillProduct.GetRowCellValue(e.RowHandle, "Soluong"));
                        obj.Bep = Convert.ToBoolean(gridViewBillProduct.GetRowCellValue(e.RowHandle, "Bep"));
                        if (sum <= 0)
                        {
                            MessageBox.Show("Hiện tại không còn sản phầm này trong hóa đơn", "Thông báo");
                            return;
                        }
                        frmReturnProduct rt = new frmReturnProduct(false,sum, Convert.ToString(gridViewBillProduct.GetRowCellValue(e.RowHandle, "TenSanPham")));
                        rt.ShowDialog();
                        int rtnum = rt.getReturnNum();
                        // bool directRet = rt.getDirectRet();
                        string text = rt.getText();
                        rt.Close();
                        if (rtnum <= 0) return;
                        obj.Soluong = -rtnum;
                        obj.Ghichu = text;
                        if (new DataAccess().insertChitietHDXuat(obj) < 0)
                            MessageBox.Show(this, "Trả sản phẩm không thành công", "Thông báo lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        else
                            updateBillDisplay(iCurrentReceiptID);

                    }

                }
                else
                {
                    MessageBox.Show(this, "Hóa đơn đã khóa sổ, không thay đổi được. Liên hệ quản lý để thay đổi", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }

            }
        }
Пример #2
0
        private void AddSP(int num)
        {
            //add a quantity of a product to current bill
            //check if the parameters are legal

            if (gridViewSanPham.FocusedRowHandle >= 0)
            {
                //list all products by ID
                int ID = Convert.ToInt32(gridViewSanPham.GetRowCellValue(gridViewSanPham.FocusedRowHandle, "IDSanPham"));
                iCurrentProductID = ID;
                int IDLoaiSP = Convert.ToInt32(gridViewSanPham.GetRowCellValue(gridViewSanPham.FocusedRowHandle, "IDNhomSP"));
                //DataSet prdPrice = new DataAccess().getGiaXuatSPByIDSanPham(ID);
                //if ((prdPrice != null) && (prdPrice.Tables[0].Rows.Count > 0))
                //{
                //txtPrice.Text = prdPrice.Tables[0].Rows[0][1].ToString();
                if (iCurrentReceiptID >= 0)
                {
                    if (currentReceipt.Trangthai > 1)
                    {
                        MessageBox.Show("Hóa đơn này đã đóng, không được thay đổi", "Thông báo");
                        return;
                    }
                    else if ((currentReceipt.Trangthai > 0) && (Program.userLevel != Level.Admin))
                    {
                        MessageBox.Show("Đăng nhập với quyền Quản lý để thay đổi", "Thông báo");
                        return;
                    }
                    if(currentReceipt.Trangthai > 0)
                    {
                        if (MessageBox.Show("Bạn có muốn thêm sản phẩm vào hóa đơn đã đóng", "Cảnh báo", MessageBoxButtons.YesNo) == DialogResult.No)
                            return;
                    }
                    //get khuyen mai with this product ID
                    DataSet ds = new DataAccess().getKhuyenmaiByIDLoaiSP(IDLoaiSP, DateTime.Now.Date);
                    //if (ds == null)
                    //    return;
                    //if (ds.Tables[0].Rows.Count == 0)
                    //{
                    //get the number of added product
                    frmReturnProduct rt = new frmReturnProduct(true, 0, Convert.ToString(gridViewSanPham.GetRowCellValue(gridViewSanPham.FocusedRowHandle, "TenSanPham")));
                    rt.ShowDialog();
                    int rtnum = rt.getReturnNum();
                    // bool directRet = rt.getDirectRet();
                    string text = rt.getText();
                    rt.Close();
                    if (rtnum <= 0) return;
                    ChitietHDXuat obj = new ChitietHDXuat();
                    obj.IDHoadonXuat = iCurrentReceiptID;
                    obj.IDSanpham = iCurrentProductID;
                    obj.IDGiaxuat = Convert.ToInt32(gridViewSanPham.GetRowCellValue(gridViewSanPham.FocusedRowHandle, "IDGiaXuatSP"));
                    obj.Soluong = rtnum;
                    if (ds != null)
                    {
                        try
                        {
                            obj.Giam = Convert.ToInt32(ds.Tables[0].Rows[0]["Giam"]);
                        }
                        catch (Exception ex)
                        {
                            obj.Giam = 0;
                        }
                    }
                    else
                        obj.Giam = 0;
                    obj.Bep = false;
                    int res = new DataAccess().insertChitietHDXuat(obj);
                    if (res < 0)
                    {
                        MessageBox.Show("Không thêm sản phẩm " + gridViewSanPham.GetRowCellValue(gridViewSanPham.FocusedRowHandle, "TenSanPham") + " vào hóa đơn hiện tại", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }

                    updateBillDisplay(iCurrentReceiptID);
                    int i;
                    for (i = 0; i < gridViewBillProduct.RowCount; i++)
                    {
                        if (Convert.ToInt32(gridViewBillProduct.GetRowCellValue(i, "IDSanpham")) == iCurrentProductID)
                            break;
                    }
                    gridViewBillProduct.Focus();
                    gridViewBillProduct.FocusedRowHandle = i;
                    gridViewBillProduct.FocusedColumn = colBillNum;

                }
            }
        }