Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.54 KB | None | 0 0
  1. def all_payments():
  2.  
  3. ret_hash = {'status': '0', 'error': ''}
  4. try:
  5.  
  6. ##INITIALIZE TABLES NEEDED
  7. o_payments = g.Base.classes.payments
  8. o_payment_methods = g.Base.classes.payment_methods
  9. o_receivable_payments = g.Base.classes.receivable_payments
  10. o_receivables = g.Base.classes.receivables
  11. o_invoice_payments = g.Base.classes.invoice_payments
  12. o_invoices = g.Base.classes.invoices
  13. o_payment_statuses = g.Base.classes.payment_statuses
  14. o_account_balances = g.Base.classes.account_balances
  15. o_accounts = g.Base.classes.accounts
  16. o_students = g.Base.classes.students
  17. o_persons = g.Base.classes.persons
  18.  
  19. collections = g.db.session.query(
  20. o_payments.amount_paid,\
  21. o_payments.payment_date,\
  22. o_payments.payment_method,\
  23. o_payments.bank,\
  24. o_payments.reference_number,\
  25. o_payments.or_number,\
  26. o_payment_methods.name,\
  27. o_receivables.amount_due,\
  28. o_receivables.payment_due_date,\
  29. o_students.student_number,\
  30. o_persons.first_name,\
  31. o_persons.last_name,\
  32. o_payments.id,\
  33. o_payments.payment_status,\
  34. o_students.student_number,\
  35. o_payment_methods.option,\
  36. o_students.account,\
  37. o_persons.email).\
  38. filter(o_payments.payment_status==o_payment_statuses.id).\
  39. filter(o_payments.payment_method==o_payment_methods.id).\
  40. filter(o_payments.id==o_receivable_payments.payment).\
  41. filter(o_receivable_payments.receivable==o_receivables.id).\
  42. filter(o_invoice_payments.receivable==o_receivables.id).\
  43. filter(o_invoices.id==o_invoice_payments.invoice).\
  44. filter(o_account_balances.id==o_invoices.account_balance).\
  45. filter(o_accounts.id==o_account_balances.account).\
  46. filter(o_students.account==o_accounts.id).\
  47. filter(o_persons.party==o_accounts.person).\
  48. group_by(
  49. o_payments.amount_paid,\
  50. o_payments.payment_date,\
  51. o_payments.payment_method,\
  52. o_payments.bank,\
  53. o_payments.reference_number,\
  54. o_payments.or_number,\
  55. o_payment_methods.id,\
  56. o_receivables.amount_due,\
  57. o_receivables.payment_due_date,\
  58. o_students.student_number,\
  59. o_persons.first_name,\
  60. o_persons.last_name,\
  61. o_payments.id,\
  62. o_payments.payment_status,\
  63. o_payment_methods.option,\
  64. o_students.account,\
  65. o_persons.email).\
  66. order_by(o_payments.payment_date.desc()).all()
  67.  
  68. ret_hash['data'] = []
  69. for info in collections:
  70. stud_name = info.first_name+" "+info.last_name
  71. status = ""
  72. if info.payment_status == 1:
  73. status = "Processing"
  74. elif info.payment_status == 2:
  75. status = "Paid"
  76.  
  77. if info.name.lower() != 'paynamics':
  78. tender = str(info.name)+"\n"+info.bank
  79. else:
  80. tender = str(info.name)+"\n"+info.option
  81.  
  82. pay_status = ""
  83. if str(info.payment_date) != "None":
  84. pay_status = str(info.payment_date)
  85.  
  86. temp_hash = {
  87. "trans_id" : "",
  88. "ref_no" : info.reference_number,
  89. "or_number" : info.or_number,
  90. "student_name" : stud_name,
  91. "payment_date" : pay_status,
  92. "due_date" : str(info.payment_due_date),
  93. "amount_due" : float(info.amount_due),
  94. "amount_paid" : float(info.amount_paid),
  95. "tender" : tender,
  96. "student_number" : info.student_number,
  97. "status" : status,
  98. "payment_id" : info.id,
  99. "account_id" : info.account,
  100. "payment_method" : info.name,
  101. "email": info.email
  102. }
  103.  
  104. ret_hash['data'].append(temp_hash)
  105.  
  106. except Exception as err:
  107. ret_hash['status'] = -1
  108. ret_hash['error'] = "Unknown error."
  109. app.logger.debug("all_payments error : %s " % (err))
  110. return ret_hash, 500, {'Content-Type': 'application/json; character=utf-8'}
  111.  
  112. return ret_hash, 200, {'Content-Type': 'application/json; character=utf-8'}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement