r45 - in trunk: faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search
Author: echatellier Date: 2014-04-24 18:26:22 +0200 (Thu, 24 Apr 2014) New Revision: 45 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/45 Log: fixes #4659: [ECRAN] Recherche Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailFilter.java trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.jaxx trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailFilter.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailFilter.java 2014-04-24 13:40:54 UTC (rev 44) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailFilter.java 2014-04-24 16:26:22 UTC (rev 45) @@ -15,7 +15,7 @@ private static final long serialVersionUID = 7039570396201559352L; public static final String PROPERTY_SENDER = "sender"; - public static final String PROPERTY_RECIPIENT = "recipient"; + //public static final String PROPERTY_RECIPIENT = "recipient"; public static final String PROPERTY_SUBJECT = "subject"; public static final String PROPERTY_MESSAGE = "message"; public static final String PROPERTY_BODY = "body"; @@ -47,7 +47,7 @@ protected String sender; - protected String recipient; + //protected String recipient; protected String subject; @@ -115,7 +115,7 @@ firePropertyChange(PROPERTY_SENDER, oldValue, sender); } - public String getRecipient() { + /*public String getRecipient() { return recipient; } @@ -123,7 +123,7 @@ String oldValue = this.recipient; this.recipient = recipient; firePropertyChange(PROPERTY_RECIPIENT, oldValue, recipient); - } + }*/ public String getSubject() { return subject; @@ -369,7 +369,7 @@ return minTransferDate; } - public void setMinTranferDate(Date minTransferDate) { + public void setMinTransferDate(Date minTransferDate) { Date oldValue = this.minTransferDate; this.minTransferDate = minTransferDate; firePropertyChange(PROPERTY_MIN_TRANSFER_DATE, oldValue, minTransferDate); @@ -399,7 +399,7 @@ return maxArchivedDate; } - public void setMaxArchiveDate(Date maxArchiveDate) { + public void setMaxArchivedDate(Date maxArchivedDate) { Date oldValue = this.maxArchivedDate; this.maxArchivedDate = maxArchivedDate; firePropertyChange(PROPERTY_MAX_ARCHIVED_DATE, oldValue, maxArchivedDate); Modified: trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java =================================================================== --- trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-04-24 13:40:54 UTC (rev 44) +++ trunk/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java 2014-04-24 16:26:22 UTC (rev 45) @@ -96,29 +96,17 @@ query.append(" WHERE 1 = 1"); Map<String, Object> args = new HashMap<>(); - // email subject - if (StringUtils.isNotBlank(emailFilter.getSubject())) { - query.append(" AND lower(E." + Email.PROPERTY_SUBJECT + ") LIKE lower(:" + EmailFilter.PROPERTY_SUBJECT + ")"); - args.put(EmailFilter.PROPERTY_SUBJECT, "%" + emailFilter.getSubject() + "%"); + // email minReceptionDate + if (emailFilter.getMinReceptionDate() != null) { + query.append(" AND E." + Email.PROPERTY_RECEPTION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_RECEPTION_DATE); + args.put(EmailFilter.PROPERTY_MIN_RECEPTION_DATE, emailFilter.getMinReceptionDate()); } - // email sender - if (StringUtils.isNotBlank(emailFilter.getSender())) { - query.append(" AND lower(E." + Email.PROPERTY_SENDER + ") LIKE lower(:" + EmailFilter.PROPERTY_SENDER + ")"); - args.put(EmailFilter.PROPERTY_SENDER, "%" + emailFilter.getSender() + "%"); + // email maxReceptionDate + if (emailFilter.getMaxReceptionDate() != null) { + query.append(" AND E." + Email.PROPERTY_RECEPTION_DATE + " <= :" + EmailFilter.PROPERTY_MAX_RECEPTION_DATE); + args.put(EmailFilter.PROPERTY_MAX_RECEPTION_DATE, emailFilter.getMaxReceptionDate()); } - - // email recipient - if (StringUtils.isNotBlank(emailFilter.getRecipient())) { - query.append(" AND lower(E." + Email.PROPERTY_RECIPIENT + ") LIKE lower(:" + EmailFilter.PROPERTY_RECIPIENT + ")"); - args.put(EmailFilter.PROPERTY_RECIPIENT, "%" + emailFilter.getRecipient() + "%"); - } - - // email etat attente - if (emailFilter.getEtatAttente() != null) { - query.append(" AND E." + Email.PROPERTY_ETAT_ATTENTE + " = :" + EmailFilter.PROPERTY_ETAT_ATTENTE); - args.put(EmailFilter.PROPERTY_ETAT_ATTENTE, emailFilter.getEtatAttente()); - } // email taken by if (emailFilter.getTakenBy() != null) { @@ -126,24 +114,158 @@ args.put(EmailFilter.PROPERTY_TAKEN_BY, emailFilter.getTakenBy()); } - // email priority - if (emailFilter.getPriority() != null) { - query.append(" AND E." + Email.PROPERTY_PRIORITY + " = :" + EmailFilter.PROPERTY_PRIORITY); - args.put(EmailFilter.PROPERTY_PRIORITY, emailFilter.getPriority()); + // history minModificationDate && modifiedBy + if (emailFilter.getMinModificationDate() != null || emailFilter.getModifiedBy() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :modificationType"); + args.put("modificationType", HistoryType.MODIFICATION); + if (emailFilter.getMinModificationDate() != null) { + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_MODIFICATION_DATE); + args.put(EmailFilter.PROPERTY_MIN_MODIFICATION_DATE, emailFilter.getMinModificationDate()); + } + if (emailFilter.getModifiedBy() != null) { + query.append(" AND H." + History.PROPERTY_FAX_TO_MAIL_USER + " = :" + EmailFilter.PROPERTY_MODIFIED_BY); + args.put(EmailFilter.PROPERTY_MODIFIED_BY, emailFilter.getModifiedBy()); + } + query.append(")"); } + // history maxModificationDate && modifiedBy + if (emailFilter.getMaxModificationDate() != null || emailFilter.getModifiedBy() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :modificationType"); + args.put("modificationType", HistoryType.MODIFICATION); + if (emailFilter.getMaxModificationDate() != null) { + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " <= :" + EmailFilter.PROPERTY_MAX_MODIFICATION_DATE); + args.put(EmailFilter.PROPERTY_MAX_MODIFICATION_DATE, emailFilter.getMaxModificationDate()); + } + if (emailFilter.getModifiedBy() != null) { + query.append(" AND H." + History.PROPERTY_FAX_TO_MAIL_USER + " = :" + EmailFilter.PROPERTY_MODIFIED_BY); + args.put(EmailFilter.PROPERTY_MODIFIED_BY, emailFilter.getModifiedBy()); + } + query.append(")"); + } + + // history minTransferDate && transferBy + if (emailFilter.getMinTransferDate() != null || emailFilter.getTransferBy() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :transmissionType"); + args.put("transmissionType", HistoryType.TRANSMISSION); + if (emailFilter.getMinTransferDate() != null) { + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_TRANSFER_DATE); + args.put(EmailFilter.PROPERTY_MIN_TRANSFER_DATE, emailFilter.getMinTransferDate()); + } + if (emailFilter.getTransferBy() != null) { + query.append(" AND H." + History.PROPERTY_FAX_TO_MAIL_USER + " = :" + EmailFilter.PROPERTY_TRANSFER_BY); + args.put(EmailFilter.PROPERTY_TRANSFER_BY, emailFilter.getTransferBy()); + } + query.append(")"); + } + + // history maxTransferDate && transferBy + if (emailFilter.getMaxTransferDate() != null || emailFilter.getTransferBy() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :transmissionType"); + args.put("transmissionType", HistoryType.TRANSMISSION); + if (emailFilter.getMaxTransferDate() != null) { + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " <= :" + EmailFilter.PROPERTY_MAX_TRANSFER_DATE); + args.put(EmailFilter.PROPERTY_MAX_TRANSFER_DATE, emailFilter.getMaxTransferDate()); + } + if (emailFilter.getTransferBy() != null) { + query.append(" AND H." + History.PROPERTY_FAX_TO_MAIL_USER + " = :" + EmailFilter.PROPERTY_TRANSFER_BY); + args.put(EmailFilter.PROPERTY_TRANSFER_BY, emailFilter.getTransferBy()); + } + query.append(")"); + } + + // history minArchivedDate && transferBy + if (emailFilter.getMinArchivedDate() != null || emailFilter.getArchivedBy() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :archivedType"); + args.put("archivedType", HistoryType.ARCHIVED); + if (emailFilter.getMinArchivedDate() != null) { + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_ARCHIVED_DATE); + args.put(EmailFilter.PROPERTY_MIN_ARCHIVED_DATE, emailFilter.getMinArchivedDate()); + } + if (emailFilter.getArchivedBy() != null) { + query.append(" AND H." + History.PROPERTY_FAX_TO_MAIL_USER + " = :" + EmailFilter.PROPERTY_ARCHIVED_BY); + args.put(EmailFilter.PROPERTY_ARCHIVED_BY, emailFilter.getArchivedBy()); + } + query.append(")"); + } + + // history maxArchivedDate && transferBy + if (emailFilter.getMaxArchivedDate() != null || emailFilter.getArchivedBy() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :transmissionType"); + args.put("transmissionType", HistoryType.TRANSMISSION); + if (emailFilter.getMaxArchivedDate() != null) { + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " <= :" + EmailFilter.PROPERTY_MAX_ARCHIVED_DATE); + args.put(EmailFilter.PROPERTY_MAX_ARCHIVED_DATE, emailFilter.getMaxArchivedDate()); + } + if (emailFilter.getArchivedBy() != null) { + query.append(" AND H." + History.PROPERTY_FAX_TO_MAIL_USER + " = :" + EmailFilter.PROPERTY_ARCHIVED_BY); + args.put(EmailFilter.PROPERTY_ARCHIVED_BY, emailFilter.getArchivedBy()); + } + query.append(")"); + } + + // email minPrintingDate + if (emailFilter.getMinPrintingDate() != null || emailFilter.getPrintingBy() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :printingType"); + args.put("printingType", HistoryType.PRINTING); + if (emailFilter.getMinPrintingDate() != null) { + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_PRINTING_DATE); + args.put(EmailFilter.PROPERTY_MIN_PRINTING_DATE, emailFilter.getMinPrintingDate()); + } + if (emailFilter.getPrintingBy() != null) { + query.append(" AND H." + History.PROPERTY_FAX_TO_MAIL_USER + " = :" + EmailFilter.PROPERTY_PRINTING_BY); + args.put(EmailFilter.PROPERTY_PRINTING_BY, emailFilter.getPrintingBy()); + } + query.append(")"); + } + + // email maxPrintingDate + if (emailFilter.getMaxPrintingDate() != null || emailFilter.getPrintingBy() != null) { + query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); + query.append(" AND H." + History.PROPERTY_TYPE + " = :printingType"); + args.put("printingType", HistoryType.PRINTING); + if (emailFilter.getMaxPrintingDate() != null) { + query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " <= :" + EmailFilter.PROPERTY_MAX_PRINTING_DATE); + args.put(EmailFilter.PROPERTY_MAX_PRINTING_DATE, emailFilter.getMaxPrintingDate()); + } + if (emailFilter.getPrintingBy() != null) { + query.append(" AND H." + History.PROPERTY_FAX_TO_MAIL_USER + " = :" + EmailFilter.PROPERTY_PRINTING_BY); + args.put(EmailFilter.PROPERTY_PRINTING_BY, emailFilter.getPrintingBy()); + } + query.append(")"); + } + + // email sender + if (StringUtils.isNotBlank(emailFilter.getSender())) { + query.append(" AND lower(E." + Email.PROPERTY_SENDER + ") LIKE lower(:" + EmailFilter.PROPERTY_SENDER + ")"); + args.put(EmailFilter.PROPERTY_SENDER, "%" + emailFilter.getSender() + "%"); + } + + // client code + if (StringUtils.isNoneBlank(emailFilter.getClientCode())) { + query.append(" AND lower(E." + Email.PROPERTY_CLIENT + "." + Client.PROPERTY_CODE + ") LIKE lower(:" + EmailFilter.PROPERTY_CLIENT_CODE + ")"); + args.put(EmailFilter.PROPERTY_CLIENT_CODE, "%" + emailFilter.getClientCode() + "%"); + } + + // email subject + if (StringUtils.isNotBlank(emailFilter.getSubject())) { + query.append(" AND lower(E." + Email.PROPERTY_SUBJECT + ") LIKE lower(:" + EmailFilter.PROPERTY_SUBJECT + ")"); + args.put(EmailFilter.PROPERTY_SUBJECT, "%" + emailFilter.getSubject() + "%"); + } + // email demand type if (emailFilter.getDemandType() != null) { query.append(" AND E." + Email.PROPERTY_DEMAND_TYPE + " = :" + EmailFilter.PROPERTY_DEMAND_TYPE); args.put(EmailFilter.PROPERTY_DEMAND_TYPE, emailFilter.getDemandType()); } - // email demand status - if (emailFilter.getDemandStatus() != null) { - query.append(" AND E." + Email.PROPERTY_DEMAND_STATUS + " = :" + EmailFilter.PROPERTY_DEMAND_STATUS); - args.put(EmailFilter.PROPERTY_DEMAND_STATUS, emailFilter.getDemandStatus()); - } - // email ediCodeNumber if (StringUtils.isNotBlank(emailFilter.getEdiCodeNumber())) { query.append(" AND lower(E." + Email.PROPERTY_EDI_CODE_NUMBER + ") LIKE lower(:" + EmailFilter.PROPERTY_EDI_CODE_NUMBER + ")"); @@ -156,64 +278,62 @@ args.put(EmailFilter.PROPERTY_PROJECT_REFERENCE, "%" + emailFilter.getProjectReference() + "%"); } - // history modifiedBy - if (emailFilter.getModifiedBy() != null) { - query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H." + History.PROPERTY_FAX_TO_MAIL_USER + " = :" + EmailFilter.PROPERTY_MODIFIED_BY + ")"); - args.put(EmailFilter.PROPERTY_MODIFIED_BY, emailFilter.getModifiedBy()); + // email localReference + if (StringUtils.isNotBlank(emailFilter.getLocalReference())) { + query.append(" AND lower(E." + Email.PROPERTY_COMPANY_REFERENCE + ") LIKE lower(:" + EmailFilter.PROPERTY_LOCAL_REFERENCE + ")"); + args.put(EmailFilter.PROPERTY_LOCAL_REFERENCE, "%" + emailFilter.getLocalReference() + "%"); } - // email minModificationDate - if (emailFilter.getMinModificationDate() != null) { - query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); - query.append(" AND H." + History.PROPERTY_TYPE + " = :modificationType"); - query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_MODIFICATION_DATE + ")"); - args.put("modificationType", HistoryType.MODIFICATION); - args.put(EmailFilter.PROPERTY_MIN_MODIFICATION_DATE, emailFilter.getMinModificationDate()); + // email priority + if (emailFilter.getPriority() != null) { + query.append(" AND E." + Email.PROPERTY_PRIORITY + " = :" + EmailFilter.PROPERTY_PRIORITY); + args.put(EmailFilter.PROPERTY_PRIORITY, emailFilter.getPriority()); } - // email maxModificationDate - if (emailFilter.getMaxModificationDate() != null) { - query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); - query.append(" AND H." + History.PROPERTY_TYPE + " = :modificationType"); - query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " <= :" + EmailFilter.PROPERTY_MAX_MODIFICATION_DATE + ")"); - args.put("modificationType", HistoryType.MODIFICATION); - args.put(EmailFilter.PROPERTY_MAX_MODIFICATION_DATE, emailFilter.getMaxModificationDate()); + // email demand status + if (emailFilter.getDemandStatus() != null) { + query.append(" AND E." + Email.PROPERTY_DEMAND_STATUS + " = :" + EmailFilter.PROPERTY_DEMAND_STATUS); + args.put(EmailFilter.PROPERTY_DEMAND_STATUS, emailFilter.getDemandStatus()); } - // email minReceptionDate - if (emailFilter.getMinReceptionDate() != null) { - query.append(" AND E." + Email.PROPERTY_RECEPTION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_RECEPTION_DATE); - args.put(EmailFilter.PROPERTY_MIN_RECEPTION_DATE, emailFilter.getMinReceptionDate()); + // email recipient + /*if (StringUtils.isNotBlank(emailFilter.getRecipient())) { + query.append(" AND lower(E." + Email.PROPERTY_RECIPIENT + ") LIKE lower(:" + EmailFilter.PROPERTY_RECIPIENT + ")"); + args.put(EmailFilter.PROPERTY_RECIPIENT, "%" + emailFilter.getRecipient() + "%"); + }*/ + + // email etat attente + if (emailFilter.getEtatAttente() != null) { + query.append(" AND E." + Email.PROPERTY_ETAT_ATTENTE + " = :" + EmailFilter.PROPERTY_ETAT_ATTENTE); + args.put(EmailFilter.PROPERTY_ETAT_ATTENTE, emailFilter.getEtatAttente()); } - // email maxReceptionDate - if (emailFilter.getMaxReceptionDate() != null) { - query.append(" AND E." + Email.PROPERTY_RECEPTION_DATE + " <= :" + EmailFilter.PROPERTY_MAX_RECEPTION_DATE); - args.put(EmailFilter.PROPERTY_MAX_RECEPTION_DATE, emailFilter.getMaxReceptionDate()); + // email comment + if (StringUtils.isNotBlank(emailFilter.getMessage())) { + query.append(" AND lower(E." + Email.PROPERTY_COMMENT + ") LIKE lower(:" + EmailFilter.PROPERTY_MESSAGE + ")"); + args.put(EmailFilter.PROPERTY_MESSAGE, "%" + emailFilter.getMessage() + "%"); } - // email minPrintingDate - if (emailFilter.getMinPrintingDate() != null) { - query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); - query.append(" AND H." + History.PROPERTY_TYPE + " = :printingType"); - query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " >= :" + EmailFilter.PROPERTY_MIN_PRINTING_DATE + ")"); - args.put("printingType", HistoryType.PRINTING); - args.put(EmailFilter.PROPERTY_MIN_PRINTING_DATE, emailFilter.getMinPrintingDate()); + // email gamme + if (emailFilter.getGamme() != null) { + query.append(" AND EXISTS (FROM " + RangeRow.class.getName() + " RR WHERE RR in elements(E." + Email.PROPERTY_RANGE_ROW + ")"); + query.append(" AND RR." + RangeRow.PROPERTY_RANGE + " = :" + EmailFilter.PROPERTY_GAMME); + args.put(EmailFilter.PROPERTY_GAMME, emailFilter.getGamme()); + query.append(")"); } - // email maxPrintingDate - if (emailFilter.getMaxPrintingDate() != null) { - query.append(" AND EXISTS (FROM " + History.class.getName() + " H WHERE H in elements(E." + Email.PROPERTY_HISTORY + ")"); - query.append(" AND H." + History.PROPERTY_TYPE + " = :printingType"); - query.append(" AND H." + History.PROPERTY_MODIFICATION_DATE + " >= :" + EmailFilter.PROPERTY_MAX_PRINTING_DATE + ")"); - args.put("printingType", HistoryType.PRINTING); - args.put(EmailFilter.PROPERTY_MAX_PRINTING_DATE, emailFilter.getMaxPrintingDate()); + // email comment + if (StringUtils.isNotBlank(emailFilter.getBody())) { + query.append(" AND lower(E." + Email.PROPERTY_HTML_CONTENT + ") LIKE lower(:" + EmailFilter.PROPERTY_BODY + ")"); + args.put(EmailFilter.PROPERTY_BODY, "%" + emailFilter.getBody() + "%"); } - // client code - if (StringUtils.isNoneBlank(emailFilter.getClientCode())) { - query.append(" AND lower(E." + Email.PROPERTY_CLIENT + "." + Client.PROPERTY_CODE + ") LIKE lower(:" + EmailFilter.PROPERTY_CLIENT_CODE + ")"); - args.put(EmailFilter.PROPERTY_CLIENT_CODE, "%" + emailFilter.getClientCode() + "%"); + // email commandNumber + if (StringUtils.isNotBlank(emailFilter.getCommandNumber())) { + query.append(" AND EXISTS (FROM " + RangeRow.class.getName() + " RR WHERE RR in elements(E." + Email.PROPERTY_RANGE_ROW + ")"); + query.append(" AND lower(RR." + RangeRow.PROPERTY_COMMAND_NUMBER + ") LIKE lower(:" + EmailFilter.PROPERTY_COMMAND_NUMBER + ")"); + args.put(EmailFilter.PROPERTY_COMMAND_NUMBER, "%" + emailFilter.getCommandNumber() + "%"); + query.append(")"); } return findAll(query.toString(), args); Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-04-24 13:40:54 UTC (rev 44) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-04-24 16:26:22 UTC (rev 45) @@ -26,7 +26,6 @@ import org.apache.commons.logging.LogFactory; import org.apache.commons.mail.DefaultAuthenticator; import org.apache.commons.mail.MultiPartEmail; -import org.nuiton.topia.persistence.internal.AbstractTopiaDao; import javax.mail.internet.MailDateFormat; Modified: trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java =================================================================== --- trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java 2014-04-24 13:40:54 UTC (rev 44) +++ trunk/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java 2014-04-24 16:26:22 UTC (rev 45) @@ -1,16 +1,5 @@ package com.franciaflex.faxtomail.services.service; -import java.util.List; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; - -import com.franciaflex.faxtomail.persistence.entities.Email; -import com.franciaflex.faxtomail.persistence.entities.EmailFilter; - /* * #%L * Extranet ENC-AHI :: Services @@ -35,6 +24,18 @@ * #L% */ +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import com.franciaflex.faxtomail.persistence.entities.DemandStatus; +import com.franciaflex.faxtomail.persistence.entities.Email; +import com.franciaflex.faxtomail.persistence.entities.EmailFilter; + /** * Email service tests. * @@ -46,9 +47,15 @@ protected EmailService service; + protected ReferentielService referentielService; + + protected UserService userService; + @Before public void setUp() { service = newService(EmailService.class); + referentielService = newService(ReferentielService.class); + userService = newService(UserService.class); log.info("init sample data"); newService(InitFaxToMailService.class).initSampleData(); } @@ -60,10 +67,7 @@ EmailFilter filter = new EmailFilter(); List<Email> emails = service.search(filter); Assert.assertEquals(116, emails.size()); - /*for (Email email : emails) { - System.out.println(email.getClient().getCode() + "," + email.getSubject()); - }*/ - + // client code filter filter.setClientCode("23"); emails = service.search(filter); @@ -74,12 +78,35 @@ emails = service.search(filter); Assert.assertEquals(2, emails.size()); - // date + // some other fields just to test query syntax + filter.setMinReceptionDate(getServiceContext().getNow()); + filter.setMaxReceptionDate(getServiceContext().getNow()); + filter.setTakenBy(userService.getUserByLogin("cmarquis")); filter.setMinModificationDate(getServiceContext().getNow()); filter.setMaxModificationDate(getServiceContext().getNow()); - filter.setMinReceptionDate(getServiceContext().getNow()); - filter.setMaxReceptionDate(getServiceContext().getNow()); + filter.setModifiedBy(userService.getUserByLogin("cmarquis")); + filter.setMinTransferDate(getServiceContext().getNow()); + filter.setMaxTransferDate(getServiceContext().getNow()); + filter.setTransferBy(userService.getUserByLogin("cmarquis")); + filter.setMinArchivedDate(getServiceContext().getNow()); + filter.setMaxArchivedDate(getServiceContext().getNow()); + filter.setArchivedBy(userService.getUserByLogin("cmarquis")); + filter.setMinPrintingDate(getServiceContext().getNow()); + filter.setMaxPrintingDate(getServiceContext().getNow()); + filter.setPrintingBy(userService.getUserByLogin("cmarquis")); + + filter.setSender("test"); + filter.setBody("test"); + filter.setDemandStatus(DemandStatus.ARCHIVED); + filter.setGamme(referentielService.getAllRange().get(0)); + filter.setPriority(referentielService.getAllPriority().get(0)); + filter.setCommandNumber("test"); + filter.setEtatAttente(referentielService.getAllEtatAttente().get(0)); + filter.setEdiCodeNumber("test"); + filter.setLocalReference("test"); + filter.setMessage("test"); + filter.setProjectReference("test"); emails = service.search(filter); - Assert.assertEquals(0, emails.size()); // just to test synthax + Assert.assertEquals(0, emails.size()); } } Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.jaxx =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.jaxx 2014-04-24 13:40:54 UTC (rev 44) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUI.jaxx 2014-04-24 16:26:22 UTC (rev 45) @@ -67,13 +67,15 @@ <JLabel id='receivedBetweenLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='receivedBetweenStartDatePicker'/> + <JXDatePicker id='receivedBetweenStartDatePicker' + onActionPerformed="model.setMinReceptionDate(receivedBetweenStartDatePicker.getDate())"/> </cell> <cell> <JLabel styleClass='between2ndPartLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='receivedBetweenEndDatePicker'/> + <JXDatePicker id='receivedBetweenEndDatePicker' + onActionPerformed="model.setMaxReceptionDate(receivedBetweenEndDatePicker.getDate())"/> </cell> <cell> @@ -91,13 +93,15 @@ <JLabel id='modifiedBetweenLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='modifiedBetweenStartDatePicker'/> + <JXDatePicker id='modifiedBetweenStartDatePicker' + onActionPerformed="model.setMinModificationDate(modifiedBetweenStartDatePicker.getDate())"/> </cell> <cell> <JLabel styleClass='between2ndPartLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='modifiedBetweenEndDatePicker'/> + <JXDatePicker id='modifiedBetweenEndDatePicker' + onActionPerformed="model.setMaxModificationDate(modifiedBetweenEndDatePicker.getDate())"/> </cell> <cell anchor='west'> @@ -115,13 +119,15 @@ <JLabel id='transferBetweenLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='transferBetweenStartDatePicker'/> + <JXDatePicker id='transferBetweenStartDatePicker' + onActionPerformed="model.setMinTransferDate(transferBetweenStartDatePicker.getDate())"/> </cell> <cell> <JLabel styleClass='between2ndPartLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='transferBetweenEndDatePicker'/> + <JXDatePicker id='transferBetweenEndDatePicker' + onActionPerformed="model.setMaxTransferDate(transferBetweenEndDatePicker.getDate())"/> </cell> <cell anchor='west'> @@ -139,13 +145,15 @@ <JLabel id='archivedBetweenLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='archivedBetweenStartDatePicker'/> + <JXDatePicker id='archivedBetweenStartDatePicker' + onActionPerformed="model.setMinArchivedDate(archivedBetweenStartDatePicker.getDate())"/> </cell> <cell> <JLabel styleClass='between2ndPartLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='archivedBetweenEndDatePicker'/> + <JXDatePicker id='archivedBetweenEndDatePicker' + onActionPerformed="model.setMaxArchivedDate(archivedBetweenEndDatePicker.getDate())"/> </cell> <cell anchor='west'> @@ -163,13 +171,15 @@ <JLabel id='printedBetweenLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='printedBetweenStartDatePicker'/> + <JXDatePicker id='printedBetweenStartDatePicker' + onActionPerformed="model.setMinPrintingDate(printedBetweenStartDatePicker.getDate())"/> </cell> <cell> <JLabel styleClass='between2ndPartLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='printedBetweenEndDatePicker'/> + <JXDatePicker id='printedBetweenEndDatePicker' + onActionPerformed="model.setMaxPrintingDate(printedBetweenEndDatePicker.getDate())"/> </cell> <cell anchor='west'> @@ -224,21 +234,24 @@ <JLabel id='ediCodeNumberLabel'/> </cell> <cell columns='3' weightx='1'> - <JTextField id='ediCodeNumberField'/> + <JTextField id='ediCodeNumberField' + onKeyReleased='handler.setText(event, "ediCodeNumber")'/> </cell> <cell> <JLabel id='projectReferenceLabel'/> </cell> <cell weightx='1'> - <JTextField id='projectReferenceField'/> + <JTextField id='projectReferenceField' + onKeyReleased='handler.setText(event, "projectReference")'/> </cell> <cell> <JLabel id='localReferenceLabel'/> </cell> <cell weightx='1'> - <JTextField id='localReferenceField'/> + <JTextField id='localReferenceField' + onKeyReleased='handler.setText(event, "localReference")'/> </cell> </row> @@ -276,7 +289,8 @@ <JLabel id='messageLabel'/> </cell> <cell columns='3' weightx='1'> - <JTextField id='messageField'/> + <JTextField id='messageField' + onKeyReleased='handler.setText(event, "message")'/> </cell> <cell> @@ -294,14 +308,16 @@ <JLabel id='bodyLabel'/> </cell> <cell columns='3' weightx='1'> - <JTextField id='bodyField'/> + <JTextField id='bodyField' + onKeyReleased='handler.setText(event, "body")'/> </cell> <cell> <JLabel id='commandNumberLabel'/> </cell> <cell columns='3' weightx='1'> - <JTextField id='commandNumberField'/> + <JTextField id='commandNumberField' + onKeyReleased='handler.setText(event, "commandNumber")'/> </cell> </row> Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java 2014-04-24 13:40:54 UTC (rev 44) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchToGroupUIHandler.java 2014-04-24 16:26:22 UTC (rev 45) @@ -99,6 +99,9 @@ initBeanFilterableComboBox(ui.getTransferByComboBox(), getContext().getUserService().getAllUsers(), model.getTransferBy()); + initBeanFilterableComboBox(ui.getPrintedByComboBox(), + getContext().getUserService().getAllUsers(), + model.getPrintingBy()); initBeanFilterableComboBox(ui.getDocTypeComboBox(), referentielService.getAllDemandType(), model.getDemandType()); @@ -111,6 +114,9 @@ initBeanFilterableComboBox(ui.getStatusComboBox(), Arrays.asList(DemandStatus.values()), model.getDemandStatus()); + initBeanFilterableComboBox(ui.getGammeComboBox(), + referentielService.getAllRange(), + model.getGamme()); final JXTable dataTable = getUI().getDataTable(); dataTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx 2014-04-24 13:40:54 UTC (rev 44) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUI.jaxx 2014-04-24 16:26:22 UTC (rev 45) @@ -78,13 +78,15 @@ <JLabel id='receivedBetweenLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='receivedBetweenStartDatePicker'/> + <JXDatePicker id='receivedBetweenStartDatePicker' + onActionPerformed="model.setMinReceptionDate(receivedBetweenStartDatePicker.getDate())"/> </cell> <cell> <JLabel styleClass='between2ndPartLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='receivedBetweenEndDatePicker'/> + <JXDatePicker id='receivedBetweenEndDatePicker' + onActionPerformed="model.setMaxReceptionDate(receivedBetweenEndDatePicker.getDate())"/> </cell> <cell> @@ -102,13 +104,15 @@ <JLabel id='modifiedBetweenLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='modifiedBetweenStartDatePicker'/> + <JXDatePicker id='modifiedBetweenStartDatePicker' + onActionPerformed="model.setMinModificationDate(modifiedBetweenStartDatePicker.getDate())"/> </cell> <cell> <JLabel styleClass='between2ndPartLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='modifiedBetweenEndDatePicker'/> + <JXDatePicker id='modifiedBetweenEndDatePicker' + onActionPerformed="model.setMaxModificationDate(modifiedBetweenEndDatePicker.getDate())"/> </cell> <cell anchor='west'> @@ -126,13 +130,15 @@ <JLabel id='transferBetweenLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='transferBetweenStartDatePicker'/> + <JXDatePicker id='transferBetweenStartDatePicker' + onActionPerformed="model.setMinTransferDate(transferBetweenStartDatePicker.getDate())"/> </cell> <cell> <JLabel styleClass='between2ndPartLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='transferBetweenEndDatePicker'/> + <JXDatePicker id='transferBetweenEndDatePicker' + onActionPerformed="model.setMaxTransferDate(transferBetweenEndDatePicker.getDate())"/> </cell> <cell anchor='west'> @@ -150,13 +156,15 @@ <JLabel id='archivedBetweenLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='archivedBetweenStartDatePicker'/> + <JXDatePicker id='archivedBetweenStartDatePicker' + onActionPerformed="model.setMinArchivedDate(archivedBetweenStartDatePicker.getDate())"/> </cell> <cell> <JLabel styleClass='between2ndPartLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='archivedBetweenEndDatePicker'/> + <JXDatePicker id='archivedBetweenEndDatePicker' + onActionPerformed="model.setMaxArchivedDate(archivedBetweenEndDatePicker.getDate())"/> </cell> <cell anchor='west'> @@ -174,13 +182,15 @@ <JLabel id='printedBetweenLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='printedBetweenStartDatePicker'/> + <JXDatePicker id='printedBetweenStartDatePicker' + onActionPerformed="model.setMinPrintingDate(printedBetweenStartDatePicker.getDate())"/> </cell> <cell> <JLabel styleClass='between2ndPartLabel'/> </cell> <cell weightx='1'> - <JXDatePicker id='printedBetweenEndDatePicker'/> + <JXDatePicker id='printedBetweenEndDatePicker' + onActionPerformed="model.setMaxPrintingDate(printedBetweenEndDatePicker.getDate())"/> </cell> <cell anchor='west'> @@ -235,21 +245,24 @@ <JLabel id='ediCodeNumberLabel'/> </cell> <cell columns='3' weightx='1'> - <JTextField id='ediCodeNumberField'/> + <JTextField id='ediCodeNumberField' + onKeyReleased='handler.setText(event, "ediCodeNumber")'/> </cell> <cell> <JLabel id='projectReferenceLabel'/> </cell> <cell weightx='1'> - <JTextField id='projectReferenceField'/> + <JTextField id='projectReferenceField' + onKeyReleased='handler.setText(event, "projectReference")'/> </cell> <cell> <JLabel id='localReferenceLabel'/> </cell> <cell weightx='1'> - <JTextField id='localReferenceField'/> + <JTextField id='localReferenceField' + onKeyReleased='handler.setText(event, "localReference")'/> </cell> </row> @@ -287,7 +300,8 @@ <JLabel id='messageLabel'/> </cell> <cell columns='3' weightx='1'> - <JTextField id='messageField'/> + <JTextField id='messageField' + onKeyReleased='handler.setText(event, "message")'/> </cell> <cell> @@ -305,14 +319,16 @@ <JLabel id='bodyLabel'/> </cell> <cell columns='3' weightx='1'> - <JTextField id='bodyField'/> + <JTextField id='bodyField' + onKeyReleased='handler.setText(event, "body")'/> </cell> <cell> <JLabel id='commandNumberLabel'/> </cell> <cell columns='3' weightx='1'> - <JTextField id='commandNumberField'/> + <JTextField id='commandNumberField' + onKeyReleased='handler.setText(event, "commandNumber")'/> </cell> </row> Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java 2014-04-24 13:40:54 UTC (rev 44) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIHandler.java 2014-04-24 16:26:22 UTC (rev 45) @@ -104,6 +104,9 @@ initBeanFilterableComboBox(ui.getTransferByComboBox(), getContext().getUserService().getAllUsers(), model.getTransferBy()); + initBeanFilterableComboBox(ui.getPrintedByComboBox(), + getContext().getUserService().getAllUsers(), + model.getPrintingBy()); initBeanFilterableComboBox(ui.getDocTypeComboBox(), referentielService.getAllDemandType(), model.getDemandType()); Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-04-24 13:40:54 UTC (rev 44) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/search/SearchUIModel.java 2014-04-24 16:26:22 UTC (rev 45) @@ -81,7 +81,7 @@ return editObject.getSender(); } - public void setRecipient(String recipient) { + /*public void setRecipient(String recipient) { Object oldValue = getRecipient(); editObject.setRecipient(recipient); firePropertyChanged(EmailFilter.PROPERTY_RECIPIENT, oldValue, recipient); @@ -89,7 +89,7 @@ public String getRecipient() { return editObject.getRecipient(); - } + }*/ public void setSubject(String subject) { Object oldValue = getSubject(); @@ -289,6 +289,7 @@ Object oldValue = getMinReceptionDate(); editObject.setMinReceptionDate(minReceptionDate); firePropertyChanged(EmailFilter.PROPERTY_MIN_RECEPTION_DATE, oldValue, minReceptionDate); + System.out.println(minReceptionDate); } public Date getMaxReceptionDate() { @@ -337,7 +338,7 @@ public void setMaxArchivedDate(Date maxArchivedDate) { Object oldValue = getMaxArchivedDate(); - editObject.setMaxArchiveDate(maxArchivedDate); + editObject.setMaxArchivedDate(maxArchivedDate); firePropertyChanged(EmailFilter.PROPERTY_MAX_ARCHIVED_DATE, oldValue, maxArchivedDate); } @@ -347,7 +348,7 @@ public void setMinTransferDate(Date minTransferDate) { Object oldValue = getMinTransferDate(); - editObject.setMinArchivedDate(minTransferDate); + editObject.setMinTransferDate(minTransferDate); firePropertyChanged(EmailFilter.PROPERTY_MIN_TRANSFER_DATE, oldValue, minTransferDate); }
participants (1)
-
echatellier@users.forge.codelutin.com