Skip to content

Commit 12450ee

Browse files
authored
Merge pull request #580 from jan-stanek/oprava-parovani-plateb
Oprava parovani plateb
2 parents d927386 + cb9ab08 commit 12450ee

File tree

6 files changed

+23
-29
lines changed

6 files changed

+23
-29
lines changed

app/ActionModule/presenters/BankPresenter.php

+10-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55
namespace App\ActionModule\Presenters;
66

7+
use App\Model\Settings\Settings;
78
use App\Model\Settings\SettingsException;
9+
use App\Model\Settings\SettingsRepository;
810
use App\Services\BankService;
911

1012
/**
@@ -20,6 +22,12 @@ class BankPresenter extends ActionBasePresenter
2022
*/
2123
public $bankService;
2224

25+
/**
26+
* @var SettingsRepository
27+
* @inject
28+
*/
29+
public $settingsRepository;
30+
2331

2432
/**
2533
* Zkontroluje splatnost přihlášek.
@@ -28,6 +36,7 @@ class BankPresenter extends ActionBasePresenter
2836
*/
2937
public function actionCheck() : void
3038
{
31-
$this->bankService->downloadLastTransactions();
39+
$from = $this->settingsRepository->getDateValue(Settings::BANK_DOWNLOAD_FROM);
40+
$this->bankService->downloadTransactions($from);
3241
}
3342
}

app/AdminModule/ConfigurationModule/forms/BankForm.php

+1-3
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,8 @@ public function processForm(Form $form, \stdClass $values) : void
8888
$from = $values['bankDownloadFrom'];
8989

9090
try {
91-
$this->bankService->downloadTransactionsFrom($from, $token);
92-
91+
$this->bankService->downloadTransactions($from, $token);
9392
$this->settingsRepository->setValue(Settings::BANK_TOKEN, $token);
94-
$this->settingsRepository->setDateValue(Settings::BANK_DOWNLOAD_FROM, $from);
9593
} catch (InternalErrorException $e) {
9694
$form['bankToken']->addError('admin.configuration.payment.bank_invalid_token');
9795
}

app/AdminModule/PaymentsModule/components/PaymentsGridControl.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public function createComponentPaymentsGrid(string $name) : void
8888
$grid->setItemsPerPageList([25, 50, 100, 250, 500]);
8989

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

9494
$grid->addColumnNumber('amount', 'admin.payments.payments.amount')

app/model/User/Application/ApplicationRepository.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ public function findValidByVariableSymbol(?string $variableSymbol) : ?Applicatio
5252
{
5353
return $this->createQueryBuilder('a')
5454
->select('a')
55-
->join('a.variableSymbol', 'variableSymbol')
56-
->where('variableSymbol = :variableSymbol')->setParameter('variableSymbol', $variableSymbol)
55+
->join('a.variableSymbol', 'v')
56+
->where('v.variableSymbol = :variableSymbol')->setParameter('variableSymbol', $variableSymbol)
5757
->andWhere('a.validTo IS NULL')
5858
->getQuery()
5959
->getOneOrNullResult();

app/services/ApplicationService.php

+2
Original file line numberDiff line numberDiff line change
@@ -534,6 +534,8 @@ public function createPayment(\DateTime $date, float $amount, ?string $variableS
534534
if ($pairedApplication) {
535535
if ($pairedApplication->getState() === ApplicationState::PAID || $pairedApplication->getState() === ApplicationState::PAID_FREE) {
536536
$payment->setState(PaymentState::NOT_PAIRED_PAID);
537+
} elseif ($pairedApplication->getState() === ApplicationState::CANCELED || $pairedApplication->getState() === ApplicationState::CANCELED_NOT_PAID) {
538+
$payment->setState(PaymentState::NOT_PAIRED_CANCELED);
537539
} elseif (abs($pairedApplication->getFee() - $amount) >= 0.01) {
538540
$payment->setState(PaymentState::NOT_PAIRED_FEE);
539541
} else {

app/services/BankService.php

+7-22
Original file line numberDiff line numberDiff line change
@@ -44,40 +44,23 @@ public function __construct(
4444
* @throws SettingsException
4545
* @throws \Throwable
4646
*/
47-
public function downloadLastTransactions(?string $token = null) : void
47+
public function downloadTransactions(\DateTime $from, ?string $token = null) : void
4848
{
49-
$token ?: $this->settingsRepository->getValue(Settings::BANK_TOKEN);
49+
$token = $token ?: $this->settingsRepository->getValue(Settings::BANK_TOKEN);
5050
if ($token === null) {
51-
return;
52-
}
53-
54-
$downloader = new FioApi\Downloader($token);
55-
$transactionList = $downloader->downloadLast();
56-
57-
$this->addPayments($transactionList);
58-
}
59-
60-
/**
61-
* @throws SettingsException
62-
* @throws \Throwable
63-
*/
64-
public function downloadTransactionsFrom(\DateTime $from, ?string $token = null) : void
65-
{
66-
$token ?: $this->settingsRepository->getValue(Settings::BANK_TOKEN);
67-
if ($token === null) {
68-
return;
51+
throw new \InvalidArgumentException('Token is not set.');
6952
}
7053

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

74-
$this->addPayments($transactionList);
57+
$this->createPayments($transactionList);
7558
}
7659

7760
/**
7861
* @throws \Throwable
7962
*/
80-
private function addPayments(FioApi\TransactionList $transactionList) : void
63+
private function createPayments(FioApi\TransactionList $transactionList) : void
8164
{
8265
$this->settingsRepository->getEntityManager()->transactional(function () use ($transactionList) : void {
8366
foreach ($transactionList->getTransactions() as $transaction) {
@@ -102,6 +85,8 @@ private function addPayments(FioApi\TransactionList $transactionList) : void
10285
$transaction->getUserMessage()
10386
);
10487
}
88+
89+
$this->settingsRepository->setDateValue(Settings::BANK_DOWNLOAD_FROM, new \DateTime());
10590
});
10691
}
10792
}

0 commit comments

Comments
 (0)