Exemple #1
0
        /// <summary>
        /// Tìm kiếm thiết bị với 3 yếu tố
        /// </summary>
        /// <param name="ph"></param>
        /// <param name="tb"></param>
        /// <param name="tr"></param>
        /// <returns></returns>
        public static CTThietBi search(Phong ph, ThietBi tb, TinhTrang tr)
        {
            try
            {
                IQueryable <CTThietBi> query = db.CTTHIETBIS.AsQueryable();
                if (ph == null)
                {
                    query = query.Where(c => c.phong_id == null);
                }
                else
                {
                    query = query.Where(c => c.phong_id == ph.id);
                }
                query = query.Where(c => c.thietbi_id == tb.id && c.tinhtrang_id == tr.id);

                return(query.FirstOrDefault());
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
                return(null);
            }
        }
Exemple #2
0
        /// <summary>
        /// Di chuyển, kết hợp đổi tình trạng,
        /// có hỗ trợ ghi LOG tự động,vd:
        /// CTThietBi obj = CTThietBi.getById(24552);
        /// Phong dich = null;// Phong.getById(1228);
        /// TinhTrang ttr = TinhTrang.getById(3);
        /// int re = obj.dichuyen(dich, ttr, -1, "đổi tình trạng toàn bộ luôn");
        /// </summary>
        /// <param name="dich">Phòng cần di chuyển đến (null nếu chỉ muốn đổi tình trạng)</param>
        /// <param name="ttmoi">Tình trạng cần chuyển sang (null nếu chỉ muốn đổi phòng)</param>
        /// <param name="soluong">Số lượng cần chuyển (mac dinh la -1 (chuyển tất cả))</param>
        /// /// <param name="mota">Mô tả cho quá trình di chuyển</param>
        /// <param name="hinhs">Hình mô tả cho quá trình di chuyển (Hình sạch)</param>
        /// <returns></returns>
        public int dichuyen(Phong dich = null, TinhTrang ttmoi = null, int soluong = -1, String mota = "", List <HinhAnh> hinhs = null, DateTime?ngay = null)
        {
            try
            {
                //pre set data
                dich = dich == null ? this.phong : dich;
                //=> dich co the van se la null (do this.phong có thể là null)
                ttmoi = ttmoi == null ? this.tinhtrang : ttmoi;//tinh trang không thể null
                ngay  = ngay == null?ServerTimeHelper.getNow() : ngay;

                //XÉT ĐIỀU KIỆN
                if
                (
                    //Nếu Không có bất kỳ sự thay đổi nào, phòng và tình trạng giống với this
                    ((dich == null && this.phong == null) || (dich != null && dich.id == this.phong.id)) &&
                    ttmoi.id == this.tinhtrang.id
                )
                {
                    return(-2);
                }
                //kiem tra rang buoc không cho thực thi
                if
                (
                    soluong == 0 || soluong > this.soluong
                )
                {
                    return(-2);
                }
                soluong = soluong < 0 ? this.soluong : soluong;

                //tao hoac cap nhat mot CTTB moi cho PHONG moi (dich)
                //kiem tra co record nao trung với record cần tạo mới (dich, tinhtrang, thietbi) ?
                CTThietBi tmp = search(dich, this.thietbi, ttmoi);

                //NO
                //TAO MOI CTTB => add
                if (tmp == null)
                {
                    tmp           = new CTThietBi();
                    tmp.phong     = dich;
                    tmp.soluong   = soluong;
                    tmp.thietbi   = this.thietbi;
                    tmp.tinhtrang = ttmoi;
                    tmp.mota      = mota;
                    tmp.hinhanhs  = hinhs;
                    tmp.ngay      = ngay;
                    tmp.add();
                }
                else
                {
                    //Đã có CTTB sẵn giống với CTTB cần tạo mới
                    //SELECT CTTB do len => update
                    if (tmp.id != this.id)
                    {
                        tmp.soluong += soluong;
                        tmp.mota     = mota;
                        tmp.hinhanhs = hinhs;
                        tmp.ngay     = ngay;
                        tmp.update();
                    }
                }

                //cap nhat lai so luong cho cái hiện đã bị chuyển
                this.mota     = mota;
                this.soluong -= soluong;
                this.soluong  = this.soluong < 0 ? 0 : this.soluong;//for sure
                this.hinhanhs = hinhs;
                //ghi log thietbi ngay sau khi cap nhat ONLY soluong
                this.update();
                return(1);
            }
            catch (Exception e)
            {
                Debug.WriteLine(e);
                return(-1);
            }
        }