creditrating/BM02_指标计算/偿债能力/EBIT利息保障倍数_三年加权计算.py

39 lines
1.5 KiB
Python
Raw Permalink Normal View History

from fastapi import APIRouter
from pydantic import BaseModel
INDEX = "EBIT利息保障倍数_三年加权计算"
router = APIRouter()
class Params(BaseModel):
当期净利润: float
当期计入财务费用的利息支出: float
当期所得税: float
当期资本化利息支出: float
上期净利润: float
上期计入财务费用的利息支出: float
上期所得税: float
上期资本化利息支出: float
上二期净利润: float
上二期计入财务费用的利息支出: float
上二期所得税: float
上二期资本化利息支出: float
@router.post("/{}".format(INDEX))
def func(p: Params):
try:
ratio1 = (p.当期净利润 + p.当期计入财务费用的利息支出 + p.当期所得税) / (p.当期计入财务费用的利息支出 + p.当期资本化利息支出)
ratio2 = (p.上期净利润 + p.上期计入财务费用的利息支出 + p.上期所得税) / (p.上期计入财务费用的利息支出 + p.上期资本化利息支出)
ratio3 = (p.上二期净利润 + p.上二期计入财务费用的利息支出 + p.上二期所得税) / (p.上二期计入财务费用的利息支出 + p.上二期资本化利息支出)
result = ratio1*0.5 + ratio2*0.3 + ratio3*0.2
return round(result, 2)
except ZeroDivisionError:
return "+inf" # 此处本应为算式无意义,特殊处理为正无穷大
except Exception:
return "计算错误"