feat: viditeľnosť IČO/DIČ pre SZČO + odberateľ vpravo v hlavičke (v2.0.9)

- Default krajiny SK pri novom kontakte (ak je hlavná firma slovenská)
- IČO/DIČ/Platca DPH viditeľné aj pre fyzické osoby (SZČO), nie len firmy
- Skrytie duplicitného IČO v Sales & Purchase → Misc pre SK partnerov
  (l10n_sk pridáva svoje IČO pri VAT, takže by bol duplikát)
- Override viditeľnosti l10n_sk poľa company_registry — viditeľné aj keď
  krajina ešte nie je nastavená (lepšia UX pri vytváraní nového kontaktu)
- Odberateľ vpravo v hlavičke faktúry (nový report layout)
This commit is contained in:
Tomas
2026-04-29 22:56:03 +02:00
parent 2e0af721f5
commit a410c4bcb6
4 changed files with 65 additions and 3 deletions
+2 -1
View File
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
{ {
'name': 'Slovakia - Partner DIČ', 'name': 'Slovakia - Partner DIČ',
'version': '19.0.2.0.7', 'version': '19.0.2.0.9',
'category': 'Localization', 'category': 'Localization',
'summary': 'Pridáva DIČ pole na kontakty a opravuje IČO label pre Slovensko', 'summary': 'Pridáva DIČ pole na kontakty a opravuje IČO label pre Slovensko',
'description': """ 'description': """
@@ -25,6 +25,7 @@
'security/ir.model.access.csv', 'security/ir.model.access.csv',
'views/res_partner_views.xml', 'views/res_partner_views.xml',
'report/report_layout_sk.xml', 'report/report_layout_sk.xml',
'report/report_layout_customer_top.xml',
], ],
'installable': True, 'installable': True,
'auto_install': False, 'auto_install': False,
+9
View File
@@ -66,3 +66,12 @@ class ResPartner(models.Model):
labels = super()._get_company_registry_labels() labels = super()._get_company_registry_labels()
labels['SK'] = _('IČO') labels['SK'] = _('IČO')
return labels return labels
@api.model
def default_get(self, fields_list):
defaults = super().default_get(fields_list)
if 'country_id' in fields_list and not defaults.get('country_id'):
company_country = self.env.company.country_id
if company_country and company_country.code == 'SK':
defaults['country_id'] = company_country.id
return defaults
+31
View File
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!--
Dodávateľ (vľavo) a odberateľ (vpravo) v jednej úrovni headera faktúry.
Prístup cez XML inheritance + XPath, aby zmena prežila aktualizácie modulu web.
-->
<template id="external_layout_standard_customer_top"
inherit_id="web.external_layout_standard">
<!-- Pridaj odberateľa ako druhý col-6 napravo v headeri -->
<xpath expr="//div[@name='company_address']" position="after">
<div class="col-6" name="customer_address_in_header" t-if="address">
<t t-out="address"/>
</div>
</xpath>
<!-- Nastav flag pred telom dokumentu, aby sa odberateľ neduplikoval -->
<xpath expr="//t[@t-set='layout_background_url']" position="before">
<t t-if="address" t-set="address_shown_in_header" t-value="True"/>
</xpath>
</template>
<!-- Pre web.address_layout: preskočiť render odberateľa, ak už je v headeri -->
<template id="address_layout_skip_if_in_header"
inherit_id="web.address_layout">
<xpath expr="//div[@t-if='address']" position="attributes">
<attribute name="t-if">address and not address_shown_in_header</attribute>
</xpath>
</template>
</odoo>
+23 -2
View File
@@ -5,13 +5,34 @@
<field name="name">res.partner.form.sk</field> <field name="name">res.partner.form.sk</field>
<field name="model">res.partner</field> <field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/> <field name="inherit_id" ref="base.view_partner_form"/>
<field name="priority">99</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<!-- DIČ a Platca DPH viditeľné pre osoby (SZČO) aj firmy keď je SK alebo nezadaná krajina -->
<xpath expr="//field[@name='website']" position="before"> <xpath expr="//field[@name='website']" position="before">
<field name="dic" <field name="dic"
placeholder="napr. 2022538353" placeholder="napr. 2022538353"
invisible="not is_company"/> invisible="parent_id or (country_id and country_code != 'SK')"/>
<field name="is_vat_payer" <field name="is_vat_payer"
invisible="not is_company"/> invisible="parent_id or (country_id and country_code != 'SK')"/>
</xpath>
<!-- Skryť duplicitné IČO v záložke Sales &amp; Purchase → Misc pre SK partnerov
(l10n_sk pridáva svoje IČO pole pri VAT, takže toto by bol duplikát) -->
<xpath expr="//group[@name='misc']/field[@name='company_registry']" position="attributes">
<attribute name="invisible">parent_id or not is_company or country_code == 'SK'</attribute>
</xpath>
</field>
</record>
<!-- Override pre IČO pole pridané l10n_sk modulom: viditeľné aj keď krajina ešte nie je nastavená -->
<record id="view_partner_form_sk_l10n_sk_override" model="ir.ui.view">
<field name="name">res.partner.form.sk.l10n_sk.override</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="l10n_sk.res_partner_view_form_inherit_l10n_sk"/>
<field name="priority">99</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='company_registry']" position="attributes">
<attribute name="invisible">parent_id or (country_id and country_code != 'SK')</attribute>
</xpath> </xpath>
</field> </field>
</record> </record>