Anzeige des Brutto- und/oder Nettopreises im Webshop

Dieser Artikel beschreibt die Möglichkeit im Webshop je nach gesetzten Flag in den Einstellungen nur den Bruttopreis, nur den Nettopreis oder beide Preise für ein Produkt anzeigen zu lassen (siehe die nachfolgenden drei Abbildungen). Zur Erläuterung über die Vorgehensweise dienen nachfolgend Codeabschnitte mit Hilfe man die gewünschte Funktionalität erreichen konnte.

 

 

eq_res_config.py:

In erster Linie wird in der eq_res_config.py Datei ein weiteres Boolean-Feld mit der Bezeichnung

eq_website_customerportal_activate_secondprice

hinzugefügt. Dieses Feld wird anschließend um eine Getter und eine Setter-Methode erweitert, sodass man nun in einem anderen Kontext darauf zugreifen kann. Diese Getter- und Setter Methode sind standardgemäß aufgebaut (siehe Zeile 39-51).

class eq_website_customerportal_config(models.TransientModel):
    _name = 'eq.website.customerportal.config'
    _inherit = 'res.config.settings'
 						
						
						
	# Setting for the activation of the second price
	eq_website_customerportal_activate_secondprice = fields.Boolean(string="Show 2. Price [eq_website_customerportal]", default = False)
						
						
						
						
	# eq_website_customerportal_activate_secondprice. Setting for the activation of the second price
    @api.multi
    def get_default_eq_website_customerportal_activate_secondprice(self):
        res = self.env['ir.config_parameter'].get_param("eq.website.customerportal.activate.secondprice")
        if res == 'True':
            return {'eq_website_customerportal_activate_secondprice': True}
        return {'eq_website_customerportal_activate_secondprice': False}
 
    @api.multi
    def set_eq_website_customerportal_activate_secondprice(self):
        config_parameters = self.env["ir.config_parameter"]
        for record in self:
            config_parameters.set_param("eq.website.customerportal.activate.secondprice", str(record.eq_website_customerportal_activate_secondprice),)

eq_res_config_view.xml:

Anschließend sollte das Feld in der View der Konfigurationsansicht "Kundenportal" (eq_es_config_view.xml) angezeigt werden (siehe folgende Abbildung). Da es sich um ein Boolean-Feld handelt, wird dies als Checkbox angezeigt:

Der dazugehörige Code, welcher in die eq_res_config_view.xml hinzugefügt wurde, sieht wie folgt aus:

<div>
	<field name="eq_website_customerportal_activate_secondprice" 
			class="oe_inline" />
	<label for="eq_website_customerportal_activate_secondprice" />
</div>

template_product.xml:

Nun muss noch in der Anzeige im Webshop festgelegt werden, wann der Bruttopreis, wann der Nettopreis und wann beide Preise angezeigt werden sollen. Wir haben uns nachfolgend für folgende Zustände entschieden:

 

Umsatzsteuer (Preis inklusive Steuer: Flag gesetzt):

Flag der Checkbox (Einstellungen) gesetzt → Anzeige von Brutto und Nettopreis

Flag der Checkbox (Einstellungen) nicht gesetzt → Anzeige des Brutto Preis

Umsatzsteuer (Preis exklusive Steuer: Flag nicht gesetzt):

Flag der Checkbox (Einstellungen) gesetzt → Anzeige von Brutto und Nettopreis

Flag der Checkbox (Einstellungen) nicht gesetzt → Anzeige des Netto Preis


Die Einstellungen für die Umsatzsteuer lassen sich unter Finanzen → Umsatzsteuer tätigen:

Diese Zustände werden nun in der template_product.xml berücksichtigt. Die nachfolgenden beiden Codeabschnitte zeigen anhand der erzeugten Checkbox in den Einstellungen, wie man eine solche Auswahl durchführen kann. Die Berücksichtigung der Umsatzsteuer folgt weiter oben im Code der template_product.xml-Datei. Mit Hilfe von

<div t-if="eq_website_customerportal_activate_secondprice == 'True'"

wird jeweils überprüft ob das Flag in den Einstellungen gesetzt wurde. Ist dies so (True), so wird das Feld für den Nettopreis angezeigt:

<div t-if="eq_website_customerportal_activate_secondprice == 'True'" class="col-xs-6 col-sm-6 col-md-6 price-net-label">
	<div>
		<span style="font-weight:bold;">Net</span>
		<span itemprop="price" style="display:none;"
			t-esc="product.product_variant_ids[0].eq_price_with_tax1" />
		<span itemprop="priceCurrency" style="display:none;"
			t-esc="user_id.partner_id.property_product_pricelist.currency_id.name" />
	</div>

Das Gleiche gilt für den Bruttopreis:

<div t-if="eq_website_customerportal_activate_secondprice == 'True'" class="col-xs-6 col-sm-6 col-md-6 price-total-label">
	<div style="margin:0;">
			<span style="font-weight:bold;">Gross</span>
			<span itemprop="price" style="display:none;"
					t-esc="product.product_variant_ids[0].eq_price_with_tax1" />
			<span itemprop="priceCurrency" style="display:none;"
					t-esc="user_id.partner_id.property_product_pricelist.currency_id.name" />
</div>

Zusammenfassung:

Dieser Artikel soll die Vorgehensweise erläutern, wie man abhängig einer gesetzten Checkbox einen Zustand auf der Webseite anzeigen lassen kann. Mit Hilfe von der aufgezeigten Lösungsmöglichkeit konnte das gewünschte Ergebnis erzielt werden.

 

Modul: eq_website_cutomerportal

Version: 1.0.116