diff options
| author | Daniel Friesel <derf@finalrewind.org> | 2019-09-12 18:07:21 +0200 | 
|---|---|---|
| committer | Daniel Friesel <derf@finalrewind.org> | 2019-09-12 18:07:21 +0200 | 
| commit | 0822cfc993ff44605210b6b771cd4558c1a65aef (patch) | |
| tree | f17b3ae7aceddb59ecb913c35c78ef1e9d2f03c5 /lib | |
| parent | 8c160f68540d4450db97c2dd6dcda05a67189d9f (diff) | |
add auto-generated passenger rights forms1.9.0
Diffstat (limited to 'lib')
| -rwxr-xr-x | lib/Travelynx.pm | 2 | ||||
| -rw-r--r-- | lib/Travelynx/Controller/Passengerrights.pm | 83 | 
2 files changed, 85 insertions, 0 deletions
| diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index b1febce..94a7c49 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -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'); diff --git a/lib/Travelynx/Controller/Passengerrights.pm b/lib/Travelynx/Controller/Passengerrights.pm new file mode 100644 index 0000000..aab8d76 --- /dev/null +++ b/lib/Travelynx/Controller/Passengerrights.pm @@ -0,0 +1,83 @@ +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; | 
