summaryrefslogtreecommitdiff
path: root/FS/FS/part_pkg.pm
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2014-01-18 15:03:38 -0800
committerIvan Kohler <ivan@freeside.biz>2014-01-18 15:03:38 -0800
commit40ae74719fe9c1dd0e1993888dc19f0a93257103 (patch)
tree635e08cd5799db9ff0d11cc80f5abfa68f83ebf1 /FS/FS/part_pkg.pm
parent965d64dbe634d499face4cea77c8b73188282a46 (diff)
default currency pricing to 0 if base pricing is 0, better error message when you leave it blank otherwise, RT#26600
Diffstat (limited to 'FS/FS/part_pkg.pm')
-rw-r--r--FS/FS/part_pkg.pm14
1 files changed, 12 insertions, 2 deletions
diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm
index e7f08d2..26cdf70 100644
--- a/FS/FS/part_pkg.pm
+++ b/FS/FS/part_pkg.pm
@@ -259,10 +259,20 @@ sub insert {
my %part_pkg_currency = %{ $options{'part_pkg_currency'} || {} };
foreach my $key ( keys %part_pkg_currency ) {
$key =~ /^(.+)_([A-Z]{3})$/ or next;
+ my( $optionname, $currency ) = ( $1, $2 );
+ if ( $part_pkg_currency{$key} =~ /^\s*$/ ) {
+ if ( $self->option($optionname) == 0 ) {
+ $part_pkg_currency{$key} = '0';
+ } else {
+ $dbh->rollback if $oldAutoCommit;
+ ( my $thing = $optionname ) =~ s/_/ /g;
+ return ucfirst($thing). " $currency is required";
+ }
+ }
my $part_pkg_currency = new FS::part_pkg_currency {
'pkgpart' => $self->pkgpart,
- 'optionname' => $1,
- 'currency' => $2,
+ 'optionname' => $optionname,
+ 'currency' => $currency,
'optionvalue' => $part_pkg_currency{$key},
};
my $error = $part_pkg_currency->insert;