Skip to Content
Odoo Menu
  • Zaloguj się
  • Wypróbuj za darmo
  • Aplikacje
    Finanse
    • Księgowość
    • Fakturowanie
    • Wydatki
    • Arkusz kalkulacyjny (BI)
    • Dokumenty
    • Podpisy
    Sprzedaż
    • CRM
    • Sprzedaż
    • PoS Sklep
    • PoS Restauracja
    • Subskrypcje
    • Wypożyczalnia
    Strony Internetowe
    • Kreator Stron Internetowych
    • eCommerce
    • Blog
    • Forum
    • Czat na Żywo
    • eLearning
    Łańcuch dostaw
    • Magazyn
    • Produkcja
    • PLM
    • Zakupy
    • Konserwacja
    • Jakość
    Zasoby Ludzkie
    • Pracownicy
    • Rekrutacja
    • Urlopy
    • Ocena pracy
    • Polecenia Pracownicze
    • Flota
    Marketing
    • Marketing Społecznościowy
    • E-mail Marketing
    • SMS Marketing
    • Wydarzenia
    • Automatyzacja Marketingu
    • Ankiety
    Usługi
    • Projekt
    • Ewidencja czasu pracy
    • Usługi Terenowe
    • Helpdesk
    • Planowanie
    • Spotkania
    Produktywność
    • Dyskusje
    • Zatwierdzenia
    • IoT
    • VoIP
    • Baza wiedzy
    • WhatsApp
    Aplikacje trzecich stron Studio Odoo Odoo Cloud Platform
  • Branże
    Sprzedaż detaliczna
    • Księgarnia
    • Sklep odzieżowy
    • Sklep meblowy
    • Sklep spożywczy
    • Sklep z narzędziami
    • Sklep z zabawkami
    Żywienie i hotelarstwo
    • Bar i Pub
    • Restauracja
    • Fast Food
    • Pensjonat
    • Dystrybutor napojów
    • Hotel
    Agencja nieruchomości
    • Agencja nieruchomości
    • Biuro architektoniczne
    • Budowa
    • Zarządzanie nieruchomościami
    • Ogrodnictwo
    • Stowarzyszenie właścicieli nieruchomości
    Doradztwo
    • Biuro księgowe
    • Partner Odoo
    • Agencja marketingowa
    • Kancelaria prawna
    • Agencja rekrutacyjna
    • Audyt i certyfikacja
    Produkcja
    • Tekstylia
    • Metal
    • Meble
    • Jedzenie
    • Browar
    • Prezenty firmowe
    Zdrowie & Fitness
    • Klub sportowy
    • Salon optyczny
    • Centrum fitness
    • Praktycy Wellness
    • Apteka
    • Salon fryzjerski
    Transakcje
    • Złota rączka
    • Wsparcie Sprzętu IT
    • Systemy energii słonecznej
    • Szewc
    • Firma sprzątająca
    • Usługi HVAC
    Inne
    • Organizacja non-profit
    • Agencja Środowiskowa
    • Wynajem billboardów
    • Fotografia
    • Leasing rowerów
    • Sprzedawca oprogramowania
    Przeglądaj wszystkie branże
  • Community
    Ucz się
    • Samouczki
    • Dokumentacja
    • Certyfikacje
    • Szkolenie
    • Blog
    • Podcast
    Pomóż w nauce innym
    • Program Edukacyjny
    • Scale Up! Gra biznesowa
    • Odwiedź Odoo
    Skorzystaj z oprogramowania
    • Pobierz
    • Porównaj edycje
    • Wydania
    Współpracuj
    • Github
    • Forum
    • Wydarzenia
    • Tłumaczenia
    • Zostań partnerem
    • Usługi dla partnerów
    • Zarejestruj swoją firmę rachunkową
    Skorzystaj z usług
    • Znajdź partnera
    • Znajdź księgowego
    • Spotkaj się z doradcą
    • Usługi wdrożenia
    • Opinie klientów
    • Wsparcie
    • Aktualizacje
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Zaplanuj demo
  • Cennik
  • Pomoc

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Księgowość
  • Zapasy
  • PoS
  • Projekt
  • MRP
All apps
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Pomoc

When i try to print a custom report i get a AttributeError: object has no attribute '_ids'

Zaprenumeruj

Otrzymaj powiadomienie o aktywności w tym poście

To pytanie dostało ostrzeżenie
error
1 Odpowiedz
9385 Widoki
Awatar
Erhuvwu Akpobaro

