Commit 0822cfc9 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

add auto-generated passenger rights forms

parent 8c160f68
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
requires 'Cache';
requires 'CAM::PDF';
requires 'Crypt::Eksblowfish';
requires 'DateTime';
requires 'DateTime::Format::Strptime';
+2 −0
Original line number Diff line number Diff line
@@ -2906,6 +2906,8 @@ sub startup {
	$authed_r->post('/account/insight')->to('account#insight');
	$authed_r->post('/journey/add')->to('traveling#add_journey_form');
	$authed_r->post('/journey/edit')->to('traveling#edit_journey');
	$authed_r->post('/journey/passenger_rights')
	  ->to('passengerrights#generate');
	$authed_r->post('/account/password')->to('account#change_password');
	$authed_r->post('/account/mail')->to('account#change_mail');
	$authed_r->post('/delete')->to('account#delete');
+83 −0
Original line number Diff line number Diff line
package Travelynx::Controller::Passengerrights;
use Mojo::Base 'Mojolicious::Controller';

use DateTime;
use CAM::PDF;

sub generate {
	my ($self) = @_;
	my $journey_id = $self->param('id');

	my $uid = $self->current_user->{id};

	if ( not($journey_id) ) {
		$self->render(
			'journey',
			error   => 'notfound',
			journey => {}
		);
		return;
	}

	my $journey = $self->get_journey(
		uid        => $uid,
		journey_id => $journey_id,
		verbose    => 1,
	);

	if ( not $journey ) {
		$self->render(
			'journey',
			error   => 'notfound',
			journey => {}
		);
		return;
	}

	my $pdf = CAM::PDF->new('public/static/pdf/fahrgastrechteformular.pdf');

	$pdf->fillFormFields( 'S1F4', $journey->{from_name} );
	$pdf->fillFormFields( 'S1F7', $journey->{to_name} );
	if ( not $journey->{cancelled} ) {
		$pdf->fillFormFields( 'S1F13', $journey->{type} );
		$pdf->fillFormFields( 'S1F14', $journey->{no} );
	}
	$pdf->fillFormFields( 'S1F17', $journey->{type} );
	$pdf->fillFormFields( 'S1F18', $journey->{no} );
	if ( $journey->{sched_departure}->epoch ) {
		$pdf->fillFormFields( 'S1F1',
			$journey->{sched_departure}->strftime('%d') );
		$pdf->fillFormFields( 'S1F2',
			$journey->{sched_departure}->strftime('%m') );
		$pdf->fillFormFields( 'S1F3',
			$journey->{sched_departure}->strftime('%y') );
		$pdf->fillFormFields( 'S1F5',
			$journey->{sched_departure}->strftime('%H') );
		$pdf->fillFormFields( 'S1F6',
			$journey->{sched_departure}->strftime('%M') );
		$pdf->fillFormFields( 'S1F19',
			$journey->{sched_departure}->strftime('%H') );
		$pdf->fillFormFields( 'S1F20',
			$journey->{sched_departure}->strftime('%M') );
	}
	if ( $journey->{sched_arrival}->epoch ) {
		$pdf->fillFormFields( 'S1F8',
			$journey->{sched_arrival}->strftime('%H') );
		$pdf->fillFormFields( 'S1F9',
			$journey->{sched_arrival}->strftime('%M') );
	}
	if ( $journey->{rt_arrival}->epoch and not $journey->{cancelled} ) {
		$pdf->fillFormFields( 'S1F10', $journey->{rt_arrival}->strftime('%d') );
		$pdf->fillFormFields( 'S1F11', $journey->{rt_arrival}->strftime('%m') );
		$pdf->fillFormFields( 'S1F12', $journey->{rt_arrival}->strftime('%y') );
		$pdf->fillFormFields( 'S1F15', $journey->{rt_arrival}->strftime('%H') );
		$pdf->fillFormFields( 'S1F16', $journey->{rt_arrival}->strftime('%M') );
	}

	$self->res->headers->content_type('application/pdf');
	$self->res->body( $pdf->toPDF() );
	$self->rendered(200);

}

1;
+109 KiB

File added.

No diff preview for this file type.

+13 −0
Original line number Diff line number Diff line
<h1>Changelog</h1>

<div class="row">
	<div class="col s12 m1 l1">
		1.9
	</div>
	<div class="col s12 m11 l11">
		<p>
			<i class="material-icons left">add</i> Generierung vorausgefüllter
			Fahrgastrechteformulare bei Zugausfällen und Verspätungen ab 60
			Minuten.
		</p>
	</div>
</div>

<div class="row">
	<div class="col s12 m1 l1">
		1.8
Loading