Explorar o código

[ADD] Calculo de prestamos

adrielso %!s(int64=6) %!d(string=hai) anos
pai
achega
c368361c11

+ 4 - 0
__openerp__.py

@@ -11,7 +11,11 @@
         'sale'
     ],
     'data': [
+        'security/ir.model.access.csv',
         'views/eiru_account_loan.xml',
+        'views/eiru_account_loan_type.xml',
+        'views/data_loan_type.xml',
+        'views/eiru_account_loan_system.xml',
     ],
     'qweb': [
         'static/src/xml/*.xml',

+ 2 - 0
models/__init__.py

@@ -1,3 +1,5 @@
 # -*- coding: utf-8 -*-
 
 import account_loan
+import account_loan_type
+import account_loan_system

+ 168 - 11
models/account_loan.py

@@ -3,28 +3,173 @@ from openerp import models, fields, tools, api
 import openerp.addons.decimal_precision as dp
 from datetime import datetime
 
+from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT, DEFAULT_SERVER_DATE_FORMAT
+from pytz import timezone
+from datetime import datetime, timedelta
+
+import logging
+_logger = logging.getLogger(__name__)
+
 class accountLoan(models.Model):
     _name = 'account.loan'
 
-    name = fields.Char()
-    date = fields.Date('Date', help="Fecha de operación")
+    name = fields.Char('name',readonly='readonly')
+    date = fields.Date('Date', help="Fecha de operación",required=True)
     comment = fields.Text('Comment', help="Información adicional")
-    state = fields.Selection([('rejected','Rechazado'),('draft','Borrador'),('approved','Aprobado'), ('disbursed','Desembolsado'),('paid','Pagado')],
-    'Estado del préstamo', default="draft", help="Estado del préstamo")
-    amount = fields.Float('amount', digits_compute=dp.get_precision('Account'), required=True, help="Monto del pago")
-    # Cliente
-    customer_id = fields.Many2one('res.partner', string="customer")
-    ## Line
+    state = fields.Selection([('rejected','Rechazado'),('draft','Borrador'),('approved','Aprobado'), ('disbursed','Desembolsado'),('paid','Pagado')],'Estado del préstamo', default="draft", help="Estado del préstamo")
+    amount = fields.Float('Loan amount', digits_compute=dp.get_precision('Account'), required=True, help="Monto del préstamo")
+    ''' Cliente '''
+    customer_id = fields.Many2one('res.partner', string="customer", required=True)
+    ''' Palzo de pagos en cantidad '''
+    loan_term = fields.Integer('loan term', help="Plazo del préstamo", required=True)
+    ''' Line '''
     lines_ids = fields.One2many('account.loan.line', 'loan_id', string='loan line')
+    ''' Fecha de vencimiento de la primera cuota '''
+    date_init = fields.Date('Vencimiento 1° cuota', help="Fecha de vencimiento de la primera cuota")
+
+    ''' Sistema de calculo del prestamos (Francés - Alemán)'''
+    # loan_system = (help="Sistema de calculo del prestamos (Francés - Alemán)")
+    ''' Tipo de plazo del prestamos (Días, Semana , Mes, Año) '''
+    # loan_type = fields.Many2one('account.loan.type', string='Tipo de préstamo', ondelete='restrict', index=True, required=True, help="Tipo de plazo del prestamos (Días-Semana-Mes)")
 
     '''
         Create
     '''
     @api.model
     def create(self, vals):
-        accountLoan = super(AccountLoan, self).create(vals)
-        accountLoan.write({'name':("PRÉSTAMO/%s/0000%d" % (accountLoan.customer_id.name, accountLoan.id))})
-        return accountLoan
+        loan = super(accountLoan, self).create(vals)
+        loan.write({'name':("PRESTAMO/%06d" % (int(loan.id)))})
+        return loan
+
+    '''
+        timezone
+    '''
+    def get_timezone(self):
+        return timezone(self._context.get('tz') or self.env.user.tz)
+    '''
+        Datetime
+    '''
+    def get_datetime(self):
+        return datetime.now(self.get_timezone()).strftime(DEFAULT_SERVER_DATETIME_FORMAT)
+    '''
+        Date
+    '''
+    def get_date(self):
+        return datetime.now(self.get_timezone()).strftime(DEFAULT_SERVER_DATE_FORMAT)
+    '''
+        Convert Str --> Datetime
+    '''
+    def _convert_str_to_datetime(self, date):
+        return datetime.strptime(date,DEFAULT_SERVER_DATE_FORMAT)
+
+    '''
+        Unlink Line
+    '''
+    def unlink_loan_line(self,line):
+        return line.unlink()
+
+    '''
+        Generar  los calculos
+    '''
+    @api.multi
+    def calculate_loan(self):
+        _logger.info('Calculando prestamos')
+        '''Tipo de prestamos '''
+        loanType = self.env['account.loan.type'].search([('id', '=', self.loan_type.id),('active', '=', True)])
+        if (not loanType):
+            return False
+
+        ''' Systema de calculo '''
+        loanSystem = self.env['account.loan.system'].browse(self.loan_system.id)
+        if (not loanSystem):
+            return False
+
+        self.unlink_loan_line(self.lines_ids)
+
+        amountLoan = float(self.amount)
+        plazo = self.loan_term
+        rateDivision = loanType.rate_division
+        interestYear = loanType.interest_rate_year
+        interestRate = float(loanType.interest_rate /100)
+        expirationDays = loanType.expiration_days
+        days = timedelta(days=expirationDays)
+        dateServer = self._convert_str_to_datetime(self.get_date())
+        if (self.date_init):
+            dateServer = self._convert_str_to_datetime(self.date_init)
+
+        if (loanSystem.code =='FRANCES'):
+            _logger.info('Sistema Frances')
+            ## Calcular cuota
+            cuota = ((interestRate * amountLoan) / (1 - (1 / ( 1 + interestRate )) ** plazo))
+
+            cont = 0
+            amortizado = 0
+            for cc in xrange(plazo):
+                loanLine =[]
+                interesCuota = 0.00
+                amort = 0.0
+                cont +=1
+
+                interesCuota = amountLoan * interestRate
+                amort = cuota -  interesCuota
+                amortizado += amort
+                loanLine = {
+                    'loan_id': self.id,
+                    'number': cont,
+                    'date_maturity': dateServer.strftime(DEFAULT_SERVER_DATE_FORMAT),
+                    'amount': cuota,
+                    'amount_interest': interesCuota,
+                    'amount_amortization': amort,
+                    'amount_residual': amountLoan - amort,
+                    'amount_amortized': amortizado
+                }
+
+                if (loanLine):
+                    self.env['account.loan.line'].create(loanLine)
+
+                amountLoan -= amort
+                dateServer = dateServer + days
+
+            return True
+
+
+        if (loanSystem.code == 'ALEMAN'):
+            _logger.info('Sistema Aleman')
+            ## Calcular la amortizacion
+            amortizacion = amountLoan / plazo
+
+            cont = 0
+            amortizado = 0.00
+            for cc in xrange(plazo):
+                loanLine =[]
+                interesCuota = 0.00
+                cuota = 0.00
+                cont +=1
+
+                interesCuota = amountLoan * interestRate
+                cuota = amortizacion + interesCuota
+                    # amort = cuota -  interesCuota
+                amortizado += amortizacion
+                loanLine = {
+                    'loan_id': self.id,
+                    'number': cont,
+                    'date_maturity': dateServer.strftime(DEFAULT_SERVER_DATE_FORMAT),
+                    'amount': cuota,
+                    'amount_interest': interesCuota,
+                    'amount_amortization': amortizacion,
+                    'amount_residual': amountLoan - amortizacion,
+                    'amount_amortized': amortizado
+                }
+
+                if (loanLine):
+                    self.env['account.loan.line'].create(loanLine)
+
+                amountLoan -= amortizacion
+                dateServer = dateServer + days
+
+            return True
+
+
 
 class accountLoanLine(models.Model):
     _name = 'account.loan.line'
@@ -32,3 +177,15 @@ class accountLoanLine(models.Model):
     ## Interest
     loan_id = fields.Many2one('account.loan', string='Account loan', ondelete='cascade', index=True, required=True)
     state = fields.Selection([('open','Abierto'),('invoiced','Facturado'),('paid','Pagado')],'Estado de la cuota', default="open")
+
+    number =  fields.Integer('N°', help="Numero de cuota")
+    date_maturity = fields.Date('Vencimiento', help="Fecha de vencimiento")
+
+    amount = fields.Float('Cuota',  digits_compute=dp.get_precision('Account'), help="Monto de la cuota")
+    amount_interest = fields.Float('interés', digits_compute=dp.get_precision('Account'), help="Monto del Interes")
+    amount_amortization = fields.Float('Amortización', digits_compute=dp.get_precision('Account'), help="Amortización = (Cuota – interés)")
+    amount_residual = fields.Float('Capital',  digits_compute=dp.get_precision('Account'), help="Monto Restante")
+    amount_amortized = fields.Float('Amortizado', digits_compute=dp.get_precision('Account'), help="Total pagados")
+
+    invoice = fields.Many2one('account.invoice', string='Invoice Reference', ondelete='restrict', index=True)
+    reference = fields.Char(string='Invoice Reference', help="Invoice Reference")

+ 64 - 0
models/account_loan_system.py

@@ -0,0 +1,64 @@
+# -*- coding: utf-8 -*-
+from openerp import models, fields, tools, api
+import openerp.addons.decimal_precision as dp
+from datetime import datetime
+
+class accountLoanSystem(models.Model):
+    _name = 'account.loan.system'
+
+    name = fields.Char('Name', required=True)
+    code = fields.Char('Code', size=64, required=True, help="Código para identificar el sistema de calculo.")
+    active =  fields.Boolean('active',default=True)
+    condition_interest = fields.Text('interest Condition', help='Condición para definir la forma del sistema de calculo.')
+    note = fields.Text('Descripción', help="Descripción")
+    comment = fields.Text('Comment', help="Información adicional")
+
+    @api.model
+    def _create_account_loan_system(self):
+        systemLoan = [
+            {
+                'name': 'Francés',
+                'code': 'FRANCES',
+                'note': 'Las características principales del sistema francés son:\n'
+                        '   - Amortización de capital periódica creciente.\n'
+                        '   - Intereses decrecientes, dado que el interés se calcula sobre saldos\n'
+                        '   - Cuota total (amortización de capital + intereses) constante, como consecuencia de las características de los componentes anteriores.',
+                'condition_interest':   'cuota = ((interes * capital) / ( 1- ( 1 / 1 + interes ) ** plazo ))\n'
+                                        '   interesCuota =  capital * interes\n'
+                                        '   amortizacion =  cuota - interesCuota\n'
+                                        '   amortizado += amortizacion\n'
+                                        '   capital -=  amortizacion'
+            },
+            {
+                'name': 'Alemán',
+                'code': 'ALEMAN',
+                'note': 'Las características principales del sistema alemán son:\n'
+                        '   - Amortización de capital periódica constante, es decir que el capital de la deuda va a disminuir siempre en un mismo monto.\n'
+                        '   - Intereses decrecientes, dado que se calculan sobre el saldo adeudado.\n'
+                        '   - Cuota total (amortización de capital + intereses) decreciente, como consecuencia de las características de los componentes anteriores.',
+                'condition_interest':   'amortizacion = capital / plazo\n'
+                                        '   interesCuota = capital * interes\n'
+                                        '   cuota = amortizacion + interesCuota\n'
+                                        '   amortizado += amortizacion\n'
+                                        '   capital -= amortizacion'
+            }
+        ]
+
+        for system in systemLoan:
+            loanSystem = self.env['account.loan.system'].search([('name', '=', system['name'])])
+            loan = {
+                'name':system['name'],
+                'code':system['code'],
+                'note':system['note'],
+                'condition_interest':system['condition_interest']
+            }
+
+            if (not loanSystem):
+                loanSystem.create(loan)
+
+
+class accountLoan(models.Model):
+    _inherit = 'account.loan'
+
+    ''' Tipo de plazo del prestamos (Días, Semana , Mes, Año) '''
+    loan_system = fields.Many2one('account.loan.system', string='Sistema de calculo', ondelete='restrict', index=True, required=True, help="Sistema de calculo (Francés - Alemán)")

+ 59 - 0
models/account_loan_type.py

@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+from openerp import models, fields, tools, api
+import openerp.addons.decimal_precision as dp
+from datetime import datetime
+
+class accountLoanType(models.Model):
+    _name = 'account.loan.type'
+
+    name = fields.Char('Name', required=True)
+    rate_division  = fields.Integer('Tasa de división', help="Tasa de división\n"\
+                                                            " * Días 365 \n"\
+                                                            " * Semana 48\n"\
+                                                            " * Mes 12", required=True)
+    interest_rate_year = fields.Float('Tasa de interés anual(%)', digits=(3,6), digits_compute=dp.get_precision('Account Loan'), required=True, help="Tasa de interés anual(%)")
+    interest_rate = fields.Float('Tasa de interés calculado(%)', digits=(3,6), digits_compute=dp.get_precision('Account Loan'), readonly='readonly', required=True, help="Tasa de interés calculado(%)")
+    expiration_days  = fields.Integer('Cantidad de días para generar la fecha del próximo vencimiento', help="Cantidad de días para  generar  la fecha  del próximo  vencimiento")
+    comment = fields.Text('Comment', help="Información adicional")
+    active =  fields.Boolean('active',default=True)
+
+    '''
+        Create default type loan
+    '''
+    @api.model
+    def _create_account_loan_type(self):
+        decimal_precision = self.env['decimal.precision'].precision_get('Account Loan')
+        rateInterest = [
+                        {'name': 'Mensual', 'rate_division': 12,'interest_rate_year': 40.00, 'expiration_days': 30},
+                        {'name': 'Semanal', 'rate_division': 48, 'interest_rate_year': 364, 'expiration_days': 7},
+                        {'name': 'Semanal-Alternativo', 'rate_division': 48, 'interest_rate_year': 465, 'expiration_days': 7},
+                        {'name': 'Diario', 'rate_division': 365, 'interest_rate_year': 38.80, 'expiration_days': 1}
+        ]
+        for line in rateInterest:
+            loanType = self.env['account.loan.type'].search([('name', '=', line['name'])])
+            if (not loanType):
+                interst = round(self._calculate_rate_interest(float(line['rate_division']), float(line['interest_rate_year'])), decimal_precision)
+                loanType.create({
+                    'name':  line['name'],
+                    'rate_division': round(line['rate_division'], decimal_precision),
+                    'interest_rate_year': round(line['interest_rate_year'], decimal_precision),
+                    'interest_rate': interst,
+                    'expiration_days': line['expiration_days']
+                })
+
+        return True
+
+    '''
+        Calcular la tasa de interes
+            (Tasa de interés anual(%) / Tasa de división)
+    '''
+    def _calculate_rate_interest(self, rateDivision,interestYear):
+        return (interestYear / rateDivision)
+
+
+
+class eiruAccountLoan(models.Model):
+    _inherit = 'account.loan'
+
+    ''' Tipo de plazo del prestamos (Días, Semana , Mes, Año) '''
+    loan_type = fields.Many2one('account.loan.type', string='Tipo de préstamo', ondelete='restrict', index=True, required=True, help="Tipo de plazo del prestamos (Días-Semana-Mes)")

+ 5 - 0
security/ir.model.access.csv

@@ -0,0 +1,5 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_account_loan_from,account.loan,model_account_loan,account.group_account_user,1,1,1,1
+access_account_loan_line_from,account.loan.line,model_account_loan_line,account.group_account_user,1,1,1,1
+access_account_loan_system_from,account.loan.system,model_account_loan_system,account.group_account_user,1,1,1,1
+access_account_loan_type_from,account.loan.type,model_account_loan_type,account.group_account_user,1,1,1,1

+ 9 - 0
views/data_loan_type.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data noupdate="1">
+        <record forcecreate="True" id="decimal_payment" model="decimal.precision">
+            <field name="name">Account Loan</field>
+            <field name="digits">6</field>
+        </record>
+    </data>
+</openerp>

+ 30 - 10
views/eiru_account_loan.xml

@@ -6,7 +6,8 @@
             <field name="name">eiru.account.loan.from</field>
             <field name="model">account.loan</field>
             <field name="arch" type="xml">
-                <form string="Préstamo" create="0" edit="0">
+                <!-- <form string="Préstamo" create="0" edit="0"> -->
+                <form string="Préstamo">
                     <header>
                         <field name="state" widget="statusbar"/>
                     </header>
@@ -17,17 +18,30 @@
                         <group col="2" >
                             <group>
                                 <field name="customer_id" string="Cliente"/>
-                                <field name="date"/>
-                                <field name="amount"/>
+                                <field name="amount" string="Monto del préstamo"/>
+                                <field name="date" string="Fecha"/>
                             </group>
                             <group>
+                                <field name="loan_system"/>
+                                <field name="loan_type"/>
+                                <field name="loan_term" string="Plazo del préstamo"/>
+                                <field name="date_init"/>
                             </group>
                         </group>
                         <notebook>
                             <page string="Detalles">
+                                <button name="calculate_loan" string="Calcular" type="object" attrs="{'invisible':[('state', '!=', 'draft')]}" class="oe_highlight" groups="base.group_user"/>
                                 <field name="lines_ids">
                                     <tree string="Detalles de la deuda" edit='false' delete='false' create='false'>
+                                        <field name="number"/>
+                                        <field name="date_maturity"/>
+                                        <field name="amount"/>
+                                        <field name="amount_interest"/>
+                                        <field name="amount_amortization"/>
+                                        <field name="amount_residual"/>
+                                        <field name="amount_amortized"/>
                                         <field name="state" string="Estado"/>
+                                        <field name="invoice" string="Factura"/>
                                     </tree>
                                 </field>
                             </page>
@@ -44,7 +58,8 @@
 			<field name="name">eiru.account.loan.tree</field>
 			<field name="model">account.loan</field>
 			<field name="arch" type="xml">
-				<tree create="0" edit="0">
+				<!-- <tree create="0" edit="0"> -->
+				<tree>
 					<field name="name" />
 					<field name="date" />
 					<field name="customer_id" />
@@ -53,6 +68,7 @@
 				</tree>
 			</field>
 		</record>
+
         <!--  Search -->
         <record id="eiru_account_loan_search" model="ir.ui.view">
             <field name="name">eiru.account.loan.search</field>
@@ -66,20 +82,24 @@
                 </search>
             </field>
         </record>
+
         <!-- Actions  -->
         <record id="eiru_account_loan_actions" model="ir.actions.act_window">
-            <field name="name">Interés por mora</field>
+            <field name="name">Préstamo</field>
             <field name="res_model">account.loan</field>
             <field name="view_type">form</field>
             <field name="view_mode">tree,form</field>
             <field name="target">current</field>
         </record>
+
         <!-- Menu -->
+        <menuitem id="eiru_account_loan_menu1" name="Préstamo" sequence="20"/>
+        <menuitem id="eiru_account_loan_menu" name="Préstamo" parent="eiru_account_loan_menu1" sequence="1"/>
         <menuitem
-                    id="eiru_account_loan_menu"
-                    name="Préstamo"
-                    parent="account.menu_finance_receivables"
-                    action="eiru_account_loan_actions"
-                    sequence="13" />
+            id="eiru_account_loan"
+            name="Prestamos"
+            parent="eiru_account_loan_menu"
+            action="eiru_account_loan_actions"
+            sequence="1"/>
     </data>
 </openerp>

+ 78 - 0
views/eiru_account_loan_system.xml

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+        <!-- function -->
+        <function model="account.loan.system" name="_create_account_loan_system"/>
+        <!-- from -->
+        <record id="eiru_account_loan_system_from" model="ir.ui.view">
+            <field name="name">eiru.account.loan.system.from</field>
+            <field name="model">account.loan.system</field>
+            <field name="arch" type="xml">
+                <form string="Tipo de préstamo" create="0" edit="0" delete='0'>
+                    <sheet>
+                        <h1>
+                            <field name='name'/>
+                        </h1>
+                        <group string="" col="2" >
+                            <group >
+                                <field name="code"/>
+                            </group>
+                            <group>
+                                <field name="active" string="Activo"/>
+                            </group>
+                        </group>
+                        <group>
+                            <field name="note" colspan="4"/>
+                        </group>
+                        <group  string="Detalles de la operación" col="2">
+                            <group>
+                                <field name="condition_interest" colspan="4"/>
+                            </group>
+                            <group>
+                                <div colspan="4"><b>interes</b> = Tasa de interés aplicada(Tasa Interés anual / Plazo(Mes,Dias)).</div>
+                                <div colspan="4"><b>capital</b> = Capital inicial (el capital que pedimos prestado).</div>
+                                <div colspan="4"><b>plazo</b> = Corresponde con el número de períodos de pago</div>
+                                <div colspan="4"><b>cuota</b> = Valor de la cuota.</div>
+                                <div colspan="4"><b>interesCuota</b> = interés aplicado por cada cuota.</div>
+                                <div colspan="4"><b>amortizacion</b> = la cuota de amortización.</div>
+                                <div colspan="4"><b>amortizado</b> = total amortizado.</div>
+                            </group>
+                        </group>
+
+                        <group>
+                            <field name="comment" string="Información adicional"/>
+                        </group>
+
+                    </sheet>
+                </form>
+            </field>
+        </record>
+        <!-- Tree -->
+        <record id="eiru_account_loan_system_tree" model="ir.ui.view">
+			<field name="name">eiru.account.loan.system.tree</field>
+			<field name="model">account.loan.system</field>
+			<field name="arch" type="xml" >
+				<tree create="0" edit="0" delete='0'>
+					<field name="name"/>
+					<field name="code"/>
+					<field name="active"/>
+				</tree>
+			</field>
+		</record>
+        <!-- Actions  -->
+        <record id="eiru_account_loan_system_actions" model="ir.actions.act_window">
+            <field name="name">Tipo de préstamo</field>
+            <field name="res_model">account.loan.system</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree,form</field>
+            <field name="target">current</field>
+        </record>
+        <!-- Menu -->
+        <menuitem
+            id="eiru_account_loan_system"
+            name="Sistema de préstamo"
+            parent="eiru_account_loan_menu"
+            action="eiru_account_loan_system_actions"
+            sequence="6"/>
+    </data>
+</openerp>

+ 64 - 0
views/eiru_account_loan_type.xml

@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+    <data>
+        <!-- function -->
+        <function model="account.loan.type" name="_create_account_loan_type"/>
+        <!-- from -->
+        <record id="eiru_account_loan_type_from" model="ir.ui.view">
+            <field name="name">eiru.account.loan.type.from</field>
+            <field name="model">account.loan.type</field>
+            <field name="arch" type="xml">
+                <form string="Tipo de préstamo">
+                    <sheet>
+                        <h1>
+                            <field name='name'/>
+                        </h1>
+                        <group string=" Detalles de calculo." col="2" >
+                            <group >
+                                <field name="rate_division"/>
+                            </group>
+                            <group>
+                                <field name="interest_rate_year"/>
+                                <field name="interest_rate"/>
+                            </group>
+                        </group>
+                        <group>
+                            <field name="expiration_days"/>
+                        </group>
+                        <group>
+                            <field name="comment" string="Información adicional"/>
+                        </group>
+                    </sheet>
+                </form>
+            </field>
+        </record>
+        <!-- Tree -->
+        <record id="eiru_account_loan.type_tree" model="ir.ui.view">
+			<field name="name">eiru.account.loan.type.tree</field>
+			<field name="model">account.loan.type</field>
+			<field name="arch" type="xml">
+				<tree>
+					<field name="name"/>
+					<field name="rate_division"/>
+					<field name="interest_rate_year"/>
+		            <field name="interest_rate"/>
+				</tree>
+			</field>
+		</record>
+        <!-- Actions  -->
+        <record id="eiru_account_loan_type_actions" model="ir.actions.act_window">
+            <field name="name">Tipo de préstamo</field>
+            <field name="res_model">account.loan.type</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree,form</field>
+            <field name="target">current</field>
+        </record>
+        <!-- Menu -->
+        <menuitem
+            id="eiru_account_loan_type"
+            name="Tipo de préstamo"
+            parent="eiru_account_loan_menu"
+            action="eiru_account_loan_type_actions"
+            sequence="5"/>
+    </data>
+</openerp>