private void UpdateSoLuongMatHang()
        {
            tblmathangtraBL ctrmathangban = new tblmathangtraBL();
            tblmathangBL    ctrmathang    = new tblmathangBL();
            DataTable       dt            = new DataTable();

            dt = ctrmathangban.GetByHDID(txtID.Text.Trim());
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                string sidmathang = "";
                try { sidmathang = dt.Rows[i]["id_mathang"].ToString().Trim(); }
                catch { }
                string sidmathangban = "";
                try { sidmathangban = dt.Rows[i]["id"].ToString().Trim(); }
                catch { }
                if (sidmathang.Trim().Equals("") == false && sidmathangban.Trim().Equals("") == false)
                {
                    tblmathangtra objmathangban = new tblmathangtra();
                    objmathangban = ctrmathangban.GetByID(sidmathangban);
                    tblmathang objmathang = new tblmathang();
                    objmathang         = ctrmathang.GetByID(sidmathang);
                    objmathang.soluong = objmathang.soluong - objmathangban.soluong;
                    try { ctrmathang.Update(objmathang); }
                    catch { }
                }
            }
        }
 private void HienThiDSMatHang()
 {
     try
     {
         DataTable       dt  = new DataTable();
         tblmathangtraBL ctr = new tblmathangtraBL();
         dt = ctr.GetByHDID(txtID.Text.Trim());
         dt.Columns.Add("tt", typeof(Int32));
         flxMatHang.DataSource = dt;
         FormatGridMatHang();
     }
     catch { }
 }
        private void DelMatHang()
        {
            tblmathangBL    ctrmathang = new tblmathangBL();
            tblmathangtraBL ctr        = new tblmathangtraBL();
            string          kq         = "";
            string          sid        = "";

            try { sid = flxMatHang[flxMatHang.RowSel, "id"].ToString().Trim(); }
            catch { }
            if (sid.Trim().Equals("") == true)
            {
                flxMatHang.Rows.Remove(flxMatHang.RowSel);
                for (int j = 1; j < flxMatHang.Rows.Count; j++)
                {
                    flxMatHang[j, 0] = j;
                }
            }
            else
            {
                if (MessageBox.Show("Xác nhận xóa dữ liệu?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    //Cập nhật lại số lượng
                    tblmathang objmathang = new tblmathang();
                    string     sidmathang = flxMatHang[flxMatHang.RowSel, "id_mathang"].ToString().Trim();
                    objmathang = ctrmathang.GetByID(sidmathang);
                    tblmathangtra objmathangtra = new tblmathangtra();
                    objmathangtra      = ctr.GetByID(sid);
                    objmathang.soluong = objmathangtra.soluong + objmathang.soluong;
                    kq = ctr.Delete(sid);
                    if (kq.Trim().Equals("") == true)
                    {
                        ctrmathang.Update(objmathang);
                        flxMatHang.Rows.Remove(flxMatHang.RowSel);
                        double tongtien = 0;
                        for (int j = 1; j < flxMatHang.Rows.Count; j++)
                        {
                            flxMatHang[j, 0] = j;
                            try { tongtien = tongtien + Convert.ToDouble(flxMatHang[j, "thanhtien"].ToString().Trim()); }
                            catch { }
                        }
                        txtTongTien.Text = tongtien.ToString("N0", CultureInfo.InvariantCulture);
                    }
                }
            }
        }
        private void Save()
        {
            string             kq         = "";
            tbltienthanhtoanBL ctrtientt  = new tbltienthanhtoanBL();
            tblmathangBL       ctrmathang = new tblmathangBL();
            tblhoadontraBL     ctrhoadon  = new tblhoadontraBL();
            tblhoadontra       objhoadon  = new tblhoadontra();

            objhoadon = GetDataHoaDon();
            tblmathangtraBL      ctrmathangban = new tblmathangtraBL();
            List <tblmathangtra> lstmathang    = new List <tblmathangtra>();

            lstmathang = GetListMatHangTra();
            if (lstmathang != null)
            {
                if (objhoadon != null && lstmathang.Count > 0)
                {
                    if (txtID.Text.Trim().Equals("-1") == true)
                    {
                        kq = ctrhoadon.Insert(objhoadon);
                        if (kq.Trim().Equals("") == true)
                        {
                            txtID.Text = objhoadon.id.Trim();
                        }
                    }
                    else
                    {
                        kq = ctrhoadon.Update(objhoadon);
                        _ctrlog.Append(Data.use, "Sửa hóa đơn trả lại hàng của khách hàng: " + cbKhachHang.Text.Trim() + " ; id: " + objhoadon.id);
                    }
                    if (kq.Trim().Equals("") == true)
                    {
                        for (int i = 0; i < lstmathang.Count; i++)
                        {
                            tblmathangtra temp = new tblmathangtra();
                            temp = ctrmathangban.GetByID(lstmathang[i].id);
                            if (temp == null)
                            {
                                lstmathang[i].id_hoadon = objhoadon.id;
                                kq = ctrmathangban.Insert(lstmathang[i]);
                                if (kq.Trim().Equals("") == false)
                                {
                                    ctrhoadon.Delete(objhoadon.id);
                                    break;
                                }
                                else //Cập nhật lại số lượng còn trong kho
                                {
                                    tblmathang objmathang = new tblmathang();
                                    objmathang         = ctrmathang.GetByID(lstmathang[i].id_mathang.Trim());
                                    objmathang.soluong = objmathang.soluong + lstmathang[i].soluong;
                                    ctrmathang.Update(objmathang);
                                }
                            }
                            else
                            {
                                lstmathang[i].id_hoadon = objhoadon.id;
                                kq = ctrmathangban.Update(lstmathang[i]);
                                if (kq.Trim().Equals("") == false)
                                {
                                    break;
                                }
                                else //Cập nhật lại số lượng còn trong kho
                                {
                                    tblmathang objmathang = new tblmathang();
                                    objmathang         = ctrmathang.GetByID(lstmathang[i].id_mathang.Trim());
                                    objmathang.soluong = (objmathang.soluong - temp.soluong) + lstmathang[i].soluong;
                                    ctrmathang.Update(objmathang);
                                }
                            }
                        }
                        if (kq.Trim().Equals("") == false)
                        {
                            MessageBox.Show("Lỗi cập nhật hóa đơn trả lại hàng.\nChi tiết lỗi: " + kq, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                        else
                        {
                            if (txtID.Text.Trim().Equals("-1") == true)
                            {
                                txtID.Text = objhoadon.id.Trim();
                                _ctrlog.Append(Data.use, "Thêm mới hóa đơn trả lại hàng cho khách hàng: " + cbKhachHang.Text.Trim() + " ; id: " + objhoadon.id);
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Lỗi cập nhật hóa đơn trả lại hàng.\nChi tiết lỗi: " + kq, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }
            }
            if (kq.Trim().Equals("") == true && lstmathang != null)
            {
                MessageBox.Show("Cập nhật hóa đơn trả lại hàng thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                HienThiTTHoaDon();
                HienThiDSMatHang();
                ultraToolbarsManager1.Tools["btn_Del"].SharedProps.Visible     = true;
                ultraToolbarsManager1.Tools["btnExportHD"].SharedProps.Visible = true;
            }
        }
        private List <tblmathangtra> GetListMatHangTra()
        {
            tblmathangBL    ctrmathang    = new tblmathangBL();
            tblmathangtraBL ctrmathangban = new tblmathangtraBL();

            try
            {
                List <tblmathangtra> lst = new List <tblmathangtra>();
                for (int i = 1; i < flxMatHang.Rows.Count; i++)
                {
                    if (flxMatHang[i, "tt"].ToString().Trim().Equals("1") == true || flxMatHang[i, "tt"].ToString().Trim().Equals("2") == true)
                    {
                        tblmathangtra obj = new tblmathangtra();
                        if (flxMatHang[i, "tt"].ToString().Trim().Equals("1") == true)
                        {
                            obj.id = Guid.NewGuid().ToString();
                        }
                        else
                        {
                            obj.id = flxMatHang[i, "id"].ToString().Trim();
                        }
                        try { obj.soluong = Convert.ToInt32(flxMatHang[i, "soluong"].ToString().Trim()); }
                        catch { obj.soluong = 0; }
                        try { obj.gianhaplai = Convert.ToDouble(flxMatHang[i, "gianhaplai"].ToString().Trim()); }
                        catch { obj.gianhaplai = 0; }
                        if (flxMatHang[i, "id_mathang"].ToString().Trim().Equals("") == false || obj.soluong > 0)
                        {
                            if (flxMatHang[i, "id_mathang"].ToString().Trim().Equals("") == true)
                            {
                                MessageBox.Show("Mặt hàng chưa được nhập", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                flxMatHang.Select(i, flxMatHang.Cols["mathang"].Index);
                                flxMatHang.SetUserData(i, 0, "Mặt hàng chưa được nhập");
                                flxMatHang.Rows[i].Style = cs1;
                                return(null);
                            }
                            if (obj.gianhaplai == 0)
                            {
                                MessageBox.Show("Giá nhập lại chưa được nhập", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                flxMatHang.Select(i, flxMatHang.Cols["gianhaplai"].Index);
                                flxMatHang.SetUserData(i, 0, "Giá nhập lại chưa được nhập");
                                flxMatHang.Rows[i].Style = cs1;
                                return(null);
                            }
                            if (obj.soluong == 0)
                            {
                                MessageBox.Show("Số lượng hàng nhập lại phải lớn hơn 0", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                flxMatHang.Select(i, flxMatHang.Cols["soluong"].Index);
                                flxMatHang.SetUserData(i, 0, "Số lượng hàng nhập lại phải lớn hơn 0");
                                flxMatHang.Rows[i].Style = cs1;
                                return(null);
                            }
                            obj.id_mathang = flxMatHang[i, "id_mathang"].ToString().Trim();
                            //obj.gianhaplai = Convert.ToDouble(flxMatHang[i, "gianhaplai"].ToString().Trim());
                            try { obj.ghichu = flxMatHang[i, "ghichu"].ToString().Trim(); }
                            catch { obj.ghichu = ""; }
                            obj.ngaytao = DateTime.Now;
                            lst.Add(obj);
                        }
                    }
                }
                return(lst);
            }
            catch { return(null); }
        }
        private void Save()
        {
            string             kq         = "";
            tbltienthanhtoanBL ctrtientt  = new tbltienthanhtoanBL();
            tblmathangBL       ctrmathang = new tblmathangBL();
            tblhoadontraBL     ctrhoadon  = new tblhoadontraBL();
            tblhoadontra       objhoadon  = new tblhoadontra();

            objhoadon = GetDataHoaDon();
            tblmathangtraBL      ctrmathangban = new tblmathangtraBL();
            List <tblmathangtra> lstmathang    = new List <tblmathangtra>();

            lstmathang = GetListMatHangTra();
            if (lstmathang != null)
            {
                if (objhoadon != null && lstmathang.Count > 0)
                {
                    if (txtID.Text.Trim().Equals("-1") == true)
                    {
                        kq = ctrhoadon.Insert(objhoadon);
                    }
                    else
                    {
                        kq = ctrhoadon.Update(objhoadon);
                    }
                    if (kq.Trim().Equals("") == true)
                    {
                        _ctrlog.Append(Data.use, "Sửa hóa đơn trả lại hàng của khách hàng: " + cbKhachHang.Text.Trim() + " ; id: " + objhoadon.id);
                        for (int i = 0; i < lstmathang.Count; i++)
                        {
                            tblmathangtra temp = new tblmathangtra();
                            temp = ctrmathangban.GetByID(lstmathang[i].id);
                            if (temp == null)
                            {
                                lstmathang[i].id_hoadon = objhoadon.id;
                                kq = ctrmathangban.Insert(lstmathang[i]);
                                if (kq.Trim().Equals("") == false)
                                {
                                    ctrhoadon.Delete(objhoadon.id);
                                    break;
                                }
                                else //Cập nhật lại số lượng còn trong kho
                                {
                                    tblmathang objmathang = new tblmathang();
                                    objmathang         = ctrmathang.GetByID(lstmathang[i].id_mathang.Trim());
                                    objmathang.soluong = objmathang.soluong + lstmathang[i].soluong;
                                    ctrmathang.Update(objmathang);
                                }
                            }
                            else
                            {
                                lstmathang[i].id_hoadon = objhoadon.id;
                                kq = ctrmathangban.Update(lstmathang[i]);
                                if (kq.Trim().Equals("") == false)
                                {
                                    break;
                                }
                                else //Cập nhật lại số lượng còn trong kho
                                {
                                    tblmathang objmathang = new tblmathang();
                                    objmathang         = ctrmathang.GetByID(lstmathang[i].id_mathang.Trim());
                                    objmathang.soluong = (objmathang.soluong - temp.soluong) + lstmathang[i].soluong;
                                    ctrmathang.Update(objmathang);
                                }
                            }
                        }
                        if (kq.Trim().Equals("") == false)
                        {
                            MessageBox.Show("Lỗi cập nhật hóa đơn trả lại hàng.\nChi tiết lỗi: " + kq, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                        else
                        {
                            if (txtID.Text.Trim().Equals("-1") == true)
                            {
                                txtID.Text = objhoadon.id.Trim();
                                _ctrlog.Append(Data.use, "Thêm mới hóa đơn trả lại hàng cho khách hàng: " + cbKhachHang.Text.Trim() + " ; id: " + objhoadon.id);
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Lỗi cập nhật hóa đơn trả lại hàng.\nChi tiết lỗi: " + kq, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }
            }
            if (kq.Trim().Equals("") == true && lstmathang != null)
            {
                MessageBox.Show("Cập nhật hóa đơn trả lại hàng thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                HienThiDSHoaDon();
                int irowsfind = 0;
                irowsfind = flxHoaDon.FindRow(objhoadon.id, 1, flxHoaDon.Cols["id"].Index, true);
                flxHoaDon.Select(irowsfind, flxHoaDon.Cols["ngaytao"].Index, true);
                string sidhdtemp = ""; try { sidhdtemp = flxHoaDon[irowsfind, "id"].ToString().Trim(); }
                catch { }
                HienThiTTHoaDon(sidhdtemp);
                HienThiDSMatHang(sidhdtemp);
            }
        }