feat: chart data api

main
MrWaradana 12 months ago
parent 5ca3c6808c
commit caa667f2b8

@ -58,3 +58,37 @@ class PlantTransactionData(Base, DefaultMixin, IdentityMixin):
calc4_principal_repayment = Column(Float, nullable=True) calc4_principal_repayment = Column(Float, nullable=True)
calc4_free_cash_flow_on_equity = Column(Float, nullable=True) calc4_free_cash_flow_on_equity = Column(Float, nullable=True)
calc4_discounted_fcf_on_equity = Column(Float, nullable=True) calc4_discounted_fcf_on_equity = Column(Float, nullable=True)
chart_total_revenue = Column(Float, nullable=True)
chart_revenue_a = Column(Float, nullable=True)
chart_revenue_b = Column(Float, nullable=True)
chart_revenue_c = Column(Float, nullable=True)
chart_revenue_d = Column(Float, nullable=True)
chart_revenue_annualized = Column(Float, nullable=True)
chart_fuel_cost_component_c = Column(Float, nullable=True)
chart_fuel_cost = Column(Float, nullable=True)
chart_fuel_cost_annualized = Column(Float, nullable=True)
chart_oem_component_bd = Column(Float, nullable=True)
chart_oem_bd_cost = Column(Float, nullable=True)
chart_oem_periodic_maintenance_cost = Column(Float, nullable=True)
chart_oem_annualized = Column(Float, nullable=True)
chart_capex_component_a = Column(Float, nullable=True)
chart_capex_biaya_investasi_tambahan = Column(Float, nullable=True)
chart_capex_acquisition_cost = Column(Float, nullable=True)
chart_capex_annualized = Column(Float, nullable=True)
fs_chart_total_revenue = Column(Float, nullable=True)
fs_chart_revenue_a = Column(Float, nullable=True)
fs_chart_revenue_b = Column(Float, nullable=True)
fs_chart_revenue_c = Column(Float, nullable=True)
fs_chart_revenue_d = Column(Float, nullable=True)
fs_chart_revenue_annualized = Column(Float, nullable=True)
fs_chart_fuel_cost_component_c = Column(Float, nullable=True)
fs_chart_fuel_cost = Column(Float, nullable=True)
fs_chart_fuel_cost_annualized = Column(Float, nullable=True)
fs_chart_oem_component_bd = Column(Float, nullable=True)
fs_chart_oem_bd_cost = Column(Float, nullable=True)
fs_chart_oem_periodic_maintenance_cost = Column(Float, nullable=True)
fs_chart_oem_annualized = Column(Float, nullable=True)
fs_chart_capex_component_a = Column(Float, nullable=True)
fs_chart_capex_biaya_investasi_tambahan = Column(Float, nullable=True)
fs_chart_capex_acquisition_cost = Column(Float, nullable=True)
fs_chart_capex_annualized = Column(Float, nullable=True)

@ -1,14 +1,15 @@
from typing import Optional from typing import List, Optional
from fastapi import APIRouter, HTTPException, status, Query from fastapi import APIRouter, HTTPException, status, Query
from .model import PlantTransactionData from .model import PlantTransactionData
from .schema import ( from .schema import (
PlantTransactionDataPagination, PlantTransactionDataPagination,
PlantTransactionDataRead, PlantTransactionDataRead,
PlantTransactionChart,
PlantTransactionDataCreate, PlantTransactionDataCreate,
PlantTransactionDataUpdate, PlantTransactionDataUpdate,
) )
from .service import get, get_all, create, update, delete from .service import get, get_all, get_charts, create, update, delete
from src.database.service import CommonParameters, search_filter_sort_paginate from src.database.service import CommonParameters, search_filter_sort_paginate
from src.database.core import DbSession from src.database.core import DbSession
@ -39,6 +40,17 @@ async def get_transaction_datas(
) )
@router.get("/charts", response_model=StandardResponse[List[PlantTransactionChart]])
async def get_chart_data(db_session: DbSession, common: CommonParameters):
chart_data = await get_charts(db_session=db_session, common=common)
if not chart_data:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail="A data with this id does not exist.",
)
return StandardResponse(data=chart_data, message="Data retrieved successfully")
@router.get( @router.get(
"/{transaction_data_id}", response_model=StandardResponse[PlantTransactionDataRead] "/{transaction_data_id}", response_model=StandardResponse[PlantTransactionDataRead]
) )

