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;