wimverstuyf / php-coda-parser

PHP parser for Belgian CODA banking files
GNU Lesser General Public License v3.0
42 stars 25 forks source link

Groeperen van collectieve overschrijvingen #24

Closed astalpaert closed 2 years ago

astalpaert commented 2 years ago

@wimverstuyf

Bij een collectieve overschrijving is het onmogelijk om de detail / sub transacties van een groep uit te lezen (zie voorbeeld):

Febelfin codering: Type: 1 Family: 01 Operation: 07

Huidige situatie:

  1. Transactie 1: -85,00€

Gewenste situatie (voorstel 1):

  1. Transactie 1: -30,00€
  2. Transactie 2: -25,00€
  3. Transactie 3: -20,00€

Gewenste situatie (voorstel 2):

  1. Transactie 1: -85,00€ 1.1 Subtransactie: -30,00€ 1.2 Subtransactie: -25,00€ 1.3: Subtransactie: -20,00€

Wat is uw mening hieromtrent? Wat lijkt het beste voorstel om dit op te lossen? Wij kunnen dit implementeren, maar willen toch graag eerst eens polsen.

Voorbeeld:

``` 0000011101772505 00265207 BOUWBEDRIJF VOOR GROTE WERKREDBEBB 00330158420 00000 2 10139138536152215 EUR0BE 0000000017752120101017BOUWBEDRIJF VOOR GROTE WERKBC-Bedrijfsrekening 138 21000100000801A3T033523 1000000000085000290322101070000creditTran/0000 29032203411 0 2200010000 p24t20220328122212c1 0 1 31000100010801A3T033523 101070000UITVOERING VAN UW BESTAND/GROEP creditTran/0000 0 0 2100010002KLIM03284DSCICDEVATVA1000000000025000111017001500001101000003515846 11101713901 0 2200010002 BBRUBEBB 1 0 2300010002BE25646548413215 KLANT2 NAAM2 0 1 3100010002KLIM03284DSCICDEVATVA001500001001KLANT2 NAAM2 1 0 3200010002VOETGANGERSTRAAT 26 1215 ANTWERPEN 0 0 2100010003OL69IXSTASSCCOXSOVDGS1000000000020000111017001500001101000003154982 11101713901 0 2200010003 KREDBEBB 1 0 2300010003BE32135468465432 KLANT3 NAAM 0 1 3100010003OL69IXSTASSCCOXSOVDGS001500001001KLANT3 NAAM 1 0 3200010003KLEIN WEGELKEN 1 8423 LEUVEN 0 0 2100010004KACS00321DSCTIXEIKDVA1000000000030000111017001500001101000002133131 11101713901 0 2200010004 GEBABEBB 1 0 2300010004BE23156453132168 KLANT4 - NAAM4 MET 0 1 3100010004KACS00321DSCTIXEIKDVA001500001001KLANT4 - NAAM4 MET 1 0 3200010004EIKENSTRAAT 25 2141 BRUGGE 0 0 8139138536152215 EUR0BE 0000000017832120111017 0 9 000022000000000000000000000000080000 1 ```
wimverstuyf commented 2 years ago

Een PR hiervoor is meer dan welkom :+1: (Vergeet de unit testen niet :wink:)

De afweging bij beide voorstellen lijkt te gaan om: Is er bij een collectieve overschrijving nog nood aan de totale transactie? Of kunnen de subtransacties steeds als afzonderlijke transacties worden beschouwd.

Eigen voorkeur gaat hierbij uit naar voorstel 1. Redenering: De collectieve transactie lijkt eerder een technische constructie om verschillende betalingen/transacties uit te voeren. Bij het uitlezen van CODA-bestanden zijn echter enkel de subtransacties interessant. Voorstel 1 maakt in dit geval het uitlezen van de transacties niet nodeloos complex.

astalpaert commented 2 years ago

@wimverstuyf

Jouw voorkeur stemt overeen met wat wij ook willen. Het enige 'probleem' dat we zien is dat deze transacties uit deze groep dezelfde sequence number hebben, maar wel een verschillende sequence detail number. Is het een breaking chance als we sequence + sequence detail gebruiken als unieke identifier voor een transactie?

wimverstuyf commented 2 years ago

Dat er dan verschillende transacties met hetzelfde sequence nummer zijn lijkt me geen breaking change. Een bijkomend veld sequence detail kan in dit geval nuttig zijn. OK dus om dit zo in te implementeren.

astalpaert commented 2 years ago

@wimverstuyf Thx voor de merge! Zou het misschien nog mogelijk te zijn om dit te releasen in Packagist aub? :-)

wimverstuyf commented 2 years ago

Bedankt voor de aanpassingen! Een nieuwe versie is beschikbaar op Packagist.