@ -65,9 +65,52 @@ class PlantTransactionDataBase(DefaultBase):
updated_by: Optional[str] = Field(None, nullable=True) updated_by: Optional[str] = Field(None, nullable=True)
class PlantTransactionChart(DefaultBase):
tahun: Optional[int] = Field(None, nullable=True)
is_actual: Optional[int] = Field(None, nullable=True)
seq: Optional[int] = Field(None, nullable=True)
chart_total_revenue: Optional[float] = Field(None, nullable=True)
chart_revenue_a: Optional[float] = Field(None, nullable=True)
chart_revenue_b: Optional[float] = Field(None, nullable=True)
chart_revenue_c: Optional[float] = Field(None, nullable=True)
chart_revenue_d: Optional[float] = Field(None, nullable=True)
chart_revenue_annualized: Optional[float] = Field(None, nullable=True)
chart_fuel_cost_component_c: Optional[float] = Field(None, nullable=True)
chart_fuel_cost: Optional[float] = Field(None, nullable=True)
chart_fuel_cost_annualized: Optional[float] = Field(None, nullable=True)
chart_oem_component_bd: Optional[float] = Field(None, nullable=True)
chart_oem_bd_cost: Optional[float] = Field(None, nullable=True)
chart_oem_periodic_maintenance_cost: Optional[float] = Field(None, nullable=True)
chart_oem_annualized: Optional[float] = Field(None, nullable=True)
chart_capex_component_a: Optional[float] = Field(None, nullable=True)
chart_capex_biaya_investasi_tambahan: Optional[float] = Field(None, nullable=True)
chart_capex_acquisition_cost: Optional[float] = Field(None, nullable=True)
chart_capex_annualized: Optional[float] = Field(None, nullable=True)
fs_chart_total_revenue: Optional[float] = Field(None, nullable=True)
fs_chart_revenue_a: Optional[float] = Field(None, nullable=True)
fs_chart_revenue_b: Optional[float] = Field(None, nullable=True)
fs_chart_revenue_c: Optional[float] = Field(None, nullable=True)
fs_chart_revenue_d: Optional[float] = Field(None, nullable=True)
fs_chart_revenue_annualized: Optional[float] = Field(None, nullable=True)
fs_chart_fuel_cost_component_c: Optional[float] = Field(None, nullable=True)
fs_chart_fuel_cost: Optional[float] = Field(None, nullable=True)
fs_chart_fuel_cost_annualized: Optional[float] = Field(None, nullable=True)
fs_chart_oem_component_bd: Optional[float] = Field(None, nullable=True)
fs_chart_oem_bd_cost: Optional[float] = Field(None, nullable=True)
fs_chart_oem_periodic_maintenance_cost: Optional[float] = Field(None, nullable=True)
fs_chart_oem_annualized: Optional[float] = Field(None, nullable=True)
fs_chart_capex_component_a: Optional[float] = Field(None, nullable=True)
fs_chart_capex_biaya_investasi_tambahan: Optional[float] = Field(
None, nullable=True
)
fs_chart_capex_acquisition_cost: Optional[float] = Field(None, nullable=True)
fs_chart_capex_annualized: Optional[float] = Field(None, nullable=True)
class PlantTransactionDataCreate(PlantTransactionDataBase): class PlantTransactionDataCreate(PlantTransactionDataBase):
pass pass
class PlantTransactionDataUpdate(PlantTransactionDataBase): class PlantTransactionDataUpdate(PlantTransactionDataBase):
pass pass

@ -40,6 +40,18 @@ async def get_all(
return results return results
async def get_charts(
*,
db_session: DbSession,
common,
):
"""Returns all documents."""
query = Select(PlantTransactionData).order_by(PlantTransactionData.tahun.asc())
results = await db_session.execute(query)
return results.scalars().all()
async def create( async def create(
*, db_session: DbSession, transaction_data_in: PlantTransactionDataCreate *, db_session: DbSession, transaction_data_in: PlantTransactionDataCreate
): ):

Loading…
Cancel
Save