package GroLUG::C::Iscritto; use strict; use warnings; use base 'Catalyst::Controller'; use DateTime; sub iscritti :Global { my ( $self, $c ) = @_; $c->stash->{iscritti}=GroLUG::M::DB->resultset('Iscritto')->search({attivo=>1}); $c->stash->{template}='lista-iscritti.tt2'; } sub scheda :Local { my ($self,$c,$id)=@_; $c->log->info($c->user->id,"scheda iscritto $id"); $c->stash->{iscritto}=GroLUG::M::DB->resultset('Iscritto')->find($id); $c->stash->{template}='scheda-iscritto.tt2'; } sub rinnova :Local { my ($self,$c,$id)=@_; $c->log->info($c->user->id,"rinnovo iscritto $id"); $c->stash->{iscritto}=my $iscritto=GroLUG::M::DB->resultset('Iscritto')->find($id); my $last_pag=$iscritto->pagamenti()->next(); $c->stash->{pagamento}={ data_pagamento => DateTime->now(), data_iscrizione => $last_pag->data_scadenza->clone()->add(days => 1), data_scadenza => $last_pag->data_scadenza->clone()->add($c->config->{iscrizione}->{durata}), prezzo => $c->config->{iscrizione}->{prezzo}, }; $c->stash->{template}='nuovo-pagamento.tt2'; } sub pagamento :Local { my ($self,$c)=@_; my $params=$c->req->parameters; my $iscritto=GroLUG::M::DB->resultset('Iscritto')->find($params->{iscr_id}); $c->log->info($c->user->id,'pagamento iscritto '.($iscritto->id)); my $pagid= (($params->{pag_id} ne '') ? $params->{pag_id} : -1); my $pagamento=GroLUG::M::DB->resultset('Pagamento')->update_or_create( { id => $pagid, iscritto => $iscritto->id, data_pagamento => $params->{data_pagamento}, data_iscrizione => $params->{data_iscrizione}, data_scadenza => $params->{data_scadenza}, prezzo => $params->{prezzo}, }, ); $c->res->redirect($c->uri_for('scheda',$iscritto->id())); } 1;