瀏覽代碼

Modulo report_gralvariantsale

sebas 8 年之前
當前提交
144fb1a815

+ 29 - 0
__init__.py

@@ -0,0 +1,29 @@
+# -*- encoding: utf-8 -*-
+#################################################################################
+#                                                                               #
+#    product_brand for OpenERP                                                  #
+#    Copyright (C) 2009 NetAndCo (<http://www.netandco.net>).                   #
+#    Authors, Mathieu Lemercier, mathieu@netandco.net,                          #
+#             Franck Bret, franck@netandco.net                                  #
+#    Copyright (C) 2011 Akretion Benoît Guillot <benoit.guillot@akretion.com>   #
+#                                                                               #
+#    This program is free software: you can redistribute it and/or modify       #
+#    it under the terms of the GNU Affero General Public License as             #
+#    published by the Free Software Foundation, either version 3 of the         #
+#    License, or (at your option) any later version.                            #
+#                                                                               #
+#    This program is distributed in the hope that it will be useful,            #
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of             #
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              #
+#    GNU Affero General Public License for more details.                        #
+#                                                                               #
+#    You should have received a copy of the GNU Affero General Public License   #
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.      #
+#                                                                               #
+#################################################################################
+###################################################################################
+# Product Brand is an Openobject module wich enable Brand management for products #
+###################################################################################
+import report_gralvariantsale
+import report
+import math

二進制
__init__.pyc


+ 54 - 0
__openerp__.py

@@ -0,0 +1,54 @@
+# -*- encoding: utf-8 -*-
+#################################################################################
+#                                                                               #
+#    product_features for OpenERP                                                  #
+#    Copyright (C) 2009 NetAndCo (<http://www.netandco.net>).                   #
+#    Authors, Mathieu Lemercier, mathieu@netandco.net,                          #
+#             Franck Bret, franck@netandco.net                                  #
+#    Copyright (C) 2011 Akretion Benoît Guillot <benoit.guillot@akretion.com>   #
+#                                                                               #
+#    This program is free software: you can redistribute it and/or modify       #
+#    it under the terms of the GNU Affero General Public License as             #
+#    published by the Free Software Foundation, either version 3 of the         #
+#    License, or (at your option) any later version.                            #
+#                                                                               #
+#    This program is distributed in the hope that it will be useful,            #
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of             #
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              #
+#    GNU Affero General Public License for more details.                        #
+#                                                                               #
+#    You should have received a copy of the GNU Affero General Public License   #
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.      #
+#                                                                               #
+#################################################################################
+###################################################################################
+
+{
+    'name': 'Analisis de ventas normales por producto/cliente',
+    'version': '0.1',
+    'category': 'Product',
+    'description': """
+
+Analisis de ventas normales por producto/cliente
+================================================
+
+Modulo que genera varios reportes de ventas normales con product_brand
+- Por productos                   - Por clientes
+- Por fecha                       - Por variante
+- Por genero                      - Por marca
+
+    """,
+    'author': 'Eiru/Sebastian Penayo',
+    'website': 'www.eiru.com.py',
+	'depends': ['sale','sales_team','account_voucher', 'report', 'product_brand', 'product_genre'],
+    'data': [
+        'informe_salevariant_general_view.xml',
+		'report/informe_salevariantgral_view.xml',
+		'informe_salevariantgralxcliente.xml',
+		'informe_salevariant_por_categoria.xml',
+		'informe_salevariant_por_fecha.xml',
+		'salegralvariant_filter_view.xml',
+		'salegralvariant_report.xml',
+    ],
+    'installable': True,
+}

+ 79 - 0
informe_salevariant_general_view.xml

