From e65fb6bde2d8975a241bd562c9bd6cd154225976 Mon Sep 17 00:00:00 2001 From: Vitalii Kiiko Date: Fri, 6 Dec 2024 16:29:48 +0100 Subject: [PATCH] - added proper form fields for archiving document; --- src/configData.js | 109 +++++++++- .../components/ArchiveDocument/index.js | 198 +++++++++++++----- src/pages/DomandaEditPreInstructor/index.js | 28 ++- src/service/appointment-service.js | 14 ++ 4 files changed, 296 insertions(+), 53 deletions(-) create mode 100644 src/service/appointment-service.js diff --git a/src/configData.js b/src/configData.js index 81eadc2..c8827e7 100644 --- a/src/configData.js +++ b/src/configData.js @@ -44,4 +44,111 @@ export const dynamicDataOptions = { ], textinput: dynamicDataForTextinput, textarea: dynamicDataForTextinput -} \ No newline at end of file +} + +export const protocolType = [ + { + 'id': 1, + 'name': 'PROTOCOLLO IN ENTRATA' + }, + { + 'id': 2, + 'name': 'PROTOCOLLO IN USCITA' + }, + { + 'id': 3, + 'name': 'DOCUMENTO INTERNO' + }, + { + 'id': 1003, + 'name': 'PROTOCOLLO INTERNO ' + } +]; + +export const classificationType = [ + { + 'idClassificazione': 101, + 'name': 'BILANCIO', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 102, + 'name': 'DICHHIARAZIONE DEI REDDITI', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 103, + 'name': 'SITUAZIONE CONTABILE', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 104, + 'name': 'PROSPETTO CONTO ECONOMICO', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 105, + 'name': 'CENTRALE DEI RISCHI', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 106, + 'name': 'RELAZIONE AZIENDALE ILLUSTRATIVA (MOD R1C, R1I, R1R, R1R A SECONDO DEI ', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 107, + 'name': 'DOCUMENTO IDENTITA\'', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 108, + 'name': 'MODELLO SP1', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 109, + 'name': 'PRIVACY', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 110, + 'name': 'DOCUMENTAZIONE CHE ATTESTA POSSIBILITA\' DI RILASCIARE GAA FAVORE', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 111, + 'name': 'MODELLO AR1 D.LG 231/2007', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 112, + 'name': 'DOCUMENTO IDENTITA\' FIRMATORIO DICHHIARAZIONE SOSTITUTIVA', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 113, + 'name': 'PRIVACY FIRMATARIO DICHHIARAZIONE SOSTITUTIVA', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 114, + 'name': 'NULLAOSTA ANTIMAFIA', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 201, + 'name': 'LETTERA ESITO DELIBERA', + 'idTipoprotocollo': 2 + }, + { + 'idClassificazione': 202, + 'name': 'LETTERA DI GARANZIA', + 'idTipoprotocollo': 1 + }, + { + 'idClassificazione': 203, + 'name': 'GENERICO', + 'idTipoprotocollo': 3 + } +]; \ No newline at end of file diff --git a/src/pages/DomandaEditPreInstructor/components/ArchiveDocument/index.js b/src/pages/DomandaEditPreInstructor/components/ArchiveDocument/index.js index 4a093dd..094d468 100644 --- a/src/pages/DomandaEditPreInstructor/components/ArchiveDocument/index.js +++ b/src/pages/DomandaEditPreInstructor/components/ArchiveDocument/index.js @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useRef, useState } from 'react'; import { __ } from '@wordpress/i18n'; import { isEmpty } from 'ramda'; import { wrap } from 'object-path-immutable'; @@ -9,24 +9,37 @@ import { Dialog } from 'primereact/dialog'; import { InputTextarea } from 'primereact/inputtextarea'; import { Dropdown } from 'primereact/dropdown'; import { classNames } from 'primereact/utils'; +import { InputSwitch } from 'primereact/inputswitch'; +import { InputText } from 'primereact/inputtext'; -const ArchiveDocument = ({ ndg = '', fileId = 0 }) => { +import { classificationType, protocolType } from '../../../../configData'; +import AppointmentService from '../../../../service/appointment-service'; +import set404FromErrorResponse from '../../../../helpers/set404FromErrorResponse'; +import { storeSet } from '../../../../store'; +import { Toast } from 'primereact/toast'; + +const ArchiveDocument = ({ applicationId, ndg = '', fileId = 0 }) => { const [loading, setLoading] = useState(false); const [isVisibleDialog, setIsVisibleDialog] = useState(false); const [modalData, setModalData] = useState({}); + const [types, setTypes] = useState([]); const [categories, setCategories] = useState([]); + const toast = useRef(null); const openArchivationModal = () => { setIsVisibleDialog(true); setModalData({ - description: '', - categoryId: 0, + descrizione: '', + idTipoProtocollo: 0, + idClassificazione: 0, + flagDaFirmare: false, + email: '', fileId }); } const headerDialog = () => { - return {__('Archive document', 'gepafin')}; + return {__('Archiviazione del documento', 'gepafin')}; } const hideDialog = () => { @@ -50,56 +63,141 @@ const ArchiveDocument = ({ ndg = '', fileId = 0 }) => { } const submitData = () => { - console.log('submitData', modalData) + if ( + modalData.idTipoProtocollo !== 0 && modalData.idClassificazione !== 0 + && !isEmpty(modalData.descrizione) && !isEmpty(modalData.email) + ) { + setLoading(true); + const submitData = { + 'input': { + 'idTipoProtocollo': modalData.idTipoProtocollo, + 'idClassificazione': modalData.idClassificazione, + 'flagDaFirmare': modalData.flagDaFirmare, + 'descrizione': modalData.descrizione, + 'attributes': { + 'ndg': ndg, + 'email': modalData.email + } + } + } + console.log('submitData', submitData); + //AppointmentService.archiveDocument(applicationId, fileId, submitData, submitCallback, errSubmitCallback) + } + } + + const submitCallback = (data) => { + if (data.status === 'SUCCESS') { + console.log(data.data); + } + setLoading(false); + } + + const errSubmitCallback = (data) => { + if (toast.current && data.message) { + toast.current.show({ + severity: 'error', + summary: '', + detail: data.message + }); + } + set404FromErrorResponse(data); + setLoading(false); } useEffect(() => { - setCategories([ - {value: 1, label: 'Type 1'}, - {value: 2, label: 'Type 2'}, - ]) + const newModalData = { + ...modalData, + idClassificazione: 0 + }; + setModalData(newModalData); + setCategories(classificationType + .filter(o => o.idTipoprotocollo === modalData.idTipoProtocollo) + .map(o => ({ value: o.idClassificazione, label: o.name }))); + }, [modalData.idTipoProtocollo]) + + useEffect(() => { + setTypes(protocolType.map(o => ({ value: o.id, label: o.name }))); }, []); - return ( - <> - {!isEmpty(ndg) - ?