hms_bak/bross_bank_management/models/bank_models.py
mgite f2f7eb0756
Some checks failed
Update odoo 18 / update (push) Failing after 15m16s
Add crons and models
2024-10-31 15:48:37 +04:00

57 lines
2.1 KiB
Python

import base64
import tempfile
import hashlib
import json
import os
from odoo import models, fields, _
from tbc_bank_integration_service_lib.client import TBCBankClient
from odoo.exceptions import UserError
class BankMovements(models.Model):
_name = 'bank.raw.movements'
_description = 'Bank Movements'
json_data = fields.Json(string="Json Data")
json_hash_code = fields.Char(string="Hash Code")
bid = fields.Char(string="Movement Id")
parent_id = fields.Many2one('bank.raw.movements', string="Parent Record")
history_ids = fields.One2many(comodel_name="bank.raw.movements", inverse_name='parent_id', string="History")
def create_or_update_raw_data(self, data, model, bid):
json_data = json.dumps(data, sort_keys=True, indent=4, ensure_ascii=False)
hash_object = hashlib.sha256(json_data.encode())
hash_hex = hash_object.hexdigest()
found_raw_record = self.env[model].search([
('bid', '=', bid),
])
if found_raw_record:
if found_raw_record.json_hash_code != hash_hex:
# found_raw_record.write({
# 'json_data': json_data,
# 'json_hash_code': hash_hex
# })
new_created_record = self.env[model].create({
'json_data': json_data,
'json_hash_code': hash_hex,
'bid': bid,
})
found_raw_record.parent_id = new_created_record.id
else:
found_raw_record = self.env[model].create({
'json_data': json_data,
'json_hash_code': hash_hex,
'bid': bid
})
def get_movements(self):
client = self.env['bank.settings'].get_request_object()
try:
movement_id = '013762510743.2'
movements_by_id = client.get_account_movements_by_id('111111', movement_id)
self.create_or_update_raw_data(movements_by_id, 'bank.raw.movements', movements_by_id['data'].get('movementId'))
except Exception as e:
_logger.error(e)