86 lines
2.9 KiB
Python
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()
|