summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/cust_main/Packages.pm24
-rw-r--r--FS/FS/quotation_pkg.pm24
2 files changed, 44 insertions, 4 deletions
diff --git a/FS/FS/cust_main/Packages.pm b/FS/FS/cust_main/Packages.pm
index 5a14e2e86..1c921d604 100644
--- a/FS/FS/cust_main/Packages.pm
+++ b/FS/FS/cust_main/Packages.pm
@@ -74,6 +74,14 @@ Optional subject for a ticket created and attached to this customer
Optional queue name for ticket additions
+=item invoice_details
+
+Optional arrayref of invoice detail strings to add (creates cust_pkg_detail detailtype 'I')
+
+=item package_comments
+
+Optional arrayref of package comment strings to add (creates cust_pkg_detail detailtype 'C')
+
=back
=cut
@@ -208,6 +216,22 @@ sub order_pkg {
}
}
+ # add details/comments
+ if ($opt->{'invoice_details'}) {
+ $error = $cust_pkg->set_cust_pkg_detail('I', @{$opt->{'invoice_details'}});
+ }
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return "setting invoice details: $error";
+ }
+ if ($opt->{'package_comments'}) {
+ $error = $cust_pkg->set_cust_pkg_detail('C', @{$opt->{'package_comments'}});
+ }
+ if ( $error ) {
+ $dbh->rollback if $oldAutoCommit;
+ return "setting package comments: $error";
+ }
+
$dbh->commit or die $dbh->errstr if $oldAutoCommit;
''; #no error
diff --git a/FS/FS/quotation_pkg.pm b/FS/FS/quotation_pkg.pm
index 1e5a0da51..b9b37991a 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