Skip to content

Commit

Permalink
Tup 112 fix estado de cuenta (#159)
Browse files Browse the repository at this point in the history
  • Loading branch information
facundomelgarejo authored Nov 18, 2024
2 parents 2dcd724 + 9daaeb6 commit 018ca34
Show file tree
Hide file tree
Showing 4 changed files with 478 additions and 254 deletions.
8 changes: 5 additions & 3 deletions FrontAdmin/src/API-Alumnos/Compromiso.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
import Cookies from 'js-cookie'

Check warning on line 1 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Insert `;`

Check warning on line 1 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Insert `;`
// los dni son la mama de lo hardcodeado

export const FetchCompromisos = async () => {
export const FetchCompromisos = async (dni: number | undefined ) => {

Check warning on line 4 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Delete `·`

Check warning on line 4 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Delete `·`
try {

Check warning on line 5 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Insert `·`

Check warning on line 5 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Insert `·`
const token = Cookies.get('tokennn');
const dni = Cookies.get('dni');

if (!dni) {
dni = parseInt(Cookies.get('dni') || '', 10);

Check warning on line 8 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Delete `··`

Check warning on line 8 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Delete `··`
}

const response = await fetch(`http://localhost:8000/api/firmas/firmas-de-alumno/${dni}/`, {

Check warning on line 11 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Replace ``http://localhost:8000/api/firmas/firmas-de-alumno/${dni}/`,·{` with `⏎······`http://localhost:8000/api/firmas/firmas-de-alumno/${dni}/`,`

Check warning on line 11 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Replace ``http://localhost:8000/api/firmas/firmas-de-alumno/${dni}/`,·{` with `⏎······`http://localhost:8000/api/firmas/firmas-de-alumno/${dni}/`,`
method: 'GET',

Check warning on line 12 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Insert `··{⏎`

Check warning on line 12 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Insert `··{⏎`
headers: {

Check warning on line 13 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Replace `············` with `········`

Check warning on line 13 in FrontAdmin/src/API-Alumnos/Compromiso.ts

View workflow job for this annotation

GitHub Actions / Linter de Código

Replace `············` with `········`
Expand Down
7 changes: 4 additions & 3 deletions FrontAdmin/src/API-Alumnos/Pagos.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,12 @@ export const FetchGetCuotas = async (dni: number | undefined ) => {
};


export const FetchResumenPagos = async () => {
export const FetchResumenPagos = async (dni: number | undefined ) => {
try {
const token = Cookies.get('tokennn');
const dni = Cookies.get('dni');

if (!dni) {
dni = parseInt(Cookies.get('dni') || '', 10);
}
const response = await fetch(`http://localhost:8000/api/pagos/alumno/resumen_pagos/${dni}`, {
method: 'GET',
headers: {
Expand Down
108 changes: 35 additions & 73 deletions FrontAdmin/src/components/Pages-Alumnos/EstadoCuenta/EstadoCuenta.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ interface Cuota {
tipo: string;
valorinformado: number;
monto: number;
fecha_vencimiento: string,
cuota_completa: boolean,
}

Expand Down Expand Up @@ -60,6 +61,9 @@ interface CompromisoResponse {
cuota_reducida_2venc: number,
cuota_reducida_3venc: number,
matricula: number,
fecha_vencimiento_2: number,
fecha_vencimiento_1: number,
fecha_vencimiento_3: number,
}

interface Pago {
Expand Down Expand Up @@ -141,8 +145,7 @@ function InformarPago() {

const fetchCompromiso = async () => {
try {
const data = await FetchCompromisos();
console.log(' compromiso:', data)
const data = await FetchCompromisos(undefined);
setCompromiso(data)
} catch (error) {
setError(error);
Expand All @@ -154,7 +157,7 @@ function InformarPago() {

const fetchPagos = async () => {
try {
const data = await FetchResumenPagos();
const data = await FetchResumenPagos(undefined);
setPagos(data);
} catch (error) {
setError(error);
Expand All @@ -170,19 +173,13 @@ function InformarPago() {
fetchDetalleAlumno(dni);
fetchCompromiso();
fetchPagos();





}, []);

useEffect(() => {
if (idCuotaSeleccionada !== null && compromisoFirmado) {
const fetchDetalleCompromiso = async () => {
try {
const detalleData = await FetchDetalleCompromiso(compromisoFirmado.results[0].id_compromiso_de_pago);
console.log('detalle compromiso:', detalleData)
setDetalleCompromiso(detalleData);
} catch (error) {
console.error('Error al obtener el detalle del compromiso', error);
Expand Down Expand Up @@ -219,33 +216,47 @@ function InformarPago() {
ultimo_cursado: '-'
};

const verificarMora = (fecha: string) => {
const [year, month, day] = fecha.split('-');
const dia = parseInt(day, 10);
const verificarFechaDePago = (fechaDeInforme: string, cuota_fechaVencimiento: string) => {
const [year, month, day] = fechaDeInforme.split('-');
let DatefechaDeInforme = new Date(year + '-' + month + '-' + day);

Check failure on line 221 in FrontAdmin/src/components/Pages-Alumnos/EstadoCuenta/EstadoCuenta.tsx

View workflow job for this annotation

GitHub Actions / Linter de Código

'DatefechaDeInforme' is never reassigned. Use 'const' instead

Check failure on line 221 in FrontAdmin/src/components/Pages-Alumnos/EstadoCuenta/EstadoCuenta.tsx

View workflow job for this annotation

GitHub Actions / Linter de Código

'DatefechaDeInforme' is never reassigned. Use 'const' instead

//armar la fecha de vencimiento mes a mes
const [year_vto, month_vto, day_vto] = cuota_fechaVencimiento.split('-');
let fechaCompleta_vto_1 = new Date( year_vto + '-' + month_vto + '-' + detalleCompromiso?.fecha_vencimiento_1)

Check failure on line 225 in FrontAdmin/src/components/Pages-Alumnos/EstadoCuenta/EstadoCuenta.tsx

View workflow job for this annotation

GitHub Actions / Linter de Código

'fechaCompleta_vto_1' is never reassigned. Use 'const' instead

Check failure on line 225 in FrontAdmin/src/components/Pages-Alumnos/EstadoCuenta/EstadoCuenta.tsx

View workflow job for this annotation

GitHub Actions / Linter de Código

'fechaCompleta_vto_1' is never reassigned. Use 'const' instead
let fechaCompleta_vto_2 = new Date( year_vto + '-' + month_vto + '-' + detalleCompromiso?.fecha_vencimiento_2);

Check failure on line 226 in FrontAdmin/src/components/Pages-Alumnos/EstadoCuenta/EstadoCuenta.tsx

View workflow job for this annotation

GitHub Actions / Linter de Código

'fechaCompleta_vto_2' is never reassigned. Use 'const' instead

Check failure on line 226 in FrontAdmin/src/components/Pages-Alumnos/EstadoCuenta/EstadoCuenta.tsx

View workflow job for this annotation

GitHub Actions / Linter de Código

'fechaCompleta_vto_2' is never reassigned. Use 'const' instead

if (dia > 15) {
if (DatefechaDeInforme > fechaCompleta_vto_2) {
return 2
} else if (dia > 10) {
} else if (DatefechaDeInforme > fechaCompleta_vto_1) {
return 1
} else {
return 0
}
};

const mostrarMontoConMora = (fecha: string, cuota_completa: boolean) => {
const mora = verificarMora(fecha); //poner fecha en formato 'aaaa-mm-dd' para simular la mora

const calcularMontoConMora = (
fechaDeInforme: string,
cuota_completa: boolean,
cuota_fechaVencimiento: string
) => {
if (!detalleCompromiso) return 0;
const mora = verificarFechaDePago(fechaDeInforme, cuota_fechaVencimiento);

switch (mora) {
case 0:
return cuota_completa ? detalleCompromiso?.monto_completo : detalleCompromiso?.cuota_reducida;
//pagado antes del primer vto
return cuota_completa ? detalleCompromiso.monto_completo : detalleCompromiso.cuota_reducida;
case 1:
return cuota_completa ? detalleCompromiso?.monto_completo_2venc : detalleCompromiso?.cuota_reducida_2venc;
//pagado antes del segundo vto
return cuota_completa ? detalleCompromiso.monto_completo_2venc : detalleCompromiso.cuota_reducida_2venc;
case 2:
return cuota_completa ? detalleCompromiso?.monto_completo_3venc : detalleCompromiso?.cuota_reducida_3venc;
//pagado despues del segundo vto
return cuota_completa ? detalleCompromiso.monto_completo_3venc : detalleCompromiso.cuota_reducida_3venc;
default:
return 0; // Manejo de error o default
return 0;
}
};



return (
Expand Down Expand Up @@ -368,11 +379,11 @@ function InformarPago() {
<Tr key={index}>
{pago.cuotas.map (cuota => (
cuota.id_cuota === detail ? ( // Verifica cada cuota para mostrar solo las que coinciden
<>
<>
<Td textAlign="center">{cuota.nro_cuota}</Td>
<Td textAlign="center">{'$ ' + new Intl.NumberFormat('es-ES').format(cuota.tipo === "Matrícula" ? (detalleCompromiso?.matricula ?? 0) : (cuotaCompleta ? (detalleCompromiso?.monto_completo) ?? 0 : (detalleCompromiso?.cuota_reducida) ?? 0) )}</Td>
<Td textAlign="center">
{'$ ' + new Intl.NumberFormat('es-ES').format((mostrarMontoConMora(pago.fecha, cuota.cuota_completa) ?? 0) - (cuota.cuota_completa ? (detalleCompromiso?.monto_completo) ?? 0 : (detalleCompromiso?.cuota_reducida) ?? 0) ) }
{'$ ' + new Intl.NumberFormat('es-ES').format(cuota.tipo === "Matrícula" ? 0 : (calcularMontoConMora(pago.fecha, cuota.cuota_completa, cuota.fecha_vencimiento) ?? 0) - (cuota.cuota_completa ? (detalleCompromiso?.monto_completo) ?? 0 : (detalleCompromiso?.cuota_reducida) ?? 0) ) }
</Td>
<Td textAlign="center">{'$ ' + new Intl.NumberFormat('es-ES').format(cuota.monto)}</Td>
<Td textAlign="center">{formatoFechaISOaDDMMAAAA(pago.fecha)}</Td>
Expand All @@ -394,53 +405,4 @@ function InformarPago() {
);
}

export default InformarPago;

/*
<Tabs ml="30px">
<TabList>
<Tab>Estado de cuenta</Tab>
</TabList>
<TabPanels>
<TabPanel minW="50vw">
<Tag m="20px" p="10px">
Estado de cuenta al {fechaDeHoy}
</Tag>
{pagos.length > 1 ? (
<Table variant="simple" width="100%">
<Thead>
<Tr mt={6}>
<Th textAlign="center" p={1}>
Numero
</Th>
<Th textAlign="center">Fecha Primer Vto.</Th>
<Th textAlign="center">Valor Actual</Th>
<Th textAlign="center">Valor Pagado</Th>
<Th textAlign="center">Valor Informado</Th>
<Th textAlign="center">Valor Adeudado</Th>
</Tr>
</Thead>
<Tbody>
{pagos && pagos.map((pago, index) => (
<Tr key={index}>
<Td textAlign="center" p={1}>
{pago.numero}
</Td>
<Td textAlign="center">{}</Td>
<Td textAlign="center">{'$ ' + new Intl.NumberFormat('es-ES').format(pago.montoActual)}</Td>
<Td textAlign="center">{'$ ' + new Intl.NumberFormat('es-ES').format(pago.valorpagado)}</Td>
<Td textAlign="center">{'$ ' + new Intl.NumberFormat('es-ES').format(pago.valorinformado)}</Td>
<Td textAlign="center">{'$ ' + new Intl.NumberFormat('es-ES').format(pago.montoActual - pago.valorpagado - pago.valorinformado)}</Td>
</Tr>
))}
</Tbody>
</Table>
) : (
<Text textAlign="center" padding="20px">No existen cuotas del cuatrimestre en curso. El alumno no firmo el compromiso de pago del periodo actual.</Text>
)}
</TabPanel>
</TabPanels>
</Tabs>
*/
export default InformarPago;
Loading

0 comments on commit 018ca34

Please sign in to comment.