Beispiel #1
0
def main(argv):
    configure_logger()

    logging.info('{} {}\n'.format(__NAME, __VERSION))

    inputfile = parse_args(argv)
    # If path to input file is provided, create output log file in the same folder
    if inputfile:
        location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(inputfile)))
        filepath = os.path.join(location, 'analyse_immo.log')
        add_logger_file_handler(filepath)

    input_data = load_file(inputfile)

    achat_data = input_data['achat']
    defaut_data = input_data['defaut']
    lots_data = input_data['lots']
    credit_data = input_data['credit']
    impot_data = input_data['impot']

    database = Database()
    defaut = Factory.make_defaut(defaut_data)

    bien_immo = Factory.make_bien_immo(achat_data, lots_data, defaut)
    credit = Factory.make_credit(credit_data, bien_immo)
    rendement = Rendement(bien_immo, credit)

    # Impot
    annee_achat = achat_data['annee']
    credit_duree = credit_data['duree_annee']

    # IRPP + 2044
    irpp_2044_list = list()

    for i_annee in range(credit_duree):
        annee_revenu = annee_achat + i_annee
        irpp = Factory.make_irpp(database, impot_data, annee_revenu)

        irpp.annexe_2044 = Factory.make_annexe_2044(database, bien_immo, credit, i_annee + 1)
        irpp_2044_list.append(irpp)

    # IRPP + Micro foncier
    irpp_micro_foncier_list = list()

    for i_annee in range(credit_duree):
        annee_revenu = annee_achat + i_annee
        irpp = Factory.make_irpp(database, impot_data, annee_revenu)

        irpp.micro_foncier = Factory.make_micro_foncier(database, bien_immo)
        irpp_micro_foncier_list.append(irpp)

    # Rapport
    generate_rapport(bien_immo, credit, annee_achat, irpp_2044_list, irpp_micro_foncier_list, rendement)
Beispiel #2
0
 def setUp(self):
     self._database = Database()
     self.credit = Credit(0, 0, 0, 0, None, 0, 0)
Beispiel #3
0
 def setUp(self):
     self._database = Database()
Beispiel #4
0
 def testIRPPBareme(self):
     database = Database()
     self.assertTrue(set(database.irpp_bareme(2020)[0]) & set([10064, 0]))
     self.assertTrue(set(database.irpp_bareme('2020')[0]) & set([10064, 0]))
Beispiel #5
0
 def testRevenuFoncierPlafond(self):
     database = Database()
     self.assertEqual(database.micro_foncier_revenu_foncier_plafond, 15000)
Beispiel #6
0
 def testMicroFoncierTaux(self):
     database = Database()
     self.assertEqual(database.micro_foncier_taux, 0.3)
Beispiel #7
0
 def testPrelevementSociaux(self):
     database = Database()
     self.assertEqual(database.prelevement_sociaux_taux, 0.172)
Beispiel #8
0
 def testPlafondQuotientFamilial(self):
     database = Database()
     self.assertEqual(database.plafond_quotient_familial(2021), 1570)
     self.assertEqual(database.plafond_quotient_familial('2021'), 1570)