... | ... |
@@ -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 |
} |