I have a custom report , with a print button(red) , however when i click the print button i get this error :

           File "/opt/odoo/community/addons/camden-market/cm_sales_receipt/cm_sales_receipt.py", line 89, in print_receipt assert len(self) == 1, 'This option should only be used for a single id at a time.' File "/opt/odoo/odoo/openerp/models.py", line 5332, in __len__ return len(self._ids) AttributeError: 'cm.sales.receipt' object has no attribute '_ids'

Also i have another normal print button which when i click print my report but it is just an empty file.

 

 

My class :

class cm_sales_receipt(osv.osv):
    _name = "cm.sales.receipt"
    _description = "Camden Market Sales Receipt"
    _auto = False
    _columns = {
        'paymentref':fields.char('PaymentRef'),
        'date':fields.date('Date'),
        'receipt_number':fields.char('Receipt Number'),
        'customer':fields.char('Customer',size=128),
        'unit':fields.char('Unit',size=128),
        'company':fields.char('Name',size=128,required=True),
        'invoicing_company':fields.char('Invoicing Company', size=128,required=True),
        'street':fields.char('Street',size=128,required=True),
        'street2':fields.char('Street2',size=128,required=True),
        'zip':fields.char('Zip',size=10,required=True),
        'state':fields.char('State',size=128,required=True),
        'city':fields.char('City',size=128,required=True),
        'email':fields.char('Email',size=128),
        'fax':fields.integer('Fax'),
        'phone':fields.integer('State'),
        'paid_amount':fields.float('Paid_Amount'),

    }

