You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

91 lines
3.1 KiB

from odoo import models, fields, api
from odoo.exceptions import UserError, ValidationError,Warning
from psycopg2 import sql, DatabaseError
from werkzeug import utils
class opendons_bank_deposit(models.Model):
_name = 'opendons.bankdeposit'
_description = 'manage bank deposit'
company_id = fields.Many2one(
"res.company",
string="Company",
ondelete="cascade",
default=lambda self: self.env.company,
)
manual_mode_payment_id=fields.Many2one(
"account.payment.mode",
string="manual mode payment",
compute="_compute_manual_mode_payment"
)
payment_batch_ids = fields.One2many(
'opendons_payment_batch',
'bankdeposit_id',
string='Payment batchs',
readonly=True
)
@api.model
def _default_currency(self):
company = self.env['res.company']._company_default_get(
'donation.donation')
return company.currency_id
currency_id = fields.Many2one(
'res.currency',
string='Currency',
required=True,
states={'done': [('readonly', True)]},
track_visibility='onchange',
ondelete='restrict',
default=_default_currency
)
printed=fields.Boolean('printed')
donation_count=fields.Integer('donation count',compute='_compute_donation_count')
total_amount=fields.Integer('total amount',compute='_compute_total_amount')
# template_bankdeposit_id=fields.Many2one('opendons.template_bankdeposit', 'bank deposit template')
# html_content=fields.Html('html content',compute='_html_content_rf')
# html_content_print=fields.Html('html content print')
def _compute_donation_count(self):
i=0
for p in self.payment_batch_ids:
for d in p.donation_ids:
for ld in d.line_ids:
i=i+1
self.donation_count=i-1
def _compute_total_amount(self):
i=0
for p in self.payment_batch_ids:
for d in p.donation_ids:
for ld in d.line_ids:
i=i+ld.amount
self.total_amount=i
def _compute_manual_mode_payment(self):
manual_method_payment=self.env['account.payment.method'].search([('code','=','manual')],limit=1)
if manual_method_payment:
m=self.env['account.payment.mode'].search([('payment_method_id','=',int(manual_method_payment.id))],limit=1)
if m:
self.manual_mode_payment_id=m.id
def action_print_bankdeposit(self):
self.ensure_one()
self.printed=True
return self.env.ref("opendons.report_bankdeposits").report_action(self)
class opendons_bank_deposit_template(models.Model):
_name = 'opendons.bankdeposit.template'
_description = 'manage bank deposit template'
name=fields.Char('name')
description=fields.Text('description')
active=fields.Boolean('active')
html_page_header=fields.Html('Html page header')
html_page_section=fields.Html('Html page section')
html_page_footer=fields.Html('Html page footer')