summaryrefslogtreecommitdiff
path: root/GroLUG/lib/GroLUG/C/Iscritto.pm
blob: e708c36f7bbd1dc9753b37358d8aa79747da25fc (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
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_idne '') ? $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;