<% include( 'elements/svc_Common.html',
- 'table' => 'svc_dsl',
- 'fields' => \@fields,
- 'svc_new_callback' => $new_cb,
- 'svc_edit_callback' => $edit_cb,
- 'html_foot' => $html_foot,
- )
+ 'table' => 'svc_dsl',
+ 'fields' => \@fields,
+ 'svc_new_callback' => $new_cb,
+ 'svc_edit_callback' => $edit_cb,
+ 'svc_error_callback' => $error_cb,
+ 'html_foot' => $html_foot,
+ )
%>
<%init>
my @fields = ();
-my $html_foot = sub {
- return "
+my $html_foot = sub { "
<SCRIPT TYPE=\"text/javascript\">
function ikano_loop_type_changed() {
- var loop_type = document.getElementById('loop_type').value;
- var phonenum = document.getElementById('phonenum');
- if(loop_type == '0') {
- phonenum.value = '';
- phonenum.disabled = true;
- }
- else phonenum.disabled = false;
+ var loop_type = document.getElementById('loop_type').value;
+ var phonenum = document.getElementById('phonenum');
+ var gateway_access_number = document.getElementById('gateway_access_number');
+ if(loop_type == '0') {
+ phonenum.value = '';
+ phonenum.disabled = true;
+ gateway_access_number.value = '';
+ gateway_access_number.disabled = true;
+ } else {
+ phonenum.disabled = false;
+ gateway_access_number.disabled = false;
+ }
}
-</SCRIPT>";
-};
+</SCRIPT>
+"; };
my $edit_cb = sub {
my( $cgi,$svc_x, $part_svc,$cust_pkg, $fields1,$opt) = @_;
my @exports = $part_svc->part_export_dsl_pull;
die "more than one DSL-pulling export attached to svcpart ".$part_svc->svcpart
- if ( scalar(@exports) > 1 );
+ if ( scalar(@exports) > 1 );
if ( scalar(@exports) == 1 ) {
- my $export = @exports[0];
- if($export->exporttype eq 'ikano') {
- @fields = ( 'password', 'monitored', );
-
- foreach my $hf ( keys %$ti_fields ) {
- push @fields, {
- field => $hf,
- type => 'hidden',
- value => $svc_x->$hf,
- } unless ( $hf eq 'password' || $hf eq 'monitored' );
- }
- }
- # else add any other export-specific stuff here
+ my $export = @exports[0];
+ if($export->exporttype eq 'ikano' && $export->import_mode) {
+ @fields = ();
+ }
+ elsif($export->exporttype eq 'ikano') {
+ @fields = ( 'password', 'monitored', );
+
+ if ( $svc_x->vendor_qual_id ) {
+ push @fields, { field => 'vendor_qual_id',
+ type => 'hidden',
+ value => $svc_x->vendor_qual_id,
+ };
+ } else {
+ push @fields, 'vendor_qual_id';
+ }
+
+ foreach my $hf (
+ grep { $_ !~ /^(password|monitored|vendor_qual_id)$/ }
+ keys %$ti_fields
+ ) {
+ push @fields, {
+ field => $hf,
+ type => 'hidden',
+ value => $svc_x->$hf,
+ };
+ }
+ }
+ # else add any other export-specific stuff here
}
else {
- push @fields, qw( first last company phonenum circuitnum rate_band vpi vci );
+ push @fields, qw( first last company phonenum gateway_access_number circuitnum rate_band vpi vci );
}
};
my $new_cb = sub {
my( $cgi,$svc_x, $part_svc,$cust_pkg, $fields1,$opt) = @_;
my @exports = $part_svc->part_export_dsl_pull;
- die "more than one DSL-pulling export attached to svcpart ".$part_svc->svcpart
- if ( scalar(@exports) > 1 );
-
- my $cust_main = $cust_pkg->cust_main;
- my $defsvctn = $cust_main->ship_daytime ? $cust_main->ship_daytime
- : $cust_main->daytime;
- $defsvctn =~ s/[^0-9]//g;
-
- @fields = (
- { field => 'first',
- value => $cust_main->ship_first ? $cust_main->ship_first
- : $cust_main->first,
- },
- { field => 'last',
- value => $cust_main->ship_last ? $cust_main->ship_last
- : $cust_main->last,
- },
- { field => 'company',
- value => $cust_pkg->cust_main->ship_company,
- value => $cust_main->ship_company ? $cust_main->ship_company
- : $cust_main->company,
- },
- { field => 'phonenum',
- value => $defsvctn,
- },
- );
+ die "more than one DSL-pulling export for svcpart ".$part_svc->svcpart
+ if ( scalar(@exports) > 1 );
+
+ if ( scalar(@exports) == 1 ) {
+ my $export = @exports[0];
+ if($export->exporttype eq 'ikano' && $export->import_mode) {
+ @fields = ( 'vendor_order_id' );
+ return;
+ }
+ }
+
+ my $cust_main = $cust_pkg->cust_main;
+
+ @fields = (
+ { field => 'first',
+ value => $cust_main->ship_first ? $cust_main->ship_first
+ : $cust_main->first,
+ },
+ { field => 'last',
+ value => $cust_main->ship_last ? $cust_main->ship_last
+ : $cust_main->last,
+ },
+ { field => 'company',
+ value => $cust_pkg->cust_main->ship_company,
+ value => $cust_main->ship_company ? $cust_main->ship_company
+ : $cust_main->company,
+ },
+ );
+
+ my $vendor_qual_id = '';
+ my $qual = '';
+ if ( $cgi->param('qualnum') ) {
+
+ $qual =
+ qsearchs('qual', { 'qualnum' => scalar($cgi->param('qualnum')) } )
+ or die 'unknown qualnum';
+
+ $vendor_qual_id = $qual->vendor_qual_id;
+
+ push @fields, { 'field' => 'qualnum',
+ 'type' => 'hidden',
+ 'value' => $qual->qualnum,
+ },
+ { 'field' => 'phonenum',
+ 'type' => 'fixed',
+ 'value' => $qual->phonenum,
+ };
+
+ } else {
+
+ my $phonenum = $cust_main->ship_daytime ? $cust_main->ship_daytime
+ : $cust_main->daytime;
+ $phonenum =~ s/[^0-9]//g;
+
+ push @fields,
+ { field => 'phonenum',
+ value => $phonenum,
+ };
+ { field => 'gateway_access_number',
+ value => '',
+ };
+
+
+ }
if ( scalar(@exports) == 1 ) {
- my $export = @exports[0];
- if($export->exporttype eq 'ikano') {
- my $ddd = $cust_pkg->start_date;
- $ddd = time unless $ddd;
-
- my @addl_fields = (
- { field => 'loop_type',
- type => 'select',
- options => [ '', '0' ],
- labels => { '' => 'Line-share', '0', => 'Standalone' },
- onchange => 'ikano_loop_type_changed',
- },
- 'password',
- { field => 'isp_chg', type => 'checkbox', },
- 'isp_prev',
- 'vendor_qual_id',
- { field => 'vendor_order_type',
- type => 'hidden',
- value => 'NEW' },
- { field => 'desired_due_date',
- type => 'fixed',
- formatted_value =>
- time2str($date_format,$ddd),
- value => $ddd,
- },
- );
- push @fields, @addl_fields;
- }
- # else add any other export-specific stuff here
+ my $export = @exports[0];
+ if($export->exporttype eq 'ikano') {
+ my $ddd = $cust_pkg->start_date;
+ $ddd = time unless $ddd;
+
+ my @quals = $export->quals_by_cust_and_pkg($cust_pkg->cust_main->custnum,$cust_pkg->pkgpart);
+ my @prequalids;
+ my %prequal_labels;
+ foreach my $qual ( @quals ) {
+ my $prequalid = $qual->vendor_qual_id;
+ push @prequalids, $prequalid;
+ $prequal_labels{$prequalid} = "$prequalid - qualification #"
+ .$qual->qualnum;
+ }
+
+ if ( $vendor_qual_id ) {
+ splice @fields, -1, 0,
+ { field => 'loop_type',
+ type => 'fixed',
+ value => ( $qual->phonenum ? '' : '0' ),
+ formatted_value => ( $qual->phonenum ? 'Line-share'
+ : 'Standalone' ),
+ };
+ } else {
+ splice @fields, -1, 0,
+ { field => 'loop_type',
+ type => 'select',
+ options => [ '', '0' ],
+ labels => { '' => 'Line-share', '0', => 'Standalone' },
+ onchange => 'ikano_loop_type_changed',
+ };
+ }
+
+ push @fields,
+ 'password',
+ { field => 'isp_chg', type => 'checkbox', value=>'Y', },
+ 'isp_prev',
+ ;
+
+ if ( $vendor_qual_id ) {
+ push @fields,
+ { field => 'vendor_qual_id',
+ type => 'fixed',
+ value => $vendor_qual_id,
+ };
+ } else {
+ push @fields,
+ { field => 'vendor_qual_id',
+ type => 'select',
+ options => \@prequalids,
+ labels => \%prequal_labels,
+ onchange => 'ikano_vendor_qual_id_changed',
+ };
+ }
+
+ push @fields,
+ { field => 'vendor_order_type',
+ type => 'hidden',
+ value => 'NEW' },
+ { field => 'desired_due_date',
+ type => 'fixed',
+ formatted_value =>
+ time2str($date_format,$ddd),
+ value => $ddd,
+ },
+ ;
+ }
+ # else add any other export-specific stuff here
+
+ } else { # display non-export and non-Ikano fields
+ push @fields, qw( rate_band circuitnum vpi vci );
}
- else { # display non-export and non-Ikano fields
- push @fields, qw( rate_band circuitnum vpi vci );
+};
+
+my $error_cb = sub {
+ my( $cgi ) = @_;
+ #my( $cgi,$svc_x, $part_svc,$cust_pkg, $fields,$opt) = @_;
+ if ( $cgi->param('svcnum') ) {
+ &{ $edit_cb }( @_ );
+ } else {
+ &{ $new_cb }( @_ );
}
};
+
</%init>