6 Paź
2004
6 Paź
'04
01:52
Witam
Swego czasu zmieniłem sobie skrypt cutoff tak że: odcina ludzi jeśli ostatnia faktura jest przeterminowana powyżej x dni
Wady: - nie można zrobić terminu płatności (zwłoki) większego niż naliczanie kolejnych abonamentów - komputer będzie odcinany "co noc" - brak możliwości ręcznego odblokowania na stałe - po za "lewą" wpłatą (dla mnie ToDo)
Jeśli się komuś spodoba to będzie mi miło. Chodziło mi o pełne wprowadzenie okresów rozliczeniowych, z automatycznym odcinaniem po iluś tam dniach a nie tylko kwotowo jak to ma miejsce.
--
pozdrawiam Paweł Rohde [patt]
[gadu-gadu: 755284 mail:pawel_NOSPAM@rohde.poznan.pl ]
[komórka : 501 433 051 ]
--- lms-cutoff~ 2004-10-05 12:05:09.000000000 +0200
+++ lms-cutoff 2004-10-06 01:36:39.000000000 +0200
@@ -94,10 +94,12 @@
my $dbname = $ini->val('database', 'database') || 'lms';
my $limit = $ini->val('cutoff', 'limit') || 0;
+my $platnosc = $ini->val('cutoff', 'platnosc') || 14;
my $dbase;
my $utsfmt;
my $now_date = strftime "(%d.%m.%Y)", localtime;
+my $curr_date = strftime("%s",localtime());
if($dbtype eq "mysql")
{
@@ -127,21 +129,28 @@
my $balance = 0;
my $sdbq = $dbase->prepare("SELECT SUM(value) AS sum FROM cash WHERE userid='$row->{'id'}' AND type='3'");
$sdbq->execute();
+
if(my $srow = $sdbq->fetchrow_hashref())
{
$balance = $balance + (defined $srow->{'sum'} ? $srow->{'sum'} : 0);
}
- $sdbq = $dbase->prepare("SELECT SUM(value) AS sum FROM cash WHERE userid='$row->{'id'}' AND type='4'");
+
+ my $IleDni = 0;
+ $sdbq = $dbase->prepare("SELECT SUM(value) AS sum, MAX(time) AS paytime FROM cash WHERE userid='$row->{'id'}' AND type='4'");
$sdbq->execute();
+
if(my $srow = $sdbq->fetchrow_hashref())
{
$balance = $balance - (defined $srow->{'sum'} ? $srow->{'sum'} : 0);
+ $IleDni = ($curr_date - (defined $srow->{'paytime'} ? $srow->{'paytime'} : 0))/86400;
}
- if($balance < $limit)
+
+ if($balance < $limit and $IleDni > $platnosc)
{
if(!$quiet)
- {
- print STDOUT "$row->{'id'}\t($balance)\t$row->{'lastname'} $row->{'name'}\n";
+ {
+ #my $IleDni = ($curr_date - $paytime)/86400;
+ print STDOUT "$IleDni\t $row->{'id'}\t($balance)\t$row->{'lastname'} $row->{'name'}\n";
}
$sdbq = $dbase->prepare("UPDATE nodes SET access=0, warning=1 WHERE ownerid='$row->{'id'}'");
$sdbq->execute();