first commit
This commit is contained in:
commit
c9fb67e751
423 files changed
+53287
No files matched your search
@@ -0,0 +1,94 @@
|
||||
import { PrismaClient, Decimal } from '@prisma/client';
|
||||
import { ApiError } from '../utils/ApiError';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
export class PensaoAlimenticiaService {
|
||||
async criarCalculo(dados: {
|
||||
titulo: string;
|
||||
descricao?: string;
|
||||
dataInicial: Date;
|
||||
dataFinal?: Date;
|
||||
percentualSalarioMinimo: number;
|
||||
multaPactuada?: number;
|
||||
tipoAtualizacao: string;
|
||||
processoId?: string;
|
||||
clienteId?: string;
|
||||
observacoes?: string;
|
||||
usuarioId: string;
|
||||
}) {
|
||||
try {
|
||||
const calculo = await prisma.calculoPensaoAlimenticia.create({
|
||||
data: {
|
||||
id: uuidv4(),
|
||||
...dados,
|
||||
status: 'ATIVO',
|
||||
valorCalculado: new Decimal(0), // Será atualizado após o cálculo
|
||||
valorMulta: new Decimal(0),
|
||||
valorTotal: new Decimal(0)
|
||||
}
|
||||
});
|
||||
|
||||
return calculo;
|
||||
} catch (error) {
|
||||
console.error('Erro ao criar cálculo de pensão:', error);
|
||||
throw new ApiError('Falha ao criar cálculo de pensão alimentícia', 500);
|
||||
}
|
||||
}
|
||||
|
||||
async buscarCalculo(id: string) {
|
||||
const calculo = await prisma.calculoPensaoAlimenticia.findUnique({
|
||||
where: { id },
|
||||
include: {
|
||||
processo: true,
|
||||
cliente: true,
|
||||
usuario: {
|
||||
select: {
|
||||
id: true,
|
||||
nome: true,
|
||||
email: true
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (!calculo) {
|
||||
throw new Error('Cálculo não encontrado');
|
||||
}
|
||||
|
||||
return calculo;
|
||||
}
|
||||
|
||||
async listarCalculos(filtros: {
|
||||
status?: string;
|
||||
clienteId?: string;
|
||||
processoId?: string;
|
||||
usuarioId?: string;
|
||||
}) {
|
||||
try {
|
||||
const calculos = await prisma.calculoPensaoAlimenticia.findMany({
|
||||
where: filtros,
|
||||
include: {
|
||||
processo: true,
|
||||
cliente: true,
|
||||
usuario: {
|
||||
select: {
|
||||
id: true,
|
||||
nome: true,
|
||||
email: true
|
||||
}
|
||||
}
|
||||
},
|
||||
orderBy: {
|
||||
criadoEm: 'desc'
|
||||
}
|
||||
});
|
||||
|
||||
return calculos;
|
||||
} catch (error) {
|
||||
console.error('Erro ao listar cálculos:', error);
|
||||
throw new ApiError('Falha ao listar cálculos de pensão alimentícia', 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user