52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
# ARQUIVO: ./models/financeiro.py
|
|
from odoo import models, fields, api
|
|
|
|
class RecreacaoFinanceiro(models.Model):
|
|
_name = 'recreacao.financeiro'
|
|
_description = 'Movimentação Financeira'
|
|
_order = 'data_vencimento desc'
|
|
|
|
name = fields.Char(string='Descrição', required=True)
|
|
|
|
tipo = fields.Selection([
|
|
('receita', '🟢 Receita (Entrada)'),
|
|
('despesa', '🔴 Despesa (Saída)')
|
|
], string='Tipo', required=True, default='receita')
|
|
|
|
valor = fields.Float(string='Valor (R$)', required=True)
|
|
|
|
# --- NOVO CAMPO PARA CONTABILIDADE ---
|
|
forma_pagamento = fields.Selection([
|
|
('pix', 'PIX'),
|
|
('dinheiro', 'Dinheiro'),
|
|
('cartao', 'Cartão'),
|
|
('boleto', 'Boleto'),
|
|
('transferencia', 'TED/DOC')
|
|
], string='Forma de Pagto')
|
|
# -------------------------------------
|
|
|
|
data_vencimento = fields.Date(string='Vencimento', required=True, default=fields.Date.context_today)
|
|
data_pagamento = fields.Date(string='Data Pagamento')
|
|
|
|
status = fields.Selection([
|
|
('pendente', 'Pendente'),
|
|
('pago', 'Pago'),
|
|
('cancelado', 'Cancelado')
|
|
], string='Status', default='pendente', tracking=True)
|
|
|
|
partner_id = fields.Many2one('res.partner', string='Pessoa/Fornecedor')
|
|
crianca_id = fields.Many2one('recreacao.crianca', string='Referente ao Aluno')
|
|
|
|
def action_pagar(self):
|
|
for rec in self:
|
|
rec.status = 'pago'
|
|
rec.data_pagamento = fields.Date.today()
|
|
|
|
def action_cancelar(self):
|
|
for rec in self:
|
|
rec.status = 'cancelado'
|
|
|
|
def action_redefinir(self):
|
|
for rec in self:
|
|
rec.status = 'pendente'
|
|
rec.data_pagamento = False |