From 77d72d2ef207a2d9e60f21d54dd7e8d049b7c4c5 Mon Sep 17 00:00:00 2001 From: E-A B Date: Tue, 10 Jan 2023 18:02:10 +0100 Subject: [PATCH] diff --- ...chiestaAccessoAttiLocalServiceWrapper.java | 8 +- .../model/impl/RichiestaAccessoAttiImpl.java | 37 +- .../docroot/WEB-INF/liferay-display.xml | 4 +- .../docroot/WEB-INF/liferay-hook.xml | 4 +- .../docroot/WEB-INF/service.xml | 109 +- .../docroot/html/common/details_column.jsp | 1 - .../docroot/html/common/relations_column.jsp | 1 - .../docroot/html/detail/detail.jsp | 1 - .../docroot/html/detail/view.jsp | 1 - .../docroot/html/detail/view_list.jsp | 1 - .../docroot/html/init.jsp | 1 - .../docroot/html/storicizzazione/edit.jsp | 1 - .../docroot/html/storicizzazione/view.jsp | 1 - .../docroot/WEB-INF/liferay-display.xml | 28 +- .../docroot/WEB-INF/liferay-hook.xml | 2 +- .../docroot/WEB-INF/service.xml | 2058 ++++++++--------- .../sismica/bo/search/IntPraticaSearch.java | 1 + .../docroot/WEB-INF/service.xml | 120 +- .../model/impl/DisponibilitaImpl.java | 38 +- .../model/impl/FunzionarioImpl.java | 48 +- .../model/impl/PrenotazioneImpl.java | 57 +- .../model/impl/ProfessionistaImpl.java | 38 +- .../impl/DisponibilitaLocalServiceImpl.java | 558 +++-- .../impl/DisponibilitaServiceImpl.java | 146 +- .../impl/FunzionarioLocalServiceImpl.java | 133 +- .../service/impl/FunzionarioServiceImpl.java | 174 +- .../impl/PrenotazioneLocalServiceImpl.java | 314 +-- .../service/impl/PrenotazioneServiceImpl.java | 146 +- .../impl/ProfessionistaLocalServiceImpl.java | 37 +- .../impl/ProfessionistaServiceImpl.java | 34 +- .../appointments/util/CalendarUtil.java | 244 +- .../html/calendar_appointments/init.jsp | 1 - .../tabs/amministrazione.jsp | 1 - .../calendar_appointments/tabs/calendar.jsp | 1 - .../tabs/gestione_disponibilita.jsp | 33 +- .../tabs/gestione_disponibilita_action.jsp | 1 - .../html/calendar_appointments/view.jsp | 1 - .../docroot/html/init.jsp | 1 - 38 files changed, 2281 insertions(+), 2104 deletions(-) diff --git a/liferay-plugins-sdk-6.2/portlets/portos-accesso-atti-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/accesso/atti/service/RichiestaAccessoAttiLocalServiceWrapper.java b/liferay-plugins-sdk-6.2/portlets/portos-accesso-atti-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/accesso/atti/service/RichiestaAccessoAttiLocalServiceWrapper.java index 214567f2..1c88b1fc 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-accesso-atti-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/accesso/atti/service/RichiestaAccessoAttiLocalServiceWrapper.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-accesso-atti-portlet/docroot/WEB-INF/service/it/tref/liferay/portos/accesso/atti/service/RichiestaAccessoAttiLocalServiceWrapper.java @@ -19,7 +19,7 @@ import com.liferay.portal.service.ServiceWrapper; /** * Provides a wrapper for {@link RichiestaAccessoAttiLocalService}. * - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting * @see RichiestaAccessoAttiLocalService * @generated */ @@ -302,7 +302,8 @@ public class RichiestaAccessoAttiLocalServiceWrapper public java.util.List findCompletate( java.lang.String numeroProgetto, java.lang.String protocollo, java.lang.String dataDal, java.lang.String dataAl, int start, int end) - throws com.liferay.portal.kernel.exception.SystemException { + throws com.liferay.portal.kernel.exception.SystemException, + java.text.ParseException { return _richiestaAccessoAttiLocalService.findCompletate(numeroProgetto, protocollo, dataDal, dataAl, start, end); } @@ -311,7 +312,8 @@ public class RichiestaAccessoAttiLocalServiceWrapper public int countCompletate(java.lang.String numeroProgetto, java.lang.String protocollo, java.lang.String dataDal, java.lang.String dataAl) - throws com.liferay.portal.kernel.exception.SystemException { + throws com.liferay.portal.kernel.exception.SystemException, + java.text.ParseException { return _richiestaAccessoAttiLocalService.countCompletate(numeroProgetto, protocollo, dataDal, dataAl); } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-accesso-atti-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/accesso/atti/model/impl/RichiestaAccessoAttiImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-accesso-atti-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/accesso/atti/model/impl/RichiestaAccessoAttiImpl.java index 1e361d54..161bf9ff 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-accesso-atti-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/accesso/atti/model/impl/RichiestaAccessoAttiImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-accesso-atti-portlet/docroot/WEB-INF/src/it/tref/liferay/portos/accesso/atti/model/impl/RichiestaAccessoAttiImpl.java @@ -1,29 +1,34 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. */ package it.tref.liferay.portos.accesso.atti.model.impl; /** - * The extended model implementation for the RichiestaAccessoAtti service. Represents a row in the - * "portos_atti_RichiestaAccessoAtti" database table, with each column mapped to a property of this class. + * The extended model implementation for the RichiestaAccessoAtti service. Represents a row in the "portos_atti_RichiestaAccessoAtti" database table, with each column mapped to a property of this class. + * *

- * Helper methods and all application logic should be put in this class. Whenever methods are added, rerun - * ServiceBuilder to copy their definitions into the - * {@link it.tref.liferay.portos.accesso.atti.model.RichiestaAccessoAtti} interface. + * Helper methods and all application logic should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy their definitions into the {@link it.tref.liferay.portos.accesso.atti.model.RichiestaAccessoAtti} interface. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting */ -@SuppressWarnings("serial") public class RichiestaAccessoAttiImpl extends RichiestaAccessoAttiBaseImpl { /* - * NOTE FOR DEVELOPERS: Never reference this class directly. All methods that expect a richiesta accesso atti model - * instance should use the {@link it.tref.liferay.portos.accesso.atti.model.RichiestaAccessoAtti} interface instead. + * NOTE FOR DEVELOPERS: + * + * Never reference this class directly. All methods that expect a richiesta accesso atti model instance should use the {@link it.tref.liferay.portos.accesso.atti.model.RichiestaAccessoAtti} interface instead. */ - public RichiestaAccessoAttiImpl() {} -} + public RichiestaAccessoAttiImpl() { + } +} \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/liferay-display.xml b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/liferay-display.xml index 1e0fdf2b..fe611ecc 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/liferay-display.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/liferay-display.xml @@ -3,11 +3,11 @@ - + - + \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/liferay-hook.xml b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/liferay-hook.xml index a7be6d90..4bc6119b 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/liferay-hook.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/liferay-hook.xml @@ -1,7 +1,7 @@ - + portal.properties - content/Portal.properties + content/Portal.properties \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/service.xml b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/service.xml index 26746469..42635d4f 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/service.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/WEB-INF/service.xml @@ -1,94 +1,81 @@ - + + Marco portos_AUDIT - - - - - - + + + - - - + + - - + - - - - + + + - - - - - + + + + - - - + + - - - + + - - + - - + - - - - - - + + + + + - - + - + - - + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/common/details_column.jsp b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/common/details_column.jsp index 3b091aab..851b5a30 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/common/details_column.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/common/details_column.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.liferay.portal.kernel.util.TextFormatter"%> <%@page import="com.liferay.portal.kernel.json.JSONArray"%> <%@page import="it.tref.liferay.portos.audit.model.AuditEvent"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/common/relations_column.jsp b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/common/relations_column.jsp index 72b2cb90..f5287023 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/common/relations_column.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/common/relations_column.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.liferay.portal.kernel.util.TextFormatter"%> <%@page import="com.liferay.portal.kernel.json.JSONArray"%> <%@page import="it.tref.liferay.portos.audit.model.AuditEvent"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/detail.jsp b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/detail.jsp index 94e694cc..ffc929c3 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/detail.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/detail.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="it.tref.liferay.portos.audit.shared.permission.HistoryPermission"%> <%@page import="com.liferay.portal.security.permission.ActionKeys"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/view.jsp b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/view.jsp index 3c18f252..3d6b7058 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/view.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/view.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="it.tref.liferay.portos.audit.shared.permission.HistoryPermission"%> <%@page import="com.liferay.portal.security.permission.ActionKeys"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/view_list.jsp b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/view_list.jsp index ff21f2e4..f77b3e2e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/view_list.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/detail/view_list.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="it.tref.liferay.portos.audit.shared.permission.HistoryPermission"%> <%@page import="com.liferay.portal.security.permission.ActionKeys"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/init.jsp b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/init.jsp index 71379d79..f6d6d4c6 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/init.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/init.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/storicizzazione/edit.jsp b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/storicizzazione/edit.jsp index 646951b9..cb89ae81 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/storicizzazione/edit.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/storicizzazione/edit.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/html/init.jsp" %> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/storicizzazione/view.jsp b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/storicizzazione/view.jsp index ff47f72b..8447c350 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/storicizzazione/view.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-audit-portlet/docroot/html/storicizzazione/view.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="/html/init.jsp" %> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/liferay-display.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/liferay-display.xml index 8dbbc89d..05594f21 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/liferay-display.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/liferay-display.xml @@ -4,22 +4,22 @@ - - - - - - - - + + + + + + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/liferay-hook.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/liferay-hook.xml index 8234053b..5dc0d86c 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/liferay-hook.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/liferay-hook.xml @@ -1,4 +1,4 @@ - + diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml index 1ea70d2e..d7fcb364 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/service.xml @@ -1,1432 +1,1262 @@ - - + + + Davide Barbagallo, 3F Consulting + Manifattura Web Group s.r.l. portos_bo - - - - - - - - - - - - - + + + + + + + + + + + - + - - + - - - + + - - - + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - + - - - + + - - + - - - + + - - - + + - - - + + - - - + + - - - - - - - - - - - + + + + + + + + + - + - - + - - - + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - - - + + - - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - + - - + - - - + + - - - - + + + - - + - - - + + - - - + + - - - + + - - - + + - - + - - - - - - - - - - - - - + + + + + + + + + + + - + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - - - - + + + - - - - + + + - - - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - - - - + + + - - - + + - - - + + - - - + + - - - + + - - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - - - - + + + - - - + + - - - + + - - - + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + - - - + + - - + - - - + + - - - + + - - + - - - + + - - + - - - + + - - + - - - - + + + - - + - - + - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + - - - + + - - - + + - - + - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + - - - + + - - - + + - - - - + + + - - - - - + + + + - - - - + + + - - - - + + + - - - - - + + + + - - - + + - - - - + + + - - - + + - - - - + + + - - - - + + + - - + - - - + + - - - - + + + - - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - - + - - + - - - - - - + + + + + - - - + + - - + - - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - + - - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + - - - - + + + - - - - - + + + + - - + - - + - + - - - - - - - - - - - - - + + + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + - + - - + - - - + + - - + - - - - - - - - - - - - - - + + + + + + + + + + + + - + - - + - - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - + - - - + + - - + - - - + + - - - + + - - - + + - - - - + + + - - - - + + + - - - - - + + + + - - - - + + + - - - - + + + - - - - + + + - - - - + + + - - - - - + + + + - - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - + + - - - + + - - - + + - - - - + + + - - - - + + + - - - - + + + - - + - - - - - - - - - - - - - + + + + + + + + + + + - + - - - + + - DuplicateProvincia CodiceProvincia diff --git a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/search/IntPraticaSearch.java b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/search/IntPraticaSearch.java index f678615a..7be32e3e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/search/IntPraticaSearch.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-bo-portlet/docroot/WEB-INF/src/it/mwg/sismica/bo/search/IntPraticaSearch.java @@ -220,6 +220,7 @@ public class IntPraticaSearch extends BaseSearch { // Condizioni aggiuntive fullQuery(request, user, query, searchContext); hits = SearchEngineUtil.search(searchContext, query); + _log.info(query); logResults(query, hits); } catch (ParseException | SearchException | java.text.ParseException e) { _log.error(e, e); diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/service.xml b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/service.xml index e19fc1c3..7d9bcae4 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/service.xml +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/service.xml @@ -1,107 +1,99 @@ - + + - 3F Consulting + Manifattura Web Group s.r.l. + 3F Consulting portos_calendar_appointments - - - + - - - - - - + + + + + + - - - - + + + + - + - + - - + - - - - - - + + + + + + - - + + - - + - - - - - - + + + + + + - - - - - - + + + + + + - - + - - - - - - + + + + + + - - - - - + + + + + - - - + + - + - - + + - + - - DuplicateFunzionario DuplicateProfessionista DuplicatePrenotazione SlotNotAvailable - \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/DisponibilitaImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/DisponibilitaImpl.java index f6278f0c..465b58b6 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/DisponibilitaImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/DisponibilitaImpl.java @@ -1,30 +1,34 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. */ package it.tref.portos.calendar.appointments.model.impl; /** - * The extended model implementation for the Disponibilita service. Represents a row in the - * "portos_calendar_appointments_Disponibilita" database table, with each column mapped to a property of this - * class. + * The extended model implementation for the Disponibilita service. Represents a row in the "portos_calendar_appointments_Disponibilita" database table, with each column mapped to a property of this class. + * *

- * Helper methods and all application logic should be put in this class. Whenever methods are added, rerun - * ServiceBuilder to copy their definitions into the {@link it.tref.portos.calendar.appointments.model.Disponibilita} - * interface. + * Helper methods and all application logic should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy their definitions into the {@link it.tref.portos.calendar.appointments.model.Disponibilita} interface. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting */ -@SuppressWarnings("serial") public class DisponibilitaImpl extends DisponibilitaBaseImpl { /* - * NOTE FOR DEVELOPERS: Never reference this class directly. All methods that expect a disponibilita model instance - * should use the {@link it.tref.portos.calendar.appointments.model.Disponibilita} interface instead. + * NOTE FOR DEVELOPERS: + * + * Never reference this class directly. All methods that expect a disponibilita model instance should use the {@link it.tref.portos.calendar.appointments.model.Disponibilita} interface instead. */ - public DisponibilitaImpl() {} -} + public DisponibilitaImpl() { + } +} \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/FunzionarioImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/FunzionarioImpl.java index eddb1e39..71c328f1 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/FunzionarioImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/FunzionarioImpl.java @@ -1,9 +1,13 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation; either version + * 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. */ package it.tref.portos.calendar.appointments.model.impl; @@ -12,26 +16,28 @@ import com.liferay.portal.kernel.util.StringPool; /** * The extended model implementation for the Funzionario service. Represents a row in the - * "portos_calendar_appointments_Funzionario" database table, with each column mapped to a property of this - * class. + * "portos_calendar_appointments_Funzionario" database table, with each column mapped to a + * property of this class. + * *

- * Helper methods and all application logic should be put in this class. Whenever methods are added, rerun - * ServiceBuilder to copy their definitions into the {@link it.tref.portos.calendar.appointments.model.Funzionario} - * interface. + * Helper methods and all application logic should be put in this class. Whenever methods are added, + * rerun ServiceBuilder to copy their definitions into the + * {@link it.tref.portos.calendar.appointments.model.Funzionario} interface. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting */ -@SuppressWarnings("serial") public class FunzionarioImpl extends FunzionarioBaseImpl { - /* - * NOTE FOR DEVELOPERS: Never reference this class directly. All methods that expect a funzionario model instance - * should use the {@link it.tref.portos.calendar.appointments.model.Funzionario} interface instead. - */ - public FunzionarioImpl() {} + /* + * NOTE FOR DEVELOPERS: + * + * Never reference this class directly. All methods that expect a funzionario model instance + * should use the {@link it.tref.portos.calendar.appointments.model.Funzionario} interface + * instead. + */ + public FunzionarioImpl() {} - @Override - public String getFullDescription() { - return getNome() + StringPool.SPACE + getCognome(); - } + public String getFullDescription() { + return getNome() + StringPool.SPACE + getCognome(); + } } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/PrenotazioneImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/PrenotazioneImpl.java index a1cec9bd..6ad0d749 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/PrenotazioneImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/PrenotazioneImpl.java @@ -1,9 +1,13 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation; either version + * 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. */ package it.tref.portos.calendar.appointments.model.impl; @@ -14,27 +18,38 @@ import org.apache.commons.lang.time.DateUtils; /** * The extended model implementation for the Prenotazione service. Represents a row in the - * "portos_calendar_appointments_Prenotazione" database table, with each column mapped to a property of this - * class. + * "portos_calendar_appointments_Prenotazione" database table, with each column mapped to + * a property of this class. + * *

- * Helper methods and all application logic should be put in this class. Whenever methods are added, rerun - * ServiceBuilder to copy their definitions into the {@link it.tref.portos.calendar.appointments.model.Prenotazione} - * interface. + * Helper methods and all application logic should be put in this class. Whenever methods are added, + * rerun ServiceBuilder to copy their definitions into the + * {@link it.tref.portos.calendar.appointments.model.Prenotazione} interface. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting */ -@SuppressWarnings("serial") public class PrenotazioneImpl extends PrenotazioneBaseImpl { - /* - * NOTE FOR DEVELOPERS: Never reference this class directly. All methods that expect a prenotazione model instance - * should use the {@link it.tref.portos.calendar.appointments.model.Prenotazione} interface instead. - */ - public PrenotazioneImpl() {} + /* + * NOTE FOR DEVELOPERS: + * + * Never reference this class directly. All methods that expect a prenotazione model instance + * should use the {@link it.tref.portos.calendar.appointments.model.Prenotazione} interface + * instead. + */ + public PrenotazioneImpl() {} + + public boolean isExpired(Date now) { + + if (now.after(getStartDate())) { + return true; + } + + if (DateUtils.isSameDay(now, getStartDate())) { + return true; - @Override - public boolean isExpired(Date now) { + } - return now.after(getStartDate()) || DateUtils.isSameDay(now, getStartDate()); - } + return false; + } } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/ProfessionistaImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/ProfessionistaImpl.java index ae04c853..60167924 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/ProfessionistaImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/model/impl/ProfessionistaImpl.java @@ -1,30 +1,34 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. */ package it.tref.portos.calendar.appointments.model.impl; /** - * The extended model implementation for the Professionista service. Represents a row in the - * "portos_calendar_appointments_Professionista" database table, with each column mapped to a property of this - * class. + * The extended model implementation for the Professionista service. Represents a row in the "portos_calendar_appointments_Professionista" database table, with each column mapped to a property of this class. + * *

- * Helper methods and all application logic should be put in this class. Whenever methods are added, rerun - * ServiceBuilder to copy their definitions into the {@link it.tref.portos.calendar.appointments.model.Professionista} - * interface. + * Helper methods and all application logic should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy their definitions into the {@link it.tref.portos.calendar.appointments.model.Professionista} interface. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting */ -@SuppressWarnings("serial") public class ProfessionistaImpl extends ProfessionistaBaseImpl { /* - * NOTE FOR DEVELOPERS: Never reference this class directly. All methods that expect a professionista model instance - * should use the {@link it.tref.portos.calendar.appointments.model.Professionista} interface instead. + * NOTE FOR DEVELOPERS: + * + * Never reference this class directly. All methods that expect a professionista model instance should use the {@link it.tref.portos.calendar.appointments.model.Professionista} interface instead. */ - public ProfessionistaImpl() {} -} + public ProfessionistaImpl() { + } +} \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/DisponibilitaLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/DisponibilitaLocalServiceImpl.java index 36dbee16..aca0c92a 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/DisponibilitaLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/DisponibilitaLocalServiceImpl.java @@ -1,9 +1,13 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation; either version + * 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. */ package it.tref.portos.calendar.appointments.service.impl; @@ -26,13 +30,11 @@ import com.liferay.portal.kernel.dao.orm.DynamicQuery; import com.liferay.portal.kernel.dao.orm.Order; import com.liferay.portal.kernel.dao.orm.OrderFactoryUtil; import com.liferay.portal.kernel.dao.orm.PropertyFactoryUtil; -import com.liferay.portal.kernel.dao.orm.QueryUtil; import com.liferay.portal.kernel.dao.orm.RestrictionsFactoryUtil; 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.util.StringPool; import com.liferay.portal.model.Organization; import com.liferay.portal.model.Role; import com.liferay.portal.model.User; @@ -40,508 +42,650 @@ import com.liferay.portal.service.OrganizationLocalServiceUtil; import com.liferay.portal.service.RoleLocalServiceUtil; import com.liferay.portal.service.ServiceContext; import com.liferay.portal.service.UserGroupRoleLocalServiceUtil; +import com.liferay.portal.service.UserLocalServiceUtil; /** * The implementation of the disponibilita local service. + * *

- * All custom service methods should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy - * their definitions into the {@link it.tref.portos.calendar.appointments.service.DisponibilitaLocalService} interface. + * All custom service methods should be put in this class. Whenever methods are added, rerun + * ServiceBuilder to copy their definitions into the + * {@link it.tref.portos.calendar.appointments.service.DisponibilitaLocalService} interface. + * *

- * This is a local service. Methods of this service will not have security checks based on the propagated JAAS - * credentials because this service can only be accessed from within the same VM. + * This is a local service. Methods of this service will not have security checks based on the + * propagated JAAS credentials because this service can only be accessed from within the same VM. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting * @see it.tref.portos.calendar.appointments.service.base.DisponibilitaLocalServiceBaseImpl * @see it.tref.portos.calendar.appointments.service.DisponibilitaLocalServiceUtil */ public class DisponibilitaLocalServiceImpl extends DisponibilitaLocalServiceBaseImpl { /* - * NOTE FOR DEVELOPERS: Never reference this interface directly. Always use {@link - * it.tref.portos.calendar.appointments.service.DisponibilitaLocalServiceUtil} to access the disponibilita local - * service. + * NOTE FOR DEVELOPERS: + * + * Never reference this interface directly. Always use {@link + * it.tref.portos.calendar.appointments.service.DisponibilitaLocalServiceUtil} to access the + * disponibilita local service. */ private static Log _log = LogFactoryUtil.getLog(DisponibilitaLocalServiceImpl.class); - @Override - public long checkDisponibilitaExist(long funzionarioId, Date startDate, Date endDate) throws SystemException { - + //Bug 32935 + public long checkDisponibilitaExist(long funzionarioId, Date startDate, Date endDate) throws SystemException{ + long exist = 0L; + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); dynamicQuery.add(RestrictionsFactoryUtil.eq("exactDate", sdf.format(startDate))); - dynamicQuery.add(RestrictionsFactoryUtil.eq("startDate", startDate)); - dynamicQuery.add(RestrictionsFactoryUtil.eq("endDate", endDate)); - @SuppressWarnings("unchecked") + + //Bug 32935 + dynamicQuery.add(RestrictionsFactoryUtil.eq("startDate",startDate)); + dynamicQuery.add(RestrictionsFactoryUtil.eq("endDate",endDate)); + List results = disponibilitaPersistence.findWithDynamicQuery(dynamicQuery); - if (!results.isEmpty()) { + if(!results.isEmpty()){ exist = results.get(0).getDisponibilitaId(); } + return exist; } - - @Override - public long checkDisponibilitaExist(long funzionarioId, Date startDate, Date endDate, long presidio) - throws SystemException { - + + public long checkDisponibilitaExist(long funzionarioId, Date startDate, Date endDate, long presidio) throws SystemException{ + long exist = 0L; + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); dynamicQuery.add(RestrictionsFactoryUtil.eq("exactDate", sdf.format(startDate))); - dynamicQuery.add(RestrictionsFactoryUtil.eq("presidio", presidio)); - dynamicQuery.add(RestrictionsFactoryUtil.eq("startDate", startDate)); - dynamicQuery.add(RestrictionsFactoryUtil.eq("endDate", endDate)); - @SuppressWarnings("unchecked") + dynamicQuery.add(RestrictionsFactoryUtil.eq("presidio",presidio)); + + //Bug 32935 + dynamicQuery.add(RestrictionsFactoryUtil.eq("startDate",startDate)); + dynamicQuery.add(RestrictionsFactoryUtil.eq("endDate",endDate)); + List results = disponibilitaPersistence.findWithDynamicQuery(dynamicQuery); - if (!results.isEmpty()) { + if(!results.isEmpty()){ exist = results.get(0).getDisponibilitaId(); } + return exist; } - - @Override + public Disponibilita addDisponibilita(long userId, long funzionarioId, Date startDate, Date endDate, long presidio, ServiceContext serviceContext) throws SystemException, PortalException { - Organization organization = OrganizationLocalServiceUtil.fetchOrganization(presidio); - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + Organization organization = OrganizationLocalServiceUtil.fetchOrganization(presidio); + + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + Disponibilita disponibilita = disponibilitaPersistence.create(counterLocalService.increment(Disponibilita.class.getName())); + User user = userPersistence.findByPrimaryKey(userId); + Date now = new Date(); + disponibilita.setCompanyId(serviceContext.getCompanyId()); disponibilita.setUserId(user.getUserId()); disponibilita.setUserName(user.getFullName()); disponibilita.setCreateDate(serviceContext.getCreateDate(now)); disponibilita.setModifiedDate(serviceContext.getModifiedDate(now)); disponibilita.setGroupId(organization.getGroupId()); + disponibilita.setFunzionarioId(funzionarioId); disponibilita.setStartDate(startDate); disponibilita.setEndDate(endDate); disponibilita.setPresidio(presidio); disponibilita.setExactDate(sdf.format(startDate)); disponibilita.setDisponibile(true); - disponibilita = updateDisponibilita(disponibilita); + + disponibilita = disponibilitaLocalService.updateDisponibilita(disponibilita); + + return disponibilita; } + + public Disponibilita addIndisponibilita(long userId, long funzionarioId, Date startDate, Date endDate, long presidio, + ServiceContext serviceContext) throws SystemException, PortalException { - @Override - public Disponibilita addIndisponibilita(long userId, long funzionarioId, Date startDate, Date endDate, - long presidio, ServiceContext serviceContext) throws SystemException, PortalException { + Organization organization = OrganizationLocalServiceUtil.fetchOrganization(presidio); + + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); - Organization organization = OrganizationLocalServiceUtil.fetchOrganization(presidio); - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); Disponibilita disponibilita = disponibilitaPersistence.create(counterLocalService.increment(Disponibilita.class.getName())); + User user = userPersistence.findByPrimaryKey(userId); + Date now = new Date(); + disponibilita.setCompanyId(serviceContext.getCompanyId()); disponibilita.setUserId(user.getUserId()); disponibilita.setUserName(user.getFullName()); disponibilita.setCreateDate(serviceContext.getCreateDate(now)); disponibilita.setModifiedDate(serviceContext.getModifiedDate(now)); disponibilita.setGroupId(organization.getGroupId()); + disponibilita.setFunzionarioId(funzionarioId); disponibilita.setStartDate(startDate); disponibilita.setEndDate(endDate); disponibilita.setPresidio(presidio); disponibilita.setExactDate(sdf.format(startDate)); disponibilita.setDisponibile(false); - disponibilita = updateDisponibilita(disponibilita); + + disponibilita = disponibilitaLocalService.updateDisponibilita(disponibilita); + + return disponibilita; } - @Override - public void addDisponibilitaGenerale(long userId, Date startDate, Date endDate, long presidioId, String oraInizio, - String oraFine, int giornoSettimana, ServiceContext serviceContext) throws SystemException, - PortalException, ParseException { + public void addDisponibilitaGenerale(long userId, Date startDate, Date endDate, long presidioId, + String oraInizio, String oraFine, int giornoSettimana, ServiceContext serviceContext) throws SystemException, PortalException, ParseException{ Organization organization = OrganizationLocalServiceUtil.fetchOrganization(presidioId); + List userDefinitivo = new ArrayList(); + try { - if (organization != null) { - List users = userLocalService.getOrganizationUsers(presidioId); + + if(organization != null){ + List users = UserLocalServiceUtil.getOrganizationUsers(presidioId); + for (User user : users) { + Role portosSupporto = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_supporto"); - Role portosIstruttore = - RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_calendario"); - if (!userLocalService.hasRoleUser(portosSupporto.getRoleId(), user.getUserId())) { - boolean isIstruttore = - UserGroupRoleLocalServiceUtil.hasUserGroupRole(user.getUserId(), - organization.getGroupId(), portosIstruttore.getRoleId()); - if (isIstruttore) { + + Role portosIstruttore = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_calendario"); + + if(!UserLocalServiceUtil.hasRoleUser(portosSupporto.getRoleId(), user.getUserId())){ + + boolean isIstruttore = UserGroupRoleLocalServiceUtil.hasUserGroupRole( + user.getUserId(), organization.getGroupId(), portosIstruttore.getRoleId()); + + + if(isIstruttore){ userDefinitivo.add(user); } } } + } + } catch (NumberFormatException | SystemException e) { - _log.error(e, e); + _log.error(e,e); } catch (PortalException e) { - _log.error(e, e); + _log.error(e,e); } + Calendar calendarStartDate = Calendar.getInstance(); calendarStartDate.setTime(startDate); - if (calendarStartDate.get(Calendar.DAY_OF_WEEK) == giornoSettimana) { + + if(calendarStartDate.get(Calendar.DAY_OF_WEEK) == giornoSettimana){ + Date startDateToInsert = formatDateTime(oraInizio, startDate); Date endDateToInsert = formatDateTime(oraFine, startDate); + for (User user : userDefinitivo) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", user.getUserId())); dynamicQuery.add(RestrictionsFactoryUtil.eq("exactDate", sdf.format(startDateToInsert))); dynamicQuery.add(RestrictionsFactoryUtil.eq("groupId", organization.getGroupId())); - dynamicQuery.add(RestrictionsFactoryUtil.eq("startDate", startDateToInsert)); - dynamicQuery.add(RestrictionsFactoryUtil.eq("endDate", endDateToInsert)); - @SuppressWarnings("unchecked") + + //Bug 32935 + dynamicQuery.add(RestrictionsFactoryUtil.eq("startDate",startDateToInsert)); + dynamicQuery.add(RestrictionsFactoryUtil.eq("endDate",endDateToInsert)); + List results = disponibilitaPersistence.findWithDynamicQuery(dynamicQuery); - if (results.isEmpty()) { - addDisponibilita(serviceContext.getUserId(), user.getUserId(), startDateToInsert, endDateToInsert, + if(results.isEmpty()){ + addDisponibilita(serviceContext.getUserId(), user.getUserId(), startDateToInsert, endDateToInsert, organization.getOrganizationId(), serviceContext); - } else { - for (Iterator iterator = results.iterator(); iterator.hasNext();) { - Disponibilita disponibilita = iterator.next(); + } + //Bug 32935 + else{ + for (Iterator iterator = results.iterator(); iterator.hasNext();) { + Disponibilita disponibilita = (Disponibilita) iterator.next(); disponibilita.setDisponibile(true); - updateDisponibilita(disponibilita); + disponibilitaLocalService.updateDisponibilita(disponibilita); } } } } - addDayForDisponibilita(startDate, endDate, oraInizio, oraFine, giornoSettimana, userDefinitivo, - organization.getOrganizationId(), serviceContext); + + addDayForDisponibilita(startDate, endDate, oraInizio, oraFine, giornoSettimana, + userDefinitivo, organization.getOrganizationId(), serviceContext); + } - - private void addDayForDisponibilita(Date date, Date endDate, String oraInizio, String oraFine, int giornoSettimana, - List users, long presidioId, ServiceContext serviceContext) throws ParseException, SystemException, - PortalException { - + + private void addDayForDisponibilita(Date date, Date endDate, String oraInizio, String oraFine,int giornoSettimana,List users, + long presidioId, ServiceContext serviceContext) + throws ParseException, SystemException, PortalException{ + Organization org = OrganizationLocalServiceUtil.fetchOrganization(presidioId); + Date datePlus = datePlusOneDay(date); - if (date.before(datePlus) && (endDate.after(datePlus) || isSameDate(endDate, datePlus))) { + if(date.before(datePlus) && (endDate.after(datePlus) || isSameDate(endDate, datePlus))){ + Calendar calendarStartDate = Calendar.getInstance(); calendarStartDate.setTime(datePlus); - if (calendarStartDate.get(Calendar.DAY_OF_WEEK) == giornoSettimana) { + + if(calendarStartDate.get(Calendar.DAY_OF_WEEK) == giornoSettimana){ + Date startDateToInsert = formatDateTime(oraInizio, datePlus); Date endDateToInsert = formatDateTime(oraFine, datePlus); + for (User user : users) { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", user.getUserId())); dynamicQuery.add(RestrictionsFactoryUtil.eq("exactDate", sdf.format(startDateToInsert))); dynamicQuery.add(RestrictionsFactoryUtil.eq("groupId", org.getGroupId())); - dynamicQuery.add(RestrictionsFactoryUtil.eq("startDate", startDateToInsert)); - dynamicQuery.add(RestrictionsFactoryUtil.eq("endDate", endDateToInsert)); - @SuppressWarnings("unchecked") + + //Bug 32935 + dynamicQuery.add(RestrictionsFactoryUtil.eq("startDate",startDateToInsert)); + dynamicQuery.add(RestrictionsFactoryUtil.eq("endDate",endDateToInsert)); + List results = disponibilitaPersistence.findWithDynamicQuery(dynamicQuery); - if (results.isEmpty()) { - addDisponibilita(serviceContext.getUserId(), user.getUserId(), startDateToInsert, - endDateToInsert, presidioId, serviceContext); - } else { - for (Iterator iterator = results.iterator(); iterator.hasNext();) { - Disponibilita disponibilita = iterator.next(); + if(results.isEmpty()){ + addDisponibilita(serviceContext.getUserId(), user.getUserId(), startDateToInsert, endDateToInsert, + presidioId, serviceContext); + } + //Bug 32935 + else{ + for (Iterator iterator = results.iterator(); iterator.hasNext();) { + Disponibilita disponibilita = (Disponibilita) iterator.next(); disponibilita.setDisponibile(true); - updateDisponibilita(disponibilita); + disponibilitaLocalService.updateDisponibilita(disponibilita); } } + } - addDayForDisponibilita(datePlus, endDate, oraInizio, oraFine, giornoSettimana, users, presidioId, - serviceContext); + + addDayForDisponibilita(datePlus, endDate, oraInizio, oraFine, giornoSettimana, users, + presidioId, serviceContext); + } else { - addDayForDisponibilita(datePlus, endDate, oraInizio, oraFine, giornoSettimana, users, presidioId, - serviceContext); + addDayForDisponibilita(datePlus, endDate, oraInizio, oraFine, giornoSettimana, users, + presidioId, serviceContext); } } } - private Date datePlusOneDay(Date date) { + private Date datePlusOneDay(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); + calendar.add(Calendar.DATE, 1); + return calendar.getTime(); } - - private boolean isSameDate(Date date1, Date date2) { - + + private boolean isSameDate(Date date1 , Date date2){ + Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); cal1.setTime(date1); cal2.setTime(date2); - boolean sameDay = - cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) - && cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR); + + boolean sameDay = cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && + cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR); + return sameDay; + } - @SuppressWarnings("unchecked") - @Override public List findByStartDate(Date date) throws SystemException { - Date start = DateUtils.truncate(date, Calendar.DAY_OF_MONTH); Date end = DateUtils.addDays(start, 1); + DynamicQuery dynamicQuery = dynamicQuery(); dynamicQuery.add(RestrictionsFactoryUtil.between("startDate", start, end)); dynamicQuery.addOrder(OrderFactoryUtil.desc("funzionarioId")); + return disponibilitaPersistence.findWithDynamicQuery(dynamicQuery); - } - @Override - public List findByFunzionarioStartAndPresidio(long funzionarioId, Date date, long presidio) - throws SystemException { + } + public List findByFunzionarioStartAndPresidio(long funzionarioId, Date date, long presidio) throws SystemException { Date start = DateUtils.truncate(date, Calendar.DAY_OF_MONTH); Date end = DateUtils.addHours(start, 22); + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); dynamicQuery.add(RestrictionsFactoryUtil.ge("startDate", start)); dynamicQuery.add(RestrictionsFactoryUtil.lt("endDate", end)); dynamicQuery.add(RestrictionsFactoryUtil.eq("groupId", presidio)); - @SuppressWarnings("unchecked") + List results = disponibilitaPersistence.findWithDynamicQuery(dynamicQuery); return results; - } - @SuppressWarnings("unchecked") - @Override - public List findByFunzionario_StartDate(long funzionarioId, Date date, long presidio) - throws SystemException { + } + public List findByFunzionario_StartDate(long funzionarioId, Date date, long presidio) throws SystemException { Date start = DateUtils.truncate(date, Calendar.DAY_OF_MONTH); Date end = DateUtils.addHours(start, 22); + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); dynamicQuery.add(RestrictionsFactoryUtil.ge("startDate", start)); dynamicQuery.add(RestrictionsFactoryUtil.lt("endDate", end)); dynamicQuery.add(RestrictionsFactoryUtil.eq("groupId", presidio)); - return disponibilitaPersistence.findWithDynamicQuery(dynamicQuery); - } - @SuppressWarnings("unchecked") - @Override - public List findByFunzionarioStartDate(long funzionarioId, Date date, int startRow, int endRow) - throws SystemException { + List results = disponibilitaPersistence.findWithDynamicQuery(dynamicQuery); + return results; + } + + public List findByFunzionarioStartDate(long funzionarioId, Date date, int startRow, int endRow) throws SystemException { + Date start = DateUtils.truncate(date, Calendar.DAY_OF_MONTH); + Date end = DateUtils.addHours(start, 22); + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); dynamicQuery.add(RestrictionsFactoryUtil.ge("startDate", start)); + Order defaultOrder = OrderFactoryUtil.asc("startDate"); dynamicQuery.addOrder(defaultOrder); - return dynamicQuery(dynamicQuery, startRow, endRow); - } + + List results = disponibilitaLocalService.dynamicQuery(dynamicQuery, startRow, endRow); + return results; - @Override + } + public int countByFunzionarioStartDate(long funzionarioId, Date date) throws SystemException { - + Date start = DateUtils.truncate(date, Calendar.DAY_OF_MONTH); + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); dynamicQuery.add(RestrictionsFactoryUtil.ge("startDate", start)); + Order defaultOrder = OrderFactoryUtil.asc("startDate"); dynamicQuery.addOrder(defaultOrder); - return dynamicQuery(dynamicQuery, QueryUtil.ALL_POS, QueryUtil.ALL_POS).size(); + + List results = disponibilitaLocalService.dynamicQuery(dynamicQuery, -1, -1); + return results.size(); + } - - @SuppressWarnings("unchecked") - @Override - public List findByPOStartDateAndFilters(long funzionarioId, Date date, int startRow, int endRow, - String provinciaFilter, String funzionarioIdFilter) throws SystemException { - - User user = userLocalService.fetchUser(funzionarioId); + + public List findByPOStartDateAndFilters(long funzionarioId, Date date, int startRow, int endRow, String provinciaFilter, String funzionarioIdFilter) throws SystemException { + + User user = UserLocalServiceUtil.fetchUser(funzionarioId); + List orgIds = new ArrayList(); + try { + Role dirigenteGenerale = RoleLocalServiceUtil.getRole(user.getCompanyId(), "dirigente_generale"); - boolean isDirigenteGenerale = - RoleLocalServiceUtil.hasUserRole(user.getUserId(), dirigenteGenerale.getRoleId()); - if (isDirigenteGenerale) { - List orgs = - OrganizationLocalServiceUtil.getOrganizations(QueryUtil.ALL_POS, QueryUtil.ALL_POS); + boolean isDirigenteGenerale = RoleLocalServiceUtil.hasUserRole(user.getUserId(), dirigenteGenerale.getRoleId()); + + if(isDirigenteGenerale){ + + List orgs = OrganizationLocalServiceUtil.getOrganizations(-1, -1); for (Organization organization : orgs) { - if (organization.getParentOrganization() != null) { + if(organization.getParentOrganization() != null){ orgIds.add(organization.getOrganizationId()); } } + } else { + List orgs = OrganizationLocalServiceUtil.getUserOrganizations(funzionarioId); for (Organization organization : orgs) { + Role portosPO = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_po"); - boolean isPO = - UserGroupRoleLocalServiceUtil.hasUserGroupRole(funzionarioId, organization.getGroupId(), - portosPO.getRoleId()); - if (isPO) { + + boolean isPO = UserGroupRoleLocalServiceUtil.hasUserGroupRole( + funzionarioId, organization.getGroupId(), portosPO.getRoleId()); + + if(isPO){ orgIds.add(organization.getOrganizationId()); } } + } + } catch (PortalException e) { - _log.error(e, e); + _log.error(e,e); } + Date start = DateUtils.truncate(date, Calendar.DAY_OF_MONTH); + DynamicQuery dynamicQuery = dynamicQuery(); - if (provinciaFilter.equals("-1") || provinciaFilter.equals(StringPool.BLANK)) { - dynamicQuery.add(PropertyFactoryUtil.forName("presidio").in(orgIds.toArray())); - } else { + + if(!provinciaFilter.equals("-1") && !provinciaFilter.equals("")){ dynamicQuery.add(RestrictionsFactoryUtil.eq("presidio", Long.valueOf(provinciaFilter))); - } - if (funzionarioIdFilter.equals("-1") || funzionarioIdFilter.equals(StringPool.BLANK)) { - dynamicQuery.add(RestrictionsFactoryUtil.ne("funzionarioId", funzionarioId)); } else { + dynamicQuery.add(PropertyFactoryUtil.forName("presidio").in(orgIds.toArray())); + } + + if(!funzionarioIdFilter.equals("-1") && !funzionarioIdFilter.equals("")){ dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", Long.valueOf(funzionarioIdFilter))); + } else { + dynamicQuery.add(RestrictionsFactoryUtil.ne("funzionarioId", funzionarioId)); } + dynamicQuery.add(RestrictionsFactoryUtil.ge("startDate", start)); + Order defaultOrder = OrderFactoryUtil.asc("startDate"); dynamicQuery.addOrder(defaultOrder); - return dynamicQuery(dynamicQuery, startRow, endRow); + + List results = disponibilitaLocalService.dynamicQuery(dynamicQuery, startRow, endRow); + return results; + } - - @Override - public int countByPOStartDateAndFilters(long funzionarioId, Date date, String provinciaFilter, - String funzionarioIdFilter) throws SystemException { - - User user = userLocalService.fetchUser(funzionarioId); + + public int countByPOStartDateAndFilters(long funzionarioId, Date date, String provinciaFilter, String funzionarioIdFilter) throws SystemException { + + User user = UserLocalServiceUtil.fetchUser(funzionarioId); + List orgIds = new ArrayList(); + try { + Role dirigenteGenerale = RoleLocalServiceUtil.getRole(user.getCompanyId(), "dirigente_generale"); - boolean isDirigenteGenerale = - RoleLocalServiceUtil.hasUserRole(user.getUserId(), dirigenteGenerale.getRoleId()); - if (isDirigenteGenerale) { - List orgs = - OrganizationLocalServiceUtil.getOrganizations(QueryUtil.ALL_POS, QueryUtil.ALL_POS); + boolean isDirigenteGenerale = RoleLocalServiceUtil.hasUserRole(user.getUserId(), dirigenteGenerale.getRoleId()); + + if(isDirigenteGenerale){ + + List orgs = OrganizationLocalServiceUtil.getOrganizations(-1, -1); for (Organization organization : orgs) { - if (organization.getParentOrganization() != null) { + if(organization.getParentOrganization() != null){ orgIds.add(organization.getOrganizationId()); } } + } else { + List orgs = OrganizationLocalServiceUtil.getUserOrganizations(funzionarioId); for (Organization organization : orgs) { + Role portosPO = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_po"); - boolean isPO = - UserGroupRoleLocalServiceUtil.hasUserGroupRole(funzionarioId, organization.getGroupId(), - portosPO.getRoleId()); - if (isPO) { + + boolean isPO = UserGroupRoleLocalServiceUtil.hasUserGroupRole( + funzionarioId, organization.getGroupId(), portosPO.getRoleId()); + + if(isPO){ orgIds.add(organization.getOrganizationId()); } } + } + } catch (PortalException e) { - _log.error(e, e); + _log.error(e,e); } + Date start = DateUtils.truncate(date, Calendar.DAY_OF_MONTH); + DynamicQuery dynamicQuery = dynamicQuery(); - if (provinciaFilter.equals("-1") || provinciaFilter.equals(StringPool.BLANK)) { - dynamicQuery.add(PropertyFactoryUtil.forName("presidio").in(orgIds.toArray())); - } else { + + if(!provinciaFilter.equals("-1") && !provinciaFilter.equals("")){ dynamicQuery.add(RestrictionsFactoryUtil.eq("presidio", Long.valueOf(provinciaFilter))); - } - if (funzionarioIdFilter.equals("-1") || funzionarioIdFilter.equals(StringPool.BLANK)) { - dynamicQuery.add(RestrictionsFactoryUtil.ne("funzionarioId", funzionarioId)); } else { + dynamicQuery.add(PropertyFactoryUtil.forName("presidio").in(orgIds.toArray())); + } + + if(!funzionarioIdFilter.equals("-1") && !funzionarioIdFilter.equals("")){ dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", Long.valueOf(funzionarioIdFilter))); + } else { + dynamicQuery.add(RestrictionsFactoryUtil.ne("funzionarioId", funzionarioId)); } + dynamicQuery.add(RestrictionsFactoryUtil.ge("startDate", start)); + Order defaultOrder = OrderFactoryUtil.asc("startDate"); dynamicQuery.addOrder(defaultOrder); - return dynamicQuery(dynamicQuery, QueryUtil.ALL_POS, QueryUtil.ALL_POS).size(); + + List results = disponibilitaLocalService.dynamicQuery(dynamicQuery, -1, -1); + return results.size(); + } - - @SuppressWarnings("unchecked") - @Override - public List findByPOStartDate(long funzionarioId, Date date, int startRow, int endRow) - throws SystemException { - - User user = userLocalService.fetchUser(funzionarioId); + + public List findByPOStartDate(long funzionarioId, Date date, int startRow, int endRow) throws SystemException { + + User user = UserLocalServiceUtil.fetchUser(funzionarioId); + List orgIds = new ArrayList(); + try { + Role dirigenteGenerale = RoleLocalServiceUtil.getRole(user.getCompanyId(), "dirigente_generale"); - boolean isDirigenteGenerale = - RoleLocalServiceUtil.hasUserRole(user.getUserId(), dirigenteGenerale.getRoleId()); - if (isDirigenteGenerale) { - List orgs = - OrganizationLocalServiceUtil.getOrganizations(QueryUtil.ALL_POS, QueryUtil.ALL_POS); + boolean isDirigenteGenerale = RoleLocalServiceUtil.hasUserRole(user.getUserId(), dirigenteGenerale.getRoleId()); + + if(isDirigenteGenerale){ + + List orgs = OrganizationLocalServiceUtil.getOrganizations(-1, -1); for (Organization organization : orgs) { - if (organization.getParentOrganization() != null) { + if(organization.getParentOrganization() != null){ orgIds.add(organization.getOrganizationId()); } } + } else { + List orgs = OrganizationLocalServiceUtil.getUserOrganizations(funzionarioId); for (Organization organization : orgs) { + Role portosPO = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_po"); - boolean isPO = - UserGroupRoleLocalServiceUtil.hasUserGroupRole(funzionarioId, organization.getGroupId(), - portosPO.getRoleId()); - if (isPO) { + + boolean isPO = UserGroupRoleLocalServiceUtil.hasUserGroupRole( + funzionarioId, organization.getGroupId(), portosPO.getRoleId()); + + if(isPO){ orgIds.add(organization.getOrganizationId()); } } + } + } catch (PortalException e) { - _log.error(e, e); + _log.error(e,e); } + Date start = DateUtils.truncate(date, Calendar.DAY_OF_MONTH); + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(PropertyFactoryUtil.forName("presidio").in(orgIds.toArray())); dynamicQuery.add(RestrictionsFactoryUtil.ne("funzionarioId", funzionarioId)); dynamicQuery.add(RestrictionsFactoryUtil.ge("startDate", start)); + Order defaultOrder = OrderFactoryUtil.asc("startDate"); dynamicQuery.addOrder(defaultOrder); - return dynamicQuery(dynamicQuery, startRow, endRow); - } + + List results = disponibilitaLocalService.dynamicQuery(dynamicQuery, startRow, endRow); + return results; - @Override + } + public int countByPOStartDate(long funzionarioId, Date date) throws SystemException { - - User user = userLocalService.fetchUser(funzionarioId); + + User user = UserLocalServiceUtil.fetchUser(funzionarioId); + List orgIds = new ArrayList(); + try { + Role dirigenteGenerale = RoleLocalServiceUtil.getRole(user.getCompanyId(), "dirigente_generale"); - boolean isDirigenteGenerale = - RoleLocalServiceUtil.hasUserRole(user.getUserId(), dirigenteGenerale.getRoleId()); - if (isDirigenteGenerale) { - List orgs = - OrganizationLocalServiceUtil.getOrganizations(QueryUtil.ALL_POS, QueryUtil.ALL_POS); + boolean isDirigenteGenerale = RoleLocalServiceUtil.hasUserRole(user.getUserId(), dirigenteGenerale.getRoleId()); + + if(isDirigenteGenerale){ + + List orgs = OrganizationLocalServiceUtil.getOrganizations(-1, -1); for (Organization organization : orgs) { - if (organization.getParentOrganization() != null) { + if(organization.getParentOrganization() != null){ orgIds.add(organization.getOrganizationId()); } } + } else { + List orgs = OrganizationLocalServiceUtil.getUserOrganizations(funzionarioId); for (Organization organization : orgs) { + Role portosPO = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_po"); - boolean isPO = - UserGroupRoleLocalServiceUtil.hasUserGroupRole(funzionarioId, organization.getGroupId(), - portosPO.getRoleId()); - if (isPO) { + + boolean isPO = UserGroupRoleLocalServiceUtil.hasUserGroupRole( + funzionarioId, organization.getGroupId(), portosPO.getRoleId()); + + if(isPO){ orgIds.add(organization.getOrganizationId()); } } + } + } catch (PortalException e) { - _log.error(e, e); + _log.error(e,e); } + Date start = DateUtils.truncate(date, Calendar.DAY_OF_MONTH); + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(PropertyFactoryUtil.forName("presidio").in(orgIds.toArray())); dynamicQuery.add(RestrictionsFactoryUtil.ne("funzionarioId", funzionarioId)); dynamicQuery.add(RestrictionsFactoryUtil.ge("startDate", start)); + Order defaultOrder = OrderFactoryUtil.asc("startDate"); dynamicQuery.addOrder(defaultOrder); - return dynamicQuery(dynamicQuery, QueryUtil.ALL_POS, QueryUtil.ALL_POS).size(); + + List results = disponibilitaLocalService.dynamicQuery(dynamicQuery, -1, -1); + return results.size(); + } private Date formatDateTime(String orario, Date day) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); Date data = sdf.parse(orario); Calendar calendar = GregorianCalendar.getInstance(); calendar.setTime(data); Date date = DateUtils.addHours(day, calendar.get(Calendar.HOUR_OF_DAY)); date = DateUtils.addMinutes(date, calendar.get(Calendar.MINUTE)); + return date; } + } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/DisponibilitaServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/DisponibilitaServiceImpl.java index 05497c8a..7600e88d 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/DisponibilitaServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/DisponibilitaServiceImpl.java @@ -1,9 +1,13 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation; either version + * 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. */ package it.tref.portos.calendar.appointments.service.impl; @@ -11,6 +15,7 @@ package it.tref.portos.calendar.appointments.service.impl; import it.tref.portos.calendar.appointments.model.Disponibilita; import it.tref.portos.calendar.appointments.model.Funzionario; import it.tref.portos.calendar.appointments.model.Prenotazione; +import it.tref.portos.calendar.appointments.service.PrenotazioneLocalServiceUtil; import it.tref.portos.calendar.appointments.service.base.DisponibilitaServiceBaseImpl; import java.text.ParseException; @@ -37,117 +42,157 @@ import com.liferay.portal.service.OrganizationLocalServiceUtil; import com.liferay.portal.service.RoleLocalServiceUtil; import com.liferay.portal.service.ServiceContext; import com.liferay.portal.service.UserGroupRoleLocalServiceUtil; +import com.liferay.portal.service.UserLocalServiceUtil; /** * The implementation of the disponibilita remote service. + * *

- * All custom service methods should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy - * their definitions into the {@link it.tref.portos.calendar.appointments.service.DisponibilitaService} interface. + * All custom service methods should be put in this class. Whenever methods are added, rerun + * ServiceBuilder to copy their definitions into the + * {@link it.tref.portos.calendar.appointments.service.DisponibilitaService} interface. + * *

- * This is a remote service. Methods of this service are expected to have security checks based on the propagated JAAS - * credentials because this service can be accessed remotely. + * This is a remote service. Methods of this service are expected to have security checks based on + * the propagated JAAS credentials because this service can be accessed remotely. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting * @see it.tref.portos.calendar.appointments.service.base.DisponibilitaServiceBaseImpl * @see it.tref.portos.calendar.appointments.service.DisponibilitaServiceUtil */ public class DisponibilitaServiceImpl extends DisponibilitaServiceBaseImpl { /* - * NOTE FOR DEVELOPERS: Never reference this interface directly. Always use {@link - * it.tref.portos.calendar.appointments.service.DisponibilitaServiceUtil} to access the disponibilita remote - * service. + * NOTE FOR DEVELOPERS: + * + * Never reference this interface directly. Always use {@link + * it.tref.portos.calendar.appointments.service.DisponibilitaServiceUtil} to access the + * disponibilita remote service. */ - + private static Log _log = LogFactoryUtil.getLog(DisponibilitaServiceImpl.class); - @Override public Disponibilita addDisponibilita(long userId, long funzionarioId, Date startDate, Date endDate, long presidio, ServiceContext serviceContext) throws SystemException, PortalException { - - return disponibilitaLocalService.addDisponibilita(userId, funzionarioId, startDate, endDate, presidio, - serviceContext); + return disponibilitaLocalService.addDisponibilita(userId, funzionarioId, startDate, endDate, presidio, serviceContext); } - @Override public List addDisponibilitaGenerale(long presidio, long userId, Date dataInizioDisponibilita, - Date dataFineDisponibilita, String giornoSettimana, String oraInizioDisponibilita, - String oraFineDisponibilita, ServiceContext serviceContext) throws SystemException, PortalException { + Date dataFineDisponibilita, String giornoSettimana, String oraInizioDisponibilita, String oraFineDisponibilita, + ServiceContext serviceContext) throws SystemException, PortalException { // ciclo su tutti i funzionari e chiamo il service su ogniuno di essi List funzionari = new ArrayList(); - // List funzionari = funzionarioLocalService.findByPresidio(presidio); +// List funzionari = funzionarioLocalService.findByPresidio(presidio); List listDisponibilita = new ArrayList<>(funzionari.size()); + long funzionarioId; + for (Funzionario funzionario : funzionari) { funzionarioId = funzionario.getFunzionarioId(); - listDisponibilita.add(disponibilitaLocalService.addDisponibilita(userId, funzionarioId, - dataInizioDisponibilita, dataFineDisponibilita, presidio, serviceContext)); + listDisponibilita.add(disponibilitaLocalService.addDisponibilita(userId, funzionarioId, dataInizioDisponibilita, + dataFineDisponibilita, presidio, serviceContext)); } + return listDisponibilita; } - @Override - public String verifyDisponibilitaByDateHour(String presidio, String date, String[] oreInizio, String idFunzionario) - throws SystemException, ParseException { - + public String verifyDisponibilitaByDateHour(String presidio, String date,String[] oreInizio, String idFunzionario) throws SystemException, ParseException { + JSONObject json = JSONFactoryUtil.createJSONObject(); JSONArray array = JSONFactoryUtil.createJSONArray(); + Organization org = OrganizationLocalServiceUtil.fetchOrganization(Long.parseLong(presidio)); + SimpleDateFormat sfd = new SimpleDateFormat("dd/MM/yyyy"); Date dateVerifyTemp = sfd.parse(date); + for (int i = 0; i < oreInizio.length; i++) { JSONObject jsonFiglio = JSONFactoryUtil.createJSONObject(); + String oraInizio = oreInizio[i]; + jsonFiglio.put("ora", oraInizio); + Date dateVerify = formatDateTime(oraInizio, dateVerifyTemp); - List lista = prenotazioneLocalService.findByDateHourFunzionario(dateVerify, - Long.parseLong(idFunzionario), org.getGroupId()); - jsonFiglio.put("disponibile", lista.isEmpty()); + + + List lista = + PrenotazioneLocalServiceUtil.findByDateHourFunzionario( + dateVerify, Long.parseLong(idFunzionario), org.getGroupId()); + + if(lista.isEmpty()){ + jsonFiglio.put("disponibile", true); + } else { + jsonFiglio.put("disponibile", false); + } + array.put(jsonFiglio); } - json.put("slot", array); + + json.put("slot",array); + return json.toString(); } - - @Override + + public String getDisponibilitaByDate(String presidio, String date) throws SystemException, ParseException { // TODO permessi + Organization organization = OrganizationLocalServiceUtil.fetchOrganization(Long.valueOf(presidio)); + List userDefinitivo = new ArrayList(); + try { - if (organization != null) { - List users = userLocalService.getOrganizationUsers(Long.valueOf(presidio)); + + if(organization != null){ + List users = UserLocalServiceUtil.getOrganizationUsers(Long.valueOf(presidio)); + for (User user : users) { + Role portosSupporto = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_supporto"); - Role portosIstruttore = RoleLocalServiceUtil.getRole(organization.getCompanyId(), - "portos_calendario"); - if (!userLocalService.hasRoleUser(portosSupporto.getRoleId(), user.getUserId())) { - boolean isIstruttore = UserGroupRoleLocalServiceUtil.hasUserGroupRole(user.getUserId(), - organization.getGroupId(), portosIstruttore.getRoleId()); - if (isIstruttore) { + + Role portosIstruttore = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_calendario"); + + if(!UserLocalServiceUtil.hasRoleUser(portosSupporto.getRoleId(), user.getUserId())){ + + boolean isIstruttore = UserGroupRoleLocalServiceUtil.hasUserGroupRole( + user.getUserId(), organization.getGroupId(), portosIstruttore.getRoleId()); + + + if(isIstruttore){ userDefinitivo.add(user); } } } + } - } catch (NumberFormatException | PortalException | SystemException e) { - _log.error(e, e); - } + + } catch (NumberFormatException | SystemException e) { + _log.error(e,e); + } catch (PortalException e) { + _log.error(e,e); + } + Date startDate = new SimpleDateFormat("dd/MM/yyyy").parse(date); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); + JSONArray json = JSONFactoryUtil.createJSONArray(); for (User funzionario : userDefinitivo) { - List disponibilitaByFunzionario = disponibilitaLocalService - .findByFunzionarioStartAndPresidio(funzionario.getUserId(), startDate, organization.getGroupId()); + + List disponibilitaByFunzionario = + disponibilitaLocalService.findByFunzionarioStartAndPresidio(funzionario.getUserId(), startDate, organization.getGroupId()); if (disponibilitaByFunzionario.isEmpty()) { continue; } JSONObject jsonDisponibilita = JSONFactoryUtil.createJSONObject(); + jsonDisponibilita.put("idFunzionario", funzionario.getUserId()); JSONArray jsonOre = JSONFactoryUtil.createJSONArray(); for (Disponibilita d : disponibilitaByFunzionario) { + JSONObject jsonSlot = JSONFactoryUtil.createJSONObject(); jsonSlot.put("inizio", sdf.format(d.getStartDate())); jsonSlot.put("fine", sdf.format(d.getEndDate())); @@ -156,18 +201,21 @@ public class DisponibilitaServiceImpl extends DisponibilitaServiceBaseImpl { } jsonDisponibilita.put("ore", jsonOre); json.put(jsonDisponibilita); + } + return json.toString(); } - + private Date formatDateTime(String orario, Date day) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); Date data = sdf.parse(orario); Calendar calendar = GregorianCalendar.getInstance(); calendar.setTime(data); Date date = DateUtils.addHours(day, calendar.get(Calendar.HOUR_OF_DAY)); date = DateUtils.addMinutes(date, calendar.get(Calendar.MINUTE)); + return date; } + } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/FunzionarioLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/FunzionarioLocalServiceImpl.java index 21ca8470..4ad15639 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/FunzionarioLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/FunzionarioLocalServiceImpl.java @@ -1,83 +1,94 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation; either version + * 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. */ package it.tref.portos.calendar.appointments.service.impl; +import com.liferay.portal.kernel.exception.PortalException; +import com.liferay.portal.kernel.exception.SystemException; +import com.liferay.portal.model.User; +import com.liferay.portal.service.ServiceContext; + import it.tref.portos.calendar.appointments.model.Funzionario; import it.tref.portos.calendar.appointments.service.base.FunzionarioLocalServiceBaseImpl; import java.util.Date; import java.util.List; -import com.liferay.portal.kernel.exception.PortalException; -import com.liferay.portal.kernel.exception.SystemException; -import com.liferay.portal.model.User; -import com.liferay.portal.service.ServiceContext; - /** * The implementation of the funzionario local service. + * *

- * All custom service methods should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy - * their definitions into the {@link it.tref.portos.calendar.appointments.service.FunzionarioLocalService} interface. + * All custom service methods should be put in this class. Whenever methods are added, rerun + * ServiceBuilder to copy their definitions into the + * {@link it.tref.portos.calendar.appointments.service.FunzionarioLocalService} interface. + * *

- * This is a local service. Methods of this service will not have security checks based on the propagated JAAS - * credentials because this service can only be accessed from within the same VM. + * This is a local service. Methods of this service will not have security checks based on the + * propagated JAAS credentials because this service can only be accessed from within the same VM. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting * @see it.tref.portos.calendar.appointments.service.base.FunzionarioLocalServiceBaseImpl * @see it.tref.portos.calendar.appointments.service.FunzionarioLocalServiceUtil */ public class FunzionarioLocalServiceImpl extends FunzionarioLocalServiceBaseImpl { - /* - * NOTE FOR DEVELOPERS: Never reference this interface directly. Always use {@link - * it.tref.portos.calendar.appointments.service.FunzionarioLocalServiceUtil} to access the funzionario local - * service. - */ - - @Override - public Funzionario addFunzionario(long userId, String nome, String cognome, String presidio, String tipologia, - ServiceContext serviceContext) throws PortalException, SystemException { - - User user = userPersistence.findByPrimaryKey(userId); - Date now = new Date(); - Funzionario funzionario = funzionarioPersistence.create(counterLocalService.increment(Funzionario.class - .getName())); - funzionario.setCompanyId(serviceContext.getCompanyId()); - funzionario.setUserId(user.getUserId()); - funzionario.setUserName(user.getFullName()); - funzionario.setCreateDate(serviceContext.getCreateDate(now)); - funzionario.setModifiedDate(serviceContext.getModifiedDate(now)); - funzionario.setGroupId(serviceContext.getScopeGroupId()); - funzionario.setNome(nome); - funzionario.setCognome(cognome); - funzionario.setPresidio(presidio); - funzionario.setTipologia(tipologia); - funzionario = funzionarioPersistence.update(funzionario); - return funzionario; - } - - @Override - public Funzionario deleteFunzionario(Funzionario funzionario) throws SystemException { - - return super.deleteFunzionario(funzionario); - } - - @Override - public Funzionario deleteFunzionario(long funzionarioId) throws PortalException, SystemException { - - Funzionario funzionario = funzionarioPersistence.findByPrimaryKey(funzionarioId); - return this.deleteFunzionario(funzionario); - } - - @Override - public List findByPresidio(String presidio) throws SystemException { - - return funzionarioPersistence.findByPresidio(presidio); - } + /* + * NOTE FOR DEVELOPERS: + * + * Never reference this interface directly. Always use {@link + * it.tref.portos.calendar.appointments.service.FunzionarioLocalServiceUtil} to access the + * funzionario local service. + */ + + public Funzionario addFunzionario(long userId, String nome, String cognome, String presidio, String tipologia, + ServiceContext serviceContext) throws PortalException, SystemException { + + User user = userPersistence.findByPrimaryKey(userId); + + Date now = new Date(); + + Funzionario funzionario = funzionarioPersistence.create(counterLocalService.increment(Funzionario.class.getName())); + + funzionario.setCompanyId(serviceContext.getCompanyId()); + funzionario.setUserId(user.getUserId()); + funzionario.setUserName(user.getFullName()); + funzionario.setCreateDate(serviceContext.getCreateDate(now)); + funzionario.setModifiedDate(serviceContext.getModifiedDate(now)); + funzionario.setGroupId(serviceContext.getScopeGroupId()); + + funzionario.setNome(nome); + funzionario.setCognome(cognome); + funzionario.setPresidio(presidio); + funzionario.setTipologia(tipologia); + + funzionario = funzionarioPersistence.update(funzionario); + + return funzionario; + } + + @Override + public Funzionario deleteFunzionario(Funzionario funzionario) throws SystemException { + + return super.deleteFunzionario(funzionario); + } + + @Override + public Funzionario deleteFunzionario(long funzionarioId) throws PortalException, SystemException { + Funzionario funzionario = funzionarioPersistence.findByPrimaryKey(funzionarioId); + return this.deleteFunzionario(funzionario); + } + + public List findByPresidio(String presidio) throws SystemException { + return funzionarioPersistence.findByPresidio(presidio); + } + } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/FunzionarioServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/FunzionarioServiceImpl.java index 447943fe..6c03d18a 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/FunzionarioServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/FunzionarioServiceImpl.java @@ -1,14 +1,17 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation; either version + * 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. */ package it.tref.portos.calendar.appointments.service.impl; -import it.tref.liferay.portos.bo.shared.util.Constants; import it.tref.portos.calendar.appointments.model.Funzionario; import it.tref.portos.calendar.appointments.service.base.FunzionarioServiceBaseImpl; @@ -23,7 +26,6 @@ import com.liferay.portal.kernel.json.JSONFactoryUtil; import com.liferay.portal.kernel.json.JSONObject; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; -import com.liferay.portal.kernel.util.StringPool; import com.liferay.portal.kernel.util.Validator; import com.liferay.portal.model.Organization; import com.liferay.portal.model.Role; @@ -32,94 +34,126 @@ import com.liferay.portal.service.OrganizationLocalServiceUtil; import com.liferay.portal.service.RoleLocalServiceUtil; import com.liferay.portal.service.ServiceContext; import com.liferay.portal.service.UserGroupRoleLocalServiceUtil; +import com.liferay.portal.service.UserLocalServiceUtil; +import it.tref.liferay.portos.bo.shared.util.Constants; /** * The implementation of the funzionario remote service. + * *

- * All custom service methods should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy - * their definitions into the {@link it.tref.portos.calendar.appointments.service.FunzionarioService} interface. + * All custom service methods should be put in this class. Whenever methods are added, rerun + * ServiceBuilder to copy their definitions into the + * {@link it.tref.portos.calendar.appointments.service.FunzionarioService} interface. + * *

- * This is a remote service. Methods of this service are expected to have security checks based on the propagated JAAS - * credentials because this service can be accessed remotely. + * This is a remote service. Methods of this service are expected to have security checks based on + * the propagated JAAS credentials because this service can be accessed remotely. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting * @see it.tref.portos.calendar.appointments.service.base.FunzionarioServiceBaseImpl * @see it.tref.portos.calendar.appointments.service.FunzionarioServiceUtil */ public class FunzionarioServiceImpl extends FunzionarioServiceBaseImpl { - /* - * NOTE FOR DEVELOPERS: Never reference this interface directly. Always use {@link - * it.tref.portos.calendar.appointments.service.FunzionarioServiceUtil} to access the funzionario remote service. - */ - + /* + * NOTE FOR DEVELOPERS: + * + * Never reference this interface directly. Always use {@link + * it.tref.portos.calendar.appointments.service.FunzionarioServiceUtil} to access the funzionario + * remote service. + */ + private static Log _log = LogFactoryUtil.getLog(FunzionarioServiceImpl.class); - @Override - public Funzionario addFunzionario(long userId, String nome, String cognome, String presidio, String tipologia, - ServiceContext serviceContext) throws PortalException, SystemException { + public Funzionario addFunzionario(long userId, String nome, String cognome, String presidio, String tipologia, + ServiceContext serviceContext) throws PortalException, SystemException { - return funzionarioLocalService.addFunzionario(userId, nome, cognome, presidio, tipologia, serviceContext); - } + return funzionarioLocalService.addFunzionario(userId, nome, cognome, presidio, tipologia, serviceContext); + } - @Override - public String getFunzionariByPresidio(String presidio) { + public String getFunzionariByPresidio(String presidio) { - JSONArray json = JSONFactoryUtil.createJSONArray(); - try { - Organization organization = OrganizationLocalServiceUtil.fetchOrganization(Long.valueOf(presidio)); - if (organization != null) { - List users = userLocalService.getOrganizationUsers(Long.valueOf(presidio)); - Collections.sort(users, new UserComparator()); - for (User user : users) { - Role portosSupporto = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_supporto"); - Role portosGeologo = RoleLocalServiceUtil.getRole(organization.getCompanyId(), - Constants.ROLE_NAME_GEOLOGO); - Role portosCalendario = RoleLocalServiceUtil.getRole(organization.getCompanyId(), - "portos_calendario"); - Role portosIstruttore = RoleLocalServiceUtil.getRole(organization.getCompanyId(), - Constants.ROLE_NAME_ISTRUTTORE); - if (!userLocalService.hasRoleUser(portosSupporto.getRoleId(), user.getUserId())) { - boolean isCalendario = UserGroupRoleLocalServiceUtil.hasUserGroupRole(user.getUserId(), - organization.getGroupId(), portosCalendario.getRoleId()); - boolean isIstruttore = UserGroupRoleLocalServiceUtil.hasUserGroupRole(user.getUserId(), - organization.getGroupId(), portosIstruttore.getRoleId()); - boolean isGeologo = userLocalService.hasRoleUser(portosGeologo.getRoleId(), - user.getUserId()); - if (isCalendario) { - JSONObject jsonFunzionario = JSONFactoryUtil.createJSONObject(); - jsonFunzionario.put("id", user.getUserId()); - jsonFunzionario.put("nome", user.getFirstName()); - jsonFunzionario.put("cognome", user.getLastName()); - if (isIstruttore) { - jsonFunzionario.put("tipologia", "Istruttore"); - } else if (isGeologo) { - jsonFunzionario.put("tipologia", "Geologo"); - } else { - jsonFunzionario.put("tipologia", StringPool.BLANK); - } - json.put(jsonFunzionario); + JSONArray json = JSONFactoryUtil.createJSONArray(); + + try { + + Organization organization = OrganizationLocalServiceUtil.fetchOrganization(Long.valueOf(presidio)); + + if(organization != null){ + + List users = UserLocalServiceUtil.getOrganizationUsers(Long.valueOf(presidio)); + + //Bug 32935 + Collections.sort(users, new UserComparator()); + + for (User user : users) { + + Role portosSupporto = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_supporto"); + + Role portosGeologo = RoleLocalServiceUtil.getRole(organization.getCompanyId(), Constants.ROLE_NAME_GEOLOGO); + + Role portosCalendario = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_calendario"); + + Role portosIstruttore = RoleLocalServiceUtil.getRole(organization.getCompanyId(), Constants.ROLE_NAME_ISTRUTTORE); + + if(!UserLocalServiceUtil.hasRoleUser(portosSupporto.getRoleId(), user.getUserId())){ + + boolean isCalendario = UserGroupRoleLocalServiceUtil.hasUserGroupRole( + user.getUserId(), organization.getGroupId(), portosCalendario.getRoleId()); + + boolean isIstruttore = UserGroupRoleLocalServiceUtil.hasUserGroupRole( + user.getUserId(), organization.getGroupId(), portosIstruttore.getRoleId()); + + boolean isGeologo = UserLocalServiceUtil.hasRoleUser(portosGeologo.getRoleId(), user.getUserId()); + + + if(isCalendario){ + JSONObject jsonFunzionario = JSONFactoryUtil.createJSONObject(); + jsonFunzionario.put("id", user.getUserId()); + jsonFunzionario.put("nome", user.getFirstName()); + jsonFunzionario.put("cognome", user.getLastName()); + + if(isIstruttore){ + jsonFunzionario.put("tipologia", "Istruttore"); + } else if(isGeologo){ + jsonFunzionario.put("tipologia", "Geologo"); + } else { + jsonFunzionario.put("tipologia", ""); } + + + + + json.put(jsonFunzionario); } } } - } catch (NumberFormatException | PortalException | SystemException e) { - _log.error(e, e); } - return json.toString(); + + } catch (NumberFormatException | SystemException e) { + _log.error(e,e); + } catch (PortalException e) { + _log.error(e,e); } -} -class UserComparator implements Comparator { + return json.toString(); + } - @Override - public int compare(User o1, User o2) { - int compareLastName = 0; - if (Validator.isNotNull(o1.getLastName()) && Validator.isNotNull(o2.getLastName())) - compareLastName = o1.getLastName().compareToIgnoreCase(o2.getLastName()); - if (compareLastName == 0 && Validator.isNotNull(o1.getFirstName()) && Validator.isNotNull(o2.getFirstName())) - compareLastName = o1.getFirstName().compareToIgnoreCase(o2.getFirstName()); +} + +//Bug 32935 +class UserComparator implements Comparator{ + @Override + public int compare(User o1, User o2) { + int compareLastName = 0; + + if(Validator.isNotNull(o1.getLastName()) && Validator.isNotNull(o2.getLastName())) + compareLastName = o1.getLastName().compareToIgnoreCase(o2.getLastName()); + + if(compareLastName == 0 && Validator.isNotNull(o1.getFirstName()) && Validator.isNotNull(o2.getFirstName())) + compareLastName = o1.getFirstName().compareToIgnoreCase(o2.getFirstName()); + return compareLastName; } } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/PrenotazioneLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/PrenotazioneLocalServiceImpl.java index b0bb7950..348c6ab2 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/PrenotazioneLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/PrenotazioneLocalServiceImpl.java @@ -1,9 +1,13 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation; either version + * 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. */ package it.tref.portos.calendar.appointments.service.impl; @@ -33,170 +37,196 @@ import com.liferay.portal.service.OrganizationLocalServiceUtil; import com.liferay.portal.service.RoleLocalServiceUtil; import com.liferay.portal.service.ServiceContext; import com.liferay.portal.service.UserGroupRoleLocalServiceUtil; +import com.liferay.portal.service.UserLocalServiceUtil; /** * The implementation of the prenotazione local service. + * *

- * All custom service methods should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy - * their definitions into the {@link it.tref.portos.calendar.appointments.service.PrenotazioneLocalService} interface. + * All custom service methods should be put in this class. Whenever methods are added, rerun + * ServiceBuilder to copy their definitions into the + * {@link it.tref.portos.calendar.appointments.service.PrenotazioneLocalService} interface. + * *

- * This is a local service. Methods of this service will not have security checks based on the propagated JAAS - * credentials because this service can only be accessed from within the same VM. + * This is a local service. Methods of this service will not have security checks based on the + * propagated JAAS credentials because this service can only be accessed from within the same VM. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting * @see it.tref.portos.calendar.appointments.service.base.PrenotazioneLocalServiceBaseImpl * @see it.tref.portos.calendar.appointments.service.PrenotazioneLocalServiceUtil */ public class PrenotazioneLocalServiceImpl extends PrenotazioneLocalServiceBaseImpl { - /* - * NOTE FOR DEVELOPERS: Never reference this interface directly. Always use {@link - * it.tref.portos.calendar.appointments.service.PrenotazioneLocalServiceUtil} to access the prenotazione local - * service. - */ - - @Override - public Prenotazione addPrenotazione(long userId, long funzionarioId, long professionistaId, Date startDate, - Date endDate, String descrizione, String telefono, String email, long presidio, - ServiceContext serviceContext) throws SystemException, PortalException { - - Prenotazione prenotazione = - prenotazionePersistence.create(counterLocalService.increment(Prenotazione.class.getName())); - User user = userPersistence.findByPrimaryKey(userId); - Date now = new Date(); - prenotazione.setCompanyId(serviceContext.getCompanyId()); - prenotazione.setUserId(user.getUserId()); - prenotazione.setUserName(user.getFullName()); - prenotazione.setCreateDate(serviceContext.getCreateDate(now)); - prenotazione.setModifiedDate(serviceContext.getModifiedDate(now)); - prenotazione.setGroupId(presidio); - prenotazione.setFunzionarioId(funzionarioId); - prenotazione.setProfessionistaId(professionistaId); - prenotazione.setStartDate(startDate); - prenotazione.setEndDate(endDate); - prenotazione.setDescLong(descrizione); - prenotazione.setTelefono(telefono); - prenotazione.setEmail(email); - prenotazione = updatePrenotazione(prenotazione); - return prenotazione; - } + /* + * NOTE FOR DEVELOPERS: + * + * Never reference this interface directly. Always use {@link + * it.tref.portos.calendar.appointments.service.PrenotazioneLocalServiceUtil} to access the + * prenotazione local service. + */ - @Override - public Prenotazione updatePrenotazione(long prenotazioneId, Date startDate, Date endDate, String descrizione, - ServiceContext serviceContext) throws SystemException, PortalException { - - Prenotazione prenotazione = prenotazionePersistence.findByPrimaryKey(prenotazioneId); - Date now = new Date(); - prenotazione.setModifiedDate(serviceContext.getModifiedDate(now)); - prenotazione.setStartDate(startDate); - prenotazione.setEndDate(endDate); - prenotazione.setDescLong(descrizione); - prenotazione = updatePrenotazione(prenotazione); - return prenotazione; - } +//Product Backlog Item 32934 + public Prenotazione addPrenotazione(long userId, long funzionarioId, long professionistaId, Date startDate, + Date endDate, String descrizione, String telefono, String email, long presidio, ServiceContext serviceContext) throws SystemException, PortalException { - @Override - public Prenotazione deletePrenotazione(Prenotazione prenotazione) throws SystemException { + Prenotazione prenotazione = + prenotazionePersistence.create(counterLocalService.increment(Prenotazione.class.getName())); - return super.deletePrenotazione(prenotazione); - } + User user = userPersistence.findByPrimaryKey(userId); - @Override - public Prenotazione deletePrenotazione(long prenotazioneId) throws PortalException, SystemException { + Date now = new Date(); - Prenotazione prenotazione = prenotazionePersistence.findByPrimaryKey(prenotazioneId); - return this.deletePrenotazione(prenotazione); - } + prenotazione.setCompanyId(serviceContext.getCompanyId()); + prenotazione.setUserId(user.getUserId()); + prenotazione.setUserName(user.getFullName()); + prenotazione.setCreateDate(serviceContext.getCreateDate(now)); + prenotazione.setModifiedDate(serviceContext.getModifiedDate(now)); + prenotazione.setGroupId(presidio); - @SuppressWarnings("unchecked") - @Override - public List findByStartDate(Date date) throws SystemException { + prenotazione.setFunzionarioId(funzionarioId); + prenotazione.setProfessionistaId(professionistaId); + prenotazione.setStartDate(startDate); + prenotazione.setEndDate(endDate); + prenotazione.setDescLong(descrizione); + + //Product Backlog Item 32934 + prenotazione.setTelefono(telefono); + prenotazione.setEmail(email); - Date start = DateUtils.truncate(date, java.util.Calendar.DAY_OF_MONTH); - Date end = DateUtils.addDays(start, 1); - DynamicQuery dynamicQuery = dynamicQuery(); - dynamicQuery.add(RestrictionsFactoryUtil.between("startDate", start, end)); - dynamicQuery.addOrder(OrderFactoryUtil.desc("funzionarioId")); - return prenotazionePersistence.findWithDynamicQuery(dynamicQuery); - } + prenotazione = prenotazioneLocalService.updatePrenotazione(prenotazione); - @SuppressWarnings("unchecked") - @Override - public List findByDateHourFunzionario(Date date, long funzionarioId, long groupId) - throws SystemException { + return prenotazione; + } - DynamicQuery dynamicQuery = dynamicQuery(); - dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); - dynamicQuery.add(RestrictionsFactoryUtil.eq("startDate", date)); - dynamicQuery.add(RestrictionsFactoryUtil.eq("groupId", groupId)); - return prenotazionePersistence.findWithDynamicQuery(dynamicQuery); - } + public Prenotazione updatePrenotazione(long prenotazioneId, Date startDate, Date endDate, String descrizione, + ServiceContext serviceContext) throws SystemException, PortalException { - @Override - public int getAvailableSlotByStartDate_EndDate(long funzionarioId, Date startDate, Date endDate) - throws SystemException { - - DynamicQuery dynamicQuery = dynamicQuery(); - dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); - Disjunction disjunction = RestrictionsFactoryUtil.disjunction(); - Conjunction conjunctionStart = RestrictionsFactoryUtil.conjunction(); - conjunctionStart.add(RestrictionsFactoryUtil.ge("startDate", startDate)); - conjunctionStart.add(RestrictionsFactoryUtil.lt("startDate", endDate)); - disjunction.add(conjunctionStart); - Conjunction conjunctionEnd = RestrictionsFactoryUtil.conjunction(); - conjunctionEnd.add(RestrictionsFactoryUtil.gt("endDate", startDate)); - conjunctionEnd.add(RestrictionsFactoryUtil.le("endDate", endDate)); - disjunction.add(conjunctionEnd); - dynamicQuery.add(disjunction); - return (int) prenotazionePersistence.countWithDynamicQuery(dynamicQuery); - } + Prenotazione prenotazione = prenotazionePersistence.findByPrimaryKey(prenotazioneId); + + Date now = new Date(); + + prenotazione.setModifiedDate(serviceContext.getModifiedDate(now)); + + prenotazione.setStartDate(startDate); + prenotazione.setEndDate(endDate); + prenotazione.setDescLong(descrizione); + + prenotazione = prenotazioneLocalService.updatePrenotazione(prenotazione); + + return prenotazione; + } + + @Override + public Prenotazione deletePrenotazione(Prenotazione prenotazione) throws SystemException { + + return super.deletePrenotazione(prenotazione); + } + + @Override + public Prenotazione deletePrenotazione(long prenotazioneId) throws PortalException, SystemException { + Prenotazione prenotazione = prenotazionePersistence.findByPrimaryKey(prenotazioneId); + return this.deletePrenotazione(prenotazione); + } + + public List findByStartDate(Date date) throws SystemException { + Date start = DateUtils.truncate(date, java.util.Calendar.DAY_OF_MONTH); + Date end = DateUtils.addDays(start, 1); + + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(RestrictionsFactoryUtil.between("startDate", start, end)); + dynamicQuery.addOrder(OrderFactoryUtil.desc("funzionarioId")); + return prenotazionePersistence.findWithDynamicQuery(dynamicQuery); + + } + + public List findByDateHourFunzionario(Date date, long funzionarioId, long groupId) throws SystemException { + + DynamicQuery dynamicQuery = dynamicQuery(); + + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); + dynamicQuery.add(RestrictionsFactoryUtil.eq("startDate", date)); + dynamicQuery.add(RestrictionsFactoryUtil.eq("groupId", groupId)); + + return prenotazionePersistence.findWithDynamicQuery(dynamicQuery); - @SuppressWarnings("unchecked") - @Override - public List findByFunzionario_StartDate(long funzionarioId, Date date, long groupId) - throws SystemException { - - Date start = DateUtils.truncate(date, Calendar.DAY_OF_MONTH); - Date end = DateUtils.addHours(start, 22); - DynamicQuery dynamicQuery = dynamicQuery(); - dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); - dynamicQuery.add(RestrictionsFactoryUtil.eq("groupId", groupId)); - dynamicQuery.add(RestrictionsFactoryUtil.ge("startDate", start)); - dynamicQuery.add(RestrictionsFactoryUtil.lt("endDate", end)); - return prenotazionePersistence.findWithDynamicQuery(dynamicQuery); } - @Override - public int countPrenotazioniPresidioPeriodo(long presidioId, String fromString, String toString) - throws SystemException, PortalException, ParseException { - - int count = 0; - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); - Date from = sdf.parse(fromString); - Date to = sdf.parse(toString); - Calendar fromCal = Calendar.getInstance(); - fromCal.setTime(from); - fromCal.set(Calendar.HOUR_OF_DAY, 2); - Calendar toCal = Calendar.getInstance(); - toCal.setTime(to); - toCal.set(Calendar.HOUR_OF_DAY, 22); - Organization org = OrganizationLocalServiceUtil.fetchOrganization(presidioId); - Role portosCalendario = RoleLocalServiceUtil.getRole(org.getCompanyId(), "portos_calendario"); - if (org != null) { - List users = userLocalService.getOrganizationUsers(presidioId); - for (User user : users) { - boolean isCalendario = - UserGroupRoleLocalServiceUtil.hasUserGroupRole(user.getUserId(), org.getGroupId(), - portosCalendario.getRoleId()); - if (isCalendario) { - DynamicQuery dynamicQuery = dynamicQuery(); + public int getAvailableSlotByStartDate_EndDate(long funzionarioId, Date startDate, Date endDate) + throws SystemException { + + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); + Disjunction disjunction = RestrictionsFactoryUtil.disjunction(); + Conjunction conjunctionStart = RestrictionsFactoryUtil.conjunction(); + conjunctionStart.add(RestrictionsFactoryUtil.ge("startDate", startDate)); + conjunctionStart.add(RestrictionsFactoryUtil.lt("startDate", endDate)); + disjunction.add(conjunctionStart); + Conjunction conjunctionEnd = RestrictionsFactoryUtil.conjunction(); + conjunctionEnd.add(RestrictionsFactoryUtil.gt("endDate", startDate)); + conjunctionEnd.add(RestrictionsFactoryUtil.le("endDate", endDate)); + disjunction.add(conjunctionEnd); + dynamicQuery.add(disjunction); + return (int) prenotazionePersistence.countWithDynamicQuery(dynamicQuery); + + } + + public List findByFunzionario_StartDate(long funzionarioId, Date date, long groupId) throws SystemException { + Date start = DateUtils.truncate(date, Calendar.DAY_OF_MONTH); + Date end = DateUtils.addHours(start, 22); + + DynamicQuery dynamicQuery = dynamicQuery(); + + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", funzionarioId)); + dynamicQuery.add(RestrictionsFactoryUtil.eq("groupId", groupId)); + dynamicQuery.add(RestrictionsFactoryUtil.ge("startDate", start)); + dynamicQuery.add(RestrictionsFactoryUtil.lt("endDate", end)); + + return prenotazionePersistence.findWithDynamicQuery(dynamicQuery); + } + + public int countPrenotazioniPresidioPeriodo(long presidioId, String fromString, String toString) throws SystemException, PortalException, ParseException{ + + int count = 0; + + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + + Date from = sdf.parse(fromString); + Date to = sdf.parse(toString); + + Calendar fromCal = Calendar.getInstance(); + fromCal.setTime(from); + fromCal.set(Calendar.HOUR_OF_DAY, 2); + + Calendar toCal = Calendar.getInstance(); + toCal.setTime(to); + toCal.set(Calendar.HOUR_OF_DAY, 22); + + + Organization org = OrganizationLocalServiceUtil.fetchOrganization(presidioId); + Role portosCalendario = RoleLocalServiceUtil.getRole(org.getCompanyId(), "portos_calendario"); + + if (org != null) { + + List users = UserLocalServiceUtil.getOrganizationUsers(presidioId); + for (User user : users) { + boolean isCalendario = UserGroupRoleLocalServiceUtil.hasUserGroupRole( + user.getUserId(), org.getGroupId(), portosCalendario.getRoleId()); + + if(isCalendario){ + + DynamicQuery dynamicQuery = dynamicQuery(); + dynamicQuery.add(RestrictionsFactoryUtil.eq("funzionarioId", user.getUserId())); dynamicQuery.add(RestrictionsFactoryUtil.between("startDate", fromCal.getTime(), toCal.getTime())); dynamicQuery.add(RestrictionsFactoryUtil.eq("groupId", org.getGroupId())); - count = count + ((int) prenotazionePersistence.countWithDynamicQuery(dynamicQuery)); - } + + count = count + ((int) prenotazionePersistence.countWithDynamicQuery(dynamicQuery)); + + } } } - return count; - } + + return count; + } + } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/PrenotazioneServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/PrenotazioneServiceImpl.java index b9831cea..0d684e64 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/PrenotazioneServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/PrenotazioneServiceImpl.java @@ -1,15 +1,20 @@ /** - * ù * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute - * it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. +ù * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation; either version + * 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. */ package it.tref.portos.calendar.appointments.service.impl; import it.tref.portos.calendar.appointments.SlotNotAvailableException; import it.tref.portos.calendar.appointments.model.Prenotazione; +import it.tref.portos.calendar.appointments.service.PrenotazioneLocalServiceUtil; import it.tref.portos.calendar.appointments.service.base.PrenotazioneServiceBaseImpl; import java.text.ParseException; @@ -34,139 +39,190 @@ import com.liferay.portal.service.OrganizationLocalServiceUtil; import com.liferay.portal.service.RoleLocalServiceUtil; import com.liferay.portal.service.ServiceContext; import com.liferay.portal.service.UserGroupRoleLocalServiceUtil; +import com.liferay.portal.service.UserLocalServiceUtil; /** * The implementation of the prenotazione remote service. + * *

- * All custom service methods should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy - * their definitions into the {@link it.tref.portos.calendar.appointments.service.PrenotazioneService} interface. + * All custom service methods should be put in this class. Whenever methods are added, rerun + * ServiceBuilder to copy their definitions into the + * {@link it.tref.portos.calendar.appointments.service.PrenotazioneService} interface. + * *

- * This is a remote service. Methods of this service are expected to have security checks based on the propagated JAAS - * credentials because this service can be accessed remotely. + * This is a remote service. Methods of this service are expected to have security checks based on + * the propagated JAAS credentials because this service can be accessed remotely. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting * @see it.tref.portos.calendar.appointments.service.base.PrenotazioneServiceBaseImpl * @see it.tref.portos.calendar.appointments.service.PrenotazioneServiceUtil */ public class PrenotazioneServiceImpl extends PrenotazioneServiceBaseImpl { /* - * NOTE FOR DEVELOPERS: Never reference this interface directly. Always use {@link - * it.tref.portos.calendar.appointments.service.PrenotazioneServiceUtil} to access the prenotazione remote service. + * NOTE FOR DEVELOPERS: + * + * Never reference this interface directly. Always use {@link + * it.tref.portos.calendar.appointments.service.PrenotazioneServiceUtil} to access the + * prenotazione remote service. */ - + private static Log _log = LogFactoryUtil.getLog(PrenotazioneServiceImpl.class); - @Override + //Product Backlog Item 32934 public void addPrenotazione(long userId, long funzionarioId, long professionistaId, Date startDate, Date endDate, - String descrizione, String telefono, String email, long presidio, ServiceContext serviceContext) - throws SystemException, PortalException { + String descrizione, String telefono, String email, long presidio, ServiceContext serviceContext) throws SystemException, PortalException { if (!isSlotAvailable(funzionarioId, startDate, endDate)) { throw new SlotNotAvailableException("slot not available"); } - prenotazioneLocalService.addPrenotazione(userId, funzionarioId, professionistaId, startDate, endDate, - descrizione, telefono, email, presidio, serviceContext); + //Product Backlog Item 32934 + prenotazioneLocalService.addPrenotazione(userId, funzionarioId, professionistaId, startDate, endDate, descrizione, telefono, email, presidio, + serviceContext); + } - @Override public void updatePrenotazione(long prenotazioneId, long userId, Date startDate, Date endDate, String descrizione, ServiceContext serviceContext) throws SystemException, PortalException { - Prenotazione prenotazione = prenotazioneLocalService.fetchPrenotazione(prenotazioneId); + Prenotazione prenotazione = PrenotazioneLocalServiceUtil.fetchPrenotazione(prenotazioneId); if (prenotazione.getUserId() != userId) { throw new SystemException("error.calendar.appointments.prenotazione.not.allowed.update " + prenotazioneId + " user " + userId); } prenotazioneLocalService.updatePrenotazione(prenotazioneId, startDate, endDate, descrizione, serviceContext); + } - @Override public void deletePrenotazione(long prenotazioneId, long userId) throws SystemException, PortalException { + Prenotazione prenotazione = PrenotazioneLocalServiceUtil.fetchPrenotazione(prenotazioneId); + + //Product Backlog Item 32933 +// if (prenotazione.getUserId() != userId) { +// throw new SystemException("error.calendar.appointments.prenotazione.not.allowed.update " + prenotazioneId +// + " user " + userId); +// } + prenotazioneLocalService.deletePrenotazione(prenotazioneId); } - @Override - public String getPrenotazioniByDate(String presidio, String date, String userId) throws SystemException, - ParseException { + public String getPrenotazioniByDate(String presidio, String date, String userId) throws SystemException, ParseException { long loggetUserId = Long.parseLong(userId); + Organization organization = OrganizationLocalServiceUtil.fetchOrganization(Long.valueOf(presidio)); + List userDefinitivo = new ArrayList(); + try { - if (organization != null) { - List users = userLocalService.getOrganizationUsers(Long.valueOf(presidio)); + + if(organization != null){ + List users = UserLocalServiceUtil.getOrganizationUsers(Long.valueOf(presidio)); + for (User user : users) { + Role portosSupporto = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_supporto"); - Role portosIstruttore = RoleLocalServiceUtil.getRole(organization.getCompanyId(), - "portos_calendario"); - if (!userLocalService.hasRoleUser(portosSupporto.getRoleId(), user.getUserId())) { - boolean isIstruttore = UserGroupRoleLocalServiceUtil.hasUserGroupRole(user.getUserId(), - organization.getGroupId(), portosIstruttore.getRoleId()); - if (isIstruttore) { + + Role portosIstruttore = RoleLocalServiceUtil.getRole(organization.getCompanyId(), "portos_calendario"); + + if(!UserLocalServiceUtil.hasRoleUser(portosSupporto.getRoleId(), user.getUserId())){ + + boolean isIstruttore = UserGroupRoleLocalServiceUtil.hasUserGroupRole( + user.getUserId(), organization.getGroupId(), portosIstruttore.getRoleId()); + + + if(isIstruttore){ userDefinitivo.add(user); } } } + } - } catch (NumberFormatException | PortalException | SystemException e) { - _log.error(e, e); - } + + } catch (NumberFormatException | SystemException e) { + _log.error(e,e); + } catch (PortalException e) { + _log.error(e,e); + } + Date startDate = new SimpleDateFormat("dd/MM/yyyy").parse(date); + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); + JSONArray json = JSONFactoryUtil.createJSONArray(); for (User funzionario : userDefinitivo) { - List prenotazioniByFunzionario = prenotazioneLocalService.findByFunzionario_StartDate( - funzionario.getUserId(), startDate, organization.getGroupId()); + + List prenotazioniByFunzionario = + prenotazioneLocalService.findByFunzionario_StartDate(funzionario.getUserId(), startDate, organization.getGroupId()); + if (prenotazioniByFunzionario.isEmpty()) { continue; } + JSONObject jsonFunzionario = JSONFactoryUtil.createJSONObject(); jsonFunzionario.put("idFunzionario", funzionario.getUserId()); jsonFunzionario.put("nomeFunzionario", funzionario.getFullName()); JSONArray jsonPrenotazioni = JSONFactoryUtil.createJSONArray(); + for (Prenotazione prenotazione : prenotazioniByFunzionario) { JSONObject jsonPrenotazione = JSONFactoryUtil.createJSONObject(); jsonPrenotazione.put("idPrenotazione", prenotazione.getPrenotazioneId()); jsonPrenotazione.put("inizio", sdf.format(prenotazione.getStartDate())); jsonPrenotazione.put("fine", sdf.format(prenotazione.getEndDate())); - User richiedente = userLocalService.fetchUser(prenotazione.getProfessionistaId()); - if (loggetUserId == prenotazione.getProfessionistaId()) { + + User richiedente = UserLocalServiceUtil.fetchUser(prenotazione.getProfessionistaId()); + + if(loggetUserId == prenotazione.getProfessionistaId()){ jsonPrenotazione.put("visible", true); } else { jsonPrenotazione.put("visible", canSeeFullInformations(loggetUserId)); + } + jsonPrenotazione.put("richiedente", richiedente.getFullName()); jsonPrenotazione.put("richiedenteId", prenotazione.getProfessionistaId()); jsonPrenotazione.put("descrizione", prenotazione.getDescLong()); + + //Product Backlog Item 32934 jsonPrenotazione.put("telefono", prenotazione.getTelefono()); jsonPrenotazione.put("email", prenotazione.getEmail()); + jsonPrenotazioni.put(jsonPrenotazione); } jsonFunzionario.put("prenotazioni", jsonPrenotazioni); json.put(jsonFunzionario); + } + return json.toString(); - } - private boolean canSeeFullInformations(long loggetUserId) throws SystemException { + } + + private boolean canSeeFullInformations(long loggetUserId) throws SystemException{ + boolean canDo = false; - User user = userLocalService.fetchUser(loggetUserId); - if (user != null) { + + User user = UserLocalServiceUtil.fetchUser(loggetUserId); + if(user != null){ Group siteBO = GroupLocalServiceUtil.fetchGroup(user.getCompanyId(), "Portos BackOffice"); + boolean isBoUser = GroupLocalServiceUtil.hasUserGroup(user.getUserId(), siteBO.getGroupId()); - if (isBoUser) { + + if(isBoUser){ canDo = true; } } + + return canDo; } - @Override public boolean isSlotAvailable(long funzionarioId, Date startDate, Date endDate) throws SystemException { return prenotazioneLocalService.getAvailableSlotByStartDate_EndDate(funzionarioId, startDate, endDate) == 0; } + + } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/ProfessionistaLocalServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/ProfessionistaLocalServiceImpl.java index 4ea95c40..7f3fc590 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/ProfessionistaLocalServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/ProfessionistaLocalServiceImpl.java @@ -1,9 +1,15 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. */ package it.tref.portos.calendar.appointments.service.impl; @@ -12,22 +18,23 @@ import it.tref.portos.calendar.appointments.service.base.ProfessionistaLocalServ /** * The implementation of the professionista local service. + * *

- * All custom service methods should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy - * their definitions into the {@link it.tref.portos.calendar.appointments.service.ProfessionistaLocalService} interface. + * All custom service methods should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy their definitions into the {@link it.tref.portos.calendar.appointments.service.ProfessionistaLocalService} interface. + * *

- * This is a local service. Methods of this service will not have security checks based on the propagated JAAS - * credentials because this service can only be accessed from within the same VM. + * This is a local service. Methods of this service will not have security checks based on the propagated JAAS credentials because this service can only be accessed from within the same VM. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting * @see it.tref.portos.calendar.appointments.service.base.ProfessionistaLocalServiceBaseImpl * @see it.tref.portos.calendar.appointments.service.ProfessionistaLocalServiceUtil */ -public class ProfessionistaLocalServiceImpl extends ProfessionistaLocalServiceBaseImpl { +public class ProfessionistaLocalServiceImpl + extends ProfessionistaLocalServiceBaseImpl { /* - * NOTE FOR DEVELOPERS: Never reference this interface directly. Always use {@link - * it.tref.portos.calendar.appointments.service.ProfessionistaLocalServiceUtil} to access the professionista local - * service. + * NOTE FOR DEVELOPERS: + * + * Never reference this interface directly. Always use {@link it.tref.portos.calendar.appointments.service.ProfessionistaLocalServiceUtil} to access the professionista local service. */ -} +} \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/ProfessionistaServiceImpl.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/ProfessionistaServiceImpl.java index 254b43c8..f595a387 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/ProfessionistaServiceImpl.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/service/impl/ProfessionistaServiceImpl.java @@ -1,9 +1,15 @@ /** - * Copyright (c) 2000-present Liferay, Inc. All rights reserved. This library is free software; you can redistribute it - * and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software - * Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in - * the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * Copyright (c) 2000-present Liferay, Inc. All rights reserved. + * + * This library is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the Free + * Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + * + * This library is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more + * details. */ package it.tref.portos.calendar.appointments.service.impl; @@ -12,22 +18,22 @@ import it.tref.portos.calendar.appointments.service.base.ProfessionistaServiceBa /** * The implementation of the professionista remote service. + * *

- * All custom service methods should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy - * their definitions into the {@link it.tref.portos.calendar.appointments.service.ProfessionistaService} interface. + * All custom service methods should be put in this class. Whenever methods are added, rerun ServiceBuilder to copy their definitions into the {@link it.tref.portos.calendar.appointments.service.ProfessionistaService} interface. + * *

- * This is a remote service. Methods of this service are expected to have security checks based on the propagated JAAS - * credentials because this service can be accessed remotely. + * This is a remote service. Methods of this service are expected to have security checks based on the propagated JAAS credentials because this service can be accessed remotely. *

* - * @author 3F Consulting + Manifattura Web Group s.r.l. + * @author 3F Consulting * @see it.tref.portos.calendar.appointments.service.base.ProfessionistaServiceBaseImpl * @see it.tref.portos.calendar.appointments.service.ProfessionistaServiceUtil */ public class ProfessionistaServiceImpl extends ProfessionistaServiceBaseImpl { /* - * NOTE FOR DEVELOPERS: Never reference this interface directly. Always use {@link - * it.tref.portos.calendar.appointments.service.ProfessionistaServiceUtil} to access the professionista remote - * service. + * NOTE FOR DEVELOPERS: + * + * Never reference this interface directly. Always use {@link it.tref.portos.calendar.appointments.service.ProfessionistaServiceUtil} to access the professionista remote service. */ -} +} \ No newline at end of file diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/util/CalendarUtil.java b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/util/CalendarUtil.java index 37cc5b1e..7788df18 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/util/CalendarUtil.java +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/WEB-INF/src/it/tref/portos/calendar/appointments/util/CalendarUtil.java @@ -5,6 +5,7 @@ import it.tref.portos.calendar.appointments.model.Prenotazione; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.regex.Matcher; @@ -13,6 +14,8 @@ import java.util.regex.Pattern; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; +import org.apache.log4j.net.TelnetAppender; + import com.liferay.mail.service.MailServiceUtil; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.mail.MailMessage; @@ -24,178 +27,174 @@ import com.liferay.util.portlet.PortletProps; public class CalendarUtil { - public static void inviaEmailRichiestaAppuntamento(long userIdProfessionista, long userIdFunzionario, - Date startDate, String telefono, String emailFeUser) throws SystemException, AddressException { - + public static void inviaEmailRichiestaAppuntamento(long userIdProfessionista, long userIdFunzionario, Date startDate, String telefono, String emailFeUser) throws SystemException, AddressException{ + User professionista = UserLocalServiceUtil.fetchUser(userIdProfessionista); User boUser = UserLocalServiceUtil.fetchUser(userIdFunzionario); - + InternetAddress fromAddress = new InternetAddress("portos@regione.toscana.it"); - InternetAddress toAddress = isAllowedEmailAddress(professionista.getEmailAddress()) ? new InternetAddress( - professionista.getEmailAddress()) : null; - InternetAddress bccAddress = isAllowedEmailAddress(boUser.getEmailAddress()) ? new InternetAddress( - boUser.getEmailAddress()) : null; - InternetAddress toAddressToFeUser = isAllowedEmailAddress(emailFeUser) ? new InternetAddress( - emailFeUser) : null; - + InternetAddress toAddress = isAllowedEmailAddress(professionista.getEmailAddress()) ? new InternetAddress(professionista.getEmailAddress()) : null; + InternetAddress bccAddress = isAllowedEmailAddress(boUser.getEmailAddress()) ? new InternetAddress(boUser.getEmailAddress()) : null; + InternetAddress toAddressToFeUser = isAllowedEmailAddress(emailFeUser) ? new InternetAddress(emailFeUser) : null; + MailMessage mailMessage = new MailMessage(); - - // Product Backlog Item 32934 + + //Product Backlog Item 32934 List toAddresses = new ArrayList(); - if (toAddress != null) + if(toAddress != null) toAddresses.add(toAddress); - - if (toAddressToFeUser != null) + + if(toAddressToFeUser != null) toAddresses.add(toAddressToFeUser); - - mailMessage.setTo(toAddresses.toArray(new InternetAddress[0])); - - mailMessage.setFrom(fromAddress); - - if (bccAddress != null) + + mailMessage.setTo(toAddresses.toArray(new InternetAddress[0])); + + mailMessage.setFrom(fromAddress); + + if(bccAddress != null) mailMessage.setBCC(bccAddress); - + mailMessage.setSubject("Notifica Richiesta Appuntamento Portos"); - mailMessage.setBody(creaCorpoMailRichiestaAppuntamento(professionista, boUser, startDate, telefono, - emailFeUser)); + mailMessage.setBody(creaCorpoMailRichiestaAppuntamento(professionista, boUser, startDate, telefono, emailFeUser)); mailMessage.setHTMLFormat(true); - + + + /* * Invio email */ MailServiceUtil.sendEmail(mailMessage); - + } - - public static void inviaEmailAnnullamentoAppuntamento(Prenotazione prenotazione) throws SystemException, - AddressException { - + + public static void inviaEmailAnnullamentoAppuntamento(Prenotazione prenotazione) throws SystemException, AddressException{ + User professionista = UserLocalServiceUtil.fetchUser(prenotazione.getProfessionistaId()); User boUser = UserLocalServiceUtil.fetchUser(prenotazione.getFunzionarioId()); - + InternetAddress fromAddress = new InternetAddress("portos@regione.toscana.it"); - InternetAddress toAddress = isAllowedEmailAddress(professionista.getEmailAddress()) ? new InternetAddress( - professionista.getEmailAddress()) : null; - InternetAddress bccAddress = isAllowedEmailAddress(boUser.getEmailAddress()) ? new InternetAddress( - boUser.getEmailAddress()) : null; - InternetAddress toAddressToFeUser = isAllowedEmailAddress(prenotazione.getEmail()) ? new InternetAddress( - prenotazione.getEmail()) : null; - + InternetAddress toAddress = isAllowedEmailAddress(professionista.getEmailAddress()) ? new InternetAddress(professionista.getEmailAddress()) : null; + InternetAddress bccAddress = isAllowedEmailAddress(boUser.getEmailAddress()) ? new InternetAddress(boUser.getEmailAddress()) : null; + InternetAddress toAddressToFeUser = isAllowedEmailAddress(prenotazione.getEmail()) ? new InternetAddress(prenotazione.getEmail()) : null; + MailMessage mailMessage = new MailMessage(); - - // Product Backlog Item 32934 + + //Product Backlog Item 32934 List toAddresses = new ArrayList(); - if (toAddress != null) + if(toAddress != null) toAddresses.add(toAddress); - - if (toAddressToFeUser != null) + + if(toAddressToFeUser != null) toAddresses.add(toAddressToFeUser); - - mailMessage.setTo(toAddresses.toArray(new InternetAddress[0])); - - mailMessage.setFrom(fromAddress); - - if (bccAddress != null) + + mailMessage.setTo(toAddresses.toArray(new InternetAddress[0])); + + mailMessage.setFrom(fromAddress); + + if(bccAddress != null) mailMessage.setBCC(bccAddress); - + mailMessage.setSubject("Notifica Annullamento Appuntamento Portos"); - mailMessage.setBody(creaCorpoMailAnnullamento(professionista, boUser, prenotazione.getStartDate())); + mailMessage.setBody(creaCorpoMailAnnullamento(professionista, boUser, prenotazione.getStartDate())); mailMessage.setHTMLFormat(true); - + /* * Invio email */ MailServiceUtil.sendEmail(mailMessage); - + } - - public static void inviaEmailReminderAppuntamenti(List lista, User userBo, Date tomorrow) - throws SystemException, AddressException { - - InternetAddress toAddress = isAllowedEmailAddress(userBo.getEmailAddress()) ? new InternetAddress( - userBo.getEmailAddress()) : null; + + + public static void inviaEmailReminderAppuntamenti(List lista, User userBo, Date tomorrow) throws SystemException, AddressException{ + + InternetAddress toAddress = isAllowedEmailAddress(userBo.getEmailAddress()) ? new InternetAddress(userBo.getEmailAddress()) : null; InternetAddress fromAddress = new InternetAddress("portos@regione.toscana.it"); - + MailMessage mailMessage = new MailMessage(); - mailMessage.setTo(toAddress); - mailMessage.setFrom(fromAddress); + mailMessage.setTo(toAddress); + mailMessage.setFrom(fromAddress); mailMessage.setSubject("Reminder appuntamenti Portos di domani"); - mailMessage.setBody(creaCorpoMailReminder(lista, userBo, tomorrow)); + mailMessage.setBody(creaCorpoMailReminder(lista,userBo, tomorrow)); mailMessage.setHTMLFormat(true); - + /* * Invio email */ MailServiceUtil.sendEmail(mailMessage); - + } - - private static String creaCorpoMailReminder(List lista, User boUser, Date tomorrow) - throws SystemException { - + + + private static String creaCorpoMailReminder(List lista , User boUser, Date tomorrow) throws SystemException{ + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); SimpleDateFormat sdfOra = new SimpleDateFormat("HH:mm"); - + StringBuilder sb = new StringBuilder(); - + /* * Gestione header */ - sb.append("Appuntamenti del " + sdf.format(tomorrow) + ""); - + sb.append("Appuntamenti del " + + sdf.format(tomorrow) + + ""); + sb.append("
"); sb.append("Gentile " + boUser.getFullName() + " ,"); sb.append("
"); - + sb.append("
"); sb.append("
"); - + sb.append("
"); sb.append("nella seguente email le ricordiamo i suoi appuntamenti per domani."); sb.append("
"); - + sb.append("
"); sb.append("
"); - + for (Prenotazione prenotazione : lista) { User professionistaUser = UserLocalServiceUtil.fetchUser(prenotazione.getProfessionistaId()); - + sb.append("
"); - sb.append("Ore " + sdfOra.format(prenotazione.getStartDate())); + sb.append("Ore " +sdfOra.format(prenotazione.getStartDate())); sb.append(" : appuntamento con " + professionistaUser.getFullName() + ". Motivo: "); sb.append(HtmlUtil.escape(prenotazione.getDescLong())); sb.append("
"); - + sb.append("
"); - + } - + + sb.append(""); - + return sb.toString(); } - - private static String creaCorpoMailRichiestaAppuntamento(User professionista, User boUser, - Date dataAppuntamento, String telefono, String mail) { - + + + private static String creaCorpoMailRichiestaAppuntamento(User professionista, User boUser, Date dataAppuntamento, String telefono, String mail){ + SimpleDateFormat sdfGiorno = new SimpleDateFormat("d MMMMM yyyy"); SimpleDateFormat sdfOra = new SimpleDateFormat("HH:mm"); - + + StringBuilder sb = new StringBuilder(); - + /* * Gestione header */ sb.append("Notifica Richiesta Appuntamento Portos"); - + sb.append("
"); sb.append("Gentile " + professionista.getFullName() + " ,"); sb.append("
"); - + sb.append("
"); sb.append("
"); - + sb.append("
"); sb.append("con la presente mail la informiamo che il suo appuntamento del "); sb.append(sdfGiorno.format(dataAppuntamento)); @@ -203,75 +202,74 @@ public class CalendarUtil { sb.append(" con " + boUser.getFullName()); sb.append(" è stato stato prenotato con successo."); sb.append("
"); - - // Product Backlog Item 32934 + + //Product Backlog Item 32934 sb.append("
Di seguito i recapiti che ha specificato:
"); sb.append("
Telefono: ").append(telefono).append("
"); sb.append("
Email: ").append(mail).append("
"); - + sb.append(""); - + return sb.toString(); } - - private static String creaCorpoMailAnnullamento(User professionista, User boUser, Date dataAppuntamento) { - + + private static String creaCorpoMailAnnullamento(User professionista, User boUser, Date dataAppuntamento){ + SimpleDateFormat sdfGiorno = new SimpleDateFormat("d MMMMM yyyy"); SimpleDateFormat sdfOra = new SimpleDateFormat("HH:mm"); - + + StringBuilder sb = new StringBuilder(); - + /* * Gestione header */ sb.append("Notifica Annullamento Appuntamento Portos"); - + sb.append("
"); sb.append("Gentile " + professionista.getFullName() + " ,"); sb.append("
"); - + sb.append("
"); sb.append("
"); - + sb.append("
"); sb.append("con la presente mail la informiamo che il suo appuntamento del "); sb.append(sdfGiorno.format(dataAppuntamento)); sb.append(" delle ore " + sdfOra.format(dataAppuntamento)); sb.append(" è stato annullato per sopraggiunti impedimenti del tecnico istruttore."); sb.append("
"); - + sb.append(""); - + return sb.toString(); } - - // Bug 32935 - public static int calculateTimeSlots(Date start, Date end, int slotInterval) { + + //Bug 32935 + public static int calculateTimeSlots(Date start, Date end, int slotInterval){ Long count = null; count = (((end.getTime() - start.getTime()) / 1000L) / 60L) / slotInterval + 1; return count.intValue(); } - - private static boolean isAllowedEmailAddress(String emailAddress) { - final String[] NOT_ALLOWED_EMAIL_DOMAINS = PortletProps - .getArray(PortletPropsKeys.EMAIL_DOMAINS_NOT_ALLOWED); - final Pattern VALID_EMAIL_ADDRESS_REGEX = Pattern.compile( - PortletProps.get(PortletPropsKeys.EMAIL_VALIDATOR_REGEXP), Pattern.CASE_INSENSITIVE); - + + private static boolean isAllowedEmailAddress(String emailAddress){ + final String[] NOT_ALLOWED_EMAIL_DOMAINS = PortletProps.getArray(PortletPropsKeys.EMAIL_DOMAINS_NOT_ALLOWED); + final Pattern VALID_EMAIL_ADDRESS_REGEX = Pattern.compile(PortletProps.get(PortletPropsKeys.EMAIL_VALIDATOR_REGEXP), Pattern.CASE_INSENSITIVE); + boolean isAllowed = true; - - if (Validator.isNotNull(emailAddress)) { + + if(Validator.isNotNull(emailAddress)){ Matcher matcher = VALID_EMAIL_ADDRESS_REGEX.matcher(emailAddress); isAllowed = matcher.find(); - + String emailDomain = emailAddress.substring(emailAddress.indexOf("@") + 1); - if (isAllowed && Arrays.asList(NOT_ALLOWED_EMAIL_DOMAINS).contains(emailDomain)) { + if(isAllowed && Arrays.asList(NOT_ALLOWED_EMAIL_DOMAINS).contains(emailDomain)){ isAllowed = false; } - } else { + }else{ isAllowed = false; } - + return isAllowed; } } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/init.jsp b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/init.jsp index 8e7e7acd..d654039d 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/init.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/init.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="java.util.ArrayList"%> <%@page import="com.liferay.portal.model.Role"%> <%@page import="com.liferay.portal.service.UserGroupRoleLocalServiceUtil"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/amministrazione.jsp b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/amministrazione.jsp index 4b1c0905..41d1262f 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/amministrazione.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/amministrazione.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="it.tref.portos.calendar.appointments.service.PrenotazioneLocalServiceUtil"%> <%@page import="com.liferay.portal.service.OrganizationLocalServiceUtil"%> <%@page import="com.liferay.portal.model.Organization"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/calendar.jsp b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/calendar.jsp index 2f0ab821..f373ee8e 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/calendar.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/calendar.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.liferay.portal.service.OrganizationLocalServiceUtil"%> <%@page import="com.liferay.portal.model.Organization"%> <%@page import="it.tref.portos.calendar.appointments.service.DisponibilitaLocalServiceUtil"%> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/gestione_disponibilita.jsp b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/gestione_disponibilita.jsp index 9a975ce9..dfc31ced 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/gestione_disponibilita.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/gestione_disponibilita.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.liferay.portal.service.UserLocalServiceUtil"%> <%@page import="it.tref.portos.calendar.appointments.service.PrenotazioneLocalServiceUtil"%> <%@page import="it.tref.portos.calendar.appointments.service.DisponibilitaLocalServiceUtil"%> @@ -6,34 +5,46 @@ <%@page import="javax.portlet.PortletURL"%> <%@page import="java.util.Calendar"%> <%@ include file="/html/calendar_appointments/init.jsp" %> + <% Calendar cal = Calendar.getInstance(); // locale-specific cal.set(Calendar.HOUR_OF_DAY, 8); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); + SimpleDateFormat sdfGiorno = new SimpleDateFormat("d MMMMM yyyy"); SimpleDateFormat sdfOra = new SimpleDateFormat("HH:mm"); + PortletURL iteratorURLMie = liferayPortletResponse.createRenderURL(); iteratorURLMie.setParameter("tabs1", tabs1); + + String provinciaRicerca = ParamUtil.getString(request, "presidio_user_select", "-1"); String funzionarioIdRicerca = ParamUtil.getString(request, "funzionarioId", "-1"); + + PortletURL iteratorURLAltri = liferayPortletResponse.createRenderURL(); iteratorURLAltri.setParameter("tabs1", tabs1); iteratorURLAltri.setParameter("presidio_user_select", provinciaRicerca); iteratorURLAltri.setParameter("funzionarioId", funzionarioIdRicerca); + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + %> + - + + +
- - + +
@@ -145,7 +156,7 @@ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
- +
@@ -251,7 +262,7 @@ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
- +
@@ -272,7 +283,7 @@ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); className="it.tref.portos.calendar.appointments.model.Disponibilita" modelVar="disponibilita" > - + <% out.print(sdfGiorno.format(disponibilita.getStartDate()) + " dalle " + sdfOra.format(disponibilita.getStartDate()) + " alle " + sdfOra.format(disponibilita.getEndDate())); %> @@ -292,7 +303,7 @@ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); <% if(disponibilita.isDisponibile()){ - out.print("Sì"); + out.print("Si"); } else { out.print("No"); } @@ -316,7 +327,7 @@ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
- + @@ -383,7 +394,7 @@ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); out.print(funzionario.getFullName()); %> - + <% out.print(sdfGiorno.format(disponibilita.getStartDate()) + " dalle " + sdfOra.format(disponibilita.getStartDate()) + " alle " + sdfOra.format(disponibilita.getEndDate())); %> @@ -403,7 +414,7 @@ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); <% if(disponibilita.isDisponibile()){ - out.print("Sì"); + out.print("Si"); } else { out.print("No"); } diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/gestione_disponibilita_action.jsp b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/gestione_disponibilita_action.jsp index 5815f9f3..c732457f 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/gestione_disponibilita_action.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/tabs/gestione_disponibilita_action.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="it.tref.portos.calendar.appointments.model.Disponibilita"%> <%@ include file="/html/calendar_appointments/init.jsp" %> diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/view.jsp b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/view.jsp index b8d77306..161d8081 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/view.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/calendar_appointments/view.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="com.liferay.portal.service.GroupLocalServiceUtil"%> <%@ include file="/html/calendar_appointments/init.jsp" %> <% diff --git a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/init.jsp b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/init.jsp index 11c883c0..f3db762d 100644 --- a/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/init.jsp +++ b/liferay-plugins-sdk-6.2/portlets/portos-calendar-appointments-portlet/docroot/html/init.jsp @@ -1,4 +1,3 @@ -<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="java.text.Format"%> <%@page import="com.liferay.portal.kernel.util.FastDateFormatFactoryUtil"%> <%@page import="com.liferay.portal.kernel.util.StringUtil"%>