Skip to content

Commit 312d453

Browse files
committed
comment in dossier and skip peppol for invoice
1 parent 40972d1 commit 312d453

6 files changed

Lines changed: 27 additions & 9 deletions

File tree

artcoded/src/main/java/tech/artcoded/websitev2/pages/dossier/Dossier.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ public class Dossier implements Serializable {
5353
private boolean bookmarked = false;
5454
private Date bookmarkedDate;
5555

56+
// 20260405 comments
57+
@Builder.Default
58+
private String comment = "";
59+
5660
private String dossierUploadId;
5761

5862
// if it was imported from an old system

artcoded/src/main/java/tech/artcoded/websitev2/pages/dossier/DossierService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ public Optional<Dossier> toggleBookmarked(String id) {
7373
public Dossier newDossier(Dossier dossier) {
7474
if (this.getActiveDossier().isEmpty()) {
7575
Dossier build = Dossier.builder().name(dossier.getName()).tvaDue(dossier.getTvaDue())
76-
.advancePayments(dossier.getAdvancePayments()).description(dossier.getDescription()).build();
76+
.advancePayments(dossier.getAdvancePayments()).description(dossier.getDescription())
77+
.comment("").build();
7778
Dossier savedDossier = dossierRepository.save(build);
7879
eventService.sendEvent(
7980
DossierCreated.builder().dossierId(savedDossier.getId()).description(savedDossier.getDescription())
@@ -99,6 +100,7 @@ public Dossier updateActiveDossier(Dossier dossier) {
99100
Dossier toSave = getActiveDossier()
100101
.map(d -> d.toBuilder().name(dossier.getName()).description(dossier.getDescription())
101102
.tvaDue(dossier.getTvaDue())
103+
.comment(dossier.getComment())
102104
.advancePayments(ofNullable(dossier.getAdvancePayments()).orElseGet(List::of))
103105
.updatedDate(new Date()).build())
104106
.orElseThrow(() -> new RuntimeException("No active dossier found"));
@@ -132,7 +134,7 @@ public Dossier recallForModification(Dossier dossier) {
132134
}
133135

134136
public Dossier fromPreviousDossier() {
135-
var copy = Dossier.builder().id(null).creationDate(null).updatedDate(null);
137+
var copy = Dossier.builder().id(null).creationDate(null).updatedDate(null).comment("");
136138
return dossierRepository.findFirstByClosedIsTrueOrderByCreationDateDesc()
137139
.map(d -> copy.name(d.getName() + "(copy)").description(d.getDescription())
138140
.advancePayments(d.getAdvancePayments()).bookmarked(false).bookmarkedDate(null).build())

artcoded/src/main/java/tech/artcoded/websitev2/pages/dossier/ImportOldDossierService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ public void create(MultipartFile zip) {
181181
.projectName(client.projectName).build()))
182182
.dateCreation(invoiceRow.dateOfInvoice).taxRate(invoiceRow.taxRate)
183183
.maxDaysToPay(client.maxDaysToPay).uploadedManually(true)
184+
.skipPeppol(true)
184185
.billTo(BillTo.builder().address(client.address).vatNumber(client.vat).city(client.city)
185186
.emailAddress(client.email).clientName(client.name).build())
186187
.build();
@@ -207,6 +208,7 @@ public void create(MultipartFile zip) {
207208

208209
for (var dossierRow : dossierRows) {
209210
Dossier dossier = dossierService.save(Dossier.builder().description(dossierRow.description)
211+
.comment("dossier imported from csv")
210212
.name(dossierRow.name).tvaDue(dossierRow.totalVat).build());
211213

212214
var invoices = invoiceGroupedByDossier.get(dossierRow.name);

artcoded/src/main/java/tech/artcoded/websitev2/pages/invoice/InvoiceGeneration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ public class InvoiceGeneration implements Serializable {
9595

9696
private String timesheetId;
9797

98+
// 20260405 should we skip peppol
99+
private boolean skipPeppol;
100+
98101
@Deprecated
99102
@Transient
100103
public static String generateInvoiceNumber() {

artcoded/src/main/java/tech/artcoded/websitev2/pages/invoice/InvoiceService.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,7 @@ private InvoiceGeneration getTemplate(Supplier<Optional<InvoiceGeneration>> invo
200200
.locked(false).archived(false).peppolStatus(PeppolStatus.NOT_SENT).bookmarked(false)
201201
.bookmarkedDate(null).structuredReference(null).creditNoteId(null).timesheetId(null)
202202
.uploadedManually(false).dateCreation(new Date()).updatedDate(null).archivedDate(null).imported(false)
203+
.skipPeppol(false)
203204
.specialNote("").creditNoteInvoiceReference(null).invoiceUploadId(null).invoiceUBLId(null)
204205
.logicalDelete(false).importedDate(null).dateOfInvoice(new Date()).build();
205206
return invoice;
@@ -338,6 +339,7 @@ public void manualUpload(MultipartFile file, String id, Date date) {
338339
.filter(Predicate.not(InvoiceGeneration::isArchived))
339340
.filter(Predicate.not(InvoiceGeneration::isLogicalDelete))
340341
.map(invoiceGeneration -> invoiceGeneration.toBuilder().updatedDate(date)
342+
.skipPeppol(true)
341343
.invoiceUploadId(this.fileUploadService.upload(file, invoiceGeneration.getId(), false)).build())
342344
.map(repository::save).orElseThrow(() -> new RuntimeException("Invoice not found!!"));
343345
}
@@ -421,18 +423,23 @@ public InvoiceGeneration generateInvoice(InvoiceGeneration invoiceGeneration) {
421423
}
422424
String pdfId = null;
423425
String ublId = null;
426+
var peppolStatus = PeppolStatus.OLD;
424427
if (!partialInvoice.isUploadedManually()) {
425428
pdfId = this.fileUploadService.upload(
426429
toMultipart(FilenameUtils.normalize(partialInvoice.getNewInvoiceNumber()),
427430
this.invoiceToPdf(partialInvoice), "pdf", MediaType.APPLICATION_PDF_VALUE),
428431
id, false);
429-
ublId = this.fileUploadService.upload(
430-
toMultipart(FilenameUtils.normalize(partialInvoice.getNewInvoiceNumber()),
431-
this.invoiceToUBL(partialInvoice, pdfId), "xml", MediaType.TEXT_XML_VALUE),
432-
id, false);
432+
if (!partialInvoice.isSkipPeppol()) {
433+
ublId = this.fileUploadService.upload(
434+
toMultipart(FilenameUtils.normalize(partialInvoice.getNewInvoiceNumber()),
435+
this.invoiceToUBL(partialInvoice, pdfId), "xml", MediaType.TEXT_XML_VALUE),
436+
id, false);
437+
peppolStatus = PeppolStatus.NOT_SENT;
438+
}
439+
433440
}
434441
InvoiceGeneration invoiceToSave = partialInvoice.toBuilder().invoiceUploadId(pdfId)
435-
.peppolStatus(PeppolStatus.NOT_SENT).invoiceUBLId(ublId).build();
442+
.peppolStatus(peppolStatus).invoiceUBLId(ublId).build();
436443
InvoiceGeneration saved = repository.save(invoiceToSave);
437444
this.notificationService.sendEvent(
438445
"New Invoice Ready (%s)".formatted(invoiceToSave.getNewInvoiceNumber()), NOTIFICATION_TYPE,

artcoded/src/main/java/tech/artcoded/websitev2/peppol/PeppolAutoSendAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ public ActionResult run(List<ActionParameter> parameters) {
6666
if (!invoices.isEmpty()) {
6767
for (var invoice : invoices) {
6868
try {
69-
if (invoice.isUploadedManually()) {
70-
messages.add("skip invoice added manually");
69+
if (invoice.isUploadedManually() || invoice.isSkipPeppol()) {
70+
messages.add("skip invoice added manually or skip peppol set to true");
7171
invoice.setPeppolStatus(PeppolStatus.OLD);
7272
invoice.setUpdatedDate(new Date());
7373
invoiceRepository.save(invoice);

0 commit comments

Comments
 (0)