0
votes

I want to make a report in purchase requisition module.So here this is by far i have done. purchase_requisition_report.py

from odoo import models, fields, api

class purchase_requisition_report(models.Model):
    _name = 'purchase.requisition.report'
    _description="Purchase Requisition Report"
    _column={
        'date': fields.datetime('Order Date', readonly=True, help="Date on which this document has been created"),
        'state': fields.selection([('draft', 'Request for Quotation'),
                                   ('confirmed', 'Waiting Supplier Ack'),
                                   ('approved', 'Approved'),
                                   ('done', 'Done'),
                                   ('cancel', 'Cancelled')], 'Purchase Requisition Status', readonly=True),
        'name': fields.char('Purchase Requisition No'),
        'product_id': fields.many2many('product.product','Product Name'),
        'supplier': fields.many2many('res.partner','Supplier Name'),
    }
    _order = 'date desc'
    def init(self, cr):
        tools.sql.drop_view_if_exists(cr, 'purchase_requisition_report')
        cr.execute("""
            create or replace view purchase_requisition_report as (
            SELECT 
              purchase_requisition.name, 
              product_product.name_template, 
              res_partner.display_name, 
              purchase_order.name, 
              purchase_requisition.state
            FROM 
              purchase_requisition_line inner join purchase_requisition on(purchase_requisition_line.requisition_id = purchase_requisition.id)
              inner join product_product on(purchase_requisition_line.product_id = product_product.id)
              inner join purchase_order on(purchase_order.requisition_id = purchase_requisition.id)
              inner join res_partner on(purchase_order.partner_id = res_partner.id);
            """)

purchase_requisition_report_view.xml

    <?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>

    <record id="view_purchase_requisition_report_tree" model="ir.ui.view">
        <field name="name">purchase.requisition.report.tree</field>
        <field name="model">purchase.requisition.report</field>
        <field name="arch" type="xml">
                <tree string="Purchase Requisition Report">
                    <field name="name"/>
                    <field name="product_id"/>
                    <field name="supplier"/>
                    <field name="state"/>
                </tree>
        </field>
    </record>

    <record id="view_purchase_requisition_report_search" model="ir.ui.view">
        <field name="name">purchase.requisition.report.search</field>
        <field name="model">purchase.requisition.report</field>
        <field name="arch" type="xml">
            <search string="Purchase Requisition Report">
                <filter string="Waiting" domain="[('state', '=' ,'confirm')]" help="Confirm Requisition"/>
                <filter string="Approved" domain="[('state','=','accepted')]" help="Approved Requisition"/>
                <filter string="Done" domain="[('state','=', 'done')]" help="Done Requisition"/>
                <group expand="0" string="Extended Filters...">
                    <field name="product_id"/>
                    <field name="user_id"/>
                    <field name="company_id" groups="base.group_multi_company"/>
                    <field name="date" string="Creation Date"/>
                    <field name="date_confirm"/>
                    <field name="date_valid"/>
                </group>
                <group expand="1" string="Group By">
                    <filter string="Purchase Requisition No" context="{'group_by':'name'}"/>
                    <filter string="Supplier" context="{'group_by':'supplier'}"/>
                    <filter string="Product" context="{'group_by':'product_id'}"/>
                    <filter string="Status" context="{'group_by':'state'}"/>
                    <filter string="Create Month" context="{'group_by':'create_date:month'}" help="Creation Date"/>
                </group>
            </search>
        </field>
    </record>
    <record id="action_purchase_requsition_report" model="ir.actions.act_window">
        <field name="name">Purchase Requisition</field>
        <field name="res_model">purchase.requisition.report</field>
        <field name="view_mode">tree</field>
        <field name="view_id" ref="view_purchase_requisition_report_tree"></field>
    </record>
    <menuitem id="base.next_id_73" name="Purchase" parent="base.menu_reporting" sequence="10"/>
    <menuitem action="action_purchase_requsition_report" id="menu_action_purchase_requsition_report" parent="base.next_id_73" sequence="10"/>

</data>
</openerp>

openerp.py

    {
    'name': 'Purchase Requisitions',
    'version': '0.1',
    'author': 'OpenERP SA',
    'category': 'Purchase Management',
    'website': 'https://www.odoo.com/page/purchase',
    'description': """
This module allows you to manage your Purchase Requisition.
===========================================================

When a purchase order is created, you now have the opportunity to save the
related requisition. This new object will regroup and will allow you to easily
keep track and order all your purchase orders.
""",
    'depends' : ['purchase'],
    'demo': ['purchase_requisition_demo.xml'],
    'data': ['views/purchase_requisition.xml',
              'security/purchase_tender.xml',
              'wizard/purchase_requisition_partner_view.xml',
              'wizard/bid_line_qty_view.xml',
              'purchase_requisition_data.xml',
              'purchase_requisition_view.xml',
              'purchase_requisition_report.xml',
              'report/purchase_requisition_report_view.xml',
              'purchase_requisition_workflow.xml',
              'security/ir.model.access.csv','purchase_requisition_sequence.xml',
              'views/report_purchaserequisition.xml',
    ],
    'auto_install': False,
    'test': [
        'test/purchase_requisition_users.yml',
        'test/purchase_requisition_demo.yml',
        'test/cancel_purchase_requisition.yml',
        'test/purchase_requisition.yml',
    ],
    'installable': True,
}

After doing all this i am getting following error

    Error details:
Model not found: purchase.requisition.report

Error context:
View `purchase.requisition.report.tree`
[view_id: 1419, xml_id: n/a, model: purchase.requisition.report, parent_id: n/a]" while parsing file:///C:/Program%20Files/Odoo%208.0-20150515/server/openerp/addons/purchase_requisition/report/purchase_requisition_report_view.xml:5, near
<record id="view_purchase_requisition_report_tree" model="ir.ui.view">
        <field name="name">purchase.requisition.report.tree</field>
        <field name="model">purchase.requisition.report</field>
        <field name="arch" type="xml">
                <tree string="Purchase Requisition Report">
                    <field name="name"/>
                    <field name="product_id"/>
                    <field name="supplier"/>
                    <field name="state"/>
                </tree>
        </field>
    </record>

I am unable to find out where is the error,appreciate any help.Thank you. P.S: I'm using Odoo V.8

2
What it's the reason to cut the error log leaving the useful information out?. Sorry but it just makes more difficult to bring helpAxel Mendoza

2 Answers

0
votes

The code that is not imported is not executed, so that's why possibility it's not found.

Import it from the module's __init__.py file:

from . import purchase_requisition_report
0
votes

Your log should be full of import errors. If you are using Odoo v8 you should use openerp instead of odoo because back then the odoo package doesn't exist so you would need to do it like this:

from openerp import models, fields, api, tools

I have included tools in the imports since you don't have included. Also if you will create an SQL View to be used as the model table you should instruct the ORM to not try to create a table for your model adding:

_auto = False

After that if you doesn't see any other error in the log when the Odoo server start you should be ok