Ignore:
Timestamp:
17 Jul 2020, 19:44:47 (4 years ago)
Author:
Henrik Bettermann
Message:

Implement webservice get_unpaid_payments.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk/src/waeup/kofa/students/webservices.py

    r16112 r16169  
    1919import os
    2020import xmlrpclib
     21from time import time
    2122from cStringIO import StringIO
    2223from zope.component import getUtility, queryUtility
     
    416417              )
    417418        return hitlist
     419
     420    @grok.require('waeup.xmlrpc')
     421    def get_unpaid_payments(self, days=3, company=None):
     422        """Returns the p_ids of unpaid payment tickets which have
     423        been created during the past days.
     424        """
     425        days_in_seconds = 86400 * int(days)
     426        timestamp_now = ("%d" % int(time()*10000))[1:]
     427        timestamp_now_minus_days = ("%d" % int((time()-days_in_seconds)*10000))[1:]
     428        p_id_now = ("p%s" % timestamp_now)
     429        p_id_minus_days = ("p%s" % timestamp_now_minus_days)
     430        cat = getUtility(ICatalog, name='payments_catalog')
     431        payments = list(
     432            cat.searchResults(p_id=(p_id_minus_days, p_id_now),
     433                              p_state=('unpaid', 'unpaid')))
     434        hitlist = []
     435        if company:
     436            for payment in payments:
     437                if company == getattr(payment, 'r_company', None):
     438                    hitlist.append(dict(
     439                        p_id=payment.p_id,
     440                        amount_auth=payment.amount_auth,
     441                        p_category=payment.p_category,
     442                        display_item=payment.display_item,
     443                        p_session=payment.p_session,
     444                        p_state=payment.p_state,
     445                        r_company=getattr(payment, 'r_company', None)
     446                        )
     447                      )
     448            return hitlist
     449        for payment in payments:
     450            hitlist.append(dict(
     451                p_id=payment.p_id,
     452                amount_auth=payment.amount_auth,
     453                p_category=payment.p_category,
     454                display_item=payment.display_item,
     455                p_session=payment.p_session,
     456                p_state=payment.p_state,
     457                r_company=getattr(payment, 'r_company', None)
     458                )
     459              )
     460        return hitlist
Note: See TracChangeset for help on using the changeset viewer.