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:
parent
0f08c3f60e
commit
370b5b0c17
|
@ -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>
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue