Added VAT to ashp and solar pv

This commit is contained in:
Khalim Conn-Kowlessar 2024-12-18 21:26:33 +00:00
parent 843be48ca4
commit 75c5f0a712

View file

@ -758,32 +758,31 @@ class Costs:
else: else:
system_cost = [c for c in INSTALLER_SOLAR_COSTS if c["n_panels"] == n_panels][0]["cost"] system_cost = [c for c in INSTALLER_SOLAR_COSTS if c["n_panels"] == n_panels][0]["cost"]
total_cost = array_cost if array_cost is not None else system_cost subtotal = array_cost if array_cost is not None else system_cost
if has_battery: if has_battery:
battery_cost = [c for c in INSTALLER_SOLAR_BATTERY_COSTS if c["capacity_kwh"] == battery_kwh][0]["cost"] battery_cost = [c for c in INSTALLER_SOLAR_BATTERY_COSTS if c["capacity_kwh"] == battery_kwh][0]["cost"]
total_cost += battery_cost subtotal += battery_cost
scaffolding_cost = [c for c in INSTALLER_SCAFFOLDING_COSTS if c["stories"] == n_floors][0]["cost"] scaffolding_cost = [c for c in INSTALLER_SCAFFOLDING_COSTS if c["stories"] == n_floors][0]["cost"]
total_cost += scaffolding_cost subtotal += scaffolding_cost
if needs_inverter: if needs_inverter:
total_cost += INSTALLER_SOLAR_PV_INVERTER_COST subtotal += INSTALLER_SOLAR_PV_INVERTER_COST
# We also add an additional labour cost # We also add an additional labour cost
total_cost += INSTALLER_SOLAR_PV_INVERTER_LABOUR_COST subtotal += INSTALLER_SOLAR_PV_INVERTER_LABOUR_COST
# We add an additional cost for scaffolding # We add an additional cost for scaffolding
# The costs from installers exclude VAT
subtotal_before_vat = total_cost / (1 + self.VAT_RATE) vat = subtotal * self.VAT_RATE
total_cost = subtotal + vat
vat = total_cost - subtotal_before_vat
# Labour hours are based on estimates from online research but an average team seems to consist of 3 people # Labour hours are based on estimates from online research but an average team seems to consist of 3 people
# and most jobs take around 2 days. Assuming an 8 hour day for 3 people across 2 days, gives us 48 hours of # and most jobs take around 2 days. Assuming an 8 hour day for 3 people across 2 days, gives us 48 hours of
# labour # labour
return { return {
"total": total_cost, "total": total_cost,
"subtotal": subtotal_before_vat, "subtotal": subtotal,
"vat": vat, "vat": vat,
"labour_hours": 48, "labour_hours": 48,
"labour_days": 2, "labour_days": 2,
@ -1163,17 +1162,18 @@ class Costs:
cost = [x for x in INSTALLER_ASHP_COSTS if x][0]["cost"] cost = [x for x in INSTALLER_ASHP_COSTS if x][0]["cost"]
# We add some contingency since there are additional costs such as resizing radiators, that could be required # We add some contingency since there are additional costs such as resizing radiators, that could be required
total_cost = cost * (1 + self.CONTINGENCY) subtotal = cost * (1 + self.CONTINGENCY)
subtotal_before_vat = total_cost / (1 + self.VAT_RATE) # The costs from installers exclude VAT
vat = total_cost - subtotal_before_vat vat = subtotal * self.VAT_RATE
total_cost = subtotal + vat
# We assume 5 days installation # We assume 5 days installation
labour_days = 5 labour_days = 5
labour_hours = labour_days * 8 labour_hours = labour_days * 8
return { return {
"total": total_cost, "total": subtotal,
"subtotal": subtotal_before_vat, "subtotal": subtotal,
"vat": vat, "vat": vat,
"labour_hours": labour_hours, "labour_hours": labour_hours,
"labour_days": labour_days, "labour_days": labour_days,