use FS::svc_acct;
use FS::svc_external;
use FS::svc_phone;
+use FS::svc_hardware;
use FS::part_referral;
$DEBUG = 0;
push @fields, map "svc_phone.$_", qw( countrycode phonenum sip_password pin)
if $format eq 'svc_external_svc_phone';
$payby = 'BILL';
+ } elsif ( $format eq 'birthdates-acct_phone_hardware') {
+ @fields = qw( agent_custid refnum
+ last first company address1 address2 city state zip country
+ daytime night
+ ship_last ship_first ship_company ship_address1 ship_address2
+ ship_city ship_state ship_zip ship_country
+ birthdate spouse_birthdate
+ payinfo paycvv paydate
+ invoicing_list
+ cust_pkg.pkgpart cust_pkg.bill
+ svc_acct.username svc_acct._password
+ );
+ push @fields, map "svc_phone.$_", qw(countrycode phonenum sip_password pin);
+ push @fields, map "svc_hardware.$_", qw(typenum ip_addr hw_addr serial);
+warn Dumper(@fields);
+ $payby = 'BILL';
} else {
die "unknown format $format";
}
} elsif ( $field =~ /^svc_phone\.(countrycode|phonenum|sip_password|pin)$/ ) {
$svc_x{$1} = shift @columns;
-
+
+ } elsif ( $field =~ /^svc_hardware\.(typenum|ip_addr|hw_addr|serial)$/ ) {
+
+ $svc_x{$1} = shift @columns;
+
} else {
#refnum interception
}
}
+ $cust_main{$_} = parse_datetime($cust_main{$_})
+ foreach grep $cust_main{$_}, qw( birthdate spouse_birthdate );
+
my $invoicing_list = $cust_main{'invoicing_list'}
? [ delete $cust_main{'invoicing_list'} ]
: [];
if ( $svc_x{'countrycode'} || $svc_x{'phonenum'} ) {
$svc_phone = FS::svc_phone->new( {
map { $_ => delete($svc_x{$_}) }
- qw( countrycode phonenum sip_password pin)
+ qw( countrycode phonenum sip_password pin )
} );
}
- if ( $svcdb || $svc_phone ) {
+ my $svc_hardware = '';
+ if ( $svc_x{'typenum'} ) {
+ $svc_hardware = FS::svc_hardware->new( {
+ map { $_ => delete($svc_x{$_}) }
+ qw( typenum ip_addr hw_addr serial )
+ } );
+ }
+
+ if ( $svcdb || $svc_phone || $svc_hardware ) {
my $part_pkg = $cust_pkg->part_pkg;
unless ( $part_pkg ) {
$dbh->rollback if $oldAutoCommit;
$svc_phone->svcpart( $part_pkg->svcpart_unique_svcdb('svc_phone') );
push @svc_x, $svc_phone;
}
+ if ( $svc_hardware ) {
+ $svc_hardware->svcpart( $part_pkg->svcpart_unique_svcdb('svc_hardware') );
+ push @svc_x, $svc_hardware;
+ }
+
}
+warn Dumper(@svc_x);
+
$hash{$cust_pkg} = \@svc_x;
}
<OPTION VALUE="extended-plus_company_and_options">Extended plus company and options
<OPTION VALUE="svc_external">External service
<OPTION VALUE="svc_external_svc_phone">External service and phone service
+ <OPTION VALUE="birthdates-acct_phone_hardware">Birthdates and account, phone and hardware services
</SELECT>
</TD>
</TR>
<b>External service and phone service</b> format has the following field order: <i>agent_custid, refnum<%$req%>, last<%$req%>, first<%$req%>, company, address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country, daytime, night, ship_last, ship_first, ship_company, ship_address1, ship_address2, ship_city, ship_state, ship_zip, ship_country, payinfo, paycvv, paydate, invoicing_list, pkgpart, next_bill_date, id, title, countrycode, phonenum, sip_password, pin</i>
<BR><BR>
+<b>Birthdates and account, phone and hardware services</b> format has the following field order: <i>agent_custid, refnum<%$req%>, last<%$req%>, first<%$req%>, company, address1<%$req%>, address2, city<%$req%>, state<%$req%>, zip<%$req%>, country, daytime, night, ship_last, ship_first, ship_company, ship_address1, ship_address2, ship_city, ship_state, ship_zip, ship_country, birthdate, spouse_birthdate, payinfo, paycvv, paydate, invoicing_list, pkgpart, next_bill_date, username, _password, countrycode, phonenum, sip_password, pin, typenum, ip_addr, hw_addr, serial</i>
+<BR><BR>
+
<%$req%> Required fields
<BR><BR>