Salvatore La Manna
4 anni fa
4 ha cambiato i file con 1226 aggiunte e 936 eliminazioni
@ -0,0 +1,487 @@
|
||||
package it.mwg.sismica.bo.util; |
||||
|
||||
import it.tref.liferay.portos.bo.model.Collaudo; |
||||
import it.tref.liferay.portos.bo.model.Delega; |
||||
import it.tref.liferay.portos.bo.model.DettPratica; |
||||
import it.tref.liferay.portos.bo.model.DocPratica; |
||||
import it.tref.liferay.portos.bo.model.FineLavori; |
||||
import it.tref.liferay.portos.bo.model.IntPratica; |
||||
import it.tref.liferay.portos.bo.model.Pagamento; |
||||
import it.tref.liferay.portos.bo.model.Soggetto; |
||||
import it.tref.liferay.portos.bo.service.ConfigurazioneLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.DettPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.DocPraticaLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.PagamentoLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.SoggettoLocalServiceUtil; |
||||
import it.tref.liferay.portos.bo.service.SoggettoServiceUtil; |
||||
import it.tref.liferay.portos.bo.shared.bean.FirmeBean; |
||||
import it.tref.liferay.portos.bo.shared.bean.FirmeDetail; |
||||
import it.tref.liferay.portos.bo.shared.util.ConfigurazioneConstants; |
||||
import it.tref.liferay.portos.bo.shared.util.DocumentiPraticaUtil; |
||||
import it.tref.liferay.portos.bo.shared.util.FirmeUtil; |
||||
import it.tref.liferay.portos.bo.shared.util.TipoSoggettoUtil; |
||||
import it.tref.liferay.portos.bo.util.PraticaUtil; |
||||
import it.tref.liferay.portos.bo.util.ValidazionePraticaUtil; |
||||
|
||||
import java.io.File; |
||||
import java.io.IOException; |
||||
import java.util.ArrayList; |
||||
import java.util.Arrays; |
||||
import java.util.Date; |
||||
import java.util.HashSet; |
||||
import java.util.List; |
||||
import java.util.Set; |
||||
|
||||
import javax.portlet.ActionRequest; |
||||
import javax.portlet.ActionResponse; |
||||
|
||||
import org.apache.commons.codec.digest.DigestUtils; |
||||
|
||||
import com.liferay.portal.kernel.exception.PortalException; |
||||
import com.liferay.portal.kernel.exception.SystemException; |
||||
import com.liferay.portal.kernel.log.Log; |
||||
import com.liferay.portal.kernel.log.LogFactoryUtil; |
||||
import com.liferay.portal.kernel.repository.model.FileEntry; |
||||
import com.liferay.portal.kernel.repository.model.Folder; |
||||
import com.liferay.portal.kernel.servlet.SessionErrors; |
||||
import com.liferay.portal.kernel.upload.UploadPortletRequest; |
||||
import com.liferay.portal.kernel.util.FileUtil; |
||||
import com.liferay.portal.kernel.util.MimeTypesUtil; |
||||
import com.liferay.portal.kernel.util.ParamUtil; |
||||
import com.liferay.portal.kernel.util.StringPool; |
||||
import com.liferay.portal.kernel.util.Validator; |
||||
import com.liferay.portal.model.User; |
||||
import com.liferay.portal.security.permission.ActionKeys; |
||||
import com.liferay.portal.service.ServiceContext; |
||||
import com.liferay.portal.service.ServiceContextFactory; |
||||
import com.liferay.portal.service.UserLocalServiceUtil; |
||||
import com.liferay.portal.util.PortalUtil; |
||||
import com.liferay.portlet.documentlibrary.NoSuchFolderException; |
||||
import com.liferay.portlet.documentlibrary.service.DLAppLocalServiceUtil; |
||||
|
||||
public class AllegatiUtil { |
||||
private final static Log _log = LogFactoryUtil.getLog(AllegatiUtil.class); |
||||
|
||||
public static void sostituisciDL(ActionRequest actionRequest, ActionResponse actionResponse) |
||||
throws Exception { |
||||
List<String> esito = new ArrayList<>(); |
||||
String className = ParamUtil.getString(actionRequest, "className"); |
||||
actionResponse.setRenderParameter("className", className); |
||||
|
||||
long classPK = ParamUtil.getLong(actionRequest, "classPK"); |
||||
actionResponse.setRenderParameter("classPK", String.valueOf(classPK)); |
||||
|
||||
UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest); |
||||
String sourceFileName = uploadRequest.getFileName("file"); |
||||
File file = uploadRequest.getFile("file"); |
||||
byte[] bytes = FileUtil.getBytes(file); |
||||
|
||||
if (Validator.isNull(bytes)) { |
||||
esito.add("Nessun file allegato"); |
||||
} else { |
||||
Date date = new Date(); |
||||
if (className.equals(DocPratica.class.getName())) { |
||||
esito.addAll(sostituisciAllegatoDocPratica(classPK, sourceFileName, bytes, date)); |
||||
} else if (className.equals(Pagamento.class.getName())) { |
||||
esito.addAll(sostituisciAllegatoPagamento(classPK, sourceFileName, bytes)); |
||||
} else if (className.equals(Soggetto.class.getName())) { |
||||
esito.addAll(sostituisciAllegatoSoggetto(classPK, sourceFileName, bytes, date)); |
||||
} else { |
||||
esito.add("Operazione " + className + " non implementata"); |
||||
} |
||||
} |
||||
actionResponse.setRenderParameter("esito", esito.toArray(new String[esito.size()])); |
||||
} |
||||
|
||||
private static List<String> sostituisciAllegatoSoggetto(long soggettoId, String sourceFileName, |
||||
byte[] bytes, Date date) throws PortalException, SystemException, IOException { |
||||
|
||||
List<String> esito = new ArrayList<>(); |
||||
Soggetto soggetto = null; |
||||
try { |
||||
soggetto = SoggettoLocalServiceUtil.getSoggetto(soggettoId); |
||||
} catch (PortalException e) { |
||||
esito.add("Errore: " + e.getMessage()); |
||||
return esito; |
||||
} |
||||
long docPraticaId = soggetto.getFileVariazioneId(); |
||||
if (Validator.isNull(docPraticaId)) { |
||||
esito.add("Il soggetto " + soggettoId + " non ha un'allegato da sostituire"); |
||||
return esito; |
||||
} |
||||
|
||||
long companyId = soggetto.getCompanyId(); |
||||
long userId = soggetto.getUserId(); |
||||
|
||||
DocPratica docPratica = null; |
||||
try { |
||||
docPratica = DocPraticaLocalServiceUtil.getDocPratica(docPraticaId); |
||||
} catch (PortalException e) { |
||||
} |
||||
if (Validator.isNull(docPratica)) { |
||||
esito.add("Ricreo docPratica " + docPraticaId); |
||||
|
||||
docPratica = DocPraticaLocalServiceUtil.createDocPratica(docPraticaId); |
||||
User user = UserLocalServiceUtil.getUser(userId); |
||||
|
||||
docPratica.setClassName(Soggetto.class.getName()); |
||||
docPratica.setClassPk(soggettoId); |
||||
docPratica.setCompanyId(companyId); |
||||
docPratica.setCreateDate(date); |
||||
docPratica.setDescLong(sourceFileName); |
||||
docPratica.setGroupId(soggetto.getGroupId()); |
||||
docPratica.setIntPraticaId(soggetto.getIntPraticaId()); |
||||
docPratica.setJsonFirmatari(FirmeUtil.serialize(new FirmeBean())); |
||||
docPratica.setModifiedDate(date); |
||||
docPratica.setTipologia(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_VARIAZIONE_SOGGETTO); |
||||
docPratica.setUserId(userId); |
||||
docPratica.setUserName(user.getFullName()); |
||||
docPratica.setVersion("0"); |
||||
} |
||||
DocPraticaLocalServiceUtil.updateDocPratica(docPratica); |
||||
esito.addAll(sostituisciAllegatoDocPratica(docPraticaId, sourceFileName, bytes, date)); |
||||
return esito; |
||||
} |
||||
|
||||
private static List<String> sostituisciAllegatoDocPratica(long docPraticaId, String sourceFileName, |
||||
byte[] bytes, Date date) throws SystemException, PortalException, IOException { |
||||
|
||||
List<String> esito = new ArrayList<>(); |
||||
DocPratica docPratica = DocPraticaLocalServiceUtil.getDocPratica(docPraticaId); |
||||
|
||||
long companyId = docPratica.getCompanyId(); |
||||
long userId = docPratica.getUserId(); |
||||
ServiceContext serviceContext = getServiceContext(companyId, docPratica.getGroupId(), userId); |
||||
|
||||
long dettPraticaId = getDettPraticaId(docPratica.getIntPraticaId()); |
||||
Folder folder = getFolder(PraticaUtil.getFolderName(dettPraticaId), serviceContext); |
||||
|
||||
String title = getTitle(docPratica, sourceFileName, date); |
||||
FileEntry fileEntry = addOrUpdateFileEntry(docPratica.getDlFileEntryId(), folder, userId, |
||||
sourceFileName, title, sourceFileName, bytes, serviceContext); |
||||
|
||||
docPratica.setDlFileEntryId(fileEntry.getFileEntryId()); |
||||
|
||||
String sha256 = DigestUtils.sha256Hex(bytes); |
||||
docPratica.setSha256(sha256); |
||||
|
||||
// Sostituzione delle firme digitali con quelle presenti nel file
|
||||
FirmeBean firmeBean = FirmeUtil.deserialize(docPratica.getJsonFirmatari()); |
||||
Set<String> firmeFile = new HashSet<>(); |
||||
firmeFile.addAll(ValidazionePraticaUtil.gatherSignatures(sourceFileName, bytes, companyId, null)); |
||||
List<FirmeDetail> firmeDigitali = new ArrayList<>(); |
||||
for (String firmaFile : firmeFile) { |
||||
firmeDigitali.add(new FirmeDetail(firmaFile.toLowerCase(), date)); |
||||
esito.add("Trovata firma di " + firmaFile); |
||||
} |
||||
firmeBean.setFirmeDigitali(firmeDigitali); |
||||
docPratica.setJsonFirmatari(FirmeUtil.serialize(firmeBean)); |
||||
|
||||
DocPraticaLocalServiceUtil.updateDocPratica(docPratica); |
||||
esito.add("DocPratica " + docPraticaId + ": aggiornato fileEntry " + fileEntry.getFileEntryId() |
||||
+ ", sha256=" + sha256); |
||||
return esito; |
||||
} |
||||
|
||||
private static List<String> sostituisciAllegatoPagamento(long pagamentoId, String sourceFileName, |
||||
byte[] bytes) throws SystemException, PortalException, IOException { |
||||
|
||||
List<String> esito = new ArrayList<>(); |
||||
Pagamento pagamento = PagamentoLocalServiceUtil.getPagamento(pagamentoId); |
||||
|
||||
Date now = new Date(); |
||||
|
||||
long userId = pagamento.getUserId(); |
||||
|
||||
ServiceContext serviceContext = getServiceContext(pagamento.getCompanyId(), pagamento.getGroupId(), |
||||
userId); |
||||
|
||||
long dettPraticaId = getDettPraticaId(pagamento.getIntPraticaId()); |
||||
Folder folder = getFolder(PraticaUtil.getFolderName(dettPraticaId), serviceContext); |
||||
|
||||
String title = now.getTime() + "_pagamento_manuale_" + pagamento.getPagamentoId() |
||||
+ StringPool.UNDERLINE + sourceFileName; |
||||
|
||||
FileEntry fileEntry = addOrUpdateFileEntry(pagamento.getFileEntryId(), folder, userId, |
||||
sourceFileName, title, StringPool.BLANK, bytes, serviceContext); |
||||
|
||||
pagamento.setFileEntryId(fileEntry.getFileEntryId()); |
||||
PagamentoLocalServiceUtil.updatePagamento(pagamento); |
||||
esito.add("Pagamento " + pagamentoId + ": aggiunto file " + fileEntry.getFileEntryId() |
||||
+ StringPool.BLANK + title); |
||||
return esito; |
||||
} |
||||
|
||||
private static long getDettPraticaId(long intPraticaId) throws SystemException { |
||||
DettPratica dettPratica = DettPraticaLocalServiceUtil.getLastEditableByIntPratica(intPraticaId); |
||||
if (Validator.isNull(dettPratica)) { |
||||
List<DettPratica> list = DettPraticaLocalServiceUtil.findByIntPraticaId(intPraticaId); |
||||
dettPratica = list.get(list.size() - 1); |
||||
} |
||||
return dettPratica.getPrimaryKey(); |
||||
} |
||||
|
||||
private static ServiceContext getServiceContext(long companyId, long groupId, long userId) { |
||||
ServiceContext serviceContext = new ServiceContext(); |
||||
serviceContext.setCompanyId(companyId); |
||||
serviceContext.setScopeGroupId(groupId); |
||||
serviceContext.setUserId(userId); |
||||
serviceContext.setGroupPermissions(new String[] { ActionKeys.VIEW }); |
||||
return serviceContext; |
||||
} |
||||
|
||||
private static Folder getFolder(String folderName, ServiceContext serviceContext) throws PortalException, |
||||
SystemException { |
||||
Folder folder = null; |
||||
|
||||
long parentFolderId = ConfigurazioneLocalServiceUtil.findByC_ChiaveLong( |
||||
serviceContext.getCompanyId(), ConfigurazioneConstants.ATTACHMENT_FOLDER_ID); |
||||
Folder parentFolder = DLAppLocalServiceUtil.getFolder(parentFolderId); |
||||
long repositoryId = parentFolder.getRepositoryId(); |
||||
|
||||
try { |
||||
folder = DLAppLocalServiceUtil.getFolder(repositoryId, parentFolderId, folderName); |
||||
} catch (NoSuchFolderException e) { |
||||
folder = DLAppLocalServiceUtil.addFolder(serviceContext.getUserId(), repositoryId, |
||||
parentFolderId, folderName, StringPool.BLANK, serviceContext); |
||||
} |
||||
return folder; |
||||
} |
||||
|
||||
private static String getTitle(DocPratica docPratica, String sourceFileName, Date date) { |
||||
String className = DocPratica.class.getName(); |
||||
String tipologia = docPratica.getTipologia(); |
||||
|
||||
if (IntPratica.class.getName().equals(className)) { |
||||
if (tipologia.equalsIgnoreCase(DocumentiPraticaUtil.TIPOLOGIA_ALLEGATO_ANNULLAMENTO_FASCICOLO)) { |
||||
sourceFileName = date.getTime() + "_annullamento_" + docPratica.getIntPraticaId() |
||||
+ StringPool.UNDERLINE + sourceFileName; |
||||
} |
||||
} else { |
||||
sourceFileName = tipologia + StringPool.UNDERLINE + sourceFileName; |
||||
} |
||||
return sourceFileName; |
||||
} |
||||
|
||||
private static FileEntry addOrUpdateFileEntry(long fileEntryId, Folder folder, long userId, |
||||
String sourceFileName, String title, String description, byte[] bytes, |
||||
ServiceContext serviceContext) throws SystemException, PortalException { |
||||
String mimeType = MimeTypesUtil.getContentType(sourceFileName); |
||||
FileEntry fileEntry = null; |
||||
try { |
||||
fileEntry = DLAppLocalServiceUtil.getFileEntry(fileEntryId); |
||||
fileEntry = DLAppLocalServiceUtil.updateFileEntry(userId, fileEntry.getFileEntryId(), |
||||
sourceFileName, mimeType, title, description, StringPool.BLANK, false, bytes, |
||||
serviceContext); |
||||
} catch (PortalException e) { |
||||
fileEntry = DLAppLocalServiceUtil.addFileEntry(userId, folder.getRepositoryId(), |
||||
folder.getFolderId(), sourceFileName, mimeType, title, description, StringPool.BLANK, |
||||
bytes, serviceContext); |
||||
} |
||||
return fileEntry; |
||||
} |
||||
|
||||
public void sostituisciDL2(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception { |
||||
|
||||
long userId = 0; |
||||
String title = null; |
||||
String description = null; |
||||
String mimeType = null; |
||||
String changeLog = StringPool.BLANK; |
||||
FileEntry fileEntry = null; |
||||
Date now = new Date(); |
||||
long companyId = 0; |
||||
long groupId = 0; |
||||
long defaultFolderId = 0; |
||||
Folder defaultFolder = null; |
||||
String folderName = null; |
||||
byte[] bytes = null; |
||||
long folderId = 0; |
||||
long repositoryId = 0; |
||||
ServiceContext serviceContext = new ServiceContext(); |
||||
|
||||
String className = ParamUtil.getString(actionRequest, "className"); |
||||
Long idOggetto = ParamUtil.getLong(actionRequest, "classPK"); |
||||
|
||||
UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest); |
||||
String sourceFileName = uploadRequest.getFileName("file"); |
||||
File file = uploadRequest.getFile("file"); |
||||
Folder folder = null; |
||||
|
||||
switch (className) { |
||||
case "it.tref.liferay.portos.bo.model.DocPratica": |
||||
DocPratica pratica = DocPraticaLocalServiceUtil.getDocPratica(idOggetto); |
||||
userId = pratica.getUserId(); |
||||
companyId = pratica.getCompanyId(); |
||||
groupId = pratica.getGroupId(); |
||||
|
||||
serviceContext.setCompanyId(companyId); |
||||
serviceContext.setScopeGroupId(groupId); |
||||
serviceContext.setUserId(userId); |
||||
|
||||
defaultFolderId = ConfigurazioneLocalServiceUtil.findByC_ChiaveLong(companyId, |
||||
ConfigurazioneConstants.ATTACHMENT_FOLDER_ID); |
||||
defaultFolder = DLAppLocalServiceUtil.getFolder(defaultFolderId); |
||||
folderName = PraticaUtil.getFolderName(pratica.getClassPk()); |
||||
folderId = defaultFolder.getFolderId(); |
||||
repositoryId = defaultFolder.getRepositoryId(); |
||||
|
||||
try { |
||||
folder = DLAppLocalServiceUtil.getFolder(repositoryId, folderId, folderName); |
||||
} catch (NoSuchFolderException e) { |
||||
folder = DLAppLocalServiceUtil.addFolder(userId, repositoryId, folderId, folderName, |
||||
StringPool.BLANK, serviceContext); |
||||
} |
||||
|
||||
bytes = FileUtil.getBytes(file); |
||||
title = pratica.getTipologia() + StringPool.UNDERLINE + sourceFileName; |
||||
description = sourceFileName; |
||||
mimeType = MimeTypesUtil.getContentType(sourceFileName); |
||||
|
||||
try { |
||||
fileEntry = DLAppLocalServiceUtil.getFileEntry(pratica.getDlFileEntryId()); |
||||
fileEntry = DLAppLocalServiceUtil.updateFileEntry(userId, fileEntry.getFileEntryId(), |
||||
now.getTime() + "_" + sourceFileName, mimeType, title, description, changeLog, false, |
||||
bytes, serviceContext); |
||||
} catch (PortalException e) { |
||||
fileEntry = DLAppLocalServiceUtil.addFileEntry(userId, folder.getRepositoryId(), |
||||
folder.getFolderId(), now.getTime() + "_" + sourceFileName, mimeType, title, |
||||
description, changeLog, bytes, serviceContext); |
||||
} |
||||
|
||||
pratica.setDlFileEntryId(fileEntry.getFileEntryId()); |
||||
pratica.setSha256(DigestUtils.sha256Hex(bytes)); |
||||
DocPraticaLocalServiceUtil.updateDocPratica(pratica); |
||||
break; |
||||
|
||||
case "it.tref.liferay.portos.bo.model.Pagamento": |
||||
Pagamento pagamento = PagamentoLocalServiceUtil.getPagamento(idOggetto); |
||||
userId = pagamento.getUserId(); |
||||
companyId = pagamento.getCompanyId(); |
||||
groupId = pagamento.getGroupId(); |
||||
|
||||
serviceContext.setCompanyId(companyId); |
||||
serviceContext.setScopeGroupId(groupId); |
||||
serviceContext.setUserId(userId); |
||||
|
||||
defaultFolderId = ConfigurazioneLocalServiceUtil.findByC_ChiaveLong(companyId, |
||||
ConfigurazioneConstants.ATTACHMENT_FOLDER_ID); |
||||
defaultFolder = DLAppLocalServiceUtil.getFolder(defaultFolderId); |
||||
folderName = PraticaUtil.getFolderName(pagamento.getClassPk()); |
||||
folderId = defaultFolder.getFolderId(); |
||||
repositoryId = defaultFolder.getRepositoryId(); |
||||
|
||||
try { |
||||
folder = DLAppLocalServiceUtil.getFolder(repositoryId, folderId, folderName); |
||||
} catch (NoSuchFolderException e) { |
||||
folder = DLAppLocalServiceUtil.addFolder(userId, repositoryId, folderId, folderName, |
||||
StringPool.BLANK, serviceContext); |
||||
} |
||||
|
||||
bytes = FileUtil.getBytes(file); |
||||
title = now.getTime() + StringPool.UNDERLINE + "pagamento_manuale" + StringPool.UNDERLINE |
||||
+ pagamento.getPagamentoId() + StringPool.UNDERLINE + sourceFileName; |
||||
description = StringPool.BLANK; |
||||
mimeType = MimeTypesUtil.getContentType(sourceFileName); |
||||
|
||||
try { |
||||
fileEntry = DLAppLocalServiceUtil.getFileEntry(pagamento.getFileEntryId()); |
||||
fileEntry = DLAppLocalServiceUtil.updateFileEntry(userId, fileEntry.getFileEntryId(), |
||||
now.getTime() + "_" + sourceFileName, mimeType, title, description, changeLog, false, |
||||
bytes, serviceContext); |
||||
} catch (PortalException e) { |
||||
fileEntry = DLAppLocalServiceUtil.addFileEntry(userId, folder.getRepositoryId(), |
||||
folder.getFolderId(), now.getTime() + "_" + sourceFileName, mimeType, title, |
||||
description, changeLog, bytes, serviceContext); |
||||
} |
||||
|
||||
pagamento.setFileEntryId(fileEntry.getFileEntryId()); |
||||
PagamentoLocalServiceUtil.updatePagamento(pagamento); |
||||
break; |
||||
|
||||
case "var_soggetti_no_docpratica": |
||||
Soggetto soggetto = SoggettoLocalServiceUtil.getSoggetto(idOggetto); |
||||
DettPratica dettPratica = DettPraticaLocalServiceUtil.getDettPratica(soggetto.getDettPraticaId()); |
||||
long intPraticaId = dettPratica.getIntPraticaId(); |
||||
serviceContext = ServiceContextFactory.getInstance(Soggetto.class.getName(), actionRequest); |
||||
|
||||
byte[] content = null; |
||||
String jsonFirmatari = ""; |
||||
boolean isSigned = false; |
||||
FirmeBean firmeBean = new FirmeBean(); |
||||
|
||||
User user = UserLocalServiceUtil.getUser(serviceContext.getUserId()); |
||||
|
||||
if (!firmeBean.allSignatures().contains(user.getScreenName())) { |
||||
jsonFirmatari = FirmeUtil.addFirma(firmeBean, user.getScreenName()); |
||||
} else { |
||||
jsonFirmatari = FirmeUtil.serialize(firmeBean); |
||||
} |
||||
|
||||
if (file.exists()) { |
||||
|
||||
if (Validator.isNotNull(sourceFileName) && file != null) { |
||||
// validazione: solo alcune estensioni
|
||||
String ext = FileUtil.getExtension(sourceFileName); |
||||
if (!ext.equalsIgnoreCase("p7m") && !ext.equalsIgnoreCase("pdf")) { |
||||
SessionErrors.add(actionRequest, |
||||
"error.geniocivilefe.variazione-soggetto.allegato.ext.valid"); |
||||
} |
||||
// lunghezza fissata a 200
|
||||
if (sourceFileName.length() > 200) { |
||||
SessionErrors.add(actionRequest, |
||||
"error.geniocivilefe.variazione-soggetto.allegato.length.valid"); |
||||
} |
||||
} else if (!TipoSoggettoUtil.COMMITTENTE.equalsIgnoreCase(soggetto.getTipologiaSoggetto())) { |
||||
SessionErrors.add(actionRequest, |
||||
"error.geniocivilefe.variazione-soggetto.allegato.is.request"); |
||||
} |
||||
|
||||
if (!SessionErrors.isEmpty(actionRequest)) { |
||||
throw new SystemException("error.geniocivilefe.variazione-soggetto.allegato"); |
||||
} else if (file != null) { |
||||
content = FileUtil.getBytes(file); |
||||
} |
||||
|
||||
} |
||||
|
||||
if (TipoSoggettoUtil.COMMITTENTE.equals(soggetto.getTipologiaSoggetto())) { |
||||
String[] titolare = new String[] { dettPratica.getCodiceFiscaleDelegatoCommittente() }; |
||||
isSigned = ValidazionePraticaUtil.isAllegatoSignedBySubjects(sourceFileName, content, |
||||
serviceContext.getCompanyId(), Arrays.asList(titolare), jsonFirmatari); |
||||
} else { |
||||
List<Soggetto> soggettiValidi = SoggettoServiceUtil.getValidTmpByIntPratica(intPraticaId); |
||||
List<String> codiciFiscaliValidi = new ArrayList<String>(); |
||||
for (Soggetto valido : soggettiValidi) { |
||||
if (!codiciFiscaliValidi.contains(valido.getCodiceFiscale()) |
||||
&& !valido.getCodiceFiscale().equalsIgnoreCase(soggetto.getCodiceFiscale())) { |
||||
codiciFiscaliValidi.add(valido.getCodiceFiscale()); |
||||
} |
||||
} |
||||
isSigned = ValidazionePraticaUtil.isAllegatoSignedBySubjectsAndPerson(sourceFileName, |
||||
content, serviceContext.getCompanyId(), codiciFiscaliValidi, |
||||
soggetto.getCodiceFiscale(), jsonFirmatari); |
||||
} |
||||
|
||||
if (isSigned) { |
||||
userId = PortalUtil.getUserId(actionRequest); |
||||
|
||||
try { |
||||
SoggettoServiceUtil.allegaFileModifica(soggetto.getSoggettoId(), userId, intPraticaId, |
||||
content, sourceFileName, jsonFirmatari, serviceContext); |
||||
} catch (PortalException e) { |
||||
_log.error(e, e); |
||||
throw e; |
||||
} |
||||
} |
||||
|
||||
break; |
||||
|
||||
default: |
||||
|
||||
break; |
||||
|
||||
} |
||||
|
||||
} |
||||
} |
Caricamento…
Reference in new issue