|
|
|
@ -33,6 +33,7 @@ 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. |
|
|
|
@ -55,43 +56,54 @@ public class PrenotazioneLocalServiceImpl extends PrenotazioneLocalServiceBaseIm
|
|
|
|
|
* service. |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
//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 { |
|
|
|
|
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); |
|
|
|
|
|
|
|
|
|
//Product Backlog Item 32934
|
|
|
|
|
prenotazione.setTelefono(telefono); |
|
|
|
|
prenotazione.setEmail(email); |
|
|
|
|
prenotazione = updatePrenotazione(prenotazione); |
|
|
|
|
|
|
|
|
|
prenotazione = prenotazioneLocalService.updatePrenotazione(prenotazione); |
|
|
|
|
|
|
|
|
|
return prenotazione; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@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); |
|
|
|
|
|
|
|
|
|
prenotazione = prenotazioneLocalService.updatePrenotazione(prenotazione); |
|
|
|
|
|
|
|
|
|
return prenotazione; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -108,31 +120,29 @@ public class PrenotazioneLocalServiceImpl extends PrenotazioneLocalServiceBaseIm
|
|
|
|
|
return this.deletePrenotazione(prenotazione); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
|
@Override |
|
|
|
|
public List<Prenotazione> 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); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
|
@Override |
|
|
|
|
public List<Prenotazione> findByDateHourFunzionario(Date date, long funzionarioId, long groupId) |
|
|
|
|
throws SystemException { |
|
|
|
|
public List<Prenotazione> 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); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public int getAvailableSlotByStartDate_EndDate(long funzionarioId, Date startDate, Date endDate) |
|
|
|
|
throws SystemException { |
|
|
|
|
|
|
|
|
@ -151,45 +161,54 @@ public class PrenotazioneLocalServiceImpl extends PrenotazioneLocalServiceBaseIm
|
|
|
|
|
return (int) prenotazionePersistence.countWithDynamicQuery(dynamicQuery); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked") |
|
|
|
|
@Override |
|
|
|
|
public List<Prenotazione> findByFunzionario_StartDate(long funzionarioId, Date date, long groupId) |
|
|
|
|
throws SystemException { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public List<Prenotazione> 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 { |
|
|
|
|
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<User> users = userLocalService.getOrganizationUsers(presidioId); |
|
|
|
|
|
|
|
|
|
List<User> users = UserLocalServiceUtil.getOrganizationUsers(presidioId); |
|
|
|
|
for (User user : users) { |
|
|
|
|
boolean isCalendario = |
|
|
|
|
UserGroupRoleLocalServiceUtil.hasUserGroupRole(user.getUserId(), org.getGroupId(), |
|
|
|
|
portosCalendario.getRoleId()); |
|
|
|
|
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())); |
|
|
|
|