diff --git a/modules/shareholder_register_taxshelter/src/ShareholderRegisterTaxshelterDrushService.php b/modules/shareholder_register_taxshelter/src/ShareholderRegisterTaxshelterDrushService.php index 763210a41ce630a805c62699ca606963c7a3411f..32cd0383b444c679237acee42e4ab8b39ee90b72 100644 --- a/modules/shareholder_register_taxshelter/src/ShareholderRegisterTaxshelterDrushService.php +++ b/modules/shareholder_register_taxshelter/src/ShareholderRegisterTaxshelterDrushService.php @@ -90,6 +90,11 @@ class ShareholderRegisterTaxshelterDrushService implements ShareholderRegisterTa if ($claim_id == 'all') { $claim_ids = \Drupal::entityQuery('taxshelter_claim')->execute(); } + elseif (substr($claim_id, 0, 5) === "year-") { + $claim_ids = \Drupal::entityQuery('taxshelter_claim') + ->condition('year', substr($claim_id, 5)) + ->execute(); + } else { $claim_ids = [$claim_id]; } diff --git a/modules/shareholder_register_taxshelter/src/ShareholderRegisterTaxshelterService.php b/modules/shareholder_register_taxshelter/src/ShareholderRegisterTaxshelterService.php index 366f602fd7cf9d8b8746d60e18a7f9a511948374..8d8758370a6f7b12bee05430a2174782a9508983 100644 --- a/modules/shareholder_register_taxshelter/src/ShareholderRegisterTaxshelterService.php +++ b/modules/shareholder_register_taxshelter/src/ShareholderRegisterTaxshelterService.php @@ -694,23 +694,38 @@ class ShareholderRegisterTaxshelterService implements ShareholderRegisterTaxshel $taxshelter_config->get('date_of_birth_field'))->value; } + // Beperkte lijst van RSZ landcodes voorzien, anders manueel aan te passen. + $land_codes = [ + 'FR' => '00111', + 'NL' => '00129', + 'LU' => '00113', + 'DE' => '00103', + 'AT' => '00105', + 'PL' => '00122', + 'SN' => '00320', + 'US' => '00402', + ]; + + if (array_key_exists($shareholder->get('address')->country_code, $land_codes)) { + $attest_data['f2018_landwoonplaats'] = $land_codes[$shareholder->get('address')->country_code]; + $attest_data['f2112_buitenlandspostnummer'] = $shareholder->getPostalCode(); + } + elseif ($shareholder->get('address')->country_code == 'BE') { + $attest_data['f2018_landwoonplaats'] = '00000'; + $attest_data['f2016_postcodebelgisch'] = $shareholder->getPostalCode(); + } + else { + $attest_data['f2018_landwoonplaats'] = ''; + } + $claim_data = [ 'f2002_inkomstenjaar' => $year, 'f2005_registratienummer' => $kbo, 'f2008_typefiche' => '28185', 'f2009_volgnummer' => $volgnummer, 'f2013_naam' => $shareholder->getFamilyName(), - 'f2015_adres' => trim(implode( - ' ', - [ - $shareholder->getAddressLine(), - $shareholder->get('address')->premise, - $shareholder->get('address')->subpremise, - ])), - 'f2016_postcodebelgisch' => $shareholder->getPostalCode(), + 'f2015_adres' => $shareholder->getFullAddressLine(), 'f2017_gemeente' => $shareholder->getLocality(), - // Geen lijst van RSZ landcodes voorzien, manueel aan te passen. - 'f2018_landwoonplaats' => $shareholder->get('address')->country_code == 'BE' ? '00000' : '', // Normaal (geen wijziging, annulatie). 'f2028_typetraitement' => 0, // Fiche 281. diff --git a/modules/shareholder_register_taxshelter/templates/shareholder-register-taxshelter-attest-2020-fr.html.twig b/modules/shareholder_register_taxshelter/templates/shareholder-register-taxshelter-attest-2020-fr.html.twig index 25693fe163681e685c4a56671ceafa6325182e6e..938bf64667523411abb40242e06358caede6a43f 100644 --- a/modules/shareholder_register_taxshelter/templates/shareholder-register-taxshelter-attest-2020-fr.html.twig +++ b/modules/shareholder_register_taxshelter/templates/shareholder-register-taxshelter-attest-2020-fr.html.twig @@ -12,7 +12,7 @@ <span style="position:absolute; left: 50mm; top: 149mm; width:150mm;">{{ claim.shareholder.getFamilyName() }}</span> <span style="position:absolute; left: 90mm; top: 158mm; width:100mm;">{{ rrn_field }}</span> <span style="position:absolute; left: 70mm; top: 165mm; width:100mm;">{{ date_of_birth_field }}</span> - <span style="position:absolute; left: 55mm; top: 174mm; width:150mm;">{{ claim.shareholder.getAddressLine() }}</span> + <span style="position:absolute; left: 55mm; top: 174mm; width:150mm;">{{ claim.shareholder.getFullAddressLine() }}</span> <span style="position:absolute; left: 60mm; top: 183mm; width:100mm;">{{ claim.shareholder.getPostalCode() }}</span> <span style="position:absolute; left: 110mm; top: 183mm; width:100mm;">{{ claim.shareholder.getLocality() }}</span> <span style="position:absolute; left: 50mm; top: 190mm; width:100mm;">{{ claim.shareholder.getCountry() }}</span> diff --git a/modules/shareholder_register_taxshelter/templates/shareholder-register-taxshelter-attest-2020-nl.html.twig b/modules/shareholder_register_taxshelter/templates/shareholder-register-taxshelter-attest-2020-nl.html.twig index 52efe47daf644fc89771aaacc2d029ff04ac75ca..61c58ad0e4c031b8ca50a89a50955073c93b706a 100644 --- a/modules/shareholder_register_taxshelter/templates/shareholder-register-taxshelter-attest-2020-nl.html.twig +++ b/modules/shareholder_register_taxshelter/templates/shareholder-register-taxshelter-attest-2020-nl.html.twig @@ -12,7 +12,7 @@ <span style="position:absolute; left: 45mm; top: 144mm; width:150mm;">{{ claim.shareholder.getFamilyName() }}</span> <span style="position:absolute; left: 65mm; top: 152mm; width:100mm;">{{ rrn_field }}</span> <span style="position:absolute; left: 60mm; top: 161mm; width:100mm;">{{ date_of_birth_field }}</span> - <span style="position:absolute; left: 50mm; top: 169mm; width:150mm;">{{ claim.shareholder.getAddressLine() }}</span> + <span style="position:absolute; left: 50mm; top: 169mm; width:150mm;">{{ claim.shareholder.getFullAddressLine() }}</span> <span style="position:absolute; left: 50mm; top: 178mm; width:100mm;">{{ claim.shareholder.getPostalCode() }}</span> <span style="position:absolute; left: 120mm; top: 178mm; width:100mm;">{{ claim.shareholder.getLocality() }}</span> <span style="position:absolute; left: 40mm; top: 185mm; width:100mm;">{{ claim.shareholder.getCountry() }}</span> diff --git a/src/Entity/Shareholder.php b/src/Entity/Shareholder.php index 6ff2358ea93058a42ec3adb9a3ac8be58497bc12..c64166c7e1e2e2b200ca65924e683764e2c40ddf 100644 --- a/src/Entity/Shareholder.php +++ b/src/Entity/Shareholder.php @@ -311,6 +311,25 @@ class Shareholder extends RevisionableContentEntityBase implements ShareholderIn return $this->get('address')->address_line1; } + /** + * {@inheritdoc} + */ + public function getFullAddressLine() { + return implode( + ' ', + array_filter( + array_map( + 'trim', + [ + $this->get('address')->address_line1, + $this->get('address')->premise, + $this->get('address')->subpremise, + ] + ) + ) + ); + } + /** * {@inheritdoc} */