* Add enclair_db option to UserDB.pm. Allows logging of enclair password
[interchange.git] / code / UserTag / save_cart.tag
1 # Copyright 2002-2007 Interchange Development Group and others
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.  See the LICENSE file for details.
7
8 # $Id: save_cart.tag,v 1.7 2007-12-16 10:15:09 kwalsh Exp $
9
10 UserTag save_cart Order     nickname recurring keep
11 UserTag save_cart AttrAlias name nickname
12 UserTag save_cart Version   $Revision: 1.7 $
13 UserTag save_cart Routine   <<EOR
14 sub {
15         my($nickname,$recurring,$keep) = @_;
16
17         my $add = 0;
18         my %names = ();
19
20         $nickname =~ s/://g;
21         $recurring = ($recurring?"r":"c");
22
23         foreach(split("\n",$Tag->value('carts'))) {
24                 my($n,$t,$r) = split(':',$_);
25                 $names{$n} = $r;
26                 if($r eq $recurring) {
27                         if($n eq $nickname) {
28                                 #$Tag->userdb({function => 'delete_cart', nickname => $_});
29                                 $add = 1;
30                         }
31                 }
32         }
33         if($add) {
34                 while($names{"$nickname,$add"} eq $recurring) {
35                         $add++;
36                 }
37                 $nickname .= ",$add";
38         }
39
40         my $nn = join(':',$nickname,time(),$recurring);
41
42         unless ($Tag->userdb({function => 'set_cart', nickname => $nn})) {
43                 return '';
44         }
45
46         $Carts->{main} = [] unless is_yes($keep);
47
48         return '';
49 }
50 EOR