Fix somes issues
This commit is contained in:
parent
c939065562
commit
ca5a59c51a
@ -156,6 +156,7 @@ export default function AddClientToFolder(props: IProps) {
|
||||
);
|
||||
|
||||
const loadCustomers = useCallback(async () => {
|
||||
LoaderService.getInstance().show();
|
||||
CustomerService.getCustomers().then(async (processes: any[]) => {
|
||||
const availableCustomers: any[] = processes.map((process: any) => process.processData);
|
||||
|
||||
@ -176,6 +177,8 @@ export default function AddClientToFolder(props: IProps) {
|
||||
setExistingCustomers(existingCustomers);
|
||||
setIsLoaded(true);
|
||||
setSelectedOption(selectedOption);
|
||||
|
||||
LoaderService.getInstance().hide();
|
||||
});
|
||||
}, [folderUid, getFolderPreSelectedCustomers]);
|
||||
|
||||
|
@ -17,6 +17,7 @@ import backgroundImage from "@Assets/images/background_refonte.svg";
|
||||
|
||||
import FolderService from "src/common/Api/LeCoffreApi/sdk/FolderService";
|
||||
import DocumentService from "src/common/Api/LeCoffreApi/sdk/DocumentService";
|
||||
import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService";
|
||||
|
||||
export default function AskDocuments() {
|
||||
const router = useRouter();
|
||||
@ -58,8 +59,8 @@ export default function AskDocuments() {
|
||||
) => {
|
||||
try {
|
||||
// TODO: review
|
||||
LoaderService.getInstance().show();
|
||||
const documentAsked: [] = values["document_types"] as [];
|
||||
|
||||
for (let i = 0; i < documentAsked.length; i++) {
|
||||
const documentData: any = {
|
||||
folder: {
|
||||
@ -77,7 +78,6 @@ export default function AskDocuments() {
|
||||
|
||||
await DocumentService.createDocument(documentData, validatorId);
|
||||
}
|
||||
|
||||
router.push(
|
||||
Module.getInstance()
|
||||
.get()
|
||||
@ -127,11 +127,13 @@ export default function AskDocuments() {
|
||||
|
||||
const loadData = useCallback(async () => {
|
||||
try {
|
||||
LoaderService.getInstance().show();
|
||||
FolderService.getFolderByUid(folderUid as string).then(async (process: any) => {
|
||||
if (process) {
|
||||
const folder: any = process.processData;
|
||||
setFolder(folder);
|
||||
setDocumentTypes(await getAvailableDocuments(folder));
|
||||
LoaderService.getInstance().hide();
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
|
@ -17,6 +17,7 @@ import Note from "le-coffre-resources/dist/Customer/Note";
|
||||
import FolderService from "src/common/Api/LeCoffreApi/sdk/FolderService";
|
||||
import CustomerService from "src/common/Api/LeCoffreApi/sdk/CustomerService";
|
||||
import NoteService from "src/common/Api/LeCoffreApi/sdk/NoteService";
|
||||
import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService";
|
||||
|
||||
type IProps = {};
|
||||
|
||||
@ -83,6 +84,8 @@ class CreateCustomerNoteClass extends BasePage<IPropsClass, IState> {
|
||||
const customer = await Customers.getInstance().getByUid(this.props.customerUid);
|
||||
*/
|
||||
|
||||
LoaderService.getInstance().show();
|
||||
|
||||
const folder: any = await FolderService.getFolderByUid(this.props.folderUid).then((process: any) => {
|
||||
if (process) {
|
||||
const folder: any = process.processData;
|
||||
@ -97,6 +100,8 @@ class CreateCustomerNoteClass extends BasePage<IPropsClass, IState> {
|
||||
}
|
||||
});
|
||||
|
||||
LoaderService.getInstance().hide();
|
||||
|
||||
//get the note of the folder that has customer_uid = this.props.customer.uid
|
||||
// const folderNote = folder.notes?.find((note) => note.customer?.uid === this.props.customerUid);
|
||||
// this.setState({ note, folder: note.office_folder || null, customer: note.customer || null });
|
||||
@ -121,6 +126,7 @@ class CreateCustomerNoteClass extends BasePage<IPropsClass, IState> {
|
||||
};
|
||||
const validatorId: string = '884cb36a346a79af8697559f16940141f068bdf1656f88fa0df0e9ecd7311fb8:0';
|
||||
|
||||
LoaderService.getInstance().show();
|
||||
NoteService.createNote(noteData, validatorId).then(() => {
|
||||
this.props.router.push(this.backwardPath);
|
||||
});
|
||||
|
@ -4,6 +4,7 @@ import Typography, { ETypo } from "@Front/Components/DesignSystem/Typography";
|
||||
import React, { useCallback } from "react";
|
||||
|
||||
import DocumentService from "src/common/Api/LeCoffreApi/sdk/DocumentService";
|
||||
import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService";
|
||||
|
||||
type IProps = {
|
||||
documentUid: string;
|
||||
@ -16,7 +17,8 @@ export default function DeleteAskedDocumentModal(props: IProps) {
|
||||
const { isOpen, onClose, documentUid, onDeleteSuccess } = props;
|
||||
|
||||
const onDelete = useCallback(
|
||||
() =>
|
||||
() => {
|
||||
LoaderService.getInstance().show();
|
||||
new Promise<void>(
|
||||
(resolve: () => void) => {
|
||||
DocumentService.getDocumentByUid(documentUid).then((process: any) => {
|
||||
@ -27,8 +29,10 @@ export default function DeleteAskedDocumentModal(props: IProps) {
|
||||
})
|
||||
.then(() => onDeleteSuccess(documentUid))
|
||||
.then(() => ToasterService.getInstance().success({ title: "Succès !", description: "Le document a été supprimé avec succès." }))
|
||||
.then(() => LoaderService.getInstance().hide())
|
||||
.then(onClose)
|
||||
.catch((error) => console.warn(error)),
|
||||
.catch((error) => console.warn(error));
|
||||
},
|
||||
[documentUid, onClose, onDeleteSuccess],
|
||||
);
|
||||
|
||||
|
@ -1,9 +1,11 @@
|
||||
import DocumentsNotary from "@Front/Api/LeCoffreApi/Notary/DocumentsNotary/DocumentsNotary";
|
||||
import Modal from "@Front/Components/DesignSystem/Modal";
|
||||
import { ToasterService } from "@Front/Components/DesignSystem/Toaster";
|
||||
import Typography, { ETypo } from "@Front/Components/DesignSystem/Typography";
|
||||
import React, { useCallback } from "react";
|
||||
|
||||
import DocumentService from "src/common/Api/LeCoffreApi/sdk/DocumentService";
|
||||
import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService";
|
||||
|
||||
type IProps = {
|
||||
documentUid: string;
|
||||
isOpen: boolean;
|
||||
@ -15,13 +17,18 @@ export default function DeleteSentDocumentModal(props: IProps) {
|
||||
const { isOpen, onClose, documentUid, onDeleteSuccess } = props;
|
||||
|
||||
const onDelete = useCallback(
|
||||
() =>
|
||||
DocumentsNotary.getInstance()
|
||||
.delete(documentUid)
|
||||
.then(() => onDeleteSuccess(documentUid))
|
||||
.then(() => ToasterService.getInstance().success({ title: "Succès !", description: "Le document a été supprimé avec succès." }))
|
||||
.then(onClose)
|
||||
.catch((error) => console.warn(error)),
|
||||
() => {
|
||||
LoaderService.getInstance().show();
|
||||
DocumentService.getDocumentByUid(documentUid).then((process: any) => {
|
||||
if (process) {
|
||||
DocumentService.updateDocument(process, { isDeleted: 'true' })
|
||||
.then(() => onDeleteSuccess(documentUid))
|
||||
.then(() => ToasterService.getInstance().success({ title: "Succès !", description: "Le document a été supprimé avec succès." }))
|
||||
.then(() => LoaderService.getInstance().hide())
|
||||
.then(onClose);
|
||||
}
|
||||
});
|
||||
},
|
||||
[documentUid, onClose, onDeleteSuccess],
|
||||
);
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
import DocumentsNotary from "@Front/Api/LeCoffreApi/Notary/DocumentsNotary/DocumentsNotary";
|
||||
import FilesNotary from "@Front/Api/LeCoffreApi/Notary/FilesNotary/Files";
|
||||
import CircleProgress from "@Front/Components/DesignSystem/CircleProgress";
|
||||
import IconButton from "@Front/Components/DesignSystem/IconButton";
|
||||
@ -24,6 +23,7 @@ import DeleteSentDocumentModal from "./DeleteSentDocumentModal";
|
||||
import DocumentService from "src/common/Api/LeCoffreApi/sdk/DocumentService";
|
||||
import DocumentTypeService from "src/common/Api/LeCoffreApi/sdk/DocumentTypeService";
|
||||
import FileService from "src/common/Api/LeCoffreApi/sdk/FileService";
|
||||
import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService";
|
||||
|
||||
type IProps = {
|
||||
customerUid: string;
|
||||
@ -55,14 +55,13 @@ export default function DocumentTables(props: IProps) {
|
||||
|
||||
const fetchDocuments = useCallback(
|
||||
() => {
|
||||
setDocuments([]);
|
||||
|
||||
LoaderService.getInstance().show();
|
||||
DocumentService.getDocuments().then(async (processes: any[]) => {
|
||||
if (processes.length > 0) {
|
||||
let documents: any[] = processes.map((process: any) => process.processData);
|
||||
|
||||
// FilterBy folder.uid & depositor.uid
|
||||
documents = documents.filter((document: any) => document.folder.uid === folderUid && document.depositor.uid === customerUid);
|
||||
documents = documents.filter((document: any) => document.folder.uid === folderUid && document.depositor && document.depositor.uid === customerUid);
|
||||
|
||||
for (const document of documents) {
|
||||
document.document_type = (await DocumentTypeService.getDocumentTypeByUid(document.document_type.uid)).processData;
|
||||
@ -80,24 +79,45 @@ export default function DocumentTables(props: IProps) {
|
||||
} else {
|
||||
setDocuments([]);
|
||||
}
|
||||
})
|
||||
LoaderService.getInstance().hide();
|
||||
});
|
||||
},
|
||||
[customerUid, folderUid],
|
||||
);
|
||||
|
||||
const fetchDocumentsNotary = useCallback(
|
||||
() =>
|
||||
DocumentsNotary.getInstance()
|
||||
.get({ where: { folder: { uid: folderUid }, customer: { uid: customerUid } }, include: { files: true } })
|
||||
.then(setDocumentsNotary)
|
||||
.catch(console.warn),
|
||||
() => {
|
||||
LoaderService.getInstance().show();
|
||||
DocumentService.getDocuments().then(async (processes: any[]) => {
|
||||
if (processes.length > 0) {
|
||||
let documents: any[] = processes.map((process: any) => process.processData);
|
||||
|
||||
// FilterBy folder.uid & customer.uid
|
||||
documents = documents.filter((document: any) => document.folder.uid === folderUid && document.customer && document.customer.uid === customerUid);
|
||||
|
||||
for (const document of documents) {
|
||||
if (document.files && document.files.length > 0) {
|
||||
const files: any[] = [];
|
||||
for (const file of document.files) {
|
||||
files.push((await FileService.getFileByUid(file.uid)).processData);
|
||||
}
|
||||
document.files = files;
|
||||
}
|
||||
}
|
||||
|
||||
setDocumentsNotary(documents);
|
||||
} else {
|
||||
setDocumentsNotary([]);
|
||||
}
|
||||
LoaderService.getInstance().hide();
|
||||
});
|
||||
},
|
||||
[customerUid, folderUid],
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
// TODO: review
|
||||
fetchDocuments();
|
||||
//fetchDocumentsNotary();
|
||||
fetchDocumentsNotary();
|
||||
}, [fetchDocuments, fetchDocumentsNotary]);
|
||||
|
||||
const openDeleteAskedDocumentModal = useCallback(
|
||||
|
@ -135,7 +135,7 @@ export default function FolderInformation(props: IProps) {
|
||||
if (processes.length > 0) {
|
||||
const documents: any[] = processes.map((process: any) => process.processData);
|
||||
for (const customer of folder.customers) {
|
||||
customer.documents = documents.filter((document: any) => document.depositor.uid === customer.uid);
|
||||
customer.documents = documents.filter((document: any) => document.depositor && document.depositor.uid === customer.uid);
|
||||
}
|
||||
}
|
||||
resolve();
|
||||
|
@ -1,6 +1,5 @@
|
||||
import backgroundImage from "@Assets/images/background_refonte.svg";
|
||||
import DocumentsNotary from "@Front/Api/LeCoffreApi/Notary/DocumentsNotary/DocumentsNotary";
|
||||
import Folders from "@Front/Api/LeCoffreApi/Notary/Folders/Folders";
|
||||
import { EDocumentNotaryStatus } from "le-coffre-resources/dist/Notary/DocumentNotary";
|
||||
import Button, { EButtonstyletype, EButtonVariant } from "@Front/Components/DesignSystem/Button";
|
||||
import DragAndDrop from "@Front/Components/DesignSystem/DragAndDrop";
|
||||
import Form from "@Front/Components/DesignSystem/Form";
|
||||
@ -19,6 +18,11 @@ import React, { useCallback, useEffect, useMemo, useState } from "react";
|
||||
|
||||
import classes from "./classes.module.scss";
|
||||
|
||||
import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService";
|
||||
import FolderService from "src/common/Api/LeCoffreApi/sdk/FolderService";
|
||||
import DocumentService from "src/common/Api/LeCoffreApi/sdk/DocumentService";
|
||||
import FileService from "src/common/Api/LeCoffreApi/sdk/FileService";
|
||||
|
||||
enum EClientSelection {
|
||||
ALL_CLIENTS = "all_clients",
|
||||
SELECTED_CLIENTS = "selected_clients",
|
||||
@ -59,6 +63,64 @@ export default function SendDocuments() {
|
||||
throw new Error("No clients selected");
|
||||
}
|
||||
|
||||
LoaderService.getInstance().show();
|
||||
for (const selectedClient of selectedClients) {
|
||||
for (const file of files) {
|
||||
await new Promise<void>((resolve: () => void) => {
|
||||
const reader = new FileReader();
|
||||
reader.onload = (event) => {
|
||||
if (event.target?.result) {
|
||||
const arrayBuffer = event.target.result as ArrayBuffer;
|
||||
const uint8Array = new Uint8Array(arrayBuffer);
|
||||
|
||||
const fileBlob: any = {
|
||||
type: file.type,
|
||||
data: uint8Array
|
||||
};
|
||||
|
||||
const fileData: any = {
|
||||
file_blob: fileBlob,
|
||||
file_name: file.name
|
||||
};
|
||||
const validatorId: string = '884cb36a346a79af8697559f16940141f068bdf1656f88fa0df0e9ecd7311fb8:0';
|
||||
|
||||
FileService.createFile(fileData, validatorId).then((processCreated: any) => {
|
||||
const fileUid: string = processCreated.processData.uid;
|
||||
|
||||
const documentData: any = {
|
||||
folder: {
|
||||
uid: folderUid as string
|
||||
},
|
||||
customer: {
|
||||
uid: selectedClient as string
|
||||
},
|
||||
files: [
|
||||
{
|
||||
uid: fileUid
|
||||
}
|
||||
],
|
||||
document_status: EDocumentNotaryStatus.SENT
|
||||
};
|
||||
|
||||
DocumentService.createDocument(documentData, validatorId).then(() => resolve());
|
||||
});
|
||||
}
|
||||
};
|
||||
reader.readAsArrayBuffer(file);
|
||||
});
|
||||
}
|
||||
}
|
||||
LoaderService.getInstance().hide();
|
||||
|
||||
router.push(
|
||||
Module.getInstance()
|
||||
.get()
|
||||
.modules.pages.Folder.pages.FolderInformation.props.path.replace("[folderUid]", folderUid as string),
|
||||
);
|
||||
setIsSending(false);
|
||||
ToasterService.getInstance().success({ title: "Succès !", description: "Votre document a été envoyée avec succès." });
|
||||
|
||||
/*
|
||||
await Promise.all(
|
||||
selectedClients.map(async (customer) => {
|
||||
const promises = files.map(async (file) => {
|
||||
@ -83,6 +145,7 @@ export default function SendDocuments() {
|
||||
);
|
||||
setIsSending(false);
|
||||
ToasterService.getInstance().success({ title: "Succès !", description: "Votre document a été envoyée avec succès." });
|
||||
*/
|
||||
} catch (error) {
|
||||
setIsSending(false);
|
||||
console.warn("Error while sending files: ", error);
|
||||
@ -92,18 +155,14 @@ export default function SendDocuments() {
|
||||
);
|
||||
|
||||
const fetchFolder = useCallback(async () => {
|
||||
Folders.getInstance()
|
||||
.getByUid(folderUid as string, {
|
||||
q: {
|
||||
customers: {
|
||||
include: {
|
||||
contact: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
.then((folder) => setFolder(folder))
|
||||
.catch((e) => console.warn(e));
|
||||
LoaderService.getInstance().show();
|
||||
FolderService.getFolderByUid(folderUid as string).then((process: any) => {
|
||||
if (process) {
|
||||
const folder: any = process.processData;
|
||||
setFolder(folder);
|
||||
LoaderService.getInstance().hide();
|
||||
}
|
||||
});
|
||||
}, [folderUid]);
|
||||
|
||||
const onClientSelectionChange = useCallback(
|
||||
|
@ -13,6 +13,7 @@ import classes from "./classes.module.scss";
|
||||
import Note from "le-coffre-resources/dist/Customer/Note";
|
||||
|
||||
import NoteService from "src/common/Api/LeCoffreApi/sdk/NoteService";
|
||||
import LoaderService from "src/common/Api/LeCoffreApi/sdk/Loader/LoaderService";
|
||||
|
||||
type IProps = {};
|
||||
|
||||
@ -67,6 +68,7 @@ class UpdateCustomerNoteClass extends BasePage<IPropsClass, IState> {
|
||||
}
|
||||
|
||||
public override async componentDidMount() {
|
||||
LoaderService.getInstance().show();
|
||||
NoteService.getNoteByUid(this.props.noteUid).then((process: any) => {
|
||||
if (process) {
|
||||
const note: any = process.processData;
|
||||
@ -80,15 +82,17 @@ class UpdateCustomerNoteClass extends BasePage<IPropsClass, IState> {
|
||||
.get()
|
||||
.modules.pages.Folder.pages.FolderInformation.props.path.replace("[folderUid]", note.folder?.uid!),
|
||||
});
|
||||
|
||||
LoaderService.getInstance().hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private async onFormSubmit(e: React.FormEvent<HTMLFormElement> | null, values: { [key: string]: string }) {
|
||||
try {
|
||||
LoaderService.getInstance().show();
|
||||
NoteService.getNoteByUid(this.props.noteUid).then((process: any) => {
|
||||
if (process) {
|
||||
|
||||
NoteService.updateNote(process, { content: values["content"] }).then(() => {
|
||||
this.props.router.push(this.state.backwardPath);
|
||||
});
|
||||
|
@ -49,7 +49,6 @@ export default function UpdateFolderMetadata() {
|
||||
setValidationError(validationErrors as ValidationError[]);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
LoaderService.getInstance().show();
|
||||
FolderService.getFolderByUid(folderUid).then((process: any) => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user