Good bank account process

Report on tasks: type
HR_timesheet invoices: shortcut to list of interresting analytic account

bzr revid: fp@tinyerp.com-49fb56b4d1ebf9490c32da20ff2d4f7e67af953d
This commit is contained in:
Fabien Pinckaers 2007-06-20 15:52:07 +00:00
parent 0f08c3f60e
commit 370b5b0c17
4 changed files with 94 additions and 70 deletions

View File

@ -1303,5 +1303,19 @@
<field name="groups_id" eval="[(6,0,[group_admin])]"/>
<field name="company_id" ref="main_company"/>
</record>
# --------------------------------------------------------------
# Default bank account description
# --------------------------------------------------------------
<record model="res.partner.bank.type" id="bank_normal">
<field name="name">Bank account</field>
<field name="code">bank</field>
</record>
<record model="res.partner.bank.type.field" id="bank_normal_field">
<field name="name">acc_number</field>
<field name="required" eval="True"/>
<field name="bank_type_id" ref="bank_normal"/>
</record>
</data>
</terp>

View File

@ -300,50 +300,6 @@ class res_partner(osv.osv):
return True
res_partner()
class res_partner_bank_type(osv.osv):
_description='Bank Account Type'
_name = 'res.partner.bank.type'
_columns = {
'name': fields.char('Name', size=64, required=True),
'code': fields.char('Code', size=64),
'elec_pay': fields.char('Electronic Payment', size=64),
}
res_partner_bank_type()
class res_partner_bank(osv.osv):
_description='Bank Details'
_name = "res.partner.bank"
_order = "sequence"
_columns = {
'name': fields.char('Account Name', size=64, required=True),
'sequence': fields.integer('Sequence'),
'number': fields.char('Account Number', size=64),
'iban': fields.char('Account Iban', size=27),
'type_id' : fields.many2one('res.partner.bank.type', 'Account Type', required=True),
'bank_name': fields.char('Bank Name', size=64, required= True),
'bank_code': fields.char('Bank Code', size=64),
'bank_guichet': fields.char('Branch', size=64),
'street': fields.char('Street', size=128),
'zip': fields.char('Zip', change_default=True, size=24),
'city': fields.char('City', size=128),
'country_id': fields.many2one('res.country', 'Country'),
'partner_id': fields.many2one('res.partner', 'Partner', required=True, ondelete='cascade', select=True),
'active': fields.boolean('Active'),
}
def _default_type_id(self, cr, uid, context={}):
ids = self.pool.get('res.partner.bank.type').search(cr, uid, [('name','=','Other')])
return ids and ids[0] or False
_defaults = {
'active': lambda *a: 1,
'type_id': _default_type_id,
}
res_partner_bank()
class res_partner_address(osv.osv):
_description ='Partner Contact'
_name = 'res.partner.address'
@ -399,4 +355,72 @@ class res_partner_address(osv.osv):
return self.name_get(cr, user, ids)
res_partner_address()
class res_partner_bank_type(osv.osv):
_description='Bank Account Type'
_name = 'res.partner.bank.type'
_columns = {
'name': fields.char('Name', size=64, required=True),
'code': fields.char('Code', size=64, required=True),
'elec_pay': fields.char('Electronic Payment', size=64),
'field_ids': fields.one2many('res.partner.bank.type.field', 'bank_type_id', 'Type fields'),
}
res_partner_bank_type()
class res_partner_bank_type_fields(osv.osv):
_description='Bank type fields'
_name = 'res.partner.bank.type.field'
_columns = {
'name': fields.char('Field name', size=64, required=True),
'bank_type_id': fields.many2one('res.partner.bank.type', 'Bank type', required=True, ondelete='cascade'),
'required': fields.boolean('Required'),
'readonly': fields.boolean('Readonly'),
'size': fields.integer('Max. Size'),
}
res_partner_bank_type_fields()
class res_partner_bank(osv.osv):
_description='Bank Details'
_name = "res.partner.bank"
def _bank_type_get(self, cr, uid, *args):
result = []
type_ids = self.pool.get('res.partner.bank.type').search(cr, uid, [])
res = self.pool.get('res.partner.bank.type').read(cr, uid, type_ids, ['code','name'])
for r in res:
result.append((r['code'], r['name']))
return result
_columns = {
'name': fields.char('Account Name', size=64, required=True),
'acc_number': fields.char('Account Number', size=64, required=False),
'bank_id': fields.many2one('res.partner', 'Bank'),
'bank_address_id': fields.many2one('res.partner.address', 'Bank address'),
'owner_name': fields.char('Account owner', size=64),
'street': fields.char('Street', size=128),
'zip': fields.char('Zip', change_default=True, size=24),
'city': fields.char('City', size=128),
'country_id': fields.many2one('res.country', 'Country'),
'partner_id': fields.many2one('res.partner', 'Partner', required=True, ondelete='cascade', select=True),
'state': fields.selection(_bank_type_get, 'Bank type', required=True)
}
def fields_get(self, cr, uid, *args):
res = super(res_partner_bank, self).fields_get(cr, uid, *args)
type_ids = self.pool.get('res.partner.bank.type').search(cr, uid, [])
types = self.pool.get('res.partner.bank.type').browse(cr, uid, type_ids)
for t in types:
for f in t.field_ids:
if f.name in res:
res[f.name].setdefault('states',{})
res[f.name]['states'][t.code] = [('readonly',f.readonly),('required',f.required)]
print 'Change', f.name
else:
print 'Noe Change', f.name
print res
return res
res_partner_bank()
# vim:noexpandtab:

View File

@ -2,18 +2,6 @@
<terp>
<data>
<!-- bank types -->
<record model="res.partner.bank.type" id="bank_type_iban">
<field name="name">Iban</field>
<field name="code"></field>
<field name="elec_pay">iban</field>
</record>
<record model="res.partner.bank.type" id="bank_type_notype">
<field name="name">Other</field>
<field name="code"></field>
<field name="elec_pay"></field>
</record>
</data>

View File

@ -388,20 +388,20 @@
<field name="model">res.partner.bank</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Bank Details">
<field name="name" select="1" colspan="4"/>
<field name="bank_name" select="1"/>
<field name="bank_guichet" select="2"/>
<field name="street"/>
<form string="Bank account">
<field name="name" select="1"/>
<field name="state" select="2"/>
<newline/>
<field name="acc_number" select="1"/>
<newline/>
<field name="bank_id"/>
<field name="bank_address_id" domain="[('partner_id','=',bank_id)]"/>
<separator string="Bank account owner" colspan="4"/>
<field name="owner_name" colspan="4"/>
<field name="street" colspan="4"/>
<field name="city"/>
<field name="zip"/>
<field name="country_id"/>
<newline/>
<field name="type_id" select="2"/>
<field name="number" select="1"/>
<field name="iban" select="2"/>
<field name="bank_code" select="2"/>
<field name="sequence"/>
</form>
</field>
</record>
@ -411,10 +411,8 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Bank Details">
<field name="sequence"/>
<field name="name"/>
<field name="type_id"/>
<field name="number"/>
<field name="state"/>
</tree>
</field>
</record>