def update_invoices(): one_week_ago = datetime.now() + timedelta(days=-7) businesses = Business.objects.filter(last_invoice_item__gt=one_week_ago) for business in businesses: uncharged_transactions = Transaction.objects.filter(business=business, invoiced_for=False, success=True) quantity = uncharged_transactions.count() payment.create_invoice_item(business, quantity) Transaction.objects.filter(business=business, invoiced_for=False, success=True).update(invoiced_for=True) business.update(last_invoice_item=datetime.now())
def check_age(self, obj): business = self.context['request'].user required_min_age = business.business.min_age today = date.today() dateofbirth = obj.dateofbirth age = today.year - dateofbirth.year - ((today.month, today.day) < (dateofbirth.month, dateofbirth.day)) age_verified = age >= required_min_age new_transaction = Transaction(business=business.business, user=obj, success=age_verified, ) if not obj.permission: new_transaction.reason="User banned" elif not age_verified: new_transaction.reason="User too young" new_transaction.save() if age_verified: payment.create_invoice_item(business.business) return age_verified and obj.permission