130 lines
4.9 KiB
C#
130 lines
4.9 KiB
C#
using line_gestao_api.Data;
|
|
using line_gestao_api.Dtos;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace line_gestao_api.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("api/resumo")]
|
|
[Authorize]
|
|
public class ResumoController : ControllerBase
|
|
{
|
|
private readonly AppDbContext _db;
|
|
|
|
public ResumoController(AppDbContext db)
|
|
{
|
|
_db = db;
|
|
}
|
|
|
|
[HttpGet]
|
|
public async Task<ActionResult<ResumoResponseDto>> GetResumo()
|
|
{
|
|
var response = new ResumoResponseDto
|
|
{
|
|
MacrophonyPlans = await _db.ResumoMacrophonyPlans.AsNoTracking()
|
|
.OrderBy(x => x.PlanoContrato)
|
|
.Select(x => new ResumoMacrophonyPlanDto
|
|
{
|
|
PlanoContrato = x.PlanoContrato,
|
|
Gb = x.Gb,
|
|
ValorIndividualComSvas = x.ValorIndividualComSvas,
|
|
FranquiaGb = x.FranquiaGb,
|
|
TotalLinhas = x.TotalLinhas,
|
|
ValorTotal = x.ValorTotal,
|
|
VivoTravel = x.VivoTravel
|
|
})
|
|
.ToListAsync(),
|
|
MacrophonyTotals = await _db.ResumoMacrophonyTotals.AsNoTracking()
|
|
.Select(x => new ResumoMacrophonyTotalDto
|
|
{
|
|
FranquiaGbTotal = x.FranquiaGbTotal,
|
|
TotalLinhasTotal = x.TotalLinhasTotal,
|
|
ValorTotal = x.ValorTotal
|
|
})
|
|
.FirstOrDefaultAsync(),
|
|
VivoLineResumos = await _db.ResumoVivoLineResumos.AsNoTracking()
|
|
.OrderBy(x => x.Cliente)
|
|
.Select(x => new ResumoVivoLineResumoDto
|
|
{
|
|
Skil = x.Skil,
|
|
Cliente = x.Cliente,
|
|
QtdLinhas = x.QtdLinhas,
|
|
FranquiaTotal = x.FranquiaTotal,
|
|
ValorContratoVivo = x.ValorContratoVivo,
|
|
FranquiaLine = x.FranquiaLine,
|
|
ValorContratoLine = x.ValorContratoLine,
|
|
Lucro = x.Lucro
|
|
})
|
|
.ToListAsync(),
|
|
VivoLineTotals = await _db.ResumoVivoLineTotals.AsNoTracking()
|
|
.Select(x => new ResumoVivoLineTotalDto
|
|
{
|
|
QtdLinhasTotal = x.QtdLinhasTotal,
|
|
FranquiaTotal = x.FranquiaTotal,
|
|
ValorContratoVivo = x.ValorContratoVivo,
|
|
FranquiaLine = x.FranquiaLine,
|
|
ValorContratoLine = x.ValorContratoLine,
|
|
Lucro = x.Lucro
|
|
})
|
|
.FirstOrDefaultAsync(),
|
|
ClienteEspeciais = await _db.ResumoClienteEspeciais.AsNoTracking()
|
|
.OrderBy(x => x.Nome)
|
|
.Select(x => new ResumoClienteEspecialDto
|
|
{
|
|
Nome = x.Nome,
|
|
Valor = x.Valor
|
|
})
|
|
.ToListAsync(),
|
|
PlanoContratoResumos = await _db.ResumoPlanoContratoResumos.AsNoTracking()
|
|
.OrderBy(x => x.PlanoContrato)
|
|
.Select(x => new ResumoPlanoContratoResumoDto
|
|
{
|
|
PlanoContrato = x.PlanoContrato,
|
|
Gb = x.Gb,
|
|
ValorIndividualComSvas = x.ValorIndividualComSvas,
|
|
FranquiaGb = x.FranquiaGb,
|
|
TotalLinhas = x.TotalLinhas,
|
|
ValorTotal = x.ValorTotal
|
|
})
|
|
.ToListAsync(),
|
|
PlanoContratoTotal = await _db.ResumoPlanoContratoTotals.AsNoTracking()
|
|
.Select(x => new ResumoPlanoContratoTotalDto
|
|
{
|
|
ValorTotal = x.ValorTotal
|
|
})
|
|
.FirstOrDefaultAsync(),
|
|
LineTotais = await _db.ResumoLineTotais.AsNoTracking()
|
|
.OrderBy(x => x.Tipo)
|
|
.Select(x => new ResumoLineTotaisDto
|
|
{
|
|
Tipo = x.Tipo,
|
|
ValorTotalLine = x.ValorTotalLine,
|
|
LucroTotalLine = x.LucroTotalLine,
|
|
QtdLinhas = x.QtdLinhas
|
|
})
|
|
.ToListAsync(),
|
|
ReservaLines = await _db.ResumoReservaLines.AsNoTracking()
|
|
.OrderBy(x => x.Ddd)
|
|
.Select(x => new ResumoReservaLineDto
|
|
{
|
|
Ddd = x.Ddd,
|
|
FranquiaGb = x.FranquiaGb,
|
|
QtdLinhas = x.QtdLinhas,
|
|
Total = x.Total
|
|
})
|
|
.ToListAsync(),
|
|
ReservaTotal = await _db.ResumoReservaTotals.AsNoTracking()
|
|
.Select(x => new ResumoReservaTotalDto
|
|
{
|
|
QtdLinhasTotal = x.QtdLinhasTotal,
|
|
Total = x.Total
|
|
})
|
|
.FirstOrDefaultAsync()
|
|
};
|
|
|
|
return Ok(response);
|
|
}
|
|
}
|