svc_external.title from inventory, RT#7010
authorivan <ivan>
Sat, 13 Feb 2010 02:53:43 +0000 (02:53 +0000)
committerivan <ivan>
Sat, 13 Feb 2010 02:53:43 +0000 (02:53 +0000)
FS/FS/svc_external.pm
httemplate/edit/elements/svc_Common.html
httemplate/edit/process/svc_external.html [new file with mode: 0644]
httemplate/edit/svc_Common.html
httemplate/edit/svc_external.cgi

index aca7c1b..338fdbc 100644 (file)
@@ -76,7 +76,7 @@ sub table_info {
                  },
       'title' => { label => 'Printed on invoice line items',
                    type  => 'text',
-                   disable_inventory => 1,
+                   #disable_inventory => 1,
                  },
     },
   };
index 31d4739..6173ba7 100644 (file)
@@ -62,6 +62,8 @@
                                       ? 'fixed'
                                       : 'hidden';
                      $f->{'value'} = $columndef->columnvalue;
+                   } elsif ( $flag eq 'A' ) {
+                     $f->{'type'} = 'hidden';
                    }
 
                    if ( $f->{'type'} eq 'select-svc_pbx' ) {
 sub label_fixup {
   my( $part_svc, $opt ) = @_;
 
+  my $svcdb = $part_svc->svcdb;
+  require "FS/$svcdb.pm";
+
+  if ( UNIVERSAL::can("FS::$svcdb", 'table_info') ) {
+    $opt->{'name'} ||= "FS::$svcdb"->table_info->{'name'};
+
+    my $fields = "FS::$svcdb"->table_info->{'fields'};
+    $opt->{'fields'} ||= [ grep { $_ ne 'svcnum' } keys %$fields ];
+
+    $opt->{labels} ||= {
+                         map { $_ => ( ref($fields->{$_})
+                                         ? $fields->{$_}{'label'}
+                                         : $fields->{$_}
+                                     );
+                             }
+                         keys %$fields
+                       };
+  }
+
   #false laziness w/view/svc_Common.html
   #override default labels with service-definition labels if applicable
   my $labels = $opt->{labels}; # with -> here
-  foreach my $field ( keys %$labels ) {
+  foreach my $field ( keys %{ $opt->{labels} } ) {
     my $col = $part_svc->part_svc_column($field);
     $labels->{$field} = $col->columnlabel if $col->columnlabel !~ /^\S*$/;
   }
diff --git a/httemplate/edit/process/svc_external.html b/httemplate/edit/process/svc_external.html
new file mode 100644 (file)
index 0000000..3515afc
--- /dev/null
@@ -0,0 +1,10 @@
+<% include( 'elements/svc_Common.html',
+               'table'    => 'svc_external',
+           )
+%>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
+
+</%init>
index 6666d97..9cf8861 100644 (file)
@@ -1,33 +1,6 @@
 <% include('elements/svc_Common.html',
              'table'        => $table,
             'post_url'     => popurl(1). "process/svc_Common.html",
-            %opt,
          )
 %>
-<%init>
-
-die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
-
-# false laziness w/view/svc_Common.html
-
-$cgi->param('svcdb') =~ /^(svc_\w+)$/ or die "unparsable svcdb";
-my $table = $1;
-require "FS/$table.pm";
-
-my %opt;
-if ( UNIVERSAL::can("FS::$table", 'table_info') ) {
-  $opt{'name'}   = "FS::$table"->table_info->{'name'};
-
-  my $fields = "FS::$table"->table_info->{'fields'};
-  my %labels = map { $_ => ( ref($fields->{$_})
-                               ? $fields->{$_}{'label'}
-                              : $fields->{$_}
-                          );
-                   }
-               keys %$fields;
-  $opt{'labels'} = \%labels;
-
-}
-
-</%init>
+%# i don't think this is actuallly used by anything??
index 0df842b..54aa11f 100644 (file)
@@ -1,102 +1 @@
-<% include('/elements/header.html', "External service $action") %>
-
-<% include('/elements/error.html') %>
-
-<FORM ACTION="<%$p1%>process/svc_external.cgi" METHOD=POST>
-
-<INPUT TYPE="hidden" NAME="svcnum" VALUE="<% $svcnum %>">
-Service #<B><% $svcnum ? $svcnum : "(NEW)" %></B>
-<BR><BR>
-
-<INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
-
-<INPUT TYPE="hidden" NAME="svcpart" VALUE="<% $svcpart %>">
-
-% my $id    = $svc_external->id;
-% my $title = $svc_external->title;
-%
-<% &ntable("#cccccc",2) %>
-  <TR>
-    <TD ALIGN="right">External ID</TD>
-    <TD><INPUT TYPE="text" NAME="id" VALUE="<% $id %>"></TD>
-  </TR>
-  <TR>
-    <TD ALIGN="right">Title</TD>
-    <TD><INPUT TYPE="text" NAME="title" VALUE="<% $title %>"></TD>
-  </TR>
-
-% foreach my $field ($svc_external->virtual_fields) {
-%   if ( $part_svc->part_svc_column($field)->columnflag ne 'F' ) {
-%     # If the flag is X, it won't even show up in $svc_acct->virtual_fields.
-      <% $svc_external->pvf($field)->widget( 'HTML',
-                                             'edit', 
-                                             $svc_external->getfield($field)
-                                           )
-      %>
-%   }
-% }
-
-</TABLE>
-<BR>
-
-<INPUT TYPE="submit" VALUE="Submit">
-</FORM>
-
-<% include('/elements/footer.html') %>
-
-<%init>
-
-die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
-
-my( $svcnum,  $pkgnum, $svcpart, $part_svc, $svc_external );
-if ( $cgi->param('error') ) {
-
-  $svc_external = new FS::svc_external ( {
-    map { $_, scalar($cgi->param($_)) } fields('svc_external')
-  } );
-  $svcnum = $svc_external->svcnum;
-  $pkgnum = $cgi->param('pkgnum');
-  $svcpart = $cgi->param('svcpart');
-  $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
-  die "No part_svc entry!" unless $part_svc;
-
-} elsif ( $cgi->param('pkgnum') && $cgi->param('svcpart') ) { #adding
-
-  $cgi->param('pkgnum') =~ /^(\d+)$/ or die 'unparsable pkgnum';
-  $pkgnum = $1;
-  $cgi->param('svcpart') =~ /^(\d+)$/ or die 'unparsable svcpart';
-  $svcpart = $1;
-
-  $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
-  die "No part_svc entry!" unless $part_svc;
-
-  $svc_external = new FS::svc_external { svcpart => $svcpart };
-
-  $svcnum='';
-
-  $svc_external->set_default_and_fixed;
-
-} else { #adding
-
-  my($query) = $cgi->keywords;
-  $query =~ /^(\d+)$/ or die "unparsable svcnum";
-  $svcnum=$1;
-  $svc_external=qsearchs('svc_external',{'svcnum'=>$svcnum})
-    or die "Unknown (svc_external) svcnum!";
-
-  my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum})
-    or die "Unknown (cust_svc) svcnum!";
-
-  $pkgnum=$cust_svc->pkgnum;
-  $svcpart=$cust_svc->svcpart;
-  
-  $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
-  die "No part_svc entry!" unless $part_svc;
-
-}
-my $action = $svc_external->svcnum ? 'Edit' : 'Add';
-
-my $p1 = popurl(1);
-
-</%init>
+<% include( 'elements/svc_Common.html', 'table'=>'svc_external' ) %>