ishanra

openg2p_disbursement_batch_transaction.py

Jul 20th, 2021
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.55 KB | None | 0 0
  1. def create_bulk_transfer(self):
  2. self._generate_uuid()
  3.  
  4. limit = 1000
  5. beneficiary_transactions = self.env["openg2p.disbursement.main"].search(
  6. [("batch_id", "=", self.id)], limit=limit
  7. )
  8.  
  9. offset = 0
  10.  
  11. # CSV filename as RequestID+Datetime
  12. csvname = (
  13. self.request_id
  14. + "-"
  15. + str(datetime.now().strftime(r"%Y%m%d%H%M%S"))
  16. + ".csv"
  17. )
  18. headers = [
  19. "id",
  20. "request_id",
  21. "payment_mode",
  22. "acc_number",
  23. "acc_holder_name",
  24. "amount",
  25. "currency",
  26. "note",
  27. ]
  28.  
  29. while len(beneficiary_transactions) > 0:
  30. with open(csvname, "w", newline="", encoding="utf-8") as csvfile:
  31. csvwriter = csv.writer(csvfile)
  32. csvwriter.writerow([r for r in headers])
  33. for rec in beneficiary_transactions:
  34. # id,request_id,payment_mode,acc_number,acc_holder_name,amount,currency,note
  35. entry = [
  36. rec.id,
  37. rec.beneficiary_request_id,
  38. rec.payment_mode,
  39. rec.name,
  40. rec.acc_holder_name,
  41. rec.amount,
  42. rec.currency_id.name,
  43. ]
  44.  
  45. csvwriter.writerow(entry)
  46. # id,request_id,payment_mode,acc_number,acc_holder_name,amount,currency,note
  47. beneficiary_transaction_records = []
  48. beneficiary_transaction_records.append(entry)
  49. csvwriter.writerows(
  50. map(lambda x: [x], beneficiary_transaction_records)
  51. )
  52.  
  53. offset += len(beneficiary_transactions)
  54.  
  55. if len(beneficiary_transactions) < limit:
  56. break
  57. beneficiary_transactions = self.env["openg2p.disbursement.main"].search(
  58. [("batch_id", "=", self.id)], limit=limit, offset=offset
  59. )
  60.  
  61. # Uploading to AWS bucket
  62. uploaded = self.upload_to_aws(csvname, "paymenthub-ee-dev")
  63.  
  64. headers = {
  65. # "Content-Type": "multipart/form-data",
  66. }
  67. files = {
  68. "data": (csvname, open(csvname, "rb")),
  69. "note": (None, "Bulk transfers"),
  70. "checksum": (None, str(self.generate_hash(csvname))),
  71. "request_id": (None, str(self.request_id)),
  72. }
Advertisement
Add Comment
Please, Sign In to add comment