Here below is the code used  to print the report (note function is indented so part of above class :

 def print_receipt(self, cr, uid, ids, context=None):
        """
        This function prints the Property Rental Sales receipt
        """
        assert len(self) == 1, 'This option should only be used for a single id at a time.'
        #self.sent = True
        return self.pool['report'].get_action(cr, uid, ids, 'cm_sales_receipt.report_salesreceipt', context=context)

 

extract from view which has print button (note: print button displays correctly in module:

 <!-- Property Rental Sales Receipt Form View -->
        <record model="ir.ui.view" id="view_cm_sales_receipt_form">
            <field name="name">cm.sales.receipt.form</field>
            <field name="model">cm.sales.receipt</field>
            <field name="arch" type="xml">
                <form string=" Sales Receipt" version="8.0">
                <header>
                    <button name="print_receipt" string="Print Receipt" type="object" class="oe_highlight" groups="base.group_user"/>
                </header>
                                <sheet>
                                <group>
                                        <group>
                                               <field name="invoicing_company"/>
                           <field name="customer"/>
                                               <field name="paymentref"/>
                           <field name="receipt_number"/>
                           <field name="company"/>
                                               <field name="paid_amount"/>
                                    </group>
                                        </group>
                                        </sheet>
                </form>
            </field>
        </record>

 

 

here is the report xml file :

<openerp>
    <data>
        <report
            string="Sales Rental Receipt"
            id="action_cm_report_sales_receipt"
            model="cm.sales.receipt"
            report_type="qweb-pdf"
            name="cm_sales_receipt.report_cm_salesreceipt"
            file="cm_sales_receipt.report_cm_salesreceipt"
            attachment_use="True"
            attachment="(object.state in ('open','paid')) and ('RCPT'+(object.number or '').replace('/','')+'.pdf')"
        />
    </data>
</openerp

 

 

  • module installs correctly
  • ((custom)print button displays correctly but once clicked i recieve an  error
  • when i click the normal print button once clicked it prints  an empty report.

1) it seems the _ids cannot be found in this case , is there an indication of where in the code is '_ids' is not being passed through .

 

 

0
Awatar
Odrzuć
Awatar
Emipro Technologies Pvt. Ltd.
Najlepsza odpowiedź

Hi,

you have used _auto = False means odoo will not create table of this model.

So, you do not get the id of this model because model is not available.

There may be the possibilities that you have create SQL VIEW into init() method with same name as model. In your case VIEW name is "cm_sales_receipt". Then you have to change at the line  assert len(ids) == 1  instead of assert len(self) == 1 .

I hope you will resolve your issue.

0
Awatar
Odrzuć
Erhuvwu Akpobaro
Autor

Thank you the problem is solved , the print button prints a document now , although now its just a white plain document but i guess that is down to the way im calling the data.

Erhuvwu Akpobaro
Autor

I get a error when i try to call the views in my xml : error log: InternalError: current transaction is aborted, commands ignored until end of transaction block model: class cm_sales_receipt(osv.osv): _name = "cm.sales.receipt" _description = "Camden Market Sales Receipt" _auto = False _columns = { 'paymentref':fields.char('PaymentRef'), 'date':fields.date('Date'), 'receipt_number':fields.char('Receipt Number'), 'customer':fields.char('Customer',size=128), 'unit':fields.char('Unit',size=128), 'company':fields.char('Name',size=128,required=True), 'invoicing_company':fields.char('Invoicing Company', size=128,required=True), 'street':fields.char('Street',size=128,required=True), 'street2':fields.char('Street2',size=128,required=True), 'zip':fields.char('Zip',size=10,required=True), 'state':fields.char('State',size=128,required=True), 'city':fields.char('City',size=128,required=True), 'email':fields.char('Email',size=128), 'fax':fields.char('Fax'), 'phone':fields.char('Phone'), 'paid_amount':fields.float('Paid_Amount'), } _order = 'date desc, paid_amount desc' def init(self, cr): tools.sql.drop_view_if_exists(cr, 'cm_sales_receipt') cr.execute(""" create or replace view cm_sales_receipt as ( select min(c.id) as id, a.name as customer, c.number as receipt_number, c.reference as PaymentRef, (select e.name from res_company e where c.company_id = e.id) as company, (select f.name from res_company f where a.invcompany_id = f.id) as invoicing_company, (select s.street from res_partner s where s.id = (select w.partner_id from res_company w where id = a.invcompany_id)) as street, (select s.street2 from res_partner s where s.id = (select w.partner_id from res_company w where id = a.invcompany_id)) as street2, (select s.zip from res_partner s where s.id = (select w.partner_id from res_company w where id = a.invcompany_id)) as zip, (select t.name from res_country_state t where t.id = (select s.state_id from res_partner s where s.id = (select w.partner_id from res_company w where id = a.invcompany_id))) as state, (select s.city from res_partner s where s.id = (select w.partner_id from res_company w where id = a.invcompany_id)) as city, (select s.email from res_partner s where a.invcompany_id = s.id) as email, (select s.fax from res_partner s where a.invcompany_id = s.id) as fax, (select s.phone from res_partner s where a.invcompany_id = s.id) as phone, c.amount as paid_amount, c.date as date from account_analytic_account a, account_voucher c where a.partner_id = c.partner_id group by c.id, a.name, c.number, c.reference, c.amount, c.company_id, a.invcompany_id, c.date ) """) def print_receipt(self, cr, uid, ids, context=None): """ This function prints the Property Rental Sales receipt """ assert len(ids) == 1, 'This option should only be used for a single id at a time.' #self.sent = True context = dict(context or {}, active_ids=ids) return self.pool['report'].get_action(cr, uid, ids, 'cm_sales_receipt.report_salesreceipt', context=context) report view:

Podoba Ci się ta dyskusja? Dołącz do niej!

Stwórz konto dzisiaj, aby cieszyć się ekskluzywnymi funkcjami i wchodzić w interakcje z naszą wspaniałą społecznością!

Zarejestruj się
Powiązane posty Odpowiedzi Widoki Czynność
?"Your country might be blocked by our hosting provider" error when I create new website
error
Awatar
0
lis 25
592
Payment Page Return Error with Razorpay on Mobile Devices
error
Awatar
0
wrz 25
1259
Error after installing "purchase" app in Odoo version 18
error
Awatar
Awatar
1
gru 24
7021
error schema for TourStep Error
error
Awatar
0
lis 24
2643
Can't modify manifest version of custom module [Odoo.sh]
error
Awatar
Awatar
Awatar
2
lip 24
5383
Społeczność
  • Samouczki
  • Dokumentacja
  • Forum
Open Source
  • Pobierz
  • Github
  • Runbot
  • Tłumaczenia
Usługi
  • Hosting Odoo.sh
  • Wsparcie
  • Aktualizacja
  • Indywidualne rozwiązania
  • Edukacja
  • Znajdź księgowego
  • Znajdź partnera
  • Zostań partnerem
O nas
  • Nasza firma
  • Zasoby marki
  • Skontaktuj się z nami
  • Oferty pracy
  • Wydarzenia
  • Podcast
  • Blog
  • Klienci
  • Informacje prawne • Prywatność
  • Bezpieczeństwo Odoo
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo to pakiet aplikacji biznesowych typu open source, które zaspokoją wszystkie potrzeby Twojej firmy: CRM, eCommerce, księgowość, inwentaryzacja, punkt sprzedaży, zarządzanie projektami itp.

Unikalną wartością Odoo jest to, że jest jednocześnie bardzo łatwe w użyciu i w pełni zintegrowane.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now