+ unless ($error) {
+ # copy details (copy_on_order filtering handled above)
+ foreach my $quotationpkgnum (keys %$details_map) {
+ next unless @{$details_map->{$quotationpkgnum}};
+ $error = $pkgnum_map->{$quotationpkgnum}->set_cust_pkg_detail(
+ 'I',
+ @{$details_map->{$quotationpkgnum}}
+ );
+ last if $error;
+ }
+ }
+
+ if ($$params{'onhold'}) {
+ foreach my $quotationpkgnum (keys %$pkgnum_map) {
+ last if $error;
+ $error = $pkgnum_map->{$quotationpkgnum}->suspend();
+ }
+ }
+
+ if ($error) {
+ $dbh->rollback if $oldAutoCommit;
+ return $error;
+ }
+
+ $dbh->commit or die $dbh->errstr if $oldAutoCommit;
+