Пример #1
0
        public static int AddDetails(int ID_phieu_nhap, int Trang_thai, GridView gridViewDetails, Entities db = null)
        {
            if (ID_phieu_nhap < 1)
            {
                return(0);
            }

            if (db == null)
            {
                db = new Entities();
            }

            int n  = gridViewDetails.RowCount;
            var pn = db.IMP_PhieuNhap.FirstOrDefault(t => t.ID_phieu_nhap == ID_phieu_nhap);

            for (int i = 0; i < n; i++)
            {
                IMP_PhieuNhapCT entity = (IMP_PhieuNhapCT)gridViewDetails.GetRow(i);

                if (entity == null || entity.ID_vat_tu == 0 || entity.So_luong == 0)
                {
                    continue;
                }

                entity.ID_phieu_nhap = ID_phieu_nhap;
                db.IMP_PhieuNhapCT.Add(entity);

                // Cập nhật vật tư và số lượng vào kho
                if (pn.Trang_thai == 0 && Trang_thai == 1)
                {
                    // Kiểm tra xem trong kho có vật tư trong phiếu nhập chi tiết hay không
                    var vt = db.STO_KhoVatTuCT.FirstOrDefault(t => t.ID_kho == pn.ID_kho && t.ID_vat_tu == entity.ID_vat_tu);

                    if (vt == null)
                    {
                        // Vật tư này trong kho hiện không có nên thêm vào
                        db.STO_KhoVatTuCT.Add(new STO_KhoVatTuCT
                        {
                            ID_kho        = pn.ID_kho,
                            ID_vat_tu     = entity.ID_vat_tu,
                            So_luong      = entity.So_luong,
                            ID_phieu_nhap = entity.ID_phieu_nhap
                        });
                    }
                    else
                    {
                        // Trong kho đã có vật tư này nên cập nhật số lượng
                        vt.So_luong     += entity.So_luong;
                        vt.ID_phieu_nhap = entity.ID_phieu_nhap;
                    }
                }
            }

            pn.Trang_thai = Trang_thai;

            return(db.SaveChanges());
        }
