-# -*- coding: utf-8 -*-
-#
-# bank.py
-# invoice.py
-#
-# Created by Nicolas Bessi based on Credric Krier contribution
-#
-# Copyright (c) 2009 CamptoCamp. All rights reserved.
+# -*- encoding: utf-8 -*-
##############################################################################
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
#
-# This program 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 2
-# of the License, or (at your option) any later version.
+# Author: Nicolas Bessi. Copyright Camptocamp SA
+# Donors: Hasa Sàrl, Open Net Sàrl and Prisme Solutions Informatique SA
+#
+# 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 General Public License for more details.
+# 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 General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# 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 datetime import datetime
from osv import fields, osv
from tools import mod10r
-from mx import DateTime
-
class account_invoice(osv.osv):
"""Inherit account.invoice in order to add bvr
printing functionnalites. BVR is a Swiss payment vector"""
_inherit = "account.invoice"
-
+
## @param self The object pointer.
## @param cursor a psycopg cursor
## @param user res.user.id that is currently loged
- ## @parma context a standard dict
+ ## @parma context a standard dict
## @return a list of tuple (name,value)
def _get_reference_type(self, cursor, user, context=None):
- """Function use by the function field reference_type in order to initalise available
+ """Function use by the function field reference_type in order to initalise available
BVR Reference Types"""
res = super(account_invoice, self)._get_reference_type(cursor, user,
context=context)
res.append(('bvr', 'BVR'))
return res
-
+
## @param self The object pointer.
## @param cursor a psycopg cursor
## @param user res.user.id that is currently loged
## @parma context a standard dict
- ## @param name of the files
- ## @param args a list of diverse argument
- ## @parma context a standard dict
+ ## @param name of the files
+ ## @param args a list of diverse argument
+ ## @parma context a standard dict
## @return a dict (invoice id,amount to pay)
def _amount_to_pay(self, cursor, user, ids, name, args, context=None):
'''Return the amount still to pay regarding all the payment orders'''
if invoice.move_id:
for line in invoice.move_id.line_id:
if not line.date_maturity or \
- DateTime.strptime(line.date_maturity, '%Y-%m-%d') \
- < DateTime.now():
+ datetime.strptime(line.date_maturity, '%Y-%m-%d') \
+ < datetime.now():
res[invoice.id] += line.amount_to_pay
return res
### BVR reference type BVR or FREE
'reference_type': fields.selection(_get_reference_type,
'Reference Type', required=True),
- ### Partner bank link between bank and partner id
+ ### Partner bank link between bank and partner id
'partner_bank_id': fields.many2one('res.partner.bank', 'Bank Account',
help='The partner bank account to pay\nKeep empty to use the default'
),
help='The amount which should be paid at the current date\n' \
'minus the amount which is already in payment order'),
}
-
+
## @param self The object pointer.
## @param cursor a psycopg cursor
## @param user res.user.id that is currently loged
## @parma ids invoices id
- ## @return a boolean True if valid False if invalid
+ ## @return a boolean True if valid False if invalid
def _check_bvr(self, cr, uid, ids):
"""
Function to validate a bvr reference like :
## @param cursor a psycopg cursor
## @param user res.user.id that is currently loged
## @parma ids invoices id
- ## @return a boolean True if valid False if invalid
+ ## @return a boolean True if valid False if invalid
def _check_reference_type(self, cursor, user, ids):
- """Check the customer invoice reference type depending
+ """Check the customer invoice reference type depending
on the BVR reference type and the invoice partner bank type"""
for invoice in self.browse(cursor, user, ids):
if invoice.type in 'in_invoice':
(_check_reference_type, 'Error: BVR reference is required.',
['reference_type']),
]
-
+
## @param self The object pointer.
## @param cr a psycopg cursor
## @param uid res.user.id that is currently loged
## @param partner_bank_id the partner linked invoice bank
## @return the dict of values with the partner_bank value updated
def onchange_partner_id(self, cr, uid, ids, type, partner_id,
- date_invoice=False, payment_term=False, partner_bank=False, company_id=False):
+ date_invoice=False, payment_term=False, partner_bank_id=False, company_id=False):
""" Function that is call when the partner of the invoice is changed
it will retriev and set the good bank partner bank"""
res = super(account_invoice, self).onchange_partner_id(
cr,
- uid,
- ids,
+ uid,
+ ids,
type,
- partner_id,
- date_invoice,
+ partner_id,
+ date_invoice,
payment_term
)
bank_id = False
if type in ('in_invoice', 'in_refund'):
res['value']['partner_bank_id'] = bank_id
- if partner_bank != bank_id:
+ if partner_bank_id != bank_id:
to_update = self.onchange_partner_bank(cr, uid, ids, bank_id)
res['value'].update(to_update['value'])
return res
-
+
## @param self The object pointer.
## @param cursor a psycopg cursor
## @param user res.user.id that is currently loged
## @parma ids invoices id
## @param partner_bank_id the partner linked invoice bank
- ## @return the dict of values with the reference type value updated
+ ## @return the dict of values with the reference type value updated
def onchange_partner_bank(self, cursor, user, ids, partner_bank_id):
"""update the reference type depending of the partner bank"""
res = {'value': {}}
_name = 'account.tax.code'
_inherit = "account.tax.code"
_columns = {
- ### The case code of the taxt code
'code': fields.char('Case Code', size=512),
}
+
account_tax_code()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file