Skip to content

Commit

Permalink
use actual opening times
Browse files Browse the repository at this point in the history
  • Loading branch information
lode committed Mar 6, 2025
1 parent de9c01e commit ee65427
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 9 deletions.
42 changes: 33 additions & 9 deletions src/command/GatherExtraDataLoansCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
use Lode\AccessSyncLendEngine\specification\ArticleStatusSpecification;
use Lode\AccessSyncLendEngine\specification\EmployeeSpecification;
use Lode\AccessSyncLendEngine\specification\MemberSpecification;
use Lode\AccessSyncLendEngine\specification\OpeningSpecification;
use Lode\AccessSyncLendEngine\specification\OpeningtimeSpecification;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
Expand All @@ -34,6 +36,8 @@ protected function execute(InputInterface $input, OutputInterface $output): int
'ArtikelStatusLogging.csv',
'Lid.csv',
'Medewerker.csv',
'Opening.csv',
'Openingstijd.csv',
],
$output,
);
Expand Down Expand Up @@ -72,6 +76,12 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$employeeCsvLines = $service->getExportCsv($dataDirectory.'/Medewerker.csv', (new EmployeeSpecification())->getExpectedHeaders());
$output->writeln('Imported ' . count($employeeCsvLines). ' medewerkers');

$openingCsvLines = $service->getExportCsv($dataDirectory.'/Opening.csv', (new OpeningSpecification())->getExpectedHeaders());
$output->writeln('Imported ' . count($openingCsvLines). ' openingen');

$openingtimeCsvLines = $service->getExportCsv($dataDirectory.'/Openingstijd.csv', (new OpeningtimeSpecification())->getExpectedHeaders());
$output->writeln('Imported ' . count($openingtimeCsvLines). ' openingstijden');

$output->writeln('<info>Exporting loans ...</info>');

$membershipNumberMapping = [];
Expand Down Expand Up @@ -99,6 +109,27 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$employeeMapping[$employeeId] = $responsibleId;
}

$openingtimeMapping = [];
foreach ($openingtimeCsvLines as $openingtimeCsvLine) {
$openingtimeId = $openingtimeCsvLine['opt_id'];
$openingtimeStart = $openingtimeCsvLine['opt_vanaftijd'];

$openingtimeMapping[$openingtimeId] = $openingtimeStart;
}

$openingMapping = [];
foreach ($openingCsvLines as $openingCsvLine) {
$openingId = $openingCsvLine['ope_id'];
$openingtimeId = $openingCsvLine['ope_opt_id'];

$openingDate = substr($openingCsvLine['ope_datum'], 0, strpos($openingCsvLine['ope_datum'], ' '));
$openingtimeStart = substr($openingtimeMapping[$openingtimeId], strpos($openingtimeMapping[$openingtimeId], ' ')+1);
$openingStart = \DateTime::createFromFormat('Y-n-j H:i:s', $openingDate.' '.$openingtimeStart, new \DateTimeZone('Europe/Amsterdam'));
$openingStart->setTimezone(new \DateTimeZone('UTC'));

$openingMapping[$openingId] = $openingStart;
}

$locationMapping = [];
foreach ($articleStatusCsvLines as $articleStatusCsvLine) {
$locationId = $articleStatusCsvLine[$articleStatusMapping['location_id']];
Expand Down Expand Up @@ -183,15 +214,8 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$employeeMembershipNumber = $responsibleMembershipNumberMapping[$employeeMapping[$loanData['employee']]];
$status = 'ACTIVE'; // LE automatically will set to 'OVERDUE' if needed
$createdAt = $loanData['created']->format('Y-m-d H:i:s');

// fake due out/in data
$datetimeOut = $loanData['created']->format('Y-m-d H:i:s');
$datetimeIn = clone $loanData['created'];
$datetimeIn = ($datetimeIn->modify('+28 days'))->format('Y-m-d H:i:s');

// todo fetch data from opening table
#$datetimeOut = $someMapping[$loanData['loanOut']]->format('Y-m-d H:i:s'); // ope_id
#$datetimeIn = $someMapping[$loanData['loanIn']]->format('Y-m-d H:i:s'); // ope_id
$datetimeOut = $openingMapping[$loanData['loanOut']]->format('Y-m-d H:i:s');
$datetimeIn = $openingMapping[$loanData['loanIn']]->format('Y-m-d H:i:s');

$loanQueries[] = "
INSERT
Expand Down
24 changes: 24 additions & 0 deletions src/specification/OpeningSpecification.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

declare(strict_types=1);

namespace Lode\AccessSyncLendEngine\specification;

class OpeningSpecification {
/**
* @return string[]
*/
public function getExpectedHeaders(): array
{
return [
'ope_id',
'ope_datum',
'ope_plp_id',
'ope_opt_id',
'ope_ope_id_terug',
'ope_ope_id_terug_lang',
'ope_byzonderheid',
'ope_actief',
];
}
}
22 changes: 22 additions & 0 deletions src/specification/OpeningtimeSpecification.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?php

declare(strict_types=1);

namespace Lode\AccessSyncLendEngine\specification;

class OpeningtimeSpecification {
/**
* @return string[]
*/
public function getExpectedHeaders(): array
{
return [
'opt_id',
'opt_wkd_id',
'opt_vanaftijd',
'opt_tmtijd',
'opt_ddt_id',
'opt_actueel',
];
}
}

0 comments on commit ee65427

Please sign in to comment.