summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorivan <ivan>2002-04-12 13:22:03 +0000
committerivan <ivan>2002-04-12 13:22:03 +0000
commite6ea57971831f25d682d97a0ba508c39b66ecd8b (patch)
treebdf395ca96a3eca52e9f4974c8bc289cbc0fe4ed /httemplate
parenta7c1b602f88c177db34477ed4cdc1f72603f8995 (diff)
- should finish off the part_svc -> part_export s/one-to-many/many-to-many/
transition (closes: Bug#375) - fixes a nasty export scoping bug with message catalogs, whew
Diffstat (limited to 'httemplate')
-rwxr-xr-xhttemplate/browse/part_svc.cgi8
-rw-r--r--httemplate/edit/part_export.cgi80
-rwxr-xr-xhttemplate/edit/part_svc.cgi26
-rwxr-xr-xhttemplate/edit/process/agent_type.cgi1
-rw-r--r--httemplate/edit/process/part_export.cgi8
-rwxr-xr-xhttemplate/edit/process/part_svc.cgi23
-rwxr-xr-xhttemplate/misc/delete-customer.cgi14
7 files changed, 79 insertions, 81 deletions
diff --git a/httemplate/browse/part_svc.cgi b/httemplate/browse/part_svc.cgi
index c8adebcd6..4c9b1bd95 100755
--- a/httemplate/browse/part_svc.cgi
+++ b/httemplate/browse/part_svc.cgi
@@ -66,8 +66,12 @@ function part_export_areyousure(href) {
<%= $hashref->{svcdb} %></TD>
<TD ROWSPAN=<%= $rowspan %>><%= itable() %>
<%
- my @part_export = qsearch('part_export', { svcpart => $part_svc->svcpart } );
- foreach my $part_export ( @part_export ) {
+# my @part_export =
+map { qsearchs('part_export', { exportnum => $_->exportnum } ) } qsearch('export_svc', { svcpart => $part_svc->svcpart } ) ;
+ foreach my $part_export (
+ map { qsearchs('part_export', { exportnum => $_->exportnum } ) }
+ qsearch('export_svc', { svcpart => $part_svc->svcpart } )
+ ) {
%>
<TR>
<TD><A HREF="<%= $p %>edit/part_export.cgi?<%= $part_export->exportnum %>"><%= $part_export->exporttype %> to <%= $part_export->machine %></A></TD></TR>
diff --git a/httemplate/edit/part_export.cgi b/httemplate/edit/part_export.cgi
index f3127403e..77b80d06f 100644
--- a/httemplate/edit/part_export.cgi
+++ b/httemplate/edit/part_export.cgi
@@ -21,76 +21,10 @@ if ( $cgi->param('error') ) {
}
$action ||= $part_export->exportnum ? 'Edit' : 'Add';
-my %exports = (
- 'svc_acct' => {
- 'sysvshell' => {
- 'desc' =>
- 'Batch export of /etc/passwd and /etc/shadow files (Linux/SysV)',
- 'options' => {},
- },
- 'bsdshell' => {
- 'desc' =>
- 'Batch export of /etc/passwd and /etc/master.passwd files (BSD)',
- 'options' => {},
- },
-# 'nis' => {
-# 'desc' =>
-# 'Batch export of /etc/global/passwd and /etc/global/shadow for NIS ',
-# 'options' => {},
-# },
- 'bsdshell' => {
- 'desc' =>
- 'Batch export of /etc/passwd and /etc/master.passwd files (BSD)',
- 'options' => {},
- },
- 'textradius' => {
- 'desc' => 'Batch export of a text /etc/raddb/users file (Livingston, Cistron)',
- },
- 'sqlradius' => {
- 'desc' => 'Real-time export to SQL-backed RADIUS (ICRADIUS, FreeRADIUS)',
- 'options' => {
- 'datasrc' => { label=>'DBI data source' },
- 'username' => { label=>'Database username' },
- 'password' => { label=>'Database password' },
- },
- 'nodomain' => 'Y',
- 'notes' => 'Not specifying datasrc will export to the freeside database? (no... notes on MySQL replication, DBI::Proxy, etc., from Conf.pm && export.html etc., reset with bin/sqlradius_reset',
- },
- 'cyrus' => {
- 'desc' => 'Real-time export to Cyrus IMAP server',
- },
- 'cp' => {
- 'desc' => 'Real-time export to Critical Path Account Provisioning Protocol',
- },
- 'infostreet' => {
- 'desc' => 'Real-time export to InfoStreet streetSmartAPI',
- 'options' => {
- 'url' => { label=>'XML-RPC Access URL', },
- 'login' => { label=>'InfoStreet login', },
- 'password' => { label=>'InfoStreet password', },
- 'groupID' => { label=>'InfoStreet groupID', },
- },
- 'nodomain' => 'Y',
- 'notes' => 'Real-time export to <a href="http://www.infostreet.com/">InfoStreet</a> streetSmartAPI. Requires installation of <a href="http://search.cpan.org/search?dist=Frontier-Client">Frontier::Client</a> from CPAN.',
- }
- },
-
- 'svc_domain' => {},
-
- 'svc_acct_sm' => {},
-
- 'svc_forward' => {},
-
- 'svc_www' => {},
-
-);
-
-#my $svcdb = $part_export->part_svc->svcdb;
-#YUCK
-my $svcdb = 'svc_acct';
+#my $exports = FS::part_export::export_info($svcdb);
+my $exports = FS::part_export::export_info();
-my %layers = map { $_ => "$_ - ". $exports{$svcdb}{$_}{desc} }
- keys %{$exports{$svcdb}};
+my %layers = map { $_ => "$_ - ". $exports->{$_}{desc} } keys %$exports;
$layers{''}='';
my $widget = new HTML::Widgets::SelectLayers(
@@ -105,9 +39,9 @@ my $widget = new HTML::Widgets::SelectLayers(
my $layer = shift;
my $html = qq!<INPUT TYPE="hidden" NAME="exporttype" VALUE="$layer">!.
ntable("#cccccc",2);
- foreach my $option ( keys %{$exports{$svcdb}->{$layer}{options}} ) {
+ foreach my $option ( keys %{$exports->{$layer}{options}} ) {
# foreach my $option ( qw(url login password groupID ) ) {
- my $optinfo = $exports{$svcdb}->{$layer}{options}{$option};
+ my $optinfo = $exports->{$layer}{options}{$option};
my $label = $optinfo->{label};
my $value = $cgi->param($option) || $part_export->option($option);
$html .= qq!<TR><TD ALIGN="right">$label</TD><TD>!.
@@ -117,10 +51,10 @@ my $widget = new HTML::Widgets::SelectLayers(
$html .= '</TABLE>';
$html .= '<INPUT TYPE="hidden" NAME="options" VALUE="'.
- join(',', keys %{$exports{$svcdb}->{$layer}{options}} ). '">';
+ join(',', keys %{$exports->{$layer}{options}} ). '">';
$html .= '<INPUT TYPE="hidden" NAME="nodomain" VALUE="'.
- $exports{$svcdb}->{$layer}{nodomain}. '">';
+ $exports->{$layer}{nodomain}. '">';
$html .= '<INPUT TYPE="submit" VALUE="'.
( $part_export->exportnum ? "Apply changes" : "Add export" ).
diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi
index b4900a01c..e9c571f9c 100755
--- a/httemplate/edit/part_svc.cgi
+++ b/httemplate/edit/part_svc.cgi
@@ -132,8 +132,30 @@ my %defs = (
'form_checkbox' => [ 'disabled' ],
'layer_callback' => sub {
my $layer = shift;
- my $html = qq!<INPUT TYPE="hidden" NAME="svcdb" VALUE="$layer">!.
- table(). "<TH>Field</TH><TH COLSPAN=2>Modifier</TH>";
+ my $html = qq!<INPUT TYPE="hidden" NAME="svcdb" VALUE="$layer">!;
+
+ my $columns = 3;
+ my $count = 0;
+ my @part_export =
+ grep { $layer eq FS::part_export::exporttype2svcdb($_->exporttype) }
+ qsearch( 'part_export', {} );
+ $html .= '<BR><BR>'. table().
+ table(). "<TR><TH COLSPAN=$columns>Exports</TH></TR><TR>";
+ foreach my $part_export ( @part_export ) {
+ $html .= '<TD><INPUT TYPE="checkbox"'.
+ ' NAME="exportnum'. $part_export->exportnum. '" VALUE="1" ';
+ $html .= 'CHECKED'
+ if qsearchs( 'export_svc', {
+ exportnum => $part_export->exportnum,
+ svcpart => $part_svc->svcpart });
+ $html .= '> '. $part_export->exporttype. ' to '. $part_export->machine.
+ '</TD>';
+ $count++;
+ $html .= '</TR><TR>' unless $count % $columns;
+ }
+ $html .= '</TR></TABLE><BR><BR>';
+
+ $html .= table(). "<TH>Field</TH><TH COLSPAN=2>Modifier</TH>";
#yucky kludge
my @fields = defined( $FS::Record::dbdef->table($layer) )
? grep { $_ ne 'svcnum' } fields($layer)
diff --git a/httemplate/edit/process/agent_type.cgi b/httemplate/edit/process/agent_type.cgi
index 67aacfdd5..516594573 100755
--- a/httemplate/edit/process/agent_type.cgi
+++ b/httemplate/edit/process/agent_type.cgi
@@ -22,6 +22,7 @@ if ( $error ) {
print $cgi->redirect(popurl(2). "agent_type.cgi?". $cgi->query_string );
} else {
+ #false laziness w/ edit/process/part_svc.cgi
foreach my $part_pkg (qsearch('part_pkg',{})) {
my($pkgpart)=$part_pkg->getfield('pkgpart');
diff --git a/httemplate/edit/process/part_export.cgi b/httemplate/edit/process/part_export.cgi
index 34eb699bf..6b4d007e4 100644
--- a/httemplate/edit/process/part_export.cgi
+++ b/httemplate/edit/process/part_export.cgi
@@ -5,7 +5,7 @@ my $exportnum = $cgi->param('exportnum');
my $old = qsearchs('part_export', { 'exportnum'=>$exportnum } ) if $exportnum;
#fixup options
-warn join('-', split(',',$cgi->param('options')));
+#warn join('-', split(',',$cgi->param('options')));
my %options = map { $_=>$cgi->param($_) } split(',',$cgi->param('options'));
my $new = new FS::part_export ( {
@@ -16,9 +16,9 @@ my $new = new FS::part_export ( {
my $error;
if ( $exportnum ) {
- warn $old;
- warn $exportnum;
- warn $new->machine;
+ #warn $old;
+ #warn $exportnum;
+ #warn $new->machine;
$error = $new->replace($old,\%options);
} else {
$error = $new->insert(\%options);
diff --git a/httemplate/edit/process/part_svc.cgi b/httemplate/edit/process/part_svc.cgi
index 31ab13438..859670b17 100755
--- a/httemplate/edit/process/part_svc.cgi
+++ b/httemplate/edit/process/part_svc.cgi
@@ -33,6 +33,29 @@ if ( $error ) {
$cgi->param('error', $error);
print $cgi->redirect(popurl(2). "part_svc.cgi?". $cgi->query_string );
} else {
+
+ #false laziness w/ edit/process/agent_type.cgi
+ foreach my $part_export (qsearch('part_export',{})) {
+ my $exportnum = $part_export->exportnum;
+ my $export_svc = qsearchs('export_svc', {
+ 'exportnum' => $part_export->exportnum,
+ 'svcpart' => $new->svcpart,
+ } );
+ if ( $export_svc && ! $cgi->param("exportnum". $part_export->exportnum) ) {
+ $error = $export_svc->delete;
+ die $error if $error;
+ } elsif ( $cgi->param("exportnum". $part_export->exportnum)
+ && ! $export_svc ) {
+ $export_svc = new FS::export_svc ( {
+ 'exportnum' => $part_export->exportnum,
+ 'svcpart' => $new->svcpart,
+ } );
+ $error = $export_svc->insert;
+ die $error if $error;
+ }
+
+ }
+
print $cgi->redirect(popurl(3)."browse/part_svc.cgi");
}
diff --git a/httemplate/misc/delete-customer.cgi b/httemplate/misc/delete-customer.cgi
index 5088fef7b..7016c9166 100755
--- a/httemplate/misc/delete-customer.cgi
+++ b/httemplate/misc/delete-customer.cgi
@@ -43,4 +43,18 @@ canceled service with you. For that, cancel all of the customer's packages.
</form></body></html>
END
+#Deleting a customer you have financial records on (i.e. credits) is
+#typically considered fraudulant bookkeeping. Remember, deleting
+#customers should ONLY be used for completely bogus records. You should
+#NOT delete real customers who simply discontinue service.
+#
+#For real customers who simply discontinue service, cancel all of the
+#customer's packages. Customers with all cancelled packages are not
+#billed. There is no need to take further action to prevent billing on
+#customers with all cancelled packages.
+#
+#Also see the "hidecancelledcustomers" and "hidecancelledpackages"
+#configuration options, which will allow you to surpress the display of
+#cancelled customers and packages, respectively.
+
%>