} else {
my $i_sth = $dbh->prepare(
- "INSERT INTO rad$table ( id, UserName, Attribute, Value ) ".
- "VALUES ( ?, ?, ?, ? )"
+ "INSERT INTO rad$table ( UserName, Attribute, Value ) ".
+ "VALUES ( ?, ?, ? )"
) or die $dbh->errstr;
$i_sth->execute( '', $username, $attribute, $attributes{$attribute} )
or die $i_sth->errstr;
my( $username, @groups ) = @_;
my $sth = $dbh->prepare(
- "INSERT INTO usergroup ( id, UserName, GroupName ) VALUES ( ?, ?, ? )"
+ "INSERT INTO usergroup ( UserName, GroupName ) VALUES ( ?, ? )"
) or die $dbh->errstr;
foreach my $group ( @groups ) {
$sth->execute( '', $username, $group )
''; #no error
}
+=item part_pkg
+
+Returns the FS::part_pkg object associated with this record.
+
+=cut
+
+sub part_pkg {
+ my $self = shift;
+ qsearchs( 'part_pkg', { 'pkgpart' => $self->pkgpart } );
+}
+
+=cut
+
=back
=head1 VERSION
-$Id: type_pkgs.pm,v 1.1 1999-08-04 09:03:53 ivan Exp $
+$Id: type_pkgs.pm,v 1.1.14.1 2002-10-04 12:56:35 ivan Exp $
=head1 BUGS
#!/usr/bin/perl -Tw
#
-# $Id: fs-setup,v 1.96 2002-07-06 12:13:49 ivan Exp $
+# $Id: fs-setup,v 1.96.4.1 2002-10-04 12:56:36 ivan Exp $
#to delay loading dbdef until we're ready
BEGIN { $FS::Record::setup_hack = 1; }
my $cust_main = $dbdef->table('cust_main');
unless ($ship) { #remove ship_ from cust_main
$cust_main->delcolumn($_) foreach ( grep /^ship_/, $cust_main->columns );
-} else { #add indices on ship_last and ship_company
- push @{$cust_main->index->lol_ref}, ( ['ship_last'], ['ship_company'] )
+} else { #add indices
+ push @{$cust_main->index->lol_ref},
+ map { [ "ship_$_" ] } qw( last company daytime night fax );
}
#add radius attributes to svc_acct
'primary_key' => 'custnum',
'unique' => [],
#'index' => [ ['last'], ['company'] ],
- 'index' => [ ['last'], [ 'company' ], [ 'referral_custnum' ] ],
+ 'index' => [ ['last'], [ 'company' ], [ 'referral_custnum' ],
+ [ 'daytime' ], [ 'night' ], [ 'fax' ],
+ ],
},
'cust_main_invoice' => {
<li><a href="http://rsync.samba.org/">rsync</a>
<li>A <b>transactional</b> database engine <a href="http://search.cpan.org/search?mode=module&query=DBD%3A%3A">supported</a> by Perl's <a href="http://dbi.perl.org">DBI</a>.
<ul>
- <li><a href="http://www.postgresql.org/">PostgreSQL</a> (v7 or higher) is recommended.
+ <li><a href="http://www.postgresql.org/">PostgreSQL</a> is recommended (v7.1.x or later, not 7.0.x).
<li>MySQL versions before 4.1 do not support standard SQL subqueries and are <b>NOT SUPPORTED</b>. If you are a developer who wishes to contribute MySQL 3.x/4.0 support, see <a href="http://pouncequick.420.am/rt/Ticket/Display.html?id=438">ticket #438</a> in the bug-tracking system and ask on the -devel mailing list.
<!-- <li>MySQL has been reported to work.
<b>MySQL's default <a href="http://www.mysql.com/doc/M/y/MyISAM.html">MyISAM</a> and <a href="http://www.mysql.com/doc/I/S/ISAM.html">ISAM</a> table types are not supported</b>. If you want to use MySQL, you <b>must</b> use one of the new <a href="http://www.mysql.com/doc/T/a/Table_types.html">transaction-safe table types</a> such as <a href="http://www.mysql.com/doc/B/D/BDB.html">BDB</a> or <a href="http://www.mysql.com/doc/I/n/InnoDB.html">InnoDB</a>, and set it as the default table type using the <code>--default-table-type=BDB</code> or <code>--default-table-type=InnoDB</code> <a href="http://www.mysql.com/documentation/mysql/bychapter/manual_MySQL_Database_Administration.html#Command-line_options">mysqld command-line option</a> or by setting <code>default-table-type=BDB</code> or <code>default-table-type=InnoDB</code> in the <a href="http://www.mysql.com/documentation/mysql/bychapter/manual_MySQL_Database_Administration.html#Option_files">my.cnf option file</a>. -->
$1;
} $cgi->param('remove_pkg');
+my $error_redirect;
my @pkgparts;
-foreach my $pkgpart ( map /^pkg(\d+)$/ ? $1 : (), $cgi->param ) {
- if ( $cgi->param("pkg$pkgpart") =~ /^(\d+)$/ ) {
- my $num_pkgs = $1;
- while ( $num_pkgs-- ) {
- push @pkgparts,$pkgpart;
+if ( $cgi->param('new_pkgpart') =~ /^(\d+)$/ ) { #came from misc/change_pkg.cgi
+ $error_redirect = "misc/change_pkg.cgi";
+ @pkgparts = ($1);
+} else { #came from edit/cust_pkg.cgi
+ $error_redirect = "edit/cust_pkg.cgi";
+ foreach my $pkgpart ( map /^pkg(\d+)$/ ? $1 : (), $cgi->param ) {
+ if ( $cgi->param("pkg$pkgpart") =~ /^(\d+)$/ ) {
+ my $num_pkgs = $1;
+ while ( $num_pkgs-- ) {
+ push @pkgparts,$pkgpart;
+ }
+ } else {
+ $error = "Illegal quantity";
+ last;
}
- } else {
- $error = "Illegal quantity";
- last;
}
}
if ($error) {
$cgi->param('error', $error);
- print $cgi->redirect(popurl(2). "cust_pkg.cgi?". $cgi->query_string );
+ print $cgi->redirect(popurl(3). $error_redirect. '?'. $cgi->query_string );
} else {
print $cgi->redirect(popurl(3). "view/cust_main.cgi?$custnum");
}
my $phone = $cgi->param('phone_text');
- #false laziness with Record::ut_phonen, only works with US/CA numbers...
+ #(no longer really) false laziness with Record::ut_phonen
+ #only works with US/CA numbers...
$phone =~ s/\D//g;
- $phone =~ /^(\d{3})(\d{3})(\d{4})(\d*)$/
- or eidiot gettext('illegal_phone'). ": $phone";
- $phone = "$1-$2-$3";
- $phone .= " x$4" if $4;
+ if ( $phone =~ /^(\d{3})(\d{3})(\d{4})(\d*)$/ ) {
+ $phone = "$1-$2-$3";
+ $phone .= " x$4" if $4;
+ } elsif ( $phone =~ /^(\d{3})(\d{4})$/ ) {
+ $phone = "$1-$2";
+ } elsif ( $phone =~ /^(\d{3,4})$/ ) {
+ $phone = $1;
+ } else {
+ eidiot gettext('illegal_phone'). ": $phone";
+ }
my @fields = qw(daytime night fax);
push @fields, qw(ship_daytime ship_night ship_fax)
for my $field ( @fields ) {
push @cust_main, qsearch ( 'cust_main',
{ $field => { 'op' => 'LIKE',
- 'value' => "$phone%" } } );
+ 'value' => "%$phone%" } } );
}
\@cust_main;
qq!$pkg - $comment ( <a href="$pkgview">Details</a> )!;
# | !;
+ print qq! ( <A HREF="${p}misc/change_pkg.cgi?$pkgnum">!.
+ 'Change package</A> )';
+
#false laziness with view/cust_pkg.cgi, but i'm trying to make that go away so
unless ( $package->getfield('cancel') ) {
print ' ( ';