X-Git-Url: http://git.cyclocoop.org/?p=burette%2Fcyclofficine_pantin.git;a=blobdiff_plain;f=res_partner.py;h=e221350ebd765abfc7f8fc9ee6396ff48736c843;hp=f06e714f766f61bf93616a713e3b37eae0b1cde6;hb=9ed7cbfb291c49dbee368c392d74cc849d4f0908;hpb=1ef0f298ab2f39f6a4beb66459e9fde7047217af diff --git a/res_partner.py b/res_partner.py index f06e714..e221350 100644 --- a/res_partner.py +++ b/res_partner.py @@ -33,4 +33,29 @@ class Partner(orm.Model): _order = 'member_ident,name asc' + def _check_member_ident_length(self, cr, uid, ids, context=None): + # Check if member ident length is equal to sequence padding. + sequences = self.pool.get('ir.sequence') + id_mb_seq = sequences.search(cr, uid, + [('name', '=', 'Member identifier')], + limit=1, context=context) + mb_sequences = sequences.browse(cr, uid, id_mb_seq, context=context) + + partners = self.browse(cr, uid, ids, context=context) + for mb_seq in mb_sequences: + padding = mb_seq.padding + + for partner in partners: + if partner.member_ident: + mb_ident_length = len(partner.member_ident) + if not mb_ident_length == padding: + return False + + return True + + _constraints = [ + (_check_member_ident_length, + 'This member indentifier has not a good length.', ['member_ident']), + ] + # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: