UniTO/anno2/Sem2/Economia/pyth/piano.py

116 lines
4.9 KiB
Python
Raw Permalink Normal View History

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()