Parcourir la source

Impresión de solicitud y pagaré para el señor de los anillos

sebastian il y a 5 ans
commit
5f9f957435

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+*.pyc

+ 2 - 0
__init__.py

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

+ 22 - 0
__openerp__.py

@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+{
+    'name' : 'Impresion de pagare Señor de los Anillos',
+    'version' : '1.0',
+    'description' : """
+Este modulo Permite realizar impresión del pagare del Señor de los Anillos
+    """,
+    'author' : 'Eiru',
+    'category' : 'Service',
+    'depends' : [
+        'account',
+        'eiru_num2word',
+        'partner_extra_data_crifin',
+    ],
+    'data' : [
+        'views/template.xml',
+        'views/account_invoice_view.xml'
+    ],
+    'qweb' : ['static/src/xml/*.xml',],
+    'installable' : True,
+    'auto_install' : False,
+}

+ 147 - 0
models.py

@@ -0,0 +1,147 @@
+# -*- coding: utf-8 -*-
+
+from openerp import models, fields, api
+
+class AccountInvoice(models.Model):
+	_inherit = 'account.invoice'
+
+	@api.model
+	def getAccountInvoicePagare(self,domain):
+		AccountInvoice = self.env['account.invoice'].search(domain)
+		values = []
+		for invoice in AccountInvoice:
+			values.append({
+                # ID
+				'id': invoice.id,
+                'number': invoice.number,
+                'origin': invoice.origin,
+                'date_invoice': invoice.date_invoice,
+                'user_name': invoice.user_id.name,
+                'amount_untaxed': invoice.amount_untaxed,
+                'amount_tax': invoice.amount_untaxed,
+                'amount_total': invoice.amount_total,
+				'comment': invoice.comment or "",
+
+                # PARTNER INFO
+				'partner_id':[{
+					'id': invoice.partner_id.id,
+					'name': invoice.partner_id.name or "",
+					'ruc': invoice.partner_id.ruc or "",
+					'address': invoice.partner_id.street or "",
+					'city': invoice.partner_id.city or "",
+					'barrio': invoice.partner_id.street2 or "",
+					'email': invoice.partner_id.email,
+					'estado_civil': invoice.partner_id.estado_civil or "",
+	                'phone': invoice.partner_id.phone,
+	                'mobile': invoice.partner_id.mobile,
+					'trab_empresa': invoice.partner_id.trab_empresa,
+					'trab_telefono': invoice.partner_id.trab_telefono,
+					'trab_street': invoice.partner_id.trab_street,
+	                'trab_city': invoice.partner_id.trab_city,
+	                'trab_cargo': invoice.partner_id.trab_cargo or "",
+					'trab_antiguedad_a': invoice.partner_id.trab_antiguedad_a or "",
+					'trab_antiguedad_m': invoice.partner_id.trab_antiguedad_m or "",
+					'casa_propia': invoice.partner_id.casa_propia or "",
+				    'casa_alquiler': invoice.partner_id.casa_alquiler or "",
+					'trab_salario': invoice.partner_id.trab_salario or "",
+					'name_deudor': invoice.partner_id.name_deudor or "",
+					'cin_deudor': invoice.partner_id.cin_deudor or "",
+					'tel_deudor': invoice.partner_id.tel_deudor or "",
+					'dir_deudor': invoice.partner_id.dir_deudor or "",
+					'conyuge_id':[{
+					        'cony_id': invoice.partner_id.conyuge_id.id or "",
+							'cony_name': invoice.partner_id.conyuge_id.name or "",
+							'cony_ruc': invoice.partner_id.conyuge_id.ruc or "",
+			                'cony_phone': invoice.partner_id.conyuge_id.phone or "",
+			                'cony_mobile': invoice.partner_id.conyuge_id.mobile or "",
+							'cony_city': invoice.partner_id.conyuge_id.city or "",
+							'cony_street': invoice.partner_id.conyuge_id.street or "",
+			                'cony_trab_empresa': invoice.partner_id.conyuge_id.trab_empresa or "",
+			                'cony_trab_telefono': invoice.partner_id.conyuge_id.trab_telefono or "",
+					}],
+					'ref_personal_ids': [{
+						'id': refPartner.id or "",
+						'name': refPartner.name or "",
+						'phone': refPartner.phone or "",
+					    'email': refPartner.email or "",
+					} for refPartner in invoice.partner_id.ref_personal_ids],
+
+					'ref_comercial_ids': [{
+						'id': comPartner.id  or "",
+						'name': comPartner.name or "",
+						'phone': comPartner.phone or "",
+					} for comPartner in invoice.partner_id.ref_comercial_ids],
+
+				}],
+                # COMPANY INFO
+				'company_id': [{
+					'id':invoice.user_id.company_id.id,
+	                'name': invoice.user_id.company_id.name,
+	                'logo': invoice.user_id.company_id.logo,
+	                'phone': invoice.user_id.company_id.phone,
+				}],
+				# CURRENCY INFO
+				'currency_id':[{
+					'id': invoice.currency_id.id,
+					'name': invoice.currency_id.name,
+					'symbol': invoice.currency_id.symbol,
+					'thousands_separator': invoice.currency_id.thousands_separator,
+					'decimal_separator': invoice.currency_id.decimal_separator,
+					'decimal_places': invoice.currency_id.decimal_places,
+					'symbol_position': invoice.currency_id.symbol,
+				}],
+			})
+
+		return values
+
+	@api.model
+	def getAccountInvoicePagareQuota(self,domain):
+		AccountInvoice = self.env['account.invoice'].search(domain)
+		AccountMoveLine = self.env['account.move.line'].search([('move_id','=',AccountInvoice.number),('debit','>',0),('date_maturity','!=', False)],order='date_maturity')
+
+		i = 1
+		x = len(AccountMoveLine)
+		values = []
+
+		for line in AccountMoveLine:
+			amount = 0
+			value = 0
+			state = 'No pagado'
+			if(line.reconcile_ref != False):
+				if(line.amount_residual == 0):
+					state = 'Pagado'
+
+				if(line.amount_residual > 0):
+					value = line.debit - line.amount_residual
+					state = 'Amortizado'
+
+			values.append({
+				'date': line.date_maturity,
+				'name': 'Cuota ' + str(i) + ' / ' + str(x),
+				'state': state,
+				'value': value,
+				'amount': line.debit,
+				'residual': line.amount_residual,
+				'tot_cuota': str(x),
+			})
+			i = i + 1
+
+		return values
+
+class AccountInvoiceLine(models.Model):
+	_inherit = 'account.invoice.line'
+
+	@api.model
+	def getAccountInvoiceLinePagare(self,domain):
+		AccountInvoiceLine = self.env['account.invoice.line'].search(domain)
+		values = []
+		for line in AccountInvoiceLine:
+			values.append({
+				'id': line.id,
+                'name': line.name,
+                'quantity': line.quantity,
+                'price_unit': line.price_unit,
+                'price_subtotal': line.price_subtotal,
+			})
+
+		return values

