Бонус - определенная сумма на счет каждый месяц

Работа с бонусными счетами
Ответить
kaktatak
Сообщения: 42
Зарегистрирован: Пн фев 15, 2010 3:04 pm

Бонус - определенная сумма на счет каждый месяц

Сообщение kaktatak » Пт фев 22, 2013 7:19 am

можно ли реализовать такое? если да то как? :D
хотелось бы определенным пользователям делать бонусный платеж автоматически каждый месяц.

kaktatak
Сообщения: 42
Зарегистрирован: Пн фев 15, 2010 3:04 pm

Re: Бонус - определенная сумма на счет каждый месяц

Сообщение kaktatak » Чт мар 28, 2013 8:18 am

если кому нужно сделал вот такую схему( по другому не понял как сделать. через Extfin сумма депозита не менялась)
1. добавляем информационное поле bonus
2. пишем скрипт

Код: Выделить всё

#!/usr/bin/perl -w
#Bonus payments

use Env;
use DBI;
use Time::Local;
use vars qw( %conf $db $DATE $TIME $users $Y $M $D );

use FindBin '$Bin';
my $db_db = 0;
require $Bin . '/config.pl';
if (!($db_db = DBI->connect("DBI:mysql:$conf{dbname}:$conf{dbhost}",$conf{dbuser},$conf{dbpasswd})))
 {die "Could not connect to database!!!";}


my $db_query = $db_db->prepare("
    SELECT dv_main.uid,bills.id,bills.deposit,_bonus FROM users_pi
    LEFT OUTER JOIN dv_main ON (users_pi.uid = dv_main.uid)
    INNER JOIN bills ON (users_pi.uid = bills.uid)
    WHERE _bonus!=0");
 $db_query->execute;
while(my @db_result = $db_query->fetchrow_array){
    my $userid=$db_result[0];
    my $billid=$db_result[1];
    my $deposit=$db_result[2];
    my $paysum=$db_result[3];
    my $ipadd='127.0.0.1';
    my $desctext='Bonus';
    my $oldsum=$db_result[2];
    my $admid=2;
    my $metod=4;
 $db_db->do("INSERT INTO payments (uid, bill_id, date, sum, dsc, ip, last_deposit, aid, method, ext_id)
             values ('$userid', '$billid', now(), '$paysum', '$desctext', INET_ATON ('$ipadd'), '$oldsum', '$admid', '$metod', '')");
 $db_db->do("UPDATE bills SET deposit=deposit+$paysum WHERE id='$billid'");
}
ложим его в удобное место и запускаем по крону раз в месяц.
3. у нужных абонов в поле бонус пишем сумму бонуса.
4. наслаждаемся)
P.S. за основу взят первоначальная версия бонусной системы от Asmodeus.

Ответить