public JsonResult Create(string model) { if (!AuthorizationProvider.IsStatementAdmin()) { return(Forbidden()); } var feeModel = JsonConvert.DeserializeObject <PropertyFeeViewModel>(model); try { var entity = new PropertyFee(); var dataProvider = new PropertyFeeProvider(_dbContext); dataProvider.MapData(feeModel, ref entity); dataProvider.Create(entity); dataProvider.Commit(); feeModel.PropertyFeeId = entity.PropertyCostId; // set the created Id to return to kendo grid return(Json(feeModel, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Creating Property Fee fails. {0} - {1}", ex.Message, innerErrorMessage); return(InternalError(message, string.Empty)); } }
public bool IsFixedCostModel(PropertyFee fee) { if (fee == null) { return(false); } return((fee.Cleanings != null && fee.Cleanings != 0) || (fee.Consumables != null && fee.Consumables != 0) || (fee.Laundry != null && fee.Laundry != 0) || (fee.Landscaping != null && fee.Landscaping != 0) || (fee.PoolService != null && fee.PoolService != 0) || (fee.TrashService != null && fee.TrashService != 0) || (fee.PestService != null && fee.PestService != 0)); }
private PropertyFee ParseExcelRow(ExcelRange cells, int row, DateTime date, string inputSource) { var p = new PropertyFee(); p.PropertyCode = GetSafeCellString(cells[row, _propertyCol].Value); p.DamageWaiver = GetSafeNumber(cells[row, _WaiverCol].Value); p.CityTax = Math.Round(GetSafeNumber(cells[row, _taxCol].Value), 2, MidpointRounding.AwayFromZero); // TODO: if PropertyFee file has these fields, read them in p.Cleanings = null; p.Consumables = null; p.Landscaping = null; p.Laundry = null; p.PoolService = null; p.TrashService = null; p.PestService = null; p.EntryDate = ConversionHelper.EnsureUtcDate(date); p.InputSource = inputSource; return(p); }
private List <UnitExpenseStatement> GetUnitExpenses(DateTime month, int reservationCount, PropertyFee fee) { List <UnitExpenseStatement> unitExpenses = new List <UnitExpenseStatement>(); try { if (UseGroundKeepingRule(month)) { double groundsKeepingFee = 0; if (reservationCount > 0) { if (fee.Consumables != null && fee.Consumables != 0) { unitExpenses.Add(MakeUnitExpense(Math.Round(fee.Consumables.Value * reservationCount, 2), "Consumables")); } if (fee.Laundry != null && fee.Laundry != 0) { unitExpenses.Add(MakeUnitExpense(Math.Round(fee.Laundry.Value * reservationCount, 2), "Laundry Service")); } if (fee.Landscaping != null && fee.Landscaping != 0) { groundsKeepingFee += fee.Landscaping.Value; } if (fee.PoolService != null && fee.PoolService != 0) { groundsKeepingFee += fee.PoolService.Value; } if (fee.TrashService != null && fee.TrashService != 0) { groundsKeepingFee += fee.TrashService.Value; } if (fee.PestService != null && fee.PestService != 0) { groundsKeepingFee += fee.PestService.Value; } } if (groundsKeepingFee > 0) { unitExpenses.Add(MakeUnitExpense(Math.Round(groundsKeepingFee, 2), GRONDSKEEPING_CATEGORY)); } } else { if (reservationCount > 0) { if (fee.Consumables != null && fee.Consumables != 0) { unitExpenses.Add(MakeUnitExpense(Math.Round(fee.Consumables.Value * reservationCount, 2), "Consumables")); } if (fee.Laundry != null && fee.Laundry != 0) { unitExpenses.Add(MakeUnitExpense(Math.Round(fee.Laundry.Value * reservationCount, 2), "Laundry Service")); } if (fee.Landscaping != null && fee.Landscaping != 0) { unitExpenses.Add(MakeUnitExpense(fee.Landscaping.Value, "Landscaping")); } if (fee.PoolService != null && fee.PoolService != 0) { unitExpenses.Add(MakeUnitExpense(fee.PoolService.Value, "Pool Service")); } if (fee.TrashService != null && fee.TrashService != 0) { unitExpenses.Add(MakeUnitExpense(fee.TrashService.Value, "Trash Service")); } if (fee.PestService != null && fee.PestService != 0) { unitExpenses.Add(MakeUnitExpense(fee.PestService.Value, "Pest Control Service")); } } } } catch { throw; // let caller handle the error } return(unitExpenses); }