Skip to content
Snippets Groups Projects

i6414 export transactions and conversions: add unique id

Merged simon requested to merge i6414-export-transactions-and-conversions-unique-id into v2.x
Compare and
1 file
+ 11
3
Preferences
File browser
Compare changes
@@ -106,6 +106,7 @@ class TransactionsAndConversions extends PluginBase implements PluginFormInterfa
$transactions = $shareholder->getValidTransactionsInRange(NULL, $config['date'], $config['use_payment_date']);
foreach ($transactions as $transaction) {
$line_id = 1;
$shares_by_hash = [];
foreach ($query->getInitialShareRevisionsAtDate($transaction->getShareIds(), $transaction->getDate()) as $share) {
$hash = $service->getShareHash($share);
@@ -116,24 +117,30 @@ class TransactionsAndConversions extends PluginBase implements PluginFormInterfa
}
foreach ($shares_by_hash as $hash => $line_data) {
$context['results']['totals'][] = new ShareholderSharesLine(
$transaction->getName(),
"T{$transaction->getName()}/{$line_id}",
$transaction->getTransactionDate($config['use_payment_date']),
$shareholder->id(),
count($line_data) * ($transaction->getQuantity() > 0 ? 1 : -1),
$line_data,
$hash
);
$line_id++;
}
}
$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;
}
$context['results']['totals'][] = new ShareholderSharesLine(
'C' . $conversion['id'],
"C{$conversion['id']}/1/{$conversion_line_ids[$conversion['id']]}",
$conversion['date'],
$shareholder->id(),
count($conversion['share_ids']) * -1,
@@ -141,13 +148,14 @@ class TransactionsAndConversions extends PluginBase implements PluginFormInterfa
$old
);
$context['results']['totals'][] = new ShareholderSharesLine(
'C' . $conversion['id'],
"C{$conversion['id']}/2/{$conversion_line_ids[$conversion['id']]}",
$conversion['date'],
$shareholder->id(),
count($conversion['share_ids']),
$conversion['share_ids'],
$new
);
$conversion_line_ids[$conversion['id']]++;
}
}