Browse Source

Fix periodic pays

devel
bashmak 8 years ago
parent
commit
e79bb01401
  1. 3
      abonapp/models.py
  2. 7
      cron.py

3
abonapp/models.py

@ -426,10 +426,11 @@ class PeriodicPayForId(models.Model):
next_pay = models.DateTimeField(_('Next time to pay'))
account = models.ForeignKey(Abon, models.CASCADE, verbose_name=_('Account'))
def payment_for_service(self, author=None, comment=None):
def payment_for_service(self, author=None, now=None):
"""
Charge for the service and leave a log about it
"""
if now is None:
now = timezone.now()
if self.next_pay < now:
pp = self.periodic_pay

7
cron.py

@ -35,15 +35,18 @@ def main():
signals.pre_delete.connect(abontariff_pre_delete, sender=AbonTariff)
# sync subscribers on NAS
try:
tm = Transmitter()
users = Abon.objects.filter(is_dynamic_ip=False, is_active=True).exclude(current_tariff=None)
tm.sync_nas(users)
except NasNetworkError as e:
print('NetworkTrouble:', e)
# manage periodic pays
ppays = PeriodicPayForId.objects.filter(next_pay__lt=timezone.now())\
ppays = PeriodicPayForId.objects.filter(next_pay__lt=now)\
.prefetch_related('account', 'periodic_pay')
for pay in ppays:
pay.payment_for_service()
pay.payment_for_service(now=now)
if __name__ == "__main__":

Loading…
Cancel
Save