diff options
| author | Ivan Kohler <ivan@freeside.biz> | 2016-03-11 15:38:06 -0800 |
|---|---|---|
| committer | Ivan Kohler <ivan@freeside.biz> | 2016-03-11 15:38:06 -0800 |
| commit | ae817d8bbd220b645f41cb2d020ba8b6b739765b (patch) | |
| tree | 23aa6118c6d69bbd9fd34d479aeacb4e065d645a /httemplate/edit/process/quick-cust_pkg.cgi | |
| parent | 2372bdb860f7cb926b61a69a75c38997819b4923 (diff) | |
| parent | 9972d7caa7a3e1a29dc4201e0c7256ba093ea705 (diff) | |
Merge branch 'master' of git.freeside.biz:/home/git/freeside
Diffstat (limited to 'httemplate/edit/process/quick-cust_pkg.cgi')
| -rw-r--r-- | httemplate/edit/process/quick-cust_pkg.cgi | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/httemplate/edit/process/quick-cust_pkg.cgi b/httemplate/edit/process/quick-cust_pkg.cgi index 60352154a..5afddde15 100644 --- a/httemplate/edit/process/quick-cust_pkg.cgi +++ b/httemplate/edit/process/quick-cust_pkg.cgi @@ -159,14 +159,38 @@ foreach my $quantity_param ( grep { $cgi->param($_) && $cgi->param($_) > 0 } } $hash{cust_pkg_usageprice} = \@cust_pkg_usageprice; +# extract details (false laziness with /misc/order_pkg.html) +my $details = { + 'invoice_detail' => [], + 'package_comment' => [], + 'quotation_detail' => [], +}; +foreach my $field ( $cgi->param ) { + foreach my $detailtype ( keys %$details ) { + if ($field =~ /^$detailtype(\d+)$/) { + $details->{$detailtype}->[$1] = $cgi->param($field); + } + } +} +foreach my $detailtype ( keys %$details ) { + @{ $details->{$detailtype} } = grep { length($_) } @{ $details->{$detailtype} }; +} + if ( $quotationnum ) { $quotation_pkg = new FS::quotation_pkg \%hash; $quotation_pkg->quotationnum($quotationnum); $quotation_pkg->prospectnum($prospect_main->prospectnum) if $prospect_main; + my %opt = @{ $details->{'quotation_detail'} } + ? ( + quotation_details => $details->{'quotation_detail'}, + copy_on_order => scalar($cgi->param('copy_on_order')) ? 'Y' : '', + ) + : (); + #XXX handle new location - $error = $quotation_pkg->insert; + $error = $quotation_pkg->insert(%opt); } else { @@ -194,6 +218,9 @@ if ( $quotationnum ) { $opt{'locationnum'} = $locationnum; } + $opt{'invoice_details'} = $details->{'invoice_detail'} if @{ $details->{'invoice_detail'} }; + $opt{'package_comments'} = $details->{'package_comment'} if @{ $details->{'package_comment'} }; + $error = $cust_main->order_pkg( \%opt ); } |
