소스 검색

Impresion factura legal en venta normal y factura ferresur

Sebas 6 년 전
부모
커밋
5b1af0b355
6개의 변경된 파일392개의 추가작업 그리고 2개의 파일을 삭제
  1. 1 1
      __init__.py
  2. BIN
      __init__.pyc
  3. 2 1
      __openerp__.py
  4. 29 0
      factura_ventainvoice_ferresur.py
  5. BIN
      factura_ventainvoice_ferresur.pyc
  6. 360 0
      factura_ventainvoice_ferresur.xml

+ 1 - 1
__init__.py

@@ -15,4 +15,4 @@
 #                                                                               #
 #################################################################################
 
-from . import account_invoice, res_currency, factura_venta_ferresur
+from . import account_invoice, res_currency, factura_venta_ferresur, factura_ventainvoice_ferresur

BIN
__init__.pyc


+ 2 - 1
__openerp__.py

@@ -32,9 +32,10 @@ Formato para imprimir la factura legal de Ferresur
     """,
     'author': 'Eiru/Sebastian Penayo',
     'website': 'http://www.eiru.com.py',
-    'depends': ['base','account'],
+    'depends': ['base','account','sale'],
     'data': [
 	    'factura_venta_ferresur.xml',
+        'factura_ventainvoice_ferresur.xml',
         'account_invoice_view.xml',
         'res_currency_view.xml'
     ],

+ 29 - 0
factura_ventainvoice_ferresur.py

@@ -0,0 +1,29 @@
+from openerp import api, models
+from num2words import num2words
+
+class report_facturainvoice_ferresur(models.AbstractModel):
+    _name = 'report.factura_venta_ferresur.report_facturainvoice_ferresur'
+
+    @api.multi
+    def render_html(self, data=None):
+        report_obj = self.env['report']
+        report = report_obj._get_report_from_name('factura_venta_ferresur.report_facturainvoice_ferresur')
+        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_ferresur.report_facturainvoice_ferresur', 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)

BIN
factura_ventainvoice_ferresur.pyc


+ 360 - 0
factura_ventainvoice_ferresur.xml

@@ -0,0 +1,360 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+<data>
+
+     <report id="factura_ventainvoice_ferresur"
+        model="sale.order"
+        string="Factura Legal"
+        report_type="qweb-html"
+        name="factura_venta_ferresur.report_facturainvoice_ferresur"
+        file="factura_venta_ferresur.report_facturainvoice_ferresur"
+     />
+
+    <template id="report_facturainvoice_ferresur">
+        <t t-call="report.html_container">
+            <t t-foreach="[1,2]" t-as="i">
+                <div class="page">
+                    <style type="text/css">
+                        body{
+                            font-size: 2.8mm;
+
+                            font-family: Arial, Helvetica, sans-serif;
+                        }
+                        div{
+                            padding: 0px;
+                        }
+                        .pagina{
+                            width:19.3cm;
+                        }
+                        .logo{
+                            height: 2.5cm;
+                            width: 100%;
+                            top: 0px;
+                        }
+                        .logo1{
+                            height: 4.7cm;
+                            width: 100%;
+                            top: 0px;
+                        }
+                        .fecha_emision_data{
+                            width: 14.5cm;
+                            padding-left:2.5cm;
+                            float: left;
+                            min-height: 0.48cm;
+                        }
+                        .contado_x{
+                            width: 3.6cm;
+                            float: left;
+                            padding-left: 1cm;
+                            min-height: 0.46cm;
+                        }
+
+                        .razon_data{
+                            width: 11.7cm;
+                            float: left;
+                            padding-left: 2.5cm;
+                            min-height: 0.49cm;
+                        }
+                        .ruc_data{
+                            width: 5cm;
+                            float: left;
+                            padding-left: 2.8cm;
+                            min-height: 0.47cm;
+                        }
+                        .direccion_data{
+                            width: 13.5cm;
+                            float: left;
+                            padding-left:2.7cm;
+                            min-height: 0.45cm;
+                        }
+                        .telefono_data{
+                            width: 3.5cm;
+                            float: right;
+                            padding-left: 0.1mm;
+                            min-height: 0.45cm;
+                        }
+                        .nota_remision_data{
+                            width: 13cm;
+                            float: left;
+                            padding-left: 2.8cm;
+                            min-height: 0cm;
+                        }
+                        .dias_credito{
+                            width: 5cm;
+                            float: left;
+                            padding-left: 0.8cm;
+                            min-height: 0cm;
+                        }
+                        .cab-articulos{
+                            height: 1.3cm;
+                            clear: both;
+                        }
+                        .divisoria1{
+                            height: 2.1cm;
+                            width: 100%;
+                            top: 0px;
+                        }
+
+                        .borderless td, .borderless th {
+                            border: none !important;
+                        }
+                        .table-condensed>tbody>tr>td {
+                            padding: 1px !important;
+                        }
+                        .table-super-condensed>tbody>tr>td {
+                            padding: 5px !important;
+                        }
+                        .table-condensed2>tbody>tr>td {
+                            padding: 2.5px !important;
+                        }
+
+                    </style>
+                    <t t-foreach="docs" t-as="o">
+                        <div class="pagina">
+                            <div class="logo"> </div>
+                            <tr>
+                                <div class="fecha_emision_data"><span t-field="o.date_order" t-field-options='{"format": "dd MMMM yyyy"}'/></div>
+                                <div class="contado_x">Contado</div>
+                            </tr>
+
+                            <tr>
+                                <div class="razon_data"><span t-field="o.partner_id.name"/></div>
+                                <div class="ruc_data"><span t-field="o.partner_id.ruc"/></div>
+                            </tr>
+
+                            <tr>
+                                <div class="direccion_data">
+                                    <t t-f="o.partner_id.street"><span t-field="o.partner_id.street"/> <span t-field="o.partner_id.street2"/></t>
+                                    <t t-f="not o.partner_id.street"> </t>
+                                </div>
+                                <div class="telefono_data"><span t-field="o.partner_id.mobile"/></div>
+                            </tr>
+
+                            <tr>
+                                <div class="nota_remision_data"></div>
+                                <div class="dias_credito"></div>
+                            </tr>
+
+                            <div class="cab-articulos"> </div>
+                            <div style="height:4.9cm;">
+                                <div style="font-family: Arial;">
+                                    <table class="table borderless table-condensed">
+                                        <t t-set="valor_exentas" t-value="0"/>
+                                        <t t-set="valor_5" t-value="0"/>
+                                        <t t-set="valor_10" t-value="0"/>
+                                        <tbody>
+                                            <tr t-foreach="o.order_line" t-as="l">
+                                                <!-- CODIGO DE PRODUCTO -->
+                                                <td style="font-size:9px;font-family: Arial;width:2.2cm;overflow: auto; text-align: left;">
+                                                    <span t-field="l.product_id.default_code"/>
+                                                </td>
+                                                <!-- CANTIDAD -->
+                                                <td style="font-size:9px;font-family: Arial;width:2.7cm;overflow: auto; text-align: center;">
+                                                    <span t-esc="'%.0f'%l.product_uom_qty"/>
+                                                </td>
+
+                                                <!-- NOMBRE DEL PRODUCTO -->
+                                                <td style="font-size:9px;font-family: Arial;width:9.8cm;overflow: auto;">
+                                                    <span t-field="l.name"/>
+                                                </td>
+                                                <!-- PRECIO UNITARIO -->
+                                                <td style="font-size:9px;font-family: Arial;width:1.8cm;overflow: auto; text-align: right;">
+                                                    <t t-if="o.currency_id.id == 166">
+                                                        <span t-esc="'{0:,.0f}'.format(l.price_unit)"/>
+                                                    </t>
+                                                    <t t-if="o.currency_id.id != 166">
+                                                        <span t-esc="'{0:,.2f}'.format(l.price_unit)"/>
+                                                    </t>
+                                                </td>
+                                                <!-- EXENTAS -->
+                                                <td style="font-size:9px;font-family: Arial;width:2.0cm;overflow: auto; text-align: right;">
+                                                    <span t-if="'IVA 5% Venta' not in [ilt.name for ilt in l.tax_id] and 'IVA 10% Venta' not in [ilt.name for ilt in l.tax_id]">
+                                                        <t t-if="o.currency_id.id == 166">
+                                                            <span t-esc="'{0:,.0f}'.format(l.product_uom_qty * l.price_unit)"/>
+                                                        </t>
+                                                        <t t-if="o.currency_id.id != 166">
+                                                            <span t-esc="'{0:,.2f}'.format(l.product_uom_qty * l.price_unit)"/>
+                                                        </t>
+                                                        <t t-set="valor_exentas" t-value="valor_exentas+(l.product_uom_qty * l.price_unit)"/>
+                                                    </span>
+                                                </td>
+
+                                                <!-- IVA 5% -->
+                                                <td style="font-size:9px;font-family: Arial;width:2cm;overflow: auto; text-align: right;">
+                                                    <span t-if="'IVA 5% Venta' in [ilt.name for ilt in l.tax_id] and 'IVA 10% Venta' not in [ilt.name for ilt in l.tax_id]">
+                                                        <t t-if="o.currency_id.id == 166">
+                                                            <span t-esc="'{0:,.0f}'.format(l.product_uom_qty * l.price_unit)"/>
+                                                        </t>
+                                                        <t t-if="o.currency_id.id != 166">
+                                                            <span t-esc="'{0:,.2f}'.format(l.product_uom_qty * l.price_unit)"/>
+                                                        </t>
+                                                        <t t-set="valor_5" t-value="valor_5+(l.product_uom_qty * l.price_unit)"/>
+                                                    </span>
+                                                </td>
+
+                                                <!-- IVA 10% -->
+                                                <td style="font-size:9px;font-family: Arial;width:2.3cm;overflow: auto; text-align: right;">
+                                                    <span t-if="'IVA 10% Venta' in [ilt.name for ilt in l.tax_id]">
+                                                        <t t-if="o.currency_id.id == 166">
+                                                            <span t-esc="'{0:,.0f}'.format(l.product_uom_qty * l.price_unit)"/>
+                                                        </t>
+                                                        <t t-if="o.currency_id.id != 166">
+                                                            <span t-esc="'{0:,.2f}'.format(l.product_uom_qty * l.price_unit)"/>
+                                                        </t>
+                                                        <t t-set="valor_10" t-value="valor_10+(l.product_uom_qty * l.price_unit)"/>
+                                                    </span>
+                                                </td>
+                                            </tr>
+                                        </tbody>
+                                    </table>
+                                </div>
+                            </div>
+                            <div style="height:1.9cm;padding-left:1.7cm;">
+                                    <t t-set="total_exentas" t-value="0"/>
+                                    <t t-set="total_5" t-value="0"/>
+                                    <t t-set="total_10" t-value="0"/>
+                                    <t t-set="iva_5" t-value="0"/>
+                                    <t t-set="iva_10" t-value="0"/>
+                                    <t t-set="iva_exentas" t-value="0"/>
+                                    <table class="table borderless table-condensed2">
+                                        <tbody>
+
+                                            <tr>
+                                                <td style="font-size:10px;font-family: Arial;width:2.2cm;overflow: auto; text-align: center;"></td>
+                                                <td style="font-size:10px;font-family: Arial;width:2.7cm;overflow: auto; text-align: center;"></td>
+                                                <td style="font-size:10px;font-family: Arial;width:9.8cm;overflow: auto; text-align: center;"></td>
+                                                <td style="font-size:10px;font-family: Arial;width:2cm;overflow: auto; text-align: center;"></td>
+                                                <td style="font-size:10px;font-family: Arial;width:2.0cm;overflow: auto; text-align: right;">
+                                                    <t t-if="o.currency_id.id == 166">
+                                                        <span t-esc="'{0:,.0f}'.format(valor_exentas)"/>
+                                                    </t>
+                                                    <t t-if="o.currency_id.id != 166">
+                                                        <span t-esc="'{0:,.2f}'.format(valor_exentas)"/>
+                                                    </t>
+                                                    <t t-set="iva_exentas" t-value="valor_exentas"/>
+                                                </td>
+                                                <td style="font-size:10px;font-family: Arial;width:2.1cm;overflow: auto; text-align: right;">
+                                                    <t t-if="o.currency_id.id == 166">
+                                                        <span t-esc="'{0:,.0f}'.format(valor_5)"/>
+                                                    </t>
+                                                    <t t-if="o.currency_id.id != 166">
+                                                        <span t-esc="'{0:,.2f}'.format(valor_5)"/>
+                                                    </t>
+                                                    <t t-set="iva_5" t-value="valor_5/21" />
+                                                </td>
+                                                <td style="font-size:10px;font-family: Arial;width:2.3cm;overflow: auto; text-align: right;">
+                                                    <t t-if="o.currency_id.id == 166">
+                                                        <span t-esc="'{0:,.0f}'.format(valor_10)"/>
+                                                    </t>
+                                                    <t t-if="o.currency_id.id != 166">
+                                                        <span t-esc="'{0:,.2f}'.format(valor_10)"/>
+                                                    </t>
+                                                    <t t-set="iva_10" t-value="(valor_10)/11" />
+                                                </td>
+                                            </tr>
+                                            <!-- <t t-if="i == 2">
+                                                <div class="divisoria2"> </div>
+                                            </t> -->
+                                            <!-- LINEA TOTAL EN LETRAS Y TOTAL GENERAL -->
+                                            <tr>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2.2cm;overflow: auto; text-align: center;"></td>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2.5cm;overflow: auto; text-align: center;"></td>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:7cm;overflow: auto; text-align: left;">
+                                                    <t t-if="o.currency_id.id == 166">
+                                                        <div>Gs <span t-esc="convertir(o.amount_total,o.currency_id.en_letras)"/></div>
+                                                    </t>
+                                                    <t t-if="o.currency_id.id != 166">
+                                                        <div>Dólares <span t-esc="convertir(o.amount_total,o.currency_id.en_letras)"/></div>
+                                                    </t>
+                                                </td>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2cm;overflow: auto; text-align: center;"></td>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2cm;overflow: auto; text-align: right;"></td>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2.2cm;overflow: auto; text-align: right;">
+
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2.5cm;overflow: auto; text-align: right;">
+                                                    <t t-if="o.currency_id.id == 166">
+                                                        <span t-esc="'{0:,.0f}'.format(o.amount_total)"/>
+                                                    </t>
+                                                    <t t-if="o.currency_id.id != 166">
+                                                        <span t-esc="'{0:,.2f}'.format(o.amount_total)"/>
+                                                    </t></td>
+                                                </td>
+                                            </tr>
+                                            <!-- TOTAL DE IVA -->
+                                            <div class="divisoria1"> </div>
+
+
+                                            <tr>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2.2cm;overflow: auto; text-align: center;"></td>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2.5cm;overflow: auto; text-align: center;">
+                                                    <t t-if="o.currency_id.id == 166">
+                                                        <div>
+                                                            <t t-if="iva_5 != 0">
+                                                                <span t-esc="'{0:,.0f}'.format(iva_5)"/>
+                                                            </t>
+                                                        </div>
+                                                    </t>
+                                                    <t t-if="o.currency_id.id != 166">
+                                                        <div>
+                                                            <t t-if="iva_5 != 0">
+                                                                <span t-esc="'{0:,.0f}'.format(iva_5)"/>
+                                                            </t>
+                                                        </div>
+                                                    </t>
+                                                </td>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:7cm;overflow: auto; text-align: left;">
+                                                    <t t-if="o.currency_id.id == 166">
+                                                        <div>
+                                                            <t t-if="iva_10 != 0">
+                                                                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                                                                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                                                                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                                                                <span t-esc="'{0:,.0f}'.format(iva_10)"/>
+                                                            </t>
+                                                        </div>
+                                                    </t>
+                                                    <t t-if="o.currency_id.id != 166">
+                                                        <div>
+                                                            <t t-if="iva_10 != 0">
+                                                                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                                                                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                                                                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
+                                                                <span t-esc="'{0:,.0f}'.format(iva_10)"/>
+                                                            </t>
+
+                                                        </div>
+                                                    </t>
+                                                </td>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2cm;overflow: auto; text-align: left;">
+                                                    <t t-if="o.currency_id.id == 166">
+
+                                                        <span t-esc="'{0:,.0f}'.format(iva_5+iva_10)"/>
+                                                    </t>
+                                                    <t t-if="o.currency_id.id != 166">
+
+                                                        <span t-esc="'{0:,.0f}'.format(iva_5+iva_10)"/>
+                                                    </t>
+                                                </td>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2.0cm;overflow: auto; text-align: right;">
+
+                                                </td>
+
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2.2cm;overflow: auto; text-align: center;">
+                                                </td>
+                                                <td style="padding-top:0.3cm;font-size:10px;font-family: Arial;width:2.5cm;overflow: auto; text-align: right;">
+                                                </td>
+                                            </tr>
+                                        </tbody>
+                                    </table>
+                            </div>
+                            <div class="logo1"> </div>
+                        </div>
+
+                    </t>
+
+                </div>
+            </t>
+        </t>
+    </template>
+</data>
+</openerp>