Browse Source

Fix periodic pays

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

5
abonapp/models.py

@ -426,11 +426,12 @@ class PeriodicPayForId(models.Model):
next_pay = models.DateTimeField(_('Next time to pay')) next_pay = models.DateTimeField(_('Next time to pay'))
account = models.ForeignKey(Abon, models.CASCADE, verbose_name=_('Account')) 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 Charge for the service and leave a log about it
""" """
now = timezone.now()
if now is None:
now = timezone.now()
if self.next_pay < now: if self.next_pay < now:
pp = self.periodic_pay pp = self.periodic_pay
amount = pp.calc_amount() amount = pp.calc_amount()

13
cron.py

@ -35,15 +35,18 @@ def main():
signals.pre_delete.connect(abontariff_pre_delete, sender=AbonTariff) signals.pre_delete.connect(abontariff_pre_delete, sender=AbonTariff)
# sync subscribers on NAS # sync subscribers on NAS
tm = Transmitter()
users = Abon.objects.filter(is_dynamic_ip=False, is_active=True).exclude(current_tariff=None)
tm.sync_nas(users)
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 # 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') .prefetch_related('account', 'periodic_pay')
for pay in ppays: for pay in ppays:
pay.payment_for_service()
pay.payment_for_service(now=now)
if __name__ == "__main__": if __name__ == "__main__":

Loading…
Cancel
Save