From: Ivan Kohler Date: Sat, 18 Jan 2014 23:03:38 +0000 (-0800) Subject: default currency pricing to 0 if base pricing is 0, better error message when you... X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=40ae74719fe9c1dd0e1993888dc19f0a93257103 default currency pricing to 0 if base pricing is 0, better error message when you leave it blank otherwise, RT#26600 --- diff --git a/FS/FS/part_pkg.pm b/FS/FS/part_pkg.pm index e7f08d2f2..26cdf705a 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;