Rodney Elpidio Enciso Arias 6 роки тому
коміт
7e45659f53
9 змінених файлів з 232 додано та 0 видалено
  1. 4 0
      __init__.py
  2. BIN
      __init__.pyc
  3. 24 0
      __openerp__.py
  4. 20 0
      data/report_paperformat.xml
  5. 3 0
      reports/__init__.py
  6. BIN
      reports/__init__.pyc
  7. 27 0
      reports/parser.py
  8. BIN
      reports/parser.pyc
  9. 154 0
      reports/ticket.xml

+ 4 - 0
__init__.py

@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+
+# from . import models
+from . import reports


+ 24 - 0
__openerp__.py

@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+
+{
+    'name': 'Eiru Ticket Sharon',
+    'summary': 'Ticket Sharon',
+    'category': 'extra',
+    'version': '0.1',
+    'description': """
+    """,
+    'author': 'Eiru',
+    'website': 'https://www.eiru.com.py',
+    'depends': [
+        'product',
+        'account',
+        'sale',
+    ],
+    'data': [
+        'data/report_paperformat.xml',
+        'reports/ticket.xml',
+    ],
+    'test': [
+    ],
+    'installable': True,
+}

+ 20 - 0
data/report_paperformat.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+        <record id="paperformat_ticker_sharon" model="report.paperformat">
+            <field name="name">ticket</field>
+            <field name="default" eval="True"/>
+            <field name="format">custom</field>
+            <field name="page_height">300</field>
+            <field name="page_width">60</field>
+            <field name="orientation">Portrait</field>
+            <field name="margin_top">1</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">0</field>
+            <field name="dpi">130</field>
+        </record>
+    </data>
+</openerp>

+ 3 - 0
reports/__init__.py

@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import parser

BIN
reports/__init__.pyc


+ 27 - 0
reports/parser.py

@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+
+from functools import partial
+from openerp.osv import osv
+from openerp import exceptions, _
+from reportlab.graphics.barcode import createBarcodeDrawing
+
+class PartnerReport(osv.AbstractModel):
+    _name = 'report.eiru_ticket_sharon.partner_report'
+
+    def render_html(self, cr, uid, ids, data=None, context=None):
+        report_obj = self.pool['report']
+        obj = self.pool['account.invoice']
+        report = report_obj._get_report_from_name(
+            cr, uid, 'eiru_ticket_sharon.partner_report')
+        selected_orders = obj.browse(
+            cr, uid, ids, context=context)
+
+        docargs = {
+            'doc_ids': ids,
+            'doc_model': report.model,
+            'docs': selected_orders,
+        }
+
+        return report_obj.render(
+            cr, uid, ids, 'eiru_ticket_sharon.partner_report',
+            docargs, context=context)

BIN
reports/parser.pyc


+ 154 - 0
reports/ticket.xml

