import { GetServerSideProps } from 'next' import Head from 'next/head' import { parseCookies } from 'nookies' import { useEffect, useState } from 'react' import { CativoXLivreChart } from '../../components/graph/cativoXLivreChart' // material ui imports import MenuItem from '@mui/material/MenuItem'; import InputLabel from '@mui/material/InputLabel'; import FormControl from '@mui/material/FormControl'; import Select from '@mui/material/Select'; import Header from '../../components/header/Header' import PageTitle from '../../components/pageTitle/PageTitle' import getAPIClient from '../../services/ssrApi' import { EstimatedCostView } from '../../styles/layouts/economy/estimatedCost/EstimatedCostView' import { api } from '../../services/api' import { getLastConsolidatedYear, populateGraphDataForYear } from '../../utils/dataProcessing' export default function EstimatedCost({graphData, userName, clients}: any) { const [unity, setUnity] = useState(null); const [graphDataState, setGraphDataState] = useState(null); const [processedGraphData, setProcessedGraphData] = useState(graphData) const [lastConsolidatedYear, setLastConsolidatedYear] = useState(null) useEffect(() => { // Calculate the last consolidated year const lastYear = getLastConsolidatedYear(graphData, true) setLastConsolidatedYear(lastYear) // Populate graph data with consolidated and estimated data for that year const populatedData = populateGraphDataForYear(graphData, lastYear) setProcessedGraphData(populatedData) }, [graphData]) useEffect(() => { api.post('/economy/estimates', unity!==''?{ "filters": [ {"type" : "=", "field":"dados_cadastrais.cod_smart_unidade", "value": unity} ] }:{}).then(res => { // Apply data processing to filtered result if (res.data.data && res.data.data.length > 0) { const lastYear = getLastConsolidatedYear(res.data.data, true) const populatedData = populateGraphDataForYear(res.data.data, lastYear) setGraphDataState(populatedData) } else { setGraphDataState(res.data.data) } }) }, [unity]) return ( Smart Energia - Custos Estimados
Unidade
) } export const getServerSideProps: GetServerSideProps = async (ctx) => { const apiClient = getAPIClient(ctx) const { ['@smartAuth-token']: token } = parseCookies(ctx) const { ['user-name']: userName } = parseCookies(ctx) const { ['user-client_id']: client_id } = parseCookies(ctx) let graphData = []; let clients = []; await apiClient.post('/units', { "filters": [ {"type" : "=", "field": "dados_cadastrais.cod_smart_cliente", "value": client_id}, {"type" : "not_in", "field": "dados_cadastrais.codigo_scde", "value":["0P"]} ], "fields": [ "unidade", "cod_smart_unidade", "codigo_scde"], "distinct": true }).then(res => { clients = res.data.data }) await apiClient.post('/economy/estimates').then(res => { graphData = res.data.data }) if (!token) { return { redirect: { destination: '/', permanent: false } } } return { props: { clients, graphData, userName } } }