public ActionResult SERVICES(Class_Services _Services) { var _BookItem = new Class_BookItem(); if (_Services.Consumo_TabInput == 1) { var _BookItemDate = _Services.Consumo_Date.Split("/"); _BookItem = new Class_BookItem() { StatusId = BookItemStatus.Consumido, BookId = _Services.Reserve_ID, Id = _Services.Consumo_ExtractID, DateConsume = DateTime.Parse(string.Format("{0}/{1}/{2} 00:01", _BookItemDate[1], _BookItemDate[0], _BookItemDate[2])), GroupLevelItemId = _Services.Consumo_GroupLevelItemID, SeasonUnit = _Services.Consumo_QtUnit, SeasonDesciption = _Services.Consumo_NAME, SeasonValue = _Services.Consumo_VlUnit, SeasonDiscountValue = _Services.Consumo_VlDiscount, SeasonDiscountPercent = _Services.Consumo_PercDiscount, SeasonAdvance = 0, OBS = _Services.Consumo_OBS }; } else if (_Services.Entretenimento_TabInput == 1) { var _BookItemDate = _Services.Entretenimento_Date.Split("/"); if (_Services.Entretenimento_Time == "") { _Services.Entretenimento_Time = "00:01"; } _BookItem = new Class_BookItem() { StatusId = BookItemStatus.Consumido, BookId = _Services.Reserve_ID, Id = _Services.Entretenimento_ExtractID, DateConsume = DateTime.Parse(string.Format("{0}/{1}/{2} {3}", _BookItemDate[1], _BookItemDate[0], _BookItemDate[2], _Services.Entretenimento_Time)), GroupLevelItemId = _Services.Entretenimento_GroupLevelItemID, SeasonUnit = _Services.Entretenimento_QtUnit, SeasonDesciption = _Services.Entretenimento_NAME, SeasonValue = _Services.Entretenimento_VlUnit, SeasonDiscountValue = _Services.Entretenimento_VlDiscount, SeasonDiscountPercent = _Services.Entretenimento_PercDiscount, SeasonAdvance = 0, OBS = _Services.Entretenimento_OBS }; if (_BookItem.DateConsume >= DateTime.Today.ToLocalTime()) { _BookItem.StatusId = BookItemStatus.Reservado; } } else if (_Services.Ajuste_TabInput == 1) { _BookItem = _context.Class_BookItem.FirstOrDefault(m => m.Id == _Services.Ajuste_ExtractID); _BookItem.SeasonUnit = _Services.Ajuste_SeasonDays; _BookItem.SeasonDiscountPercent = _Services.Ajuste_PercDiscount; var _VlTotal = _BookItem.SeasonValue * _Services.Ajuste_SeasonDays; var _VlDiscount = _VlTotal * ((double)_Services.Ajuste_PercDiscount / 100); _BookItem.SeasonDiscountValue = _VlDiscount; var _OBS = _BookItem.OBS + string.Format("{0}=={1}, {2}==", Environment.NewLine, DateTime.Today.ToString("dd/MM"), _Services.Ajuste_OBS); while (_OBS.Length > 200) { try { _OBS = _OBS.Substring(0, _OBS.IndexOf("==")) + _OBS.Substring(_OBS.IndexOf("==", _OBS.IndexOf("==") + 2) + 3); } catch { _OBS = _OBS.Substring(0, 199); } } _BookItem.OBS = _OBS; } else if (_Services.CheckOut_TabInput == 1) { var _BookItemDate = DateTime.Today.ToString("dd/MM/yyyy").Split("/"); _BookItem = new Class_BookItem() { StatusId = BookItemStatus.Consumido, BookId = _Services.Reserve_ID, Id = 0, DateConsume = DateTime.Parse(string.Format("{0}/{1}/{2} 00:01", _BookItemDate[1], _BookItemDate[0], _BookItemDate[2])), GroupLevelItemId = 0, SeasonUnit = 1, SeasonDesciption = string.Format("Check-Out, Forma de Pagto: {0}", _Services.CheckOut_PayForm), SeasonValue = _Services.CheckOut_APagar * -1, SeasonDiscountValue = 0, SeasonDiscountPercent = 0, SeasonAdvance = 0, OBS = _Services.CheckOut_OBS }; } else { return(RedirectToAction(nameof(Error), new { _Message = "Não houve mudança significativa!" })); } if (_BookItem.Id == 0) { _context.Add(_BookItem); } else { _context.Update(_BookItem); } _context.SaveChanges(); //AJUSTE - Checkin if (_Services.Ajuste_TabInput == 1) { var _BookItemDate = _Services.Ajuste_DateOut.Split("/"); var _Book = _context.Class_Book.FirstOrDefault(m => m.Id == _BookItem.BookId); _Book.Book_DateOut = DateTime.Parse(string.Format("{0}/{1}/{2} 00:01", _BookItemDate[1], _BookItemDate[0], _BookItemDate[2])); _context.Update(_BookItem); _context.SaveChanges(); } else if (_Services.CheckOut_TabInput == 1) { //Ajusta Status Historico de CONSUMO var _Consumo = from s in _context.Class_BookItem where s.BookId == _Services.Reserve_ID && s.StatusId == BookItemStatus.Reservado select s; foreach (var _loop in _Consumo) { _loop.StatusId = BookItemStatus.Consumido; _context.Update(_loop); } _context.SaveChanges(); // ajusta Status da Reserva var _Book = _context.Class_Book.Where(m => m.Id == _Services.Reserve_ID).FirstOrDefault(); _Book.StatusId = BookStatus.Finalizado; _context.Update(_Book); _context.SaveChanges(); //return View(_Services); return(RedirectToAction("SERVICES", "Index", new { _BookID = _Services.Reserve_ID, _ExtractID = 0 })); } //return View(_Services); return(RedirectToAction("SERVICES", "Reception", new { _BookID = _Services.Reserve_ID, _ExtractID = 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)); }