TDT4109/Exercise 2/9 - Skatteetaten/task9b.py

76 lines
2.6 KiB
Python

try:
from common.inputChecking.choiceInput import choiceInput
from common.inputChecking.typeCheck import inputTypeCheck
except ModuleNotFoundError:
print('Sjekk README.md for hvilke flagg python trenger')
exit(1)
INFO = """INFO
Dette programmet besvarer om din utleie en annen type bolig,
her sekundær- eller fritidsbolig, er skattepliktig.
Først trenger vi å vite om du leier ut en sekundær- eller en fritidsbolig."""
HLINE = '---------------------------------------------------------------------'
FRITIDSBOLIG_INFO = """INFO
Du har valgt fritidsbolig.
Nå trenger vi først å vite om fritidsboligen(e) primært brukes til utleie eller fritid.
Deretter trenger vi å vite hvor mange fritidsbolig(er) du leier ut.
Til slutt trenger vi å vite hvor store utleieinntekter du har pr. fritidsbolig."""
SECONDARYHOUSE_INFO = """INFO
Du har valgt sekundærbolig.
Nå trenger vi først å vite hvor mange sekundærbolig(er) du leier ut.
Deretter trenger vi å vite hvor store utleieinntekter du har pr. sekundærbolig."""
def fritidsboligBranch():
print(FRITIDSBOLIG_INFO)
print(HLINE)
print('DATAINNHENTING:')
housePurposeIsRenting = choiceInput(
prompt='Skriv inn formålet med fritidsboligen(e): ',
choices=['utleie', 'fritid']
) == 'utleie'
houseAmount = inputTypeCheck('Skriv inn antallet fritidsboliger du leier ut: ', int)
rentPerHouse = inputTypeCheck('Skriv inn utleieinntekten pr. fritidsbolig: ', int)
print()
print(HLINE)
print('SKATTEBEREGNING')
hasTax = housePurposeIsRenting or rentPerHouse > 10000
if hasTax:
print('Inntekten er skattepliktig')
if not housePurposeIsRenting:
print(f'Overskytende beløp pr. fritidsbolig er {rentPerHouse - 10000}')
housePurposeDeduction = 0 if housePurposeIsRenting else 10000
taxedRentPerHouse = (rentPerHouse - housePurposeDeduction) * 85/100
print(f'Skattepliktig inntekt pr. fritidsbolig er {taxedRentPerHouse}')
print(f'Totalt skattepliktig beløp er {houseAmount * taxedRentPerHouse}')
else:
print('Inntekten er ikke skattepliktig')
def secondaryHouseBranch():
print(SECONDARYHOUSE_INFO)
print(HLINE)
print('DATAINNHENTING:')
houseAmount = inputTypeCheck('Skriv inn antallet sekundærboliger du leier ut: ', int)
rentPerHouse = inputTypeCheck('Skriv inn utleieinntekten pr. sekundærbolig: ', int)
if __name__ == "__main__":
print(INFO)
print(HLINE)
print('DATAINNHENTING:')
houseType = choiceInput(
prompt='Skriv inn type annen bolig (sekundærbolig/fritidsbolig) du har leid ut: ',
choices=['fritidsbolig','sekundærbolig']
)
print()
if houseType == 'fritidsbolig':
fritidsboligBranch()
else:
secondaryHouseBranch()