Revert "Embed Safe 2.07 into Vend::Safe to avoid various problems with recent version...
[interchange.git] / code / UserTag / summary.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: summary.tag,v 1.5 2007-03-30 23:40:57 pajamian Exp $
9
10 # [summary  amount=n.nn
11 #           name=label*
12 #           hide=1*
13 #           total=1*
14 #           reset=1*
15 #           format="%.2f"*
16 #           currency=1* ]
17 #
18 # Calculates column totals (if used properly. 8-\)
19
20 #
21 UserTag summary Order     amount
22 UserTag summary PosNumber 1
23 UserTag summary addAttr
24 UserTag summary Version   $Revision: 1.5 $
25 UserTag summary Routine   <<EOF
26 sub {
27     my ($amount, $opt) = @_;
28         my $summary_hash = $::Instance->{tag_summary_hash} ||= {};
29         my $name;
30         unless ($name = $opt->{name} ) {
31                 $name = 'ONLY0000';
32                 %$summary_hash = () if Vend::Util::is_yes($opt->{reset});
33         }
34         else {
35                 $summary_hash->{$name} = 0 if Vend::Util::is_yes($opt->{reset});
36         }
37         $summary_hash->{$name} += $amount if length $amount;
38         $amount = $summary_hash->{$name} if Vend::Util::is_yes($opt->{total});
39         return '' if $opt->{hide};
40         return sprintf($opt->{format}, $amount) if $opt->{format};
41     return Vend::Util::currency($amount) if $opt->{currency};
42     return $amount;
43 }
44 EOF