Пример #1
0
        // CHECKin
        public IActionResult CHECKin(int _RoomID)
        {
            var _GroupLevelItem = _context.Class_GroupLevelItem.FirstOrDefault(s => s.Id == _RoomID);
            var _GroupLevel     = _context.Class_GroupLevel.FirstOrDefault(s => s.Id == _GroupLevelItem.GroupLevelId);
            var _Checkin        = new Class_Checkin()
            {
                GroupLevelItem_Id   = _RoomID,
                GroupLevelItem_Name = string.Format("{0} - {1}", _GroupLevel.Name, _GroupLevelItem.Name),

                Season_Id = 0,

                Channel_Id      = 0,
                Channel_Code    = "",
                Channel_Percent = 0,
                Channel_Tax     = 0,

                Book_DateIn    = DateTime.Today.ToString("dd/MM/yyyy"),
                Book_DateOut   = DateTime.Today.AddDays(5).ToString("dd/MM/yyyy"),
                Book_AdultsNum = _GroupLevelItem.OccupantsNum,
                Book_KidsNum   = 0,
                Book_PCD       = _GroupLevelItem.PCD,
                Book_PET       = GroupLevelItem_YN.Nao,

                Guest_CPF    = "",
                Guest_Name   = "",
                Guest_Email  = "",
                Guest_Phone1 = "",
                Guest_Phone2 = "",

                Guest_PostalCode = "",
                Guest_Address    = "",
                Guest_Complement = "",
                Guest_City       = "",
                Guest_State      = "",
                Guest_Country    = "Brasil"
            };
            //
            int _CompanyId;

            try { _CompanyId = int.Parse(User.FindFirst("CompanyId").Value); }
            catch (Exception) { return(RedirectToAction(nameof(Error), new { _Message = "Login Necessário!" })); }
            //
            ViewBag.Season_LIST = from s in _context.Class_Season
                                  where s.StatusId == SeasonStatus.Ativo && s.CompanyId == _CompanyId
                                  orderby s.Name
                                  select new { s.Id, s.Name };

            //
            ViewBag.Channel_LIST = from s in _context.Class_Channel
                                   where s.CompanyId == _CompanyId && s.StatusId == ChannelStatus.Ativo
                                   orderby s.TypeId, s.Name
            select new { s.Id, s.Name };

            //
            ViewBag.yn_LIST = new SelectList(Enum.GetValues(typeof(GroupLevelItem_YN)));
            //
            return(View(_Checkin));
        }
