mirror of
https://github.com/OCA/account-financial-tools.git
synced 2025-02-02 12:47:26 +02:00
Merge pull request #64 from akretion/7.0-account-check-deposit
7.0 account check deposit
This commit is contained in:
22
account_check_deposit/__init__.py
Normal file
22
account_check_deposit/__init__.py
Normal file
@@ -0,0 +1,22 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
###############################################################################
|
||||
#
|
||||
# account_check_deposit for Odoo/OpenERP
|
||||
# Copyright (C) 2012-2014 Akretion (http://www.akretion.com/)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
from . import account_deposit
|
||||
59
account_check_deposit/__openerp__.py
Normal file
59
account_check_deposit/__openerp__.py
Normal file
@@ -0,0 +1,59 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
###############################################################################
|
||||
#
|
||||
# account_check_deposit for Odoo/OpenERP
|
||||
# Copyright (C) 2012-2014 Akretion (http://www.akretion.com/)
|
||||
# @author: Benoît GUILLOT <benoit.guillot@akretion.com>
|
||||
# @author: Chafique DELLI <chafique.delli@akretion.com>
|
||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
{
|
||||
'name': 'Account Check Deposit',
|
||||
'version': '0.1',
|
||||
'category': 'Accounting & Finance',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Manage deposit of checks to the bank',
|
||||
'description': """
|
||||
Account Check Deposit
|
||||
=====================
|
||||
This module allows you to easily manage check deposits : you can select all
|
||||
the checks you received as payments and create a global deposit for the
|
||||
selected checks.
|
||||
|
||||
A journal for received checks is automatically created.
|
||||
You must configure on this journal the default debit account and the default
|
||||
credit account. You must also configure on the company the account for
|
||||
check deposits.
|
||||
""",
|
||||
'author': 'Akretion',
|
||||
'website': 'http://www.akretion.com/',
|
||||
'depends': [
|
||||
'account_accountant',
|
||||
'report_webkit',
|
||||
],
|
||||
'data': [
|
||||
'account_deposit_view.xml',
|
||||
'account_deposit_sequence.xml',
|
||||
'company_view.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'security/check_deposit_security.xml',
|
||||
'account_data.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'application': True,
|
||||
}
|
||||
32
account_check_deposit/account_data.xml
Normal file
32
account_check_deposit/account_data.xml
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
account_check_deposit for Odoo/OpenERP
|
||||
Copyright (C) 2014 Akretion (http://www.akretion.com/)
|
||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
The licence is in the file __openerp__.py
|
||||
-->
|
||||
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
|
||||
<record id="check_received_journal_seq" model="ir.sequence">
|
||||
<field name="name">Journal Check Received</field>
|
||||
<field name="prefix">CHK/</field>
|
||||
<field name="padding">6</field>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
</record>
|
||||
|
||||
<!-- The user will have to configure manually the default_credit_account_id
|
||||
and default_debit_account_id, we can't do that for him -->
|
||||
<record id="check_received_journal" model="account.journal">
|
||||
<field name="name">Check Received</field>
|
||||
<field name="code">CHK</field>
|
||||
<field name="type">bank</field>
|
||||
<field name="sequence_id" ref="check_received_journal_seq"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
340
account_check_deposit/account_deposit.py
Normal file
340
account_check_deposit/account_deposit.py
Normal file
@@ -0,0 +1,340 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
###############################################################################
|
||||
#
|
||||
# account_check_deposit for Odoo/OpenERP
|
||||
# Copyright (C) 2012-2014 Akretion (http://www.akretion.com/)
|
||||
# @author: Benoît GUILLOT <benoit.guillot@akretion.com>
|
||||
# @author: Chafique DELLI <chafique.delli@akretion.com>
|
||||
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
from openerp.osv import fields, orm
|
||||
from openerp.tools.translate import _
|
||||
import openerp.addons.decimal_precision as dp
|
||||
|
||||
|
||||
class account_check_deposit(orm.Model):
|
||||
_name = "account.check.deposit"
|
||||
_description = "Account Check Deposit"
|
||||
_order = 'deposit_date desc'
|
||||
|
||||
def _compute_check_deposit(self, cr, uid, ids, name, args, context=None):
|
||||
res = {}
|
||||
for deposit in self.browse(cr, uid, ids, context=context):
|
||||
total = 0.0
|
||||
count = 0
|
||||
reconcile = False
|
||||
currency_none_same_company_id = False
|
||||
if deposit.company_id.currency_id != deposit.currency_id:
|
||||
currency_none_same_company_id = deposit.currency_id.id
|
||||
for line in deposit.check_payment_ids:
|
||||
count += 1
|
||||
if currency_none_same_company_id:
|
||||
total += line.amount_currency
|
||||
else:
|
||||
total += line.debit
|
||||
if deposit.move_id:
|
||||
for line in deposit.move_id.line_id:
|
||||
if line.debit > 0 and line.reconcile_id:
|
||||
reconcile = True
|
||||
res[deposit.id] = {
|
||||
'total_amount': total,
|
||||
'is_reconcile': reconcile,
|
||||
'currency_none_same_company_id': currency_none_same_company_id,
|
||||
'check_count': count,
|
||||
}
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'name': fields.char(
|
||||
'Name', size=64, readonly=True),
|
||||
'check_payment_ids': fields.one2many(
|
||||
'account.move.line', 'check_deposit_id', 'Check Payments',
|
||||
states={'done': [('readonly', '=', True)]}),
|
||||
'deposit_date': fields.date(
|
||||
'Deposit Date', required=True,
|
||||
states={'done': [('readonly', '=', True)]}),
|
||||
'journal_id': fields.many2one(
|
||||
'account.journal', 'Journal', domain=[('type', '=', 'bank')],
|
||||
required=True, states={'done': [('readonly', '=', True)]}),
|
||||
'journal_default_account_id': fields.related(
|
||||
'journal_id', 'default_debit_account_id', type='many2one',
|
||||
relation='account.account',
|
||||
string='Default Debit Account of the Journal'),
|
||||
'currency_id': fields.many2one(
|
||||
'res.currency', 'Currency', required=True,
|
||||
states={'done': [('readonly', '=', True)]}),
|
||||
'currency_none_same_company_id': fields.function(
|
||||
_compute_check_deposit, type='many2one',
|
||||
relation='res.currency', multi='deposit',
|
||||
string='Currency (False if same as company)'),
|
||||
'state': fields.selection([
|
||||
('draft', 'Draft'),
|
||||
('done', 'Done'),
|
||||
], 'Status', readonly=True),
|
||||
'move_id': fields.many2one(
|
||||
'account.move', 'Journal Entry', readonly=True),
|
||||
'partner_bank_id': fields.many2one(
|
||||
'res.partner.bank', 'Bank Account', required=True,
|
||||
domain="[('company_id', '=', company_id)]",
|
||||
states={'done': [('readonly', '=', True)]}),
|
||||
'line_ids': fields.related(
|
||||
'move_id', 'line_id', relation='account.move.line',
|
||||
type='one2many', string='Lines', readonly=True),
|
||||
'company_id': fields.many2one(
|
||||
'res.company', 'Company', required=True,
|
||||
change_default=True,
|
||||
states={'done': [('readonly', '=', True)]}),
|
||||
'total_amount': fields.function(
|
||||
_compute_check_deposit, multi='deposit',
|
||||
string="Total Amount", readonly=True,
|
||||
type="float", digits_compute=dp.get_precision('Account')),
|
||||
'check_count': fields.function(
|
||||
_compute_check_deposit, multi='deposit', readonly=True,
|
||||
string="Number of Checks", type="integer"),
|
||||
'is_reconcile': fields.function(
|
||||
_compute_check_deposit, multi='deposit', readonly=True,
|
||||
string="Reconcile", type="boolean"),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'name': '/',
|
||||
'deposit_date': fields.date.context_today,
|
||||
'state': 'draft',
|
||||
'company_id': lambda self, cr, uid, c: self.pool['res.company'].
|
||||
_company_default_get(cr, uid, 'account.check.deposit', context=c),
|
||||
}
|
||||
|
||||
def _check_deposit(self, cr, uid, ids):
|
||||
for deposit in self.browse(cr, uid, ids):
|
||||
deposit_currency = deposit.currency_id
|
||||
if deposit_currency == deposit.company_id.currency_id:
|
||||
for line in deposit.check_payment_ids:
|
||||
if line.currency_id:
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("The check with amount %s and reference '%s' "
|
||||
"is in currency %s but the deposit is in "
|
||||
"currency %s.") % (
|
||||
line.debit, line.ref or '',
|
||||
line.currency_id.name,
|
||||
deposit_currency.name))
|
||||
else:
|
||||
for line in deposit.check_payment_ids:
|
||||
if line.currency_id != deposit_currency:
|
||||
raise orm.except_orm(
|
||||
_('Error:'),
|
||||
_("The check with amount %s and reference '%s' "
|
||||
"is in currency %s but the deposit is in "
|
||||
"currency %s.") % (
|
||||
line.debit, line.ref or '',
|
||||
line.currency_id.name,
|
||||
deposit_currency.name))
|
||||
return True
|
||||
|
||||
_constraints = [(
|
||||
_check_deposit,
|
||||
"All the checks of the deposit must be in the currency of the deposit",
|
||||
['currency_id', 'check_payment_ids', 'company_id']
|
||||
)]
|
||||
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
for deposit in self.browse(cr, uid, ids, context=context):
|
||||
if deposit.state == 'done':
|
||||
raise orm.except_orm(
|
||||
_('Error!'),
|
||||
_("The deposit '%s' is in valid state, so you must "
|
||||
"cancel it before deleting it.")
|
||||
% deposit.name)
|
||||
return super(account_check_deposit, self).unlink(
|
||||
cr, uid, ids, context=context)
|
||||
|
||||
def backtodraft(self, cr, uid, ids, context=None):
|
||||
for deposit in self.browse(cr, uid, ids, context=context):
|
||||
if deposit.move_id:
|
||||
# It will raise here if journal_id.update_posted = False
|
||||
deposit.move_id.button_cancel()
|
||||
for line in deposit.check_payment_ids:
|
||||
if line.reconcile_id:
|
||||
line.reconcile_id.unlink()
|
||||
deposit.move_id.unlink()
|
||||
deposit.write({'state': 'draft'})
|
||||
return True
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
if vals.get('name', '/') == '/':
|
||||
vals['name'] = self.pool['ir.sequence'].\
|
||||
next_by_code(cr, uid, 'account.check.deposit')
|
||||
return super(account_check_deposit, self).\
|
||||
create(cr, uid, vals, context=context)
|
||||
|
||||
def _prepare_account_move_vals(self, cr, uid, deposit, context=None):
|
||||
date = deposit.deposit_date
|
||||
period_obj = self.pool['account.period']
|
||||
period_ids = period_obj.find(cr, uid, dt=date, context=context)
|
||||
# period_ids will always have a value, cf the code of find()
|
||||
move_vals = {
|
||||
'journal_id': deposit.journal_id.id,
|
||||
'date': date,
|
||||
'period_id': period_ids[0],
|
||||
'name': _('Check Deposit %s') % deposit.name,
|
||||
'ref': deposit.name,
|
||||
}
|
||||
return move_vals
|
||||
|
||||
def _prepare_move_line_vals(
|
||||
self, cr, uid, line, context=None):
|
||||
assert (line.debit > 0), 'Debit must have a value'
|
||||
return {
|
||||
'name': _('Check Deposit - Ref. Check %s') % line.ref,
|
||||
'credit': line.debit,
|
||||
'debit': 0.0,
|
||||
'account_id': line.account_id.id,
|
||||
'partner_id': line.partner_id.id,
|
||||
'currency_id': line.currency_id.id or False,
|
||||
'amount_currency': line.amount_currency * -1,
|
||||
}
|
||||
|
||||
def _prepare_counterpart_move_lines_vals(
|
||||
self, cr, uid, deposit, total_debit, total_amount_currency,
|
||||
context=None):
|
||||
return {
|
||||
'name': _('Check Deposit %s') % deposit.name,
|
||||
'debit': total_debit,
|
||||
'credit': 0.0,
|
||||
'account_id': deposit.company_id.check_deposit_account_id.id,
|
||||
'partner_id': False,
|
||||
'currency_id': deposit.currency_none_same_company_id.id or False,
|
||||
'amount_currency': total_amount_currency,
|
||||
}
|
||||
|
||||
def validate_deposit(self, cr, uid, ids, context=None):
|
||||
am_obj = self.pool['account.move']
|
||||
aml_obj = self.pool['account.move.line']
|
||||
if context is None:
|
||||
context = {}
|
||||
for deposit in self.browse(cr, uid, ids, context=context):
|
||||
move_vals = self._prepare_account_move_vals(
|
||||
cr, uid, deposit, context=context)
|
||||
context['journal_id'] = move_vals['journal_id']
|
||||
context['period_id'] = move_vals['period_id']
|
||||
move_id = am_obj.create(cr, uid, move_vals, context=context)
|
||||
total_debit = 0.0
|
||||
total_amount_currency = 0.0
|
||||
to_reconcile_line_ids = []
|
||||
for line in deposit.check_payment_ids:
|
||||
total_debit += line.debit
|
||||
total_amount_currency += line.amount_currency
|
||||
line_vals = self._prepare_move_line_vals(
|
||||
cr, uid, line, context=context)
|
||||
line_vals['move_id'] = move_id
|
||||
move_line_id = aml_obj.create(
|
||||
cr, uid, line_vals, context=context)
|
||||
to_reconcile_line_ids.append([line.id, move_line_id])
|
||||
|
||||
# Create counter-part
|
||||
if not deposit.company_id.check_deposit_account_id:
|
||||
raise orm.except_orm(
|
||||
_('Configuration Error:'),
|
||||
_("Missing Account for Check Deposits on the "
|
||||
"company '%s'.") % deposit.company_id.name)
|
||||
|
||||
counter_vals = self._prepare_counterpart_move_lines_vals(
|
||||
cr, uid, deposit, total_debit, total_amount_currency,
|
||||
context=context)
|
||||
counter_vals['move_id'] = move_id
|
||||
aml_obj.create(cr, uid, counter_vals, context=context)
|
||||
|
||||
am_obj.post(cr, uid, [move_id], context=context)
|
||||
deposit.write({'state': 'done', 'move_id': move_id})
|
||||
# We have to reconcile after post()
|
||||
for reconcile_line_ids in to_reconcile_line_ids:
|
||||
aml_obj.reconcile(
|
||||
cr, uid, reconcile_line_ids, context=context)
|
||||
return True
|
||||
|
||||
def onchange_company_id(
|
||||
self, cr, uid, ids, company_id, currency_id, context=None):
|
||||
vals = {}
|
||||
if company_id:
|
||||
company = self.pool['res.company'].browse(
|
||||
cr, uid, company_id, context=context)
|
||||
if currency_id:
|
||||
if company.currency_id.id == currency_id:
|
||||
vals['currency_none_same_company_id'] = False
|
||||
else:
|
||||
vals['currency_none_same_company_id'] = currency_id
|
||||
partner_bank_ids = self.pool['res.partner.bank'].search(
|
||||
cr, uid, [('company_id', '=', company_id)], context=context)
|
||||
if len(partner_bank_ids) == 1:
|
||||
vals['partner_bank_id'] = partner_bank_ids[0]
|
||||
else:
|
||||
vals['currency_none_same_company_id'] = False
|
||||
vals['partner_bank_id'] = False
|
||||
return {'value': vals}
|
||||
|
||||
def onchange_journal_id(self, cr, uid, ids, journal_id, context=None):
|
||||
vals = {}
|
||||
if journal_id:
|
||||
journal = self.pool['account.journal'].browse(
|
||||
cr, uid, journal_id, context=context)
|
||||
vals['journal_default_account_id'] = \
|
||||
journal.default_debit_account_id.id
|
||||
if journal.currency:
|
||||
vals['currency_id'] = journal.currency.id
|
||||
else:
|
||||
vals['currency_id'] = journal.company_id.currency_id.id
|
||||
else:
|
||||
vals['journal_default_account_id'] = False
|
||||
return {'value': vals}
|
||||
|
||||
def onchange_currency_id(
|
||||
self, cr, uid, ids, currency_id, company_id, context=None):
|
||||
vals = {}
|
||||
if currency_id and company_id:
|
||||
company = self.pool['res.company'].browse(
|
||||
cr, uid, company_id, context=context)
|
||||
if company.currency_id.id == currency_id:
|
||||
vals['currency_none_same_company_id'] = False
|
||||
else:
|
||||
vals['currency_none_same_company_id'] = currency_id
|
||||
else:
|
||||
vals['currency_none_same_company_id'] = False
|
||||
return {'value': vals}
|
||||
|
||||
|
||||
class account_move_line(orm.Model):
|
||||
_inherit = "account.move.line"
|
||||
|
||||
_columns = {
|
||||
'check_deposit_id': fields.many2one(
|
||||
'account.check.deposit',
|
||||
'Check Deposit'),
|
||||
}
|
||||
|
||||
|
||||
class res_company(orm.Model):
|
||||
_inherit = 'res.company'
|
||||
|
||||
_columns = {
|
||||
'check_deposit_account_id': fields.many2one(
|
||||
'account.account', 'Account for Check Deposits',
|
||||
domain=[
|
||||
('type', '<>', 'view'),
|
||||
('type', '<>', 'closed'),
|
||||
('reconcile', '=', True)]),
|
||||
}
|
||||
27
account_check_deposit/account_deposit_sequence.xml
Normal file
27
account_check_deposit/account_deposit_sequence.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
account_check_deposit for Odoo/OpenERP
|
||||
Copyright (C) 2012-2014 Akretion (http://www.akretion.com/)
|
||||
@author: Benoît GUILLOT <benoit.guillot@akretion.com>
|
||||
The licence is in the file __openerp__.py
|
||||
-->
|
||||
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Sequences for account.check.deposit -->
|
||||
<record id="seq_type_account_check_deposit" model="ir.sequence.type">
|
||||
<field name="name">Account Check Deposit</field>
|
||||
<field name="code">account.check.deposit</field>
|
||||
</record>
|
||||
|
||||
<record id="seq_account_check_deposit" model="ir.sequence">
|
||||
<field name="name">Account Check Deposit</field>
|
||||
<field name="code">account.check.deposit</field>
|
||||
<field name="prefix">DEP</field>
|
||||
<field name="padding">3</field>
|
||||
<field name="company_id" eval="False"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
135
account_check_deposit/account_deposit_view.xml
Normal file
135
account_check_deposit/account_deposit_view.xml
Normal file
@@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
account_check_deposit for Odoo/OpenERP
|
||||
Copyright (C) 2012-2014 Akretion (http://www.akretion.com/)
|
||||
@author: Benoît GUILLOT <benoit.guillot@akretion.com>
|
||||
@author: Chafique DELLI <chafique.delli@akretion.com>
|
||||
@author: Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
The licence is in the file __openerp__.py
|
||||
-->
|
||||
|
||||
<openerp>
|
||||
<data>
|
||||
<report
|
||||
auto="False"
|
||||
file="account_check_deposit/report/check_deposit.mako"
|
||||
id="check_deposit_webkit"
|
||||
model="account.check.deposit"
|
||||
name="check.deposit.webkit"
|
||||
report_type="webkit"
|
||||
string="Checks Deposit"/>
|
||||
|
||||
<record id="account_check_deposit_view_form" model="ir.ui.view">
|
||||
<field name="name">account.check.deposit.form</field>
|
||||
<field name="model">account.check.deposit</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Checks Deposit" version="7.0">
|
||||
<header>
|
||||
<button name="validate_deposit" states="draft"
|
||||
string="Validate"
|
||||
type="object" class="oe_highlight"/>
|
||||
<button name="backtodraft" states="done"
|
||||
string="Back to Draft" type="object" />
|
||||
<field name="state" widget="statusbar"
|
||||
statusbar_visible="draft,done" />
|
||||
</header>
|
||||
<sheet>
|
||||
<h1>
|
||||
<label string="Check Deposit" />
|
||||
<field name="name" class="oe_inline" />
|
||||
</h1>
|
||||
<group name="main">
|
||||
<group name="left">
|
||||
<field name="deposit_date" />
|
||||
<field name="journal_id"
|
||||
widget="selection"
|
||||
on_change="onchange_journal_id(journal_id, context)"/>
|
||||
<field name="journal_default_account_id"
|
||||
invisible="1"/>
|
||||
<field name="currency_id"
|
||||
groups="base.group_multi_currency"
|
||||
on_change="onchange_currency_id(currency_id, company_id, context)"/>
|
||||
<field name="partner_bank_id"/>
|
||||
</group>
|
||||
<group name="right">
|
||||
<field name="company_id"
|
||||
on_change="onchange_company_id(company_id, currency_id, context)"
|
||||
groups="base.group_multi_company"/>
|
||||
<field name="currency_none_same_company_id"
|
||||
invisible="1"/>
|
||||
<field name="check_count"/>
|
||||
<field name="total_amount" widget="monetary"
|
||||
options="{'currency_field': 'currency_id'}"/>
|
||||
<field name="move_id"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="Check Payments" name="check_payments">
|
||||
<field name="check_payment_ids" nolabel="1"
|
||||
widget="many2many"
|
||||
domain="[('reconcile_id', '=', False),
|
||||
('debit', '>', 0),
|
||||
('journal_id', '=', journal_id),
|
||||
('currency_id', '=', currency_none_same_company_id),
|
||||
('account_id', '=', journal_default_account_id)]"
|
||||
context="{'currency': currency_id,
|
||||
'journal_id': journal_id}" />
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="account_check_deposit_view_tree" model="ir.ui.view">
|
||||
<field name="name">account.check.deposit.tree</field>
|
||||
<field name="model">account.check.deposit</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Checks Deposits" colors="blue:state=='draft';">
|
||||
<field name="name"/>
|
||||
<field name="deposit_date"/>
|
||||
<field name="check_count"/>
|
||||
<field name="total_amount"/>
|
||||
<field name="currency_id" groups="base.group_multi_currency"/>
|
||||
<field name="is_reconcile"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_check_deposit_search" model="ir.ui.view">
|
||||
<field name="name">account.check.deposit.search</field>
|
||||
<field name="model">account.check.deposit</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Checks Deposit Search">
|
||||
<field name="name" string="Checks Deposit"/>
|
||||
<filter name="draft" string="Draft"
|
||||
domain="[('state', '=', 'draft')]" />
|
||||
<filter name="done" string="Done"
|
||||
domain="[('state', '=', 'done')]" />
|
||||
<group string="Group By" name="groupby">
|
||||
<filter name="date_groupby" string="Deposit Date"
|
||||
context="{'group_by': 'deposit_date'}"/>
|
||||
<filter name="journal_groupby" string="Journal"
|
||||
context="{'group_by': 'journal_id'}" />
|
||||
<filter name="currency_groupby" string="Currency"
|
||||
context="{'group_by': 'currency_id'}" />
|
||||
<filter name="partner_bank_groupby" string="Bank Account"
|
||||
context="{'group_by': 'partner_bank_id'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_check_deposit_tree" model="ir.actions.act_window">
|
||||
<field name="name">Checks Deposits</field>
|
||||
<field name="res_model">account.check.deposit</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_check_deposit_tree"
|
||||
id="menu_check_deposit_tree"
|
||||
parent="account.menu_finance_bank_and_cash"
|
||||
sequence="20"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
25
account_check_deposit/company_view.xml
Normal file
25
account_check_deposit/company_view.xml
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright (C) 2014 Akretion (http://www.akretion.com/)
|
||||
@author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
The licence is in the file __openerp__.py
|
||||
-->
|
||||
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="view_company_form" model="ir.ui.view">
|
||||
<field name="name">check.deposit.company.form</field>
|
||||
<field name="model">res.company</field>
|
||||
<field name="inherit_id" ref="base.view_company_form" />
|
||||
<field name="arch" type="xml">
|
||||
<group name="account_grp" position="inside">
|
||||
<field name="check_deposit_account_id" />
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
236
account_check_deposit/i18n/account_check_deposit.pot
Normal file
236
account_check_deposit/i18n/account_check_deposit.pot
Normal file
@@ -0,0 +1,236 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_check_deposit
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-21 10:01+0000\n"
|
||||
"PO-Revision-Date: 2013-02-21 10:01+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: code:addons/account_check_deposit/account_deposit.py:76
|
||||
#, python-format
|
||||
msgid "You cannot modify a posted entry of this journal.\n"
|
||||
"First you should set the journal to allow cancelling entries."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:58
|
||||
msgid "Beneficiary"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: model:ir.actions.report.xml,name:account_check_deposit.check_deposit_webkit
|
||||
msgid "WebKit Checks Deposit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:79
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,state:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:78
|
||||
msgid "Description"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.move.line,check_deposit_id:0
|
||||
msgid "Check Deposit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,company_id:0
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:65
|
||||
msgid "RIB Key"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,deposit_date:0
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:53
|
||||
msgid "Deposit Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:63
|
||||
msgid "Account to crediting"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:76
|
||||
msgid "Payment Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Total Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,bank_id:0
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Checks Deposit Search"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: model:account.account.type,name:account_check_deposit.data_account_type_received_check
|
||||
msgid "Recieved Checks"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:49
|
||||
msgid "Deposit N°"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Total Debit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: code:addons/account_check_deposit/account_deposit.py:76
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:80
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
#: model:ir.actions.act_window,name:account_check_deposit.action_check_deposit_tree
|
||||
#: model:ir.ui.menu,name:account_check_deposit.menu_check_deposit_tree
|
||||
msgid "Checks Deposit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,total_amount:0
|
||||
msgid "total amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: selection:account.check.deposit,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Validate Deposit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
#: field:account.check.deposit,check_payment_ids:0
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:70
|
||||
msgid "Check Payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:41
|
||||
msgid "Deposit Slip of Checks(\\u20acuros)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:55
|
||||
msgid "Bank Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:77
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: model:ir.model,name:account_check_deposit.model_account_check_deposit
|
||||
msgid "Account Check Deposit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:60
|
||||
msgid "Office Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Check Payment"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: selection:account.check.deposit,state:0
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: selection:account.check.deposit,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:99
|
||||
msgid "Total:"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,move_id:0
|
||||
msgid "Journal Entry"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,journal_id:0
|
||||
msgid "Journal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: model:ir.model,name:account_check_deposit.model_account_move_line
|
||||
msgid "Journal Items"
|
||||
msgstr ""
|
||||
|
||||
236
account_check_deposit/i18n/fr.po
Normal file
236
account_check_deposit/i18n/fr.po
Normal file
@@ -0,0 +1,236 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_check_deposit
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-21 10:01+0000\n"
|
||||
"PO-Revision-Date: 2013-02-21 10:01+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: code:addons/account_check_deposit/account_deposit.py:76
|
||||
#, python-format
|
||||
msgid "You cannot modify a posted entry of this journal.\n"
|
||||
"First you should set the journal to allow cancelling entries."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:58
|
||||
msgid "Beneficiary"
|
||||
msgstr "Bénéficiaire"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Group By..."
|
||||
msgstr "Regrouper par..."
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: model:ir.actions.report.xml,name:account_check_deposit.check_deposit_webkit
|
||||
msgid "Print Checks Deposit"
|
||||
msgstr "Imprimer Remise de Chèques"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:79
|
||||
msgid "Designation"
|
||||
msgstr "Désignation"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,state:0
|
||||
msgid "Status"
|
||||
msgstr "Etat"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:78
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.move.line,check_deposit_id:0
|
||||
msgid "Check Deposit"
|
||||
msgstr "Remise de Chèque"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,company_id:0
|
||||
msgid "Company"
|
||||
msgstr "Société"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:65
|
||||
msgid "BIS Key"
|
||||
msgstr "Clé RIB"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,deposit_date:0
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:53
|
||||
msgid "Deposit Date"
|
||||
msgstr "Date du Versement"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:63
|
||||
msgid "Account to crediting"
|
||||
msgstr "Compte à Créditer"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:76
|
||||
msgid "Payment Date"
|
||||
msgstr "Date de Paiement"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Total Credit"
|
||||
msgstr "Crédit Total"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,bank_id:0
|
||||
msgid "Bank"
|
||||
msgstr "Banque"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,name:0
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Checks Deposit Search"
|
||||
msgstr "Rechercher une Remise de Chèques"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: model:account.account.type,name:account_check_deposit.data_account_type_received_check
|
||||
msgid "Recieved Checks"
|
||||
msgstr "Chèques Reçus"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:49
|
||||
msgid "Deposit N°"
|
||||
msgstr "Versement N°"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Total Debit"
|
||||
msgstr "Débit Total"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: code:addons/account_check_deposit/account_deposit.py:76
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "Erreur!"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:80
|
||||
msgid "Amount"
|
||||
msgstr "Montant"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
#: model:ir.actions.act_window,name:account_check_deposit.action_check_deposit_tree
|
||||
#: model:ir.ui.menu,name:account_check_deposit.menu_check_deposit_tree
|
||||
msgid "Checks Deposit"
|
||||
msgstr "Remise de Chèques"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,total_amount:0
|
||||
msgid "total amount"
|
||||
msgstr "montant total"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr "Partenaire"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: selection:account.check.deposit,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr "Annulé"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Validate Deposit"
|
||||
msgstr "Valider Versement"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
#: field:account.check.deposit,check_payment_ids:0
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:70
|
||||
msgid "Check Payments"
|
||||
msgstr "Paiements par Chèque"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:41
|
||||
msgid "Deposit Slip of Checks(Euros)"
|
||||
msgstr "Bordereau de Remise de Chèques(Euros)"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:55
|
||||
msgid "Bank Code"
|
||||
msgstr "Code Banque"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:77
|
||||
msgid "Reference"
|
||||
msgstr "Référence"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: model:ir.model,name:account_check_deposit.model_account_check_deposit
|
||||
msgid "Account Check Deposit"
|
||||
msgstr "Compte Remise de Chèque"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:60
|
||||
msgid "Office Code"
|
||||
msgstr "Code Guichet"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Check Payment"
|
||||
msgstr "Paiement par Chèque"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: selection:account.check.deposit,state:0
|
||||
msgid "Done"
|
||||
msgstr "Terminé"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: view:account.check.deposit:0
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: selection:account.check.deposit,state:0
|
||||
msgid "Draft"
|
||||
msgstr "Brouillon"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: report:addons/account_check_deposit/report/check_deposit.mako:99
|
||||
msgid "Total:"
|
||||
msgstr "Total:"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,move_id:0
|
||||
msgid "Journal Entry"
|
||||
msgstr "Pièce Comptable"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: field:account.check.deposit,journal_id:0
|
||||
msgid "Journal"
|
||||
msgstr "Journal"
|
||||
|
||||
#. module: account_check_deposit
|
||||
#: model:ir.model,name:account_check_deposit.model_account_move_line
|
||||
msgid "Journal Items"
|
||||
msgstr "Écritures comptables"
|
||||
|
||||
22
account_check_deposit/report/__init__.py
Normal file
22
account_check_deposit/report/__init__.py
Normal file
@@ -0,0 +1,22 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# account_check_deposit for Odoo/OpenERP
|
||||
# Copyright (C) 2012-2014 Akretion (http://www.akretion.com/)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
from . import report_webkit_html
|
||||
90
account_check_deposit/report/check_deposit.mako
Normal file
90
account_check_deposit/report/check_deposit.mako
Normal file
@@ -0,0 +1,90 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
page-break-after:auto;
|
||||
border-collapse: collapse;
|
||||
cellspacing="0";
|
||||
font-size:14px;
|
||||
}
|
||||
td { margin: 0px; padding: 3px; border: 1px solid lightgrey; vertical-align: top; }
|
||||
.valign_up1, .valign_up2, .halign, .vtrait1, .vtrait2{
|
||||
position:absolute;
|
||||
}
|
||||
.valign_up1 { left:200px; font-weight: lighter; color:MediumSlateBlue ;
|
||||
}
|
||||
.valign_up2 { left:650px; font-weight: lighter; color:MediumSlateBlue ;
|
||||
}
|
||||
.halign { left:500px}
|
||||
.vtrait1 { left:185px; font-weight: lighter; color:MediumSlateBlue ; }
|
||||
.vtrait2 { left:630px; font-weight: lighter; color:MediumSlateBlue ; }
|
||||
.entete_tab {text-align:center; white-space:nowrap; border-bottom:1px solid;}
|
||||
.cellule_tab {white-space:nowrap; text-align:center;}
|
||||
.amount {white-space:nowrap; text-align:right;}
|
||||
.total {border-top:2px solid;}
|
||||
.titre {text-align:center; font-family:helvetica; font-size:35px; background:lightgrey}
|
||||
|
||||
pre {font-family:helvetica; font-size:12px;}
|
||||
h1 {font-family:helvetica; font-size:18px;}
|
||||
h2 {font-family:helvetica; font-size:25px; border-bottom:1px solid}
|
||||
h3 {font-family:helvetica; font-size:22px; color: MediumSlateBlue ; margin-bottom: auto;}
|
||||
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
%for deposit in objects :
|
||||
<% setLang(deposit.company_id.partner_id.lang) %>
|
||||
<b><span class="titre">${_("Deposit Slip of Checks in ")} ${deposit.currency_id.name}</span></b>
|
||||
|
||||
<table class="basic_table" width="100%">
|
||||
<tr>
|
||||
<th class="date">${_("Deposit Date")}</th>
|
||||
<th class="text-align:center;">${_("Deposit Ref")}</th>
|
||||
<th class="text-align:center;">${_("Beneficiary")}</th>
|
||||
<th class="text-align:center;">${_("Bank Account Number")}</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="date">${formatLang(deposit.deposit_date, date=True)}</td>
|
||||
<td class="text-align:center;">${deposit.name}</td>
|
||||
<td class="text-align:center;">${deposit.company_id.partner_id.name}</td>
|
||||
<td class="text-align:center;">${deposit.partner_bank_id.acc_number}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3>${_("Check Payments")}</h3>
|
||||
|
||||
<table style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="entete_tab">${_("Payment Date")}</th>
|
||||
<th class="entete_tab">${_("Reference")}</th>
|
||||
<th class="entete_tab">${_("Debtor")}</th>
|
||||
<th class="entete_tab">${_("Amount")}</th>
|
||||
</thead>
|
||||
</tr>
|
||||
|
||||
%for move_line in deposit.check_payment_ids :
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="cellule_tab">${move_line.date or ''}</td>
|
||||
<td class="cellule_tab">${move_line.ref or ''}</td>
|
||||
<td class="cellule_tab">${move_line.partner_id.name or ''}</td>
|
||||
<td class="amount">${deposit.currency_id == deposit.company_id.currency_id and move_line.debit or move_line.amount_currency} ${deposit.currency_id.name}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
%endfor
|
||||
%endfor
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="3" class="amount total"><b>${_("Total:")}</b></td>
|
||||
<td class="amount total"><b>${deposit.total_amount or '0'} ${deposit.currency_id.name}</b></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
42
account_check_deposit/report/report_webkit_html.py
Normal file
42
account_check_deposit/report/report_webkit_html.py
Normal file
@@ -0,0 +1,42 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# account_check_deposit for Odoo/OpenERP
|
||||
# Copyright (C) 2012-2014 Akretion (http://www.akretion.com/)
|
||||
# @author: Benoît GUILLOT <benoit.guillot@akretion.com>
|
||||
# @author: Chafique DELLI <chafique.delli@akretion.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
import time
|
||||
from report import report_sxw
|
||||
|
||||
|
||||
class report_webkit_html(report_sxw.rml_parse):
|
||||
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(report_webkit_html, self).__init__(
|
||||
cr, uid, name, context=context)
|
||||
self.localcontext.update({
|
||||
'time': time,
|
||||
'cr': cr,
|
||||
'uid': uid,
|
||||
})
|
||||
|
||||
report_sxw.report_sxw('report.account.check.deposit',
|
||||
'account.check.deposit',
|
||||
'addons/account_check_deposit/report/check_deposit.mako',
|
||||
parser=report_webkit_html)
|
||||
20
account_check_deposit/security/check_deposit_security.xml
Normal file
20
account_check_deposit/security/check_deposit_security.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!--
|
||||
Copyright (C) 2014 Akretion (http://www.akretion.com/)
|
||||
@author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
The licence is in the file __openerp__.py
|
||||
-->
|
||||
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="check_deposit_rule" model="ir.rule">
|
||||
<field name="name">Check Deposit multi-company</field>
|
||||
<field name="model_id" ref="model_account_check_deposit"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'child_of', [user.company_id.id])]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
2
account_check_deposit/security/ir.model.access.csv
Normal file
2
account_check_deposit/security/ir.model.access.csv
Normal file
@@ -0,0 +1,2 @@
|
||||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_account_check_deposit_account_check_deposit_group_manager","account_check_deposit_account_check_deposit_group_manager","model_account_check_deposit","account.group_account_user",1,1,1,1
|
||||
|
Reference in New Issue
Block a user