2019-05-20 23:49:50 +02:00
|
|
|
from IPython import embed
|
|
|
|
import importlib
|
|
|
|
fuck = embed
|
|
|
|
|
2019-05-27 12:28:51 +02:00
|
|
|
immobilizzazioniMateriali = 0
|
|
|
|
fondiAmmortamento = 0
|
|
|
|
capitale = 0
|
|
|
|
rimanenzeMagazzino = 0
|
|
|
|
patrimonioNetto = 0
|
|
|
|
debitoCommercialeAnnoPrecedente = 0
|
|
|
|
|
|
|
|
anni = ['2019', '2020', '2021']
|
2019-05-20 23:49:50 +02:00
|
|
|
for anno in anni:
|
|
|
|
mdl = importlib.import_module('dati'+anno)
|
|
|
|
if "__all__" in mdl.__dict__:
|
|
|
|
names = mdl.__dict__["__all__"]
|
|
|
|
else:
|
|
|
|
# otherwise we import all names that don't begin with _
|
|
|
|
names = [x for x in mdl.__dict__ if not x.startswith("_")]
|
|
|
|
|
|
|
|
# now drag them in
|
|
|
|
globals().update({k: getattr(mdl, k) for k in names})
|
|
|
|
|
2019-05-27 12:28:51 +02:00
|
|
|
|
2019-05-20 23:49:50 +02:00
|
|
|
# === CONTO ECONOMICO ===
|
|
|
|
costiTotali = sum(costiAnnui.values()) + \
|
|
|
|
sum([v * nPersonale[k] for k,v in costiPersonale.items()])*13 * (1+oneriSociali) + \
|
2019-05-27 12:28:51 +02:00
|
|
|
costoHWPerStanza * nStanze + \
|
|
|
|
sum(costiAnnuiPassivi.values()) + \
|
|
|
|
interessiPassivi
|
2019-05-20 23:49:50 +02:00
|
|
|
|
|
|
|
ricaviTotali = nClienti * sum(ricaviPerUnita.values()) + \
|
2019-05-27 12:28:51 +02:00
|
|
|
ricavoHWPerStanza * nStanze # *2 perche vendi al doppio del costo
|
2019-05-20 23:49:50 +02:00
|
|
|
|
2019-05-27 12:28:51 +02:00
|
|
|
ivaCredito = iva * (sum(costiAnnui.values()) + costoHWPerStanza * nStanze)
|
2019-05-20 23:49:50 +02:00
|
|
|
ivaDebito = iva * ricaviTotali
|
|
|
|
|
2019-05-27 12:28:51 +02:00
|
|
|
ammortamenti = strumentazioneUffici * tassoAmmortamento
|
|
|
|
|
|
|
|
ricaviOperativi = ricaviTotali
|
|
|
|
costiOperativi = costiTotali - ammortamenti - costiAnnuiPassivi['accantonamentoRischi'] - interessiPassivi
|
|
|
|
margineOperativoLordo = ricaviOperativi - costiOperativi
|
|
|
|
risultatoOperativo = margineOperativoLordo - costiAnnuiPassivi['accantonamentoRischi'] - ammortamenti # sono costi
|
|
|
|
risultatoAnteImposte = risultatoOperativo + interessiPassivi
|
|
|
|
# solo se esercizio in positivo
|
|
|
|
risultatoNetto = risultatoAnteImposte if risultatoAnteImposte < 0 else risultatoAnteImposte * (1+imposteEsercizio)
|
|
|
|
|
2019-05-20 23:49:50 +02:00
|
|
|
print("=== CONTO ECONOMICO - anno %s ===" % (anno,))
|
|
|
|
print("IVA: debito = %s, credito = %s" % (ivaDebito, ivaCredito))
|
|
|
|
print("Costi Totali: %s, Ricavi Totali: %s" % (costiTotali, ricaviTotali))
|
2019-05-27 12:28:51 +02:00
|
|
|
|
|
|
|
# Lo stato patrimoniale e` diviso in finanziamenti e investimenti
|
|
|
|
# ovvero attivo e passivo:
|
|
|
|
# nell'attivo hai:
|
|
|
|
# crediti verso soci che devono ancora pagarti
|
|
|
|
# immobilizzazioni (immateriali): costi di impianto, ricerca, pubblicita`, licenze
|
|
|
|
# immobilizzazioni (materiali): terreni, affitti, attrezzature
|
|
|
|
# immobilizzazioni (finanziarie): partecipazioni in altre societa`, azioni
|
|
|
|
# attivo circolante: rimanenze, crediti verso clienti, liquidita`
|
|
|
|
# nel passivo hai:
|
|
|
|
# patrimonio netto
|
|
|
|
# fondi per rischi e oneri
|
|
|
|
# trattamento di fine rapporto
|
|
|
|
# debiti: obbligazioni, soci, acconti, titoli, tributari
|
|
|
|
|
|
|
|
# investimenti
|
|
|
|
## immobilizzazioni materiali:
|
|
|
|
immobilizzazioniMateriali = immobilizzazioniMateriali + strumentazioneUffici - strumentazioneUffici * tassoAmmortamento
|
|
|
|
immobilizzazioniFinanziarie = 0 # non abbiamo titoli e obbligazioni
|
|
|
|
immobilizzazioniTotali = immobilizzazioniFinanziarie + immobilizzazioniMateriali
|
|
|
|
|
|
|
|
## crediti
|
|
|
|
##### ogni 90 giorni ci pagano
|
|
|
|
##### ma chiaramente non ci paganotutti lo stesso giorno, 1 gennaio
|
|
|
|
##### solo l'ultima rata va nell'anno successivo
|
|
|
|
creditiCommerciali = 0.25 * ricaviTotali # TFW TODO
|
|
|
|
creditiErario = 0 if ivaCredito - ivaDebito < 0 else ivaCredito - ivaDebito
|
|
|
|
creditiTotali = creditiCommerciali + creditiErario
|
|
|
|
|
|
|
|
rimanenzeMagazzino = rimanenzeMagazzino + (nHW - nStanze) * costoHWPerStanza
|
|
|
|
|
|
|
|
## disponibilita` liquida: ricavi che non sono nei debiti
|
|
|
|
liquidita = ricaviTotali - creditiCommerciali # puoi dividerli fra cassa e cc bancario
|
|
|
|
|
|
|
|
## totali:
|
|
|
|
attivoCircolante = liquidita + rimanenzeMagazzino + creditiTotali
|
|
|
|
totaleInvestimenti = liquidita + rimanenzeMagazzino + creditiTotali + immobilizzazioniTotali
|
|
|
|
|
|
|
|
# finanziamenti
|
|
|
|
capitale = capitale if risultatoNetto < 0 else capitale + risultatoNetto*(1-dividendi)
|
|
|
|
perditaAnnoPrecedente = 0 if patrimonioNetto >= 0 else patrimonioNetto * (1-0.2) # 0.2 copertura perdita
|
|
|
|
patrimonioNetto = capitale + risultatoNetto - perditaAnnoPrecedente
|
|
|
|
## fondi per rischi e oneri
|
|
|
|
fondiAmmortamento = fondiAmmortamento + strumentazioneUffici * tassoAmmortamento # contrario d'immobilizzazioni?
|
|
|
|
fondiRischiOneri = 0 # TODO
|
|
|
|
totaleFondi = fondiAmmortamento + fondiRischiOneri
|
|
|
|
# TFR??? TODO
|
|
|
|
debitiMLTermine = debitoIstitutoCredito - capitaleRestituitoPrimo
|
|
|
|
debitiCommerciali = nStanze * costoHWPerStanza / 4 # quarto dell'anno
|
|
|
|
debitoCommercialeAnnoPrecedente = debitiCommerciali
|
|
|
|
debitiBTermine = 0
|
|
|
|
tfr = 0
|
|
|
|
debitiErario = 0 if ivaDebito - ivaCredito < 0 else ivaDebito - ivaCredito
|
|
|
|
totaleDebitiTributari = debitiErario + debitiMLTermine + debitiBTermine
|
|
|
|
totaleFinanziamento = patrimonioNetto + totaleDebitiTributari + totaleFondi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Rendiconto Finanziario (cash flow)
|
|
|
|
autofinanziamento = risultatoNetto + costiAnnuiPassivi['accantonamentoRischi'] + ammortamenti
|
|
|
|
|
|
|
|
fuck()
|
|
|
|
|
|
|
|
|