Пример #2
0
        public ActionResult CHECKin(Class_Checkin _Checkin)
        {
            if (ModelState.IsValid)
            {
                // Guest

                var _Find = _context.Class_Guest.Where(m => m.CPF == _Checkin.Guest_CPF).FirstOrDefault();
                if (_Find == null)
                {
                    _Find = new Class_Guest()
                    {
                        CPF        = _Checkin.Guest_CPF,
                        Name       = _Checkin.Guest_Name,
                        Phone1     = _Checkin.Guest_Phone1,
                        Phone2     = _Checkin.Guest_Phone2,
                        Email      = _Checkin.Guest_Email,
                        PostalCode = _Checkin.Guest_PostalCode,
                        Address    = _Checkin.Guest_Address,
                        Complement = _Checkin.Guest_Complement,
                        City       = _Checkin.Guest_City,
                        State      = _Checkin.Guest_State,
                        Country    = _Checkin.Guest_Country
                    };
                    _context.Add(_Find);
                }
                else
                {
                    _Find.CPF        = _Checkin.Guest_CPF;
                    _Find.Name       = _Checkin.Guest_Name;
                    _Find.Phone1     = _Checkin.Guest_Phone1;
                    _Find.Phone2     = _Checkin.Guest_Phone2;
                    _Find.Email      = _Checkin.Guest_Email;
                    _Find.PostalCode = _Checkin.Guest_PostalCode;
                    _Find.Address    = _Checkin.Guest_Address;
                    _Find.Complement = _Checkin.Guest_Complement;
                    _Find.City       = _Checkin.Guest_City;
                    _Find.State      = _Checkin.Guest_State;
                    _Find.Country    = _Checkin.Guest_Country;
                    _context.Update(_Find);
                }
                _context.SaveChanges();

                // Book
                var _Book = _context.Class_Book.Where(m => m.GroupLevelItemId == _Checkin.GroupLevelItem_Id && m.StatusId == BookStatus.EmUso).FirstOrDefault();
                if (_Book == null)
                {
                    _Book = new Class_Book
                    {
                        Id = 0
                    };
                }
                _Book.StatusId         = BookStatus.EmUso;
                _Book.GroupLevelItemId = _Checkin.GroupLevelItem_Id;
                _Book.SeasonId         = _Checkin.Season_Id;
                _Book.ChannelId        = _Checkin.Channel_Id;
                _Book.Channel_Code     = _Checkin.Channel_Code;
                _Book.Channel_Tax      = _Checkin.Channel_Tax;
                _Book.Channel_Percent  = _Checkin.Channel_Percent;
                _Book.Book_DateIn      = DateTime.ParseExact(_Checkin.Book_DateIn, "dd/MM/yyyy", null);
                _Book.Book_DateOut     = DateTime.ParseExact(_Checkin.Book_DateOut, "dd/MM/yyyy", null);
                _Book.Book_AdultsNum   = _Checkin.Book_AdultsNum;
                _Book.Book_KidsNum     = _Checkin.Book_KidsNum;
                _Book.Book_PCD         = _Checkin.Book_PCD;
                _Book.Book_PET         = _Checkin.Book_PET;
                _Book.GuestCPF         = _Checkin.Guest_CPF;

                if (_Book.Id == 0)
                {
                    _context.Add(_Book);
                }
                else
                {
                    _context.Update(_Book);
                }
                _context.SaveChanges();
                _Book = _context.Class_Book.Where(m => m.GroupLevelItemId == _Checkin.GroupLevelItem_Id && m.StatusId == BookStatus.EmUso).FirstOrDefault();

                //Services
                var _VlTotal    = _Checkin.Book_PayTax * _Checkin.Book_Days;
                var _VlDiscount = _VlTotal * ((double)_Checkin.Book_PayDiscount / 100);
                var _VlFinal    = _VlTotal - _VlDiscount - _Checkin.Book_PayCash;
                var _BookItem   = new Class_BookItem()
                {
                    Id       = 0,
                    StatusId = BookItemStatus.Consumido,

                    BookId           = _Book.Id,
                    DateConsume      = _Book.Book_DateIn,
                    GroupLevelItemId = _Book.GroupLevelItemId,

                    SeasonDesciption = "Diárias de Hospedagem",
                    SeasonUnit       = _Checkin.Book_Days,
                    SeasonValue      = _Checkin.Book_PayTax,

                    SeasonDiscountValue   = _VlDiscount,
                    SeasonDiscountPercent = _Checkin.Book_PayDiscount,
                    SeasonAdvance         = _Checkin.Book_PayCash,

                    OBS = string.Format("Check-in ({0}-{1}) {2}d, {3}, {4}% desc.",
                                        _Book.Book_DateIn.ToString("dd/MM"),
                                        _Book.Book_DateOut.ToString("dd/MM"),
                                        _Checkin.Book_Days,
                                        _VlTotal.ToString("C2"),
                                        _Checkin.Book_PayDiscount)
                };
                _context.Add(_BookItem);
                _context.SaveChanges();

                return(RedirectToAction(nameof(Index)));
            }

            //
            int _CompanyId;

            try { _CompanyId = int.Parse(User.FindFirst("CompanyId").Value); }
            catch (Exception) { return(RedirectToAction(nameof(Error), new { _Message = "Login Necessário!" })); }
            //
            ViewBag.Season_LIST = from s in _context.Class_Season
                                  where s.StatusId == SeasonStatus.Ativo && s.CompanyId == _CompanyId
                                  orderby s.Name
                                  select new { s.Id, s.Name };

            //
            ViewBag.Channel_LIST = from s in _context.Class_Channel
                                   where s.CompanyId == _CompanyId && s.StatusId == ChannelStatus.Ativo
                                   orderby s.TypeId, s.Name
            select new { s.Id, s.Name };

            //
            ViewBag.yn_LIST = new SelectList(Enum.GetValues(typeof(GroupLevelItem_YN)));
            //
            return(View(_Checkin));
        }