Преглед изворни кода

Módulo para ticket de ferreteria en factura de ventas

SEBAS пре 2 недеља
родитељ
комит
fda0ba9f90
1 измењених фајлова са 95 додато и 69 уклоњено
  1. 95 69
      ticket_venta_ferreteria.xml

+ 95 - 69
ticket_venta_ferreteria.xml

@@ -2,106 +2,132 @@
 <openerp>
 <data>
 
-     <report id="ticket_venta_ferreteria"
+    <!-- Registro del reporte -->
+    <report
+        id="ticket_venta_ferreteria"
         model="account.invoice"
         string="Ticket"
         report_type="qweb-html"
         name="ticket_venta_ferreteria.report_ticket_ferreteria"
         file="ticket_venta_ferreteria.report_ticket_ferreteria"
-     />
+    />
 
-    <record id="paperformat_lowmargin" model="report.paperformat">
-         <field name="name">Ticket Venta</field>
-         <field name="default" eval="True" />
-         <field name="format">custom</field>
-         <field name="page_height">150</field>
-         <field name="page_width">75</field>
-         <field name="orientation">Portrait</field>
-         <field name="margin_top">3</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>
+    <!-- Formato de papel para impresora térmica -->
+    <record id="paperformat_ticket_venta" model="report.paperformat">
+        <field name="name">Ticket Venta</field>
+        <field name="format">custom</field>
+        <field name="page_height">300</field>
+        <field name="page_width">58</field> <!-- mm -->
+        <field name="orientation">Portrait</field>
+        <field name="margin_top">1</field>
+        <field name="margin_bottom">1</field>
+        <field name="margin_left">1</field>
+        <field name="margin_right">1</field>
+        <field name="header_line" eval="False"/>
+        <field name="header_spacing">0</field>
+        <field name="dpi">90</field>
     </record>
 
-    <record id="ticket_venta_ferreteria.ticket_venta_ferreteria" model="ir.actions.report.xml">
-        <field name="paperformat_id" ref="ticket_venta_ferreteria.paperformat_lowmargin" />
+    <report
+        id="ticket_venta_ferreteria"
+        model="account.invoice"
+        string="Ticket"
+        report_type="qweb-pdf"
+        name="ticket_venta_ferreteria.report_ticket_ferreteria"
+        file="ticket_venta_ferreteria.report_ticket_ferreteria"
+    />
+
+    <record id="ticket_venta_ferreteria" model="ir.actions.report.xml">
+        <field name="name">Ticket Venta</field>
+        <field name="model">account.invoice</field>
+        <field name="report_type">qweb-html</field>
+        <field name="report_name">ticket_venta_ferreteria.report_ticket_ferreteria</field>
+        <field name="paperformat_id" ref="ticket_venta_ferreteria.paperformat_ticket_venta"/>
     </record>
 
+    <!-- Asignar formato de papel al reporte -->
+    <!-- <record id="ticket_venta_ferreteria" model="ir.actions.report.xml">
+        <field name="paperformat_id" ref="ticket_venta_ferreteria.paperformat_ticket_venta"/>
+    </record> -->
+
+    <!-- Plantilla QWeb -->
     <template id="report_ticket_ferreteria">
         <t t-call="report.html_container">
             <div class="page">
                 <style>
