- foreach my $did ( @dids ) {
- my $svc_phone = new FS::svc_phone({
- pkgnum => $pkgnum,
- svcpart => $svcpart,
- countrycode => 1,
- phonenum => $did->npa.$did->nxx.$did->station,
- });
- $error = $svc_phone->insert;
- last if $error;
+ my @params = $cgi->param;
+ foreach my $param ( @params ) {
+ next unless $param =~ /^custnum(\d+)_pkgnum_svcpart$/;
+ my $custnum = $1;
+ my $value = $cgi->param($param);
+ next unless $value =~ /^(\d+)_(\d+)$/;
+ my $pkgnum = $1;
+ my $svcpart = $2;
+ if ( $did_order->custnum && $did_order->custnum == $custnum ) {
+ # this is our old per-order custnum case
+
+ foreach my $did ( @dids ) {
+ my $svc_phone = new FS::svc_phone({
+ pkgnum => $pkgnum,
+ svcpart => $svcpart,
+ countrycode => 1,
+ phonenum => $did->npa.$did->nxx.$did->station,
+ });
+ $cgi->param('error',$svc_phone->insert);
+ last if $cgi->param('error');
+ }
+ }
+ # XXX: now what do we do for order items? Not clear how to match a DID in an order item