sebas 4 роки тому
батько
коміт
cfb84d6e3d
4 змінених файлів з 345 додано та 1 видалено
  1. 1 1
      __init__.py
  2. 1 0
      __openerp__.py
  3. 29 0
      report_reciboenfactura.py
  4. 314 0
      report_reciboenfactura.xml

+ 1 - 1
__init__.py

@@ -19,4 +19,4 @@
 ###################################################################################
 # Product Brand is an Openobject module wich enable Brand management for products #
 ###################################################################################
-from . import factura_venta_nandetv, account_invoice, res_currency
+from . import factura_venta_nandetv, account_invoice, res_currency, report_reciboenfactura

+ 1 - 0
__openerp__.py

@@ -36,6 +36,7 @@ Formato para imprimir la factura legal de Nandetv
     'data': [
         'factura_venta_nandetv.xml',
         'account_invoice_view.xml',
+        'report_reciboenfactura.xml',
         'res_currency_view.xml'
     ],
     'installable': True,

+ 29 - 0
report_reciboenfactura.py

@@ -0,0 +1,29 @@
+from openerp import api, models
+from num2words import num2words
+
+class report_recibonenfactura(models.AbstractModel):
+    _name = 'report.factura_venta_nandetv.reciboenfactura_nandetv'
+
+    @api.multi
+    def render_html(self, data=None):
+        report_obj = self.env['report']
+        report = report_obj._get_report_from_name('factura_venta_nandetv.reciboenfactura_nandetv')
+        docargs = {
+            'doc_ids': self._ids,
+            'doc_model': report.model,
+            'docs': self.env[report.model].browse(self._ids),
+            'convertir':self.convertir,
+            'calcular_precio':self.calcular_precio,
+        }
+        return report_obj.render('factura_venta_nandetv.reciboenfactura_nandetv', docargs)
+
+    def convertir(self,nro,moneda):
+        letra = num2words(nro,lang="es")
+        letra = letra.capitalize()
+        if not moneda:
+            moneda=''
+        letra = letra +' '+moneda
+        return letra
+
+    def calcular_precio(self,precio):
+        return (precio*1.1)

+ 314 - 0
report_reciboenfactura.xml

@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+<data>
+
+
+	 <report id="informe_reciboenfactura_nandetv"
+        model="account.invoice"
+        string="Recibo en factura"
+        report_type="qweb-html"
+        name="factura_venta_nandetv.reciboenfactura_nandetv"
+        file="factura_venta_nandetv.reciboenfactura_nandetv"
+     />
+
+	<record id="paperformat_lowmargin" model="report.paperformat">
+          <field name="name">A4</field>
+          <field name="default" eval="True" />
+          <field name="format">custom</field>
+          <field name="page_height">297</field>
+          <field name="page_width">210</field>
+          <field name="orientation">Portrait</field>
+          <field name="margin_top">4</field>
+          <field name="margin_bottom">3</field>
+          <field name="margin_left">3</field>
+          <field name="margin_right">3</field>
+          <field name="header_line" eval="False" />
+          <field name="header_spacing">3</field>
+          <field name="dpi">90</field>
+    </record>
+
+
+	<record id="factura_venta_nandetv.informe_reciboenfactura_nandetv" model="ir.actions.report.xml">
+		<field name="paperformat_id" ref="factura_venta_nandetv.paperformat_lowmargin" />
+	</record>
+
+	<template id="reciboenfactura_nandetv">
+		<t t-call="report.html_container">
+		    <t t-foreach="[1,2]" t-as="i">
+						<div class="page">
+								<style type="text/css">
+										body{
+												font-size: 3.6mm;
+												font-family: Arial;
+										}
+										body1{
+												font-size: 4.3mm;
+												font-family: Arial;
+										}
+										div{
+												padding: 0px;
+										}
+										.pagina{
+												width:19.3cm;
+												padding-left: 2cm;
+												padding-right: 1cm;
+												height: 15cm;
+										}
+										.titulo{
+											width: 19.2cm;
+											text-align: center;
+											margin-left: 0.8cm;
+											width: 100%;
+											min-height: 0.9cm;
+										}
+										.descripcion1{
+												width: 11.2cm;
+												font-size: 13px;
+												padding-top: 0.5cm;
+												float: left;
+												min-height: 0.7cm;
+										}
+
+										.descripcion2{
+												width: 13cm;
+												font-size: 11px;
+												float: left;
+												min-height: 0cm;
+										}
+
+										.descripcion3{
+												width: 15cm;
+												font-size: 11px;
+												float: left;
+												min-height: 0cm;
+										}
+										.descripcion4{
+												width: 15cm;
+												font-size: 11px;
+												float: left;
+												min-height: 0.3cm;
+										}
+										.email{
+												width: 13cm;
+												font-size: 11px;
+												float: left;
+												min-height: 0.3cm;
+										}
+
+										.table-condensed>tbody>tr>td {
+												padding: 1px !important;
+										}
+										.divisoria{
+												height: 0.1cm;
+												clear: both;
+										}
+										.linea1{
+												position: relative;
+												top: -0.12cm;
+												min-height: 0.5cm;
+										 }
+										.fecha_emision_data{
+												width: 8.5cm;
+												float: left;
+												min-height: 0.5cm;
+										}
+										.number{
+												width: 7cm;
+												float: left;
+												padding-left: 0.2cm;
+												min-height: 0.5cm;
+										}
+										.linea2{
+												position: relative;
+												top: -0.12cm;
+												min-height: 0.5cm;
+										 }
+										.razon_data{
+												width: 12cm;
+												float: left;
+												min-height: 0.4cm;
+										}
+										.ruc{
+												width: 7cm;
+												float: left;
+												min-height: 0.4cm;
+										}
+										.linea3{
+												position: relative;
+												top: -0.12cm;
+												min-height: 0.3cm;
+										 }
+										 .street{
+												 width: 15cm;
+												 float: left;
+												 min-height: 0.4cm;
+										 }
+										 .mobile{
+												 width: 7cm;
+												 float: left;
+												 min-height: 0.4cm;
+										 }
+										 .linea4{
+ 												position: relative;
+ 												top: -0.12cm;
+ 												min-height: 0.3cm;
+ 										 }
+										 .vendor{
+												 width: 8cm;
+												 float: left;
+												 min-height: 0.4cm;
+										 }
+
+										.cab-articulos{
+												height: 0.4cm;
+												clear: both;
+										}
+										.articulos{
+												height: 4.5cm;
+												width: 14cm;
+										}
+										.art-col1{
+												width:1.9cm;
+												text-align: center;
+										}
+										.art-col2{
+												padding-left: 0.3cm;
+												width:12cm;
+										}
+										.art-col3{
+												padding-left: 0.3cm;
+												text-align: right;
+												width:3cm;
+										}
+										.art-col4{
+												width:3.4cm;
+												text-align: right;
+										}
+										.art-col5{
+												width:3.4cm;
+												text-align: right;
+										}
+
+										.total_pagar_data{
+												width: 17.5cm;
+												float: left;
+												padding-top: 0.01mm;
+												min-height: 0.3cm;
+										}
+
+			 						.logo1{
+												height: 2cm;
+												width: 100%;
+												top: 0px;
+										}
+
+
+								</style>
+								<t t-foreach="docs" t-as="o">
+										<div class="pagina">
+												<div class="divisoria"> </div>
+												<div style="border:0.3px solid #000;"></div>
+												<div class="titulo" >
+														<h3 class="text-center"><strong>RECIBO DE DINERO</strong></h3>
+														<h4 class="text-center"></h4>
+												</div>
+
+												<div style="border:0.3px solid #000;"></div>
+												<div class="divisoria"> </div>
+												<div class="linea1">
+														<div class="fecha_emision_data"><b>FECHA: </b><span t-field="o.date_invoice" t-field-options='{"format": "dd MMMM yyyy"}'/></div>
+														<div class="number"><strong>REF. VENTA: </strong><span t-field="o.name"/></div>
+												</div>
+
+												<div class="linea2">
+														<div class="razon_data"><b>CLIENTE: </b><span t-field="o.partner_id.name"/></div>
+														<div class="ruc"><b>R.U.C. Nº: </b><span t-field="o.partner_id.ruc"/></div>
+												</div>
+
+												<div class="linea3">
+													  <div class="street"><b>DIRECCIÓN: </b><span t-field="o.partner_id.street"/></div>
+														<div class="mobile"><b>TÉLEFONO: </b><span t-field="o.partner_id.mobile"/></div>
+												</div>
+	                      <div class="linea4">
+														<div class="vendor"><b>COBRADOR: </b><span t-field="o.employee_id"/></div>
+												</div>
+
+												<div class="divisoria"> </div>
+												<div style="border:0.3px solid #000;"></div>
+												<div class="divisoria"> </div>
+
+												<table class="table table-condensed table-bordered">
+														<thead>
+																<tr>
+																		<th class="art-col1">CODIGO</th>
+																		<th class="art-col2">DESCRIPCION</th>
+																		<th class="art-col3">CANT.</th>
+																		<th class="art-col4">P. UNIT </th>
+																		<th class="art-col5">SUBTOTAL</th>
+																</tr>
+													 </thead>
+													 <tbody class="sale_tbody">
+															 <t t-set="valor_mat" t-value="0"/>
+															 <t t-set="qty" t-value="0"/>
+																<tr t-foreach="o.invoice_line" t-as="l">
+																		<td class="art-col1">
+																				<span t-field="l.product_id.default_code"/>
+																		</td>
+																		<td class="art-col2">
+																			 <span t-field="l.name"/>
+																		</td>
+																		<td class="art-col3">
+																				<span t-esc= "'{0:,.0f}'.format(int(l.quantity)).replace(',', '.')">
+																						<span t-value="qty + l.quantity"/></span>
+																						<t t-set="qty" t-value="qty + l.quantity"/>
+																		</td>
+																		<td class="art-col4">
+																				<span t-esc="'{0:,.0f}'.format(l.price_unit)"/>
+																		</td>
+
+																		<td class="art-col5">
+																				<span t-esc= "'{0:,.0f}'.format((l.quantity * l.price_unit)).replace(',', '.')">
+																						<span t-value="valor_mat+(l.quantity * l.price_unit)"/></span>
+																						<t t-set="valor_mat" t-value="valor_mat+(l.quantity * l.price_unit)"/>
+																		</td>
+																</tr>
+
+														</tbody>
+												</table>
+												<div class="row">
+														<div class="col-xs-12 pull-right">
+																<table class="table table-condensed">
+																		<td class="art-col1"><b>Totales: </b></td>
+																		<td class="art-col2"></td>
+																		<td class="art-col3">
+																				<span t-esc="'{0:,.0f}'.format(int(qty)).replace(',', '.')"></span>
+																		</td>
+																		<td class="art-col4"></td>
+																		<td class="art-col5">
+																				<span t-esc="'{0:,.0f}'.format((valor_mat)).replace(',', '.')"></span>
+																		</td>
+																</table>
+														 </div>
+												</div>
+
+												<div class="row">
+														<div class="col-xs-12 pull-right">
+																<table class="table table-condensed">
+
+																		<tr class="border-black">
+																				<td><div class="total_pagar_data"><b>Total a pagar: </b><span t-esc="convertir(o.amount_total,o.currency_id.en_letras)"/>	------- <span t-esc="'{0:,.0f}'.format(o.amount_total)"/></div></td>
+
+																		</tr>
+																</table>
+
+														</div>
+												</div>
+										</div>
+
+								</t>
+						</div>
+				</t>
+		</t>
+	</template>
+</data>
+</openerp>