Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Die Alpen - Autom. rollierendes Inkasso - Batchjob für Rechnungserstellung #1561

Open
sync-by-unito bot opened this issue Jan 23, 2025 · 2 comments
Open
Assignees

Comments

@sync-by-unito
Copy link

sync-by-unito bot commented Jan 23, 2025

Ausgangslage

Gemäss [~accountid:62625bbeefc8a5006a570092] und in Rücksprache mit Personen aus dem Ressort Finanzen und Dienste soll der Inkassolauf für das SAC-Magazin per 28.02 bereitgestellt werden.

  • im Fokus: Einzelabonnenten
  • Generelles
    • Bei jeder Rolle ist bereits aktuell ein gültig bis gesetzt, dies definiert, per wann das Abo ausläuft.
    • Die Alpen hat ein rollierendes Inkasso. Ab Bestellung/Verlängerung ist dies jeweils ein Jahr gültig.

Anforderung

  • Das rollierende Jahresinkasso ‘die Alpen’ muss grundsätzlich komplett automatisiert ablaufen.
  • Täglicher/nächtlicher Batchjob (Zeitpunkt 02:18 Uhr, Invoices::Abacus::CreateYearlyAboAlpenInvoicesJob)
    • Aktuell ca. 1500 Abonnenten. SalesOrder in Batches an Abacus senden. Mit der erwarteten Menge ist kein Multithreading nötig. Ansonsten analog zum CreateYearlyInvoicesJob , inkl Logging, Wegräumen von Drafts, ohne Progress, ohne Parallel.
  • Bei jedem Lauf wird für alle Abonnenten, welche ein Gültig bis im Zeitraum heute + 62 Tage haben, eine Rechnung erstellt werden. Hitobito soll analog MV dazu Aufträge (SalesOrder) an Abacus senden.
    • Die Rollen mit dem Flag ‘terminiert’ werden nicht berücksichtigt.
    • Der Lauf beachtet nur Abonnenten, bei welchen nicht bereits eine Rechnung des gleichen Typs (Jahresinkasso die Alpen / ExternalInvoice::AboMagazin) und des gleichen Rechnungsjahrs vorhanden ist. Als Rechnungsjahr wird das Jahr von (Rolle Abonnent Gültig Bis + 1 Tag) verwendet.
  • Beim Lauf wird die Gültig bis Rolle der Abonnenten nicht verlängert/ mutiert
  • Bei der externen Rechnung wird das Jahr auf das Jahr von (Rolle Abonnent Gültig Bis +1 Tag) gesetzt. Der Link der Rechnung zeigt auf die Gruppe der Abo Rolle.
  • Vor dem Release werden alle Personen mit einer Rolle Abo Magazin Neuanmeldung nach Abacus übermittelt. Dies geschieht einmalig via Konsole, basierend auf dem TransmitAllMembersJob.

Details / benötigte Daten Jahresinkasso

Felder Hitobito Feld Abacus Wert Bemerkung
Stichtag orderdate / Auftragsdatum Aktuelles Datum an welchem der Batch ausgeführt wird
Buchungsdatum InvoiceValueDate (FiBu-Datum) Gültig Bis Datum +1 Tag des Abos. MwSt relevant für Abacus.
Versand- und Rechnungsdatum invoiceDate und deliveryDate (Beide abzufüllen) Stichtag {color:#ff5630}﹍2 Tage{color}(﹍2 Tage wegen Postversand hinzufügen. Sonst haben die Abonnenten nicht 62 Tage (Jahresinkasso/Verlängerung) lang Zeit) [~accountid:62625bbeefc8a5006a570092] i.o. so? => ok Für Aufdruck auf Rechnung und allfällige Mahnläufe relevant
Language Sprache der Person
DocumentCodeInvoice RA = Die Alpen Inkasso Rechnung
ProcessFlowNumber 4 Die Alpen Inkasso
weitere Felder analog MV (Invoice ID, CustomerID etc.)

Auftrag / Positionen fachlich / SalesOrderPositions

|Übersicht über die Positionen|Wert|

|Betrag|Betrag Abonnent: 60 CHF
Betrag für Abonnent unter SAC/CAS → SAC/CAS Attribute hinterlegbar, siehe HIT-956|
|Porto Weltweit|Falls != Schweiz
Betrag Porto die Alpen Abonnent unter SAC/CAS → SAC/CAS Attribute hinterlegbar, siehe HIT-956. Aktuell 16 CHF|

Attribut Feld Abacus API Die Alpen Kosten Porto
Name Product.Description Texte für die Beschreibung Alpen:
de: Abonnement “Die Alpen”
fr: Abonnement “Les Alpes”
it: Abbonamento "Le Alpi"
+ Gültigkeit [Gültig bis +1] - [Zukünftiges Gültig Bis nach Zahlungseingang]
Beispiel: Abo Ist Gültig bis 21.01.2025. Sprache der Person DE. Somit resultiert der Text: Abonnement “Die Alpen” 22.1.2025 - 21.01.2026
Texte für die Beschreibung der Position fürs Porto
Text:
de: Porto “Die Alpen”
fr: Porto “Les Alpes”
it: Porto "Le Alpi"
ProductID Product.ProductNumber APG
Anmerkung: Konfigurierbar analog Betrag. Heft & Porto, siehe HIT956|PAL
Anmerkung: Konfigurierbar analog Betrag. Heft & Porto, siehe HIT
956
Positionnumber int
PositionGroup UserField1 analog Name
Amount Pricing.PriceAfterFinding Totalbetrag CHF
Quantity Quantity.Ordered, Quantity.Charged, Quantity.Delivered 1
Kostenstelle IncomeCostCentre1ID leer
Kostenträger IncomeCostCentre2ID leer
Tax leer
Type Product

┆Issue is synchronized with this Jira Key Result by Unito
┆Issue Number: HIT-923

Copy link
Author

sync-by-unito bot commented Jan 23, 2025

➤ Pascal Zumkehr commented:

Andreas Gurtner Was sollen wir jetzt bezüglich “60 CHF aufgeteilt anteilig der Tage pro Kalenderjahr” umsetzen? Gibt das pro Jahr eine eigene Position? Falls ja, sieht man der Position an, zu welchem Jahr sie gehört? Oder macht das erst Abacus und betrifft hitobito gar nicht?

Copy link
Author

sync-by-unito bot commented Jan 24, 2025

➤ Andreas Gurtner commented:

Hoi Pascal Zumkehr , merci für den Input, der Satz ist noch ein Überbleibsel, bzw ich habe wohl beim Anpassen, nicht alles erwischt => Nach unserem Gespräch gab es noch eine Änderung/Verbesserung (von Nathalie abgesegnet): Hitobito erstellt für die 60 CHF Abokosten nur eine Position, mit Hilfe des InvoiceValueDates muss Abacus, dies anteilig auf die Geschäfts-/Kalenderjahre /MwSt Sätze etc. aufteilen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants