Ejemplo n.º 1
0
 public function getTransactionSummary($data)
 {
     /**
      * @var Currency $currencyService
      */
     $transactionDao = new ChargeTransaction($this->getServiceLocator());
     $currencyService = $this->getServiceLocator()->get('service_currency_currency');
     $statement = $this->prepareTransactionStatement($data);
     $transactions = $transactionDao->getTransactionSummary($statement, (bool) $data['group']);
     $transactionList = [];
     $baseCurrency = 'EUR';
     if ($transactions) {
         // Group by addon type
         foreach ($transactions as $transaction) {
             if (!isset($transactionList[$transaction['type']])) {
                 $transactionList[$transaction['type']] = ['amount' => 0, 'count' => 0, 'currency' => $baseCurrency, 'type' => Objects::getTransactionTypeById($transaction['type'])];
             }
             if ($transaction['currency'] != $baseCurrency) {
                 if (isset($transactionList[$transaction['type']])) {
                     $convertedAmount = (int) $transaction['amount'] ? $currencyService->convertCurrency($transaction['amount'], $transaction['currency'], $baseCurrency) : 0;
                     $transactionList[$transaction['type']]['amount'] = intval($transactionList[$transaction['type']]['amount'] + $convertedAmount);
                     $transactionList[$transaction['type']]['count'] = $transactionList[$transaction['type']]['count'] + $transaction['count'];
                 }
             } else {
                 $transactionList[$transaction['type']]['amount'] = intval($transactionList[$transaction['type']]['amount'] + $transaction['amount']);
                 $transactionList[$transaction['type']]['count'] = $transactionList[$transaction['type']]['count'] + $transaction['count'];
             }
         }
     }
     return $transactionList;
 }
Ejemplo n.º 2
0
 public function downloadTransactionAction()
 {
     /**
      * @var ChartService $chartService
      * @var BookingManagement $bookingManagementService
      */
     $request = $this->getRequest();
     $chartService = $this->getServiceLocator()->get('service_finance_account_receivable_chart');
     $transactions = $chartService->getTransactionDownloadable($request->getQuery());
     header('Content-Type: text/csv; charset=utf-8');
     header('Content-Disposition: attachment; filename=Transactions.csv');
     $output = fopen('php://output', 'w');
     fputcsv($output, ['Res. Number', 'Type', 'Acc Amount', 'Acc Currency', 'Transaction Date', 'PSP']);
     foreach ($transactions as $transaction) {
         fputcsv($output, [$transaction['res_number'], Objects::getTransactionTypeById($transaction['type']), $transaction['acc_amount'], $transaction['currency'], $transaction['date'], $transaction['psp_name']]);
     }
     exit;
 }