+<% include( 'elements/svc_Common.html',
+ 'table' => 'svc_dsl',
+ 'fields' => \@fields,
+ 'svc_new_callback' => $new_cb,
+ 'svc_edit_callback' => $edit_cb,
+ )
+%>
+<%init>
+
+die "access denied"
+ unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
+
+my $conf = new FS::Conf;
+my $date_format = $conf->config('date_format') || '%m/%d/%Y';
+
+my $ti_fields = FS::svc_dsl->table_info->{'fields'};
+
+my @fields = ();
+my @uneditable = qw( pushed vendor_qual_id isp_chg isp_prev staticips last_pull notes );
+
+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 ) {
+ 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 {
+ # XXX
+ }
+ }
+ else {
+ # XXX
+ }
+};
+
+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 );
+
+ 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 => 'svctn',
+ value => $defsvctn,
+ },
+ );
+
+ my $loop_type = { field => 'loop_type' };
+
+ my $export = @exports[0];
+ if($export->exporttype eq 'ikano') {
+ $cgi->param('vendor_qual_id') =~ /^(\d+)$/
+ or die 'unparsable vendor_qual_id';
+ my $vendor_qual_id = $1;
+
+ die "no start date set on customer package" if !$cust_pkg->start_date;
+
+ $loop_type = { field => 'loop_type',
+ type => 'select',
+ options => [ '', '0' ],
+ labels => { '' => 'Line-share', '0', => 'Standalone' },
+ # onchange => "document.getElementById('svctn').value = ''",
+ };
+ push @fields, { field => 'isp_chg', type => 'checkbox', };
+ push @fields, 'isp_prev';
+ push @fields, { field => 'vendor_qual_id',
+ type => 'fixed',
+ value => $vendor_qual_id,
+ };
+ }
+ else {
+ push @fields, 'username';
+ }
+
+ push @fields, 'password';
+
+ push @fields, $loop_type;
+
+ push @fields, { field => 'vendor_order_type',
+ type => 'hidden',
+ value => 'N' };
+ push @fields, { field => 'desired_dd',
+ type => 'fixed',
+ formatted_value =>
+ time2str($date_format,$cust_pkg->start_date),
+ value => $cust_pkg->start_date,
+ };
+ }
+ else {
+ # XXX
+ }
+};
+</%init>