Durchführungstag im bestehenden Löschpattern entfernen
This commit is contained in:
1 parent
30c11c5ca7
commit
3d638ab2a1
3 files changed
+56
-2
No files matched your search
@@ -953,6 +953,49 @@ function market_management_set_occurrence_archive(PDO $pdo, int $occurrenceId, b
|
||||
|
||||
function market_management_delete_day(PDO $pdo, int $dayId): array
|
||||
{
|
||||
$dayStmt = $pdo->prepare(
|
||||
'SELECT id, occurrence_id, date
|
||||
FROM market_occurrence_day
|
||||
WHERE id = :id'
|
||||
);
|
||||
$dayStmt->execute([':id' => $dayId]);
|
||||
$day = $dayStmt->fetch();
|
||||
if (!is_array($day)) {
|
||||
throw new RuntimeException('Durchführungstag nicht gefunden.');
|
||||
}
|
||||
|
||||
$countStmt = $pdo->prepare(
|
||||
'SELECT COUNT(*)
|
||||
FROM market_occurrence_day
|
||||
WHERE occurrence_id = :occurrence_id'
|
||||
);
|
||||
$countStmt->execute([':occurrence_id' => (int) $day['occurrence_id']]);
|
||||
if ((int) $countStmt->fetchColumn() <= 1) {
|
||||
throw new InvalidArgumentException('Die Durchführung muss mindestens einen Durchführungstag behalten.');
|
||||
}
|
||||
|
||||
$firstDayStmt = $pdo->prepare(
|
||||
'SELECT id
|
||||
FROM market_occurrence_day
|
||||
WHERE occurrence_id = :occurrence_id
|
||||
ORDER BY date ASC, id ASC
|
||||
LIMIT 1'
|
||||
);
|
||||
$firstDayStmt->execute([':occurrence_id' => (int) $day['occurrence_id']]);
|
||||
if ((int) $firstDayStmt->fetchColumn() === $dayId) {
|
||||
throw new InvalidArgumentException('Der erste Durchführungstag kann nicht gelöscht werden.');
|
||||
}
|
||||
|
||||
$salesStmt = $pdo->prepare(
|
||||
'SELECT COUNT(*)
|
||||
FROM sales_order
|
||||
WHERE market_occurrence_day_id = :day_id'
|
||||
);
|
||||
$salesStmt->execute([':day_id' => $dayId]);
|
||||
if ((int) $salesStmt->fetchColumn() > 0) {
|
||||
throw new InvalidArgumentException('Ein Durchführungstag mit Verkäufen kann nicht gelöscht werden.');
|
||||
}
|
||||
|
||||
$stmt = $pdo->prepare('DELETE FROM market_occurrence_day WHERE id = :id RETURNING id, occurrence_id, date');
|
||||
$stmt->execute([':id' => $dayId]);
|
||||
$day = $stmt->fetch();
|
||||
|
||||
Reference in new issue
Block a user