X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fquotation_pkg.pm;h=9854c459404557e15e0bf62c70b6aa08385a8801;hp=1e5a0da5169b73a7b2284728a2819f6140aede65;hb=674cb2d9d7105f4cc2871539b2e9f7088cdaa750;hpb=9db332d80967969856c5b5fe8b6ac91304734b04 diff --git a/FS/FS/quotation_pkg.pm b/FS/FS/quotation_pkg.pm index 1e5a0da51..9854c4594 100644 --- a/FS/FS/quotation_pkg.pm +++ b/FS/FS/quotation_pkg.pm @@ -106,7 +106,11 @@ sub detail_table { 'quotation_pkg_detail'; } =item insert Adds this record to the database. If there is an error, returns the error, -otherwise returns false. +otherwise returns false. Accepts the following options: + +quotation_details - optional arrayref of detail strings to add (creates quotation_pkg_detail records) + +copy_on_order - value for this field when creating quotation_pkg_detail records (same for all details) =cut @@ -128,10 +132,22 @@ sub insert { if ( $error ) { $dbh->rollback if $oldAutoCommit; return $error; - } else { - $dbh->commit if $oldAutoCommit; - return ''; } + + if ($options{'quotation_details'}) { + $error = $self->set_details( + details => $options{'quotation_details'}, + copy_on_order => $options{'copy_on_order'} ? 'Y' : '', + ); + if ( $error ) { + $error .= ' (setting details)'; + $dbh->rollback if $oldAutoCommit; + return $error; + } + } + + $dbh->commit if $oldAutoCommit; + return ''; } =item delete @@ -311,6 +327,11 @@ sub setup { } +sub setup_show_zero { + my $self = shift; + return $self->part_pkg->setup_show_zero; +} + sub setup_tax { my $self = shift; sum(0, map { $_->setup_amount } $self->quotation_pkg_tax); @@ -326,6 +347,11 @@ sub recur { } +sub recur_show_zero { + my $self = shift; + return $self->part_pkg->recur_show_zero; +} + sub recur_tax { my $self = shift; sum(0, map { $_->recur_amount } $self->quotation_pkg_tax);