## Script (Python) "pay_online"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##
# $Id: requery_payment.py 1620 2007-03-22 20:52:27Z joachim $
"""
requery online-payment
"""
from urllib import urlencode
import logging
logger = logging.getLogger('Skins.requery_payment')
import DateTime

if context.portal_membership.isAnonymousUser():
    return None

request = context.REQUEST
wftool = context.portal_workflow
students = context.portal_url.getPortalObject().campus.students

student_id = context.getStudentId()
student = getattr(students,student_id)

sbrain = context.students_catalog(id=student_id)[0]
info = {}
info['site_id'] = '300100100'
info['currency_id'] = '566'

#from Products.zdb import set_trace;set_trace()
if student_id is None:
    return context.REQUEST.RESPONSE.redirect("%s/srp_anonymous_view" % context.portal_url())

if context.portal_url().find('uniben-demo.waeup.org') >-1 or\
   context.portal_url().find('uniben.waeup.org') >-1:
    info['action'] = "http://www.wemaonlinepayments.biz/querytransaction.aspx"
else:
    #pass
    #return None
    info['action'] = "%s/payments/%s/simulate_queryatransaction" % (student.absolute_url(),p_id)


payment = context
if payment.portal_type != 'Payment':
    return
payment_doc = payment.getContent()
#from Products.zdb import set_trace;set_trace()
info['order_id'] = p_id = payment_doc.order_id
info['callback_url'] = "%s/payments/%s/epayment_requery_cb" % (student.absolute_url(),p_id)
info['type_description'] = payment_doc.type_description
info['amount'] = payment_doc.amount
info['student_id'] = student_id
logger.info('%(student_id)s requeried online school fee payment for order_id %(order_id)s' % info)
payment_fields = (('x_SiteID','site_id'),
                  ('x_OrderID','order_id'),
                  ('x_Redirect_url','callback_url'),
                  )
args = {}
for arg,field in payment_fields:
    args[arg] = info[field]
info['args'] = args
return context.requery_payment_form(info=info)
