Skip to Content
Odoo Menu
  • Log ind
  • Prøv gratis
  • Apps
    Økonomi
    • Bogføring
    • Fakturering
    • Udgifter
    • Regneark (BI)
    • Dokumenter
    • e-Signatur
    Salg
    • CRM
    • Salg
    • POS Butik
    • POS Restaurant
    • Abonnementer
    • Udlejning
    Hjemmeside
    • Hjemmesidebygger
    • e-Handel
    • Blog
    • Forum
    • LiveChat
    • e-Læring
    Forsyningskæde
    • Lagerbeholdning
    • Produktion
    • PLM
    • Indkøb
    • Vedligeholdelse
    • Kvalitet
    HR
    • Medarbejdere
    • Rekruttering
    • Fravær
    • Medarbejdersamtaler
    • Anbefalinger
    • Flåde
    Marketing
    • Markedsføring på sociale medier
    • E-mailmarketing
    • SMS-marketing
    • Arrangementer
    • Automatiseret marketing
    • Spørgeundersøgelser
    Tjenester
    • Projekt
    • Timesedler
    • Udkørende Service
    • Kundeservice
    • Planlægning
    • Aftaler
    Produktivitet
    • Dialog
    • Godkendelser
    • IoT
    • VoIP
    • Vidensdeling
    • WhatsApp
    Tredjepartsapps Odoo Studio Odoo Cloud-platform
  • Brancher
    Detailhandel
    • Boghandel
    • Tøjforretning
    • Møbelforretning
    • Dagligvarebutik
    • Byggemarked
    • Legetøjsforretning
    Mad og værtsskab
    • Bar og pub
    • Restaurant
    • Fastfood
    • Gæstehus
    • Drikkevareforhandler
    • Hotel
    Ejendom
    • Ejendomsmægler
    • Arkitektfirma
    • Byggeri
    • Ejendomsadministration
    • Havearbejde
    • Boligejerforening
    Rådgivning
    • Regnskabsfirma
    • Odoo-partner
    • Marketingbureau
    • Advokatfirma
    • Rekruttering
    • Audit & certificering
    Produktion
    • Tekstil
    • Metal
    • Møbler
    • Fødevareproduktion
    • Bryggeri
    • Firmagave
    Heldbred & Fitness
    • Sportsklub
    • Optiker
    • Fitnesscenter
    • Kosmetolog
    • Apotek
    • Frisør
    Håndværk
    • Handyman
    • IT-hardware og support
    • Solenergisystemer
    • Skomager
    • Rengøringsservicer
    • VVS- og ventilationsservice
    Andet
    • Nonprofitorganisation
    • Miljøagentur
    • Udlejning af billboards
    • Fotografi
    • Cykeludlejning
    • Softwareforhandler
    Gennemse alle brancher
  • Community
    Få mere at vide
    • Tutorials
    • Dokumentation
    • Certificeringer
    • Oplæring
    • Blog
    • Podcast
    Bliv klogere
    • Udannelselsesprogram
    • Scale Up!-virksomhedsspillet
    • Besøg Odoo
    Få softwaren
    • Download
    • Sammenlign versioner
    • Udgaver
    Samarbejde
    • Github
    • Forum
    • Arrangementer
    • Oversættelser
    • Bliv partner
    • Tjenester til partnere
    • Registrér dit regnskabsfirma
    Modtag tjenester
    • Find en partner
    • Find en bogholder
    • Kontakt en rådgiver
    • Implementeringstjenester
    • Kundereferencer
    • Support
    • Opgraderinger
    Github Youtube Twitter LinkedIn Instagram Facebook Spotify
    +1 (650) 691-3277
    Få en demo
  • Prissætning
  • Hjælp

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

  • CRM
  • e-Commerce
  • Bogføring
  • Lager
  • PoS
  • Projekt
  • MRP
All apps
Du skal være registreret for at interagere med fællesskabet.
All Posts People Emblemer
Tags (View all)
odoo accounting v14 pos v15
Om dette forum
Du skal være registreret for at interagere med fællesskabet.
All Posts People Emblemer
Tags (View all)
odoo accounting v14 pos v15
Om dette forum
Hjælp

Check for valid address before confirm an invoice, Odoo 16 CE

Tilmeld

Få besked, når der er aktivitet på dette indlæg

Dette spørgsmål er blevet anmeldt
invoiceconfirmation
1 Svar
1858 Visninger
Avatar
M. Höppner

Hello,

according to my accountant we always need an invoice address on an invoice ;-).
Some colleagues "always" forget that - that is why:


We need an additional check in Odoo 16 CE. 

An invoice can only be confirmed if the invoice address is complete: postcode, city, street, but also email. 

When Confirm is clicked, a pop-up or warning should appear. 

Standard users receive a warning that the address is incomplete. There should be a note/promt to complete it or to contact a user from the Chief Accounting group. These users should be listed with their real names. 

Users from the Chief Accounting group should see a pop-up with a warning similar to the one above: However, there should be 2 buttons: 1 button for "Go back" and 1 button for "OK confirm anyway".


  1. Question: is there an option / a tickbox I do not know to achieve that behaviour (or similar) out of the standard?
  2. Can someone check the module I tried to write with the help of an AI (sorry, I do not have the knowledge for that)?
structure:
/
├── __init__.py
├── __manifest__.py
├── models/
│   ├── __init__.py
│   └── account_move.py
└── views/
    └── account_move_views.xml

files:

__init__.py

from . import models


__manifest__.py

{
    'name': 'Invoice Address Validation',
    'version': '1.0',
    'category': 'Accounting',
    'summary': 'Verhindert das Bestätigen von Rechnungen bei unvollständiger Rechnungsadresse',
    'author': 'Dein Name',
    'depends': ['account'],
    'data': [
        'views/account_move_views.xml',
    ],
    'installable': True,
    'application': False,
}


models/__init__.py

from . import account_move
from . import warning_wizard

models/account_move.py

from odoo import models, fields, api, _

from odoo.exceptions import UserError


class AccountMove(models.Model):

    _inherit = 'account.move'


    @api.constrains('partner_id')

    def _check_invoice_address(self):

        for move in self:

            if move.move_type == 'out_invoice':  # Nur für Kundenrechnungen

                if not move.partner_id.street or not move.partner_id.zip or not move.partner_id.city or not move.partner_id.email:

                    # Fehler für Standard-User (keine Manager)

                    if not self.env.user.has_group('account.group_account_manager'):

                        accounting_managers = self.env['res.users'].search([('groups_id', 'in', self.env.ref('account.group_account_manager').id)])

                        managers_names = ', '.join([user.name for user in accounting_managers])

                        raise UserError(_('Die Rechnungsadresse ist unvollständig. Bitte fügen Sie die fehlenden Informationen hinzu oder kontaktieren Sie einen Accounting Manager: %s') % managers_names)


    def action_post(self):

        for move in self:

            if move.move_type == 'out_invoice':  # Nur für Kundenrechnungen

                if not move.partner_id.street or not move.partner_id.zip or not move.partner_id.city or not move.partner_id.email:

                    if self.env.user.has_group('account.group_account_manager'):

                        # Pop-up für Accounting Manager

                        return {

                            'type': 'ir.actions.act_window',

                            'name': 'Adresse unvollständig',

                            'res_model': 'warning.wizard',

                            'view_mode': 'form',

                            'view_id': self.env.ref('your_module_name.warning_wizard_view_form').id,

                            'target': 'new',

                        }

                    else:

                        # Fehlermeldung für Standard-User

                        accounting_managers = self.env['res.users'].search([('groups_id', 'in', self.env.ref('account.group_account_manager').id)])

                        managers_names = ', '.join([user.name for user in accounting_managers])

                        raise UserError(_('Die Rechnungsadresse ist unvollständig. Bitte fügen Sie die fehlenden Informationen hinzu oder kontaktieren Sie einen Accounting Manager: %s') % managers_names)

        # Wenn alles in Ordnung ist, den Super-Aufruf nutzen, um fortzufahren

        return super(AccountMove, self).action_post()



models/warning_wizard.py

from odoo import models, fields


class WarningWizard(models.TransientModel):

    _name = 'warning.wizard'

    _description = 'Warnung für unvollständige Adresse'


    message = fields.Text(string="Warnung", readonly=True, default="Die Rechnungsadresse ist unvollständig. Möchten Sie die Rechnung trotzdem bestätigen?")


    def action_confirm(self):

        # Rechnung trotzdem bestätigen

        active_id = self.env.context.get('active_id')

        if active_id:

            invoice = self.env['account.move'].browse(active_id)

            invoice._post(soft=False)  # Rechnung bestätigen

        return {'type': 'ir.actions.act_window_close'}


    def action_cancel(self):

        # Abbrechen

        return {'type': 'ir.actions.act_window_close'}



views/account_move_views.xml


(Uups - I can not insert the text / xml - it disappears...)


I can Install the modul but it does not work.
Frist test as a member of the chief accountant group gives me the error (hopefully the important lines):

...stuck ... :-(  I do not know, what I changed the last minutes...

Looking forward to get help.
Maybe someone knows an app from the app stor that solves the expectation.
Thanks








0
Avatar
Kassér
Avatar
Niyas Raphy (Walnut Software Solutions)
Bedste svar

Hi,
By default there is no option for this, so coming to the added code, could you share the error message that you receive with the above codes.

Thanks

0
Avatar
Kassér
Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Tilmeld dig
Related Posts Besvarelser Visninger Aktivitet
change between 2 Invoice formats Løst
invoice
Avatar
Avatar
1
jul. 25
1735
Hello, how can I change the size of the logo and the invoice? Løst
invoice
Avatar
Avatar
Avatar
2
jul. 25
2082
Validation Error. You will need to clear the Journal Entry's Number to proceed
invoice
Avatar
Avatar
1
jul. 25
3022
Restricting Salesperson Access to Customer Invoice Details
invoice
Avatar
Avatar
Avatar
3
apr. 25
2924
Odoo 16 - Download invoice preview doesn't work
invoice
Avatar
Avatar
Avatar
3
apr. 25
3899
Community
  • Tutorials
  • Dokumentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Oversættelser
Tjenester
  • Odoo.sh-hosting
  • Support
  • Opgradere
  • Individuelt tilpasset udvikling
  • Uddannelse
  • Find en bogholder
  • Find en partner
  • Bliv partner
Om os
  • Vores virksomhed
  • Brandaktiver
  • Kontakt os
  • Stillinger
  • Arrangementer
  • Podcast
  • Blog
  • Kunder
  • Juridiske dokumenter • Privatlivspolitik
  • Sikkerhedspolitik
الْعَرَبيّة 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 er en samling open source-forretningsapps, der dækker alle dine virksomhedsbehov – lige fra CRM, e-handel og bogføring til lagerstyring, POS, projektledelse og meget mere.

Det unikke ved Odoo er, at systemet både er brugervenligt og fuldt integreret.

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