Browse code

Make sure check-in export file is only generated once

Benjamin Roth authored on01/09/2025 14:15:16
Showing2 changed files
... ...
@@ -216,6 +216,10 @@ $GLOBALS['TL_DCA']['tl_vr_wa_reservation'] = array
216 216
             'eval'                    => array('rgxp' => 'datim', 'datepicker' => true, 'tl_class' => 'clr w50 wizard'),
217 217
             'sql'                     => "int(10) unsigned NOT NULL default '0'"
218 218
         ),
219
+        'checked_in_export_generated' => array
220
+        (
221
+            'sql'                     => "char(1) NOT NULL default ''"
222
+        ),
219 223
         'checked_in_nc_sent'      => array
220 224
         (
221 225
             'sql' => "int(10) unsigned NOT NULL default '0'"
... ...
@@ -83,6 +83,11 @@ class CheckInCompletedListener implements EventSubscriberInterface
83 83
      */
84 84
     private function generateCsvExport(array $reservationData, $reservationModel)
85 85
     {
86
+        // Do not execute if the export has already been generated
87
+        if ($reservationModel->checked_in_export_generated) {
88
+            return;
89
+        }
90
+
86 91
         // Create export directory if it doesn't exist
87 92
         $exportDir = $this->projectDir . '/export/check_in';
88 93
         $filesystem = new Filesystem();
... ...
@@ -294,5 +299,8 @@ class CheckInCompletedListener implements EventSubscriberInterface
294 299
             ),
295 300
             ['contao' => new ContaoContext(__METHOD__, 'CHECK_IN_CSV_EXPORT')]
296 301
         );
302
+
303
+        $reservationModel->checked_in_export_generated = '1';
304
+        $reservationModel->save();
297 305
     }
298 306
 }