"
+ "
Pièce justificative: "
+ "
"
- + pieceJustificative.id()
+ + pj.id()
+ ""
+ ",   "
+ "
Référence: "
- + pieceJustificative.reference()
+ + pj.reference()
+ ",   "
+ "
Date d'insertion: "
- + DateFormatter.format(pieceJustificative.date())
+ + DateFormatter.format(pj.date())
+ "
";
var titleString =
@@ -102,24 +104,36 @@ private void addTitle() {
return title;
}
+ private boolean canBeExecuted() {
+ var possession = possessionRecoupee.possession();
+ if (IMPREVU.equals(possessionRecoupee.status())) {
+ return false;
+ }
+ return possession instanceof FluxArgent || possession instanceof TransfertArgent;
+ }
+
+ private Button executeButton() {
+ if (possessionRecoupee.status() == NON_EXECUTE) {
+ return new Button(
+ "Exécuter",
+ e -> new PossessionRecoupeeRealisationsDialog(state, possessionRecoupee, true));
+ }
+ return new Button(
+ "Exécutions",
+ e -> new PossessionRecoupeeRealisationsDialog(state, possessionRecoupee, false));
+ }
+
private void addActionsButton() {
var panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
panel.setOpaque(false);
- if (possessionRecoupee.status() == RecoupementStatus.NON_EXECUTE) {
- panel.add(
- new Button(
- "Exécuter",
- e ->
- new PossessionRecoupeeRealisationsDialog(
- state, possessionRecoupee, "add-form-view")));
- } else {
- panel.add(
- new Button(
- "Exécutions",
- e -> new PossessionRecoupeeRealisationsDialog(state, possessionRecoupee)));
+
+ if (canBeExecuted()) {
+ panel.add(executeButton());
}
+
panel.add(
- new Button("Voir Details", e -> new PossessionRecoupeeDetailDialog(possessionRecoupee)));
+ new Button(
+ "Voir Details", e -> new PossessionRecoupeeDetailDialog(possessionRecoupee, pj)));
add(panel, BorderLayout.EAST);
}
diff --git a/src/main/java/school/hei/patrimoine/visualisation/swing/ihm/google/component/recoupement/PossessionRecoupeeRealisationsDialog.java b/src/main/java/school/hei/patrimoine/visualisation/swing/ihm/google/component/recoupement/PossessionRecoupeeRealisationsDialog.java
index cfb6cd7dd..18d17ed19 100644
--- a/src/main/java/school/hei/patrimoine/visualisation/swing/ihm/google/component/recoupement/PossessionRecoupeeRealisationsDialog.java
+++ b/src/main/java/school/hei/patrimoine/visualisation/swing/ihm/google/component/recoupement/PossessionRecoupeeRealisationsDialog.java
@@ -1,43 +1,52 @@
package school.hei.patrimoine.visualisation.swing.ihm.google.component.recoupement;
import static java.util.stream.Collectors.joining;
+import static java.util.stream.Collectors.toSet;
import static school.hei.patrimoine.modele.recouppement.model.RecoupementStatus.IMPREVU;
import static school.hei.patrimoine.visualisation.swing.ihm.google.component.app.ViewFactory.make;
+import static school.hei.patrimoine.visualisation.swing.ihm.google.component.files.FileSideBar.getSelectedFile;
import static school.hei.patrimoine.visualisation.swing.ihm.google.modele.MessageDialog.*;
+import static school.hei.patrimoine.visualisation.swing.ihm.google.modele.files.PatriLangFileContentManager.clearAllTempContents;
+import static school.hei.patrimoine.visualisation.swing.ihm.google.modele.files.PatriLangStagingFileManager.stage;
import static school.hei.patrimoine.visualisation.swing.ihm.google.providers.FilesProvider.getDoneCasSetFile;
+import static school.hei.patrimoine.visualisation.swing.ihm.google.providers.FilesProvider.getPJ;
import java.awt.*;
-import java.io.File;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
+import org.jspecify.annotations.NonNull;
import school.hei.patrimoine.modele.possession.FluxArgent;
import school.hei.patrimoine.modele.possession.Possession;
+import school.hei.patrimoine.modele.possession.TransfertArgent;
+import school.hei.patrimoine.modele.possession.pj.PieceJustificative;
import school.hei.patrimoine.modele.recouppement.model.Info;
import school.hei.patrimoine.modele.recouppement.model.PossessionRecoupee;
-import school.hei.patrimoine.patrilang.files.PatriLangFile;
+import school.hei.patrimoine.patrilang.antlr.PatriLangParser.SectionOperationsContext;
+import school.hei.patrimoine.patrilang.antlr.PatriLangParser.SectionPiecesJustificativesContext;
import school.hei.patrimoine.patrilang.files.io.PatriLangFileQuerier;
+import school.hei.patrimoine.patrilang.files.io.PatriLangFileQuerier.QueryResult;
import school.hei.patrimoine.patrilang.files.io.PatriLangFileWriter;
import school.hei.patrimoine.patrilang.files.io.PatriLangFileWriter.FileWriterInput;
import school.hei.patrimoine.patrilang.generator.PatriLangGeneratorFactory;
+import school.hei.patrimoine.patrilang.generator.possession.CommentPatriLangGenerator;
+import school.hei.patrimoine.patrilang.generator.possession.PieceJustificativePatriLangGenerator;
import school.hei.patrimoine.visualisation.swing.ihm.google.component.Dialog;
import school.hei.patrimoine.visualisation.swing.ihm.google.component.app.MultiViews;
import school.hei.patrimoine.visualisation.swing.ihm.google.component.button.Button;
import school.hei.patrimoine.visualisation.swing.ihm.google.generator.PossessionGeneratorFactory;
+import school.hei.patrimoine.visualisation.swing.ihm.google.generator.possession.PieceJustificativeGenerator;
import school.hei.patrimoine.visualisation.swing.ihm.google.modele.AsyncTask;
import school.hei.patrimoine.visualisation.swing.ihm.google.modele.MessageDialog;
import school.hei.patrimoine.visualisation.swing.ihm.google.modele.State;
+import school.hei.patrimoine.visualisation.swing.ihm.google.modele.files.PatriLangFileContext;
import school.hei.patrimoine.visualisation.swing.ihm.google.modele.files.PatriLangFilesWatcher;
import school.hei.patrimoine.visualisation.swing.ihm.google.modele.formatter.ArgentFormatter;
import school.hei.patrimoine.visualisation.swing.ihm.google.modele.formatter.DateFormatter;
public class PossessionRecoupeeRealisationsDialog extends Dialog {
private final State state;
- private final Set