? astcc/diff ? asterisk/doc/api ? zaptel/.tmp_versions ? zaptel/.zaptel.o.d Index: astcc/astcc-admin.cgi =================================================================== RCS file: /usr/cvsroot/astcc/astcc-admin.cgi,v retrieving revision 1.7 diff -u -r1.7 astcc-admin.cgi --- astcc/astcc-admin.cgi 1 Sep 2004 18:33:35 -0000 1.7 +++ astcc/astcc-admin.cgi 18 Sep 2004 07:09:48 -0000 @@ -119,6 +119,19 @@ return ""; } +sub list_cards() { + my $sth; + my @cardlist; + my $row; + $sth = $dbh->prepare("SELECT number FROM cards"); + $sth->execute; + while($row = $sth->fetchrow_hashref) { + push @cardlist, $row->{number}; + } + $sth->finish; + return @cardlist; +} + sub list_trunks() { my $sth; my @trunklist; @@ -160,8 +173,17 @@ sub findunique() { my $number; for (;;) { - $number = int(rand() * 9000 + 1000) . int(rand() * 9000 + 1000) . int(rand() * 9000 + 1000); # . int(rand() * 9000 + 1000); + $number = int(rand() * 9000 + 1000) . int(rand() * 9000 + 1000) . int(rand() * 9000 + 1000) . int(rand() * 9000 + 1000) . int(rand() * 9000 + 1000); + if ($config{'startingdigit'} ne "" ) { + $startingdigit = substr($number, 0, 1); + if ($startingdigit == $config{'startingdigit'}) { + $number = substr($number, 0, $config{'cardlength'}); + return $number if (&isunique($number)); + } + } else { + $number = substr($number, 0, $config{'cardlength'}); return $number if (&isunique($number)); + } } } @@ -183,6 +205,11 @@ # Retrieve brand specifications my $sth = $dbh->prepare("SELECT * FROM brands WHERE name = " . $dbh->quote($brand)); $sth->execute; + if ($config{'email'} eq "YES") { + open (EMAIL, "| $config{mailprog} $config{emailadd} -s 'New Cards Created'") || + die "Error - could not write to $config{mailprog}\n"; + print EMAIL "You have added $count $brand cards in the amount of $pennies cents. \n\n"; + } if ($row = $sth->fetchrow_hashref) { ($language, $inc, $markup) = ($row->{language}, $row->{inc}, $row->{markup}); } @@ -191,8 +218,15 @@ for ($x=0; $x < $count; $x++) { $number = &findunique; &addcard($number, $language, $pennies * 100, $inc, $markup); + if ($config{'email'} eq "YES") { + print EMAIL "$number \n"; + } $status .= "$number
"; } + if ($config{'email'} eq "YES") { + print EMAIL ".\n"; + close (EMAIL); + } return $status; } @@ -223,6 +257,21 @@ } else { $status = &generatecards($count, $pennies, $brand); } + } elsif (param('action') eq "Drop...") { + if ($dbh->do("DELETE FROM cards WHERE number = " . $dbh->quote(param('number')))) { + $status = "Dropped card " . param('number') . "'."; + } else { + $status = "Unable to drop card ". param('number') . "'."; + } + } elsif (param('action') eq "Refill...") { + $cardinfo = &getcard(param('refillnum')); + $number = $cardinfo->{number}; + $newfacevalue = $cardinfo->{facevalue} + (param('refillpennies') * 100); + if ($dbh->do("UPDATE cards SET facevalue= $newfacevalue WHERE number= $cardinfo->{number}")) { + $status = "Refilled card " . param('refillnum') . "'."; + } else { + $status = "Unable to Refill card". param('refillnum') . "'."; + } } $total = &count_cards(); $used = &count_cards("WHERE firstuse > 0"); @@ -232,10 +281,20 @@ textfield(-name => "count", -size => 8) . " " . $brands . "  cards of  " . textfield(-name => "pennies", -size => 8) . "  pennies  " . submit(-name => "action", -value => "Generate...") . ""; + $body .= "Add Money to Card  " . hidden(-name => "mode", -value => "Cards") . + textfield(-name => "refillnum", -size => 20) . "  In the Amount of   " . + textfield(-name => "refillpennies", -size => 8) . "  pennies  " . + submit(-name => "action", -value => "Refill...") . ""; $body .= "Get information on card  " . hidden(-name => "mode", -value => "Cards") . - textfield(-name => "cardnum", -size => 15) . "    " . + textfield(-name => "cardnum", -size => 20) . "    " . submit(-name => "action", -value => "Information...") . ""; + $body .= "Delete card  " . hidden(-name => "mode", -value => "Cards") . + textfield(-name => "number", -size => 20) . "    " . + submit(-name => "action", -value => "Drop...") . ""; + $body .= "List Cards  " . hidden(-name => "mode", -value => "Cards") . + submit(-name => "action", -value => "List_Cards...") . ""; $body .= ""; + $cardnum = param('cardnum'); if ((param('action') eq "Information...") && length(param('cardnum'))) { my $cardinfo; my $status; @@ -270,7 +329,30 @@ } } $body .= ""; - } + } elsif (param('action') eq "List_Cards...") { + my $cardinfo; + my $status; + @cardlist = &list_cards(); + $body .= ""; + $body .= "" . $status . "\n"; + $body .= "\n"; + foreach (@cardlist) { + $cardnum = $_; + $cardinfo = &getcard($cardnum); + if ($cardinfo->{'number'}) { + $count++; + if (!($count % 2)) { + $color = "#ccffcc"; + } else { + $color = "#ffffcc"; + } + + $body .= "\n"; + } + } + $body .= "
Card NumberAmount UsedFace ValueMarkupCreationFirst UseExpirationIn Use
$cardnum$cardinfo->{used}$cardinfo->{facevalue}$cardinfo->{markup}$cardinfo->{creation}$cardinfo->{firstuse}$cardinfo->{expiration}$cardinfo->{inuse}"; + $body .= "
"; + } return $body; } @@ -433,8 +515,6 @@ } elsif (param("action$x") eq "Save...") { if ($dbh->do("UPDATE trunks SET name=" . $dbh->quote(param("newname$x")) . " WHERE name=" . $dbh->quote(param("item$x")))) { -# $dbh->do("UPDATE routes SET name=" . $dbh->quote(param("newname$x")) . -# " WHERE name=" . $dbh->quote(param("item$x"))); $tmp = "REPLACE INTO trunks (name,tech,path) VALUES (" . $dbh->quote(param("newname$x")) . ", " . $dbh->quote(param("newtech$x")) . ", " . $dbh->quote(param("newpath$x")) . ")"; @@ -684,6 +764,11 @@ $config{dbpass} = param('dbpass'); $config{dbname} = param('dbname'); $config{dbhost} = param('dbhost'); + $config{cardlength} = param('cardlength'); + $config{startingdigit} = param('startingdigit'); + $config{email} = param('email'); + $config{emailadd} = param('emailadd'); + $config{mailprog} = param('mailprog'); &save_config(); $activity = "Configuration saved..."; if ($action eq "Create Database") { @@ -702,6 +787,12 @@ $body .= "Username" . textfield(-name => 'dbuser', -default => $config{dbuser}) . ""; $body .= "Password" . textfield(-name => 'dbpass', -default => $config{dbpass}) . ""; $body .= "Database" . textfield(-name => 'dbname', -default => $config{dbname}) . ""; + $body .= "Card Length (4-20) " . textfield(-name => 'cardlength', -default => $config{cardlength}) . ""; + $body .= "Card Starting Number - "; + $body .= "Enter 0 if Not Required " . textfield(-name => 'startingdigit', -default => $config{startingdigit}) . ""; + $body .= "Email New Card Info (YES/NO) " . textfield(-name => 'email', -default => $config{email}) . ""; + $body .= "Admin Email" . textfield(-name => 'emailadd', -default => $config{emailadd}) . ""; + $body .= "Email Program" . textfield(-name => 'mailprog', -default => $config{mailprog}) . ""; $body .= " " . submit(-name => 'action', -value => 'Save') . "" . submit( -name => 'action', -value => 'Create Database') . " "; $body .= ""; return $body;