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

86 lines
2.9 KiB
Python

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 safeQuestion(question, choices):
while True:
try:
answer = input(question)
assert answer in choices
return answer
except AssertionError:
print('Skriv inn enten', ', '.join(choices[:-1]), 'eller', choices[-1])
def taxEvaluation(housetype, houseAmount, rentPerHouse, hasRentingPurpose=False):
hasTax = True
print()
print(HLINE)
print('SKATTEBEREGNING:')
def fritidsboligBranch():
print(FRITIDSBOLIG_INFO)
print(HLINE)
print('DATAINNHENTING:')
housePurposeIsRenting = safeQuestion(
'Skriv inn formålet med fritidsboligen(e): ',
['Utleie', 'utleie', 'Fritid', 'fritid']
) in ['Utleie', 'utleie']
houseAmount = int(input('Skriv inn antallet fritidsboliger du leier ut: '))
rentPerHouse = int(input('Skriv inn utleieinntekten pr. fritidsbolig: '))
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 = int(input('Skriv inn antallet sekundærboliger du leier ut: '))
rentPerHouse = int(input('Skriv inn utleieinntekten pr. sekundærbolig: '))
def main():
print(INFO)
print(HLINE)
print('DATAINNHENTING:')
houseType = safeQuestion(
'Skriv inn type annen bolig (sekundærbolig/fritidsbolig) du har leid ut: ',
['Fritidsbolig', 'fritidsbolig', 'Sekundærbolig', 'sekundærbolig']
)
print()
if houseType in ['Fritidsbolig', 'fritidsbolig']:
fritidsboligBranch()
else:
secondaryHouseBranch()
if __name__ == "__main__":
main()