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();