Мне нужно рассчитать арендную плату в год и общую арендную плату в течение многолетней аренды, исходя из годовой арендной платы, налогов / год, площади офиса и некоторого количества свободных месяцев. Клиент дает некоторое количество месяцев бесплатно в течение первого года, но вместо того, чтобы просто не платить арендную плату за первый месяц, эта экономия должна быть распределена по всей аренде.
Вот исходный код, который я написал, согласно которому свободный месяц применяется только к арендной плате за первый год, после которой арендная плата будет нормальной суммой:
let firstYearRent = (data.data.aRent + data.data.realEstateTaxes) * data.aFeet * data.employees * ((12 - data.freeMonths) / 12)
let annualPercentIncrease = 0.03 // hardcoded for now
let totalRent = firstYearRent
for (let i = 2; i <= data.leasePeriod; i += 1) {
totalRent += (((data.data.aRent + data.data.realEstateTaxes) * data.aFeet) * data.employees * (1 + annualPercentIncrease) ^ i)
}
Однако, по-видимому, для коммерческой недвижимости стоимость бесплатного месяца распределяется в течение всего срока аренды в x лет. Таким образом, каждый год аренды должен учитывать, что первые x месяцев бесплатны, даже если клиенту предоставляется x бесплатных месяцев один раз (не каждый год).
В этом рефакторе не должно быть отдельной переменной firstYearRent. Ежегодная арендная плата должна быть одинаковой.
Я все еще учусь и действительно застрял на том, с чего начать рефакторинг этого. Как бы я пошел об этом рефакторе?
Большое спасибо за помощь!