Пример #2
0
        private void grvPhieuNhapCT_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e)
        {
            bool   bError = false;
            string sError = "";

            var ID_vat_tu = grvPhieuNhapCT.GetRowCellValue(e.RowHandle, "ID_vat_tu");

            if (ID_vat_tu.Equals(0))
            {
                bError  = true;
                sError += "\n Chưa chọn vật tư.";
            }

            var So_luong = grvPhieuNhapCT.GetRowCellValue(e.RowHandle, "So_luong");

            if (So_luong == null || double.Parse(So_luong.ToString()) == 0)
            {
                bError  = true;
                sError += "\n Số lượng phải lớn hơn 0.";
            }

            var Don_gia = grvPhieuNhapCT.GetRowCellValue(e.RowHandle, "Don_gia");

            if (Program.CurrentUser.ID_nhan_vien == null)
            {
                IMP_PhieuNhapCT pnct = (IMP_PhieuNhapCT)grvPhieuNhapCT.GetFocusedRow();

                if (pnct.STO_VatTu.STO_LoaiVatTu.Ten_loai_vat_tu.StartsWith("NAN"))
                {
                    if (Don_gia != null)
                    {
                        bError  = true;
                        sError += "\n Vui lòng không nhập giá nhập cho vật tư loại NAN.";
                    }
                }
            }

            int n = grvPhieuNhapCT.RowCount;

            for (int i = 0; i < n; i++)
            {
                if (i != e.RowHandle)
                {
                    var id = grvPhieuNhapCT.GetRowCellValue(i, "ID_vat_tu");

                    if (ID_vat_tu.Equals(id))
                    {
                        bError  = true;
                        sError += "\n Không được chọn trùng vật tư.";
                        break;
                    }
                }
            }

            if (bError)
            {
                e.ErrorText = sError + "\n Bạn có muốn sửa lại không?\n";
                e.Valid     = false;
                //XtraMessageBox.Show(sError, "Lỗi dữ liệu", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
        }
Пример #3
0
        public static int Update(int ID_phieu_nhap, GridView gridViewDetails, object ID_nhan_vien_nhap, object ID_nha_cung_cap, object ID_kho, object So_chung_tu_goc, object Ngay_nhap, object Ghi_chu, int ID_loai_nhap = 1, int Trang_thai = 0, Entities db = null)
        {
            if (db == null)
            {
                db = new Entities();
            }

            var pn = db.IMP_PhieuNhap.FirstOrDefault(t => t.ID_phieu_nhap == ID_phieu_nhap);

            if (pn == null)
            {
                return(0);
            }

            // Update Phieu nhap
            if (pn.Trang_thai != -1)
            {
                if (ID_kho == null || Ngay_nhap == null)
                {
                    return(0);
                }

                if (pn.Trang_thai == 0 && ID_kho != null)
                {
                    pn.ID_kho = (int)ID_kho;
                }

                if (Ngay_nhap != null)
                {
                    pn.Ngay_nhap = (DateTime)Ngay_nhap;
                }

                pn.ID_nguoi_sua = Program.CurrentUser.ID_nguoi_dung;
                pn.Ngay_sua     = QLK_DongLuc.Helper.DatabaseHelper.GetDatabaseDate();
                //pn.ID_loai_nhap = ID_loai_nhap;

                if (ID_loai_nhap == 2)
                {
                    pn.ID_nha_cung_cap = null;
                    pn.So_chung_tu_goc = null;
                }
                else
                {
                    if (ID_nha_cung_cap != null)
                    {
                        pn.ID_nha_cung_cap = (int)ID_nha_cung_cap;
                    }

                    if (So_chung_tu_goc != null)
                    {
                        pn.So_chung_tu_goc = So_chung_tu_goc.ToString();
                    }
                }

                if (ID_nhan_vien_nhap != null)
                {
                    pn.ID_nhan_vien_nhap = (int)ID_nhan_vien_nhap;
                }

                if (Ghi_chu != null)
                {
                    pn.Ghi_chu = Ghi_chu.ToString();
                }
            }

            // Update details
            int        n  = gridViewDetails.RowCount;
            List <int> ct = new List <int>();

            // Thêm mới và cập nhật chi tiết
            for (int i = 0; i < n; i++)
            {
                IMP_PhieuNhapCT entity = (IMP_PhieuNhapCT)gridViewDetails.GetRow(i);

                if (entity == null || entity.ID_vat_tu == 0 || entity.So_luong == 0)
                {
                    continue;
                }

                IMP_PhieuNhapCT item;
                item = pn.IMP_PhieuNhapCT.FirstOrDefault(t => t.ID_vat_tu == entity.ID_vat_tu);

                if (entity.ID_phieu_nhap == 0)
                {
                    entity.ID_phieu_nhap = ID_phieu_nhap;
                }

                if (item == null)
                {
                    // Thêm mới
                    item = db.IMP_PhieuNhapCT.Add(entity);
                }
                else
                {
                    //Cập nhật
                    item.So_luong = entity.So_luong;
                    item.Don_gia  = entity.Don_gia;
                }

                ct.Add(item.ID_vat_tu);

                // Kiểm tra xem trong kho có vật tư trong phiếu nhập chi tiết hay không
                var vt = db.STO_KhoVatTuCT.FirstOrDefault(t => t.ID_kho == pn.ID_kho && t.ID_vat_tu == item.ID_vat_tu);

                // Cập nhật vật tư và số lượng vào kho
                if (pn.Trang_thai == 0 && Trang_thai == 1)
                {
                    if (vt == null)
                    {
                        // Vật tư này trong kho hiện không có nên thêm vào
                        db.STO_KhoVatTuCT.Add(new STO_KhoVatTuCT
                        {
                            ID_kho    = pn.ID_kho,
                            ID_vat_tu = item.ID_vat_tu,
                            So_luong  = item.So_luong
                        });
                    }
                    else
                    {
                        // Trong kho đã có vật tư này nên cập nhật số lượng
                        vt.So_luong += item.So_luong;
                    }
                }

                // Xác thực thì cập nhật đơn giá nhập và phiếu nhập cuối và cập nhật tổng tiền vào kho
                if (pn.Trang_thai != -1 && Trang_thai == -1)
                {
                    pn.Tong_tien    += (decimal)item.So_luong * (decimal)item.Don_gia;
                    vt.Don_gia_nhap  = item.Don_gia;
                    vt.ID_phieu_nhap = item.ID_phieu_nhap;
                }
            }

            // Xóa các chi tiết không có trong danh sách chi tiết mới
            if (pn.Trang_thai == 0 && Trang_thai == 0)
            {
                var tmp = pn.IMP_PhieuNhapCT.Where(t => !ct.Contains(t.ID_vat_tu));
                db.IMP_PhieuNhapCT.RemoveRange(tmp);
            }

            // Cập nhật trạng thái phiếu nhập
            pn.Trang_thai = Trang_thai;

            return(db.SaveChanges());
        }
Пример #4
0
        // Thêm chi tiết của phiếu nhập cửa cuốn AustDoor
        public static int AddDetails(int ID_phieu_nhap, int Trang_thai, GridView gridViewDetails, int ID_than_cua, double Chieu_dai_cua, double Chieu_rong_cua, int ID_mo_to, int ID_chot, int ID_khoa, Entities db = null)
        {
            if (ID_phieu_nhap < 1)
            {
                return(0);
            }

            if (db == null)
            {
                db = new Entities();
            }

            int n  = gridViewDetails.RowCount;
            var pn = db.IMP_PhieuNhap.FirstOrDefault(t => t.ID_phieu_nhap == ID_phieu_nhap);
            List <IMP_PhieuNhapCT> list = new List <IMP_PhieuNhapCT>();

            // Thêm thân cửa vào phiếu nhập chi tiết
            var than = new IMP_PhieuNhapCT
            {
                ID_phieu_nhap = ID_phieu_nhap,
                ID_vat_tu     = ID_than_cua,
                So_luong      = 1,
                Chieu_dai     = Chieu_dai_cua,
                Chieu_rong    = Chieu_rong_cua
            };

            list.Add(than);

            // Thêm mô tơ cửa
            var moTo = new IMP_PhieuNhapCT
            {
                ID_phieu_nhap = ID_phieu_nhap,
                ID_vat_tu     = ID_mo_to,
                So_luong      = 1
            };

            list.Add(moTo);

            // Thêm chốt cửa
            var chot = new IMP_PhieuNhapCT
            {
                ID_phieu_nhap = ID_phieu_nhap,
                ID_vat_tu     = ID_chot,
                So_luong      = 1
            };

            list.Add(chot);

            // Them khóa cửa
            var khoa = new IMP_PhieuNhapCT
            {
                ID_phieu_nhap = ID_phieu_nhap,
                ID_vat_tu     = ID_khoa,
                So_luong      = 1
            };

            list.Add(khoa);

            for (int i = 0; i < n; i++)
            {
                IMP_PhieuNhapCT entity = (IMP_PhieuNhapCT)gridViewDetails.GetRow(i);

                if (entity == null || entity.ID_vat_tu == 0 || entity.So_luong == 0)
                {
                    continue;
                }

                entity.ID_phieu_nhap = ID_phieu_nhap;
                list.Add(entity);
            }

            n = list.Count;

            for (int i = 0; i < n; i++)
            {
                var entity = list[i];
                db.IMP_PhieuNhapCT.Add(entity);

                // Cập nhật vật tư và số lượng vào kho
                if (pn.Trang_thai == 0 && Trang_thai == 1)
                {
                    // Kiểm tra xem trong kho có vật tư trong phiếu nhập chi tiết hay không
                    var vt = db.STO_KhoVatTuCT.FirstOrDefault(t => t.ID_kho == pn.ID_kho && t.ID_vat_tu == entity.ID_vat_tu);

                    if (vt == null)
                    {
                        // Vật tư này trong kho hiện không có nên thêm vào
                        db.STO_KhoVatTuCT.Add(new STO_KhoVatTuCT
                        {
                            ID_kho        = pn.ID_kho,
                            ID_vat_tu     = entity.ID_vat_tu,
                            So_luong      = entity.So_luong,
                            ID_phieu_nhap = entity.ID_phieu_nhap
                        });
                    }
                    else
                    {
                        // Trong kho đã có vật tư này nên cập nhật số lượng
                        vt.So_luong     += entity.So_luong;
                        vt.ID_phieu_nhap = entity.ID_phieu_nhap;
                    }
                }
            }

            pn.Trang_thai = Trang_thai;

            return(db.SaveChanges());
        }