This is an automated email from the git hooks/post-receive script. New commit to branch feature/1168-Diminuer_la_largeur_des_liste_déroulante in repository lima. See http://git.chorem.org/lima.git commit a3a062a490c564c02ba06cf2e6a1e7536e1cd755 Author: dcosse <japbiw74> Date: Thu Feb 19 11:57:49 2015 +0100 fixes #1174 Les imports des entrée se font correctement des transactions sont créée par date et pièce comptable, correction d'une exception à l'affichage du message d'import --- .../lima/business/ejb/ImportServiceImpl.java | 16 ++-- .../resources/i18n/lima-business_en_GB.properties | 3 + .../resources/i18n/lima-business_fr_FR.properties | 3 + .../lima/business/ImportExportServiceTest.java | 3 +- .../chorem/lima/ui/importexport/ImportExport.java | 94 ++++++++++++---------- .../resources/i18n/lima-swing_en_GB.properties | 3 + .../resources/i18n/lima-swing_fr_FR.properties | 3 + 7 files changed, 73 insertions(+), 52 deletions(-) diff --git a/lima-business/src/main/java/org/chorem/lima/business/ejb/ImportServiceImpl.java b/lima-business/src/main/java/org/chorem/lima/business/ejb/ImportServiceImpl.java index ee0dc29..74506a0 100644 --- a/lima-business/src/main/java/org/chorem/lima/business/ejb/ImportServiceImpl.java +++ b/lima-business/src/main/java/org/chorem/lima/business/ejb/ImportServiceImpl.java @@ -818,7 +818,7 @@ public class ImportServiceImpl extends AbstractLimaService implements ImportServ @Override public ImportExportResults importEntryBookFromEbp(String contents) { ImportExportResults results = new ImportExportResults(); - ImportResult result = results.createAddAndGetImportResult(Account.class); + ImportResult result = results.createAddAndGetImportResult(EntryBook.class); if (StringUtils.isBlank(contents)) { result.addException(new NoDataToImportException()); @@ -882,12 +882,14 @@ public class ImportServiceImpl extends AbstractLimaService implements ImportServ // if entry date have fiscalperiod open if (dateEcr.compareTo(fiscalPeriodsBiginDate) < 0 || dateEcr.compareTo(fiscalPeriodsEndingDate) > 0) { - importResult.addException(new ImportEbpException(t("lima-business.import.entriesoutofdatesrange", dateEcr))); + importResult.addException(new ImportFileException(t("lima.import.error.entriesOutOfDatesRange", dateEcr))); + importResult.increaseIgnored(); result = false; } // if account not exist not export -> exception else if (account == null) { - importResult.addException(new ImportEbpException(t("lima-business.import.ebpmissingaccount", targetedAccount))); + importResult.addException(new ImportFileException(t("lima.import.error.invalidAccountNumber", targetedAccount))); + importResult.increaseIgnored(); result =false; } return result; @@ -896,7 +898,7 @@ public class ImportServiceImpl extends AbstractLimaService implements ImportServ @Override public ImportExportResults importEntriesFromEbp(String contents) { ImportExportResults results = new ImportExportResults(); - ImportResult result = results.createAddAndGetImportResult(Account.class); + ImportResult result = results.createAddAndGetImportResult(Entry.class); // use for logs long before = System.currentTimeMillis(); @@ -927,9 +929,9 @@ public class ImportServiceImpl extends AbstractLimaService implements ImportServ // the entry is validate (checking for valide FiscalPeriod and existing Account associated to it) // if valid entry // the entry entity is created and the association with it's dependant entites (Account are FinancialTransaction) are created - Date fiscalPeriodsBiginDate = fiscalPeriods.get(0).getBeginDate(); + Date fiscalPeriodsBeginDate = fiscalPeriods.get(0).getBeginDate(); Date fiscalPeriodsEndingDate = fiscalPeriods.get(fiscalPeriods.size() - 1).getEndDate(); - Map<EntryBook, Map<Date, Set<FinancialTransaction>>> entryBookFinancialTransactionsByDate = getEntryBookFinancialTransactionOrderedByDate(fiscalPeriodsBiginDate, fiscalPeriodsEndingDate); + Map<EntryBook, Map<Date, Set<FinancialTransaction>>> entryBookFinancialTransactionsByDate = getEntryBookFinancialTransactionOrderedByDate(fiscalPeriodsBeginDate, fiscalPeriodsEndingDate); for (EntryEBP entryEBP : entryEBPs) { Date dateEcr = entryEBP.getDatEcr(); @@ -937,7 +939,7 @@ public class ImportServiceImpl extends AbstractLimaService implements ImportServ // account loading Account account = indexedAccounts.get(entryEBP.getCompte()); - if (!validEntry(result, dateEcr, fiscalPeriodsBiginDate, fiscalPeriodsEndingDate, account, entryEBP.getCompte())) { + if (!validEntry(result, dateEcr, fiscalPeriodsBeginDate, fiscalPeriodsEndingDate, account, entryEBP.getCompte())) { continue; } // create entry diff --git a/lima-business/src/main/resources/i18n/lima-business_en_GB.properties b/lima-business/src/main/resources/i18n/lima-business_en_GB.properties index 7fd8ad5..150a777 100644 --- a/lima-business/src/main/resources/i18n/lima-business_en_GB.properties +++ b/lima-business/src/main/resources/i18n/lima-business_en_GB.properties @@ -125,6 +125,7 @@ lima-business.import.transactionadded=SUCCES \: FinancialTransaction, %s - %s, a lima-business.import.vatstatementadded=SUCCESS \: The vatStatement %s is created \n lima-business.import.vatstatementalnomaster=FAILED \: The vatStatement %s has master \: %s which not exist \n lima-business.import.vatstatementalreadyexist=FAILED \: The vatStatement %s already exists \!\n +lima.account.error.invalidAccountNumber= lima.config.configFileName.description=Filename of Lima's configuration lima.config.data.dir.description=Data directory of Lima lima.config.documentReport.account.documentReportModelPath.description= @@ -149,6 +150,8 @@ lima.config.serveraddress.description=Server Address lima.configFileName.description= lima.financialtransaction.account= lima.fiscalperiod.fiscalperiod= +lima.import.error.entriesOutOfDatesRange= +lima.import.error.invalidAccountNumber= lima.importexport.import.alreadyExistFinancialStatement= lima.lettering.accountRegularization= lima.reports.account.noaccount= diff --git a/lima-business/src/main/resources/i18n/lima-business_fr_FR.properties b/lima-business/src/main/resources/i18n/lima-business_fr_FR.properties index fe80f59..c050317 100644 --- a/lima-business/src/main/resources/i18n/lima-business_fr_FR.properties +++ b/lima-business/src/main/resources/i18n/lima-business_fr_FR.properties @@ -120,6 +120,7 @@ lima-business.import.transactionadded=Succès \: Transaction, %s, %s, ajoutée\n lima-business.import.vatstatementadded=Succès \: Plan de TVA %s ajoutée \n lima-business.import.vatstatementalnomaster=u00C9chec \: Le plan %s possède le master \: %s inexsitant \n lima-business.import.vatstatementalreadyexist=u00C9chec \: Le plan %s exist déjà \!\n +lima.account.error.invalidAccountNumber= lima.config.configFileName.description=Nom du fichier de configuration de Lima lima.config.data.dir.description=Répertoire des données de Lima lima.config.documentReport.account.accountModelPath.description=fichier source (.jrxml) généré par Jasper Report gérant les beans 'account' @@ -149,6 +150,8 @@ lima.config.serveraddress.description=Addresse serveur lima.configFileName.description= lima.financialtransaction.account= lima.fiscalperiod.fiscalperiod= +lima.import.error.entriesOutOfDatesRange= +lima.import.error.invalidAccountNumber= lima.importexport.import.alreadyExistFinancialStatement= lima.lettering.accountRegularization= lima.reports.account.noaccount= diff --git a/lima-business/src/test/java/org/chorem/lima/business/ImportExportServiceTest.java b/lima-business/src/test/java/org/chorem/lima/business/ImportExportServiceTest.java index dff4301..05420e0 100644 --- a/lima-business/src/test/java/org/chorem/lima/business/ImportExportServiceTest.java +++ b/lima-business/src/test/java/org/chorem/lima/business/ImportExportServiceTest.java @@ -578,11 +578,10 @@ public class ImportExportServiceTest extends AbstractLimaTest { // test import FileInputStream contentStream = null; - ImportResult result; try { contentStream = new FileInputStream(tmpDir + "export-entries-EBP.csv"); String inputStream = IOUtils.toString(contentStream); - result = importService.importEntriesFromEbp(inputStream).getImportResults().get(0); + importService.importEntriesFromEbp(inputStream).getImportResults().get(0); } finally { IOUtils.closeQuietly(contentStream); } diff --git a/lima-swing/src/main/java/org/chorem/lima/ui/importexport/ImportExport.java b/lima-swing/src/main/java/org/chorem/lima/ui/importexport/ImportExport.java index 1d13f18..ad9376c 100644 --- a/lima-swing/src/main/java/org/chorem/lima/ui/importexport/ImportExport.java +++ b/lima-swing/src/main/java/org/chorem/lima/ui/importexport/ImportExport.java @@ -65,6 +65,7 @@ import org.chorem.lima.util.ErrorHelper; import org.jdesktop.swingx.painter.BusyPainter; import javax.swing.*; +import javax.swing.text.html.HTMLDocument; import java.awt.*; import java.io.BufferedWriter; import java.io.File; @@ -77,8 +78,10 @@ import java.nio.charset.Charset; import java.rmi.server.ExportException; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.concurrent.ExecutionException; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; @@ -343,51 +346,56 @@ public class ImportExport { protected StringBuilder displayErrorMessage(Map<Integer, LimaException> exceptionsByLine) { StringBuilder result = new StringBuilder(); if (exceptionsByLine != null) { - for (Map.Entry<Integer, LimaException> e:exceptionsByLine.entrySet()) { - result.append(t("lima.import.line", e.getKey()) + "\n"); - LimaException importException = e.getValue(); - if (importException instanceof InvalidAccountNumberException) { - result.append(t("lima.account.error.invalidAccountNumber", ((InvalidAccountNumberException) importException).getAccountNumber()) + "\n"); - } else if (importException instanceof NotNumberAccountNumberException) { - result.append(t("lima.account.error.notNumberAccountNumber", ((NotNumberAccountNumberException) importException).getAccountNumber()) + "\n"); - } else if (importException instanceof NotAllowedLabelException) { - result.append(t("lima.error.notAllowedLabel", ((NotAllowedLabelException) importException).getLabel()) + "\n"); - } else if (importException instanceof MoreOneUnlockFiscalPeriodException) { - result.append(t("lima.fiscalPeriod.error.moreOneUnlockFiscalPeriod", ((MoreOneUnlockFiscalPeriodException) importException).getBeginDate(), ((MoreOneUnlockFiscalPeriodException) importException).getEndDate()) + "\n"); - } else if (importException instanceof BeginAfterEndFiscalPeriodException) { - result.append(t("lima.fiscalPeriod.error.beginAfterEndFiscalPeriod", ((BeginAfterEndFiscalPeriodException) importException).getFiscalPeriod().getBeginDate(), ((BeginAfterEndFiscalPeriodException) importException).getFiscalPeriod().getEndDate()) + "\n"); - } else if (importException instanceof NotBeginNextDayOfLastFiscalPeriodException) { - result.append(t("lima.fiscalPeriod.error.notBeginNextDayOfLastFiscalPeriod", ((NotBeginNextDayOfLastFiscalPeriodException) importException).getFiscalPeriod().getBeginDate(), ((NotBeginNextDayOfLastFiscalPeriodException) importException).getFiscalPeriod().getEndDate()) + "\n"); - } else if (importException instanceof LockedFinancialPeriodException) { - result.append(t("lima.fiscalPeriod.error.lockedFinancialPeriod") + "\n"); - } else if (importException instanceof LockedEntryBookException) { - result.append(t("lima.entryBook.error.lockedEntryBook", ((LockedEntryBookException) importException).getClosedPeriodicEntryBook().getFinancialPeriod().getBeginDate(), ((LockedEntryBookException) importException).getClosedPeriodicEntryBook().getFinancialPeriod().getEndDate()) + "\n"); - } else if (importException instanceof AlreadyExistFinancialStatement) { - result.append(t("lima.financialStatement.error.alreadyExistFinancialStatement", ((AlreadyExistFinancialStatement) importException).getFinancialStatementLabel()) + "\n"); - } else if (importException instanceof AlreadyExistVatStatementException) { - result.append(t("lima.vatStatement.error.alreadyExistVatStatement", ((AlreadyExistVatStatementException) importException).getVatStatementLabel()) + "\n"); - } else if (importException instanceof NoFiscalPeriodFoundException) { - result.append(t("lima.error.noFiscalPeriodFound") + "\n"); - } else if (importException instanceof NoDataToImportException) { - errorHelper.showErrorMessage(t("lima.import.error.noDataToImport")); - log.warn(t("lima.import.error.noDataToImport")); - result = null; - break; - } else if (importException instanceof ImportFileException){ - errorHelper.showErrorMessage(((ImportFileException) importException).getDetailMessage()); - log.warn(((ImportFileException) importException).getDetailMessage()); - result = null; - break; - } else { - result.append(t("lima.import.error.unknown") + "\n"); - } - try { - throw importException; - } catch (LimaException ex) { - log.error(ex); + Set<Map.Entry<Integer, LimaException>> errors = exceptionsByLine.entrySet(); + int nbMessageToDisplay = errors.size() <= 40 ? errors.size(): 40; + int nbNotDisplayedMessage = errors.size() > 40 ? errors.size() - 40 : 0; + Iterator<Map.Entry<Integer, LimaException>> itError = errors.iterator(); + for (int i = 0; i < nbMessageToDisplay; i++) { + if (itError.hasNext()) { + Map.Entry<Integer, LimaException> messages = itError.next(); + result.append(t("lima.import.line", messages.getKey()) + "\n"); + LimaException importException = messages.getValue(); + if (importException instanceof InvalidAccountNumberException) { + result.append(t("lima.account.error.invalidAccountNumber", ((InvalidAccountNumberException) importException).getAccountNumber()) + "\n"); + } else if (importException instanceof NotNumberAccountNumberException) { + result.append(t("lima.account.error.notNumberAccountNumber", ((NotNumberAccountNumberException) importException).getAccountNumber()) + "\n"); + } else if (importException instanceof NotAllowedLabelException) { + result.append(t("lima.error.notAllowedLabel", ((NotAllowedLabelException) importException).getLabel()) + "\n"); + } else if (importException instanceof MoreOneUnlockFiscalPeriodException) { + result.append(t("lima.fiscalPeriod.error.moreOneUnlockFiscalPeriod", ((MoreOneUnlockFiscalPeriodException) importException).getBeginDate(), ((MoreOneUnlockFiscalPeriodException) importException).getEndDate()) + "\n"); + } else if (importException instanceof BeginAfterEndFiscalPeriodException) { + result.append(t("lima.fiscalPeriod.error.beginAfterEndFiscalPeriod", ((BeginAfterEndFiscalPeriodException) importException).getFiscalPeriod().getBeginDate(), ((BeginAfterEndFiscalPeriodException) importException).getFiscalPeriod().getEndDate()) + "\n"); + } else if (importException instanceof NotBeginNextDayOfLastFiscalPeriodException) { + result.append(t("lima.fiscalPeriod.error.notBeginNextDayOfLastFiscalPeriod", ((NotBeginNextDayOfLastFiscalPeriodException) importException).getFiscalPeriod().getBeginDate(), ((NotBeginNextDayOfLastFiscalPeriodException) importException).getFiscalPeriod().getEndDate()) + "\n"); + } else if (importException instanceof LockedFinancialPeriodException) { + result.append(t("lima.fiscalPeriod.error.lockedFinancialPeriod") + "\n"); + } else if (importException instanceof LockedEntryBookException) { + result.append(t("lima.entryBook.error.lockedEntryBook", ((LockedEntryBookException) importException).getClosedPeriodicEntryBook().getFinancialPeriod().getBeginDate(), ((LockedEntryBookException) importException).getClosedPeriodicEntryBook().getFinancialPeriod().getEndDate()) + "\n"); + } else if (importException instanceof AlreadyExistFinancialStatement) { + result.append(t("lima.financialStatement.error.alreadyExistFinancialStatement", ((AlreadyExistFinancialStatement) importException).getFinancialStatementLabel()) + "\n"); + } else if (importException instanceof AlreadyExistVatStatementException) { + result.append(t("lima.vatStatement.error.alreadyExistVatStatement", ((AlreadyExistVatStatementException) importException).getVatStatementLabel()) + "\n"); + } else if (importException instanceof NoFiscalPeriodFoundException) { + result.append(t("lima.error.noFiscalPeriodFound") + "\n"); + } else if (importException instanceof NoDataToImportException) { + errorHelper.showErrorMessage(t("lima.import.error.noDataToImport")); + break; + } else if (importException instanceof ImportFileException){ + result.append(((ImportFileException) importException).getDetailMessage()); + } else { + result.append(t("lima.import.error.unknown") + "\n"); + } + try { + throw importException; + } catch (LimaException ex) { + log.error(ex); + } } - } + if (nbNotDisplayedMessage > 0) { + result.append(String.format(t("lima.import.error.andMoreErrors"), nbNotDisplayedMessage)); + } + } return result; } diff --git a/lima-swing/src/main/resources/i18n/lima-swing_en_GB.properties b/lima-swing/src/main/resources/i18n/lima-swing_en_GB.properties index 0142911..dab46e2 100644 --- a/lima-swing/src/main/resources/i18n/lima-swing_en_GB.properties +++ b/lima-swing/src/main/resources/i18n/lima-swing_en_GB.properties @@ -366,7 +366,10 @@ lima.identity.phoneNumber=Phone number lima.identity.vatNumber=VAT number lima.identity.zipCode=Zip code lima.import.error= +lima.import.error.andMoreErrors=And %d more errors +lima.import.error.entriesOutOfDatesRange=Open fiscal period lima.import.error.extractFile= +lima.import.error.invalidAccountNumber=None existing account with number '%' lima.import.error.noDataToImport= lima.import.error.unknown= lima.import.line= diff --git a/lima-swing/src/main/resources/i18n/lima-swing_fr_FR.properties b/lima-swing/src/main/resources/i18n/lima-swing_fr_FR.properties index 7480da3..36dee45 100644 --- a/lima-swing/src/main/resources/i18n/lima-swing_fr_FR.properties +++ b/lima-swing/src/main/resources/i18n/lima-swing_fr_FR.properties @@ -379,7 +379,10 @@ lima.identity.phoneNumber=n° Tel lima.identity.vatNumber=n° TVA lima.identity.zipCode=Code Postal lima.import.error=Une erreur est survenue lors de l'import +lima.import.error.andMoreErrors=Et %d autres erreurs... +lima.import.error.entriesOutOfDatesRange=Periode fiscale non authorisé lima.import.error.extractFile=Le fichier n'est correct +lima.import.error.invalidAccountNumber=Le compte '%s' n'existe pas. lima.import.error.noDataToImport=Aucune donnée à importer. lima.import.error.unknown=Erreur inconnue. lima.import.line=Ligne %d\: -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.