/[Frey]/trunk/lib/App/RoomReservation/Confirmation.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/App/RoomReservation/Confirmation.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/lib/App/RoomReservation/Reservation/Confirmation.pm revision 1098 by dpavlin, Sun Jun 28 22:14:22 2009 UTC trunk/lib/App/RoomReservation/Confirmation.pm revision 1152 by dpavlin, Wed Jul 1 22:25:11 2009 UTC
# Line 1  Line 1 
1  package App::RoomReservation::Reservation::Confirmation;  package App::RoomReservation::Confirmation;
2  use Moose;  use Moose;
3    
4  extends 'App::RoomReservation';  extends 'App::RoomReservation';
5    
6    with 'App::RoomReservation::Email', 'App::RoomReservation::Messages';
7    
8  has token => (  has token => (
9          is => 'ro',          is => 'ro',
10          isa => 'Str',          isa => 'Str',
# Line 12  has token => ( Line 14  has token => (
14  sub verify_as_markup {  sub verify_as_markup {
15          my ($self) = @_;          my ($self) = @_;
16    
17          my $sth = $self->dbh->prepare(qq{          my $dbh = $self->dbh;
18                  update reservation set _confirmed = true  
19                  where md5(id||email) = ? and _confirmed is false          my $sth = $dbh->prepare(qq{
20                    update reservation
21                    set
22                            _confirmed = true,
23                            _seat_number = (
24                                    select
25                                            min(seat.nr)
26                                    from (select generate_series(1,600) as nr) as seat
27                                    full join reservation on reservation._seat_number = seat.nr
28                                    where id is null
29                                    group by seat.nr
30                                    order by seat.nr asc
31                                    limit 1
32                            )
33                    where
34                            md5(id||email) = ?
35                            and _confirmed is false
36          });          });
37    
38          $sth->execute( $self->token );          $sth->execute( $self->token );
39    
40            if ( $sth->rows == 0 ) {
41                    warn "can't confirm ", $self->token, " check if it's allready confirmed";
42                    $sth = $dbh->prepare(qq{
43                            select 1
44                            from reservation
45                            where
46                                    md5(id||email) = ?
47                                    and _confirmed is true
48                    });
49                    $sth->execute( $self->token );
50            }
51    
52          if ( $sth->rows == 1 ) {          if ( $sth->rows == 1 ) {
53                  qq|Your <em>reservation has been confirmed</em> and seat is waiting for you|;  
54                    die "can't find account associated with ", $self->token unless $sth->rows == 1;
55    
56                    return $self->seat_confirmation_message( token => $self->token );
57    
58          } else {          } else {
59                  qq|We have problem with your confirmation|                  die "Problem with confirmation.\n";
60          }          }
61  }  }
62    
63  sub cancel_as_markup {  sub cancel_as_markup {
64          my ($self) = @_;          my ($self) = @_;
65    
66          my $sth = $self->dbh->prepare(qq{          my $dbh = $self->dbh;
67                  update reservation set _confirmed = false  
68                  where md5(id||email) = ? and _confirmed is true          my $sth = $dbh->prepare(qq{
69                    update reservation
70                    set
71                            _confirmed = false,
72                            _seat_number = null
73                    where
74                            md5(id||email) = ?
75    --                      and _confirmed is true
76          });          });
77          $sth->execute( $self->token );          $sth->execute( $self->token );
78    
79          if ( $sth->rows == 1 ) {          if ( $sth->rows == 1 ) {
80                  qq|Your <em>reservation is canceled</em>, thanks for your effort to provide seat to somebody else|;                  qq|
81                            Your <em>reservation is canceled</em>, thanks for your effort to provide seat to somebody else
82                    |;
83          } else {          } else {
84                  qq|We have problem with cancelation|                  die "Problem with cancelation.\n";
85          }          }
86  }  }
87    
88    __PACKAGE__->meta->make_immutable;
89    no Moose;
90    
91  1;  1;

Legend:
Removed from v.1098  
changed lines
  Added in v.1152

  ViewVC Help
Powered by ViewVC 1.1.26