X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=bikecoop.py;h=2dd81daeefe34eba4428087c7910d689eb85e1d6;hb=refs%2Fheads%2Fseb;hp=8168aceff9f0899a417f1c9e0e4ef82f1b9ed12d;hpb=55369c25e598b3931434239ee59e46834c685135;p=burette%2Fbikecoop.git diff --git a/bikecoop.py b/bikecoop.py index 8168ace..2dd81da 100644 --- a/bikecoop.py +++ b/bikecoop.py @@ -1,6 +1,32 @@ # -*- coding: utf-8 -*- +############################################################################## +# +# Bikecoop module for OpenERP, Custom module for bike coop' +# Copyright (C) 2012-2014 L'Heureux Cyclage () +# +# This file is a part of Bikecoop +# +# Bikecoop is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Bikecoop 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +############################################################################## + from openerp.osv import fields, osv import openerp.addons.decimal_precision as dp +from openerp.tools.translate import _ +from openerp.addons.point_of_sale.wizard.pos_box import PosBoxOut + +from datetime import date class Theme(osv.osv): @@ -35,15 +61,13 @@ class Partner(osv.osv): def _check_year(self, cr, uid, ids, context=None): obj = self.browse(cr, uid, ids[0], context=context) if obj.year: - if obj.year < 1900 or obj.year > 2100: + if obj.year < 1900 or obj.year > date.today().year: return False return True _constraints = [ (_check_year, 'Error: this year is not valid.', ['year']), ] - - Partner() @@ -56,5 +80,37 @@ class product_template(osv.osv): product_template() +# Inheriting journal in order to define a purchase account which will be used when refunding an employee from an open register +class account_journal(osv.osv): + _inherit = 'account.journal' + _columns = { + 'purchase_account_id' : fields.many2one('account.account', 'Purchase Account', select=1), + } +account_journal() + +class PurchaseBox(PosBoxOut): + # Copied from account/wizard/pos_box.py since there is no way to overload the account used to create the statement + def _run(self, cr, uid, ids, records, context=None): + for box in self.browse(cr, uid, ids, context=context): + for record in records: + if not record.journal_id: + raise osv.except_osv(_('Error!'), + _("Please check that the field 'Journal' is set on the Bank Statement")) + + if not record.journal_id.purchase_account_id: + raise osv.except_osv(_('Error!'), + _("Please check that the field 'Purchase Account' is set on the payment method '%s'.") % (record.journal_id.name,)) + + self._create_bank_statement_line(cr, uid, box, record, context=context) + + return {} + + def _compute_values_for_statement_line(self, cr, uid, box, record, context=None): + values = super(PosBoxOut, self)._compute_values_for_statement_line(cr, uid, box, record, context=context) + values['account_id'] = record.journal_id.purchase_account_id.id + return values + +PurchaseBox() + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: