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

How do you get shop_id from company_id?

Zaprenumeruj

Otrzymaj powiadomienie o aktywności w tym poście

To pytanie dostało ostrzeżenie
attrs
2 Odpowiedzi
295 Widoki
Awatar
Thomas shelby

The goal is, in a multi-company instance, to enable a duplication of sale orders emitted by other companies. So far other the instance configuration enable companies to see each other sale orders without modify them, which is good. Now when it comes to duplication, a write permission error rises. It looks like the problem is the shop_id field, which can't be set to an other company shop, which is fine as you would indeed expect the shop of the company attached to the current user to be used instead. So overriding the copy method of the sale_order class would probably be enough.

The only remaining problem is, how do you get the needed shop_id?

Here is what I have tried so far :

class sale_order(osv.Model):

    _inherit = 'sale.order'

    def _get_shop_id(self, cr, uid, id, default=None, context=None):
    print 'uid', uid
    user = self.pool.get('res.users').browse(cr, uid, uid,
                               context=context)
    company_id = user.company_id.id
    shop = self.pool.get('sale.shop').browse(cr, uid, company_id,
                               context=context)

    print 'company_id', company_id
    print 'shop_id', shop.id # return the same result as company_id :(
    return shop.id

    def copy(self, cr, uid, id, default=None, context=None):
    print '========== overloaded copy sale_order'
    shop_id = self._get_shop_id(cr, uid, id, default, context)

    if not default:
        default = {}
    default.update({
        'date_order': fields.date.context_today(self, cr, uid, context=context),
        'state': 'draft',
        'invoice_ids': [],
        'date_confirm': False,
        'client_order_ref': '',
        'name': self.pool.get('ir.sequence').get(cr, uid, 'sale.order'),
        'shop_id': shop_id,
    })
    return super(sale_order, self).copy(cr, uid, id, default, context=context)
0
Awatar
Odrzuć
Awatar
Cybrosys Techno Solutions Pvt.Ltd
Najlepsza odpowiedź
Hi,
Please refer to the code:

class sale_order(osv.Model):
    _inherit = 'sale.order'

    def _get_shop_id(self, cr, uid, id, default=None, context=None):
        user = self.pool.get('res.users').browse(cr, uid, uid, context=context)

        company_id = user.company_id.id


        # Search a shop for the user's company
        shop_obj = self.pool.get('sale.shop')
        shop_ids = shop_obj.search(cr, uid, [('company_id', '=', company_id)],
                                   limit=1, context=context)

        if not shop_ids:
            raise osv.except_osv(
                _('Error'),
                _('No shop configured for company %s!') % (user.company_id.name,)
            )

        return shop_ids[0]

    def copy(self, cr, uid, id, default=None, context=None):
        shop_id = self._get_shop_id(cr, uid, id, default, context)

        if not default:
            default = {}
        default.update({
            'date_order': fields.date.context_today(self, cr, uid, context=context),
            'state': 'draft',
            'invoice_ids': [],
            'date_confirm': False,
            'client_order_ref': '',
            'name': self.pool.get('ir.sequence').get(cr, uid, 'sale.order'),
            'shop_id': shop_id,
        })

        return super(sale_order, self).copy(cr, uid, id, default, context=context)

Hope it helps.

0
Awatar
Odrzuć
Awatar
Kunjan Patel
Najlepsza odpowiedź
Hello Thomas shelby
I hope you are doing well,

Problem: User needs to get shop_id from company_id when duplicating sale orders across companies.

Solution:
  def _get_shop_id(self):
      user = self.env.user
      # Search for shop belonging to user's company
      shop = self.env['sale.shop'].search([
          ('company_id', '=', shop.id if shop else False

  Key Points:
  - Use search() with domain filter, not browse() with company_id directly
  - browse(company_id) incorrectly uses company_id as record ID
  - search([('company_id', '=', company_id)]) finds shops belonging to that company
  - Add limit=1 to get the first matching shop

Note: sale.shop model was deprecated in newer Odoo versions.

I hope this information helps you

Thanks & Regards,
Kunjan Patel

0
Awatar
Odrzuć
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ść
How to add brand name in the product ? to use it to find all the brand product in the website.
attrs
Awatar
Awatar
Awatar
2
gru 25
1528
{(MX)+52Aeromexico}¿Como hablo con una persona en Aeromexico?
attrs
Awatar
0
gru 25
2
({@Guia~Latam%Airlines)}¿Cómo se llama Latam en Chile?
attrs
Awatar
0
gru 25
5
hello
attrs
Awatar
0
lis 25
4
Is Odoo Can Run Offline?
attrs
Awatar
0
lis 25
12
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