public JsonResult Delete(string model) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } // parameter is passed in as a model with Json string var entity = JsonConvert.DeserializeObject <ResolutionRevenueModel>(model); var ownerPayoutId = entity.OwnerPayoutId; try { var dataProvider = new ResolutionRevenueProvider(_dbContext); dataProvider.Delete(entity.ResolutionId); dataProvider.Commit(); var provider = new OwnerPayoutProvider(_dbContext); provider.UpdateOwnerPayoutMatchStatus(ownerPayoutId); return(Json("success", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(InternalError(string.Format("Delete Resolution {0:d} fails.", entity.ResolutionId), "fail", ex)); } }
public JsonResult DeleteRevenue(int id) { if (!AuthorizationProvider.CanEditRevenue()) { string message = string.Format("User '{0}' does not have permission to delete Owner Payout {1:d}.", this.User.Identity.Name, id); DojoLogger.Warn(message, typeof(OwnerPayoutController)); Response.StatusCode = (int)System.Net.HttpStatusCode.Forbidden; return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } try { var dataProvider = new OwnerPayoutRevenueProvider(_dbContext); dataProvider.Delete(id); dataProvider.Commit(); return(Json("success", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { string message = string.Format("Delete Owner Payout {0} fails. {1}", id.ToString(), ex.Message + ex.StackTrace); DojoLogger.Error(message, typeof(OwnerPayoutController)); Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError; return(Json("fail", JsonRequestBehavior.AllowGet)); } }
public JsonResult DeleteRevenue(int id) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } try { var dataProvider = new ResolutionRevenueProvider(_dbContext); var entity = dataProvider.Retrieve(id); dataProvider.Delete(id); dataProvider.Commit(); var provider = new OwnerPayoutProvider(_dbContext); provider.UpdateOwnerPayoutMatchStatus(entity.OwnerPayoutId); return(Json("success", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { string message = string.Format("Delete Resolution {0} fails. {1}", id.ToString(), ex.Message + ex.StackTrace); return(InternalError(message, "fail", ex)); } }
public JsonResult Update(string model) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } // parameter is passed in as a model with Json string var entity = JsonConvert.DeserializeObject <ResolutionRevenueModel>(model); try { if (!string.IsNullOrEmpty(entity.ConfirmationCode)) { var provider = new ReservationRevenueProvider(_dbContext); var propertycode = provider.GetPropertyCodeByConfirmationCode(entity.ConfirmationCode); if (!string.IsNullOrEmpty(propertycode)) { entity.PropertyCode = propertycode; } } var dataProvider = new ResolutionRevenueProvider(_dbContext); dataProvider.Update(entity.ResolutionId, entity); dataProvider.Commit(); return(Json(entity, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Saving Resolution {0:d} fails. {1} - {2}", entity.ResolutionId, ex.Message, innerErrorMessage); return(InternalError(message, "fail", ex)); } }
public JsonResult SavePayoutAmount(int id, float amount) { if (!AuthorizationProvider.CanEditRevenue()) { string message = string.Format("User '{0}' does not have permission to save Owner Payout {1}.", this.User.Identity.Name, id.ToString()); DojoLogger.Warn(message, typeof(OwnerPayoutController)); Response.StatusCode = (int)System.Net.HttpStatusCode.Forbidden; return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } try { var dataProvider = new OwnerPayoutRevenueProvider(_dbContext); var entity = dataProvider.Retrieve(id); entity.PayoutAmount = amount; dataProvider.Update(id, entity); dataProvider.Commit(); // OwnerPayoutId will be filled for new OwnerPayout by EF return(Json(id.ToString(), JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Saving Owner Payout {0} fails. {1},{2}", id.ToString(), ex.Message, innerErrorMessage); DojoLogger.Error(message, typeof(OwnerPayoutController)); Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError; return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } }
public JsonResult Update(string model) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } var codeModel = JsonConvert.DeserializeObject <MissingPropertyCodesModel>(model); try { var dataProvider = new ReservationRevenueProvider(_dbContext); var entity = dataProvider.Retrieve(codeModel.ReservationId); entity.PropertyCode = codeModel.PropertyCode; dataProvider.Update(codeModel.ReservationId, entity); dataProvider.Commit(); return(Json(codeModel, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Saving Property Code for Reservation {0:d} fails. {1},{2}", codeModel.ReservationId, ex.Message, innerErrorMessage); return(InternalError(message, string.Empty, ex)); } }
public JsonResult SplitReservation(ResevationSplitModel form) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } try { var dataProvider = new ReservationRevenueProvider(_dbContext); var result = dataProvider.SplitReservation(form); if (result != null) { return(Json(result.Value.ToString(), JsonRequestBehavior.AllowGet)); } else { return(Json("-1", JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Splitting Reservation {0:d} for property code {1} fails. {2},{3}", form.ReservationId, form.PropertyCode, ex.Message, innerErrorMessage); return(InternalError(message, string.Empty, ex)); } }
public JsonResult UpdateFieldStatus(int id, string field, int included) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } try { var provider = new ExpenseRevenueProvider(_dbContext); var ok = provider.SetFieldStatus(id, field, (included == 1 ? true : false)); if (ok) { return(Json(id, JsonRequestBehavior.AllowGet)); } else { return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { string message = string.Format("Change Expense 'IncludeInStatement' for ID = {0:d} fails. {1}", id, ex.Message + ex.StackTrace); return(InternalError(message, string.Empty, ex)); } }
public JsonResult Create(string model) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } var entity = JsonConvert.DeserializeObject <ExpenseRevenueModel>(model); try { // parameter is passed in as a model with Json string var dataProvider = new ExpenseRevenueProvider(_dbContext); dataProvider.Create(entity); dataProvider.Commit(); if (entity.ExpenseId == 0) { entity.ExpenseId = dataProvider.GetKey(entity); } entity.ParentId = entity.ExpenseId; dataProvider.Update(entity.ExpenseId, entity); dataProvider.Commit(); return(Json(entity, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Saving Expense {0:d} fails. {1} - {2}", entity.ExpenseId, ex.Message, innerErrorMessage); return(InternalError(message, string.Empty)); } }
public ActionResult SplitRevenue(int Id) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } var model = new ResevationSplitModel(); try { var provider = new ReservationRevenueProvider(_dbContext); var entity = provider.Retrieve(Id); if (entity != null) { model.ReservationId = Id; model.PropertyCode = entity.PropertyCode; model.ConfirmationCode = entity.ConfirmationCode; model.ReservationAmount = entity.TotalRevenue; ViewBag.Title = "Split Reservation"; } } catch { } return(PartialView("_ReservationSplitPartial", model)); }
public JsonResult Delete(string model) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } // parameter is passed in as a model with Json string var entity = JsonConvert.DeserializeObject <ExpenseRevenueModel>(model); try { if (entity.Children.Count == 0) { var dataProvider = new ExpenseRevenueProvider(_dbContext); dataProvider.Delete(entity.ExpenseId); dataProvider.Commit(); } return(Json("success", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(InternalError(string.Format("Delete Expense {0:d} fails.", entity.ExpenseId), "fail", ex)); } }
public JsonResult SaveRevenue(OwnerPayoutRevenueModel form) { if (!AuthorizationProvider.CanEditRevenue()) { string message = string.Format("User '{0}' does not have permission to save Owner Payout {1}.", this.User.Identity.Name, form.OwnerPayoutId.ToString()); DojoLogger.Warn(message, typeof(OwnerPayoutController)); Response.StatusCode = (int)System.Net.HttpStatusCode.Forbidden; return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } try { // treat checkin and checkout date as Hawaii time zone and covert it to UTC by adding 11 hours. if (form.PayoutDate != null) { form.PayoutDate = ConversionHelper.ToUtcFromUs(form.PayoutDate.Value); } var dataProvider = new OwnerPayoutRevenueProvider(_dbContext); if (form.OwnerPayoutId == 0) // new OwnerPayout { if (dataProvider.GetKey(form) != 0) { Response.StatusCode = (int)System.Net.HttpStatusCode.Conflict; // code = 409 return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } else { dataProvider.Create(form); } } else // updating OwnerPayout { dataProvider.Update(form.OwnerPayoutId, form); } dataProvider.Commit(); // OwnerPayoutId will be filled for new OwnerPayout by EF // get the OwnerPayout ID if (form.OwnerPayoutId == 0) { form.OwnerPayoutId = dataProvider.GetKey(form); } var provider = new OwnerPayoutProvider(_dbContext); provider.UpdateOwnerPayoutMatchStatus(form.OwnerPayoutId); return(Json(form.OwnerPayoutId.ToString(), JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Saving Owner Payout {0} fails. {1},{2}", form.OwnerPayoutId.ToString(), ex.Message, innerErrorMessage); DojoLogger.Error(message, typeof(OwnerPayoutController)); Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError; return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } }
public JsonResult SaveRevenue(ReservationRevenueModel form) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } try { // treat checkin and checkout date as Hawaii time zone and covert it to UTC by adding 11 hours. if (form.PayoutDate != null) { form.PayoutDate = ConversionHelper.ToUtcFromUs(form.PayoutDate.Value); } if (form.CheckinDate != null) { form.CheckinDate = ConversionHelper.ToUtcFromUs(form.CheckinDate.Value); } var dataProvider = new ReservationRevenueProvider(_dbContext); if (form.ReservationId == 0) // new reservation { if (dataProvider.GetKey(form) != 0) { Response.StatusCode = (int)System.Net.HttpStatusCode.Conflict; // code = 409 return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } else { dataProvider.Create(form); } } else // updating reservation { dataProvider.Update(form.ReservationId, form); } dataProvider.Commit(); // ReservationId will be filled for new reservation by EF // get the reservation ID if (form.ReservationId == 0) { form.ReservationId = dataProvider.GetKey(form); } var provider = new OwnerPayoutProvider(_dbContext); provider.UpdateOwnerPayoutMatchStatus(form.OwnerPayoutId); return(Json(form.ReservationId.ToString(), JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Saving Reservation {0} fails. {1},{2}", form.ReservationId.ToString(), ex.Message, innerErrorMessage); return(InternalError(message, string.Empty, ex)); } }
public ActionResult EditRevenue(int Id) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } var provider = new ReservationRevenueProvider(_dbContext); var reservation = provider.Retrieve(Id); ViewBag.Title = "Edit Reservation"; ViewBag.ButtonText = string.Format("Update Reservation for Property {0}", reservation.PropertyCode); return(PartialView("_ReservationEditPartial", reservation)); }
public ActionResult Index() { if (!AuthorizationProvider.CanViewRevenue()) { return(Forbidden()); } ViewBag.ReviewerClass = AuthorizationProvider.CanReviewRevenue() ? "revenue-grid-reviewer" : string.Empty; ViewBag.ApproverClass = AuthorizationProvider.CanApproveRevenue() ? "revenue-grid-approver" : string.Empty; ViewBag.FinalizerClass = AuthorizationProvider.CanFinalizeRevenue() ? "revenue-grid-finalizer" : string.Empty; ViewBag.EditClass = AuthorizationProvider.CanEditRevenue() ? string.Empty : " revenue-field-readonly"; ViewBag.AdminClass = AuthorizationProvider.IsRevenueAdmin() ? "revenue-grid-remover" : string.Empty; return(View()); }
public ActionResult EditRevenue(int Id) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } var provider = new ResolutionRevenueProvider(_dbContext); var resolution = provider.Retrieve(Id); ViewBag.Title = "Edit Resolution"; ViewBag.ButtonText = "Update Resolution"; ViewBag.NewResolution = false; return(PartialView("_ResolutionEditPartial", resolution)); }
public ActionResult TetrisRevenue(int Id) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } var model = new ResevationTetrisModel(); var provider = new ReservationRevenueProvider(_dbContext); model.OldPropertyCode = provider.GetPropertyCodeById(Id); model.ReservationId = Id; ViewBag.Title = "Change Reservation"; return(PartialView("_ReservationTetrisPartial", model)); }
public JsonResult ConvertRevenue(int id) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } try { var reservationProvider = new ReservationRevenueProvider(_dbContext); var entity = reservationProvider.Retrieve(id); // create resolution entity var resolutionModel = new ResolutionRevenueModel(); resolutionModel.ResolutionDate = entity.PayoutDate; resolutionModel.OwnerPayoutId = entity.OwnerPayoutId; resolutionModel.ConfirmationCode = entity.ConfirmationCode; resolutionModel.PropertyCode = entity.PropertyCode; resolutionModel.ResolutionType = "Cancellation"; resolutionModel.ResolutionDescription = "Converted from Reservation"; resolutionModel.ResolutionAmount = entity.TotalRevenue; resolutionModel.IncludeOnStatement = true; resolutionModel.Impact = string.Empty; resolutionModel.ApprovalStatus = RevenueApprovalStatus.NotStarted; var resolutionProvider = new ResolutionRevenueProvider(_dbContext); resolutionProvider.Create(resolutionModel); resolutionProvider.Commit(); // set reservation revenue to 0 and excluded from statement entity.TotalRevenue = 0; entity.IncludeOnStatement = false; reservationProvider.Update(id, entity); reservationProvider.Commit(); var provider = new OwnerPayoutProvider(_dbContext); provider.UpdateOwnerPayoutMatchStatus(entity.OwnerPayoutId); return(Json("success", JsonRequestBehavior.AllowGet)); } catch (Exception ex) { string message = string.Format("Delete Reservation {0} fails. {1}", id.ToString(), ex.Message + ex.StackTrace); return(InternalError(message, "fail", ex)); } }
public ActionResult EditRevenue(int Id) { if (!AuthorizationProvider.CanEditRevenue()) { string message = string.Format("User '{0}' does not have permission to edit Owner Payout.", this.User.Identity.Name); DojoLogger.Warn(message, typeof(OwnerPayoutController)); Response.StatusCode = (int)System.Net.HttpStatusCode.Forbidden; return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } var provider = new OwnerPayoutRevenueProvider(_dbContext); var entity = provider.Retrieve(Id); ViewBag.Title = "Edit Owner Payout"; ViewBag.ButtonText = Id == 0 ? "Create Owner Payout" : "Update Owner Payout"; return(PartialView("_OwnerPayoutEditPartial", entity)); }
public JsonResult SaveRevenue(ResolutionRevenueModel form) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } try { // Impact list is defined in lookup table; Advance Payout does not have a confirmation code if (form.Impact == "Advance Payout") { form.ConfirmationCode = string.Empty; } var dataProvider = new ResolutionRevenueProvider(_dbContext); if (form.ResolutionId == 0) // new { dataProvider.Create(form); } else // update { dataProvider.Update(form.ResolutionId, form); } dataProvider.Commit(); // ReservationId will be filled for new reservation by EF // get the resolution ID if (form.ResolutionId == 0) { form.ResolutionId = dataProvider.GetKey(form); } var provider = new OwnerPayoutProvider(_dbContext); provider.UpdateOwnerPayoutMatchStatus(form.OwnerPayoutId); return(Json(form.ResolutionId.ToString(), JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Saving Resolution {0} fails. {1},{2}", form.ResolutionId.ToString(), ex.Message, innerErrorMessage); return(InternalError(message, string.Empty, ex)); } }
public JsonResult UpdateWorkflow(int id, int state, int direction) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } RevenueApprovalStatus workflowState = (RevenueApprovalStatus)state; if (!((AuthorizationProvider.CanReviewRevenue() && workflowState == RevenueApprovalStatus.Reviewed) || (AuthorizationProvider.CanApproveRevenue() && workflowState == RevenueApprovalStatus.Approved) || (AuthorizationProvider.CanFinalizeRevenue() && workflowState == RevenueApprovalStatus.Finalized))) { return(Forbidden()); } try { var dataProvider = new OtherRevenueProvider(_dbContext); RevenueApprovalStatus?nextState = null; if (direction > 0) { nextState = dataProvider.MoveWorkflow(id, workflowState); } else { nextState = dataProvider.BacktrackWorkflow(id, workflowState); } if (nextState != null) { return(Json(nextState, JsonRequestBehavior.AllowGet)); } else { return(Json("-1", JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { string message = string.Format("Change Other Expense {0} workflow fails. {1}", id.ToString(), ex.Message + ex.StackTrace); return(InternalError(message, "-1", ex)); } }
public JsonResult UpdateCombinedExpense(int sourceId, int targetId) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } try { var dataProvider = new ExpenseRevenueProvider(_dbContext); var id = dataProvider.UpdateCombinedExpense(sourceId, targetId); return(Json(id, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Combine Expense {0:d} into {1:d} fails. {2} - {3}", sourceId, targetId, ex.Message, innerErrorMessage); return(InternalError(message, "-1", ex)); } }
public ActionResult OwnerPayoutView(DateTime month, string source, int ownerPayoutId) { if (!AuthorizationProvider.CanViewRevenue()) { return(Forbidden()); } ViewBag.ReviewerClass = AuthorizationProvider.CanReviewRevenue() ? "revenue-grid-reviewer" : string.Empty; ViewBag.ApproverClass = AuthorizationProvider.CanApproveRevenue() ? "revenue-grid-approver" : string.Empty; ViewBag.FinalizerClass = AuthorizationProvider.CanFinalizeRevenue() ? "revenue-grid-finalizer" : string.Empty; ViewBag.EditClass = AuthorizationProvider.CanEditRevenue() ? string.Empty : " revenue-field-readonly"; ViewBag.AdminClass = AuthorizationProvider.IsRevenueAdmin() ? "revenue-grid-remover" : string.Empty; var model = new ReservationRevenueModel(); model.Month = month; model.Source = source; model.OwnerPayoutId = ownerPayoutId; return(View(model)); }
public JsonResult ChangePropertyCode(ResevationTetrisModel form) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } try { var dataProvider = new ReservationRevenueProvider(_dbContext); var entity = dataProvider.Retrieve(form.ReservationId); entity.PropertyCode = form.NewPropertyCode; dataProvider.Update(form.ReservationId, entity); dataProvider.Commit(); return(Json(form.ReservationId.ToString(), JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Changing Reservation {0:d} property code to {1} fails. {2},{3}", form.ReservationId, form.NewPropertyCode, ex.Message, innerErrorMessage); return(InternalError(message, string.Empty, ex)); } }
public JsonResult SaveNote(int id, string note) { if (!AuthorizationProvider.CanEditRevenue()) { return(Forbidden()); } try { var dataProvider = new ReservationRevenueProvider(_dbContext); var entity = dataProvider.Retrieve(id); entity.ApprovedNote = note; dataProvider.Update(id, entity); dataProvider.Commit(); return(Json(id.ToString(), JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Saving Reservation {0:d} fails. {1},{2}", id, ex.Message, innerErrorMessage); return(InternalError(message, string.Empty, ex)); } }