"""Conta da fábrica de ração (pasta 14): custo por kg, ponto de equilíbrio e cenários. Tudo [INF] sobre os levantamentos dos arquivos 01, 05 e 07."""

ING = 2.50          # ingrediente por kg de ração, com 8% de perda (28%: 2,38–2,52; 32%: 2,51–2,62)
SACO = 0.10         # saco de 25 kg a R$ 2,50
CALOR = 0.04        # lenha para vapor e secagem
TARIFA = 0.90       # R$ por kWh (faixa 0,80–1,05)
P_CARRETA = 3.50    # preço na porta para ganhar da carreta de Rondônia (posta a 3,53–3,91)
P_VAREJO = 4.10     # preço na porta para ganhar da loja (4,50–5,50), vendendo direto ao pequeno

ESC = {
    "B": dict(nome="B, 500 kg/h", t=700, kwh=200, linha=5, fixos=7, equip=2.07e6, obra=2.05e6, total=4.2e6, adm=120e3, parcela=732e3, alcance=(350, 1100)),
    "C": dict(nome="C, 2 t/h", t=2750, kwh=135, linha=11, fixos=15, equip=6.77e6, obra=5.40e6, total=12.5e6, adm=300e3, parcela=2447e3, alcance=(350, 1100)),
}
SAL_LINHA, SAL_FIXO, MESES = 3000, 5000, 13.3   # custo mensal com encargos; 13,3 folhas por ano

def conta(e, equip=None, obra=None, rot=""):
    equip = e["equip"] if equip is None else equip
    obra = e["obra"] if obra is None else obra
    var = ING + SACO + CALOR + e["kwh"] / 1000 * TARIFA
    folha = (e["linha"] * SAL_LINHA + e["fixos"] * SAL_FIXO) * MESES
    manut = 0.04 * equip
    deprec = equip / 10 + obra / 25
    fixo_caixa = folha + manut + e["adm"]
    fixo = fixo_caixa + deprec
    t = e["t"]
    custo = var + fixo / (t * 1000)
    print(f"--- {e['nome']} {rot} ---")
    print(f"variável por kg: {var:.2f} | folha {folha:,.0f} | manutenção {manut:,.0f} | adm/lab {e['adm']:,.0f} | depreciação {deprec:,.0f}")
    print(f"fixo por ano: {fixo:,.0f} ({fixo/(t*1000):.2f} por kg a {t} t) | custo total por kg: {custo:.2f}")
    for nome, p in (("carreta", P_CARRETA), ("varejo", P_VAREJO)):
        res = (p - custo) * t * 1000
        eq = fixo / (p - var) / 1000
        print(f"  preço {p:.2f} ({nome}): resultado {res:,.0f} por ano | equilíbrio {eq:,.0f} t por ano ({eq/t:.1f} turno(s))")
    return var, fixo, custo

for k, e in ESC.items():
    conta(e, rot="— tudo novo")
    caixa = ING + SACO + CALOR + e["kwh"] / 1000 * TARIFA + ((e["linha"] * SAL_LINHA + e["fixos"] * SAL_FIXO) * MESES + 0.04 * e["equip"] + e["adm"]) / (e["t"] * 1000) + e["parcela"] / (e["t"] * 1000)
    print(f"  visão de caixa com 80% financiado: {caixa:.2f} por kg (parcela {e['parcela']/(e['t']*1000):.2f})")

# variante enxuta da B: prédio público cedido e linha usada
conta(ESC["B"], equip=1.0e6, obra=0, rot="— prédio cedido e linha usada")
# B em dois turnos (dobra a linha, mantém fixos)
e2 = dict(ESC["B"]); e2.update(t=1400, linha=10, nome="B, 500 kg/h, dois turnos")
conta(e2, rot="— tudo novo")
conta(e2, equip=1.0e6, obra=0, rot="— prédio cedido e linha usada")
# C em dois turnos
c2 = dict(ESC["C"]); c2.update(t=5500, linha=22, nome="C, 2 t/h, dois turnos")
conta(c2, rot="— tudo novo")
# só a folha, contra a margem sobre a carreta
for k, e in ESC.items():
    var = ING + SACO + CALOR + e["kwh"] / 1000 * TARIFA
    folha = (e["linha"] * SAL_LINHA + e["fixos"] * SAL_FIXO) * MESES
    print(f"{k}: folha {folha:,.0f} = {folha/(e['t']*1000):.2f} por kg; margem sobre a carreta {P_CARRETA - var:.2f}; só a folha pede {folha/(P_CARRETA - var)/1000:,.0f} t por ano")
# mistura de ingrediente: 84% de ração de 28% e 16% de 32%
print("ingrediente, milho da safra:", round(0.84 * 2.38 + 0.16 * 2.51, 2), "| milho na média do ano:", round(0.84 * 2.52 + 0.16 * 2.62, 2))
# dívida da rota enxuta: 80% de R$ 1,0 milhão em máquina, 7,5% ao ano, 7 parcelas de principal
fin = 0.8 * 1.0e6
print("rota enxuta, primeira parcela cheia:", round(fin / 7 + fin * 0.075), "por kg a 700 t:", round((fin / 7 + fin * 0.075) / 700e3, 2), "a 1.400 t:", round((fin / 7 + fin * 0.075) / 1400e3, 2))
print("demanda: teto do estado 4.162 a 5.087 t; alcançável 350 a 700 t no eixo de Rio Branco, até 1.100 t com o Juruá")
print("mini (pasta 04): investimento 435 mil; equilíbrio 135 a 178 t por ano contra a carreta")