@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+
+        <!-- Declarar el informe -->
+        <report
+            id="action_eiru_ticket_sharon"
+            string="Ticket"
+            model="account.invoice"
+            report_type="qweb-html"
+            name="eiru_ticket_sharon.partner_report"
+            file="ticket"
+         />
+
+        <record id="action_eiru_ticket_sharon" model="ir.actions.report.xml">
+            <field name="paperformat_id" ref="eiru_ticket_sharon.paperformat_ticker_sharon"/>
+        </record>
+
+        <!-- Informe -->
+        <template id="partner_report">
+            <t t-call="report.html_container">
+                <t t-foreach="doc_ids" t-as="doc_id">
+                    <t t-raw="translate_doc(doc_id, doc_model, 'partner_id.lang', 'eiru_ticket_sharon.partner_report_document')"/>
+                </t>
+            </t>
+        </template>
+
+        <template id="ticket">
+            <div class="page" style="font-size:10px;">
+                <style>
+                    body {
+                        color: #000;
+                        font-family: Arial, Helvetica, sans-serif;
+                        font-size: 14px;
+                        letter-spacing: 0.0px;
+                        line-height: 20px;
+                        margin:0;
+                        padding:0;
+                        word-spacing:1px;
+                    }
+                    .text-lg {
+                        font-size: 18px;
+                        font-weight: bold;
+                    }
+                    .bordered {
+                        border: 1px solid #000;
+                        padding: 5px;
+                    }
+                    .centered {
+                        position: absolute;
+                        left: -50%;
+                        top: -50%;
+                        max-width: 100%;
+                    }
+                    .bottom {
+                        position: absolute;
+                        bottom: 0px;
+                        max-width: 100%;
+                    }
+                    .top {
+                        position: absolute;
+                        top: 0px;
+                        max-width: 100%;
+                    }
+                    .separator {
+                        border-top: 1px solid #000;
+                        margin-top: 20px;
+                        margin-bottom: 20px;
+                    }
+                </style>
+                <section class="header">
+                    <div class="row">
+                        <div class="col-xs-12">
+                            <p class="text-center" style="margin-top: 20px; margin-bottom: 10px;"><span class="text-lg"><span t-field="o.company_id.name"/></span></p>
+                            <p class="text-center">
+                                <span t-if="o.number" t-field="o.number"/>
+                            </p>
+                        </div>
+                    </div>
+                </section>
+                <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
+                <div class="row">
+                    <div class="col-xs-12">
+                        Fecha: <span t-if="o.date_invoice" t-field="o.date_invoice"/>
+                        <br/>
+                        Vendedor: <span t-if="o.partner_id.name" t-field="o.partner_id.name"/>
+                    </div>
+                </div>
+                <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
+                <div class="row">
+                    <div class="col-xs-12">
+                        Cliente: <span t-if="o.partner_id.name" t-field="o.partner_id.name"/>
+                        <br/>
+                        Teléfono: <span t-if="o.partner_id.phone" t-field="o.partner_id.phone"/><t t-if="o.partner_id.mobile"> - <span t-field="o.partner_id.mobile"/></t>
+                    </div>
+                </div>
+                <div class="row"><div class="col-xs-12"><div class="separator"/></div></div>
+                <br/>
+                <table class="table table-condensed" style="font-size:10px;border:none;">
+                    <thead>
+                        <tr>
+                            <th>Producto</th>
+                            <th>Cant.</th>
+                            <th class="text-right">Precio</th>
+                        </tr>
+                    </thead>
+                    <tbody class="invoice_tbody">
+                        <tr t-foreach="o.invoice_line" t-as="l" style="border:none;">
+                            <td><span t-field="l.name"/></td>
+                            <td>
+                                <span t-field="l.quantity"/>
+                            </td>
+                            <td class="text-right">
+                                <span t-field="l.price_unit"/>
+                            </td>
+                        </tr>
+                    </tbody>
+                </table>
+                <div class="row">
+                    <div class="col-xs-12" style="font-size:10px;">
+                        <table class="table table-condensed">
+                            <tr class="border-black">
+                                <td><strong>SubTotal</strong></td>
+                                <td class="text-right">
+                                    <span t-field="o.amount_untaxed" t-field-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: &quot;o.currency_id&quot;}"/>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td>IVA</td>
+                                <td class="text-right">
+                                    <span t-field="o.amount_tax" t-field-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: &quot;o.currency_id&quot;}"/>
+                                </td>
+                            </tr>
+                            <tr class="border-black">
+                                <td><strong>Total</strong></td>
+                                <td class="text-right">
+                                     <span t-field="o.amount_total" t-field-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: &quot;o.currency_id&quot;}"/>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+                </div>
+            </div>
+        </template>
+
+        <!-- Contenido del informe -->
+        <template id="partner_report_document">
+            <t t-call="report.html_container">
+                <t t-call="eiru_ticket_sharon.ticket"/>
+            </t>
+        </template>
+
+    </data>
+</openerp>