Skip to content

Commit

Permalink
Merge pull request #580 from jan-stanek/oprava-parovani-plateb
Browse files Browse the repository at this point in the history
Oprava parovani plateb
  • Loading branch information
jan-stanek authored Oct 16, 2018
2 parents d927386 + cb9ab08 commit 12450ee
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 29 deletions.
11 changes: 10 additions & 1 deletion app/ActionModule/presenters/BankPresenter.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@

namespace App\ActionModule\Presenters;

use App\Model\Settings\Settings;
use App\Model\Settings\SettingsException;
use App\Model\Settings\SettingsRepository;
use App\Services\BankService;

/**
Expand All @@ -20,6 +22,12 @@ class BankPresenter extends ActionBasePresenter
*/
public $bankService;

/**
* @var SettingsRepository
* @inject
*/
public $settingsRepository;


/**
* Zkontroluje splatnost přihlášek.
Expand All @@ -28,6 +36,7 @@ class BankPresenter extends ActionBasePresenter
*/
public function actionCheck() : void
{
$this->bankService->downloadLastTransactions();
$from = $this->settingsRepository->getDateValue(Settings::BANK_DOWNLOAD_FROM);
$this->bankService->downloadTransactions($from);
}
}
4 changes: 1 addition & 3 deletions app/AdminModule/ConfigurationModule/forms/BankForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,8 @@ public function processForm(Form $form, \stdClass $values) : void
$from = $values['bankDownloadFrom'];

try {
$this->bankService->downloadTransactionsFrom($from, $token);

$this->bankService->downloadTransactions($from, $token);
$this->settingsRepository->setValue(Settings::BANK_TOKEN, $token);
$this->settingsRepository->setDateValue(Settings::BANK_DOWNLOAD_FROM, $from);
} catch (InternalErrorException $e) {
$form['bankToken']->addError('admin.configuration.payment.bank_invalid_token');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public function createComponentPaymentsGrid(string $name) : void
$grid->setItemsPerPageList([25, 50, 100, 250, 500]);

$grid->addColumnDateTime('date', 'admin.payments.payments.date')
->setFormat(Helpers::DATETIME_FORMAT)
->setFormat(Helpers::DATE_FORMAT)
->setSortable();

$grid->addColumnNumber('amount', 'admin.payments.payments.amount')
Expand Down
4 changes: 2 additions & 2 deletions app/model/User/Application/ApplicationRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ public function findValidByVariableSymbol(?string $variableSymbol) : ?Applicatio
{
return $this->createQueryBuilder('a')
->select('a')
->join('a.variableSymbol', 'variableSymbol')
->where('variableSymbol = :variableSymbol')->setParameter('variableSymbol', $variableSymbol)
->join('a.variableSymbol', 'v')
->where('v.variableSymbol = :variableSymbol')->setParameter('variableSymbol', $variableSymbol)
->andWhere('a.validTo IS NULL')
->getQuery()
->getOneOrNullResult();
Expand Down
2 changes: 2 additions & 0 deletions app/services/ApplicationService.php
Original file line number Diff line number Diff line change
Expand Up @@ -534,6 +534,8 @@ public function createPayment(\DateTime $date, float $amount, ?string $variableS
if ($pairedApplication) {
if ($pairedApplication->getState() === ApplicationState::PAID || $pairedApplication->getState() === ApplicationState::PAID_FREE) {
$payment->setState(PaymentState::NOT_PAIRED_PAID);
} elseif ($pairedApplication->getState() === ApplicationState::CANCELED || $pairedApplication->getState() === ApplicationState::CANCELED_NOT_PAID) {
$payment->setState(PaymentState::NOT_PAIRED_CANCELED);
} elseif (abs($pairedApplication->getFee() - $amount) >= 0.01) {
$payment->setState(PaymentState::NOT_PAIRED_FEE);
} else {
Expand Down
29 changes: 7 additions & 22 deletions app/services/BankService.php
Original file line number Diff line number Diff line change
Expand Up @@ -44,40 +44,23 @@ public function __construct(
* @throws SettingsException
* @throws \Throwable
*/
public function downloadLastTransactions(?string $token = null) : void
public function downloadTransactions(\DateTime $from, ?string $token = null) : void
{
$token ?: $this->settingsRepository->getValue(Settings::BANK_TOKEN);
$token = $token ?: $this->settingsRepository->getValue(Settings::BANK_TOKEN);
if ($token === null) {
return;
}

$downloader = new FioApi\Downloader($token);
$transactionList = $downloader->downloadLast();

$this->addPayments($transactionList);
}

/**
* @throws SettingsException
* @throws \Throwable
*/
public function downloadTransactionsFrom(\DateTime $from, ?string $token = null) : void
{
$token ?: $this->settingsRepository->getValue(Settings::BANK_TOKEN);
if ($token === null) {
return;
throw new \InvalidArgumentException('Token is not set.');
}

$downloader = new FioApi\Downloader($token);
$transactionList = $downloader->downloadSince($from);

$this->addPayments($transactionList);
$this->createPayments($transactionList);
}

/**
* @throws \Throwable
*/
private function addPayments(FioApi\TransactionList $transactionList) : void
private function createPayments(FioApi\TransactionList $transactionList) : void
{
$this->settingsRepository->getEntityManager()->transactional(function () use ($transactionList) : void {
foreach ($transactionList->getTransactions() as $transaction) {
Expand All @@ -102,6 +85,8 @@ private function addPayments(FioApi\TransactionList $transactionList) : void
$transaction->getUserMessage()
);
}

$this->settingsRepository->setDateValue(Settings::BANK_DOWNLOAD_FROM, new \DateTime());
});
}
}

0 comments on commit 12450ee

Please sign in to comment.