package edu.ualberta.med.biobank.common.wrappers; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.List; import edu.ualberta.med.biobank.common.formatters.DateFormatter; import edu.ualberta.med.biobank.common.peer.ShipmentInfoPeer; import edu.ualberta.med.biobank.common.wrappers.base.ShipmentInfoBaseWrapper; import edu.ualberta.med.biobank.model.ShipmentInfo; import gov.nih.nci.system.applicationservice.ApplicationException; import gov.nih.nci.system.applicationservice.WritableApplicationService; import gov.nih.nci.system.query.hibernate.HQLCriteria; public class ShipmentInfoWrapper extends ShipmentInfoBaseWrapper { public ShipmentInfoWrapper(WritableApplicationService appService) { super(appService); } public ShipmentInfoWrapper(WritableApplicationService appService, ShipmentInfo ship) { super(appService, ship); } public String getFormattedDateReceived() { return DateFormatter.formatAsDateTime(getReceivedAt()); } public String getFormattedDatePacked() { return DateFormatter.formatAsDateTime(getPackedAt()); } @Override public int compareTo(ModelWrapper<ShipmentInfo> wrapper) { if (wrapper instanceof ShipmentInfoWrapper) { Date v1Date = wrappedObject.getReceivedAt(); Date v2Date = wrapper.wrappedObject.getReceivedAt(); if (v1Date != null && v2Date != null) { return v1Date.compareTo(v2Date); } } return 0; } @Override public String toString() { String s = getFormattedDateReceived(); if (getWaybill() != null) { s += " (" + getWaybill() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ } return s; } public boolean isReceivedToday() { Calendar cal = Calendar.getInstance(); // yesterday midnight cal.set(Calendar.AM_PM, Calendar.AM); cal.set(Calendar.HOUR, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); Date startDate = cal.getTime(); // today midnight cal.add(Calendar.DATE, 1); Date endDate = cal.getTime(); Date dateReveived = getReceivedAt(); return dateReveived.compareTo(startDate) >= 0 && dateReveived.compareTo(endDate) <= 0; } private static final String ALL_SHIP_INFOS_BY_METHOD = "from " //$NON-NLS-1$ + ShipmentInfo.class.getName() + " ship where ship." //$NON-NLS-1$ + ShipmentInfoPeer.SHIPPING_METHOD.getName() + "=?"; //$NON-NLS-1$ public static List<ShipmentInfoWrapper> getAllShipmentInfosByMethod( WritableApplicationService appService, ShippingMethodWrapper method) throws ApplicationException { HQLCriteria c = new HQLCriteria(ALL_SHIP_INFOS_BY_METHOD, Arrays.asList(method.getWrappedObject())); List<ShipmentInfoWrapper> ships = appService.query(c); return ships; } }