On transaction create assign category following regex
All checks were successful
Update odoo 18 / update (push) Successful in 1m0s
All checks were successful
Update odoo 18 / update (push) Successful in 1m0s
This commit is contained in:
parent
60ce38d367
commit
7b00bbbe79
@ -22,6 +22,7 @@ class BrosseBankTransactions(models.Model):
|
|||||||
_name = 'brosse.bank.transactions'
|
_name = 'brosse.bank.transactions'
|
||||||
_description = 'Bank Transactions'
|
_description = 'Bank Transactions'
|
||||||
_rec_name = 'document_number'
|
_rec_name = 'document_number'
|
||||||
|
_order = 'create_date desc'
|
||||||
|
|
||||||
movement_id = fields.Char(string='Movement ID')
|
movement_id = fields.Char(string='Movement ID')
|
||||||
external_payment_id = fields.Char(string='External Payment ID')
|
external_payment_id = fields.Char(string='External Payment ID')
|
||||||
@ -109,3 +110,12 @@ class BrosseBankTransactions(models.Model):
|
|||||||
'amount': rec.amount,
|
'amount': rec.amount,
|
||||||
'exchange_rate': rec.exchange_rate,
|
'exchange_rate': rec.exchange_rate,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
def create(self, vals):
|
||||||
|
res = super(BrosseBankTransactions, self).create(vals)
|
||||||
|
all_patterns = self.env['hms.payment.categories.regex'].search([])
|
||||||
|
for pattern in all_patterns:
|
||||||
|
matching_transaction = pattern.search_transactions_with_wallet_and_domestic(pattern.regex, res)
|
||||||
|
if matching_transaction:
|
||||||
|
res.write({'category_id': pattern.category_id.id})
|
||||||
|
return res
|
||||||
@ -12,9 +12,8 @@ class PaymentCategoriesRegex(models.Model):
|
|||||||
regex = fields.Char('Regex', required=True)
|
regex = fields.Char('Regex', required=True)
|
||||||
category_id = fields.Many2one(comodel_name="hms.payment.categories", string="Category")
|
category_id = fields.Many2one(comodel_name="hms.payment.categories", string="Category")
|
||||||
|
|
||||||
def search_transactions_with_wallet_and_domestic(self, regex_patern):
|
def search_transactions_with_wallet_and_domestic(self, regex_patern, transactions):
|
||||||
pattern = re.compile(regex_patern, re.IGNORECASE)
|
pattern = re.compile(regex_patern, re.IGNORECASE)
|
||||||
transactions = self.env['brosse.bank.transactions'].search([('manually_assigned', '!=', True)])
|
|
||||||
|
|
||||||
matching_transactions = []
|
matching_transactions = []
|
||||||
for transaction in transactions:
|
for transaction in transactions:
|
||||||
@ -28,7 +27,8 @@ class PaymentCategoriesRegex(models.Model):
|
|||||||
|
|
||||||
def write(self, vals):
|
def write(self, vals):
|
||||||
res = super(PaymentCategoriesRegex, self).write(vals)
|
res = super(PaymentCategoriesRegex, self).write(vals)
|
||||||
matching_transactions = self.search_transactions_with_wallet_and_domestic(self.regex)
|
transactions = self.env['brosse.bank.transactions'].search([('manually_assigned', '!=', True)])
|
||||||
|
matching_transactions = self.search_transactions_with_wallet_and_domestic(self.regex, transactions)
|
||||||
|
|
||||||
for transaction in matching_transactions:
|
for transaction in matching_transactions:
|
||||||
transaction.write({'category_id': self.category_id.id})
|
transaction.write({'category_id': self.category_id.id})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user