summaryrefslogtreecommitdiff
path: root/views/mods/mod_rechnungen/archive.phtml
blob: ca6b72eba1d6c79174d5565441b0afbb78552777 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php

	/**
	 * Archivliste im Reiter „Archiv“ (wird beim Anklicken nachgeladen)
	 */

?>
<?php $arLegacy = $this->view['arLegacy']; if ($arLegacy['files'] > 0) { ?>
<?php

	$legacy_url = function($do) {

		return wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_rechnungen&noheader=1&do='.$do, 'wpsg-mod_rechnungen-archive');

	};

	$legacy_path = 'uploads/wpsg_rechnungen/';

?>
<div class="wpsg_archive_legacy">
	<h3><?php echo __('Altbestand', 'wpsg'); ?></h3>
	<?php if ($arLegacy['result'] === null && sizeof($arLegacy['scan']['todo']) > 0) { ?>
	<p><?php echo wpsg_translate(__('Die Übernahme der Rechnungen aus wpShopGermany 3 ist nicht sauber durchgelaufen. Unter #1# liegen #2# Rechnungen, die in der aktuellen Ablage fehlen und sich im Shop nicht herunterladen lassen.', 'wpsg'), '<code>'.$legacy_path.'</code>', sizeof($arLegacy['scan']['todo'])); ?></p>
	<?php if (sizeof($arLegacy['scan']['unknown']) + sizeof($arLegacy['scan']['conflict']) > 0) { ?>
	<p><?php echo wpsg_translate(__('#1# Dateien lassen sich keiner Rechnung zuordnen und bleiben dort liegen.', 'wpsg'), sizeof($arLegacy['scan']['unknown']) + sizeof($arLegacy['scan']['conflict'])); ?></p>
	<?php } ?>
	<p><a href="<?php echo esc_url($legacy_url('legacyMigrate')); ?>" class="button button-primary"><?php echo wpsg_translate(__('Alte Ablage übernehmen (#1# Dateien)', 'wpsg'), sizeof($arLegacy['scan']['todo'])); ?></a></p>
	<?php } else { ?>
	<?php if ($arLegacy['result'] !== null) { ?>
	<p><?php echo wpsg_translate(__('Alte Ablage übernommen am #1#: #2# Dateien kopiert, #3# waren schon vorhanden.', 'wpsg'), wpsg_formatTimestamp(strtotime($arLegacy['result']['date']), true), $arLegacy['result']['copied'], $arLegacy['result']['done']); ?>
	<?php if ($arLegacy['result']['unknown'] + $arLegacy['result']['conflict'] > 0) echo wpsg_translate(__('#1# Dateien ließen sich keiner Rechnung zuordnen und liegen nur in der alten Ablage.', 'wpsg'), $arLegacy['result']['unknown'] + $arLegacy['result']['conflict']); ?></p>
	<?php } ?>
	<p><?php echo wpsg_translate(__('Datenaltbestand aus wpShopGermany 3: Bitte den Ordner #1# sichern und anschließend löschen.', 'wpsg'), '<code>'.$legacy_path.'</code>'); ?></p>
	<p><a href="<?php echo esc_url($legacy_url('legacyDelete')); ?>" class="button" onclick="return confirm('<?php echo esc_js(wpsg_translate(__('Den Ordner #1# mit #2# Dateien endgültig löschen? Vorher sichern!', 'wpsg'), $legacy_path, $arLegacy['files'])); ?>');"><?php echo __('Alte Ablage löschen', 'wpsg'); ?></a></p>
	<?php } ?>
</div>
<?php } ?>
<?php if (sizeof($this->view['arArchive']) === 0) { ?>
	<p><?php echo __('Es sind noch keine Rechnungen vorhanden.', 'wpsg'); ?></p>
<?php } else { ?>

<?php

	$archive_url = function($do, $period) {

		return wp_nonce_url(WPSG_URL_WP.'wp-admin/admin.php?page=wpsg-Admin&action=module&modul=wpsg_mod_rechnungen&noheader=1&do='.$do.'&period='.rawurlencode($period), 'wpsg-mod_rechnungen-archive');

	};

	$archive_actions = function($period, $year, $files) use ($archive_url) {

		if ($files <= 0) return '';

		$keep_until = $this->callMod('wpsg_mod_rechnungen', 'getArchiveKeepUntil', [$year]);
		$confirm = wpsg_translate(__('Alle Rechnungsdateien aus #1# endgültig löschen? Die Einträge in den Bestellungen bleiben, die PDFs lassen sich danach nicht mehr herunterladen. Vorher das ZIP sichern!', 'wpsg'), $period);

		if (date('Y-m-d') <= $keep_until) $confirm = wpsg_translate(__('Achtung: Die Aufbewahrungsfrist für #1# läuft noch bis #2#.', 'wpsg'), $period, wpsg_formatTimestamp(strtotime($keep_until), true))."\n\n".$confirm;

		return '<span style="white-space:nowrap;"><a href="'.esc_url($archive_url('archiveZip', $period)).'" class="button">'.__('ZIP', 'wpsg').'</a> '.
			'<a href="'.esc_url($archive_url('archiveDelete', $period)).'" class="button" onclick="return confirm(\''.esc_js($confirm).'\');">'.__('Löschen', 'wpsg').'</a></span> ';

	};

?>

<style>.wpsg_mod_rechnungen_archive td { white-space:nowrap; } .wpsg_mod_rechnungen_archive th, .wpsg_mod_rechnungen_archive .wpsg_archive_deleted { white-space:normal; } .wpsg_archive_toggle { text-decoration:none; color:inherit; } .wpsg_archive_toggle .dashicons { vertical-align:text-bottom; }</style>
<?php

	// Jahre ohne verbliebene Dateien, aber mit Löschvermerk: Ansicht „Gelöscht“
	$arArchiveView = ['present' => [], 'deleted' => []];

	foreach ($this->view['arArchive'] as $year => $arMonth) {

		$bDeleted = (array_sum(array_column($arMonth, 'files')) === 0 && sizeof(array_filter(array_column($arMonth, 'deleted'))) > 0);
		$arArchiveView[($bDeleted)?'deleted':'present'][$year] = $arMonth;

	}

?>

<p class="wpsg_archive_views">
	<a href="#" class="button button-primary" data-view="present"><?php echo wpsg_translate(__('Vorhanden (#1#)', 'wpsg'), sizeof($arArchiveView['present'])); ?></a>
	<?php if (sizeof($arArchiveView['deleted']) > 0) { ?>
	<a href="#" class="button" data-view="deleted"><?php echo wpsg_translate(__('Gelöscht (#1#)', 'wpsg'), sizeof($arArchiveView['deleted'])); ?></a>
	<?php } ?>
</p>

<?php foreach ($arArchiveView as $view => $arYear) { if (sizeof($arYear) === 0) continue; ?>
<table class="table wpsg_mod_rechnungen_archive" data-view="<?php echo $view; ?>" <?php echo ($view === 'deleted')?'style="display:none;"':''; ?>>
	<thead>
		<tr>
			<th><?php echo __('Zeitraum', 'wpsg'); ?></th>
			<th class="col_number"><?php echo __('Rechnungen', 'wpsg'); ?></th>
			<th class="col_number"><?php echo str_replace('skorrektur', 's&shy;korrektur', esc_html(__('Rechnungskorrekturen', 'wpsg'))); ?></th>
			<th class="col_number"><?php echo __('Dateien', 'wpsg'); ?></th>
			<th class="col_number"><?php echo __('Größe', 'wpsg'); ?></th>
			<th><?php echo __('Aufbewahrung bis', 'wpsg'); ?></th>
			<th></th>
		</tr>
	</thead>
	<tbody>
	<?php $bOpen = ($view === 'present'); ?>
	<?php foreach ($arYear as $year => $arMonth) { ?>
		<?php $files = array_sum(array_column($arMonth, 'files')); ?>
		<tr class="wpsg_archive_year" data-year="<?php echo $year; ?>">
			<td><a href="#" class="wpsg_archive_toggle"><span class="dashicons dashicons-arrow-<?php echo ($bOpen)?'down':'right'; ?>"></span><strong><?php echo $year; ?></strong></a></td>
			<td class="col_number"><strong><?php echo array_sum(array_column($arMonth, 'rnr')); ?></strong></td>
			<td class="col_number"><strong><?php echo array_sum(array_column($arMonth, 'gnr')); ?></strong></td>
			<td class="col_number"><strong><?php echo $files; ?></strong></td>
			<td class="col_number"><strong><?php echo ($files > 0)?size_format(array_sum(array_column($arMonth, 'size')), 1):''; ?></strong></td>
			<td><?php echo wpsg_formatTimestamp(strtotime($this->callMod('wpsg_mod_rechnungen', 'getArchiveKeepUntil', [$year])), true); ?></td>
			<td class="col_actions"><?php echo $archive_actions(strval($year), $year, $files); ?></td>
		</tr>
		<?php foreach ($arMonth as $month => $m) { ?>
		<tr class="wpsg_archive_month" data-year="<?php echo $year; ?>" <?php echo ($bOpen)?'':'style="display:none;"'; ?>>
			<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo $year.'/'.$month; ?></td>
			<td class="col_number"><?php echo $m['rnr']; ?></td>
			<td class="col_number"><?php echo $m['gnr']; ?></td>
			<td class="col_number"><?php echo $m['files']; ?></td>
			<td class="col_number"><?php echo ($m['files'] > 0)?size_format($m['size'], 1):''; ?></td>
			<td></td>
			<td class="col_actions" style="white-space:normal;">
				<?php if ($m['files'] > 0) echo $archive_actions($year.'/'.$month, $year, $m['files']); ?>
				<?php if ($m['deleted'] !== false) echo '<span class="wpsg_archive_deleted">'.wpsg_translate(__('Dateien gelöscht am #1#', 'wpsg'), wpsg_formatTimestamp(strtotime($m['deleted']), true)).'</span>'; ?>
			</td>
		</tr>
		<?php } ?>
		<?php $bOpen = false; ?>
	<?php } ?>
	</tbody>
</table>
<?php } ?>

<?php } ?>