torrus, RT#10574
authorivan <ivan>
Mon, 24 Jan 2011 02:56:02 +0000 (02:56 +0000)
committerivan <ivan>
Mon, 24 Jan 2011 02:56:02 +0000 (02:56 +0000)
FS/FS/Mason.pm
httemplate/edit/svc_port.cgi [new file with mode: 0644]
httemplate/elements/select-torrus_serviceid.html [new file with mode: 0644]

index 2d45e78..8fb4358 100644 (file)
@@ -264,6 +264,7 @@ if ( -e $addl_handler_use_file ) {
   use FS::dsl_note;
   use FS::part_pkg_vendor;
   use FS::cust_note_class;
+  use FS::svc_port;
   # Sammath Naur
 
   if ( $FS::Mason::addl_handler_use ) {
diff --git a/httemplate/edit/svc_port.cgi b/httemplate/edit/svc_port.cgi
new file mode 100644 (file)
index 0000000..e17b380
--- /dev/null
@@ -0,0 +1,25 @@
+<% include('elements/svc_Common.html',
+             'name'   => 'Port',
+             'table'  => 'svc_port',
+             'fields' => \@fields,
+             'labels' => \%labels,
+             'post_url' => popurl(1). "process/svc_Common.html", #?
+          )
+%>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
+
+my @fields = (
+  { 'field' => 'serviceid',
+    'type'  => 'select-torrus_serviceid',
+    #'label' => 'Torrus serviceid',
+  },
+);
+
+my %labels = ( 'svcnum'    => 'Service',
+               'serviceid' => 'Torrus serviceid', );
+
+</%init>
+
diff --git a/httemplate/elements/select-torrus_serviceid.html b/httemplate/elements/select-torrus_serviceid.html
new file mode 100644 (file)
index 0000000..a8cfca8
--- /dev/null
@@ -0,0 +1,28 @@
+<SELECT NAME="<% $opt{'field'} || 'serviceid' %>">
+
+% unless ( $opt{'multiple'} || $opt{'disable_empty'} ) {
+  <OPTION VALUE="">Select serviceid</OPTION>
+% }
+
+% foreach my $serviceid ( keys %serviceid ) {
+    <OPTION VALUE="<%$serviceid%>"><% $serviceid %></OPTION>
+% } 
+
+</SELECT>
+
+<%init>
+
+my %opt = @_;
+
+#is this going to get too slow or will the index make it okay?
+my $sth = dbh->prepare("SELECT DISTINCT(serviceid) FROM srvexport")
+  or die dbh->errstr;
+$sth->execute or die $sth->errstr;
+my %serviceid = ();
+while ( my $row = $sth->fetchrow_arrayref ) {
+  my $serviceid = $row->[0];
+  $serviceid =~ s/_(IN|OUT)$//;
+  $serviceid{$serviceid}=1;
+}
+
+</%init>