@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+	<data>
+
+		<template id="report_salegralxproduct">
+			<t t-call="report.html_container">
+				<t t-call="report.external_layout">
+					<div class="page">
+						<style type="text/css">
+							.crm_tcab{
+							font-size: 3mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+							.crm_tbody{
+							font-size: 2.8mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+							.logo1{
+							width: 100%;
+							top: 1.5cm;
+							}
+
+							.total1{
+							font-size: 2.8mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+						</style>
+						<h4 class="text-center">Analisis de ventas normal por producto/cliente</h4>
+						<div class="logo1" />
+
+						  <table class="table table-condensed">
+							<thead class="crm_tcab">
+								<tr class="active">
+									<th>Producto</th>
+									<th class="text-right">Marca</th>
+									<th class="text-right">Categoria</th>
+									<th class="text-right">Cantidad</th>
+								</tr>
+							</thead>
+							<t t-foreach="docs" t-as="o">
+							<tbody>
+									<tr>
+										<td class="text-left">
+											<span t-field="o.product_id"/>
+										</td>
+										<td class="text-right">
+											<span t-field="o.product_brand_id"/>
+										</td>
+										<td class="text-right">
+											<span t-field="o.product_categ_id"/>
+										</td>
+										<td class="text-right">
+											<span t-field="o.product_qty"/>
+										</td>
+									</tr>
+							</tbody>
+							</t>
+							<tr>
+                            <td colspan="4"></td>
+                            </tr>
+                            <tr class="border-black">
+                                <td colspan="2">Cant. Total:</td>
+								                <td class="text-right">
+                                    <t t-set="total" t-value="sum([x.product_qty for x in docs])"/>
+                                    <span t-esc="total"/>
+                                </td>
+
+                            </tr>
+						  </table>
+
+					</div>
+				</t>
+			</t>
+		</template>
+	</data>
+</openerp>

+ 71 - 0
informe_salevariant_por_categoria.xml

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+	<data>
+		<template id="informe_salevariant_por_categoria">
+			<t t-call="report.html_container">
+				<t t-call="report.external_layout">
+					<div class="page">
+						<style type="text/css">
+							.crm_tcab{
+							font-size: 3mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+							.crm_tbody{
+							font-size: 2.8mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+							.logo1{
+							width: 100%;
+							top: 1.5cm;
+							}
+
+							.total1{
+							font-size: 2.8mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+						</style>
+						<h4 class="text-center">Listado de ventas por categoria</h4>
+						<div class="logo1" />
+
+						  <table class="table table-condensed">
+
+							<thead class="crm_tcab">
+								<tr class="active">
+									<th class="text-left">Categoria</th>
+									<th class="text-center">Cantidad</th>
+								</tr>
+							</thead>
+							<t t-foreach="docs" t-as="o">
+							<tbody>
+									<tr>
+										<td class="text-left">
+											<span t-field="o.product_categ_id"/>
+										</td>
+										<td class="text-right">
+											<span t-field="o.product_qty"/>
+										</td>
+
+									</tr>
+							</tbody>
+							</t>
+							<tr>
+                                <td colspan="2"></td>
+                            </tr>
+                            <tr class="border-black">
+                                <td colspan="2">Total:</td>
+								                  <td class="text-right">
+                                    <t t-set="total" t-value="sum([x.product_qty for x in docs])"/>
+                                    <span t-esc="total"/>
+                                </td>
+                            </tr>
+						  </table>
+
+					</div>
+				</t>
+			</t>
+		</template>
+	</data>
+</openerp>

+ 80 - 0
informe_salevariant_por_fecha.xml

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+	<data>
+		<template id="informe_salevariant_por_fecha">
+			<t t-call="report.html_container">
+				<t t-call="report.external_layout">
+					<div class="page">
+						<style type="text/css">
+							.crm_tcab{
+							font-size: 3mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+							.crm_tbody{
+							font-size: 2.8mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+							.logo1{
+							width: 100%;
+							top: 1.5cm;
+							}
+
+							.total1{
+							font-size: 2.8mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+						</style>
+						<h4 class="text-center">Listado de ventas por fecha</h4>
+						<div class="logo1" />
+
+						  <table class="table table-condensed">
+							<thead class="crm_tcab">
+								<tr class="active">
+									<th class="text-left">Fecha</th>
+									<th class="text-left">Cliente</th>
+									<th class="text-left">Producto</th>
+									<th class="text-center">Cantidad</th>
+								</tr>
+							</thead>
+							<t t-foreach="docs" t-as="o">
+							<tbody>
+									<tr>
+										<td>
+											<span t-field="o.date" t-field-options='{"widget": "date"}'/>
+										</td>
+										<td class="text-left">
+											<span t-esc="o.partner_id.name"/>
+										</td>
+										<td class="text-left">
+											<span t-esc="o.product_id.name"/>
+										</td>
+										<td class="text-center">
+											<span t-field="o.product_qty" sum="# of Qty"/>
+										</td>
+
+									</tr>
+							</tbody>
+							</t>
+
+							      <tr>
+                                <td colspan="4"></td>
+                            </tr>
+                            <tr class="border-black">
+                                <td colspan="3">Total:</td>
+								                <td class="text-right">
+                                    <t t-set="total" t-value="sum([x.product_qty for x in docs])"/>
+                                    <span t-esc="total"/>
+                                </td>
+
+                            </tr>
+						  </table>
+
+					</div>
+				</t>
+			</t>
+		</template>
+	</data>
+</openerp>

+ 77 - 0
informe_salevariantgralxcliente.xml

@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+	<data>
+		<template id="report_salevariantgralxcliente">
+			<t t-call="report.html_container">
+				<t t-call="report.external_layout">
+					<div class="page">
+						<style type="text/css">
+							.crm_tcab{
+							font-size: 3mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+							.crm_tbody{
+							font-size: 2.8mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+							.logo1{
+							width: 100%;
+							top: 1.5cm;
+							}
+
+							.total1{
+							font-size: 2.8mm;
+							font-family: Arial, Helvetica, sans-serif;
+							}
+
+						</style>
+						<h4 class="text-center">Listado de ventas por cliente</h4>
+						<div class="logo1" />
+
+						  <table class="table table-condensed">
+							<thead class="crm_tcab">
+								<tr class="active">
+									<th>Cliente</th>
+								  <th class="text-left">Producto</th>
+									<th class="text-center">Cantidad</th>
+
+								</tr>
+							</thead>
+							<t t-foreach="docs" t-as="o">
+							<tbody>
+									<tr>
+										<td class="text-left">
+											<span t-field="o.partner_id"/>
+										</td>
+										<td class="text-left">
+											<span t-esc="o.product_id.name"/>
+										</td>
+										<td class="text-right">
+											<span t-field="o.product_qty"/>
+										</td>
+
+									</tr>
+							</tbody>
+							</t>
+
+							   <tr>
+										 <td colspan="3"></td>
+								 </tr>
+								 <tr class="border-black">
+										 <td colspan="2">Total:</td>
+										 <td class="text-right">
+												 <t t-set="total" t-value="sum([x.product_qty for x in docs])"/>
+												 <span t-esc="total"/>
+										 </td>
+								 </tr>
+
+						  </table>
+
+					</div>
+				</t>
+			</t>
+		</template>
+	</data>
+</openerp>

+ 24 - 0
report/__init__.py

@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import report_salevariantgral
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

二進制
report/__init__.pyc


+ 34 - 0
report/informe_salevariantgral_view.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+        <record id="report_salegralvariant_tree_view" model="ir.ui.view">
+            <field name="name">report.salegralvariant.tree.view</field>
+            <field name="model">salegralvariant.report</field>
+            <field name="priority" eval="20"/>
+            <field name="arch" type="xml">
+                <tree string="Analisis de ventas normal por producto/cliente" create="false">
+					<field name="id" invisible="1"/>
+					<field name="date"/>
+					<field name="partner_id" invisible="1"/>
+					<field name="product_id" string="Producto"/>
+					<field name="product_qty" sum="# of Qty" string="Cantidad"/>
+          <field name="att_id" string="Variante"/>
+          <field name="product_brand_id" string="Marca"/>
+          <field name="product_categ_id" string="Categoria"/>
+          <field name="fname" string="Atributo" invisible="1"/>
+          <field name="product_genre_id" string="Genero"/>
+
+				</tree>
+            </field>
+        </record>
+
+		<record id="action_report_salegralvariant_tree_view" model="ir.actions.act_window">
+            <field name="name">Analisis de ventas normal por producto/cliente</field>
+            <field name="res_model">salegralvariant.report</field>
+            <field name="view_type">form</field>
+            <field name="view_mode">tree</field>
+        </record>
+
+        <menuitem action="action_report_salegralvariant_tree_view" id="menu_sale3" parent="base.next_id_64" sequence="7" />
+	</data>
+</openerp>

+ 70 - 0
report/report_salevariantgral.py

@@ -0,0 +1,70 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+#    OpenERP, Open Source Management Solution
+#    Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+#    This program is free software: you can redistribute it and/or modify
+#    it under the terms of the GNU Affero General Public License as
+#    published by the Free Software Foundation, either version 3 of the
+#    License, or (at your option) any later version.
+#
+#    This program is distributed in the hope that it will be useful,
+#    but WITHOUT ANY WARRANTY; without even the implied warranty of
+#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#    GNU Affero General Public License for more details.
+#
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp import tools
+from openerp.osv import fields, osv
+
+class salegralvariant_report(osv.osv):
+    _name = "salegralvariant.report"
+    _description = "Listado General de Ventas por variantes"
+    _auto = False
+    _rec_name = 'date'
+
+    _columns = {
+        'date': fields.datetime('Date Order', readonly=True),
+		'partner_id':fields.many2one('res.partner', 'Cliente', readonly=True),
+		'product_id':fields.many2one('product.product', 'Producto', readonly=True),
+        'product_qty':fields.integer('Product Quantity', readonly=True),
+        'att_id': fields.many2one('product.attribute.value', 'Atributo', readonly=True),
+        'fname': fields.char('nombre', readonly=True),
+        'product_brand_id': fields.many2one('product.brand', 'Marca', readonly=True),
+        'product_genre_id': fields.many2one('product.genre', 'Genero', readonly=True),
+        'product_categ_id': fields.many2one('product.category', 'Categoria', readonly=True),
+    }
+    _order = 'date desc'
+
+    def init(self, cr):
+        tools.drop_view_if_exists(cr, 'salegralvariant_report')
+        cr.execute("""
+            create or replace view salegralvariant_report as (
+            SELECT  row_number() over (ORDER BY p.id) as id,
+					s.date_order as date,
+                    s.partner_id as partner_id,
+                    l.product_id as product_id,
+					sum(l.product_uom_qty) as product_qty,
+                    f.name as fname,
+					zr.att_id as att_id,
+                    pt.product_brand_id as product_brand_id,
+					pt.product_genre_id as product_genre_id,
+					pt.categ_id as product_categ_id
+            from sale_order_line l
+                        left join product_product p on (p.id=l.product_id)
+                              left join product_template pt on (pt.id=p.product_tmpl_id)
+                              left join product_brand r on (r.id=pt.product_brand_id)
+                              left join product_genre z on (z.id=pt.product_genre_id)
+                        left join sale_order s on (s.id=l.order_id)
+			            left join product_attribute_value_product_product_rel zr on (p.id=zr.prod_id)
+				        left join product_attribute_value f on (f.id=zr.att_id)
+            where s.state='done'
+            group by
+                     p.id, f.name,f.id,zr.att_id,s.partner_id,l.product_id,s.date_order,pt.product_brand_id,pt.categ_id,pt.product_genre_id)""")
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

二進制
report/report_salevariantgral.pyc


+ 55 - 0
report_gralvariantsale.py

@@ -0,0 +1,55 @@
+#    You should have received a copy of the GNU Affero General Public License
+#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from datetime import datetime, timedelta
+import time
+from openerp.osv import fields, osv
+from openerp.tools.translate import _
+from openerp.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
+import openerp.addons.decimal_precision as dp
+from openerp import workflow
+
+# class product_product(osv.Model):
+    # _inherit = 'product.product'
+
+    # def _sales_count(self, cr, uid, ids, field_name, arg, context=None):
+        # SaleOrderLine = self.pool['sale.order.line']
+        # return {
+            # product_id: SaleOrderLine.search_count(cr,uid, [('product_id', '=', product_id)], context=context)
+            # for product_id in ids
+        # }
+
+    # _columns = {
+        # 'sales_count': fields.function(_sales_count, string='# Sales', type='integer'),
+
+    # }
+
+# class product_template(osv.Model):
+    # _inherit = 'product.template'
+
+    # def _sales_count(self, cr, uid, ids, field_name, arg, context=None):
+        # res = dict.fromkeys(ids, 0)
+        # for template in self.browse(cr, uid, ids, context=context):
+            # res[template.id] = sum([p.sales_count for p in template.product_variant_ids])
+        # return res
+    
+    # def action_view_sales(self, cr, uid, ids, context=None):
+        # act_obj = self.pool.get('ir.actions.act_window')
+        # mod_obj = self.pool.get('ir.model.data')
+        # product_ids = []
+        # for template in self.browse(cr, uid, ids, context=context):
+            # product_ids += [x.id for x in template.product_variant_ids]
+        # result = mod_obj.xmlid_to_res_id(cr, uid, 'sale.action_order_line_product_tree',raise_if_not_found=True)
+        # result = act_obj.read(cr, uid, [result], context=context)[0]
+        # result['domain'] = "[('product_id','in',[" + ','.join(map(str, product_ids)) + "])]"
+        # return result
+    
+    
+    # _columns = {
+        # 'sales_count': fields.function(_sales_count, string='# Sales', type='integer'),
+
+    # }
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

二進制
report_gralvariantsale.pyc


+ 65 - 0
salegralvariant_filter_view.xml

@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+<data>
+
+
+    <!-- Custom reports (aka filters) -->
+
+    <record id="filter_sale_report_mescategcli3" model="ir.filters">
+          <field name="name">Por Mes/Categoria/Cliente</field>
+          <field name="model_id">salegralvariant.report</field>
+          <field name="user_id" eval="False"/>
+          <field name="context">{'group_by': ['date:month','partner_id']}</field>
+    </record>
+
+	  <record id="filter_sale_report_product3" model="ir.filters">
+        <field name="name">Por Producto</field>
+        <field name="model_id">salegralvariant.report</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['product_id']}</field>
+    </record>
+    <record id="filter_sale_report_product4" model="ir.filters">
+        <field name="name">Por Mes/Producto</field>
+        <field name="model_id">salegralvariant.report</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['date:month','product_id']}</field>
+    </record>
+    <record id="filter_sale_report_variant3" model="ir.filters">
+        <field name="name">Por Variante</field>
+        <field name="model_id">salegralvariant.report</field>
+        <field name="user_id" eval="False"/>
+        <field name="context">{'group_by': ['att_id']}</field>
+    </record>
+
+    <record id="view_saleorder_product_search2" model="ir.ui.view">
+        <field name="name">sale.reportgralvariant.search</field>
+        <field name="model">salegralvariant.report</field>
+        <field name="arch" type="xml">
+            <search string="Analisis ventas">
+
+                <field name="partner_id"/>
+                <field name="product_id"/>
+                <field name="att_id" domain="[('att_id','=',self)]"/>
+                <filter string="Este año" name="year" invisible="1" domain="[('date','&lt;=', time.strftime('%%Y-12-31')),('date','&gt;=',time.strftime('%%Y-01-01'))]"/>
+                <filter string="Hoy" domain="[('date', '&gt;=', datetime.datetime.now().strftime('%Y-%m-%d 00:00:00')),('date', '&lt;=',datetime.datetime.now().strftime('%Y-%m-%d 23:23:59'))]"/>
+                <filter string="Ayer" domain="[('date','&lt;=', (datetime.date.today()-relativedelta(days=1)).strftime('%%Y-%%m-%%d')),('date','&gt;=',(datetime.date.today()-relativedelta(days=1)).strftime('%%Y-%%m-%%d'))]"/>
+                <filter string="Semana anterior" domain="[('date', '&gt;=', ((context_today()+relativedelta(weeks=-2, days=1, weekday=0)).strftime('%%Y-%%m-%%d'))),('date', '&lt;=', ((context_today()+relativedelta(weeks=-1, weekday=6)).strftime('%%Y-%%m-%%d')))]"/>
+                <filter string="Esta semana" domain="[('date', '&gt;=', ((context_today()+relativedelta(weeks=-1, days=1, weekday=0)).strftime('%%Y-%%m-%%d'))),('date', '&lt;=', ((context_today()+relativedelta(weeks=0, weekday=6)).strftime('%%Y-%%m-%%d')))]"/>
+
+                <group expand="1" string="Agrupados por">
+                    <filter string="Clientes" name="Customer" context="{'group_by':'partner_id'}"/>
+                    <filter string="Marca" name="Marca" context="{'group_by':'product_brand_id'}"/>
+                    <filter string="Categoria" name="Categoria" context="{'group_by':'product_categ_id'}"/>
+                    <filter string="Atributo" name="attribute" domain="[]" context="{'group_by': 'att_id'}"/>
+                    <filter string="Genero" name="Genero" context="{'group_by':'product_genre_id'}"/>
+
+                    <separator/>
+                    <filter string="Por mes" context="{'group_by':'date:month'}" help="Ordenado por mes de las ordenes de ventas"/>
+                    <filter string="Por fecha" context="{'group_by':'date:day'}"/>
+                </group>
+            </search>
+        </field>
+    </record>
+
+</data>
+</openerp>

+ 29 - 0
salegralvariant_report.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+
+		<report id="report_salegralvariant2"
+            model="salegralvariant.report"
+            string="Listado de ventas por cliente"
+            report_type="qweb-pdf"
+            name="report_gralvariantsale.report_salevariantgralxcliente"
+            file="report_gralvariantsale.report_salevariantgralxcliente"
+        />
+
+		<report id="report_salegralvariant3"
+            model="salegralvariant.report"
+            string="Listado de ventas por fecha"
+            report_type="qweb-pdf"
+            name="report_gralvariantsale.informe_salevariant_por_fecha"
+            file="report_gralvariantsale.informe_salevariant_por_fecha"
+        />
+
+		<report id="report_salegralvariant4"
+            model="salegralvariant.report"
+            string="Listado de ventas por categoria"
+            report_type="qweb-pdf"
+            name="report_gralvariantsale.informe_salevariant_por_categoria"
+            file="report_gralvariantsale.informe_salevariant_por_categoria"
+        />
+    </data>
+</openerp>

二進制
static/description/icon.png