-                    .table-condensed>tbody>tr>td {
-                        padding: 1px !important;
-                        font-size: 10px;
-                        font-family: Arial;
-                        text-align: left;
+                    .ticket {
+                        font-family: "Arial", sans-serif;
+                        font-size: 9px;
+                        line-height: 1.2em;
+                        width: 100%;
+                    }
+                    .center {
+                        text-align: center;
+                    }
+                    .product-line {
+                        margin-bottom: 3px;
                     }
-                    .borderless td, .borderless th {
-                        border: none !important;
+                    .summary-table {
+                        margin-top: 5px;
+                        width: 100%;
+                    }
+                    .summary-table td {
+                        padding: 2px 0;
                     }
                 </style>
 
                 <t t-foreach="docs" t-as="o">
-                    <div class="pagina">
-                        <div style="text-align: center; font-size: 11px; font-family: Arial;">
-                            <b>BIOMARKET</b>
-                        </div>
-                        <div style="font-size:9.5px; text-align: center;">
+                    <div class="ticket">
+
+                        <div class="center"><strong>BIOMARKET</strong></div>
+                        <div class="center">
                             <span t-field="o.create_date" t-options='{"format": "dd/MM/yyyy hh:mm:ss"}'/>
                         </div>
-                        <div style="font-size:10px;">
-                            <b>Cliente:</b> <span t-field="o.partner_id.name"/> - <b>Tel:</b> <span t-field="o.partner_id.mobile"/>
+                        <div>
+                            <b>Cliente:</b> <span t-field="o.partner_id.name"/>
+                        </div>
+                        <div>
+                            <b>Tel:</b> <span t-field="o.partner_id.mobile"/>
                         </div>
 
-                        <table class="table table-condensed borderless">
-                            <thead>
-                                <tr>
-                                    <th style="width:10%; text-align: center;">Cant.</th>
-                                    <th style="width:50%;">Producto</th>
-                                    <th style="width:15%; text-align: center;">Código</th>
-                                    <th style="width:15%; text-align: center;">Precio</th>
-                                    <th style="width:15%; text-align: right;">Subtotal</th>
-                                </tr>
-                            </thead>
-                            <tbody>
-                                <tr t-foreach="o.invoice_line" t-as="l">
-                                    <td style="text-align: center;"><span t-esc="'%.0f'%l.quantity"/></td>
-                                    <td><span t-field="l.name"/></td>
-                                    <td style="text-align: center;"><span t-field="l.product_id.default_code"/></td>
-                                    <td style="text-align: center;"><span t-esc="'{0:,.0f}'.format(l.price_unit)"/></td>
-                                    <td style="text-align: right;"><span t-esc="'{0:,.2f}'.format(l.quantity * l.price_unit)"/></td>
-                                </tr>
-                            </tbody>
-                        </table>
+                        <div style="margin-top: 5px;">
+                            <div class="center"><b>Detalle</b></div>
+                            <div t-foreach="o.invoice_line" t-as="l" class="product-line">
+                                <div>
+                                    <span t-esc="'%.0f' % l.quantity"/>
+                                    <span t-field="l.name"/>
+                                </div>
+                                <div>
+                                    <span t-field="l.product_id.default_code"/>
+                                    <span t-esc="'{0:,.0f}'.format(l.price_unit)"/>
+                                    <span style="float: right;" t-esc="'{0:,.2f}'.format(l.quantity * l.price_unit)"/>
+                                </div>
+                            </div>
+                        </div>
 
-                        <table class="table table-condensed borderless">
-                            <tbody>
-                                <tr>
-                                    <td><b>Sub Total:</b></td>
-                                    <td style="text-align: right;"><span t-esc="'{0:,.2f}'.format(o.amount_untaxed)"/></td>
-                                </tr>
-                                <tr>
-                                    <td><b>Descuento:</b></td>
-                                    <td style="text-align: right;"><span t-esc="'{0:,.2f}'.format(o.amount_total - o.amount_untaxed)"/></td>
-                                </tr>
-                                <tr>
-                                    <td><b>Total:</b></td>
-                                    <td style="text-align: right;"><span t-esc="'{0:,.2f}'.format(o.amount_total)"/></td>
-                                </tr>
-                            </tbody>
+                        <table class="summary-table">
+                            <tr>
+                                <td><b>Sub Total:</b></td>
+                                <td style="text-align: right;"><span t-esc="'{0:,.2f}'.format(o.amount_untaxed)"/></td>
+                            </tr>
+                            <tr>
+                                <td><b>Descuento:</b></td>
+                                <td style="text-align: right;"><span t-esc="'{0:,.2f}'.format(o.amount_total - o.amount_untaxed)"/></td>
+                            </tr>
+                            <tr>
+                                <td><b>Total:</b></td>
+                                <td style="text-align: right;"><span t-esc="'{0:,.2f}'.format(o.amount_total)"/></td>
+                            </tr>
                         </table>
 
-                        <div style="text-align: center; font-size:10px;">
-                            <b>GRACIAS POR SU PREFERENCIA!</b>
+                        <div class="center" style="margin-top: 5px;">
+                            <b>¡Gracias por su preferencia!</b>
                         </div>
                     </div>
                 </t>
             </div>
         </t>
     </template>
+
 </data>
 </openerp>