This commit is contained in:
parent
40ae3c6d45
commit
d16c9b86fd
@ -7,8 +7,9 @@
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.get_movements()</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="active" eval="False"/>
|
||||
<field name="interval_number">5</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="active" eval="True"/>
|
||||
<field name="priority">100</field>
|
||||
</record>
|
||||
|
||||
|
||||
@ -49,9 +49,12 @@ class BankMovements(models.Model):
|
||||
hash_object = hashlib.sha256(json_data.encode())
|
||||
hash_hex = hash_object.hexdigest()
|
||||
|
||||
found_raw_record = self.env[model].search([
|
||||
('bid', '=', bid),
|
||||
])
|
||||
find_records = self.env[model].search([('bid', '=', bid)])
|
||||
|
||||
if len(find_records) > 1:
|
||||
found_raw_record = find_records.sorted(key=lambda x: x.id, reverse=True)[0]
|
||||
else:
|
||||
found_raw_record = find_records
|
||||
|
||||
if found_raw_record:
|
||||
if found_raw_record.json_hash_code != hash_hex:
|
||||
@ -64,9 +67,10 @@ class BankMovements(models.Model):
|
||||
'json_hash_code': hash_hex,
|
||||
'bid': bid,
|
||||
})
|
||||
found_raw_record.parent_id = new_created_record.id
|
||||
for record in find_records:
|
||||
record.parent_id = new_created_record.id
|
||||
else:
|
||||
found_raw_record = self.env[model].create({
|
||||
self.env[model].create({
|
||||
'json_data': json_data,
|
||||
'json_hash_code': hash_hex,
|
||||
'bid': bid
|
||||
@ -74,9 +78,18 @@ class BankMovements(models.Model):
|
||||
|
||||
def get_movements(self):
|
||||
client = self.env['bank.settings'].get_request_object()
|
||||
today_formatted_date = datetime.now().strftime('%Y-%m-%dT00:00:00.000')
|
||||
|
||||
res = client.get_account_movements_by_date_range('111111', '2024-01-01T00:00:00.000', today_formatted_date)
|
||||
found_record = self.env['bank.raw.movements'].search([])
|
||||
if found_record:
|
||||
latest_record = self.env['bank.raw.movements'].search([], order='write_date desc', limit=1)
|
||||
max_write_date = latest_record.write_date
|
||||
max_modified_id = latest_record.id
|
||||
|
||||
max_id_to_process = max_modified_id if found_record else 0
|
||||
start_date = max_write_date.strftime('%Y-%m-%dT00:00:00.000') if found_record else '2024-01-01T00:00:00.000'
|
||||
end_date = datetime.now().strftime('%Y-%m-%dT00:00:00.000')
|
||||
|
||||
res = client.get_account_movements_by_date_range('111111', start_date, end_date)
|
||||
|
||||
if not res['data']:
|
||||
raise UserError(_('No data found for movements'))
|
||||
@ -87,12 +100,14 @@ class BankMovements(models.Model):
|
||||
pages = math.ceil(int(res['data']['pager']['totalcount']) / int(res['data']['pager']['pagesize']))
|
||||
if pages > 1:
|
||||
for page in range(1, pages):
|
||||
res = client.get_account_movements_by_date_range_next_page('111111', page, 700, '2024-01-01T00:00:00.000', today_formatted_date)
|
||||
res = client.get_account_movements_by_date_range_next_page('111111', page, 700, start_date, end_date)
|
||||
for movement in res['data']['movements']:
|
||||
self.create_or_update_raw_data(movement, 'bank.raw.movements', movement['movementId'])
|
||||
self.process_movements(max_id_to_process)
|
||||
|
||||
def process_movements(self, to_process_from_id):
|
||||
to_process_movements = self.env['bank.raw.movements'].search([('id', '>', to_process_from_id)])
|
||||
|
||||
def process_movements(self):
|
||||
to_process_movements = self.env['bank.raw.movements'].search([])
|
||||
for rec in to_process_movements:
|
||||
movement = json.loads(rec.json_data)
|
||||
|
||||
|
||||
@ -7,8 +7,9 @@
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.get_exely_data()</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="active" eval="False"/>
|
||||
<field name="interval_number">5</field>
|
||||
<field name="interval_type">minutes</field>
|
||||
<field name="active" eval="True"/>
|
||||
<field name="priority">100</field>
|
||||
</record>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user