## Script (Python) "approve_epayment"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##
# $Id: aprove_epayment.py 1425 2007-02-15 17:52:01Z joachim $
"""
"""
import logging
logger = logging.getLogger('Skins.approve_epayment')
import DateTime
if context.portal_membership.isAnonymousUser():
    return None

request = context.REQUEST
students = context.portal_url.getPortalObject().campus.students
wftool = context.portal_workflow
mtool = context.portal_membership
is_anon = mtool.isAnonymousUser()
member = mtool.getAuthenticatedMember()
student_id = context.getStudentId()
is_so = context.isSectionOfficer()
if student_id is None or not is_so:
    return context.REQUEST.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())

student = getattr(students,student_id)

pd = {}
#from Products.zdb import set_trace;set_trace()
doc = context.getContent()
review_state = wftool.getInfoFor(context,'review_state',None)
if review_state != "opened":
    return "not opened %s" % review_state
pd['resp_code'] = 'AP'
pd['resp_desc'] = 'Payment approved by %s, %s' % (member,DateTime.DateTime())
doc.edit(mapping=pd)
if doc.type_description.startswith('School Fee'):
    wftool.doActionFor(student,'pay_school_fee')
logger.info('%s approves epayment for %s' % (member,student_id))
wftool.doActionFor(context,'close')
return request.RESPONSE.redirect("%s/waeup_document_view" % context.absolute_url())
