public ActionResult ReverseCheckIn(Guid reservationId, string source = "") { try { var reservation = reservationRepository.GetReservationById(reservationId, LogInManager.LoggedInUserId).FirstOrDefault(); if (reservation != null) { #region Remove Rent Charges var roomRentCharge = additionalChargeRepository.GetAdditionalChargesByCode(AdditionalChargeCode.ROOM_RENT).FirstOrDefault(); var reservationCharge = reservationChargeRepository.GetReservationCharges(reservation.Id, roomRentCharge.Id, LogInManager.LoggedInUserId).FirstOrDefault(); if (reservationCharge != null) { reservationChargeRepository.DeleteReservationCharges(reservationCharge.Id, LogInManager.LoggedInUserId, LogInManager.LoggedInUserId); } #endregion #region Remove Reservation Charges reservationChargeRepository.DeleteReservationChargesByReservation(reservation.Id, LogInManager.LoggedInUserId, LogInManager.LoggedInUserId); #endregion #region Remove Reservation Log (Room Occupied) reservationLogRepository.DeleteReservationLogByReservation(reservation.Id, LogInManager.LoggedInUserId, LogInManager.LoggedInUserId); #endregion #region Update Reservation Check In Flag (FALSE) reservationRepository.UpdateReservationCheckInFlag(reservation.Id, false, LogInManager.LoggedInUserId); #endregion #region Remove Check In Details checkInCheckOutRepository.DeleteCheckInCheckOutDetailByReservation(reservation.Id, LogInManager.LoggedInUserId, LogInManager.LoggedInUserId); #endregion #region Update Reservation Status (NULL) reservationRepository.UpdateReservationStatus(reservation.Id, null, LogInManager.LoggedInUserId); #endregion #region Update Reservation Total Price double totalPrice = Utility.Utility.CalculateReservationTotalPrice(reservation.Id); //Update Total Price. reservationRepository.UpdateReservationTotalPrice(reservation.Id, totalPrice, LogInManager.LoggedInUserId); #endregion #region Update Reservation Total Balance. double totalGuestBalance = 0; //totalGuestBalance = Utility.Utility.CalculateTotalBalance(reservation.Id); //Update Total Balance. reservationRepository.UpdateReservationTotalBalance(reservation.Id, totalGuestBalance, LogInManager.LoggedInUserId); #endregion #region Update TrackReservationLog Status = False reservationRepository.UpdateTrackReservationLogStatusByReservationId(reservation.Id, false); #endregion #region Record Activity Log RecordActivityLog.RecordActivity(Pages.CHECKIN, string.Format("Reverse Checked in profile successfully. Name: {0} {1}, Comfirmation #: {2} ", reservation.LastName, reservation.FirstName, reservation.ConfirmationNumber)); #endregion return(Json(new { IsSuccess = true, data = new { ReservationId = reservationId } }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { IsSuccess = false, errorMessage = "Reverse check in not done successfully." }, JsonRequestBehavior.AllowGet)); } } catch (Exception e) { Utility.Utility.LogError(e, "ReverseCheckIn"); return(Json(new { IsSuccess = false, errorMessage = e.Message })); } }
public ActionResult DeleteCharge(Guid id) { try { double totalBalance = 0; var chargeDetail = reservationChargeRepository.GetReservationChargesById(id, LogInManager.LoggedInUserId).FirstOrDefault(); if (chargeDetail != null) { Guid?reservationId = chargeDetail.ReservationId; double chargeAmount = 0; //Calculate total Amount. int qty = 1; if (chargeDetail.Qty.HasValue) { qty = chargeDetail.Qty.Value; } chargeAmount = (chargeDetail.Amount.HasValue ? (chargeDetail.Amount.Value * qty) : 0); //Delete Reservation Charge reservationChargeRepository.DeleteReservationCharges(chargeDetail.Id, LogInManager.LoggedInUserId, LogInManager.LoggedInUserId); #region Update Reservation Total Balance. var reservation = new ReservationVM(); if (reservationId.HasValue) { reservation = reservationRepository.GetReservationById(reservationId.Value, LogInManager.LoggedInUserId).FirstOrDefault(); } if (reservation != null) { totalBalance = reservation.GuestBalance.HasValue ? reservation.GuestBalance.Value : 0; if (totalBalance > chargeAmount) { totalBalance -= chargeAmount; } else { totalBalance = 0; } //Update Total Balance. reservationRepository.UpdateReservationTotalBalance(reservation.Id, totalBalance, LogInManager.LoggedInUserId); } #endregion return(Json(new { IsSuccess = true, errorMessage = "Charge details deleted successfully." }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { IsSuccess = false, errorMessage = "Charge details not found." }, JsonRequestBehavior.AllowGet)); } } catch (Exception e) { Utility.Utility.LogError(e, "DeleteCharge"); return(Json(new { IsSuccess = false, errorMessage = e.Message })); } }