diff --git a/src/front/Components/Layouts/Folder/DocumentsReminderHistory/index.tsx b/src/front/Components/Layouts/Folder/DocumentsReminderHistory/index.tsx index f946f00c..f9a4130f 100644 --- a/src/front/Components/Layouts/Folder/DocumentsReminderHistory/index.tsx +++ b/src/front/Components/Layouts/Folder/DocumentsReminderHistory/index.tsx @@ -1,13 +1,17 @@ +import DocumentReminders from "@Front/Api/LeCoffreApi/Notary/DocumentReminders/DocumentReminders"; import Table from "@Front/Components/DesignSystem/Table"; -import { IHead } from "@Front/Components/DesignSystem/Table/MuiTable"; +import { IHead, IRowProps } from "@Front/Components/DesignSystem/Table/MuiTable"; import Typography, { ETypo, ETypoColor } from "@Front/Components/DesignSystem/Typography"; import BackArrow from "@Front/Components/Elements/BackArrow"; import DefaultTemplate from "@Front/Components/LayoutTemplates/DefaultTemplate"; import Module from "@Front/Config/Module"; +import { DocumentReminder } from "le-coffre-resources/dist/Notary"; import { useRouter } from "next/router"; -import React from "react"; +import React, { useCallback, useEffect, useState } from "react"; import classes from "./classes.module.scss"; +import Tag, { ETagColor } from "@Front/Components/DesignSystem/Tag"; +import { EDocumentStatus } from "le-coffre-resources/dist/Customer/Document"; type IProps = {}; @@ -31,9 +35,35 @@ const header: readonly IHead[] = [ ]; export default function DocumentsReminderHistory(props: IProps) { + const [reminders, setReminders] = useState(null); const router = useRouter(); let { folderUid } = router.query; + const fetchReminders = useCallback(async () => { + DocumentReminders.getInstance() + .get({ + include: { + document: { + include: { + depositor: { + include: { + contact: true, + }, + }, + document_type: true, + }, + }, + }, + orderBy: { reminder_date: "desc" }, + }) + .then((reminders) => setReminders(reminders)) + .catch((e) => console.warn(e)); + }, []); + + useEffect(() => { + fetchReminders(); + }, [fetchReminders]); + return (
@@ -46,8 +76,34 @@ export default function DocumentsReminderHistory(props: IProps) { Historique des relances de documents - +
); } + +function buildRows(reminders: DocumentReminder[] | null): IRowProps[] { + if (!reminders) return []; + return reminders.map((reminder) => ({ + key: reminder.uid ?? "", + remindedAt: new Date(reminder.reminder_date!).toLocaleDateString(), + customer: `${reminder.document?.depositor?.contact?.first_name} ${reminder.document?.depositor?.contact?.last_name}`, + document_type: reminder.document?.document_type?.name, + statut: getTag(reminder.document?.document_status as EDocumentStatus), + })); +} + +function getTag(status: EDocumentStatus) { + switch (status) { + case EDocumentStatus.ASKED: + return ; + case EDocumentStatus.DEPOSITED: + return ; + case EDocumentStatus.VALIDATED: + return ; + case EDocumentStatus.REFUSED: + return ; + default: + return ; + } +} diff --git a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/index.tsx b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/index.tsx index c3ee930d..ca9155d2 100644 --- a/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/index.tsx +++ b/src/front/Components/Layouts/Folder/FolderInformation/ClientView/EmailReminder/index.tsx @@ -1,18 +1,18 @@ +import DocumentReminders from "@Front/Api/LeCoffreApi/Notary/DocumentReminders/DocumentReminders"; import Button, { EButtonstyletype, EButtonVariant } from "@Front/Components/DesignSystem/Button"; import IconButton, { EIconButtonVariant } from "@Front/Components/DesignSystem/IconButton"; import Typography, { ETypo, ETypoColor } from "@Front/Components/DesignSystem/Typography"; +import Module from "@Front/Config/Module"; import useOpenable from "@Front/Hooks/useOpenable"; import { ClockIcon, EnvelopeIcon } from "@heroicons/react/24/outline"; import Customer from "le-coffre-resources/dist/Customer"; +import { DocumentReminder } from "le-coffre-resources/dist/Notary"; +import Link from "next/link"; +import { useRouter } from "next/router"; +import { useCallback, useEffect, useState } from "react"; import classes from "./classes.module.scss"; import ReminderModal from "./ReminderModal"; -import { useRouter } from "next/router"; -import Module from "@Front/Config/Module"; -import Link from "next/link"; -import { useCallback, useEffect, useState } from "react"; -import DocumentReminders from "@Front/Api/LeCoffreApi/Notary/DocumentReminders/DocumentReminders"; -import { DocumentReminder } from "le-coffre-resources/dist/Notary"; type IProps = { customer: Customer; @@ -39,7 +39,7 @@ export default function EmailReminder(props: IProps) { useEffect(() => { fetchReminders(); - }, []); + }, [fetchReminders]); let { folderUid } = router.query; @@ -61,33 +61,18 @@ export default function EmailReminder(props: IProps) { title={"Voir l'historique des relances"} href={Module.getInstance() .get() - .modules.pages.Folder.pages.DocumentsReminderHistory.props.path.replace("[folderUid]", folderUid as string)}> + .modules.pages.Folder.pages.DocumentsReminderHistory.props.path.replace("[folderUid]", folderUid as string) + .replace("[customerUid]", customer.uid ?? "")}> } variant={EIconButtonVariant.NEUTRAL} />
- {/* TODO: mettre la date de la dernière relance */} - {!reminders && ( - - Dernière relance: - - - )} - - {reminders && reminders.length > 0 && ( - - Dernière relance: {new Date(reminders[0]!.reminder_date!).toLocaleDateString()} - - )} - {/* TODO: mettre le nombre de relance */} - {!reminders && ( - - Nombre de relance: - - - )} - {reminders && reminders.length > 0 && ( - - Nombre de relance: {reminders.length} - - )} + + Dernière relance:{" "} + {reminders && reminders.length > 0 ? new Date(reminders[0]!.reminder_date!).toLocaleDateString() : "-"} + + + Nombre de relance: {reminders && reminders.length > 0 ? reminders.length : "0"} +