Tutti-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- 4058 discussions
r1792 - in branches/tutti-3.4.x: tutti-service/src/main/java/fr/ifremer/tutti/service tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra tutti-service/src/main/resources/i18n tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action tutti-ui-swing/src/main/resources/i18n
by tchemit@users.forge.codelutin.com 20 May '14
by tchemit@users.forge.codelutin.com 20 May '14
20 May '14
Author: tchemit
Date: 2014-05-20 15:40:25 +0200 (Tue, 20 May 2014)
New Revision: 1792
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1792
Log:
fixes #5115 [EXPORT] Evolution format export SUMATRA pelgas
Added:
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java
Modified:
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java
branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java
branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-05-19 19:10:43 UTC (rev 1791)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-05-20 13:40:25 UTC (rev 1792)
@@ -76,7 +76,6 @@
import org.apache.commons.vfs2.FileType;
import org.nuiton.jaxx.application.ApplicationBusinessException;
import org.nuiton.jaxx.application.ApplicationIOUtil;
-import org.nuiton.jaxx.application.ApplicationTechnicalException;
import org.nuiton.util.TimeLog;
import org.nuiton.util.Version;
@@ -86,9 +85,11 @@
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Collections;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
import java.util.concurrent.Callable;
import static org.nuiton.i18n.I18n.t;
@@ -608,10 +609,12 @@
return null;
}
- public void fillSpeciesSurveyCode(Collection<Species> speciesList) {
+ public Set<String> fillSpeciesSurveyCode(Collection<Species> speciesList) {
TuttiProtocol protocol = getProtocol();
+ Set<String> badSpecies = new LinkedHashSet<>();
+
if (protocol != null) {
// fill available species from protocol
if (!protocol.isSpeciesEmpty()) {
@@ -622,19 +625,26 @@
SpeciesProtocol speciesProtocol = protocolMap.get(species.getReferenceTaxonId());
if (speciesProtocol == null ||
StringUtils.isEmpty(speciesProtocol.getSpeciesSurveyCode())) {
- throw new ApplicationTechnicalException(t("tutti.error.species.not.in.protocol", species.getName()));
+ badSpecies.add(species.getName());
+ continue;
}
species.setSurveyCode(speciesProtocol.getSpeciesSurveyCode());
}
}
}
+
+ return badSpecies;
}
- public void fillBenthosSurveyCode(Collection<Species> benthosList) {
+ public Set<String> fillBenthosSurveyCode(Collection<Species> benthosList) {
TuttiProtocol protocol = getProtocol();
+ Set<String> badSpecies = new LinkedHashSet<>();
+
if (protocol != null) {
+
+
// fill available benthos from protocol
if (!protocol.isBenthosEmpty()) {
@@ -644,12 +654,15 @@
SpeciesProtocol speciesProtocol = protocolMap.get(species.getReferenceTaxonId());
if (speciesProtocol == null ||
StringUtils.isEmpty(speciesProtocol.getSpeciesSurveyCode())) {
- throw new ApplicationTechnicalException(t("tutti.error.benthos.not.in.protocol", species.getName()));
+ badSpecies.add(species.getName());
+ continue;
}
species.setSurveyCode(speciesProtocol.getSpeciesSurveyCode());
}
}
}
+
+ return badSpecies;
}
public static final TimeLog TIME_LOG = new TimeLog(PersistenceService.class);
Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2014-05-19 19:10:43 UTC (rev 1791)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2014-05-20 13:40:25 UTC (rev 1792)
@@ -157,7 +157,8 @@
@Override
public String format(Species s) {
Preconditions.checkNotNull(s, t("tutti.service.error.species.null"));
- return s.getSurveyCode();
+ String surveyCode = s.getSurveyCode();
+ return surveyCode == null ? "" : surveyCode;
}
};
Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java 2014-05-19 19:10:43 UTC (rev 1791)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java 2014-05-20 13:40:25 UTC (rev 1792)
@@ -42,7 +42,8 @@
newColumnForExport(t("tutti.service.exportSumatra.header.year"), CatchRow.PROPERTY_GEAR_SHOOTING_START_DATE, TuttiCsvUtil.YEAR);
newColumnForExport(t("tutti.service.exportSumatra.header.station"), CatchRow.PROPERTY_STATION_NUMBER);
newColumnForExport(t("tutti.service.exportSumatra.header.multirigAggregation"), CatchRow.PROPERTY_MULTIRIG_AGGREGATION);
- newColumnForExport(t("tutti.service.exportSumatra.header.species"), CatchRow.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_SURVEY_CODE_FORMATTER);
+ newColumnForExport(t("tutti.service.exportSumatra.header.genuisSpecies"), CatchRow.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_NAME_FORMATTER);
+ newColumnForExport(t("tutti.service.exportSumatra.header.surveySpecies"), CatchRow.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_SURVEY_CODE_FORMATTER);
newColumnForExport(t("tutti.service.exportSumatra.header.sign"), CatchRow.PROPERTY_SIGN);
newColumnForExport(t("tutti.service.exportSumatra.header.sortedWeight"), CatchRow.PROPERTY_SORTED_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT);
newColumnForExport(t("tutti.service.exportSumatra.header.totalWeight"), CatchRow.PROPERTY_TOTAL_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT);
@@ -50,10 +51,10 @@
newColumnForExport(t("tutti.service.exportSumatra.header.averageSize"), CatchRow.PROPERTY_AVERAGE_SIZE, TuttiCsvUtil.FLOAT);
newColumnForExport(t("tutti.service.exportSumatra.header.number"), CatchRow.PROPERTY_NUMBER, TuttiCsvUtil.PRIMITIVE_INTEGER);
newColumnForExport(t("tutti.service.exportSumatra.header.moule"), CatchRow.PROPERTY_MOULE, TuttiCsvUtil.FLOAT);
- newColumnForExport(t("tutti.service.exportSumatra.header.startLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LATITUDE);
- newColumnForExport(t("tutti.service.exportSumatra.header.startLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LONGITUDE);
- newColumnForExport(t("tutti.service.exportSumatra.header.endLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LATITUDE);
- newColumnForExport(t("tutti.service.exportSumatra.header.endLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LONGITUDE);
+ newColumnForExport(t("tutti.service.exportSumatra.header.startLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LATITUDE, TuttiCsvUtil.FLOAT);
+ newColumnForExport(t("tutti.service.exportSumatra.header.startLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LONGITUDE, TuttiCsvUtil.FLOAT);
+ newColumnForExport(t("tutti.service.exportSumatra.header.endLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LATITUDE, TuttiCsvUtil.FLOAT);
+ newColumnForExport(t("tutti.service.exportSumatra.header.endLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LONGITUDE, TuttiCsvUtil.FLOAT);
}
@Override
Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java 2014-05-19 19:10:43 UTC (rev 1791)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java 2014-05-20 13:40:25 UTC (rev 1792)
@@ -77,11 +77,12 @@
*
* @param file where to generate report
* @param cruiseId id of the cruise to export
+ * @return export result
* @since 2.0
*/
- public void exportCruiseForSumatra(File file,
- String cruiseId,
- ProgressionModel progressionModel) {
+ public SumatraExportResult exportCruiseForSumatra(File file,
+ String cruiseId,
+ ProgressionModel progressionModel) {
Preconditions.checkNotNull(cruiseId, "Cannot export a null cruise");
Preconditions.checkNotNull(file, "Cannot export to a null file");
@@ -106,7 +107,11 @@
progressionModel.adaptTotal(operations.size() + 3);
- prepareOperationsAndExport(file, operations, progressionModel);
+ SumatraExportResult result = new SumatraExportResult();
+
+ prepareOperationsAndExport(file, operations, progressionModel, result);
+
+ return result;
}
/**
@@ -115,12 +120,13 @@
* @param file where to generate report
* @param cruiseId id of the cruise to export
* @param fishingOperationId id of the fishing operation to export
+ * @return export result
* @since 2.7
*/
- public void exportFishingOperationForSumatra(File file,
- String cruiseId,
- String fishingOperationId,
- ProgressionModel progressionModel) {
+ public SumatraExportResult exportFishingOperationForSumatra(File file,
+ String cruiseId,
+ String fishingOperationId,
+ ProgressionModel progressionModel) {
Preconditions.checkNotNull(file, "Cannot export to a null file");
Preconditions.checkNotNull(cruiseId, "Cannot export a null cruise");
@@ -138,12 +144,17 @@
List<String> operations = Lists.newArrayList(fishingOperationId);
- prepareOperationsAndExport(file, operations, progressionModel);
+ SumatraExportResult result = new SumatraExportResult();
+
+ prepareOperationsAndExport(file, operations, progressionModel, result);
+
+ return result;
}
protected void prepareOperationsAndExport(File file,
List<String> operations,
- ProgressionModel progressionModel) {
+ ProgressionModel progressionModel,
+ SumatraExportResult result) {
List<CatchRow> rows = Lists.newArrayList();
@@ -162,7 +173,7 @@
break;
}
- prepareFishingOperation(csvModel, rows, operationId);
+ prepareFishingOperation(csvModel, rows, operationId, result);
}
}
@@ -184,7 +195,8 @@
protected void prepareFishingOperation(CatchRowModel csvModel,
List<CatchRow> rows,
- String operationId) {
+ String operationId,
+ SumatraExportResult result) {
ExportCatchContext exportContext = ExportCatchContext.newExportContext(
persistenceService,
@@ -214,7 +226,9 @@
}
// fill survey code in species
- persistenceService.fillSpeciesSurveyCode(allspecies);
+ Set<String> badSpecies = persistenceService.fillSpeciesSurveyCode(allspecies);
+ result.setBadSpecies(badSpecies);
+
}
// Benthos
@@ -233,7 +247,8 @@
}
// fill survey code in benthos
- persistenceService.fillBenthosSurveyCode(allspecies);
+ Set<String> badBenthos = persistenceService.fillBenthosSurveyCode(allspecies);
+ result.setBadBenthos(badBenthos);
}
}
}
Added: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java (rev 0)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java 2014-05-20 13:40:25 UTC (rev 1792)
@@ -0,0 +1,72 @@
+package fr.ifremer.tutti.service.export.sumatra;
+
+/*
+ * #%L
+ * Tutti :: Service
+ * $Id$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2012 - 2014 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import org.apache.commons.collections4.CollectionUtils;
+
+import java.util.Set;
+
+/**
+ * Created on 5/20/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 3.4.4
+ */
+public class SumatraExportResult {
+
+ /**
+ * Name of species that are not well filled in protocol.
+ */
+ protected Set<String> badSpecies;
+
+ /**
+ * Name of benthos that are not well filled in protocol.
+ */
+ protected Set<String> badBenthos;
+
+ public Set<String> getBadSpecies() {
+ return badSpecies;
+ }
+
+ public Set<String> getBadBenthos() {
+ return badBenthos;
+ }
+
+ public void setBadSpecies(Set<String> badSpecies) {
+ this.badSpecies = badSpecies;
+ }
+
+ public void setBadBenthos(Set<String> badSBenthos) {
+ this.badBenthos = badSBenthos;
+ }
+
+ public boolean withBadSpecies() {
+ return CollectionUtils.isNotEmpty(badSpecies);
+ }
+
+ public boolean withBadBenthos() {
+ return CollectionUtils.isNotEmpty(badBenthos);
+ }
+}
Property changes on: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/SumatraExportResult.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2014-05-19 19:10:43 UTC (rev 1791)
+++ branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2014-05-20 13:40:25 UTC (rev 1792)
@@ -82,6 +82,7 @@
tutti.service.exportSumatra.header.averageWeight=
tutti.service.exportSumatra.header.endLatitude=
tutti.service.exportSumatra.header.endLongitude=
+tutti.service.exportSumatra.header.genuisSpecies=
tutti.service.exportSumatra.header.moule=
tutti.service.exportSumatra.header.multirigAggregation=
tutti.service.exportSumatra.header.number=
@@ -91,6 +92,7 @@
tutti.service.exportSumatra.header.startLatitude=
tutti.service.exportSumatra.header.startLongitude=
tutti.service.exportSumatra.header.station=
+tutti.service.exportSumatra.header.surveySpecies=
tutti.service.exportSumatra.header.totalWeight=
tutti.service.exportSumatra.header.weight=
tutti.service.exportSumatra.header.year=
Modified: branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-05-19 19:10:43 UTC (rev 1791)
+++ branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-05-20 13:40:25 UTC (rev 1792)
@@ -1,5 +1,5 @@
-tutti.error.benthos.not.in.protocol=L'espèce (onglet Benthos) %s n'est pas déclarée dans le protocole.
-tutti.error.species.not.in.protocol=L'espèce %s (onglet Espèce) n'est pas déclarée dans le protocole.
+tutti.error.benthos.not.in.protocol=Les espèces suivantes (onglet Benthos) ne sont déclarées dans le protocole \: %s.
+tutti.error.species.not.in.protocol=Les espèces suivantes (onglet Espèce) ne sont pas déclarées dans le protocole \: %s.
tutti.io.mkDir.error=Erreur à la création du dossier %s
tutti.property.attachment=Pièce jointe
tutti.property.caracteristic=Caractéristique
@@ -81,15 +81,16 @@
tutti.service.exportSumatra.header.averageWeight=poidsmoy
tutti.service.exportSumatra.header.endLatitude=latitudefin
tutti.service.exportSumatra.header.endLongitude=longitudefin
+tutti.service.exportSumatra.header.genuisSpecies=especescientifique
tutti.service.exportSumatra.header.moule=moule
tutti.service.exportSumatra.header.multirigAggregation=poche
tutti.service.exportSumatra.header.number=nbindividus
tutti.service.exportSumatra.header.sign=signe
tutti.service.exportSumatra.header.sortedWeight=tri
-tutti.service.exportSumatra.header.species=espece
tutti.service.exportSumatra.header.startLatitude=latitudedebut
tutti.service.exportSumatra.header.startLongitude=longitudedebut
tutti.service.exportSumatra.header.station=station
+tutti.service.exportSumatra.header.surveySpecies=espececampagne
tutti.service.exportSumatra.header.totalWeight=total
tutti.service.exportSumatra.header.weight=total
tutti.service.exportSumatra.header.year=annee
Modified: branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java 2014-05-19 19:10:43 UTC (rev 1791)
+++ branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java 2014-05-20 13:40:25 UTC (rev 1792)
@@ -61,10 +61,10 @@
public static final String OPERATION_BAD_3_ID = "100115";
public static final String EXPORT_CONTENT =
- "annee;station;poche;espece;signe;tri;total;poidsmoy;longueurmoy;nbindividus;moule;latitudedebut;longitudedebut;latitudefin;longitudefin\n" +
- "2013;A;1;CHAMMAG;;100.0;100.0;2.5;;40;0.4;;;;\n" +
- "2013;A;1;ECHIGAM;;100.0;100.0;0.23980816;;417;4.17;;;;\n" +
- "2013;A;1;BRISATLAN;;100.0;100.0;1.0638298;10.571428;94;0.94;;;;";
+ "annee;station;poche;especescientifique;espececampagne;signe;tri;total;poidsmoy;longueurmoy;nbindividus;moule;latitudedebut;longitudedebut;latitudefin;longitudefin\n" +
+ "2013;A;1;Chama magna;CHAMMAG;;100.0;100.0;2.5;;40;0.4;;;;\n" +
+ "2013;A;1;Echinogammarus;ECHIGAM;;100.0;100.0;0.23980816;;417;4.17;;;;\n" +
+ "2013;A;1;Brissopsis atlantica;BRISATLAN;;100.0;100.0;1.0638298;10.571428;94;0.94;;;;";
protected CatchesSumatraExportService service;
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java 2014-05-19 19:10:43 UTC (rev 1791)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java 2014-05-20 13:40:25 UTC (rev 1792)
@@ -28,6 +28,7 @@
import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.service.export.sumatra.CatchesSumatraExportService;
+import fr.ifremer.tutti.service.export.sumatra.SumatraExportResult;
import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -52,6 +53,8 @@
protected File file;
+ protected SumatraExportResult sumatraExportResult;
+
public ExportCruiseForSumatraAction(MainUIHandler handler) {
super(handler, false);
}
@@ -91,6 +94,7 @@
@Override
public void releaseAction() {
file = null;
+ sumatraExportResult = null;
super.releaseAction();
}
@@ -111,13 +115,38 @@
// export catches
CatchesSumatraExportService service =
getContext().getCatchesSumatraExportService();
- service.exportCruiseForSumatra(file, cruise.getId(), pm);
+ sumatraExportResult = service.exportCruiseForSumatra(file, cruise.getId(), pm);
}
@Override
public void postSuccessAction() {
super.postSuccessAction();
+
+ if (sumatraExportResult.withBadSpecies()) {
+
+ StringBuilder badSpeciesList = new StringBuilder();
+ for (String s : sumatraExportResult.getBadSpecies()) {
+ badSpeciesList.append("<li>").append(s);
+ }
+
+ displayWarningMessage(
+ t("tutti.exportFishingOperationForSumatra.title.badSpecies"),
+ t("tutti.exportFishingOperationForSumatra.message.badSpecies", badSpeciesList.toString()));
+ }
+
+ if (sumatraExportResult.withBadBenthos()) {
+
+ StringBuilder badBenthosList = new StringBuilder();
+ for (String s : sumatraExportResult.getBadBenthos()) {
+ badBenthosList.append("<li>").append(s);
+ }
+
+ displayWarningMessage(
+ t("tutti.exportFishingOperationForSumatra.title.badBenthos"),
+ t("tutti.exportFishingOperationForSumatra.message.badBenthos", badBenthosList.toString()));
+ }
+
sendMessage(t("tutti.exportCruiseForSumatra.action.success", file));
}
}
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java 2014-05-19 19:10:43 UTC (rev 1791)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java 2014-05-20 13:40:25 UTC (rev 1792)
@@ -29,6 +29,7 @@
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
import fr.ifremer.tutti.service.export.sumatra.CatchesSumatraExportService;
+import fr.ifremer.tutti.service.export.sumatra.SumatraExportResult;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
@@ -55,6 +56,8 @@
protected File file;
+ protected SumatraExportResult sumatraExportResult;
+
public ExportFishingOperationForSumatraAction(EditCatchesUIHandler handler) {
super(handler, true);
}
@@ -105,6 +108,7 @@
@Override
public void releaseAction() {
file = null;
+ sumatraExportResult = null;
super.releaseAction();
}
@@ -128,16 +132,42 @@
// export catches
CatchesSumatraExportService service =
getContext().getCatchesSumatraExportService();
- service.exportFishingOperationForSumatra(file,
- cruise.getId(),
- fishingOperation.getId(),
- pm);
+ sumatraExportResult = service.exportFishingOperationForSumatra(file,
+ cruise.getId(),
+ fishingOperation.getId(),
+ pm);
+
}
@Override
public void postSuccessAction() {
super.postSuccessAction();
+
+ if (sumatraExportResult.withBadSpecies()) {
+
+ StringBuilder badSpeciesList = new StringBuilder();
+ for (String s : sumatraExportResult.getBadSpecies()) {
+ badSpeciesList.append("<li>").append(s);
+ }
+
+ displayWarningMessage(
+ t("tutti.exportFishingOperationForSumatra.title.badSpecies"),
+ t("tutti.exportFishingOperationForSumatra.message.badSpecies", badSpeciesList.toString()));
+ }
+
+ if (sumatraExportResult.withBadBenthos()) {
+
+ StringBuilder badBenthosList = new StringBuilder();
+ for (String s : sumatraExportResult.getBadBenthos()) {
+ badBenthosList.append("<li>").append(s);
+ }
+
+ displayWarningMessage(
+ t("tutti.exportFishingOperationForSumatra.title.badBenthos"),
+ t("tutti.exportFishingOperationForSumatra.message.badBenthos", badBenthosList.toString()));
+ }
+
sendMessage(t("tutti.exportFishingOperationForSumatra.action.success", file));
}
}
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-05-19 19:10:43 UTC (rev 1791)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-05-20 13:40:25 UTC (rev 1792)
@@ -1142,8 +1142,12 @@
tutti.exportDb.step.reloadApplication=
tutti.exportFishingOperationForSumatra.action.chooseFile=
tutti.exportFishingOperationForSumatra.action.success=
+tutti.exportFishingOperationForSumatra.message.badBenthos=
+tutti.exportFishingOperationForSumatra.message.badSpecies=
tutti.exportFishingOperationForSumatra.message.model.modified=Catch was modified, please save it before launching an export.
tutti.exportFishingOperationForSumatra.message.required.protocol=
+tutti.exportFishingOperationForSumatra.title.badBenthos=
+tutti.exportFishingOperationForSumatra.title.badSpecies=
tutti.exportFishingOperationForSumatra.title.choose.exportFile=
tutti.exportFishingOperationForSumatra.title.model.modified=Can't export, catch is modified
tutti.exportFishingOperationForSumatra.title.required.protocol=
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-05-19 19:10:43 UTC (rev 1791)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-05-20 13:40:25 UTC (rev 1792)
@@ -1125,8 +1125,12 @@
tutti.exportDb.step.reloadApplication=Redémarrage de l'application
tutti.exportFishingOperationForSumatra.action.chooseFile=Choisir le fichier d'export
tutti.exportFishingOperationForSumatra.action.success=Le trait a été exporté dans le fichier <strong>%s</strong>
+tutti.exportFishingOperationForSumatra.message.badBenthos=<html><body>Des espèces non présentes (ou avec un code campagne non renseigné) dans le protocole (onglet Benthos) ont été détectées \: <ul>%s</ul></body></html>
+tutti.exportFishingOperationForSumatra.message.badSpecies=<html><body>Des espèces non présentes (ou avec un code campagne non renseigné) dans le protocole (onglet Espèce) ont été détectées \: <ul>%s</ul></body></html>
tutti.exportFishingOperationForSumatra.message.model.modified=La capture a été modifiée, veuillez l'enregistrer avant de lancer un export.
tutti.exportFishingOperationForSumatra.message.required.protocol=<html><body>Pour faire un export csv, un protocol est requis.<br/>De plus toutes les espèces de la captures doivent être renseignées dans le protocole.</body></html>
+tutti.exportFishingOperationForSumatra.title.badBenthos=Espèces non présentes dans le protocole (onglet Benthos)
+tutti.exportFishingOperationForSumatra.title.badSpecies=Espèces non présentes dans le protocole (onglet Espèce)
tutti.exportFishingOperationForSumatra.title.choose.exportFile=Exporter le trait de la campagne
tutti.exportFishingOperationForSumatra.title.model.modified=Impossible d'exporter, capture modifiée
tutti.exportFishingOperationForSumatra.title.required.protocol=Protocole requis pour export csv
1
0
19 May '14
Author: tchemit
Date: 2014-05-19 21:10:43 +0200 (Mon, 19 May 2014)
New Revision: 1791
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1791
Log:
refs-80 #5108 [EXPORT SUMATRA] ?\195?\169volutions
Removed:
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModelV2.java
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowV2.java
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceV2.java
branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceV2Test.java
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraV2Action.java
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraV2Action.java
Modified:
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRow.java
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java
branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -153,13 +153,6 @@
}
};
- public static final ValueFormatter<Number> NUMBER_OR_NA = new ValueFormatter<Number>() {
- @Override
- public String format(Number s) {
- return s == null ? "NA" : s.toString();
- }
- };
-
public static final ValueFormatter<Species> SPECIES_SURVEY_CODE_FORMATTER = new ValueFormatter<Species>() {
@Override
public String format(Species s) {
Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRow.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRow.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRow.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -28,6 +28,7 @@
import fr.ifremer.tutti.persistence.entities.referential.Species;
import java.io.Serializable;
+import java.util.Date;
/**
* @author kmorin <kmorin(a)codelutin.com>
@@ -37,26 +38,82 @@
private static final long serialVersionUID = 1L;
- public static final String PROPERTY_FISHING_OPERATION = "fishingOperation";
+ public static final String PROPERTY_STATION_NUMBER = FishingOperation.PROPERTY_STATION_NUMBER;
+ public static final String PROPERTY_GEAR_SHOOTING_START_DATE = FishingOperation.PROPERTY_GEAR_SHOOTING_START_DATE;
+
+ public static final String PROPERTY_MULTIRIG_AGGREGATION = FishingOperation.PROPERTY_MULTIRIG_AGGREGATION;
+
+ public static final String PROPERTY_GEAR_SHOOTING_START_LATITUDE = FishingOperation.PROPERTY_GEAR_SHOOTING_START_LATITUDE;
+
+ public static final String PROPERTY_GEAR_SHOOTING_END_LATITUDE = FishingOperation.PROPERTY_GEAR_SHOOTING_END_LATITUDE;
+
+ public static final String PROPERTY_GEAR_SHOOTING_START_LONGITUDE = FishingOperation.PROPERTY_GEAR_SHOOTING_START_LONGITUDE;
+
+ public static final String PROPERTY_GEAR_SHOOTING_END_LONGITUDE = FishingOperation.PROPERTY_GEAR_SHOOTING_END_LONGITUDE;
+
public static final String PROPERTY_SPECIES = "species";
- public static final String PROPERTY_WEIGHT = "weight";
+ public static final String PROPERTY_SIGN = "sign";
+ public static final String PROPERTY_TOTAL_WEIGHT = "totalWeight";
+
+ public static final String PROPERTY_SORTED_WEIGHT = "sortedWeight";
+
+ public static final String PROPERTY_AVERAGE_WEIGHT = "averageWeight";
+
+ public static final String PROPERTY_AVERAGE_SIZE = "averageSize";
+
public static final String PROPERTY_NUMBER = "number";
+ public static final String PROPERTY_MOULE = "moule";
+
protected FishingOperation fishingOperation;
protected Species species;
- protected Float weight;
+ protected String sign;
+ protected Float totalWeight;
+
+ protected Float sortedWeight;
+
+ protected Float averageWeight;
+
+ protected Float averageSize;
+
protected Integer number;
- public FishingOperation getFishingOperation() {
- return fishingOperation;
+ protected Float moule;
+
+ public String getStationNumber() {
+ return fishingOperation.getStationNumber();
}
+ public Date getGearShootingStartDate() {
+ return fishingOperation.getGearShootingStartDate();
+ }
+
+ public String getMultirigAggregation() {
+ return fishingOperation.getMultirigAggregation();
+ }
+
+ public Float getGearShootingStartLatitude() {
+ return fishingOperation.getGearShootingStartLatitude();
+ }
+
+ public Float getGearShootingStartLongitude() {
+ return fishingOperation.getGearShootingStartLongitude();
+ }
+
+ public Float getGearShootingEndLatitude() {
+ return fishingOperation.getGearShootingEndLatitude();
+ }
+
+ public Float getGearShootingEndLongitude() {
+ return fishingOperation.getGearShootingEndLongitude();
+ }
+
public void setFishingOperation(FishingOperation fishingOperation) {
this.fishingOperation = fishingOperation;
}
@@ -69,14 +126,46 @@
this.species = species;
}
- public Float getWeight() {
- return weight;
+ public String getSign() {
+ return sign;
}
- public void setWeight(Float weight) {
- this.weight = weight;
+ public void setSign(String sign) {
+ this.sign = sign;
}
+ public Float getTotalWeight() {
+ return totalWeight;
+ }
+
+ public void setTotalWeight(Float totalWeight) {
+ this.totalWeight = totalWeight;
+ }
+
+ public Float getSortedWeight() {
+ return sortedWeight;
+ }
+
+ public void setSortedWeight(Float sortedWeight) {
+ this.sortedWeight = sortedWeight;
+ }
+
+ public Float getAverageWeight() {
+ return averageWeight;
+ }
+
+ public void setAverageWeight(Float averageWeight) {
+ this.averageWeight = averageWeight;
+ }
+
+ public Float getAverageSize() {
+ return averageSize;
+ }
+
+ public void setAverageSize(Float averageSize) {
+ this.averageSize = averageSize;
+ }
+
public Integer getNumber() {
return number;
}
@@ -84,4 +173,12 @@
public void setNumber(Integer number) {
this.number = number;
}
+
+ public Float getMoule() {
+ return moule;
+ }
+
+ public void setMoule(Float moule) {
+ this.moule = moule;
+ }
}
Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModel.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -24,13 +24,9 @@
* #L%
*/
-import com.google.common.base.Preconditions;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.TuttiCsvUtil;
import fr.ifremer.tutti.service.export.ExportBatchEntry;
-import org.nuiton.csv.Common;
-import org.nuiton.csv.ValueFormatter;
import static org.nuiton.i18n.I18n.t;
@@ -43,24 +39,21 @@
public CatchRowModel(char separator) {
super(separator);
- // export definition
-
- newColumnForExport(t("tutti.service.exportSumatra.header.station"), CatchRow.PROPERTY_FISHING_OPERATION, new ValueFormatter<FishingOperation>() {
- @Override
- public String format(FishingOperation o) {
- Preconditions.checkNotNull(o, t("tutti.service.exportSumatra.error.station.null"));
- return o.getStationNumber();
- }
- });
- newColumnForExport(t("tutti.service.exportSumatra.header.species"), CatchRow.PROPERTY_SPECIES, new ValueFormatter<Species>() {
- @Override
- public String format(Species s) {
- Preconditions.checkNotNull(s, t("tutti.service.exportSumatra.error.species.null"));
- return s.getName();
- }
- });
- newColumnForExport(t("tutti.service.exportSumatra.header.weight"), CatchRow.PROPERTY_WEIGHT, Common.PRIMITIVE_FLOAT);
- newColumnForExport(t("tutti.service.exportSumatra.header.number"), CatchRow.PROPERTY_NUMBER, Common.PRIMITIVE_INTEGER);
+ newColumnForExport(t("tutti.service.exportSumatra.header.year"), CatchRow.PROPERTY_GEAR_SHOOTING_START_DATE, TuttiCsvUtil.YEAR);
+ newColumnForExport(t("tutti.service.exportSumatra.header.station"), CatchRow.PROPERTY_STATION_NUMBER);
+ newColumnForExport(t("tutti.service.exportSumatra.header.multirigAggregation"), CatchRow.PROPERTY_MULTIRIG_AGGREGATION);
+ newColumnForExport(t("tutti.service.exportSumatra.header.species"), CatchRow.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_SURVEY_CODE_FORMATTER);
+ newColumnForExport(t("tutti.service.exportSumatra.header.sign"), CatchRow.PROPERTY_SIGN);
+ newColumnForExport(t("tutti.service.exportSumatra.header.sortedWeight"), CatchRow.PROPERTY_SORTED_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT);
+ newColumnForExport(t("tutti.service.exportSumatra.header.totalWeight"), CatchRow.PROPERTY_TOTAL_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT);
+ newColumnForExport(t("tutti.service.exportSumatra.header.averageWeight"), CatchRow.PROPERTY_AVERAGE_WEIGHT, TuttiCsvUtil.FLOAT);
+ newColumnForExport(t("tutti.service.exportSumatra.header.averageSize"), CatchRow.PROPERTY_AVERAGE_SIZE, TuttiCsvUtil.FLOAT);
+ newColumnForExport(t("tutti.service.exportSumatra.header.number"), CatchRow.PROPERTY_NUMBER, TuttiCsvUtil.PRIMITIVE_INTEGER);
+ newColumnForExport(t("tutti.service.exportSumatra.header.moule"), CatchRow.PROPERTY_MOULE, TuttiCsvUtil.FLOAT);
+ newColumnForExport(t("tutti.service.exportSumatra.header.startLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LATITUDE);
+ newColumnForExport(t("tutti.service.exportSumatra.header.startLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_START_LONGITUDE);
+ newColumnForExport(t("tutti.service.exportSumatra.header.endLatitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LATITUDE);
+ newColumnForExport(t("tutti.service.exportSumatra.header.endLongitude"), CatchRow.PROPERTY_GEAR_SHOOTING_END_LONGITUDE);
}
@Override
@@ -72,8 +65,20 @@
CatchRow row = newEmptyInstance();
row.setFishingOperation(operation);
row.setSpecies(entry.getBatch().getSpecies());
- row.setWeight(entry.getTotalWeight());
- row.setNumber(entry.getTotalNumber());
+ row.setSortedWeight(entry.getSortedWeight());
+ float totalWeight = entry.getTotalWeight();
+ int number = entry.getTotalNumber();
+
+ row.setNumber(number);
+ row.setTotalWeight(totalWeight);
+
+ // average size
+ row.setAverageSize(entry.getAverageFrequency());
+
+ // avarage weight
+ row.setAverageWeight(number == 0 ? null : totalWeight / (float) number);
+ // moule
+ row.setMoule(totalWeight == 0 ? null : (float) number / totalWeight);
return row;
}
Deleted: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModelV2.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModelV2.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowModelV2.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -1,83 +0,0 @@
-package fr.ifremer.tutti.service.export.sumatra;
-
-/*
- * #%L
- * Tutti :: Service
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.service.TuttiCsvUtil;
-import fr.ifremer.tutti.service.export.ExportBatchEntry;
-
-import static org.nuiton.i18n.I18n.t;
-
-/**
- * @author tchemit
- * @since 3.3
- */
-public class CatchRowModelV2 extends TuttiCsvUtil.AbstractTuttiImportExportModel<CatchRowV2> {
-
- public CatchRowModelV2(char separator) {
- super(separator);
-
- newColumnForExport(t("tutti.service.exportSumatraV2.header.year"), CatchRowV2.PROPERTY_GEAR_SHOOTING_START_DATE, TuttiCsvUtil.YEAR);
- newColumnForExport(t("tutti.service.exportSumatraV2.header.station"), CatchRowV2.PROPERTY_STATION_NUMBER);
- newColumnForExport(t("tutti.service.exportSumatraV2.header.multirigAggregation"), CatchRowV2.PROPERTY_MULTIRIG_AGGREGATION);
-
- newColumnForExport(t("tutti.service.exportSumatraV2.header.species"), CatchRowV2.PROPERTY_SPECIES, TuttiCsvUtil.SPECIES_SURVEY_CODE_FORMATTER);
- newColumnForExport(t("tutti.service.exportSumatraV2.header.sign"), CatchRowV2.PROPERTY_SIGN);
-
- newColumnForExport(t("tutti.service.exportSumatraV2.header.sortedWeight"), CatchRowV2.PROPERTY_SORTED_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT);
- newColumnForExport(t("tutti.service.exportSumatraV2.header.totalWeight"), CatchRowV2.PROPERTY_TOTAL_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT);
- newColumnForExport(t("tutti.service.exportSumatraV2.header.averageWeight"), CatchRowV2.PROPERTY_AVERAGE_WEIGHT, TuttiCsvUtil.NUMBER_OR_NA);
- newColumnForExport(t("tutti.service.exportSumatraV2.header.averageSize"), CatchRowV2.PROPERTY_AVERAGE_SIZE, TuttiCsvUtil.NUMBER_OR_NA);
- newColumnForExport(t("tutti.service.exportSumatraV2.header.number"), CatchRowV2.PROPERTY_NUMBER, TuttiCsvUtil.PRIMITIVE_INTEGER);
- newColumnForExport(t("tutti.service.exportSumatraV2.header.moule"), CatchRowV2.PROPERTY_MOULE, TuttiCsvUtil.NUMBER_OR_NA);
- }
-
- @Override
- public CatchRowV2 newEmptyInstance() {
- return new CatchRowV2();
- }
-
- public CatchRowV2 newRow(FishingOperation operation, ExportBatchEntry entry) {
- CatchRowV2 row = newEmptyInstance();
- row.setFishingOperation(operation);
- row.setSpecies(entry.getBatch().getSpecies());
- row.setSortedWeight(entry.getSortedWeight());
- float totalWeight = entry.getTotalWeight();
- int number = entry.getTotalNumber();
-
- row.setNumber(number);
- row.setTotalWeight(totalWeight);
-
- // average size
- row.setAverageSize(entry.getAverageFrequency());
-
- // avarage weight
- row.setAverageWeight(number == 0 ? null : totalWeight / (float) number);
- // moule
- row.setMoule(totalWeight == 0 ? null : (float) number / totalWeight);
- return row;
- }
-
-}
Deleted: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowV2.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowV2.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchRowV2.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -1,160 +0,0 @@
-package fr.ifremer.tutti.service.export.sumatra;
-
-/*
- * #%L
- * Tutti :: Service
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.persistence.entities.referential.Species;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * @author tchemit
- * @since 3.3
- */
-public class CatchRowV2 implements Serializable {
-
- private static final long serialVersionUID = 1L;
-
- public static final String PROPERTY_STATION_NUMBER = FishingOperation.PROPERTY_STATION_NUMBER;
-
- public static final String PROPERTY_GEAR_SHOOTING_START_DATE = FishingOperation.PROPERTY_GEAR_SHOOTING_START_DATE;
-
- public static final String PROPERTY_MULTIRIG_AGGREGATION = FishingOperation.PROPERTY_MULTIRIG_AGGREGATION;
-
- public static final String PROPERTY_SPECIES = "species";
-
- public static final String PROPERTY_SIGN = "sign";
-
- public static final String PROPERTY_TOTAL_WEIGHT = "totalWeight";
-
- public static final String PROPERTY_SORTED_WEIGHT = "sortedWeight";
-
- public static final String PROPERTY_AVERAGE_WEIGHT = "averageWeight";
-
- public static final String PROPERTY_AVERAGE_SIZE = "averageSize";
-
- public static final String PROPERTY_NUMBER = "number";
-
- public static final String PROPERTY_MOULE = "moule";
-
- protected FishingOperation fishingOperation;
-
- protected Species species;
-
- protected String sign;
-
- protected Float totalWeight;
-
- protected Float sortedWeight;
-
- protected Float averageWeight;
-
- protected Float averageSize;
-
- protected Integer number;
-
- protected Float moule;
-
- public String getStationNumber() {
- return fishingOperation.getStationNumber();
- }
-
- public Date getGearShootingStartDate() {
- return fishingOperation.getGearShootingStartDate();
- }
-
- public String getMultirigAggregation() {
- return fishingOperation.getMultirigAggregation();
- }
-
- public void setFishingOperation(FishingOperation fishingOperation) {
- this.fishingOperation = fishingOperation;
- }
-
- public Species getSpecies() {
- return species;
- }
-
- public void setSpecies(Species species) {
- this.species = species;
- }
-
- public String getSign() {
- return sign;
- }
-
- public void setSign(String sign) {
- this.sign = sign;
- }
-
- public Float getTotalWeight() {
- return totalWeight;
- }
-
- public void setTotalWeight(Float totalWeight) {
- this.totalWeight = totalWeight;
- }
-
- public Float getSortedWeight() {
- return sortedWeight;
- }
-
- public void setSortedWeight(Float sortedWeight) {
- this.sortedWeight = sortedWeight;
- }
-
- public Float getAverageWeight() {
- return averageWeight;
- }
-
- public void setAverageWeight(Float averageWeight) {
- this.averageWeight = averageWeight;
- }
-
- public Float getAverageSize() {
- return averageSize;
- }
-
- public void setAverageSize(Float averageSize) {
- this.averageSize = averageSize;
- }
-
- public Integer getNumber() {
- return number;
- }
-
- public void setNumber(Integer number) {
- this.number = number;
- }
-
- public Float getMoule() {
- return moule;
- }
-
- public void setMoule(Float moule) {
- this.moule = moule;
- }
-}
Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportService.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -31,6 +31,7 @@
import fr.ifremer.tutti.persistence.ProgressionModel;
import fr.ifremer.tutti.persistence.entities.data.Cruise;
import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.AbstractTuttiService;
import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.TuttiServiceContext;
@@ -45,7 +46,9 @@
import java.io.BufferedWriter;
import java.io.File;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import static org.nuiton.i18n.I18n.t;
@@ -187,34 +190,50 @@
persistenceService,
weightComputingService,
operationId,
- false);
+ true);
FishingOperation operation = exportContext.getFishingOperation();
// Species
if (exportContext.withSpeciesBatches()) {
+ Set<Species> allspecies = new HashSet<>();
+
List<ExportBatchEntry> entries =
exportContext.getSpeciesBatchEntry(true);
for (ExportBatchEntry entry : entries) {
+ // get species campaign code from protocol
+
+ allspecies.add(entry.getBatch().getSpecies());
+
CatchRow row = csvModel.newRow(operation, entry);
+ row.getSpecies();
rows.add(row);
}
+
+ // fill survey code in species
+ persistenceService.fillSpeciesSurveyCode(allspecies);
}
// Benthos
if (exportContext.withBenthosBatches()) {
+ Set<Species> allspecies = new HashSet<>();
+
List<ExportBatchEntry> entries =
exportContext.getBenthosBatchEntry(true);
for (ExportBatchEntry entry : entries) {
CatchRow row = csvModel.newRow(operation, entry);
+ allspecies.add(entry.getBatch().getSpecies());
rows.add(row);
}
+
+ // fill survey code in benthos
+ persistenceService.fillBenthosSurveyCode(allspecies);
}
}
}
Deleted: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceV2.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceV2.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceV2.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -1,242 +0,0 @@
-package fr.ifremer.tutti.service.export.sumatra;
-
-/*
- * #%L
- * Tutti :: Service
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import com.google.common.base.Charsets;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Lists;
-import com.google.common.io.Files;
-import fr.ifremer.tutti.persistence.ProgressionModel;
-import fr.ifremer.tutti.persistence.entities.data.Cruise;
-import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.persistence.entities.referential.Species;
-import fr.ifremer.tutti.service.AbstractTuttiService;
-import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.service.TuttiServiceContext;
-import fr.ifremer.tutti.service.catches.WeightComputingService;
-import fr.ifremer.tutti.service.export.ExportBatchEntry;
-import fr.ifremer.tutti.service.export.ExportCatchContext;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.csv.Export;
-import org.nuiton.jaxx.application.ApplicationTechnicalException;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import static org.nuiton.i18n.I18n.t;
-
-/**
- * To export as sumatra format (v2).
- *
- * @author tchemit
- * @since 3.3
- */
-public class CatchesSumatraExportServiceV2 extends AbstractTuttiService {
-
- private static final Log log =
- LogFactory.getLog(CatchesSumatraExportServiceV2.class);
-
- protected PersistenceService persistenceService;
-
- protected WeightComputingService weightComputingService;
-
- @Override
- public void setServiceContext(TuttiServiceContext context) {
- super.setServiceContext(context);
- persistenceService = getService(PersistenceService.class);
- weightComputingService = getService(WeightComputingService.class);
- }
-
- /**
- * Export selected cruise with the csv sumatra (v2) format.
- *
- * @param file where to generate report
- * @param cruiseId id of the cruise to export
- * @since 3.3
- */
- public void exportCruiseForSumatra(File file,
- String cruiseId,
- ProgressionModel progressionModel) {
-
- Preconditions.checkNotNull(cruiseId, "Cannot export a null cruise");
- Preconditions.checkNotNull(file, "Cannot export to a null file");
-
- if (log.isInfoEnabled()) {
- log.info("Will export cruise " + cruiseId + " to file: " + file);
- }
-
- progressionModel.increments(t("tutti.service.sumatra.export.step.load.cruise", cruiseId));
-
- Cruise cruise = persistenceService.getCruise(cruiseId);
- Preconditions.checkNotNull(cruise, "Cruise [" + cruiseId + "] not found");
-
- progressionModel.increments(t("tutti.service.sumatra.export.step.load.fishingOperationIds"));
-
- List<String> operations =
- persistenceService.getAllFishingOperationIds(cruiseId);
-
- if (log.isInfoEnabled()) {
- log.info(operations.size() + " operations found for cruise: " + cruiseId);
- }
-
- progressionModel.adaptTotal(operations.size() + 3);
-
- prepareOperationsAndExport(file, operations, progressionModel);
- }
-
- /**
- * Export selected fishing operation with the csv sumatra (v2) format.
- *
- * @param file where to generate report
- * @param cruiseId id of the cruise to export
- * @param fishingOperationId id of the fishing operation to export
- * @since 3.3
- */
- public void exportFishingOperationForSumatra(File file,
- String cruiseId,
- String fishingOperationId,
- ProgressionModel progressionModel) {
-
- Preconditions.checkNotNull(file, "Cannot export to a null file");
- Preconditions.checkNotNull(cruiseId, "Cannot export a null cruise");
- Preconditions.checkNotNull(fishingOperationId, "Cannot export a null fishing operation");
-
- if (log.isInfoEnabled()) {
- log.info("Will export fishing operation " +
- fishingOperationId + " to file: " + file);
- }
-
- progressionModel.increments(t("tutti.service.sumatra.export.step.load.cruise", cruiseId));
-
- Cruise cruise = persistenceService.getCruise(cruiseId);
- Preconditions.checkNotNull(cruise, "Cruise [" + cruiseId + "] not found");
-
- List<String> operations = Lists.newArrayList(fishingOperationId);
-
- prepareOperationsAndExport(file, operations, progressionModel);
- }
-
- protected void prepareOperationsAndExport(File file,
- List<String> operations,
- ProgressionModel progressionModel) {
-
- List<CatchRowV2> rows = Lists.newArrayList();
-
- CatchRowModelV2 csvModel =
- new CatchRowModelV2(context.getConfig().getCsvSeparator());
-
- if (operations != null) {
- for (String operationId : operations) {
-
- progressionModel.increments(t("tutti.service.sumatra.export.step.load.fishingOperation", operationId));
- if (!persistenceService.isFishingOperationWithCatchBatch(operationId)) {
-
- if (log.isWarnEnabled()) {
- log.warn("No catch for operation with id: " + operationId);
- }
- break;
- }
-
- prepareFishingOperation(csvModel, rows, operationId);
- }
- }
-
- progressionModel.increments(t("tutti.service.sumatra.export.step.export", file));
-
-
- BufferedWriter writer = null;
- try {
- writer = Files.newWriter(file, Charsets.UTF_8);
- Export export = Export.newExport(csvModel, rows);
- export.write(writer);
- writer.close();
-
- } catch (Exception e) {
- throw new ApplicationTechnicalException(t("tutti.service.sumatra.export.error", file), e);
- } finally {
- IOUtils.closeQuietly(writer);
- }
- }
-
- protected void prepareFishingOperation(CatchRowModelV2 csvModel,
- List<CatchRowV2> rows,
- String operationId) {
-
- ExportCatchContext exportContext = ExportCatchContext.newExportContext(
- persistenceService,
- weightComputingService,
- operationId,
- true);
-
- FishingOperation operation = exportContext.getFishingOperation();
-
- // Species
- if (exportContext.withSpeciesBatches()) {
-
- Set<Species> allspecies = new HashSet<>();
-
- List<ExportBatchEntry> entries =
- exportContext.getSpeciesBatchEntry(true);
-
- for (ExportBatchEntry entry : entries) {
-
- // get species campaign code from protocol
-
- allspecies.add(entry.getBatch().getSpecies());
-
- CatchRowV2 row = csvModel.newRow(operation, entry);
- row.getSpecies();
- rows.add(row);
- }
-
- // fill survey code in species
- persistenceService.fillSpeciesSurveyCode(allspecies);
- }
-
- // Benthos
- if (exportContext.withBenthosBatches()) {
-
- Set<Species> allspecies = new HashSet<>();
-
- List<ExportBatchEntry> entries =
- exportContext.getBenthosBatchEntry(true);
-
- for (ExportBatchEntry entry : entries) {
-
- CatchRowV2 row = csvModel.newRow(operation, entry);
- allspecies.add(entry.getBatch().getSpecies());
- rows.add(row);
- }
-
- // fill survey code in benthos
- persistenceService.fillBenthosSurveyCode(allspecies);
- }
- }
-}
Modified: branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2014-05-19 19:10:43 UTC (rev 1791)
@@ -78,10 +78,22 @@
tutti.service.exportCruise.exportSurvey=
tutti.service.exportSumatra.error.species.null=
tutti.service.exportSumatra.error.station.null=
+tutti.service.exportSumatra.header.averageSize=
+tutti.service.exportSumatra.header.averageWeight=
+tutti.service.exportSumatra.header.endLatitude=
+tutti.service.exportSumatra.header.endLongitude=
+tutti.service.exportSumatra.header.moule=
+tutti.service.exportSumatra.header.multirigAggregation=
tutti.service.exportSumatra.header.number=
+tutti.service.exportSumatra.header.sign=
+tutti.service.exportSumatra.header.sortedWeight=
tutti.service.exportSumatra.header.species=
+tutti.service.exportSumatra.header.startLatitude=
+tutti.service.exportSumatra.header.startLongitude=
tutti.service.exportSumatra.header.station=
+tutti.service.exportSumatra.header.totalWeight=
tutti.service.exportSumatra.header.weight=
+tutti.service.exportSumatra.header.year=
tutti.service.exportSumatraV2.header.averageSize=Averagesize
tutti.service.exportSumatraV2.header.averageWeight=AverageWeight
tutti.service.exportSumatraV2.header.moule=Moule
Modified: branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-05-19 19:10:43 UTC (rev 1791)
@@ -77,21 +77,22 @@
tutti.service.exportCruise.exportSurvey=<html>Export du fichier <strong>survey.csv</strong> pour la campagne %s</html>
tutti.service.exportSumatra.error.species.null=L'espèce est nulle
tutti.service.exportSumatra.error.station.null=Le trait est nul
-tutti.service.exportSumatra.header.number=NbIndividus
-tutti.service.exportSumatra.header.species=Espèce
-tutti.service.exportSumatra.header.station=Station
-tutti.service.exportSumatra.header.weight=Total
-tutti.service.exportSumatraV2.header.averageSize=LongueurMoy
-tutti.service.exportSumatraV2.header.averageWeight=PoidsMoy
-tutti.service.exportSumatraV2.header.moule=Moule
-tutti.service.exportSumatraV2.header.multirigAggregation=Poche
-tutti.service.exportSumatraV2.header.number=NbIndividus
-tutti.service.exportSumatraV2.header.sign=Signe
-tutti.service.exportSumatraV2.header.sortedWeight=Tri
-tutti.service.exportSumatraV2.header.species=Espèce
-tutti.service.exportSumatraV2.header.station=Station
-tutti.service.exportSumatraV2.header.totalWeight=Total
-tutti.service.exportSumatraV2.header.year=Année
+tutti.service.exportSumatra.header.averageSize=longueurmoy
+tutti.service.exportSumatra.header.averageWeight=poidsmoy
+tutti.service.exportSumatra.header.endLatitude=latitudefin
+tutti.service.exportSumatra.header.endLongitude=longitudefin
+tutti.service.exportSumatra.header.moule=moule
+tutti.service.exportSumatra.header.multirigAggregation=poche
+tutti.service.exportSumatra.header.number=nbindividus
+tutti.service.exportSumatra.header.sign=signe
+tutti.service.exportSumatra.header.sortedWeight=tri
+tutti.service.exportSumatra.header.species=espece
+tutti.service.exportSumatra.header.startLatitude=latitudedebut
+tutti.service.exportSumatra.header.startLongitude=longitudedebut
+tutti.service.exportSumatra.header.station=station
+tutti.service.exportSumatra.header.totalWeight=total
+tutti.service.exportSumatra.header.weight=total
+tutti.service.exportSumatra.header.year=annee
tutti.service.multipost.attachment.copy.error=Erreur lors de l'export de la pièce-jointe %s
tutti.service.multipost.attachment.mkdir.error=Impossible de créer le répertoire %s
tutti.service.multipost.export.attachments.error=Erreur lors de l'export des pièces-jointes
Modified: branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceTest.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -25,6 +25,8 @@
*/
import fr.ifremer.tutti.persistence.ProgressionModel;
+import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import fr.ifremer.tutti.service.PersistenceService;
import fr.ifremer.tutti.service.ServiceDbResource;
import fr.ifremer.tutti.service.TuttiServiceContext;
import fr.ifremer.tutti.service.catches.TuttiWeightComputingException;
@@ -59,10 +61,10 @@
public static final String OPERATION_BAD_3_ID = "100115";
public static final String EXPORT_CONTENT =
- "Station;Espèce;Total;NbIndividus\n" +
- "A;Chama magna;100.0;40\n" +
- "A;Echinogammarus;100.0;417\n" +
- "A;Brissopsis atlantica;100.0;94";
+ "annee;station;poche;espece;signe;tri;total;poidsmoy;longueurmoy;nbindividus;moule;latitudedebut;longitudedebut;latitudefin;longitudefin\n" +
+ "2013;A;1;CHAMMAG;;100.0;100.0;2.5;;40;0.4;;;;\n" +
+ "2013;A;1;ECHIGAM;;100.0;100.0;0.23980816;;417;4.17;;;;\n" +
+ "2013;A;1;BRISATLAN;;100.0;100.0;1.0638298;10.571428;94;0.94;;;;";
protected CatchesSumatraExportService service;
@@ -79,6 +81,12 @@
dbResource.openDataContext();
+ File protocolFile = new File("src/test/resources/tuttiProtocol.tuttiProtocol");
+
+ TuttiProtocol protocol = dbResource.loadProtocol(protocolFile);
+
+ serviceContext.getService(PersistenceService.class).setProtocol(protocol);
+
service = serviceContext.getService(CatchesSumatraExportService.class);
}
@@ -100,8 +108,7 @@
@Test
public void testExportCruiseForSumatra() throws Exception {
- dataContext = dbResource.loadContext(PROGRAM_ID, CRUISE_ID, 1,
- OPERATION_1_ID);
+ dataContext = dbResource.loadContext(PROGRAM_ID, CRUISE_ID, 1, OPERATION_1_ID);
File exportFile = new File(dataDirectory, "exportSumatra.csv");
Deleted: branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceV2Test.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceV2Test.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/export/sumatra/CatchesSumatraExportServiceV2Test.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -1,123 +0,0 @@
-package fr.ifremer.tutti.service.export.sumatra;
-
-/*
- * #%L
- * Tutti :: Service
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.persistence.ProgressionModel;
-import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
-import fr.ifremer.tutti.service.PersistenceService;
-import fr.ifremer.tutti.service.ServiceDbResource;
-import fr.ifremer.tutti.service.TuttiServiceContext;
-import fr.ifremer.tutti.service.catches.TuttiWeightComputingException;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
-
-import java.io.File;
-
-/**
- * @author tchemit <chemit(a)codelutin.com>
- * @since 3.3
- */
-public class CatchesSumatraExportServiceV2Test {
-
- @ClassRule
- public static final ServiceDbResource dbResource =
- ServiceDbResource.readDb("dbExport");
-
- public static final String PROGRAM_ID = "CAM-TEST_ELEVATION";
-
- public static final String CRUISE_BAD_ID = "100003";
-
- public static final String CRUISE_ID = "100004";
-
- public static final String OPERATION_1_ID = "100116";
-
- public static final String OPERATION_BAD_1_ID = "100112";
-
- public static final String OPERATION_BAD_2_ID = "100113";
-
- public static final String OPERATION_BAD_3_ID = "100115";
-
- public static final String EXPORT_CONTENT =
- "Année;Station;Poche;Espèce;Signe;Tri;Total;PoidsMoy;LongueurMoy;NbIndividus;Moule\n" +
- "2013;A;1;CHAMMAG;;100.0;100.0;2.5;NA;40;0.4\n" +
- "2013;A;1;ECHIGAM;;100.0;100.0;0.23980816;NA;417;4.17\n" +
- "2013;A;1;BRISATLAN;;100.0;100.0;1.0638298;10.571428;94;0.94";
-
- protected CatchesSumatraExportServiceV2 service;
-
- protected ServiceDbResource.DataContext dataContext;
-
- protected File dataDirectory;
-
- @Before
- public void setUp() throws Exception {
-
- dataDirectory = dbResource.getConfig().getDataDirectory();
-
- TuttiServiceContext serviceContext = dbResource.getServiceContext();
-
- dbResource.openDataContext();
-
- File protocolFile = new File("src/test/resources/tuttiProtocol.tuttiProtocol");
-
- TuttiProtocol protocol = dbResource.loadProtocol(protocolFile);
-
- serviceContext.getService(PersistenceService.class).setProtocol(protocol);
-
- service = serviceContext.getService(CatchesSumatraExportServiceV2.class);
- }
-
- @Test(expected = TuttiWeightComputingException.class)
- public void testExportCruiseForSumatraBadCruise() throws Exception {
-
- dataContext = dbResource.loadContext(PROGRAM_ID, CRUISE_BAD_ID, 3,
- OPERATION_BAD_2_ID,
- OPERATION_BAD_1_ID,
- OPERATION_BAD_3_ID);
-
- File exportFile = new File(dataDirectory, "exportSumatra.csv");
-
- ProgressionModel progressionModel = new ProgressionModel();
- progressionModel.setTotal(3);
- service.exportCruiseForSumatra(exportFile, CRUISE_BAD_ID, progressionModel);
- }
-
- @Test
- public void testExportCruiseForSumatra() throws Exception {
-
- dataContext = dbResource.loadContext(PROGRAM_ID, CRUISE_ID, 1, OPERATION_1_ID);
-
- File exportFile = new File(dataDirectory, "exportSumatra.csv");
-
- ProgressionModel progressionModel = new ProgressionModel();
- progressionModel.setTotal(3);
- service.exportCruiseForSumatra(exportFile, CRUISE_ID, progressionModel);
-
- ServiceDbResource.assertFileContent("Sumatra export file:\n",
- exportFile,
- EXPORT_CONTENT);
- }
-}
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -44,7 +44,6 @@
import fr.ifremer.tutti.service.export.generic.TuttiExportService;
import fr.ifremer.tutti.service.export.pdf.CatchesPdfExportService;
import fr.ifremer.tutti.service.export.sumatra.CatchesSumatraExportService;
-import fr.ifremer.tutti.service.export.sumatra.CatchesSumatraExportServiceV2;
import fr.ifremer.tutti.service.protocol.ProtocolImportExportService;
import fr.ifremer.tutti.service.psionimport.PsionImportService;
import fr.ifremer.tutti.service.pupitri.PupitriImportExportService;
@@ -469,8 +468,9 @@
i18nLocale, i18nDirectory));
}
I18n.init(new UserI18nInitializer(
- i18nDirectory, new DefaultI18nInitializer("tutti-i18n")),
- i18nLocale);
+ i18nDirectory, new DefaultI18nInitializer("tutti-i18n")),
+ i18nLocale
+ );
//--------------------------------------------------------------------//
@@ -706,10 +706,6 @@
return serviceContext.getService(CatchesSumatraExportService.class);
}
- public CatchesSumatraExportServiceV2 getCatchesSumatraExportServiceV2() {
- return serviceContext.getService(CatchesSumatraExportServiceV2.class);
- }
-
public MultiPostImportService getMultiPostImportService() {
return serviceContext.getService(MultiPostImportService.class);
}
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraAction.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -63,6 +63,17 @@
if (doAction) {
+ if (!getDataContext().isProtocolFilled()) {
+ displayWarningMessage(
+ t("tutti.exportCruiseForSumatraV2.title.required.protocol"),
+ t("tutti.exportCruiseForSumatraV2.message.required.protocol")
+ );
+ doAction = false;
+ }
+ }
+
+ if (doAction) {
+
String date = DateUtil.formatDate(new Date(), "dd-MM-yyyy");
// choose file to export
file = saveFile(
Deleted: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraV2Action.java
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraV2Action.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportCruiseForSumatraV2Action.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -1,123 +0,0 @@
-package fr.ifremer.tutti.ui.swing.action;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.persistence.ProgressionModel;
-import fr.ifremer.tutti.persistence.entities.data.Cruise;
-import fr.ifremer.tutti.service.export.sumatra.CatchesSumatraExportServiceV2;
-import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.DateUtil;
-
-import java.io.File;
-import java.util.Date;
-
-import static org.nuiton.i18n.I18n.t;
-
-/**
- * Export the hole cruise using the sumatra format (V2).
- *
- * @author tchemit
- * @since 3.3
- */
-public class ExportCruiseForSumatraV2Action extends AbstractMainUITuttiAction {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(ExportCruiseForSumatraV2Action.class);
-
- protected File file;
-
- public ExportCruiseForSumatraV2Action(MainUIHandler handler) {
- super(handler, false);
- }
-
- @Override
- public boolean prepareAction() throws Exception {
-
- boolean doAction = super.prepareAction();
-
- if (doAction) {
-
- if (!getDataContext().isProtocolFilled()) {
- displayWarningMessage(
- t("tutti.exportCruiseForSumatraV2.title.required.protocol"),
- t("tutti.exportCruiseForSumatraV2.message.required.protocol")
- );
- doAction = false;
- }
- }
-
- if (doAction) {
-
- String date = DateUtil.formatDate(new Date(), "dd-MM-yyyy");
- // choose file to export
- file = saveFile(
- String.format("sumatra_v2_%s_%s", getDataContext().getCruise().getName(), date),
- "csv",
- t("tutti.exportCruiseForSumatraV2.title.choose.exportFile"),
- t("tutti.exportCruiseForSumatraV2.action.chooseFile"),
- "^.+\\.csv$", t("tutti.common.file.csv")
- );
- doAction = file != null;
- }
- return doAction;
- }
-
- @Override
- public void releaseAction() {
- file = null;
- super.releaseAction();
- }
-
- @Override
- public void doAction() throws Exception {
- Cruise cruise = getDataContext().getCruise();
- Preconditions.checkNotNull(cruise);
- Preconditions.checkNotNull(file);
-
- if (log.isInfoEnabled()) {
- log.info("Will export cruise " + cruise.getId() +
- " to file: " + file);
- }
- ProgressionModel pm = new ProgressionModel();
- pm.setTotal(3); // loading cruise + loading fishing operationIds + export
- setProgressionModel(pm);
-
- // export catches
- CatchesSumatraExportServiceV2 service =
- getContext().getCatchesSumatraExportServiceV2();
- service.exportCruiseForSumatra(file, cruise.getId(), pm);
-
- }
-
- @Override
- public void postSuccessAction() {
- super.postSuccessAction();
- sendMessage(t("tutti.exportCruiseForSumatraV2.action.success", file));
- }
-}
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraAction.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -75,6 +75,17 @@
if (doAction) {
+ if (!getDataContext().isProtocolFilled()) {
+ displayWarningMessage(
+ t("tutti.exportFishingOperationForSumatra.title.required.protocol"),
+ t("tutti.exportFishingOperationForSumatra.message.required.protocol")
+ );
+ doAction = false;
+ }
+ }
+
+ if (doAction) {
+
FishingOperation fishingOperation = getModel().getFishingOperation();
String date = DateUtil.formatDate(new Date(), "dd-MM-yyyy");
Deleted: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraV2Action.java
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraV2Action.java 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ExportFishingOperationForSumatraV2Action.java 2014-05-19 19:10:43 UTC (rev 1791)
@@ -1,143 +0,0 @@
-package fr.ifremer.tutti.ui.swing.action;
-
-/*
- * #%L
- * Tutti :: UI
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2012 - 2013 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import com.google.common.base.Preconditions;
-import fr.ifremer.tutti.persistence.ProgressionModel;
-import fr.ifremer.tutti.persistence.entities.data.Cruise;
-import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
-import fr.ifremer.tutti.service.export.sumatra.CatchesSumatraExportServiceV2;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUI;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIHandler;
-import fr.ifremer.tutti.ui.swing.content.operation.catches.EditCatchesUIModel;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.DateUtil;
-
-import java.io.File;
-import java.util.Date;
-
-import static org.nuiton.i18n.I18n.t;
-
-/**
- * Created on 10/1/13.
- *
- * @author Tony Chemit <chemit(a)codelutin.com>
- * @since 3.3
- */
-public class ExportFishingOperationForSumatraV2Action extends AbstractTuttiAction<EditCatchesUIModel, EditCatchesUI, EditCatchesUIHandler> {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(ExportFishingOperationForSumatraV2Action.class);
-
- protected File file;
-
- public ExportFishingOperationForSumatraV2Action(EditCatchesUIHandler handler) {
- super(handler, true);
- }
-
- @Override
- public boolean prepareAction() throws Exception {
-
- boolean doAction = super.prepareAction();
-
- if (getModel().isModify()) {
-
- displayWarningMessage(
- t("tutti.exportFishingOperationForSumatraV2.title.model.modified"),
- t("tutti.exportFishingOperationForSumatraV2.message.model.modified")
- );
- doAction = false;
- }
-
- if (doAction) {
-
- if (!getDataContext().isProtocolFilled()) {
- displayWarningMessage(
- t("tutti.exportFishingOperationForSumatraV2.title.required.protocol"),
- t("tutti.exportFishingOperationForSumatraV2.message.required.protocol")
- );
- doAction = false;
- }
- }
-
- if (doAction) {
-
- FishingOperation fishingOperation = getModel().getFishingOperation();
-
- String date = DateUtil.formatDate(new Date(), "dd-MM-yyyy");
- // choose file to export
- file = saveFile(
- String.format("sumatra_v2_%s_%s_%s", getDataContext().getCruise().getName(), fishingOperation.getId(), date),
- "csv",
- t("tutti.exportFishingOperationForSumatraV2.title.choose.exportFile"),
- t("tutti.exportFishingOperationForSumatraV2.action.chooseFile"),
- "^.+\\.csv$", t("tutti.common.file.csv")
- );
- doAction = file != null;
- }
- return doAction;
- }
-
- @Override
- public void releaseAction() {
- file = null;
- super.releaseAction();
- }
-
- @Override
- public void doAction() throws Exception {
- Cruise cruise = getDataContext().getCruise();
- FishingOperation fishingOperation = getModel().getFishingOperation();
- Preconditions.checkNotNull(cruise);
- Preconditions.checkNotNull(fishingOperation);
- Preconditions.checkNotNull(file);
-
- if (log.isInfoEnabled()) {
- log.info("Will export fishingOperation " + cruise.getId() + "-" + fishingOperation.getStationNumber() +
- " to file: " + file);
- }
-
- ProgressionModel pm = new ProgressionModel();
- pm.setTotal(3); // loading cruise + loading fishing operationIds + export
- setProgressionModel(pm);
-
- // export catches
- CatchesSumatraExportServiceV2 service =
- getContext().getCatchesSumatraExportServiceV2();
- service.exportFishingOperationForSumatra(file,
- cruise.getId(),
- fishingOperation.getId(),
- pm);
-
- }
-
- @Override
- public void postSuccessAction() {
- super.postSuccessAction();
- sendMessage(t("tutti.exportFishingOperationForSumatraV2.action.success", file));
- }
-}
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.css 2014-05-19 19:10:43 UTC (rev 1791)
@@ -105,7 +105,7 @@
}
#editCruiseComboBox {
- model: {handler.newComboModel(editCruiseButton, exportCruiseButton, sendCruiseReportButton, exportCruiseForSumatraButton, exportCruiseForSumatraV2Button)};
+ model: {handler.newComboModel(editCruiseButton, exportCruiseButton, sendCruiseReportButton, exportCruiseForSumatraButton)};
enabled: {model.isProgramFound() && model.isCruiseFound()};
renderer: {new ActionListCellRenderer()};
}
@@ -143,14 +143,6 @@
_help: {"tutti.selectCruise.action.exportCruiseForSumatra.help"};
}
-#exportCruiseForSumatraV2Button {
- actionIcon: export;
- text: "tutti.selectCruise.action.exportCruiseForSumatraV2";
- toolTipText: "tutti.selectCruise.action.exportCruiseForSumatraV2.tip";
- _applicationAction: {fr.ifremer.tutti.ui.swing.action.ExportCruiseForSumatraV2Action.class};
- _help: {"tutti.selectCruise.action.exportCruiseForSumatraV2.help"};
-}
-
#newCruiseButton {
actionIcon: add;
text: "tutti.selectCruise.action.newCruise";
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/home/SelectCruiseUI.jaxx 2014-05-19 19:10:43 UTC (rev 1791)
@@ -69,7 +69,6 @@
<JButton id='exportCruiseButton'/>
<JButton id='sendCruiseReportButton'/>
<JButton id='exportCruiseForSumatraButton'/>
- <JButton id='exportCruiseForSumatraV2Button'/>
<JButton id='newProtocolButton'/>
<JButton id='importProtocolButton'/>
<JButton id='editProtocolButton'/>
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2014-05-19 19:10:43 UTC (rev 1791)
@@ -362,15 +362,6 @@
_help: {"tutti.editCatchBatch.action.exportFishingOperationReportForSumatra.help"};
}
-#exportFishingOperationReportForSumatraV2Button {
- actionIcon: export;
- text: "tutti.editCatchBatch.action.exportFishingOperationReportForSumatraV2";
- toolTipText: "tutti.editCatchBatch.action.exportFishingOperationReportForSumatraV2.tip";
- i18nMnemonic: "tutti.editCatchBatch.action.exportFishingOperationReportForSumatraV2.mnemonic";
- _applicationAction: {fr.ifremer.tutti.ui.swing.action.ExportFishingOperationForSumatraV2Action.class};
- _help: {"tutti.editCatchBatch.action.exportFishingOperationReportForSumatraV2.help"};
-}
-
#saveButton {
actionIcon: save;
text: "tutti.editCatchBatch.action.saveCatchBatch";
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2014-05-19 19:10:43 UTC (rev 1791)
@@ -104,7 +104,6 @@
<JToolBar id='catchesCaracteristicsTabToolBar'>
<JButton id='exportFishingOperationReportButton'/>
<JButton id='exportFishingOperationReportForSumatraButton'/>
- <JButton id='exportFishingOperationReportForSumatraV2Button'/>
<ButtonAttachment id='catchesCaracteristicsAttachmentsButton'
constructorParams='getHandler().getContext(), getModel()'/>
</JToolBar>
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-05-19 19:10:43 UTC (rev 1791)
@@ -1143,8 +1143,10 @@
tutti.exportFishingOperationForSumatra.action.chooseFile=
tutti.exportFishingOperationForSumatra.action.success=
tutti.exportFishingOperationForSumatra.message.model.modified=Catch was modified, please save it before launching an export.
+tutti.exportFishingOperationForSumatra.message.required.protocol=
tutti.exportFishingOperationForSumatra.title.choose.exportFile=
tutti.exportFishingOperationForSumatra.title.model.modified=Can't export, catch is modified
+tutti.exportFishingOperationForSumatra.title.required.protocol=
tutti.exportFishingOperationForSumatraV2.action.chooseFile=
tutti.exportFishingOperationForSumatraV2.action.success=
tutti.exportFishingOperationForSumatraV2.message.model.modified=
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-05-19 17:02:21 UTC (rev 1790)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-05-19 19:10:43 UTC (rev 1791)
@@ -537,12 +537,9 @@
tutti.editCatchBatch.action.exportFishingOperationReport=Résumé PDF
tutti.editCatchBatch.action.exportFishingOperationReport.mnemonic=P
tutti.editCatchBatch.action.exportFishingOperationReport.tip=Envoyer le résumé au format pdf du trait sélectionné
-tutti.editCatchBatch.action.exportFishingOperationReportForSumatra=Résumé Sumatra
+tutti.editCatchBatch.action.exportFishingOperationReportForSumatra=Résumé Csv
tutti.editCatchBatch.action.exportFishingOperationReportForSumatra.mnemonic=u
-tutti.editCatchBatch.action.exportFishingOperationReportForSumatra.tip=Exporter le trait sélectionnée pour Sumatra (au format csv)
-tutti.editCatchBatch.action.exportFishingOperationReportForSumatraV2=Résumé Sumatra V2
-tutti.editCatchBatch.action.exportFishingOperationReportForSumatraV2.mnemonic=m
-tutti.editCatchBatch.action.exportFishingOperationReportForSumatraV2.tip=Exporter le trait sélectionnée pour Sumatra V2 (au format csv)
+tutti.editCatchBatch.action.exportFishingOperationReportForSumatra.tip=Exporter le résumé au format csv du trait sélectionnée
tutti.editCatchBatch.action.saveCatchBatch=Enregistrer
tutti.editCatchBatch.action.saveCatchBatch.mnemonic=S
tutti.editCatchBatch.action.saveCatchBatch.tip=Enregistrer la capture
@@ -1117,12 +1114,11 @@
tutti.exportCruise.action.success=La campagne <strong>%s</strong> a été exportée dans le fichier <strong>%s</strong>.
tutti.exportCruiseForSumatra.action.chooseFile=Choisir le fichier d'export
tutti.exportCruiseForSumatra.action.success=La campagne sélectionnée a été exportée dans le fichier <strong>%s</strong>
+tutti.exportCruiseForSumatra.message.required.protocol=Pour faire un export csv, un protocol est requis.<br/>De plus toutes les espèces de la captures doivent être renseignées dans le protocole.
tutti.exportCruiseForSumatra.title.choose.exportFile=Exporter la campagne
-tutti.exportCruiseForSumatraV2.action.chooseFile=Choisir le fichier d'export
-tutti.exportCruiseForSumatraV2.action.success=La campagne sélectionnée a été exportée dans le fichier <strong>%s</strong>
-tutti.exportCruiseForSumatraV2.message.required.protocol=Pour faire un export sumatra v2, un protocol est requis.<br/>De plus toutes les espèces de la captures doivent être renseignées dans le protocole.
-tutti.exportCruiseForSumatraV2.title.choose.exportFile=Exporter la campagne
-tutti.exportCruiseForSumatraV2.title.required.protocol=Protocole requis pour export sumatra v2
+tutti.exportCruiseForSumatra.title.required.protocol=Protocole requis pour export csv
+tutti.exportCruiseForSumatraV2.message.required.protocol=
+tutti.exportCruiseForSumatraV2.title.required.protocol=
tutti.exportDb.step.closeDb=Fermeture de la base courante
tutti.exportDb.step.createArchive=Création de l'archive %s
tutti.exportDb.step.openDb=Réouverture de la base courante
@@ -1130,15 +1126,10 @@
tutti.exportFishingOperationForSumatra.action.chooseFile=Choisir le fichier d'export
tutti.exportFishingOperationForSumatra.action.success=Le trait a été exporté dans le fichier <strong>%s</strong>
tutti.exportFishingOperationForSumatra.message.model.modified=La capture a été modifiée, veuillez l'enregistrer avant de lancer un export.
+tutti.exportFishingOperationForSumatra.message.required.protocol=<html><body>Pour faire un export csv, un protocol est requis.<br/>De plus toutes les espèces de la captures doivent être renseignées dans le protocole.</body></html>
tutti.exportFishingOperationForSumatra.title.choose.exportFile=Exporter le trait de la campagne
tutti.exportFishingOperationForSumatra.title.model.modified=Impossible d'exporter, capture modifiée
-tutti.exportFishingOperationForSumatraV2.action.chooseFile=Choisir le fichier d'export
-tutti.exportFishingOperationForSumatraV2.action.success=Le trait a été exporté dans le fichier <strong>%s</strong>
-tutti.exportFishingOperationForSumatraV2.message.model.modified=La capture a été modifiée, veuillez l'enregistrer avant de lancer un export.
-tutti.exportFishingOperationForSumatraV2.message.required.protocol=<html><body>Pour faire un export sumatra v2, un protocol est requis.<br/>De plus toutes les espèces de la captures doivent être renseignées dans le protocole.</body></html>
-tutti.exportFishingOperationForSumatraV2.title.choose.exportFile=Exporter le trait de la campagne
-tutti.exportFishingOperationForSumatraV2.title.model.modified=Impossible d'exporter, capture modifiée
-tutti.exportFishingOperationForSumatraV2.title.required.protocol=Protocole requis pour export sumatra v2
+tutti.exportFishingOperationForSumatra.title.required.protocol=Protocole requis pour export csv
tutti.exportFishingOperationReport.action.chooseFile=Choisir le fichier de rapport
tutti.exportFishingOperationReport.action.success=Le trait a été exporté dans le fichier <strong>%s</strong>
tutti.exportFishingOperationReport.message.model.modified=La capture a été modifiée, veuillez l'enregistrer avant de lancer un export.
@@ -1447,10 +1438,8 @@
tutti.selectCruise.action.editProtocol.tip=Éditer le protocole sélectionné
tutti.selectCruise.action.exportCruise=Export Générique
tutti.selectCruise.action.exportCruise.tip=Exporter la campagne sélectionnée au format générique
-tutti.selectCruise.action.exportCruiseForSumatra=Eport Sumatra (v1)
-tutti.selectCruise.action.exportCruiseForSumatra.tip=Exporter la campagne sélectionnée au format csv pour Sumatra (v1)
-tutti.selectCruise.action.exportCruiseForSumatraV2=Export Sumatra (V2)
-tutti.selectCruise.action.exportCruiseForSumatraV2.tip=Exporter la campagne sélectionnée au format csv pour Sumatra (V2)
+tutti.selectCruise.action.exportCruiseForSumatra=Eport csv
+tutti.selectCruise.action.exportCruiseForSumatra.tip=Exporter la campagne sélectionnée au format csv
tutti.selectCruise.action.exportProgram=Exporter
tutti.selectCruise.action.exportProgram.tip=Exporter la série sélectionnée
tutti.selectCruise.action.exportProtocol=Exporter
1
0
r1790 - in trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: content/operation/catches content/operation/catches/benthos content/operation/catches/benthos/frequency content/operation/catches/species content/operation/catches/species/frequency util
by tchemit@users.forge.codelutin.com 19 May '14
by tchemit@users.forge.codelutin.com 19 May '14
19 May '14
Author: tchemit
Date: 2014-05-19 19:02:21 +0200 (Mon, 19 May 2014)
New Revision: 1790
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1790
Log:
refs #5084 (report from version 3.4.4)
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2014-05-19 17:02:21 UTC (rev 1790)
@@ -108,7 +108,7 @@
}
#catchTotalSortedWeightField {
- text: {getWeightStringValue(model.getCatchTotalSortedComputedWeight())};
+ text: {handler.getWeightStringValue(catchTotalSortedWeightLabel, model.getCatchTotalSortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.catchTotalSortedWeight.help"};
}
@@ -127,7 +127,7 @@
#catchTotalSortedTremisWeightField {
enabled: false;
- text: {getWeightStringValue(model.getCatchTotalSortedTremisWeight())};
+ text: {handler.getWeightStringValue(catchTotalSortedTremisWeightLabel, model.getCatchTotalSortedTremisWeight())};
_help: {"tutti.editCatchBatch.field.catchTotalSortedTremisWeight.help"};
}
@@ -141,7 +141,7 @@
#catchTotalSortedCarousselWeightField {
enabled: false;
- text: {getWeightStringValue(model.getCatchTotalSortedCarousselWeight())};
+ text: {handler.getWeightStringValue(catchTotalSortedCarousselWeightLabel, model.getCatchTotalSortedCarousselWeight())};
_help: {"tutti.editCatchBatch.field.catchTotalSortedCarousselWeight.help"};
}
@@ -168,7 +168,7 @@
}
#catchTotalUnsortedWeightField {
- text: {getWeightStringValue(model.getCatchTotalUnsortedComputedWeight())};
+ text: {handler.getWeightStringValue(catchTotalUnsortedWeightLabel, model.getCatchTotalUnsortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.catchTotalUnsortedWeight.help"};
}
@@ -191,7 +191,7 @@
}
#speciesTotalWeightField {
- text: {handler.getWeightStringValueForTotalWeight(model.getCatchTotalRejectedWeight(), model.getSpeciesTotalComputedWeight())};
+ text: {handler.getWeightStringValueForTotalWeight(speciesTotalWeightLabel, model.getCatchTotalRejectedWeight(), model.getSpeciesTotalComputedWeight())};
disabledTextColor: {handler.getWeightColorForTotalWeight(model.getCatchTotalRejectedWeight(), model.getSpeciesTotalComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.speciesTotalWeight.help"};
@@ -220,7 +220,7 @@
}
#speciesTotalSampleSortedWeightField {
- text: {getWeightStringValue(model.getSpeciesTotalSampleSortedComputedWeight())};
+ text: {handler.getWeightStringValue(speciesTotalSampleSortedWeightLabel, model.getSpeciesTotalSampleSortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.speciesTotalSampleSortedWeight.help"};
}
@@ -234,7 +234,7 @@
}
#speciesTotalUnsortedWeightField {
- text: {getWeightStringValue(model.getSpeciesTotalUnsortedComputedWeight())};
+ text: {handler.getWeightStringValue(speciesTotalUnsortedWeightLabel, model.getSpeciesTotalUnsortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.speciesTotalUnsortedWeight.help"};
}
@@ -257,7 +257,7 @@
}
#benthosTotalWeightField {
- text: {handler.getWeightStringValueForTotalWeight(model.getCatchTotalRejectedWeight(), model.getBenthosTotalComputedWeight())};
+ text: {handler.getWeightStringValueForTotalWeight(benthosTotalWeightLabel, model.getCatchTotalRejectedWeight(), model.getBenthosTotalComputedWeight())};
disabledTextColor: {handler.getWeightColorForTotalWeight(model.getCatchTotalRejectedWeight(), model.getBenthosTotalComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.benthosTotalWeight.help"};
@@ -286,7 +286,7 @@
}
#benthosTotalSampleSortedWeightField {
- text: {getWeightStringValue(model.getBenthosTotalSampleSortedComputedWeight())};
+ text: {handler.getWeightStringValue(benthosTotalSampleSortedWeightLabel, model.getBenthosTotalSampleSortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.benthosTotalSampleSortedWeight.help"};
}
@@ -300,7 +300,7 @@
}
#benthosTotalUnsortedWeightField {
- text: {getWeightStringValue(model.getBenthosTotalUnsortedComputedWeight())};
+ text: {handler.getWeightStringValue(benthosTotalUnsortedWeightLabel, model.getBenthosTotalUnsortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.benthosTotalUnsortedWeight.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2014-05-19 17:02:21 UTC (rev 1790)
@@ -55,7 +55,6 @@
jaxx.runtime.swing.CardLayout2Ext
static org.nuiton.i18n.I18n.t
- static fr.ifremer.tutti.persistence.entities.TuttiEntities.getWeightStringValue
]]></import>
<script><![CDATA[
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2014-05-19 17:02:21 UTC (rev 1790)
@@ -25,8 +25,6 @@
*/
import com.google.common.collect.Sets;
-import org.nuiton.jaxx.application.swing.tab.TabHandler;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency.BenthosFrequencyCellComponent;
@@ -44,16 +42,18 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTitledPanel;
+import org.nuiton.jaxx.application.swing.tab.TabHandler;
import javax.swing.JComponent;
+import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import java.awt.Color;
import java.util.Set;
+import static org.nuiton.i18n.I18n.n;
import static org.nuiton.i18n.I18n.t;
-import static org.nuiton.i18n.I18n.n;
/**
* @author tchemit <chemit(a)codelutin.com>
@@ -606,12 +606,12 @@
}
}
- public String getWeightStringValueForTotalWeight(Float rejectWeight, Float totalWeight) {
+ public String getWeightStringValueForTotalWeight(JLabel label, Float rejectWeight, Float totalWeight) {
String result;
if (rejectWeight == null || totalWeight == null) {
// no reject weight, so can let this weight
- result = TuttiEntities.getWeightStringValue(totalWeight);
+ result = getWeightStringValue(label, totalWeight);
} else {
result = t("tutti.editCatchBatch.field.speciesOrBenthosTotalWeight.not.computed");
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2014-05-19 17:02:21 UTC (rev 1790)
@@ -58,7 +58,7 @@
}
#benthosTotalWeightField {
- text: {getWeightStringValue(model.getBenthosTotalComputedWeight())};
+ text: {handler.getWeightStringValue(benthosTotalWeightLabel, model.getBenthosTotalComputedWeight())};
_computed: true;
_help: {"tutti.editBenthosBatch.field.benthosTotalWeight.help"};
}
@@ -86,7 +86,7 @@
}
#benthosTotalSampleSortedWeightField {
- text: {getWeightStringValue(model.getBenthosTotalSampleSortedComputedWeight())};
+ text: {handler.getWeightStringValue(benthosTotalSampleSortedWeightLabel, model.getBenthosTotalSampleSortedComputedWeight())};
_computed: true;
_help: {"tutti.editBenthosBatch.field.benthosTotalSampleSortedWeight.help"};
}
@@ -100,7 +100,7 @@
}
#benthosTotalUnsortedWeightField {
- text: {getWeightStringValue(model.getBenthosTotalUnsortedComputedWeight())};
+ text: {handler.getWeightStringValue(benthosTotalUnsortedWeightLabel, model.getBenthosTotalUnsortedComputedWeight())};
_computed: true;
_help: {"tutti.editBenthosBatch.field.benthosTotalUnsortedWeight.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2014-05-19 17:02:21 UTC (rev 1790)
@@ -40,7 +40,6 @@
java.awt.Color
static org.nuiton.i18n.I18n.t
- static fr.ifremer.tutti.persistence.entities.TuttiEntities.getWeightStringValue
]]></import>
<script><![CDATA[
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css 2014-05-19 17:02:21 UTC (rev 1790)
@@ -81,7 +81,7 @@
}
#totalWeightField {
- text: {getWeightStringValue(model.getTotalWeight())};
+ text: {handler.getWeightStringValue(totalWeightLabel, model.getTotalWeight())};
enabled: false;
_computed: true;
_help: {"tutti.editBenthosFrequencies.field.totalWeight.help"};
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx 2014-05-19 17:02:21 UTC (rev 1790)
@@ -46,7 +46,6 @@
static org.nuiton.i18n.I18n.t
static jaxx.runtime.SwingUtil.getStringValue
- static fr.ifremer.tutti.persistence.entities.TuttiEntities.getWeightStringValue
</import>
<script><![CDATA[
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2014-05-19 17:02:21 UTC (rev 1790)
@@ -58,7 +58,7 @@
}
#speciesTotalWeightField {
- text: {getWeightStringValue(model.getSpeciesTotalComputedWeight())};
+ text: {handler.getWeightStringValue(speciesTotalWeightLabel, model.getSpeciesTotalComputedWeight())};
_computed: true;
_help: {"tutti.editSpeciesBatch.field.speciesTotalWeight.help"};
}
@@ -86,7 +86,7 @@
}
#speciesTotalSampleSortedWeightField {
- text: {getWeightStringValue(model.getSpeciesTotalSampleSortedComputedWeight())};
+ text: {handler.getWeightStringValue(speciesTotalSampleSortedWeightLabel, model.getSpeciesTotalSampleSortedComputedWeight())};
_computed: true;
_help: {"tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.help"};
}
@@ -100,7 +100,7 @@
}
#speciesTotalUnsortedWeightField {
- text: {getWeightStringValue(model.getSpeciesTotalUnsortedComputedWeight())};
+ text: {handler.getWeightStringValue(speciesTotalUnsortedWeightLabel, model.getSpeciesTotalUnsortedComputedWeight())};
_computed: true;
_help: {"tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.help"};
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2014-05-19 17:02:21 UTC (rev 1790)
@@ -40,7 +40,6 @@
java.awt.Color
static org.nuiton.i18n.I18n.t
- static fr.ifremer.tutti.persistence.entities.TuttiEntities.getWeightStringValue
]]></import>
<script><![CDATA[
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2014-05-19 17:02:21 UTC (rev 1790)
@@ -81,7 +81,7 @@
}
#totalWeightField {
- text: {getWeightStringValue(model.getTotalWeight())};
+ text: {handler.getWeightStringValue(totalWeightLabel, model.getTotalWeight())};
enabled: false;
_computed: true;
_help: {"tutti.editSpeciesFrequencies.field.totalWeight.help"};
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx 2014-05-19 17:02:21 UTC (rev 1790)
@@ -46,7 +46,6 @@
static org.nuiton.i18n.I18n.t
static jaxx.runtime.SwingUtil.getStringValue
- static fr.ifremer.tutti.persistence.entities.TuttiEntities.getWeightStringValue
</import>
<script><![CDATA[
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2014-05-19 17:01:07 UTC (rev 1789)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2014-05-19 17:02:21 UTC (rev 1790)
@@ -26,18 +26,9 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Sets;
-import fr.ifremer.tutti.type.WeightUnit;
-import fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor;
-import jaxx.runtime.swing.JAXXWidgetUtil;
-import jaxx.runtime.swing.editor.NumberEditor;
-import jaxx.runtime.swing.editor.cell.NumberCellEditor;
-import org.jdesktop.swingx.JXTitledPanel;
-import org.jdesktop.swingx.table.TableColumnExt;
-import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler;
-import org.nuiton.jaxx.application.swing.action.ApplicationActionUI;
-import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
import fr.ifremer.tutti.LabelAware;
import fr.ifremer.tutti.TuttiConfiguration;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.SampleCategory;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.DecoratorService;
@@ -45,22 +36,33 @@
import fr.ifremer.tutti.service.TuttiDataContext;
import fr.ifremer.tutti.service.ValidationService;
import fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService;
+import fr.ifremer.tutti.type.WeightUnit;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.MainUI;
import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment;
+import fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor;
+import jaxx.runtime.swing.JAXXWidgetUtil;
+import jaxx.runtime.swing.editor.NumberEditor;
+import jaxx.runtime.swing.editor.cell.NumberCellEditor;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
+import org.jdesktop.swingx.JXTitledPanel;
import org.jdesktop.swingx.decorator.ComponentAdapter;
import org.jdesktop.swingx.decorator.FontHighlighter;
import org.jdesktop.swingx.decorator.HighlightPredicate;
import org.jdesktop.swingx.decorator.Highlighter;
+import org.jdesktop.swingx.table.TableColumnExt;
import org.nuiton.decorator.Decorator;
+import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler;
+import org.nuiton.jaxx.application.swing.action.ApplicationActionUI;
+import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
import org.nuiton.jaxx.application.swing.table.ColumnIdentifier;
import org.nuiton.validator.bean.simple.SimpleBeanValidator;
+import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JTextField;
@@ -75,6 +77,7 @@
import java.awt.Font;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.text.DecimalFormat;
import java.util.Set;
import static org.nuiton.i18n.I18n.t;
@@ -145,6 +148,29 @@
handler.clearValidators();
}
+ public String getWeightStringValue(WeightUnit weightUnit, Float weight) {
+ String textValue;
+ if (weight != null) {
+
+ int numberDigits = weightUnit.getNumberDigits();
+
+ DecimalFormat weightDecimalFormat = TuttiEntities.getDecimalFormat(1, numberDigits);
+ textValue = weightDecimalFormat.format(weight);
+
+ } else {
+ textValue = "";
+ }
+ return textValue;
+ }
+
+ public String getWeightStringValue(JComponent component, Float weight) {
+
+
+ WeightUnit weightUnit = (WeightUnit) component.getClientProperty("addWeightUnit");
+ return getWeightStringValue(weightUnit, weight);
+ }
+
+
@Override
public <O> Decorator<O> getDecorator(Class<O> type, String name) {
DecoratorService decoratorService =
1
0
r1789 - in branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing: content/operation/catches content/operation/catches/benthos content/operation/catches/benthos/frequency content/operation/catches/species content/operation/catches/species/frequency util
by tchemit@users.forge.codelutin.com 19 May '14
by tchemit@users.forge.codelutin.com 19 May '14
19 May '14
Author: tchemit
Date: 2014-05-19 19:01:07 +0200 (Mon, 19 May 2014)
New Revision: 1789
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1789
Log:
fixes #5084 ([CAPTURE] 1 seul chiffre apr?\195?\168s la virgule en gramme)
Modified:
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx
branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.css 2014-05-19 17:01:07 UTC (rev 1789)
@@ -108,7 +108,7 @@
}
#catchTotalSortedWeightField {
- text: {getWeightStringValue(model.getCatchTotalSortedComputedWeight())};
+ text: {handler.getWeightStringValue(catchTotalSortedWeightLabel, model.getCatchTotalSortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.catchTotalSortedWeight.help"};
}
@@ -127,7 +127,7 @@
#catchTotalSortedTremisWeightField {
enabled: false;
- text: {getWeightStringValue(model.getCatchTotalSortedTremisWeight())};
+ text: {handler.getWeightStringValue(catchTotalSortedTremisWeightLabel, model.getCatchTotalSortedTremisWeight())};
_help: {"tutti.editCatchBatch.field.catchTotalSortedTremisWeight.help"};
}
@@ -141,7 +141,7 @@
#catchTotalSortedCarousselWeightField {
enabled: false;
- text: {getWeightStringValue(model.getCatchTotalSortedCarousselWeight())};
+ text: {handler.getWeightStringValue(catchTotalSortedCarousselWeightLabel, model.getCatchTotalSortedCarousselWeight())};
_help: {"tutti.editCatchBatch.field.catchTotalSortedCarousselWeight.help"};
}
@@ -168,7 +168,7 @@
}
#catchTotalUnsortedWeightField {
- text: {getWeightStringValue(model.getCatchTotalUnsortedComputedWeight())};
+ text: {handler.getWeightStringValue(catchTotalUnsortedWeightLabel, model.getCatchTotalUnsortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.catchTotalUnsortedWeight.help"};
}
@@ -191,7 +191,7 @@
}
#speciesTotalWeightField {
- text: {handler.getWeightStringValueForTotalWeight(model.getCatchTotalRejectedWeight(), model.getSpeciesTotalComputedWeight())};
+ text: {handler.getWeightStringValueForTotalWeight(speciesTotalWeightLabel, model.getCatchTotalRejectedWeight(), model.getSpeciesTotalComputedWeight())};
disabledTextColor: {handler.getWeightColorForTotalWeight(model.getCatchTotalRejectedWeight(), model.getSpeciesTotalComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.speciesTotalWeight.help"};
@@ -220,7 +220,7 @@
}
#speciesTotalSampleSortedWeightField {
- text: {getWeightStringValue(model.getSpeciesTotalSampleSortedComputedWeight())};
+ text: {handler.getWeightStringValue(speciesTotalSampleSortedWeightLabel, model.getSpeciesTotalSampleSortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.speciesTotalSampleSortedWeight.help"};
}
@@ -234,7 +234,7 @@
}
#speciesTotalUnsortedWeightField {
- text: {getWeightStringValue(model.getSpeciesTotalUnsortedComputedWeight())};
+ text: {handler.getWeightStringValue(speciesTotalUnsortedWeightLabel, model.getSpeciesTotalUnsortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.speciesTotalUnsortedWeight.help"};
}
@@ -257,7 +257,7 @@
}
#benthosTotalWeightField {
- text: {handler.getWeightStringValueForTotalWeight(model.getCatchTotalRejectedWeight(), model.getBenthosTotalComputedWeight())};
+ text: {handler.getWeightStringValueForTotalWeight(benthosTotalWeightLabel, model.getCatchTotalRejectedWeight(), model.getBenthosTotalComputedWeight())};
disabledTextColor: {handler.getWeightColorForTotalWeight(model.getCatchTotalRejectedWeight(), model.getBenthosTotalComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.benthosTotalWeight.help"};
@@ -286,7 +286,7 @@
}
#benthosTotalSampleSortedWeightField {
- text: {getWeightStringValue(model.getBenthosTotalSampleSortedComputedWeight())};
+ text: {handler.getWeightStringValue(benthosTotalSampleSortedWeightLabel, model.getBenthosTotalSampleSortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.benthosTotalSampleSortedWeight.help"};
}
@@ -300,7 +300,7 @@
}
#benthosTotalUnsortedWeightField {
- text: {getWeightStringValue(model.getBenthosTotalUnsortedComputedWeight())};
+ text: {handler.getWeightStringValue(benthosTotalUnsortedWeightLabel, model.getBenthosTotalUnsortedComputedWeight())};
_computed: true;
_help: {"tutti.editCatchBatch.field.benthosTotalUnsortedWeight.help"};
}
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUI.jaxx 2014-05-19 17:01:07 UTC (rev 1789)
@@ -55,7 +55,6 @@
jaxx.runtime.swing.CardLayout2Ext
static org.nuiton.i18n.I18n.t
- static fr.ifremer.tutti.persistence.entities.TuttiEntities.getWeightStringValue
]]></import>
<script><![CDATA[
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2014-05-19 17:01:07 UTC (rev 1789)
@@ -25,8 +25,6 @@
*/
import com.google.common.collect.Sets;
-import org.nuiton.jaxx.application.swing.tab.TabHandler;
-import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.BenthosBatchRowModel;
import fr.ifremer.tutti.ui.swing.content.operation.catches.benthos.frequency.BenthosFrequencyCellComponent;
@@ -44,16 +42,18 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTitledPanel;
+import org.nuiton.jaxx.application.swing.tab.TabHandler;
import javax.swing.JComponent;
+import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import java.awt.Color;
import java.util.Set;
+import static org.nuiton.i18n.I18n.n;
import static org.nuiton.i18n.I18n.t;
-import static org.nuiton.i18n.I18n.n;
/**
* @author tchemit <chemit(a)codelutin.com>
@@ -606,12 +606,12 @@
}
}
- public String getWeightStringValueForTotalWeight(Float rejectWeight, Float totalWeight) {
+ public String getWeightStringValueForTotalWeight(JLabel label, Float rejectWeight, Float totalWeight) {
String result;
if (rejectWeight == null || totalWeight == null) {
// no reject weight, so can let this weight
- result = TuttiEntities.getWeightStringValue(totalWeight);
+ result = getWeightStringValue(label, totalWeight);
} else {
result = t("tutti.editCatchBatch.field.speciesOrBenthosTotalWeight.not.computed");
}
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.css 2014-05-19 17:01:07 UTC (rev 1789)
@@ -58,7 +58,7 @@
}
#benthosTotalWeightField {
- text: {getWeightStringValue(model.getBenthosTotalComputedWeight())};
+ text: {handler.getWeightStringValue(benthosTotalWeightLabel, model.getBenthosTotalComputedWeight())};
_computed: true;
_help: {"tutti.editBenthosBatch.field.benthosTotalWeight.help"};
}
@@ -86,7 +86,7 @@
}
#benthosTotalSampleSortedWeightField {
- text: {getWeightStringValue(model.getBenthosTotalSampleSortedComputedWeight())};
+ text: {handler.getWeightStringValue(benthosTotalSampleSortedWeightLabel, model.getBenthosTotalSampleSortedComputedWeight())};
_computed: true;
_help: {"tutti.editBenthosBatch.field.benthosTotalSampleSortedWeight.help"};
}
@@ -100,7 +100,7 @@
}
#benthosTotalUnsortedWeightField {
- text: {getWeightStringValue(model.getBenthosTotalUnsortedComputedWeight())};
+ text: {handler.getWeightStringValue(benthosTotalUnsortedWeightLabel, model.getBenthosTotalUnsortedComputedWeight())};
_computed: true;
_help: {"tutti.editBenthosBatch.field.benthosTotalUnsortedWeight.help"};
}
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchUI.jaxx 2014-05-19 17:01:07 UTC (rev 1789)
@@ -40,7 +40,6 @@
java.awt.Color
static org.nuiton.i18n.I18n.t
- static fr.ifremer.tutti.persistence.entities.TuttiEntities.getWeightStringValue
]]></import>
<script><![CDATA[
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.css 2014-05-19 17:01:07 UTC (rev 1789)
@@ -81,7 +81,7 @@
}
#totalWeightField {
- text: {getWeightStringValue(model.getTotalWeight())};
+ text: {handler.getWeightStringValue(totalWeightLabel, model.getTotalWeight())};
enabled: false;
_computed: true;
_help: {"tutti.editBenthosFrequencies.field.totalWeight.help"};
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/frequency/BenthosFrequencyUI.jaxx 2014-05-19 17:01:07 UTC (rev 1789)
@@ -46,7 +46,6 @@
static org.nuiton.i18n.I18n.t
static jaxx.runtime.SwingUtil.getStringValue
- static fr.ifremer.tutti.persistence.entities.TuttiEntities.getWeightStringValue
</import>
<script><![CDATA[
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.css 2014-05-19 17:01:07 UTC (rev 1789)
@@ -58,7 +58,7 @@
}
#speciesTotalWeightField {
- text: {getWeightStringValue(model.getSpeciesTotalComputedWeight())};
+ text: {handler.getWeightStringValue(speciesTotalWeightLabel, model.getSpeciesTotalComputedWeight())};
_computed: true;
_help: {"tutti.editSpeciesBatch.field.speciesTotalWeight.help"};
}
@@ -86,7 +86,7 @@
}
#speciesTotalSampleSortedWeightField {
- text: {getWeightStringValue(model.getSpeciesTotalSampleSortedComputedWeight())};
+ text: {handler.getWeightStringValue(speciesTotalSampleSortedWeightLabel, model.getSpeciesTotalSampleSortedComputedWeight())};
_computed: true;
_help: {"tutti.editSpeciesBatch.field.speciesTotalSampleSortedWeight.help"};
}
@@ -100,7 +100,7 @@
}
#speciesTotalUnsortedWeightField {
- text: {getWeightStringValue(model.getSpeciesTotalUnsortedComputedWeight())};
+ text: {handler.getWeightStringValue(speciesTotalUnsortedWeightLabel, model.getSpeciesTotalUnsortedComputedWeight())};
_computed: true;
_help: {"tutti.editSpeciesBatch.field.speciesTotalUnsortedWeight.help"};
}
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchUI.jaxx 2014-05-19 17:01:07 UTC (rev 1789)
@@ -40,7 +40,6 @@
java.awt.Color
static org.nuiton.i18n.I18n.t
- static fr.ifremer.tutti.persistence.entities.TuttiEntities.getWeightStringValue
]]></import>
<script><![CDATA[
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.css 2014-05-19 17:01:07 UTC (rev 1789)
@@ -81,7 +81,7 @@
}
#totalWeightField {
- text: {getWeightStringValue(model.getTotalWeight())};
+ text: {handler.getWeightStringValue(totalWeightLabel, model.getTotalWeight())};
enabled: false;
_computed: true;
_help: {"tutti.editSpeciesFrequencies.field.totalWeight.help"};
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUI.jaxx 2014-05-19 17:01:07 UTC (rev 1789)
@@ -46,7 +46,6 @@
static org.nuiton.i18n.I18n.t
static jaxx.runtime.SwingUtil.getStringValue
- static fr.ifremer.tutti.persistence.entities.TuttiEntities.getWeightStringValue
</import>
<script><![CDATA[
Modified: branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java
===================================================================
--- branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2014-05-19 14:31:57 UTC (rev 1788)
+++ branches/tutti-3.4.x/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/AbstractTuttiUIHandler.java 2014-05-19 17:01:07 UTC (rev 1789)
@@ -26,18 +26,9 @@
import com.google.common.base.Preconditions;
import com.google.common.collect.Sets;
-import fr.ifremer.tutti.type.WeightUnit;
-import fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor;
-import jaxx.runtime.swing.JAXXWidgetUtil;
-import jaxx.runtime.swing.editor.NumberEditor;
-import jaxx.runtime.swing.editor.cell.NumberCellEditor;
-import org.jdesktop.swingx.JXTitledPanel;
-import org.jdesktop.swingx.table.TableColumnExt;
-import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler;
-import org.nuiton.jaxx.application.swing.action.ApplicationActionUI;
-import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
import fr.ifremer.tutti.LabelAware;
import fr.ifremer.tutti.TuttiConfiguration;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.SampleCategory;
import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.DecoratorService;
@@ -45,22 +36,33 @@
import fr.ifremer.tutti.service.TuttiDataContext;
import fr.ifremer.tutti.service.ValidationService;
import fr.ifremer.tutti.service.catches.ValidateCruiseOperationsService;
+import fr.ifremer.tutti.type.WeightUnit;
import fr.ifremer.tutti.ui.swing.TuttiUIContext;
import fr.ifremer.tutti.ui.swing.content.MainUI;
import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import fr.ifremer.tutti.ui.swing.util.attachment.ButtonAttachment;
+import fr.ifremer.tutti.ui.swing.util.computable.ComputableDataEditor;
+import jaxx.runtime.swing.JAXXWidgetUtil;
+import jaxx.runtime.swing.editor.NumberEditor;
+import jaxx.runtime.swing.editor.cell.NumberCellEditor;
import jaxx.runtime.validator.swing.SwingValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jdesktop.swingx.JXTable;
+import org.jdesktop.swingx.JXTitledPanel;
import org.jdesktop.swingx.decorator.ComponentAdapter;
import org.jdesktop.swingx.decorator.FontHighlighter;
import org.jdesktop.swingx.decorator.HighlightPredicate;
import org.jdesktop.swingx.decorator.Highlighter;
+import org.jdesktop.swingx.table.TableColumnExt;
import org.nuiton.decorator.Decorator;
+import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler;
+import org.nuiton.jaxx.application.swing.action.ApplicationActionUI;
+import org.nuiton.jaxx.application.swing.table.AbstractApplicationTableModel;
import org.nuiton.jaxx.application.swing.table.ColumnIdentifier;
import org.nuiton.validator.bean.simple.SimpleBeanValidator;
+import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.JTextField;
@@ -75,6 +77,7 @@
import java.awt.Font;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.text.DecimalFormat;
import java.util.Set;
import static org.nuiton.i18n.I18n.t;
@@ -145,6 +148,29 @@
handler.clearValidators();
}
+ public String getWeightStringValue(WeightUnit weightUnit, Float weight) {
+ String textValue;
+ if (weight != null) {
+
+ int numberDigits = weightUnit.getNumberDigits();
+
+ DecimalFormat weightDecimalFormat = TuttiEntities.getDecimalFormat(1, numberDigits);
+ textValue = weightDecimalFormat.format(weight);
+
+ } else {
+ textValue = "";
+ }
+ return textValue;
+ }
+
+ public String getWeightStringValue(JComponent component, Float weight) {
+
+
+ WeightUnit weightUnit = (WeightUnit) component.getClientProperty("addWeightUnit");
+ return getWeightStringValue(weightUnit, weight);
+ }
+
+
@Override
public <O> Decorator<O> getDecorator(Class<O> type, String name) {
DecoratorService decoratorService =
1
0
r1788 - in trunk/tutti-service/src: main/java/fr/ifremer/tutti/service/pupitri test/java/fr/ifremer/tutti/service/pupitri test/resources/pupitri
by tchemit@users.forge.codelutin.com 19 May '14
by tchemit@users.forge.codelutin.com 19 May '14
19 May '14
Author: tchemit
Date: 2014-05-19 16:31:57 +0200 (Mon, 19 May 2014)
New Revision: 1788
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1788
Log:
refs #5085 (report from version 3.4.4)
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo5060Test.java
trunk/tutti-service/src/test/resources/pupitri/ano-5079.car
trunk/tutti-service/src/test/resources/pupitri/evo-5060.car
trunk/tutti-service/src/test/resources/pupitri/evo-5062.car
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java 2014-05-19 14:27:35 UTC (rev 1787)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java 2014-05-19 14:31:57 UTC (rev 1788)
@@ -106,6 +106,11 @@
}
public void setSign(Signs sign) {
+ if (Signs.UNSORTED.equals(sign)) {
+
+ // Not use this sign (see https://forge.codelutin.com/issues/5085)
+ sign = Signs.DEFAULT;
+ }
this.sign = sign;
}
@@ -127,7 +132,7 @@
public boolean isSorted() {
- boolean sorted = Directions.VAT == direction && !Signs.UNSORTED.equals(sign);
+ boolean sorted = Directions.VAT == direction;
return sorted;
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java 2014-05-19 14:27:35 UTC (rev 1787)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java 2014-05-19 14:31:57 UTC (rev 1788)
@@ -147,7 +147,7 @@
carrouselFile);
importPupitriTrunk(result, trunkFile, operation);
- importPupitriCarrousel(result, carrouselFile, operation, catchBatch);
+ importPupitriCarrousel(result, carrouselFile, operation);
if (result.isFishingOperationFound()) {
@@ -261,8 +261,7 @@
protected void importPupitriCarrousel(PupitriImportResult result,
File carrouselFile,
- FishingOperation operation,
- CatchBatch catchBatch) {
+ FishingOperation operation) {
if (log.isInfoEnabled()) {
log.info("Will import pupitri operation [" + operation.toString() +
@@ -304,13 +303,6 @@
String speciesId = bean.getSpeciesId();
- if (Directions.HOV.equals(bean.getDirection())) {
-
- // Do not accept any longer this direction (see https://forge.codelutin.com/issues/5060)
- notFoundSpecies.add(speciesId);
- continue;
- }
-
List<Species> speciesList = speciesBySurveyCode.get(speciesId);
Float beanWeight = bean.getWeight();
if (beanWeight < 0f) {
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo5060Test.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo5060Test.java 2014-05-19 14:27:35 UTC (rev 1787)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo5060Test.java 2014-05-19 14:31:57 UTC (rev 1788)
@@ -94,16 +94,17 @@
Assert.assertEquals(3, rootSpeciesBatch.sizeChildren());
int nbNotAdded = service.importPupitri(trunk, carroussel, operation, catchBatch).getNbCarrousselNotImported();
- Assert.assertEquals(1, nbNotAdded);
+ Assert.assertEquals(0, nbNotAdded);
BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), false);
- Assert.assertEquals(2, rootSpeciesBatchAfter.sizeChildren());
+ Assert.assertEquals(3, rootSpeciesBatchAfter.sizeChildren());
Set<Integer> unexpectedSpecies = Sets.newHashSet(
);
Set<Integer> expectedSpecies = Sets.newHashSet(
17186, // ACATPAL
- 16328 // ACAPPEL
+ 16328, // ACAPPEL
+ 17005 //MERNMER
);
Decorator<Species> speciesDecorator = decoratorService.getDecoratorByType(Species.class);
Modified: trunk/tutti-service/src/test/resources/pupitri/ano-5079.car
===================================================================
--- trunk/tutti-service/src/test/resources/pupitri/ano-5079.car 2014-05-19 14:27:35 UTC (rev 1787)
+++ trunk/tutti-service/src/test/resources/pupitri/ano-5079.car 2014-05-19 14:31:57 UTC (rev 1788)
@@ -8,7 +8,7 @@
$TSMES,27/11/13,08:13:25.383,BLCAR, 0,A,1,001,TRIG-LUC,P,VAT,1.2,
$TSMES,27/11/13,08:13:57.072,BLCAR, 0,A,1,001,ENGR-ENC,0,VAT,6.5,
$TSMES,27/11/13,08:13:57.072,BLCAR, 0,A,1,001,ENGR-ENC,0,VAT,1.3,
-$TSMES,27/11/13,08:10:26.922,BLCAR, 0,A,1,002,TRAC-TRU,H,VAT,200.0,
+$TSMES,27/11/13,08:10:26.922,BLCAR, 0,A,1,002,TRAC-TRU,H,HOV,200.0,
$TSMES,27/11/13,07:58:47.624,BLCAR, 0,A,1,002,EUTR-GUR,T,VAT,14.0,
$TSMES,27/11/13,08:09:31.330,BLCAR, 0,A,1,002,EUTR-GUR,T,VAT,4.0,
-$TSMES,27/11/13,08:10:04.519,BLCAR, 0,A,1,002,EUTR-GUR,T,VAT,2.0,
+$TSMES,27/11/13,08:10:04.519,BLCAR, 0,A,1,002,EUTR-GUR,T,VAT,2.0,
\ No newline at end of file
Modified: trunk/tutti-service/src/test/resources/pupitri/evo-5060.car
===================================================================
--- trunk/tutti-service/src/test/resources/pupitri/evo-5060.car 2014-05-19 14:27:35 UTC (rev 1787)
+++ trunk/tutti-service/src/test/resources/pupitri/evo-5060.car 2014-05-19 14:31:57 UTC (rev 1788)
@@ -1,3 +1,3 @@
$TSMES,27/11/13,09:17:40.272,BLCAR, 0,A,1,002,MERLMNG,0,HOV,0021.1,
-$TSMES,27/11/13,09:18:48.818,BLCAR, 0,A,1,002,ACAN-PEL,H,VAT,100.0,
+$TSMES,27/11/13,09:18:48.818,BLCAR, 0,A,1,002,ACAN-PEL,H,HOV,100.0,
$TSMES,27/11/13,09:18:48.818,BLCAR, 0,A,1,002,ACANPAL,0,VAT,200.0,
Modified: trunk/tutti-service/src/test/resources/pupitri/evo-5062.car
===================================================================
--- trunk/tutti-service/src/test/resources/pupitri/evo-5062.car 2014-05-19 14:27:35 UTC (rev 1787)
+++ trunk/tutti-service/src/test/resources/pupitri/evo-5062.car 2014-05-19 14:31:57 UTC (rev 1788)
@@ -3,7 +3,7 @@
$TSMES,27/11/13,13:16:41.355,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0013.2,
$TSMES,27/11/13,13:17:21.436,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0016.9,
$TSMES,27/11/13,13:17:36.955,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0013.6,
-$TSMES,27/11/13,13:19:05.279,BLCAR, 0,A,1,001,EUPH-AUX,H,VAT,0011.7, (lettre H = hors vrac)
+$TSMES,27/11/13,13:19:05.279,BLCAR, 0,A,1,001,EUPH-AUX,H,HOV,0011.7, (lettre H = hors vrac)
$TSMES,27/11/13,13:19:39.641,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0015.5,
$TSMES,27/11/13,13:20:06.166,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0014.9,
$TSMES,27/11/13,13:20:23.156,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0014.3,
@@ -26,4 +26,4 @@
$TSMES,27/11/13,13:36:40.963,BLCAR, 0,A,1,002,MICR-POU,T,VAT,0014.8, (lettre T pour du poutassou trié dans le mélange)
$TSMES,27/11/13,13:37:18.484,BLCAR, 0,A,1,002,MICR-POU,T,VAT,0011.1, (lettre T pour du poutassou trié dans le mélange)
$TSMES,27/11/13,13:38:26.381,BLCAR, 0,A,1,002,EUPH-AUX,T,VAT,0009.6, (lettre T pour des euphausiacés triés dans le mélange)
-$TSMES,27/11/13,13:49:51.688,BLCAR, 0,A,1,001,MYCT-PUN,T,VAT,0001.1, (lettre T pour des myctophidés triés dans le mélange)
+$TSMES,27/11/13,13:49:51.688,BLCAR, 0,A,1,001,MYCT-PUN,T,VAT,0001.1, (lettre T pour des myctophidés triés dans le mélange)
\ No newline at end of file
1
0
r1787 - in branches/tutti-3.4.x/tutti-service/src: main/java/fr/ifremer/tutti/service/pupitri test/java/fr/ifremer/tutti/service/pupitri test/resources/pupitri
by tchemit@users.forge.codelutin.com 19 May '14
by tchemit@users.forge.codelutin.com 19 May '14
19 May '14
Author: tchemit
Date: 2014-05-19 16:27:35 +0200 (Mon, 19 May 2014)
New Revision: 1787
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1787
Log:
fixes #5085 ([IMPORT PUPITRI] importer le Hors Vrac avec HOV et pas H)
Modified:
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java
branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java
branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo5060Test.java
branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/ano-5079.car
branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/evo-5060.car
branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/evo-5062.car
Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java 2014-05-19 14:19:17 UTC (rev 1786)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/CarrouselRow.java 2014-05-19 14:27:35 UTC (rev 1787)
@@ -106,6 +106,11 @@
}
public void setSign(Signs sign) {
+ if (Signs.UNSORTED.equals(sign)) {
+
+ // Not use this sign (see https://forge.codelutin.com/issues/5085)
+ sign = Signs.DEFAULT;
+ }
this.sign = sign;
}
@@ -127,7 +132,7 @@
public boolean isSorted() {
- boolean sorted = Directions.VAT == direction && !Signs.UNSORTED.equals(sign);
+ boolean sorted = Directions.VAT == direction;
return sorted;
}
Modified: branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java 2014-05-19 14:19:17 UTC (rev 1786)
+++ branches/tutti-3.4.x/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportExportService.java 2014-05-19 14:27:35 UTC (rev 1787)
@@ -149,7 +149,7 @@
carrouselFile);
importPupitriTrunk(result, trunkFile, operation);
- importPupitriCarrousel(result, carrouselFile, operation, catchBatch);
+ importPupitriCarrousel(result, carrouselFile, operation);
if (result.isFishingOperationFound()) {
@@ -264,8 +264,7 @@
protected void importPupitriCarrousel(PupitriImportResult result,
File carrouselFile,
- FishingOperation operation,
- CatchBatch catchBatch) {
+ FishingOperation operation) {
if (log.isInfoEnabled()) {
log.info("Will import pupitri operation [" + operation.toString() +
@@ -278,19 +277,6 @@
// get the map of species by survey code
ListMultimap<String, Species> speciesBySurveyCode = ArrayListMultimap.create();
-// speciesBySurveyCode.putAll(
-// Multimaps.index(dataContext.getReferentSpeciesWithSurveyCode(),
-// new Function<Species, String>() {
-// @Override
-// public String apply(Species input) {
-// String surveyCode = String.valueOf(input.getSurveyCode());
-// int end = Math.min(surveyCode.length(), 7);
-// return surveyCode.substring(0, end);
-// }
-// })
-// );
-// speciesBySurveyCode.putAll(TuttiEntities.splitByRefTaxCode(dataContext.getReferentSpecies()));
-
speciesBySurveyCode.putAll(TuttiEntities.splitBySurveyCode(dataContext.getReferentSpeciesWithSurveyCode()));
speciesBySurveyCode.putAll(TuttiEntities.splitByRefTaxCode(dataContext.getReferentSpecies()));
@@ -322,13 +308,6 @@
String speciesId = bean.getSpeciesId();
- if (Directions.HOV.equals(bean.getDirection())) {
-
- // Do not accept any longer this direction (see https://forge.codelutin.com/issues/5060)
- notFoundSpecies.add(speciesId);
- continue;
- }
-
List<Species> speciesList = speciesBySurveyCode.get(speciesId);
Float beanWeight = bean.getWeight();
if (beanWeight < 0f) {
@@ -338,15 +317,6 @@
if (sorted) {
carrouselSortedWeight += beanWeight;
}
-// switch (bean.getDirection()) {
-// case HOV:
-// sorted = false;
-// break;
-//
-// default:
-// sorted = true;
-// carrouselSortedWeight += beanWeight;
-// }
if (CollectionUtils.isNotEmpty(speciesList)) {
Modified: branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo5060Test.java
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo5060Test.java 2014-05-19 14:19:17 UTC (rev 1786)
+++ branches/tutti-3.4.x/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceEvo5060Test.java 2014-05-19 14:27:35 UTC (rev 1787)
@@ -118,16 +118,17 @@
Assert.assertEquals(3, rootSpeciesBatch.sizeChildren());
int nbNotAdded = service.importPupitri(trunk, carroussel, operation, catchBatch).getNbCarrousselNotImported();
- Assert.assertEquals(1, nbNotAdded);
+ Assert.assertEquals(0, nbNotAdded);
BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), null);
- Assert.assertEquals(2, rootSpeciesBatchAfter.sizeChildren());
+ Assert.assertEquals(3, rootSpeciesBatchAfter.sizeChildren());
Set<Integer> unexpectedSpecies = Sets.newHashSet(
);
Set<Integer> expectedSpecies = Sets.newHashSet(
17186, // ACATPAL
- 16328 // ACAPPEL
+ 16328, // ACAPPEL
+ 17005 //MERNMER
);
Decorator<Species> speciesDecorator = decoratorService.getDecoratorByType(Species.class);
Modified: branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/ano-5079.car
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/ano-5079.car 2014-05-19 14:19:17 UTC (rev 1786)
+++ branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/ano-5079.car 2014-05-19 14:27:35 UTC (rev 1787)
@@ -8,7 +8,7 @@
$TSMES,27/11/13,08:13:25.383,BLCAR, 0,A,1,001,TRIG-LUC,P,VAT,1.2,
$TSMES,27/11/13,08:13:57.072,BLCAR, 0,A,1,001,ENGR-ENC,0,VAT,6.5,
$TSMES,27/11/13,08:13:57.072,BLCAR, 0,A,1,001,ENGR-ENC,0,VAT,1.3,
-$TSMES,27/11/13,08:10:26.922,BLCAR, 0,A,1,002,TRAC-TRU,H,VAT,200.0,
+$TSMES,27/11/13,08:10:26.922,BLCAR, 0,A,1,002,TRAC-TRU,H,HOV,200.0,
$TSMES,27/11/13,07:58:47.624,BLCAR, 0,A,1,002,EUTR-GUR,T,VAT,14.0,
$TSMES,27/11/13,08:09:31.330,BLCAR, 0,A,1,002,EUTR-GUR,T,VAT,4.0,
$TSMES,27/11/13,08:10:04.519,BLCAR, 0,A,1,002,EUTR-GUR,T,VAT,2.0,
\ No newline at end of file
Modified: branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/evo-5060.car
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/evo-5060.car 2014-05-19 14:19:17 UTC (rev 1786)
+++ branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/evo-5060.car 2014-05-19 14:27:35 UTC (rev 1787)
@@ -1,3 +1,3 @@
$TSMES,27/11/13,09:17:40.272,BLCAR, 0,A,1,002,MERLMNG,0,HOV,0021.1,
-$TSMES,27/11/13,09:18:48.818,BLCAR, 0,A,1,002,ACAN-PEL,H,VAT,100.0,
+$TSMES,27/11/13,09:18:48.818,BLCAR, 0,A,1,002,ACAN-PEL,H,HOV,100.0,
$TSMES,27/11/13,09:18:48.818,BLCAR, 0,A,1,002,ACANPAL,0,VAT,200.0,
Modified: branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/evo-5062.car
===================================================================
--- branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/evo-5062.car 2014-05-19 14:19:17 UTC (rev 1786)
+++ branches/tutti-3.4.x/tutti-service/src/test/resources/pupitri/evo-5062.car 2014-05-19 14:27:35 UTC (rev 1787)
@@ -3,7 +3,7 @@
$TSMES,27/11/13,13:16:41.355,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0013.2,
$TSMES,27/11/13,13:17:21.436,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0016.9,
$TSMES,27/11/13,13:17:36.955,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0013.6,
-$TSMES,27/11/13,13:19:05.279,BLCAR, 0,A,1,001,EUPH-AUX,H,VAT,0011.7, (lettre H = hors vrac)
+$TSMES,27/11/13,13:19:05.279,BLCAR, 0,A,1,001,EUPH-AUX,H,HOV,0011.7, (lettre H = hors vrac)
$TSMES,27/11/13,13:19:39.641,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0015.5,
$TSMES,27/11/13,13:20:06.166,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0014.9,
$TSMES,27/11/13,13:20:23.156,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,0014.3,
1
0
r1786 - in trunk: src/conception/specifications tutti-service/src/main/resources/i18n tutti-ui-swing/src/main/help/fr
by lkaufmann@users.forge.codelutin.com 19 May '14
by lkaufmann@users.forge.codelutin.com 19 May '14
19 May '14
Author: lkaufmann
Date: 2014-05-19 16:19:17 +0200 (Mon, 19 May 2014)
New Revision: 1786
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1786
Log:
Refs #5070 Specifications update & corrections in help
Modified:
trunk/src/conception/specifications/AllegroCampagne-Specifications.odt
trunk/src/conception/specifications/AllegroCampagne-Specifications.pdf
trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
trunk/tutti-ui-swing/src/main/help/fr/genericExport.html
Modified: trunk/src/conception/specifications/AllegroCampagne-Specifications.odt
===================================================================
(Binary files differ)
Modified: trunk/src/conception/specifications/AllegroCampagne-Specifications.pdf
===================================================================
(Binary files differ)
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2014-05-15 16:39:57 UTC (rev 1785)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_en_GB.properties 2014-05-19 14:19:17 UTC (rev 1786)
@@ -160,6 +160,7 @@
tutti.service.protocol.import.species.error=
tutti.service.protocol.import.taxonUsed.error=
tutti.service.psion.import.attachment.comment=
+tutti.service.psionimport.error.inconsistentVracCategory.message=
tutti.service.psionimport.error.inconsistentVracWeight.message=
tutti.service.psionimport.error.invalid.category.syntax=
tutti.service.psionimport.error.invalid.command.syntax=
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-05-15 16:39:57 UTC (rev 1785)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-05-19 14:19:17 UTC (rev 1786)
@@ -159,8 +159,8 @@
tutti.service.protocol.import.species.error=Erreur lors de l'import des espèces du protocole %1s du fichier %2s
tutti.service.protocol.import.taxonUsed.error=Le taxon référent d'id %s est déjà utilisé
tutti.service.psion.import.attachment.comment=Import Psion du %s
+tutti.service.psionimport.error.inconsistentVracCategory.message=Pour l'espèce '%s', la cétégorisation des lots vrac n'est pas cohérente (POID \!\= 0 et TAIL > 0) (on autorise uniquement que tous les lots soient catégorisés ou un seul lot non catégorisé)
tutti.service.psionimport.error.inconsistentVracWeight.message=Pour l'espèce '%s', il existe deux enregistrements de lot vrac avec le champs 'POID' différent, ce qui est interdit
-tutti.service.psionimport.error.inconsistentVracCategory.message=Pour l'espèce '%s', la cétégorisation des lots vrac n'est pas cohérente (POID != 0 et TAIL > 0) (on autorise uniquement que tous les lots soient catégorisés ou un seul lot non catégorisé)
tutti.service.psionimport.error.invalid.category.syntax=Ligne %s, catégorisation '%s' inconnue, l'espèce %s sera ignorée
tutti.service.psionimport.error.invalid.command.syntax=Ligne %s, la commande '%s' n'est pas reconnue
tutti.service.psionimport.error.invalid.date.format=Format de la date du trait incorrecte (mm-dd-aaaa)
Modified: trunk/tutti-ui-swing/src/main/help/fr/genericExport.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/fr/genericExport.html 2014-05-15 16:39:57 UTC (rev 1785)
+++ trunk/tutti-ui-swing/src/main/help/fr/genericExport.html 2014-05-19 14:19:17 UTC (rev 1786)
@@ -72,7 +72,7 @@
</p>
<h3>Entête du fichier</h3>
<pre>
-Annee;Serie;Serie_Partielle;Engin;Code_station;Numero_Trait;Poche;Navire;BatchId;ReferenceTaxonId;ReferenceTaxonName;Commentaire;CaracteristicId;CaracteristicValue</pre>
+Annee;Serie;Serie_Partielle;Engin;Code_station;Id_Operation;Poche;BatchId;ReferenceTaxonId;ReferenceTaxonName;Commentaire;CaracteristicId;CaracteristicValue</pre>
<h3>Exemple</h3>
<p>Voir le fichier <a href="../export/accidentalCatch.csv" target="export">accidentalCatch.csv</a> </p>
<h3>Description des colonnes</h3>
@@ -92,8 +92,8 @@
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
<tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
- <tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
- <tr class='active'><td>BatchId</td><td>Opération > Capture</td><td>Numéro de lôt de capture</td><td>Id du lot capture</td></tr>
+ <tr><td>Poche</td><td>Opération</td><td>Numéro de poche</td><td></td></tr>
+ <tr class='active'><td>BatchId</td><td>Opération > Capture</td><td>Numéro de lot de capture</td><td>Id du lot capture</td></tr>
<tr><td>ReferenceTaxonId</td><td>Opération > Observations individuelles</td><td>Tableau > Espèce</td><td></td></tr>
<tr><td>ReferenceTaxonName</td><td>Opération > Observations individuelles</td><td>Tableau > Espèce</td><td></td></tr>
<tr><td>Commentaire</td><td>Opération > Observations individuelles</td><td>Tableau > Commentaire</td><td></td></tr>
@@ -116,7 +116,7 @@
</p>
<h3>Entête du fichier</h3>
<pre>
-Annee;Serie;Serie_Partielle;Engin;Code_station;Numero_Trait;Poche;Navire;Taxon;Nom_scientifique;Commentaire;V_HV;Num_Ordre_V_HV_H2;Tot_V_HV;Ech_V_HV;Type_Volume_Poids_V_HV;Unite_Volume_Poids_V_HV;Class_Tri_;Num_Ordre_Class_Tri__H2;Tot_Class_Tri_;Ech_Class_Tri_;Type_Volume_Poids_Class_Tri_;Unite_Volume_Poids_Class_Tri_;Sexe;Num_Ordre_Sexe_H2;Tot_Sexe;Ech_Sexe;Type_Volume_Poids_Sexe;Unite_Volume_Poids_Sexe;Maturité;Num_Ordre_Maturité_H2;Tot_Maturité;Ech_Maturité;Type_Volume_Poids_Maturité;Unite_Volume_Poids_Maturité;Age;Num_Ordre_Age_H2;Tot_Age;Ech_Age;Type_Volume_Poids_Age;Unite_Volume_Poids_Age;Code_Longueur;Libelle_Longueur;Taille;NumOrdre_Taille_H2;Poids_Classe_Taille;Unite_Taille;Precision_Mesure;Nbr;Poids_Reference;Coef_Elev_Espece_Capture</pre>
+Annee;Serie;Serie_Partielle;Engin;Code_station;Id_Operation;Poche;Taxon;Nom_scientifique;Commentaire;V_HV;Num_Ordre_V_HV_H2;Tot_V_HV;Ech_V_HV;Type_Volume_Poids_V_HV;Unite_Volume_Poids_V_HV;Class_Tri_;Num_Ordre_Class_Tri__H2;Tot_Class_Tri_;Ech_Class_Tri_;Type_Volume_Poids_Class_Tri_;Unite_Volume_Poids_Class_Tri_;Sexe;Num_Ordre_Sexe_H2;Tot_Sexe;Ech_Sexe;Type_Volume_Poids_Sexe;Unite_Volume_Poids_Sexe;Maturité;Num_Ordre_Maturité_H2;Tot_Maturité;Ech_Maturité;Type_Volume_Poids_Maturité;Unite_Volume_Poids_Maturité;Age;Num_Ordre_Age_H2;Tot_Age;Ech_Age;Type_Volume_Poids_Age;Unite_Volume_Poids_Age;Code_Longueur;Libelle_Longueur;Taille;NumOrdre_Taille_H2;Poids_Classe_Taille;Unite_Taille;Precision_Mesure;Nbr;Poids_Reference;Coef_Elev_Espece_Capture</pre>
<h3>Exemple</h3>
<p>Voir le fichier <a href="../export/catch.csv" target="export">catch.csv</a></p>
<h3>Description des colonnes</h3>
@@ -136,12 +136,11 @@
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
<tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
- <tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
- <tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
+ <tr><td>Poche</td><td>Opération</td><td>Numéro de poche</td><td></td></tr>
<tr><td>Code_Taxon</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Espèce</td><td></td></tr>
<tr><td>Code_Espece_Campagne</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Espèce</td><td></td></tr>
<tr><td>Nom_scientifique</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Espèce</td><td></td></tr>
- <tr><td>Commentaire</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Commentaire</td><td>Les commentaires séparés par des <strong>|</strong>; en partant du lôt père jusqu'au lot feuille</td></tr>
+ <tr><td>Commentaire</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Commentaire</td><td>Les commentaires séparés par des <strong>|</strong>; en partant du lot père jusqu'au lot feuille</td></tr>
<tr><td>V_HV</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Poids Vrac</td><td>Valeur: <strong>Vrac</strong> ou <strong>Hors Vrac</strong></td></tr>
<tr class='active'><td>Num_Ordre_V_HV_H2</td><td>Opération > Captures > Espèces ou Benthos</td><td>Numéro ordre du lot</td><td>(rankOrder)</td></tr>
<tr><td>Tot_V_HV</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Vrac / Hors Vrac</td><td></td></tr>
@@ -166,7 +165,7 @@
<dl>
<dt>XXX</dt>
<dd>
- Valeur de la catégorisation (i.e valeur de la catartéristique) (<strong>NA</strong> si cette catégorisation n'est pas utilisée)
+ Valeur de la catégorisation (i.e valeur de la caractéristique) (<strong>NA</strong> si cette catégorisation n'est pas utilisée)
</dd>
<dt>Num_Ordre_XXX</dt>
<dd>
@@ -224,7 +223,7 @@
</p>
<h3>Entête du fichier</h3>
<pre>
-Annee;Serie;Serie_Partielle;Engin;Code_station;Numero_Trait;Poche;Navire;BatchId;ReferenceTaxonId;ReferenceTaxonName;Commentaire;CaracteristicId;CaracteristicValue</pre>
+Annee;Serie;Serie_Partielle;Engin;Code_station;Id_Operation;Poche;BatchId;ReferenceTaxonId;ReferenceTaxonName;Commentaire;CaracteristicId;CaracteristicValue</pre>
<h3>Exemple</h3>
<p>Voir le fichier <a href="../export/individualObservation.csv" target="export">individualObservation.csv</a></p>
<h3>Description des colonnes</h3>
@@ -244,8 +243,7 @@
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
<tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
- <tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
- <tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
+ <tr><td>Poche</td><td>Opération</td><td>Numéro de poche</td><td></td></tr>
<tr><td>BatchId</td><td>Opération > Observations individuelles</td><td>Id technique</td><td></td></tr>
<tr><td>ReferenceTaxonId</td><td>Opération > Observations individuelles</td><td>Tableau > Espèce</td><td></td></tr>
<tr><td>ReferenceTaxonName</td><td>Opération > Observations individuelles</td><td>Tableau > Espèce</td><td></td></tr>
@@ -263,7 +261,7 @@
</p>
<h3>Entête du fichier</h3>
<pre>
-Annee;Serie;Serie_Partielle;Engin;Code_station;Numero_Trait;Poche;Navire;MarineLitterCategory;MarineLitterSizeCategory;Number;Weight;Commentaire</pre>
+Annee;Serie;Serie_Partielle;Engin;Code_station;Id_Operation;Poche;MarineLitterCategory;MarineLitterSizeCategory;Number;Weight;Commentaire</pre>
<h3>Exemple</h3>
<p>Voir le fichier <a href="../export/marineLitter.csv" target="export">marineLitter.csv</a></p>
<h3>Description des colonnes</h3>
@@ -283,8 +281,7 @@
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
<tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
- <tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
- <tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
+ <tr><td>Poche</td><td>Opération</td><td>Numéro de poche</td><td></td></tr>
<tr><td>MarineLitterCategory</td><td>Opération > Macro-déchet</td><td>Tableau > Catégorie</td><td></td></tr>
<tr><td>MarineLitterSizeCategory</td><td>Opération > Macro-déchet</td><td>Tableau > Catégorie de taille</td><td></td></tr>
<tr><td>Number</td><td>Opération > Macro-déchet</td><td>Tableau > Nombre</td><td></td></tr>
@@ -299,7 +296,7 @@
</p>
<h3>Entête du fichier</h3>
<pre>
-Annee;Serie;Serie_Partielle;Code_Station;Numero_Trait;Poche;Engin;Navire;DateDeb_Op;LatDeb;LongDeb;DateFin_Op;LatFin;LongFin;Duree;Strate;Sous-Strate;Localite;Validite_OP;Rectiligne;Distance;Ouv_Verticale;Ouv_Horizontale_Ailes;Ouv_Horizontale_Panneaux;Saisisseur;NavireAssocie;Commentaire;Poids_Total;Poids_Total_Calcule;Poids_Total_Vrac;Poids_Total_Vrac_Calcule;Poids_Total_HorsVrac;Poids_Total_HorsVrac_Calcule;Poids_Total_Non_Trie;Poids_Total_Non_Trie_Calcule;Poids_Total_Tremis;Poids_Total_Tremis_Calcule;Poids_Total_Carroussel;Poids_Total_Carroussel_Calcule;Poids_Total_Espece;Poids_Total_Espece_Calcule;Poids_Total_Espece_Vrac;Poids_Total_Espece_Vrac_Calcule;Poids_Total_Espece_Vrac_Trie;Poids_Total_Espece_Vrac_Trie_Calcule;Poids_Total_Espece_HorsVrac;Poids_Total_Espece_HorsVrac_Calcule;Poids_Total_Espece_Inerte_Trie;Poids_Total_Espece_Inerte_Trie_Calcule;Poids_Total_Espece_Vivant_non_detaille_trie;Poids_Total_Espece_Vivant_non_detaille_trie_Calcule;Poids_Total_Benthos;Poids_Total_Benthos_Calcule;Poids_Total_Benthos_Vrac;Poids_Total_Benthos_Vrac_Calcule;Poids_Total_Benthos_Vrac_Trie;Poids_Total_Benthos_Vrac_Trie_Calcule;Poids_Total_Benthos_HorsVrac;Poids_Total_Benthos_HorsVrac_Calcule;Poids_Total_Benthos_Inerte_Trie;Poids_Total_Benthos_Inerte_Trie_Calcule;Poids_Total_Benthos_Vivant_non_detaille_trie;Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule;Poids_Total_Macro_Dechet;Poids_Total_Macro_Dechet_Calcule</pre>
+Annee;Serie;Serie_Partielle;Code_Station;Id_Operation;Poche;Engin;Navire;DateDeb;LatDeb;LongDeb;DateFin;LatFin;LongFin;Duree;Strate;Sous_Strate;Localite;Validite_OP;Rectiligne;Distance;Saisisseur;Navire_Associe;Commentaire;Poids_Total;Poids_Total_Calcule;Poids_Total_Vrac;Poids_Total_Vrac_Calcule;Poids_Total_HorsVrac;Poids_Total_HorsVrac_Calcule;Poids_Total_Non_Trie;Poids_Total_Non_Trie_Calcule;Poids_Total_Tremis;Poids_Total_Tremis_Calcule;Poids_Total_Carroussel;Poids_Total_Carroussel_Calcule;Poids_Total_Espece;Poids_Total_Espece_Calcule;Poids_Total_Espece_Vrac;Poids_Total_Espece_Vrac_Calcule;Poids_Total_Espece_Vrac_Trie;Poids_Total_Espece_Vrac_Trie_Calcule;Poids_Total_Espece_HorsVrac;Poids_Total_Espece_HorsVrac_Calcule;Poids_Total_Espece_Inerte_Trie;Poids_Total_Espece_Inerte_Trie_Calcule;Poids_Total_Espece_Vivant_non_detaille_trie;Poids_Total_Espece_Vivant_non_detaille_trie_Calcule;Poids_Total_Benthos;Poids_Total_Benthos_Calcule;Poids_Total_Benthos_Vrac;Poids_Total_Benthos_Vrac_Calcule;Poids_Total_Benthos_Vrac_Trie;Poids_Total_Benthos_Vrac_Trie_Calcule;Poids_Total_Benthos_HorsVrac;Poids_Total_Benthos_HorsVrac_Calcule;Poids_Total_Benthos_Inerte_Trie;Poids_Total_Benthos_Inerte_Trie_Calcule;Poids_Total_Benthos_Vivant_non_detaille_trie;Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule;Poids_Total_Macro_Dechet;Poids_Total_Macro_Dechet_Calcule</pre>
<h3>Exemple</h3>
<p>Voir le fichier <a href="../export/operation.csv" target="export">operation.csv</a></p>
<h3>Description des colonnes</h3>
@@ -316,16 +313,15 @@
<tr><td>Annee</td><td>Campagne</td><td>Date de début</td><td>format YYYY</td></tr>
<tr><td>Serie</td><td>Campagne</td><td>Série</td><td></td></tr>
<tr><td>Serie_Partielle</td><td>Campagne</td><td>Série partielle</td><td></td></tr>
- <tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
<tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
- <tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
+ <tr><td>Poche</td><td>Opération</td><td>Numéro de poche</td><td></td></tr>
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Navire</td><td>Opération</td><td>Navire</td><td></td></tr>
- <tr><td>DateDeb_Op</td><td>Opération</td><td>Date début</td><td>format JJ/MM/YYYY HH:MM:ss</td></tr>
+ <tr><td>DateDeb</td><td>Opération</td><td>Date début</td><td>format JJ/MM/YYYY HH:MM:ss</td></tr>
<tr><td>LatDeb</td><td>Opération</td><td>Latitude début</td><td>format DD</td></tr>
<tr><td>LongDeb</td><td>Opération</td><td>Longitude début</td><td>format DD</td></tr>
- <tr><td>DateFin_Op</td><td>Opération</td><td>Date fin</td><td>format JJ/MM/YYYY HH:MM:ss</td></tr>
+ <tr><td>DateFin</td><td>Opération</td><td>Date fin</td><td>format JJ/MM/YYYY HH:MM:ss</td></tr>
<tr><td>LatFin</td><td>Opération</td><td>Latitude fin</td><td>format DD</td></tr>
<tr><td>LongFin</td><td>Opération</td><td>Longitude fin</td><td>format DD</td></tr>
<tr><td>Duree</td><td>Opération</td><td>Durée du trait</td><td>(3)</td></tr>
@@ -388,7 +384,7 @@
Ce fichier contient tous les <strong>Caractéristiques du trait</strong>.
</p>
<h3>Entête du fichier</h3>
- <pre>Annee;Serie;Serie_Partielle;Code_station;Numero_Trait;Poche;Code_PMFM;Libelle_PMFm;Valeur</pre>
+ <pre>Annee;Serie;Serie_Partielle;Code_station;Id_Operation;Poche;Code_PMFM;Libelle_PMFm;Valeur</pre>
<h3>Exemple</h3>
<p>Voir le fichier <a href="../export/parameter.csv" target="export">parameter.csv</a></p>
<h3>Description des colonnes</h3>
@@ -405,10 +401,9 @@
<tr><td>Annee</td><td>Campagne</td><td>Date de début</td><td>format YYYY</td></tr>
<tr><td>Serie</td><td>Campagne</td><td>Série</td><td></td></tr>
<tr><td>Serie_Partielle</td><td>Campagne</td><td>Série partielle</td><td></td></tr>
- <tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
<tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
- <tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
+ <tr><td>Poche</td><td>Opération</td><td>Numéro de poche</td><td></td></tr>
<tr><td>Code_PMFM</td><td>Opération > Mise en oeuvre de l'engin (ou Autres paramètres)</td><td>Tableau > Caractéristique</td><td></td></tr>
<tr><td>Libelle_PMFm</td><td>Opération > Mise en oeuvre de l'engin (ou Autres paramètres)</td><td>Tableau > Caractéristique</td><td></td></tr>
<tr><td>Valeur</td><td>Opération > Mise en oeuvre de l'engin (ou Autres paramètres)</td><td>Tableau > Valeur</td><td></td></tr>
1
0
r1785 - in trunk/tutti-service/src: main/java/fr/ifremer/tutti/service/psionimport main/resources/i18n test/java/fr/ifremer/tutti/service/psionimport test/resources/psion
by tchemit@users.forge.codelutin.com 15 May '14
by tchemit@users.forge.codelutin.com 15 May '14
15 May '14
Author: tchemit
Date: 2014-05-15 18:39:57 +0200 (Thu, 15 May 2014)
New Revision: 1785
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1785
Log:
refs #5077 (report from version 3.4.3)
Added:
trunk/tutti-service/src/test/resources/psion/evo-5077.IWA
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportBatchModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java
trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportBatchModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportBatchModel.java 2014-05-15 16:25:26 UTC (rev 1784)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportBatchModel.java 2014-05-15 16:39:57 UTC (rev 1785)
@@ -77,6 +77,8 @@
protected String categoryCode;
+ protected boolean applyBothWeightOnCategorizedBatch;
+
public PsionImportBatchModel(Species species, Integer lengthStepCaracteristicId) {
this.species = species;
this.lengthStepCaracteristicId = lengthStepCaracteristicId;
@@ -150,6 +152,14 @@
return frequencies.size();
}
+ public void setApplyBothWeightOnCategorizedBatch(boolean applyBothWeightOnCategorizedBatch) {
+ this.applyBothWeightOnCategorizedBatch = applyBothWeightOnCategorizedBatch;
+ }
+
+ public boolean isApplyBothWeightOnCategorizedBatch() {
+ return applyBothWeightOnCategorizedBatch;
+ }
+
void merge(PsionImportBatchModel batchModel) {
setWeight(getWeight() + batchModel.getWeight());
setSampleWeight(getSampleWeight() + batchModel.getSampleWeight());
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java 2014-05-15 16:25:26 UTC (rev 1784)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportModel.java 2014-05-15 16:39:57 UTC (rev 1785)
@@ -37,12 +37,11 @@
import org.apache.commons.logging.LogFactory;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import static org.nuiton.i18n.I18n.t;
@@ -149,7 +148,7 @@
Species species = batchModel.getSpecies();
speciesSet.add(species);
-
+
String categoryCode = batchModel.getCategoryCode();
Float weight = batchModel.getWeight();
Float sampleWeight = batchModel.getSampleWeight();
@@ -230,6 +229,7 @@
}
}
+
}
void cleanUnsortedBatches() {
@@ -247,35 +247,86 @@
void checkSortedBatches() throws IOException {
- Set<Species> speciesSet = sortedBatchsBySpecies.keySet();
+// for (Species species : sortedBatchsBySpecies.keySet()) {
+//
+// Collection<PsionImportBatchModel> sortedBatches = sortedBatchsBySpecies.get(species);
+//
+// Map<String, Float> weightByCategory = new HashMap<>();
+//
+// for (PsionImportBatchModel sortedBatch : sortedBatches) {
+// Float weight = sortedBatch.getWeight();
+// if (TuttiEntities.isGreaterWeight(weight, 0)) {
+//
+// Float rootweight = weightByCategory.get(sortedBatch.getCategoryCode());
+//
+// if (rootweight == null) {
+//
+// // first time
+// weightByCategory.put(sortedBatch.getCategoryCode(), weight);
+// } else if (!TuttiEntities.isEqualWeight(rootweight, weight)) {
+//
+// // can't have 2 batches with different vrac batch weight
+// throw new IOException(
+// t("tutti.service.psionimport.error.inconsistentVracWeight.message", species.getSurveyCode()));
+// }
+//
+// }
+// }
+// }
- for (Species species : speciesSet) {
+ for (Species species : sortedBatchsBySpecies.keySet()) {
- Collection<PsionImportBatchModel> sortedBatches = sortedBatchsBySpecies.get(species);
+ Collection<PsionImportBatchModel> speciesBatchesWithDoubleWeight = new ArrayList<>();
+ Collection<PsionImportBatchModel> speciesBatchesWithDoubleWeightAndCat = new ArrayList<>();
- Map<String, Float> weightByCategory = new HashMap<>();
+ for (PsionImportBatchModel batchModel : sortedBatchsBySpecies.get(species)) {
- for (PsionImportBatchModel sortedBatch : sortedBatches) {
- Float weight = sortedBatch.getWeight();
- if (TuttiEntities.isGreaterWeight(weight, 0)) {
+ Float weight = batchModel.getWeight();
+ Float sampleWeight = batchModel.getSampleWeight();
- Float rootweight = weightByCategory.get(sortedBatch.getCategoryCode());
+ if (TuttiEntities.isEqualWeight(weight, 0) && TuttiEntities.isGreaterWeight(sampleWeight, 0)) {
- if (rootweight == null) {
+ // POID = 0 et TAIL != POID : un seul poids à positionner
+ continue;
+ }
- // first time
- weightByCategory.put(sortedBatch.getCategoryCode(), weight);
- } else if (!TuttiEntities.isEqualWeight(rootweight, weight)) {
+ if (TuttiEntities.isGreaterWeight(weight, 0) && TuttiEntities.isGreaterWeight(weight, sampleWeight)) {
- // can't have 2 batches with different vrac batch weight
- throw new IOException(
- t("tutti.service.psionimport.error.inconsistentVracWeight.message", species.getSurveyCode()));
+ // POID > 0 et POID > TAIL : deux poids à positionner
+ speciesBatchesWithDoubleWeight.add(batchModel);
+
+ if (batchModel.withCategories()) {
+
+ speciesBatchesWithDoubleWeightAndCat.add(batchModel);
}
}
+
}
+
+ if (!speciesBatchesWithDoubleWeight.isEmpty()) {
+
+ if (speciesBatchesWithDoubleWeightAndCat.size() == speciesBatchesWithDoubleWeight.size()) {
+
+ // tous les lots sont categories
+ // on marque les lots pour que weight soit sur la categorie et sampleWeight comme poids de sous echantillon
+
+ for (PsionImportBatchModel batchModel : speciesBatchesWithDoubleWeight) {
+ batchModel.setApplyBothWeightOnCategorizedBatch(true);
+ }
+ } else if (speciesBatchesWithDoubleWeight.size() == 1 && speciesBatchesWithDoubleWeightAndCat.isEmpty()) {
+
+ // un seul lot non categorise
+ } else {
+
+ // on bloque l'import
+ throw new IOException(
+ t("tutti.service.psionimport.error.inconsistentVracCategory.message", species.getSurveyCode()));
+ }
+
+ }
+
}
}
-
}
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-05-15 16:25:26 UTC (rev 1784)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-05-15 16:39:57 UTC (rev 1785)
@@ -4,6 +4,7 @@
* #%L
* Tutti :: Service
* $Id$
+ * $Id$
* $HeadURL$
* %%
* Copyright (C) 2012 - 2014 Ifremer
@@ -556,17 +557,27 @@
// batch with categories
- // Is there two weights ? If so then the weight has to be placed in the sorted batch
+ // Is there two weights ?
+ // If so and applyOnLeaf is off then the weight has to be placed in the sorted batch
+ // Otherwise apply both weight on categorized batch
Float sortedBatchWeight = null;
Float weight = batchs.get(0).getWeight();
Float sampleWeight = batchs.get(0).getSampleWeight();
+ boolean applyOnLeaf = batchs.get(0).isApplyBothWeightOnCategorizedBatch();
if (sampleWeight != null) {
// use the weight as sorted batch weight
- sortedBatchWeight = weight;
+
+ if (!applyOnLeaf) {
+
+ // use the weight as sorted batch weight
+ sortedBatchWeight = weight;
+
+ }
+
}
SpeciesBatch rootBatch = createSpeciesBatch(operation,
Modified: trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties
===================================================================
--- trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-05-15 16:25:26 UTC (rev 1784)
+++ trunk/tutti-service/src/main/resources/i18n/tutti-service_fr_FR.properties 2014-05-15 16:39:57 UTC (rev 1785)
@@ -160,6 +160,7 @@
tutti.service.protocol.import.taxonUsed.error=Le taxon référent d'id %s est déjà utilisé
tutti.service.psion.import.attachment.comment=Import Psion du %s
tutti.service.psionimport.error.inconsistentVracWeight.message=Pour l'espèce '%s', il existe deux enregistrements de lot vrac avec le champs 'POID' différent, ce qui est interdit
+tutti.service.psionimport.error.inconsistentVracCategory.message=Pour l'espèce '%s', la cétégorisation des lots vrac n'est pas cohérente (POID != 0 et TAIL > 0) (on autorise uniquement que tous les lots soient catégorisés ou un seul lot non catégorisé)
tutti.service.psionimport.error.invalid.category.syntax=Ligne %s, catégorisation '%s' inconnue, l'espèce %s sera ignorée
tutti.service.psionimport.error.invalid.command.syntax=Ligne %s, la commande '%s' n'est pas reconnue
tutti.service.psionimport.error.invalid.date.format=Format de la date du trait incorrecte (mm-dd-aaaa)
Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java 2014-05-15 16:25:26 UTC (rev 1784)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/psionimport/PsionImportServiceTest.java 2014-05-15 16:39:57 UTC (rev 1785)
@@ -4,6 +4,7 @@
* #%L
* Tutti :: Service
* $Id$
+ * $Id$
* $HeadURL$
* %%
* Copyright (C) 2012 - 2014 Ifremer
@@ -262,4 +263,65 @@
BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), false);
Assert.assertEquals(oldNbBatchs, rootSpeciesBatchAfter.sizeChildren());
}
+
+ @Test
+ public void importEvo5077() throws IOException {
+
+ File importFile = dbResource.copyClassPathResource("psion/evo-5077.IWA", "evo-5077.IWA");
+
+ FishingOperation operation = dataContext.operations.get(1);
+ CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operation.getId());
+ catchBatch.setFishingOperation(operation);
+
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), false);
+ int oldSortedBatchs = 0;
+ int oldUnsortedBatchs = 0;
+ for (SpeciesBatch speciesBatch : rootSpeciesBatch.getChildren()) {
+
+ boolean sorted = vracPredicate.apply(speciesBatch);
+
+ if (sorted) {
+ oldSortedBatchs++;
+ } else {
+ oldUnsortedBatchs++;
+ }
+ }
+
+ PsionImportResult importResult = service.importFile(importFile, operation, catchBatch);
+
+ int nbSortedAdded = importResult.getNbSortedImported();
+ int nbUnsortedAdded = importResult.getNbUnsortedImported();
+ List<String> errors = importResult.getErrors();
+
+ if (log.isInfoEnabled()) {
+ log.info("Sorted Imported: " + nbSortedAdded);
+ log.info("Unsorted Imported: " + nbUnsortedAdded);
+ log.info("Errors: " + errors.size());
+ }
+
+ int nbNewSortedBatchs = 3;
+ int nbNewUnsortedBatchs = 1;
+ Assert.assertEquals(nbNewSortedBatchs, nbSortedAdded);
+ Assert.assertEquals(nbNewUnsortedBatchs, nbUnsortedAdded);
+ Assert.assertEquals(0, errors.size());
+
+ // no batch imported
+ BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), false);
+
+ int totalSortedBatchs = 0;
+ int totalUnsortedBatchs = 0;
+ for (SpeciesBatch speciesBatch : rootSpeciesBatchAfter.getChildren()) {
+
+ boolean sorted = vracPredicate.apply(speciesBatch);
+
+ if (sorted) {
+ totalSortedBatchs++;
+ } else {
+ totalUnsortedBatchs++;
+ }
+ }
+
+ Assert.assertEquals(oldSortedBatchs + nbNewSortedBatchs, totalSortedBatchs);
+ Assert.assertEquals(oldUnsortedBatchs + nbNewUnsortedBatchs, totalUnsortedBatchs);
+ }
}
Added: trunk/tutti-service/src/test/resources/psion/evo-5077.IWA
===================================================================
--- trunk/tutti-service/src/test/resources/psion/evo-5077.IWA (rev 0)
+++ trunk/tutti-service/src/test/resources/psion/evo-5077.IWA 2014-05-15 16:39:57 UTC (rev 1785)
@@ -0,0 +1,31 @@
+cc
+1
+07-01-2013
+07:19:11
+
+ESPE : MERLMER
+POID : 50
+TAIL : 50
+CATE : I
+LONG : 12.5
+LONG : 15
+ESPE : SPICMAE
+POID : 0
+TAIL : 20
+CATE : N
+LONG : 12
+ESPE : TRIPLAS
+POID : 40
+TAIL : 20
+CATE : N
+LONG : 15
+ESPE : PAGEERY
+POID : 100
+TAIL : 50
+CATE : M
+LONG : 16.5
+ESPE : PAGEERY
+POID : 150
+TAIL : 80
+CATE : F
+LONG : 16.5
1
0
The Tutti team is pleased to announce the tutti-3.4.3 release!
Outil de saisie de données d'opérations et de captures au
cours des campagnes halieutiques.
Documentation of the project can be found here:
https://doc.codelutin.com/projects/tutti
Changes
-------
Changes in this version include:
New features:
o [EXPORT GENERIQUE] correction noms colonnes dans table species Issue: 5075. Thanks to Vincent BADTS. Resolved by tchemit.
o [IMPORT PSION] 3ème règle à compléter Issue: 5077. Thanks to Vincent BADTS. Resolved by tchemit.
Fixed Bugs:
o [REFERENTIEL] Taxon référent absent de la liste des taxons Issue: 5078. Thanks to Christian BONNET. Resolved by cbonnet.
o [IMPORT PUPITRI] erreur facteur 10000 dans élévation du MELANGE Issue: 5079. Thanks to Vincent BADTS. Resolved by tchemit.
Downloads
---------
For a manual installation, you can download files here:
http://forge.codelutin.com/projects/tutti/files
* tutti-ichtyometer-3.4.3-tools.zip - http://forge.codelutin.com/attachments/download/1841
Maven artifacts
---------------
Artifacts are deployed in nuiton maven repository
http://maven.nuiton.org/other-releases/
Have fun!
-Tutti team
1
0
r1784 - in trunk/tutti-service/src: main/java/fr/ifremer/tutti/service/pupitri test/java/fr/ifremer/tutti/service/pupitri test/resources/pupitri
by tchemit@users.forge.codelutin.com 15 May '14
by tchemit@users.forge.codelutin.com 15 May '14
15 May '14
Author: tchemit
Date: 2014-05-15 18:25:26 +0200 (Thu, 15 May 2014)
New Revision: 1784
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1784
Log:
refs #5079 (report from version 3.4.3)
Added:
trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceAno5079Test.java
trunk/tutti-service/src/test/resources/pupitri/ano-5079.car
trunk/tutti-service/src/test/resources/pupitri/ano-5079.tnk
trunk/tutti-service/src/test/resources/pupitri/ano-5079.tuttiProtocol
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java 2014-05-15 16:24:29 UTC (rev 1783)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/pupitri/PupitriImportResult.java 2014-05-15 16:25:26 UTC (rev 1784)
@@ -252,7 +252,7 @@
float melagRatio = 1f;
if (useMelag) {
- melagRatio = melagSortedWeight.floatValue() * melagTotalWeight.floatValue();
+ melagRatio = melagSortedWeight.floatValue() / melagTotalWeight.floatValue();
}
Iterator<PupitriCatch> iterator = catches.iterator();
Added: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceAno5079Test.java
===================================================================
--- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceAno5079Test.java (rev 0)
+++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceAno5079Test.java 2014-05-15 16:25:26 UTC (rev 1784)
@@ -0,0 +1,162 @@
+package fr.ifremer.tutti.service.pupitri;
+
+/*
+ * #%L
+ * Tutti :: Service
+ * $Id$
+ * $HeadURL: https://svn.codelutin.com/tutti/branches/3.3.6/tutti-service/src/test/java/… $
+ * %%
+ * Copyright (C) 2012 - 2013 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import fr.ifremer.tutti.TuttiConfigurationOption;
+import fr.ifremer.tutti.persistence.entities.data.BatchContainer;
+import fr.ifremer.tutti.persistence.entities.data.CatchBatch;
+import fr.ifremer.tutti.persistence.entities.data.FishingOperation;
+import fr.ifremer.tutti.persistence.entities.data.SpeciesBatch;
+import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
+import fr.ifremer.tutti.persistence.entities.referential.SpeciesBean;
+import fr.ifremer.tutti.service.DecoratorService;
+import fr.ifremer.tutti.service.PersistenceService;
+import fr.ifremer.tutti.service.ServiceDbResource;
+import fr.ifremer.tutti.service.TuttiServiceContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.nuiton.decorator.Decorator;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 3.0-rc-2
+ */
+public class PupitriImportServiceAno5079Test {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(PupitriImportServiceAno5079Test.class);
+
+ @ClassRule
+ public static final ServiceDbResource dbResource =
+ ServiceDbResource.writeDb("dbExport");
+
+ public static final String PROGRAM_ID = "CAM-TEST_ELEVATION";
+
+ public static final String CRUISE_ID = "100003";
+
+ public static final String OPERATION_1_ID = "100112";
+
+ public static final String OPERATION_2_ID = "100113";
+
+ public static final String OPERATION_3_ID = "100115";
+
+ protected PupitriImportExportService service;
+
+ protected PersistenceService persistenceService;
+
+ protected DecoratorService decoratorService;
+
+ protected ServiceDbResource.DataContext dataContext;
+
+ @Before
+ public void setUp() throws Exception {
+
+ TuttiServiceContext serviceContext = dbResource.getServiceContext();
+
+ persistenceService = serviceContext.getService(PersistenceService.class);
+
+ decoratorService = serviceContext.getService(DecoratorService.class);
+
+ dbResource.openDataContext();
+
+ service = serviceContext.getService(PupitriImportExportService.class);
+
+ dataContext = dbResource.loadContext(PROGRAM_ID, CRUISE_ID, 3,
+ OPERATION_2_ID,
+ OPERATION_1_ID,
+ OPERATION_3_ID);
+ }
+
+ @Test
+ public void importPupitri() throws IOException {
+
+ // Import MELA-NGE species
+ SpeciesBean melagSpecies = new SpeciesBean();
+ melagSpecies.setName("MELA-NGE");
+ List<Species> specieses = persistenceService.importTemporarySpecies(Lists.<Species>newArrayList(melagSpecies));
+ specieses.get(0).setRefTaxCode(melagSpecies.getName());
+
+ File trunk = dbResource.copyClassPathResource("pupitri/ano-5079.tnk", "pupitri.tnk");
+ File carroussel = dbResource.copyClassPathResource("pupitri/ano-5079.car", "pupitri.car");
+ File protocol = dbResource.copyClassPathResource("pupitri/ano-5079.tuttiProtocol", "ano-5079.tuttiProtocol");
+ dbResource.getConfig().getApplicationConfig().setOption(TuttiConfigurationOption.DB_PROTOCOL_DIRECTORY.getKey(), protocol.getParentFile().getAbsolutePath());
+ TuttiProtocol protocol1 = persistenceService.getProtocol("ano-5079");
+ persistenceService.setProtocol(protocol1);
+
+ FishingOperation operation = dataContext.operations.get(1);
+ CatchBatch catchBatch = persistenceService.getCatchBatchFromFishingOperation(operation.getId());
+ catchBatch.setFishingOperation(operation);
+
+ BatchContainer<SpeciesBatch> rootSpeciesBatch = persistenceService.getRootSpeciesBatch(operation.getId(), false);
+ Assert.assertEquals(3, rootSpeciesBatch.sizeChildren());
+ int nbNotAdded = service.importPupitri(trunk, carroussel, operation, catchBatch).getNbCarrousselNotImported();
+ Assert.assertEquals(0, nbNotAdded);
+ BatchContainer<SpeciesBatch> rootSpeciesBatchAfter = persistenceService.getRootSpeciesBatch(operation.getId(), false);
+ Assert.assertEquals(5, rootSpeciesBatchAfter.sizeChildren());
+
+ Set<Integer> unexpectedSpecies = Sets.newHashSet(
+ );
+ Set<Integer> expectedSpecies = Sets.newHashSet(
+ 15948, // ALLO-TEZ
+ 30902, // TRIG-LUC
+ 17374, // EUTR-GUR
+ 16816, // ENGR-ENC
+ 17116 // TRAC-TRU
+ );
+
+ Decorator<Species> speciesDecorator = decoratorService.getDecoratorByType(Species.class);
+
+ for (SpeciesBatch speciesBatch : rootSpeciesBatchAfter.getChildren()) {
+
+ Species species = speciesBatch.getSpecies();
+ Integer speciesId = species.getIdAsInt();
+ boolean remove = expectedSpecies.remove(speciesId);
+ if (log.isInfoEnabled()) {
+ log.info("Species : " + speciesId + " : " + speciesDecorator.toString(species));
+ }
+ if (!remove) {
+ unexpectedSpecies.add(speciesId);
+ if (log.isWarnEnabled()) {
+ log.warn("Unexpected Species " + speciesId);
+ }
+ }
+ }
+
+ Assert.assertTrue("Expected species not found: " + expectedSpecies, expectedSpecies.isEmpty());
+ Assert.assertTrue("Unexpected species found: " + unexpectedSpecies, unexpectedSpecies.isEmpty());
+ }
+}
Property changes on: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/pupitri/PupitriImportServiceAno5079Test.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/tutti-service/src/test/resources/pupitri/ano-5079.car
===================================================================
--- trunk/tutti-service/src/test/resources/pupitri/ano-5079.car (rev 0)
+++ trunk/tutti-service/src/test/resources/pupitri/ano-5079.car 2014-05-15 16:25:26 UTC (rev 1784)
@@ -0,0 +1,14 @@
+$TSMES,27/11/13,07:58:47.624,BLCAR, 0,A,1,002,ALLO-TEZ,T,VAT,2.0,
+$TSMES,27/11/13,08:09:31.330,BLCAR, 0,A,1,002,ALLO-TEZ,T,VAT,2.0,
+$TSMES,27/11/13,08:10:04.519,BLCAR, 0,A,1,002,ALLO-TEZ,T,VAT,6.0,
+$TSMES,27/11/13,08:10:26.922,BLCAR, 0,A,1,002,MELA-NGE,0,VAT,30.0,
+$TSMES,27/11/13,08:10:52.724,BLCAR, 0,A,1,001,MELA-NGE,0,VAT,10.0,
+$TSMES,27/11/13,08:12:08.170,BLCAR, 0,A,1,001,MELA-NGE,0,VAT,60.0,
+$TSMES,27/11/13,08:13:05.607,BLCAR, 0,A,1,001,TRIG-LUC,G,VAT,2.5,
+$TSMES,27/11/13,08:13:25.383,BLCAR, 0,A,1,001,TRIG-LUC,P,VAT,1.2,
+$TSMES,27/11/13,08:13:57.072,BLCAR, 0,A,1,001,ENGR-ENC,0,VAT,6.5,
+$TSMES,27/11/13,08:13:57.072,BLCAR, 0,A,1,001,ENGR-ENC,0,VAT,1.3,
+$TSMES,27/11/13,08:10:26.922,BLCAR, 0,A,1,002,TRAC-TRU,H,VAT,200.0,
+$TSMES,27/11/13,07:58:47.624,BLCAR, 0,A,1,002,EUTR-GUR,T,VAT,14.0,
+$TSMES,27/11/13,08:09:31.330,BLCAR, 0,A,1,002,EUTR-GUR,T,VAT,4.0,
+$TSMES,27/11/13,08:10:04.519,BLCAR, 0,A,1,002,EUTR-GUR,T,VAT,2.0,
Added: trunk/tutti-service/src/test/resources/pupitri/ano-5079.tnk
===================================================================
--- trunk/tutti-service/src/test/resources/pupitri/ano-5079.tnk (rev 0)
+++ trunk/tutti-service/src/test/resources/pupitri/ano-5079.tnk 2014-05-15 16:25:26 UTC (rev 1784)
@@ -0,0 +1,5 @@
+$TSMES,27/11/13,07:51:44.085,BLTNK, 0,A,1,VAT,0024.0,
+$TSMES,27/11/13,07:57:15.228,BLTNK, 0,A,1,VAT,0011.0,
+$TSMES,27/11/13,08:00:23.810,BLTNK, 0,A,1,VAT,0019.0,
+$TSMES,27/11/13,08:01:30.046,BLTNK, 0,A,1,VAT,0006.0,
+$TSMES,27/11/13,08:01:30.046,BLTNK, 0,A,1,VNT,800,
Added: trunk/tutti-service/src/test/resources/pupitri/ano-5079.tuttiProtocol
===================================================================
--- trunk/tutti-service/src/test/resources/pupitri/ano-5079.tuttiProtocol (rev 0)
+++ trunk/tutti-service/src/test/resources/pupitri/ano-5079.tuttiProtocol 2014-05-15 16:25:26 UTC (rev 1784)
@@ -0,0 +1,2691 @@
+id: 1dfc60e5-089f-4aea-bb87-27ed66e507a2
+name: protocole PELGAS 2014 version du 17042014
+benthos:
+- !SpeciesProtocol
+ id: 989a5b5a-9f10-43e4-a1c2-34a1337e1d49
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7
+ speciesSurveyCode: MBPORIF
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 84626f0e-3790-40c0-a98c-b862cbdbef8e
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6129
+ speciesSurveyCode: AXININF
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ff16ccda-ce86-49e1-b4a6-ddf419d3d7a3
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4656
+ speciesSurveyCode: SUBEFIC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 76cbc9d3-88ea-41f5-97b1-a17e1c491cf6
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 12027
+ speciesSurveyCode: DESMFRU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6213f6f6-4ac3-409a-98eb-7830acd6c268
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 12
+ speciesSurveyCode: CLHYDRZ
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 28ff5808-f01b-4157-b826-8b35879600ec
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4622
+ speciesSurveyCode: ABIEABI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 216ad594-12de-4e12-bf5e-2fb8db613f29
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4685
+ speciesSurveyCode: HYDAFAL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c3533411-cf9d-4b13-85e8-362fd5bcf1eb
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4682
+ speciesSurveyCode: NEMEANT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 65b0845d-8928-46fc-8839-c6d58ef0bfc7
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4667
+ speciesSurveyCode: NEMERAM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: caaf8a03-e3d8-49f4-8521-0fab642816d1
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4736
+ speciesSurveyCode: HLECHAL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 03025db8-5a34-4eda-982e-d5b715b5edce
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 131
+ speciesSurveyCode: CLANTHO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2488e3b8-9dbb-40fa-a925-93013374673e
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4386
+ speciesSurveyCode: ALCYGLO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5506c164-e8e5-40f9-8a42-56f8c578b62e
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3021
+ speciesSurveyCode: ALCYDIG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: e5443772-9d8e-497d-9605-4e2acb83d252
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6804
+ speciesSurveyCode: FUNIQUA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3f75c3c9-24da-4412-ac7d-cfbc7ffdb2b4
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3949
+ speciesSurveyCode: VERE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 8a874879-2b21-4be1-8925-e8007d363ec3
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 134
+ speciesSurveyCode: PENNPHO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 44a48069-67e8-4827-9178-0e3a9f0b96b8
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3006
+ speciesSurveyCode: PRTOGRI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5609d619-09f1-48fe-a5df-f51333804f3d
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 2224
+ speciesSurveyCode: ORACTIN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: cc4616a8-03b7-47a1-84e4-a8d6378e4423
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4734
+ speciesSurveyCode: URTIEQU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 55675280-da2e-4375-885c-2591c6495aa0
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4623
+ speciesSurveyCode: ACTU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 27ecbf57-3c4c-419d-a152-5fa4624f89a8
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4626
+ speciesSurveyCode: ADAMCAR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5f7dda22-ba51-45ca-9202-76b0a74cc34f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4378
+ speciesSurveyCode: CLLCPAR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ba26fe28-d876-45f9-a577-7ebe16ecb1c8
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4412
+ speciesSurveyCode: METRSEN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: cdd5cc10-9c0f-49ac-b841-1fdb457d3f57
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4731
+ speciesSurveyCode: ORSCLER
+ weightEnabled: true
+- !SpeciesProtocol
+ id: cdf1e0e9-006e-4817-8eb9-4403110a357c
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4385
+ speciesSurveyCode: CARYSMI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: dfe809c2-ebd8-466b-b882-74b98847a7b1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7230
+ speciesSurveyCode: MADROCU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 989aacda-23ab-4c58-a4f5-582643954cee
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4418
+ speciesSurveyCode: EPZAINC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a728eb38-8612-4dcb-8cb1-4319a5ee1f3d
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7327
+ speciesSurveyCode: EPZAPAG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: af9dee2e-4517-451a-b571-80c121bd39be
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 142
+ speciesSurveyCode: MBNEMRT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 65c9f56a-2781-4619-a02f-eb0bedb632a5
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 145
+ speciesSurveyCode: MBSIPUN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f8f43e6a-e46e-4622-930d-871bafaad772
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 147
+ speciesSurveyCode: SIPUNUD
+ weightEnabled: true
+- !SpeciesProtocol
+ id: e66d505a-5f0e-4cab-b231-df3e032accb2
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 150
+ speciesSurveyCode: MBANNEL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 37efa1ad-d3a1-4f9e-96f9-c93e072af47a
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 155
+ speciesSurveyCode: APHRACU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 59f5d30c-99a2-4228-9cb2-c130a7c76d50
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4298
+ speciesSurveyCode: LAET
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 82fde4c9-5f35-4cf4-84e0-799c7456b2a1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3240
+ speciesSurveyCode: DIOPNEA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6aacf530-df90-4a4d-81e4-a9c524480fcb
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3241
+ speciesSurveyCode: HYALTUB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: bbb3d4f7-858a-451f-bde3-57a30744e222
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7125
+ speciesSurveyCode: FMCHAEO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 9ce7e309-c466-4468-a96b-4c67785e5579
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 211
+ speciesSurveyCode: STERSCU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: d3966eb6-ea5a-4d98-be32-e66638e6e1d8
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 156
+ speciesSurveyCode: OWENFUS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: fd94c664-eb35-4db1-9bd1-f126a9d05cb5
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 203
+ speciesSurveyCode: LANICON
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6e0ebaa6-771e-47d9-a3ef-319916c719c1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3032
+ speciesSurveyCode: FMSABED
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 25d9896e-8cd5-4dc2-bd14-b105b1116058
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 209
+ speciesSurveyCode: FMSERPU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2becd9d4-c5b4-4990-914e-f3086c2fd249
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 224
+ speciesSurveyCode: MBBRYOZ
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 82aae651-83bd-48bd-8526-5a409a53fb20
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6222
+ speciesSurveyCode: FMPHIDO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f0106aab-f9b5-4827-aa50-9d531298d0a0
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6669
+ speciesSurveyCode: PENPFAS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 002430a1-3473-4099-b658-b52becf8ec21
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4762
+ speciesSurveyCode: CELL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3aee0e2d-ca54-445f-bf4e-0ed611f915e5
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3549
+ speciesSurveyCode: FLUTFOL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 81ca9c83-c83c-49ee-b444-71b6aa21e307
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3974
+ speciesSurveyCode: ALCD
+ weightEnabled: true
+- !SpeciesProtocol
+ id: b7be7cbf-2d5e-4903-ae9f-a4914ae296c6
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4766
+ speciesSurveyCode: PORECOM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f92ee59b-e445-411c-8914-8c7133d3a272
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3669
+ speciesSurveyCode: MBBRACH
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 7f6a5405-939d-4a01-a6bb-f329fb046ed6
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3671
+ speciesSurveyCode: GRYPVIT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 78dd6350-b860-4b81-9803-8b79fcf1d73d
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4180
+ speciesSurveyCode: TERB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a7d84a45-5ff6-4af3-8f4b-c01deb37b751
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3670
+ speciesSurveyCode: MEGETRU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f9891954-04df-4dd1-b637-cfd34dd7327c
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 226
+ speciesSurveyCode: CLGASTE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 91a5d539-234b-4f0d-a550-f1ba37f80c28
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 246
+ speciesSurveyCode: CALSGRA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: b1803b8e-0bad-459b-b718-960ade49c36b
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 247
+ speciesSurveyCode: CALSZIZ
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f32f258b-7134-41a6-9a0c-e8846baf1633
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 250
+ speciesSurveyCode: TURRCOM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 109d62f8-c2e2-4fbd-8d93-5c802516a5e7
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 261
+ speciesSurveyCode: APORPES
+ weightEnabled: true
+- !SpeciesProtocol
+ id: b2519e73-09fc-4165-a405-0eac08ed5d60
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 262
+ speciesSurveyCode: APORSER
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 11b23a77-9b05-4567-9dd1-5b942668721b
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 267
+ speciesSurveyCode: CALYCHI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f472b4a5-590b-4656-b71a-167ff9daa2ce
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 268
+ speciesSurveyCode: CREPFOR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 89db31b3-4ed1-4fdd-90c7-f39dc2d00f07
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6263
+ speciesSurveyCode: CAPUUNG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ca5a767e-7836-4d6a-8e0f-73c7959d7632
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7104
+ speciesSurveyCode: LAMEPER
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 476ab9db-85d9-48b6-98a6-fdf65aca41cd
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 276
+ speciesSurveyCode: EUSPCAT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 7ed4f6bc-df72-4e76-97d6-5d70923c49e0
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 277
+ speciesSurveyCode: EUSPFUS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: d7909669-ee5d-4cac-a38b-76a34d34aa86
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 281
+ speciesSurveyCode: GALERUG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3c703451-146f-48d7-8816-e0827087b756
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 282
+ speciesSurveyCode: PHALSAB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 265172ad-5b4d-47b0-b6d6-a6e863891275
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 287
+ speciesSurveyCode: RANEOLE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 8b492300-dcf1-4911-8189-1fce036ab824
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 293
+ speciesSurveyCode: OCENERI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 766e5a8f-db4c-492f-9152-042d9a11072e
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 300
+ speciesSurveyCode: BUCCUND
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 23a528fc-2178-4a2d-91d1-42a64c937929
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 301
+ speciesSurveyCode: BUCCHUM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: b6106a22-1ac0-4c23-b3b5-9daaad1f0106
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4253
+ speciesSurveyCode: COLUGRA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a7fcb417-e4ce-4dc9-a04c-649b01d63f29
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4405
+ speciesSurveyCode: NEPUANT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 19d00c18-6ed3-45ab-a2f7-8b8b2d0363f2
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 305
+ speciesSurveyCode: NASSRET
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0bb68b54-adff-4d2d-9368-2ce6a31a439f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 317
+ speciesSurveyCode: PHILAPE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 44704454-3200-413f-996a-ac7bb0f1fe6a
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 318
+ speciesSurveyCode: SCAHLIG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6d81b4d9-8c7d-42f0-8342-5fd1038e5da9
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7098
+ speciesSurveyCode: GATORUB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2f633cd6-a29f-4fc7-a02a-4bec657c08b2
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7486
+ speciesSurveyCode: BERTPLU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2e62b161-1853-4516-884a-6fc5d82404e5
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4209
+ speciesSurveyCode: PLBRMEM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0b51100e-4765-412b-973e-acccb0280463
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3200
+ speciesSurveyCode: APLY
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ce31c54d-efa3-46ae-8058-32b44e021f63
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 326
+ speciesSurveyCode: DORSPSD
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 283e24ad-a5ea-4d3e-aabc-887dc674580b
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 2418
+ speciesSurveyCode: JORUTOM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: da3c9e8c-a629-4984-bd87-172dde2428b1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 11779
+ speciesSurveyCode: ROSARUB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 651370d2-b7c3-4e49-ad9c-337c5fc35566
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7482
+ speciesSurveyCode: KALORAM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: dc15eeae-fc2c-44a4-985f-5937d8a7acdb
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6138
+ speciesSurveyCode: DENRFRO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 05510ddf-1f25-455e-a3bd-dd36edfe2576
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 331
+ speciesSurveyCode: ARMILOV
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0ad547d4-aa23-45cf-ae2c-fe0fc449458f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7481
+ speciesSurveyCode: AOLL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 05220d2c-99ca-48ff-959f-62e63589395f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 336
+ speciesSurveyCode: CLBIVAL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: bf1a1d05-da18-4f31-87c5-3108fcc8a660
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 342
+ speciesSurveyCode: GLYCGLY
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f79ae81f-93fb-4c6d-808f-32e4a830e18a
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 353
+ speciesSurveyCode: ATRIPEC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 43f6b3a4-cfc7-4f6d-ae93-b1c69c9fc003
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 355
+ speciesSurveyCode: PTERHIR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a9c382ab-fc99-4663-b1cd-6469e9b6958d
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 365
+ speciesSurveyCode: AEQUOPE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a52ea601-bf26-471a-b088-c59b7aacd979
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6139
+ speciesSurveyCode: PALLTIG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 793506b7-d7aa-4879-bfa0-2b1b5a4c6444
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3599
+ speciesSurveyCode: PSMUCLA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f9db6b7e-7cad-4772-abf2-a82dd78c4083
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4297
+ speciesSurveyCode: PSMUPES
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 37124c64-ed41-4ca5-b29f-e033bc64b445
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3608
+ speciesSurveyCode: FMANOMI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 06119baf-d533-4e43-a149-997612a897aa
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3614
+ speciesSurveyCode: NEOPCOC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 7aa0938a-d76c-44f9-8e0c-5804421dbfdb
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4632
+ speciesSurveyCode: ASTASUL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6fd2e097-7db8-4b77-a824-82e6c239d28f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 380
+ speciesSurveyCode: ACANECH
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3bd11b7c-de97-4d93-b2f8-b4f98f5a564f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 387
+ speciesSurveyCode: LAEVCRA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: cca34349-e043-4c0b-ac3a-4e3e5b5ec3f8
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 394
+ speciesSurveyCode: SPISELL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0eb3526d-dd5b-4c22-8d6d-af1bf7ee5be1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3643
+ speciesSurveyCode: ARCOBAL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 8f96c388-58e7-4e90-91df-a4a5ecc507c6
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3646
+ speciesSurveyCode: ARCTISL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 7f04acf2-f3a6-4b29-ad84-e2c0056f37f6
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 427
+ speciesSurveyCode: GLOUHUM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: bf87ad01-24d9-480e-93e2-88bc851f58c1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3015
+ speciesSurveyCode: TIMCOVA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6ba06670-9ff2-4f24-8a34-ae6b648f92d6
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 440
+ speciesSurveyCode: CALLCHI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 97500864-f17d-4244-888d-0d4b5c83357b
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 431
+ speciesSurveyCode: VENUCAS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 819f6b9f-cdfc-4df7-aa83-40bf79f5b71c
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6674
+ speciesSurveyCode: XYLODOR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 773a47ca-2162-4e23-bb20-ad0073ca151d
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 460
+ speciesSurveyCode: CLSCAPH
+ weightEnabled: true
+- !SpeciesProtocol
+ id: b3e846cc-8364-489e-b5b5-aef6cf35479f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4397
+ speciesSurveyCode: ANTA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 31370962-3adb-456a-807d-51a56b7036da
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 464
+ speciesSurveyCode: CLCEPHA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c2066e15-c1c9-4ace-9c1e-6249a90f25bd
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 471
+ speciesSurveyCode: ROSSMAC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2786c330-cbc9-483e-a5e3-b3bd0b3ebd40
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 470
+ speciesSurveyCode: FMSEPIO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: af0698ba-edcc-4a4c-9ca8-69f399b392e4
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 484
+ speciesSurveyCode: SEPENEG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 1995b1de-2d5b-4201-bd48-754baf8db1cd
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 486
+ speciesSurveyCode: SEPEOWE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: fe05b4c0-1311-4477-ab39-52738e4147d6
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 475
+ speciesSurveyCode: RONDMIN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c9bd7ff3-d485-4677-bb18-19da8af1f4d0
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 478
+ speciesSurveyCode: SEPOATL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a123cd2f-1813-4054-8072-0566a570f415
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7674
+ speciesSurveyCode: SEPOPFE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 753420c3-d6ec-4501-a93b-96b28a5b22ed
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 480
+ speciesSurveyCode: SEPOLIG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2a97bc20-56a9-4487-baed-797ecd271b5f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7182
+ speciesSurveyCode: SEPOTRI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a7ead586-4b80-4856-ad9c-3293337e40a2
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 528
+ speciesSurveyCode: CLPYCNO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: fe0d569d-c9f9-4b25-a4af-6ea3a509b054
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4665
+ speciesSurveyCode: PYCNLIT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5fc56d22-a074-4155-b25d-195358969437
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 712
+ speciesSurveyCode: SCCIRIP
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f2ab7464-e4d7-4c24-b751-d2fac1075765
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 715
+ speciesSurveyCode: SCALSCA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c728e0fe-66cf-4965-be30-2abf2e9eae27
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6839
+ speciesSurveyCode: ORMYSID
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 61e30ed9-e4cd-4374-9edf-f3eb0a1f0c09
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 829
+ speciesSurveyCode: ORSTOMA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 9d786885-29d6-429b-aa9a-85df9efd6738
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 833
+ speciesSurveyCode: RISSDES
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ad9f1a77-fa67-429e-b36f-a6a26af23dc6
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 846
+ speciesSurveyCode: SODENDR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 922735c9-8e76-49e7-a3b1-94a0562fdb1a
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 855
+ speciesSurveyCode: PAPELON
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 65d437f3-772e-462f-9710-5cea3e583482
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 848
+ speciesSurveyCode: ARISFOL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 312801d6-cf40-44e7-a41a-8d366f910b4b
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4613
+ speciesSurveyCode: ARIAEDW
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2b365e2c-ca3d-4894-bda5-d5406f677159
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 858
+ speciesSurveyCode: SOLOMEM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5ac3c44b-dc42-442e-8f58-91814882e5a0
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 862
+ speciesSurveyCode: SRGIROB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 29329eeb-bbe3-47b5-8460-47d31304cb83
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 864
+ speciesSurveyCode: IOCARID
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 90f45d7d-5156-4508-ae0e-8b96c81b44c7
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 867
+ speciesSurveyCode: PASIMUL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 59b10dad-8434-4711-bc6f-97b75df69c1d
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 868
+ speciesSurveyCode: PASISIV
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 9efb2b72-187f-4d3a-8027-b5dfe6a84c7e
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7329
+ speciesSurveyCode: PASITAR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ae59b858-bec6-4862-b332-ffa5a1697c57
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 872
+ speciesSurveyCode: ACAPPEL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6d3f8dc4-4b4a-4de5-be04-0eca30e3cf10
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6807
+ speciesSurveyCode: SYSTDEB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 81d0bb9b-bd15-4112-9e34-0910aef4f132
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 920
+ speciesSurveyCode: PALOSER
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a4ae0aa6-e470-4fe3-a174-4c61a12edb74
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 907
+ speciesSurveyCode: ALPHGLA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 18636e75-0c64-41cc-ab13-1ca842bcb1f6
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4675
+ speciesSurveyCode: SPITLIL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0f1871bd-ba7c-4fce-8a4d-73a91c2a2853
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 911
+ speciesSurveyCode: PROC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 1785f2cb-ea68-4e43-bcb4-a4ba53f1e050
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 886
+ speciesSurveyCode: CHLOCRA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f3751ae1-8b8e-4c5d-9633-69407970bd0b
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 878
+ speciesSurveyCode: PANSMON
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 99e6e63f-e08b-4cef-9d34-50fc3aea3734
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3195
+ speciesSurveyCode: DICHBON
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5b782537-c384-452a-9cd9-69886d15aadc
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7201
+ speciesSurveyCode: ATLAPRO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 4b3cc4f3-f284-4ae8-a65a-2b8fa40470dd
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 883
+ speciesSurveyCode: PLEKHET
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 4fcce5af-e57c-40d8-b3a4-3facf1082f79
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 884
+ speciesSurveyCode: PLEKMAR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3cc9b67c-f421-470f-a83e-203b81f399a9
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 931
+ speciesSurveyCode: CRAGCRA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: d914a4bf-c5f2-4b80-a656-a22364285dd3
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 932
+ speciesSurveyCode: CRAGALM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 29c5cda2-bb5d-438a-81d7-e94d3624a420
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 934
+ speciesSurveyCode: PONPSPI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 1b10220a-7cd1-4723-97ad-1ea4c1dd2ecc
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 941
+ speciesSurveyCode: PHICECH
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f23b70fd-a41e-436d-b90f-e1398c4c9c2f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 953
+ speciesSurveyCode: POLCTYP
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 14268ee3-b162-414a-a86e-2e88edea3b20
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 962
+ speciesSurveyCode: SCYLARC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 9ba1702b-cb9e-4883-ae6f-37790bc0f670
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 966
+ speciesSurveyCode: CALRMAC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6ea2a010-58bf-4481-aff6-cb0eed1a4169
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 971
+ speciesSurveyCode: JAXENOC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: dcec5bbe-b243-4941-a9a2-ba10e156ea58
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7274
+ speciesSurveyCode: UFGALAT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: e2d71b93-30f8-4cfe-9e97-5bddeb5d4889
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1009
+ speciesSurveyCode: GALA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 890a2ef7-9749-4bf5-96d6-46274c3f2115
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1015
+ speciesSurveyCode: MUNI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2aa88601-9705-48a1-a516-b7799fa04580
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1023
+ speciesSurveyCode: PISILON
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 8a0908d2-adc9-4a5d-95ed-201c4a346dbf
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 2167
+ speciesSurveyCode: UFPAGUR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3068cf19-c7a0-40b1-9f65-aa8afe3a1944
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 987
+ speciesSurveyCode: DIOGPUG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6315e6ca-9153-48da-b409-0a8b2a27805a
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7330
+ speciesSurveyCode: PRPGPIL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2289f435-b5f6-49a2-881f-ae9b0b82d055
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1005
+ speciesSurveyCode: ANAPHYN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 72016d20-c737-475f-8d27-190106d485ad
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1007
+ speciesSurveyCode: ANAPLAE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3dcd0791-467d-4ba5-8cef-2a368fa67243
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 998
+ speciesSurveyCode: PAGUALA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 325c361a-d6d2-48f7-aae2-d5d062fa256e
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 995
+ speciesSurveyCode: PAGUBER
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5e5f1f51-5e4f-483a-b74f-50124678f921
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7270
+ speciesSurveyCode: PAGUCAR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c5a37516-9ed2-450d-ad9a-7e158086ec81
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 997
+ speciesSurveyCode: PAGUCUA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c88a5426-3694-4d87-8b05-18271ae7c528
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 999
+ speciesSurveyCode: PAGUEXC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c65bc92d-7316-4b8c-a721-3fdbbc4ba7d7
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1000
+ speciesSurveyCode: PAGUFOR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 365da8b2-8251-4c1d-88ca-2bb57abcabc4
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 994
+ speciesSurveyCode: PAGUPRI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 349c3226-706d-4b32-8b6f-a51c60c9cd67
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1026
+ speciesSurveyCode: IOBRACY
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f07f647d-ab77-41c2-aa0b-98cb8ed626b2
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1119
+ speciesSurveyCode: EURYASP
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0845bced-01b2-40e2-8bc4-6fa6ed35d2a9
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1122
+ speciesSurveyCode: ERGACLO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: e341cb34-972f-4998-91c5-25087c70506c
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1128
+ speciesSurveyCode: INACDOR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 69172196-29a0-42f9-8b24-c7ce85025839
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1126
+ speciesSurveyCode: INACLEP
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f009cc4f-6224-471c-beb8-84edbd67b50f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1131
+ speciesSurveyCode: MACR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c88d0817-c6d6-4fd0-aafa-1405bfd1895d
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1135
+ speciesSurveyCode: MACRTEN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5dde1e20-92df-4e3b-9949-67e6c409fbc2
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1038
+ speciesSurveyCode: EBALTUB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 32a51a35-6608-4e33-b815-eb4dff065495
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4435
+ speciesSurveyCode: EBALGRA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 433f9867-ed01-44cb-9048-26661b920c31
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1044
+ speciesSurveyCode: CORSCAS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 91ffcc32-963d-4547-9f28-ff5e3cfb73d3
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1050
+ speciesSurveyCode: ATELROT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 894dc837-0fbd-49ca-b58d-521454f8f5ec
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1051
+ speciesSurveyCode: ATELUND
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0340daac-fd37-4e78-9f6c-b7f07f732d28
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1047
+ speciesSurveyCode: THIASCU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c5c1a2fa-205e-47c3-876b-41b53bac15ba
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1062
+ speciesSurveyCode: PORTLAT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 55432868-bb9c-4a84-b506-7cbaebd02a77
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1071
+ speciesSurveyCode: LIOCARC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: cd60e98a-3aea-4120-98d4-8c6fdde2244a
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1068
+ speciesSurveyCode: LIOCPUS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 286d991c-7fcc-4b7e-95da-787297f5ce17
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1069
+ speciesSurveyCode: LIOCDEP
+ weightEnabled: true
+- !SpeciesProtocol
+ id: afaeee56-1ed5-47cd-8d64-8590cc58b8af
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1070
+ speciesSurveyCode: LIOCHOL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 9976ef63-a0be-4504-b626-a01aa39ca638
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1074
+ speciesSurveyCode: LIOCMAR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 001b4115-8e46-4b0d-abb2-244b8dc900ea
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1075
+ speciesSurveyCode: LIOCVER
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a5b0b117-f7a6-4fbc-8909-61411a0f964c
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1077
+ speciesSurveyCode: POLBHEN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ff0ad853-72dd-41e9-a4fe-2ead51ad0adf
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1066
+ speciesSurveyCode: MCPITUB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: addf7e72-b60e-4613-90cb-4435249cf2c5
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1076
+ speciesSurveyCode: NECOPUB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 092db89c-4f16-4fa5-947b-2864730361a1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4427
+ speciesSurveyCode: BATYLON
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5aa070cd-bbef-4c47-be94-0a6579dfa81f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1064
+ speciesSurveyCode: BATYMAR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c6cd15a4-3526-4cc3-8d9d-29c18d409b52
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7199
+ speciesSurveyCode: DSTOMAL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3dc20a96-c455-4b0c-afcb-d059b90f66fd
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1094
+ speciesSurveyCode: MONDCOU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 9c4ba4b7-1bfb-4206-8aaf-b12a2a5cb91f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 2208
+ speciesSurveyCode: XANTPIL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: acc6f10b-1d27-453b-9e6d-432aae2d4d6b
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1090
+ speciesSurveyCode: PILUHIR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f4aab96a-360d-4d39-a3e0-35e22a560aa3
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1103
+ speciesSurveyCode: GONERHO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 751c5b01-25c4-4456-8eab-a1379752087c
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1143
+ speciesSurveyCode: CLCRINO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c8cc259e-8301-4656-a95d-3b8e3c7821d1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4211
+ speciesSurveyCode: LPTMCEL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3d152d3b-cabc-4635-86a0-61673faab7d9
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7390
+ speciesSurveyCode: ANTDPET
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 29b51f29-8528-4ef8-af23-f50766fcea8c
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1144
+ speciesSurveyCode: CLASTER
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5d018bb3-5b81-436f-b968-827590e001d5
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3009
+ speciesSurveyCode: LUIDCIL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ba5d6c0a-deee-4d84-b880-b1bca74fbe5f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4414
+ speciesSurveyCode: LUIDSAR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 38c86fce-ff71-42eb-ad2b-9602ff311e81
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1150
+ speciesSurveyCode: ASTPIRR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 1b136e78-85a2-4da4-8080-6b15ca2c1503
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6809
+ speciesSurveyCode: PLUTBIF
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 7567a748-d278-48f3-b71d-a59488530103
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 12054
+ speciesSurveyCode: FMBENTO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0d6011da-1950-4c3b-8281-9f58339b923e
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 12046
+ speciesSurveyCode: ODONMED
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 308cab8f-25ae-4dd6-85ef-649df5cbc119
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1145
+ speciesSurveyCode: ANSEPLA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 4a747a0c-d565-4ea5-8855-97669f45d9a1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3026
+ speciesSurveyCode: PORAPUL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 63547eda-977b-4b5d-aa5c-2da7d442ab18
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7193
+ speciesSurveyCode: NYMFARE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 733f5c87-3941-4e69-b847-7b8c290531c3
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 12058
+ speciesSurveyCode: PDASGRA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6b0839e6-053d-460e-8f62-aeb15138c8b2
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3685
+ speciesSurveyCode: PELSPLA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 8f8d36a3-0f05-40f1-99ac-27a8b03b60ae
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 2404
+ speciesSurveyCode: CROSPAP
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a2b53a2f-0c5e-4443-80ca-cd4bd80eea67
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7287
+ speciesSurveyCode: PTASPUL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: b4b1f3fd-ad13-4f07-a7a5-3afea34a5b45
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3577
+ speciesSurveyCode: HENR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0a4164cd-cb17-4f3d-83c3-7b23938dbabb
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1148
+ speciesSurveyCode: ASTIRUB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a5c7d7dd-39b9-4512-bf1f-b0c6a4b77b18
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1146
+ speciesSurveyCode: MARHGLA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 1a3af0c8-803b-4ded-a13a-ed4728515bb1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4660
+ speciesSurveyCode: STIHROS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 14196dc9-98f2-461a-92cd-7fa2dee11407
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 12043
+ speciesSurveyCode: ZOROFUL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 23873b66-928c-476b-b625-85b5c4b022e5
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7197
+ speciesSurveyCode: HYMNCOR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2d444084-80fd-4946-b80c-1b54fdf4d380
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1151
+ speciesSurveyCode: CLOPHIU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: da3da460-140c-4834-a242-40b1d3827f28
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6242
+ speciesSurveyCode: ASTYLOV
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f0aba25c-64f4-48d9-8883-d915803acea5
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1158
+ speciesSurveyCode: OPHOFRA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 28dddf54-b4bb-466d-89d5-de0603f08e3b
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3550
+ speciesSurveyCode: OPHOLUE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 361b5b44-5599-4fde-98d6-9490eb23619f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4398
+ speciesSurveyCode: OPHANIG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 72e5c79b-935e-4e75-a1f6-d9a68b80fbfb
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7675
+ speciesSurveyCode: OFIABRE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 670a0f5f-2606-4f42-a3cd-2ed757b8f8a1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1161
+ speciesSurveyCode: ACROBRA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 652c6529-147a-4fe1-b7ae-283251c0b94f
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4743
+ speciesSurveyCode: OPOCAFF
+ weightEnabled: true
+- !SpeciesProtocol
+ id: e59ec5f1-2ba3-4f2a-83fe-ebd460e85bad
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1156
+ speciesSurveyCode: OPHUALB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: d481b194-19b4-4a8c-b77b-a301f5a2d9ac
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1155
+ speciesSurveyCode: OPHUOPH
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 88efc6b5-2deb-4a8d-b14a-6e7db368e5b8
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 10421
+ speciesSurveyCode: CLECHIN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ffc6fe75-5896-4e19-93ea-c4885be5aa88
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6812
+ speciesSurveyCode: CIDACID
+ weightEnabled: true
+- !SpeciesProtocol
+ id: bf77466a-c53d-4161-a90e-fd04a6ef75f0
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7334
+ speciesSurveyCode: ORECHTU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5534310f-112a-4d38-a253-549feb969ed4
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1173
+ speciesSurveyCode: SPHAGRA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 04d1089a-e48b-49b4-aef7-f2bd8ac2532e
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4235
+ speciesSurveyCode: GRACACU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 890e6293-9835-4b92-ac92-7f8b9c67e5ee
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1168
+ speciesSurveyCode: ECHNESC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: b60498c5-7eda-44c4-8a0d-c703a10168ad
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1169
+ speciesSurveyCode: ECHNMEL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ef53120a-a5d0-4191-b6d9-470946fe14b5
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 6130
+ speciesSurveyCode: ECHNELE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: b950c90a-a412-4ba2-8369-784fbae7b9f5
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1172
+ speciesSurveyCode: PSAMMIL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: b22076ea-1090-4154-aae0-69d29f008b13
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1164
+ speciesSurveyCode: ECHCCOR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 49a4b617-e460-4434-94f8-c4d19120d342
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7283
+ speciesSurveyCode: ECHCPEN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: de7d186a-e8c8-4b25-85fa-7c794bdadd6a
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 2408
+ speciesSurveyCode: SPATPUR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: e2c515f4-2b39-44d2-ab72-afce83801f02
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4388
+ speciesSurveyCode: BRISLYR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6c13f041-c01b-4a13-949c-261ae6b9d474
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1174
+ speciesSurveyCode: CLHOLOT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 28c996a0-9ccf-4c6d-b66a-b339847cf505
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 12032
+ speciesSurveyCode: LAEGVIO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3232fbb8-015c-47d2-8e6b-43a287755bdf
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 12057
+ speciesSurveyCode: MESAINT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: eed41e02-2224-40aa-944a-37dfdf8d0349
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 11323
+ speciesSurveyCode: HLTPFOR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3322c359-2444-45f6-b227-e93ef44dba9b
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 2203
+ speciesSurveyCode: LPTOELO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 382f5566-c326-486a-a54b-a1e038383215
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7673
+ speciesSurveyCode: PSOLPHA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5b8c9da4-d1d0-4607-bd5d-f9792727f2ed
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1177
+ speciesSurveyCode: PRSTREG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: d9c303a2-6879-492d-b012-b9773d015d35
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 7273
+ speciesSurveyCode: PRSTTRE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 07068af8-e579-4820-881d-ef6a892fe8d1
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3023
+ speciesSurveyCode: LEPSINH
+ weightEnabled: true
+- !SpeciesProtocol
+ id: efb55fb4-db56-40a3-ab65-c80aa9adb2ee
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 1182
+ speciesSurveyCode: CLASCID
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 128bd105-fe21-41d3-ae5f-e4ca874382fe
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3943
+ speciesSurveyCode: ASCD
+ weightEnabled: true
+gearUseFeaturePmfmId:
+- 131
+- 828
+- 884
+- 965
+- 1434
+individualObservationPmfmId:
+- 196
+- 174
+- 1435
+lengthClassesPmfmId:
+- 1417
+- 285
+- 294
+- 295
+- 299
+- 301
+- 302
+- 303
+- 306
+- 307
+- 322
+- 323
+- 622
+- 662
+- 283
+- 284
+- 319
+- 318
+- 1426
+- 1427
+- 661
+- 1394
+- 1425
+- 300
+- 304
+- 1439
+species:
+- !SpeciesProtocol
+ id: 87d435bb-32be-4ccf-b756-cb5a3a67e906
+ calcifySampleEnabled: true
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 307
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1362
+ speciesSurveyCode: ENGR-ENC
+- !SpeciesProtocol
+ id: d046212a-673f-4a36-b36c-222fd47d0d24
+ calcifySampleEnabled: true
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 307
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1351
+ speciesSurveyCode: SARD-PIL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 99f37e3b-f51f-4ad5-8bd1-22925f6fd0b6
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1772
+ speciesSurveyCode: SCOM-SCO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 122d995b-2b9d-4469-821a-720cb3c07cc4
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1773
+ speciesSurveyCode: SCOM-JAP
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 329534f6-a850-4e9d-bd7b-128a05a4a766
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1662
+ speciesSurveyCode: TRAC-TRU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: dccb201e-a6ea-4438-9406-750dc35da312
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 307
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1356
+ speciesSurveyCode: SPRA-SPR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 19be5010-86c0-4055-a431-c3f1143d8ceb
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1553
+ speciesSurveyCode: MICR-POU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: e2231027-ea28-4a84-b834-e34ffd297cdf
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1540
+ speciesSurveyCode: MERL-MCC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a3fb4524-74c3-40ab-aa64-5911876e0f26
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 300
+ mandatorySampleCategoryId:
+ - 198
+ - 196
+ speciesReferenceTaxonId: 1239
+ speciesSurveyCode: ALOP-VUL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 39be31ee-17a6-4c39-8a7e-9eb2fdda5b35
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1488
+ speciesSurveyCode: BELO-BEO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2ebce94a-40ba-438e-bb9e-5945d9de48e5
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1881
+ speciesSurveyCode: LIZA-RAM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 3fe0b89a-e7f3-4cd2-bed7-4e5191596806
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 2036
+ speciesSurveyCode: MOLA-MOL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ce58052d-4cd1-485b-a76d-21904705c416
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1644
+ speciesSurveyCode: DICE-LAB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0cdb7003-43f9-4ad2-ba5c-8be02108cde6
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 300
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1775
+ speciesSurveyCode: SARD-SAR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 38ef4f79-32d7-4808-b3a2-e05e6a2fb5e0
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1762
+ speciesSurveyCode: ECHI-VIP
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 9f1b8e7e-a710-43a0-861b-38a286533a28
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1759
+ speciesSurveyCode: TRAC-DRA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 902064ba-b288-484e-bae5-3cae156c794a
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1663
+ speciesSurveyCode: TRAC-MED
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 994dcbf3-1442-4d4c-92f9-5f21e4cb4423
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1882
+ speciesSurveyCode: LIZA-AUR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f44a9aee-0ac7-4ca0-be2b-49934f01edae
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1551
+ speciesSurveyCode: MERL-MNG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 11020826-39c5-4016-994c-e008b895f315
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1718
+ speciesSurveyCode: SPON-CAN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ca12640b-361a-4967-a07f-bfe5fa80b7ad
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 302
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 507
+ speciesSurveyCode: ILLE-COI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 7ef3cab0-1b34-484f-b3fc-4b4ad416fe80
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1645
+ speciesSurveyCode: DICE-PUN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 428e4d1b-3a14-4774-a4b5-260023a2abdd
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1920
+ speciesSurveyCode: EUTR-GUR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: d0470083-b90f-4579-8e33-cec82dad814f
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 307
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1414
+ speciesSurveyCode: MYCT-SPP
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5a99aa06-41ca-42a6-908d-3b80750896bc
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 302
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 491
+ speciesSurveyCode: ALLO-TEZ
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0c6a402c-08bc-4070-94d4-1341ba671e5d
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1698
+ speciesSurveyCode: BOOP-BOO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 551eee9a-e1c4-4e04-a516-0e69b9cf0b1f
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 302
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 489
+ speciesSurveyCode: LOLI-VUL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f60671ae-9457-41a6-be8c-e0db4831c1f6
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1619
+ speciesSurveyCode: ZEUS-FAB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 1ac63cc5-89ae-4951-892e-526011efd82c
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 2049
+ speciesSurveyCode: LOPH-PIS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5beec851-aa05-4dd9-a4e0-5839e990d2d2
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1913
+ speciesSurveyCode: ASPI-OBS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 4a716c20-fc22-4faf-bdc1-4a839d836a62
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ - 196
+ speciesReferenceTaxonId: 1242
+ speciesSurveyCode: SCYL-CAN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 6b785cd7-3bef-4953-9e29-f24603088a98
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1753
+ speciesSurveyCode: GYMN-SEM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 71e702f6-dcd3-439e-94fd-9bbe7f51944a
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 7693
+ speciesSurveyCode: GADI-ARG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 820db288-8db6-42b5-8bea-f67da4870b6c
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 302
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 508
+ speciesSurveyCode: TODA-EBL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 77fbbe05-bcb4-41da-9dfe-d7cfbdb95dd6
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1379
+ speciesSurveyCode: MAUR-MUE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f987c86b-0edd-4a0d-95f6-828d7fc51d52
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1811
+ speciesSurveyCode: CALL-LYR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: fba1a7c9-855e-4573-86c9-5788ec71588f
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 302
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 12582
+ speciesSurveyCode: LOLI-FOR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 8ab14ec8-d89b-472b-ad74-ca43d17c604c
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1558
+ speciesSurveyCode: TRIS-MIN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 59530a03-a37d-47d7-89ab-dd5f70326888
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 302
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 468
+ speciesSurveyCode: SEPI-ELE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 9dcb9d77-0867-4410-a419-2c2724cefc15
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 302
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 476
+ speciesSurveyCode: SEPI-OLZ
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 1de07e53-dedd-48e6-b5b3-bbf0a36f21b8
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 1439
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 130
+ speciesSurveyCode: AURE-AUR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0fa497ff-fb5b-42d7-ad37-f20bac25b22d
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 1439
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 123
+ speciesSurveyCode: CHRY-HYS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 130f8de2-6a9a-4959-9f6b-7111e27b0850
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 2786
+ speciesSurveyCode: EUPH-AUX
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 86bbe608-b731-4d35-be76-81786cea1628
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 1439
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 12757
+ speciesSurveyCode: GELA-CYM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: e765c9be-9c3e-4aaf-a63e-4e1e57b8e80c
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 1439
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 12756
+ speciesSurveyCode: GELA-MED
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 64cd732a-3463-4b20-9c47-1e253a8bf36a
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 1439
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 4238
+ speciesSurveyCode: GELA-RHY
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 4f56dbeb-6095-4402-9be5-809e5b5b1557
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 3688
+ speciesSurveyCode: GELA-SAL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 02ff0b3e-625a-44a8-a327-1cce45b531d7
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 128
+ speciesSurveyCode: CYAN-LAM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c900cd42-a1fb-4bed-adc6-37f5b357911d
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1782
+ speciesSurveyCode: GOBI-IDX
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 51a70b7c-6f79-43d5-bdb2-c9d3fa98efc9
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 302
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 487
+ speciesSurveyCode: LOLI-NIX
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c3219f9d-b5c7-4868-b5a1-71e8d4f28495
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 125
+ speciesSurveyCode: PELA-NOC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0dfa9ae8-6df6-49ad-bc8a-4c53504ea275
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 4142
+ speciesSurveyCode: POLY-HEN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c471c54b-2eb1-4cad-88da-e5060310c2ee
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 300
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 2120
+ speciesSurveyCode: KATZ-PEL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 318a1341-7b5f-41db-b9b7-0b196a28e13a
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1664
+ speciesSurveyCode: TRAC-PIC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: e2b520e3-409b-47c3-940c-c795283b2f9c
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1879
+ speciesSurveyCode: CHEL-LAB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 2019f512-7421-4af4-99ee-db71c4b9af88
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1749
+ speciesSurveyCode: AMMO-TOB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 128597d5-c6d4-4e4b-a21a-a12d6d1ba3d6
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1755
+ speciesSurveyCode: HYPE-LAN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: b290a577-655f-45ce-893e-5bf7ead1bb1d
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1624
+ speciesSurveyCode: CAPR-APE
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a4efef88-eb3a-40f9-a1dc-29fd75f147f2
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1912
+ speciesSurveyCode: ASPI-CUC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 788f2fa7-2c49-4f54-82ee-b38a1ec5372e
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1358
+ speciesSurveyCode: ALOS-ALO
+ weightEnabled: true
+- !SpeciesProtocol
+ id: a84fb6df-5a55-46ca-8295-fcb83a60f998
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1359
+ speciesSurveyCode: ALOS-FAL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 9adb5eeb-6d27-48ad-b058-5c24069943ff
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1395
+ speciesSurveyCode: ARGE-SIL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c208454d-8333-4ae0-92dc-411c53b162c8
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1394
+ speciesSurveyCode: ARGE-SPH
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 42edd21a-bf16-4fb0-9441-c8072f140816
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1971
+ speciesSurveyCode: ARNO-LAT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ca5bb685-90cc-417a-b360-6262435f7937
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 2004
+ speciesSurveyCode: BUGL-LUT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: e7a2f085-4005-4a86-af44-ce0aab89fb0e
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1812
+ speciesSurveyCode: CALL-MAC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 12d67c6a-7aff-462a-8a3f-4156659744df
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId:
+ - 196
+ speciesReferenceTaxonId: 1054
+ speciesSurveyCode: CANC-PAG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 44ab1cb5-9849-4997-81de-c7086dc25edb
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1866
+ speciesSurveyCode: CENTR-NIG
+ weightEnabled: true
+- !SpeciesProtocol
+ id: d6075e65-abc6-46d7-8e11-d0773cdfbf9c
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1654
+ speciesSurveyCode: CEPO-RUB
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 1a029bb9-5771-4c74-b8ff-2441e0ad2abc
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 307
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1349
+ speciesSurveyCode: CLUP-HAR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5ab2fe14-a0ba-433c-b2c4-94bb170c1e5e
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1941
+ speciesSurveyCode: CYCL-LUM
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 8faffc01-c606-4a8c-abdb-11e11407d886
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1322
+ speciesSurveyCode: DASY-PAS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5dab23e4-f24e-4e2f-8438-541bf082398f
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1960
+ speciesSurveyCode: LEPI-WHI
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 7d678d86-dbc2-499c-b036-8f209bc05165
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 2050
+ speciesSurveyCode: LOPH-BUD
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0ee0fded-54a8-4869-b65a-cd3b8aafb7d5
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1988
+ speciesSurveyCode: MICR-KIT
+ weightEnabled: true
+- !SpeciesProtocol
+ id: c8c5b934-cc4e-4a8b-b4a1-6010134a7895
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1566
+ speciesSurveyCode: MOLV_MOL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 5a39a057-d1da-4815-bb11-b0480c939768
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ - 196
+ speciesReferenceTaxonId: 1257
+ speciesSurveyCode: MUST-AST
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 69809f47-4c5b-41f6-818f-8a6019aac3a9
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId: []
+ speciesReferenceTaxonId: 514
+ speciesSurveyCode: OCTO-VUL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f668f507-8669-423b-b563-f81c1d9cddba
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1212
+ speciesSurveyCode: PETR-MAR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: f575b385-0a64-4549-9bfd-04d7a17d3ca3
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1555
+ speciesSurveyCode: POLL-POL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: b67ab04f-ea78-4ec6-bad0-a1b292509fa6
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1556
+ speciesSurveyCode: POLL-VIR
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 020ad00f-ef7f-4b4b-a737-7e8fec53ec57
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1804
+ speciesSurveyCode: POMA-MIN
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 4b050fd5-91e4-4627-9882-3f6dda4ad9ed
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ - 196
+ speciesReferenceTaxonId: 1251
+ speciesSurveyCode: PRIO-GLA
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 79a2a8df-8acd-4faf-a5e9-620c7e8e7afc
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1388
+ speciesSurveyCode: SALM-SAL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 77ea2ff6-e118-438a-ab69-502f951b08ae
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 7695
+ speciesSurveyCode: SCOM-SAU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 15ab3ee8-5029-4430-9670-ef52673104ee
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 302
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 467
+ speciesSurveyCode: SEPI-OFF
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 4582f45b-288d-4331-9d34-62ca2141c23e
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1996
+ speciesSurveyCode: SOLE-VUL
+ weightEnabled: true
+- !SpeciesProtocol
+ id: d176bd61-4ed3-492c-bfe3-6964294a4b56
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1500
+ speciesSurveyCode: SYNG-ACU
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 0c17f6d7-9a96-4e06-942e-5f5840dd1a59
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1921
+ speciesSurveyCode: TRIG-LUC
+ weightEnabled: true
+- !SpeciesProtocol
+ id: ed157bca-6ac3-4f35-8272-2b8d3f9d0779
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 1560
+ speciesSurveyCode: TRIS-LUS
+ weightEnabled: true
+- !SpeciesProtocol
+ id: 06b8aab8-6f8e-4e92-8f72-21be1838cd2f
+ countIfNoFrequencyEnabled: true
+ lengthStepPmfmId: 306
+ mandatorySampleCategoryId:
+ - 198
+ speciesReferenceTaxonId: 2006
+ speciesSurveyCode: DICO-CUN
+ weightEnabled: true
+- !SpeciesProtocol
+ calcifySampleEnabled: true
+ countIfNoFrequencyEnabled: true
+ mandatorySampleCategoryId:
+ - 198
+ - 196
+ speciesReferenceTaxonId: -1
+ speciesSurveyCode: MELA-NGE
+ weightEnabled: true
+vesselUseFeaturePmfmId:
+- 194
+- 230
+- 782
+- 843
+- 844
+- 846
+- 847
+- 848
+- 849
+- 850
+- 851
+- 857
+- 858
+- 859
+- 861
+- 862
+- 863
+- 881
+- 882
+- 883
+- 173
1
0