Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def create_bulk_transfer(self):
- self._generate_uuid()
- limit = 1000
- beneficiary_transactions = self.env["openg2p.disbursement.main"].search(
- [("batch_id", "=", self.id)], limit=limit
- )
- offset = 0
- # CSV filename as RequestID+Datetime
- csvname = (
- self.request_id
- + "-"
- + str(datetime.now().strftime(r"%Y%m%d%H%M%S"))
- + ".csv"
- )
- headers = [
- "id",
- "request_id",
- "payment_mode",
- "acc_number",
- "acc_holder_name",
- "amount",
- "currency",
- "note",
- ]
- while len(beneficiary_transactions) > 0:
- with open(csvname, "w", newline="", encoding="utf-8") as csvfile:
- csvwriter = csv.writer(csvfile)
- csvwriter.writerow([r for r in headers])
- for rec in beneficiary_transactions:
- # id,request_id,payment_mode,acc_number,acc_holder_name,amount,currency,note
- entry = [
- rec.id,
- rec.beneficiary_request_id,
- rec.payment_mode,
- rec.name,
- rec.acc_holder_name,
- rec.amount,
- rec.currency_id.name,
- ]
- csvwriter.writerow(entry)
- # id,request_id,payment_mode,acc_number,acc_holder_name,amount,currency,note
- beneficiary_transaction_records = []
- beneficiary_transaction_records.append(entry)
- csvwriter.writerows(
- map(lambda x: [x], beneficiary_transaction_records)
- )
- offset += len(beneficiary_transactions)
- if len(beneficiary_transactions) < limit:
- break
- beneficiary_transactions = self.env["openg2p.disbursement.main"].search(
- [("batch_id", "=", self.id)], limit=limit, offset=offset
- )
- # Uploading to AWS bucket
- uploaded = self.upload_to_aws(csvname, "paymenthub-ee-dev")
- headers = {
- # "Content-Type": "multipart/form-data",
- }
- files = {
- "data": (csvname, open(csvname, "rb")),
- "note": (None, "Bulk transfers"),
- "checksum": (None, str(self.generate_hash(csvname))),
- "request_id": (None, str(self.request_id)),
- }
Advertisement
Add Comment
Please, Sign In to add comment