From 57b383d579ed61d1ceb0172d386f4b8b50b922bb Mon Sep 17 00:00:00 2001 From: Andriy Oblivantsev Date: Tue, 15 Sep 2026 11:57:31 +0000 Subject: [PATCH] =?UTF-8?q?fix(pdfamount):=20=D0=BD=D0=B5=20=D1=81=D1=87?= =?UTF-8?q?=D0=B8=D1=82=D0=B0=D1=82=D1=8C=20=D1=81=D1=82=D0=B0=D0=B2=D0=BA?= =?UTF-8?q?=D1=83=20=D0=9D=D0=94=D0=A1=20=D1=81=D1=83=D0=BC=D0=BC=D0=BE?= =?UTF-8?q?=D0=B9;=20=D0=B8=D1=82=D0=BE=D0=B3=20DKV=20(#29)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Строки с %/MwSt/USt/Prozent/Steuer больше не дают сумму (было: Storchen 19,00 % -> amount 19.00 и ложная отбраковка кандидатов в матчере). - Приоритет меток: zu zahlender betrag > rechnungsbetrag > rechnungsendbetrag > gesamtbetrag > gesamtsumme (inkl. Steuern); low-priority не перебивает. - DKV: секция Gesamtsummenaufstellung (значение после «»») важнее повторяющихся TOTAL-строк по машинам. - Тесты: 19,00 % не сумма; fallback на usable-метку; DKV-итог. --- cmd/pdfamount/main.go | 180 ++++++++++++++++++++++++++++++------- cmd/pdfamount/main_test.go | 45 ++++++++++ 2 files changed, 191 insertions(+), 34 deletions(-) diff --git a/cmd/pdfamount/main.go b/cmd/pdfamount/main.go index ca22636..6690caa 100644 --- a/cmd/pdfamount/main.go +++ b/cmd/pdfamount/main.go @@ -18,36 +18,52 @@ import ( onlyoffice "github.com/eslider/go-onlyoffice" ) -// amountLabels are the payable-amount labels in priority order: the first -// label present in a document wins. Within one label the last amount is taken, -// because totals usually come last. -// -// "gesamtsumme" is not in the original list but is the real label on Diashop -// invoices: "Gesamtsumme (inkl. Steuern)". -var amountLabels = []string{ - "zu zahlender betrag", - "rechnungsbetrag", - "rechnungsendbetrag", - "endbetrag", - "zahlbetrag", - "bruttobetrag", - "gesamtbetrag", - "gesamtsumme", - "betrag", - "total", - "summe", +// amountPat is the amount capture shared by every amount regex. +const amountPat = `([0-9]+(?:[.,][0-9]+)*)` + +// amountRE builds "