line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Business::Payment::Types; |
2
|
5
|
|
|
5
|
|
2293
|
use MooseX::Types; |
|
5
|
|
|
|
|
149483
|
|
|
5
|
|
|
|
|
17
|
|
3
|
|
|
|
|
|
|
|
4
|
5
|
|
|
5
|
|
12148
|
use MooseX::Types::Moose qw/Num Str/; |
|
5
|
|
|
|
|
49080
|
|
|
5
|
|
|
|
|
38
|
|
5
|
|
|
|
|
|
|
|
6
|
5
|
|
|
5
|
|
18944
|
use Math::Currency; |
|
5
|
|
|
|
|
313997
|
|
|
5
|
|
|
|
|
217
|
|
7
|
5
|
|
|
5
|
|
3525
|
use DateTime; |
|
5
|
|
|
|
|
1537679
|
|
|
5
|
|
|
|
|
1154
|
|
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
class_type 'DateTime'; |
10
|
|
|
|
|
|
|
class_type 'Math::Currency'; |
11
|
|
|
|
|
|
|
|
12
|
|
|
|
|
|
|
coerce 'Math::Currency', |
13
|
|
|
|
|
|
|
from Num, |
14
|
|
|
|
|
|
|
via { Math::Currency->new(@_) }; |
15
|
|
|
|
|
|
|
|
16
|
|
|
|
|
|
|
coerce 'DateTime', |
17
|
|
|
|
|
|
|
from Str, |
18
|
|
|
|
|
|
|
via { |
19
|
|
|
|
|
|
|
my ($date) = @_; |
20
|
|
|
|
|
|
|
my ($m, $y); # Predeclare M and Y that we will use for DT |
21
|
|
|
|
|
|
|
# Catch things in the form of MM/YY |
22
|
|
|
|
|
|
|
if($date =~ /^(\d+)\/(\d+)$/) { |
23
|
|
|
|
|
|
|
($m, $y) = ($1,$2); |
24
|
|
|
|
|
|
|
} else { |
25
|
|
|
|
|
|
|
die "Expiration date must be in the form of MM/YY or MM/YYYY (not $date)"; |
26
|
|
|
|
|
|
|
} |
27
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
# Build a 4 digit year by prepending the first two digits of the |
29
|
|
|
|
|
|
|
# current year. |
30
|
|
|
|
|
|
|
if(length($y) == 2) { |
31
|
|
|
|
|
|
|
my $now = DateTime->now; |
32
|
|
|
|
|
|
|
$y = substr($now->year, 0, 2).$y; |
33
|
|
|
|
|
|
|
} |
34
|
|
|
|
|
|
|
|
35
|
|
|
|
|
|
|
DateTime->new(month => $m, year => $y); |
36
|
|
|
|
|
|
|
}; |
37
|
|
|
|
|
|
|
|
38
|
|
|
|
|
|
|
1; |