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