branch develop updated (800c8c89 -> 471c3ded)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git from 800c8c89 Merge branch 'feature/redimensionnement' into develop new 471c3ded fixes #9986 : Pris par lent The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 471c3dedb5ac3a471ea577592fa2ee05eeef0dc9 Author: jcouteau <couteau@codelutin.com> Date: Mon Jul 2 17:30:57 2018 +0200 fixes #9986 : Pris par lent Summary of changes: .../faxtomail/services/service/EmailService.java | 2 + .../services/service/EmailServiceImpl.java | 55 ++++++++++++++++++++++ .../services/service/EmailServiceTest.java | 27 +++++++++++ .../demande/takenby/actions/TakenByAction.java | 6 +-- 4 files changed, 85 insertions(+), 5 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 471c3dedb5ac3a471ea577592fa2ee05eeef0dc9 Author: jcouteau <couteau@codelutin.com> Date: Mon Jul 2 17:30:57 2018 +0200 fixes #9986 : Pris par lent --- .../faxtomail/services/service/EmailService.java | 2 + .../services/service/EmailServiceImpl.java | 55 ++++++++++++++++++++++ .../services/service/EmailServiceTest.java | 27 +++++++++++ .../demande/takenby/actions/TakenByAction.java | 6 +-- 4 files changed, 85 insertions(+), 5 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java index 14afdeb8..0afd616e 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java @@ -78,6 +78,8 @@ public interface EmailService extends FaxToMailService { Email saveEmail(Email email, Collection<Attachment> attachments, Collection<Reply> replies, FaxToMailUser user, String... modifiedFields) throws InvalidClientException; + Email takeBy(Email email, FaxToMailUser user); + void transmitPendingDemandsToEdi(); Set<Object> getDistinctValues(MailFolder folder, String[] properties, boolean sum); diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index 55ecaa49..e3442bb2 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -120,6 +120,7 @@ import java.io.Writer; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.sql.Connection; +import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; @@ -184,6 +185,7 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe Hibernate.initialize(email.getMatchingClients()); Hibernate.initialize(email.getReplies()); Hibernate.initialize(email.getAttachment()); + Hibernate.initialize(email.getMailFolder()); Collection<History> histories = email.getHistory(); if (histories != null) { for (History history : histories) { @@ -369,6 +371,59 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe return result; } + + @Override + public Email takeBy(final Email email, final FaxToMailUser user) { + + TopiaSqlSupport sqlSupport = getPersistenceContext().getSqlSupport(); + + sqlSupport.doSqlWork(new TopiaSqlWork() { + @Override + public void execute(Connection connection) throws SQLException { + Date now = getNow(); + + HistoryTopiaDao historyDao = getPersistenceContext().getHistoryDao(); + + Set<String> fieldSet = Sets.newHashSet(Email.PROPERTY_TAKEN_BY); + final History history = historyDao.create(History.PROPERTY_TYPE, HistoryType.MODIFICATION, + History.PROPERTY_FAX_TO_MAIL_USER, user, + History.PROPERTY_MODIFICATION_DATE, now, + History.PROPERTY_EMAIL, email, + History.PROPERTY_FIELDS_JSON, AbstractFaxToMailTopiaDao.GSON_INSTANCE.toJson(fieldSet)); + + getPersistenceContext().getHibernateSupport().getHibernateSession().flush(); + + try (PreparedStatement updateStatement = connection.prepareStatement("UPDATE email SET takenby = ? WHERE topiaid = ?"); + PreparedStatement historyStatement = connection.prepareStatement("UPDATE history SET email = ? WHERE topiaid = ?")) { + + updateStatement.setString(1, user.getTopiaId()); + updateStatement.setString(2, email.getTopiaId()); + int result = updateStatement.executeUpdate(); + + historyStatement.setString(1, email.getTopiaId()); + historyStatement.setString(2, history.getTopiaId()); + int result2 = historyStatement.executeUpdate(); + + if (result != 1 || result2 != 1) { + log.error(String.format("Could not take email ($s) by user ($s)", email.getTopiaId(), user.getTopiaId())); + } + } + + + connection.commit(); + } + }); + + getPersistenceContext().commit(); + + getPersistenceContext().getHibernateSupport().getHibernateSession().clear(); + getPersistenceContext().getHibernateSupport().getHibernateSession().refresh(email); + + Email returnValue = getFullEmailById(email.getTopiaId()); + + return returnValue; + } + /** * Les réponses sont modifiées par l'ui pour ne pas charger le contenu binaire, pour la sauvegarde, * il faut bien rétablir les replyContent avec ceux en base. diff --git a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java index c6d77781..90e4ac21 100644 --- a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java +++ b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/EmailServiceTest.java @@ -292,6 +292,33 @@ public class EmailServiceTest extends AbstractFaxToMailServiceTest { } + @Test + public void testSetTakenBy(){ + MailFolderTopiaDao mailFolderDao = getServiceContext().getPersistenceContext().getMailFolderDao(); + MailFolder cyrilFolder = mailFolderDao.forNameEquals("Cyril").findUnique(); + + FaxToMailUser cmarquis = userService.getUserByLogin("cmarquis"); + + EmailTopiaDao emailDao = getServiceContext().getPersistenceContext().getEmailDao(); + + List<Email> emails = emailDao.forMailFolderEquals(cyrilFolder).addEquals(Email.PROPERTY_ARCHIVE_DATE, null).find(0, 1); + + Email email = emails.get(0); + + Assert.assertNotEquals(cmarquis,email.getTakenBy()); + + service.takeBy(email, cmarquis); + + Email emailToTest = service.getEmailById(email.getTopiaId()); + + Assert.assertEquals(emailToTest.getSubject(), email.getSubject()); + + Assert.assertEquals(cmarquis.getTrigraph(),emailToTest.getTakenBy().getTrigraph()); + + //TODO should test history to + + } + @Test public void test6863() { testConvertHTMLToPdf("test6863"); diff --git a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/actions/TakenByAction.java b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/actions/TakenByAction.java index 63e2cc0c..cee6f843 100644 --- a/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/actions/TakenByAction.java +++ b/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/content/demande/takenby/actions/TakenByAction.java @@ -33,8 +33,6 @@ import com.franciaflex.faxtomail.ui.swing.content.demande.DemandeUIModel; import com.franciaflex.faxtomail.ui.swing.content.demande.takenby.TakenByFormUI; import com.franciaflex.faxtomail.ui.swing.content.demande.takenby.TakenByFormUIHandler; import com.franciaflex.faxtomail.ui.swing.content.demande.takenby.TakenByFormUIModel; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import java.util.Collection; @@ -46,8 +44,6 @@ import static org.nuiton.i18n.I18n.t; */ public class TakenByAction extends AbstractFaxToMailAction<TakenByFormUIModel, TakenByFormUI, TakenByFormUIHandler> { - private static final Log log = LogFactory.getLog(TakenByAction.class); - public TakenByAction(TakenByFormUIHandler handler) { super(handler, false); setActionDescription(t("faxtomail.action.takenBy.tip")); @@ -71,7 +67,7 @@ public class TakenByAction extends AbstractFaxToMailAction<TakenByFormUIModel, T Email email = demand.toEntity(persistedEmail); - email = emailService.saveEmail(email, currentUser, Email.PROPERTY_TAKEN_BY); + email = emailService.takeBy(email, currentUser); demand.fromEntity(email); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm