Просмотр исходного кода

Agregar nro de cuota y total de cuota contrato

sebastian 5 лет назад
Сommit
7d808da834

+ 2 - 0
__init__.py

@@ -0,0 +1,2 @@
+# -*- encoding: utf-8 -*-
+import models


+ 23 - 0
__openerp__.py

@@ -0,0 +1,23 @@
+# -*- encoding: utf-8 -*-
+
+{
+    'name': 'Cuota en Contrato',
+    'version': '8.0.0.1.0',
+    'category': '',
+    'summary': '',
+    'author': 'Sebastian Penayo/Eiru Software',
+    'license': 'AGPL-3',
+    'depends': [
+        'base',
+        'product',
+        'sale',
+        'account_analytic_analysis',
+        ],
+    'data': [
+        'security/readonly_fields.xml',
+        'views/account_analytic_account.xml',
+        'views/account_invoice.xml',
+    ],
+
+    'installable': True,
+}

+ 4 - 0
models/__init__.py

@@ -0,0 +1,4 @@
+# -*- encoding: utf-8 -*-
+import account_analytic_account
+import account_invoice
+

BIN
models/__init__.pyc


+ 38 - 0
models/account_analytic_account.py

@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+from openerp import models, fields, api, _
+from openerp.exceptions import Warning
+
+class AnalyticAccount(models.Model):
+    _inherit = 'account.analytic.account'
+
+    # cuotas
+    cuota_total = fields.Integer(string="Total de cuotas")
+    nro_cuotas = fields.Integer(string="Cuota actual")
+
+    @api.multi
+    def recurring_create_invoice(self):
+        self.nro_cuotas = self.nro_cuotas + 1
+        if self.nro_cuotas <= self.cuota_total:
+            value = super(AnalyticAccount, self).recurring_create_invoice()
+            cuota_string = "Cuota "+ str(self.nro_cuotas)+"/"+str(self.cuota_total)
+            cuota_tot=self.cuota_total
+            for each in value:
+                invoice = self.env['account.invoice'].search([('id','=',each)])
+                invoice.write({'cuotas': cuota_string})
+                invoice.write({'cuota_total': cuota_tot})
+            return value
+        else:
+            raise Warning(_("Ya no puede generar cuotas para este contrato."))
+
+    @api.model
+    def recurring_create_invoice_inmobiliaria(self):
+        value = super(AnalyticAccount, self)._cron_recurring_create_invoice()
+        for each in value:
+            invoice = self.env['account.invoice'].search([('id','=',each)])
+            contract = self.env['account.analytic.account'].search([('code','=',invoice.origin)])
+            contract.nro_cuotas = contract.nro_cuotas + 1
+            self.env.cr.execute('update account_analytic_account set nro_cuotas = %s where id = %s', (contract.nro_cuotas, contract.id))
+            cuota_string = "Cuota "+ str(contract.nro_cuotas)+"/"+str(contract.cuota_total)
+            self.env.cr.execute('update account_invoice set cuotas = %s where  id = %s', (cuota_string, invoice.id))
+            self.env.cr.execute('update account_invoice set cuota_total = %s where  id = %s', (cuota_tot, invoice.id))
+        return value

BIN
models/account_analytic_account.pyc


+ 10 - 0
models/account_invoice.py

@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+from openerp import models, fields, api,_
+from openerp.exceptions import Warning
+
+class AnalyticAccount(models.Model):
+    _inherit = 'account.invoice'
+
+    # cuotas
+    cuotas = fields.Char(string="Cuotas")
+    cuota_total = fields.Integer(string="Total de cuotas")

BIN
models/account_invoice.pyc


+ 8 - 0
security/readonly_fields.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+<data noupdate="0">
+    <record id="readonly_fields_inmobiliaria" model="res.groups">
+        <field name="name">Permitir editar cuotas</field>
+    </record>
+</data>
+</openerp>

BIN
static/description/icon.png


+ 39 - 0
views/account_analytic_account.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record model="ir.ui.view" id="contrato_form_view">
+       <field name="name">contrato_form_view</field>
+       <field name="model">account.analytic.account</field>
+       <field name="inherit_id" ref="account_analytic_analysis.account_analytic_account_form_form"/>
+       <field name="arch" type="xml">
+          <field name="recurring_next_date" position="before">
+            <field name="cuota_total"/>
+            <field name="nro_cuotas" readonly="1"/>
+          </field>
+      </field>
+    </record>
+
+    <record id="contrato_form_view_editable" model="ir.ui.view">
+        <field name="name">contrato_form_view_editable</field>
+        <field name="model">account.analytic.account</field>
+        <field name="inherit_id" ref="account_analytic_analysis.account_analytic_account_form_form"/>
+        <field name="groups_id" eval="[(6, 0, [ref('eiru_quota_contract.readonly_fields_inmobiliaria')])]"/>
+        <field name="arch" type="xml">
+            <xpath expr="//field[@name='nro_cuotas']" position="attributes">
+                <attribute name="readonly">0</attribute>
+            </xpath>
+        </field>
+    </record>
+
+    <record model="ir.ui.view" id="contrato_form_view2">
+       <field name="name">contrato_form_view2</field>
+       <field name="model">account.analytic.account</field>
+       <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/>
+       <field name="arch" type="xml">
+         <field name="code" position="replace">
+            <field name="code" readonly="1"/>
+          </field>
+      </field>
+    </record>
+</data>
+</openerp>

+ 18 - 0
views/account_invoice.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record model="ir.ui.view" id="invoice_form">
+       <field name="name">invoice_form</field>
+       <field name="model">account.invoice</field>
+       <field name="inherit_id" ref="account.invoice_form"/>
+       <field name="arch" type="xml">
+          <field name="number" position="after">
+            <field name="cuotas" readonly="1"/>
+          </field>
+          <field name="origin" position="replace">
+            <field name="origin" readonly="1"/>
+          </field>
+      </field>
+    </record>
+</data>
+</openerp>