UNPKG

@cityssm/mpac-yetf

Version:

Parses the MPAC Year-End Tax File (YETF) into a usable object.

59 lines (58 loc) 3.08 kB
import * as bbLookups from '../lookups/bbLookups.js'; import * as constants from './constants.js'; export function formatBB(recordBB) { const formattedRecordBB = recordBB; if (formattedRecordBB.frontage !== '') { formattedRecordBB.frontageFeet = Number.parseFloat(formattedRecordBB.frontage); formattedRecordBB.frontageMetres = formattedRecordBB.frontageFeet * constants.FEET_TO_METRES; } if (formattedRecordBB.unitOfMeasurement === 'F') { formattedRecordBB.siteAreaSquareFeet = Number.parseFloat(formattedRecordBB.siteArea); formattedRecordBB.siteAreaAcres = formattedRecordBB.siteAreaSquareFeet / constants.ACRES_TO_SQUARE_FEET; } else if (formattedRecordBB.unitOfMeasurement === 'A') { formattedRecordBB.siteAreaAcres = Number.parseFloat(formattedRecordBB.siteArea); formattedRecordBB.siteAreaSquareFeet = formattedRecordBB.siteAreaAcres * constants.ACRES_TO_SQUARE_FEET; } if (formattedRecordBB.propertyCode >= '200' && formattedRecordBB.propertyCode <= '299') { if (formattedRecordBB.depth !== '') { formattedRecordBB.farmForestryExemptionAcres = Number.parseFloat(formattedRecordBB.depth); } } else if (formattedRecordBB.depth !== '') { formattedRecordBB.depthFeet = Number.parseFloat(formattedRecordBB.depth); formattedRecordBB.depthMetres = formattedRecordBB.depthFeet * constants.FEET_TO_METRES; } formattedRecordBB.siteImprovementHasBoathouse = formattedRecordBB.siteImprovement.includes('B'); formattedRecordBB.siteImprovementHasSiteImprovements = formattedRecordBB.siteImprovement.includes('I'); formattedRecordBB.siteImprovementHasOther = formattedRecordBB.siteImprovement.includes('O'); formattedRecordBB.siteImprovementHasAccessibleFacilities = formattedRecordBB.siteImprovement.includes('D'); formattedRecordBB.siteImprovementHasPool = formattedRecordBB.siteImprovement.includes('P'); formattedRecordBB.siteImprovementHasElevator = formattedRecordBB.siteImprovement.includes('E'); formattedRecordBB.siteImprovementHasSauna = formattedRecordBB.siteImprovement.includes('S'); formattedRecordBB.siteImprovementHasMultiple = formattedRecordBB.siteImprovement.includes('M'); formattedRecordBB.siteImprovementHasTennisCourts = formattedRecordBB.siteImprovement.includes('T'); const propertyCodeNumber = Number.parseInt(formattedRecordBB.propertyCode); formattedRecordBB.propertyCodeClass = bbLookups.propertyCodeClasses[propertyCodeNumber - (propertyCodeNumber % 100)]; formattedRecordBB.propertyCodeName = bbLookups.propertyCodeNames[formattedRecordBB.propertyCode]; formattedRecordBB.servicesName = bbLookups.serviceCodeNames[formattedRecordBB.services]; formattedRecordBB.accessName = bbLookups.accessCodeNames[formattedRecordBB.access]; return formattedRecordBB; }