BIN
static/description/icon.png


+ 4 - 0
static/src/css/style.css

@@ -0,0 +1,4 @@
+.pagare_button_box {
+    width: auto;
+    float: left;
+}

Fichier diff supprimé car celui-ci est trop grand
+ 608 - 0
static/src/js/main (copia).js


Fichier diff supprimé car celui-ci est trop grand
+ 420 - 0
static/src/js/main.js


+ 8 - 0
static/src/xml/main.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<template xml:space="preserve">
+    <t t-name="pagare_anillos.PagareAnillos">
+        <button class="print_pagare_anillos oe_button oe_form_button oe_highlight">
+            <div> Imprimir Pagare</div>
+        </button>
+    </t>
+</template>

+ 18 - 0
views/account_invoice_view.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<openerp>
+	<data>
+        <record model="ir.ui.view" id="account_invoice_button">
+            <field name="name">account.invoice.button</field>
+            <field name="model">account.invoice</field>
+            <field name="inherit_id" ref="account.invoice_form"/>
+            <field name="arch" type="xml">
+				<xpath expr="//button[@name='invoice_print']" position="replace">
+					<div class="pagare_button_box" attrs="{'invisible': [('state','not in',['open','paid'])]}"></div>
+				</xpath>
+				<xpath expr="//button[@name='action_invoice_sent']" position="attributes">
+					<attribute name="invisible">1</attribute>
+				</xpath>
+            </field>
+        </record>
+	</data>
+</openerp>

+ 10 - 0
views/template.xml

@@ -0,0 +1,10 @@
+<openerp>
+    <data>
+        <template id="pagare_anillos.assets_backend" name="pagare_anillos_assets" inherit_id="eiru_assets.assets">
+            <xpath expr="." position="inside">
+                <link rel="stylesheet" href="/pagare_anillos/static/src/css/style.css"/>
+                <script type="text/javascript" src="/pagare_anillos/static/src/js/main.js"/>
+            </xpath>
+        </template>
+    </data>
+</openerp>

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff