Skip to content
Snippets Groups Projects

fix: duplicat conversion line ids in ShareholderRegisterExportPlugin TransactionsAndConversions

Merged simon requested to merge fix-duplicate-conversion-line-ids-in-export into v2.x
Compare and
1 file
+ 9
6
Preferences
File browser
Compare changes
@@ -105,6 +105,10 @@ class TransactionsAndConversions extends ShareholderRegisterExportPluginBase imp
$lines = [];
if (!isset($context['sandbox']['conversion_line_ids'])) {
$context['sandbox']['conversion_line_ids'] = [];
}
$transactions = $shareholder->getValidTransactionsInRange(NULL, $config['date'], $config['use_payment_date']);
foreach ($transactions as $transaction) {
$line_id = 1;
@@ -130,18 +134,17 @@ class TransactionsAndConversions extends ShareholderRegisterExportPluginBase imp
}
$conversions = $shareholder->getConversions();
$conversion_line_ids = [];
foreach ($conversions as $conversion) {
$change_parts = explode('---', $conversion['conversion_hash']);
$old = $change_parts[0];
$new = $change_parts[1];
if (!array_key_exists($conversion['id'], $conversion_line_ids)) {
$conversion_line_ids[$conversion['id']] = 1;
if (!array_key_exists($conversion['id'], $context['sandbox']['conversion_line_ids'])) {
$context['sandbox']['conversion_line_ids'][$conversion['id']] = 1;
}
$context['results']['totals'][] = new ShareholderSharesLine(
"C{$conversion['id']}/1/{$conversion_line_ids[$conversion['id']]}",
"C{$conversion['id']}/1/{$context['sandbox']['conversion_line_ids'][$conversion['id']]}",
$conversion['date'],
$shareholder->id(),
count($conversion['share_ids']) * -1,
@@ -149,14 +152,14 @@ class TransactionsAndConversions extends ShareholderRegisterExportPluginBase imp
$old
);
$context['results']['totals'][] = new ShareholderSharesLine(
"C{$conversion['id']}/2/{$conversion_line_ids[$conversion['id']]}",
"C{$conversion['id']}/2/{$context['sandbox']['conversion_line_ids'][$conversion['id']]}",
$conversion['date'],
$shareholder->id(),
count($conversion['share_ids']),
$conversion['share_ids'],
$new
);
$conversion_line_ids[$conversion['id']]++;
$context['sandbox']['conversion_line_ids'][$conversion['id']]++;
}
}