hms_bak/bross_bank_management/models/bank_transactions.py
mgite 36b2a3fab6
Some checks failed
Update odoo 18 / update (push) Failing after 1m32s
maaaany changes
2024-11-16 02:07:15 +04:00

76 lines
3.3 KiB
Python

from odoo import models, fields, api, _
from odoo.exceptions import UserError, ValidationError
class BrosseBankTransactionsStatusCode(models.Model):
_name = 'brosse.bank.transactions.status.code'
_description = 'Bank Transactions Status Code'
name = fields.Char(string='Name')
code = fields.Integer(string='Code')
class BrosseBankTransactionsSubtypeCode(models.Model):
_name = 'brosse.bank.transactions.subtype.code'
_description = 'Bank Transactions Subtype Code'
name = fields.Char(string='Name')
code = fields.Integer(string='Code')
class BrosseBankTransactions(models.Model):
_name = 'brosse.bank.transactions'
_description = 'Bank Transactions'
_rec_name = 'document_number'
movement_id = fields.Char(string='Movement ID')
external_payment_id = fields.Char(string='External Payment ID')
debit_credit = fields.Boolean(string='Debit/Credit', help="False = Debit, True = Credit")
value_date = fields.Date(string='Value Date')
description = fields.Char(string="Description")
amount = fields.Monetary(string="Amount", currency_field='currency_id')
currency_id = fields.Many2one('res.currency', string='Currency')
account_number = fields.Char(string='Account Number')
account_name = fields.Char(string='Account Name')
comment = fields.Text(string="Comment")
document_date = fields.Date(string='Document Date')
document_number = fields.Char(string='Document Number')
partner_name = fields.Char(string="Partner Name")
partner_tax_code = fields.Char(string='Partner Tax Code')
taxpayer_code = fields.Char(string='Taxpayer Code')
taxpayer_name = fields.Char(string="Taxpayer Name")
operation_code = fields.Char(string='Operation Code')
exchange_rate = fields.Float(string="Exchange Rate")
exchange_rate_text = fields.Char(string='Exchange Rate (Text)')
partner_personal_number = fields.Char(string='Partner Personal Number')
partner_document_type = fields.Char(string='Partner Document Type')
partner_document_number = fields.Char(string='Partner Document Number')
parent_external_payment_id = fields.Char(string='Parent External Payment ID')
status_code_id = fields.Many2one('brosse.bank.transactions.status.code', string='Status Code')
transaction_type_id = fields.Many2one('brosse.bank.transactions.subtype.code', string='Transaction Type')
bank_account_id = fields.Many2one('brosse.bank.account', string="Bank Account")
@api.depends('document_date', 'amount')
def _compute_display_name(self):
for rec in self:
rec.display_name = f"{rec.document_date} / {rec.amount} {rec.currency_id.symbol}" if rec.document_date and rec.amount else ""
def action_process_selected_records(self):
booking_id = self.env.context.get('booking_id')
booking = self.env['hms.bookings'].browse(booking_id)
for rec in self:
if booking.payment_ids:
to_pay = booking.total_amount - sum(booking.payment_ids.mapped('amount'))
else:
to_pay = booking.total_amount
self.env['hms.payments'].create({
'bank_payment_id': rec.id,
'booking_id': booking.id,
'currency_id': rec.currency_id.id,
'amount': rec.amount,
'exchange_rate': rec.exchange_rate,
})