[PATCH] Upstream patch - 12022023

This commit is contained in:
Parthiv Patel
2023-02-12 08:34:13 +00:00
parent 3d6fc914c1
commit 56a5f72ea1
23 changed files with 748 additions and 556 deletions
+8 -5
View File
@@ -70,7 +70,7 @@ class GoogleSync(models.AbstractModel):
def write(self, vals):
google_service = GoogleCalendarService(self.env['google.service'])
if 'google_id' in vals:
self._from_google_ids.clear_cache(self)
self._event_ids_from_google_ids.clear_cache(self)
synced_fields = self._get_google_synced_fields()
if 'need_sync' not in vals and vals.keys() & synced_fields:
vals['need_sync'] = True
@@ -85,7 +85,7 @@ class GoogleSync(models.AbstractModel):
@api.model_create_multi
def create(self, vals_list):
if any(vals.get('google_id') for vals in vals_list):
self._from_google_ids.clear_cache(self)
self._event_ids_from_google_ids.clear_cache(self)
records = super().create(vals_list)
google_service = GoogleCalendarService(self.env['google.service'])
@@ -111,12 +111,15 @@ class GoogleSync(models.AbstractModel):
return True
return super().unlink()
@api.model
@ormcache_context('google_ids', keys=('active_test',))
def _from_google_ids(self, google_ids):
if not google_ids:
return self.browse()
return self.search([('google_id', 'in', google_ids)])
return self.browse(self._event_ids_from_google_ids(google_ids))
@api.model
@ormcache_context('google_ids', keys=('active_test',))
def _event_ids_from_google_ids(self, google_ids):
return self.search([('google_id', 'in', google_ids)]).ids
def _sync_flectra2google(self, google_service: GoogleCalendarService):
if not self:
+3 -3
View File
@@ -30,7 +30,7 @@ class GoogleGmailController(http.Controller):
raise Forbidden()
if error:
return _('An error occur during the authentication process: %s.') % error
return _('An error occur during the authentication process.')
try:
state = json.loads(state)
@@ -57,8 +57,8 @@ class GoogleGmailController(http.Controller):
try:
refresh_token, access_token, expiration = record._fetch_gmail_refresh_token(code)
except UserError as e:
return _('An error occur during the authentication process: %s.') % str(e.name)
except UserError:
return _('An error occur during the authentication process.')
record.write({
'google_gmail_access_token': access_token,
+280 -303
View File
@@ -10,537 +10,514 @@
<record id="tax_report_de_tag_01" model="account.tax.report.line">
<field name="name">Bemessungsgrundlage</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="sequence">10</field>
<field name="formula">None</field>
</record>
<record id="tax_report_de_tag_02" model="account.tax.report.line">
<field name="name">Steuer</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="sequence">20</field>
<field name="formula">None</field>
</record>
<!-- BASE -->
<record id="tax_report_de_tag_17" model="account.tax.report.line">
<field name="name">I. Anmeldung der Umsatzsteuer-Vorauszahlung (zeile 17)</field>
<field name="name">I. Anmeldung der Umsatzsteuer-Vorauszahlung</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tag_01"/>
<field name="formula">None</field>
</record>
<!-- Row 18 - 31 - 37 - 46 -->
<record id="tax_report_de_tag_18" model="account.tax.report.line">
<field name="name">Lieferungen und sonstige Leistungen (zeile 18)</field>
<field name="name">Lieferungen und sonstige Leistungen</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tag_17"/>
</record>
<record id="tax_report_de_tag_31" model="account.tax.report.line">
<field name="name">Innergemeinschaftliche Erwerbe (zeile 31)</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="parent_id" ref="tax_report_de_tag_17"/>
</record>
<record id="tax_report_de_tag_37" model="account.tax.report.line">
<field name="name">Ergänzende Angaben zu Umsätzen (zeile 37)</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">3</field>
<field name="parent_id" ref="tax_report_de_tag_17"/>
</record>
<record id="tax_report_de_tag_46" model="account.tax.report.line">
<field name="name">Leistungsempfänger als Steuerschuldner (zeile 46)</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">4</field>
<field name="parent_id" ref="tax_report_de_tag_17"/>
</record>
<!-- Row 19 - 24 - 25 -->
<record id="tax_report_de_tag_19" model="account.tax.report.line">
<field name="name">Steuerfreie Umsätze mit Vorsteuerabzug (zeile 19)</field>
<field name="name">Steuerpflichtige Umsätze</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tag_18"/>
</record>
<record id="tax_report_de_tag_24" model="account.tax.report.line">
<field name="name">48. Steuerfreie Umsätze ohne Vorsteuerabzug (zeile 24)</field>
<field name="tag_name">48</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="parent_id" ref="tax_report_de_tag_18"/>
<field name="code">48</field>
</record>
<record id="tax_report_de_tag_25" model="account.tax.report.line">
<field name="name">Steuerpflichtige Umsätze (zeile 25)</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">3</field>
<field name="parent_id" ref="tax_report_de_tag_18"/>
</record>
<record id="tax_report_de_tag_41" model="account.tax.report.line">
<field name="name">41. an Abnehmer mit USt-IdNr (zeile 20)</field>
<field name="tag_name">41</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="parent_id" ref="tax_report_de_tag_19"/>
<field name="code">41</field>
</record>
<record id="tax_report_de_tag_44" model="account.tax.report.line">
<field name="name">44. neuer Fahrzeuge an Abnehmer ohne USt-IdNr (zeile 21)</field>
<field name="tag_name">44</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="parent_id" ref="tax_report_de_tag_19"/>
<field name="code">44</field>
</record>
<record id="tax_report_de_tag_49" model="account.tax.report.line">
<field name="name">49. neuer Fahrzeuge außerhalb eines Unternehmens (zeile 22)</field>
<field name="tag_name">49</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">3</field>
<field name="parent_id" ref="tax_report_de_tag_19"/>
<field name="code">49</field>
</record>
<record id="tax_report_de_tag_43" model="account.tax.report.line">
<field name="name">43. Weitere steuerfreie Umsätze mit Vorsteuerabzug (zeile 23)</field>
<field name="tag_name">43</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">4</field>
<field name="parent_id" ref="tax_report_de_tag_19"/>
<field name="code">43</field>
</record>
<record id="tax_report_de_tag_81" model="account.tax.report.line">
<field name="name">81. zum Steuersatz von 19 % (zeile 26)</field>
<field name="name">81. zum Steuersatz von 19 % (zeile 12)</field>
<field name="tag_name">81_BASE</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="parent_id" ref="tax_report_de_tag_25"/>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tag_19"/>
<field name="code">81</field>
</record>
<record id="tax_report_de_tag_86" model="account.tax.report.line">
<field name="name">86. zum Steuersatz von 7 % (zeile 27)</field>
<field name="name">86. zum Steuersatz von 7 % (zeile 13)</field>
<field name="tag_name">86_BASE</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="parent_id" ref="tax_report_de_tag_25"/>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tag_19"/>
<field name="code">86</field>
</record>
<record id="tax_report_de_tag_87" model="account.tax.report.line">
<field name="name">87. zum Steuersatz von 0 % (zeile 14)</field>
<field name="tag_name">87_BASE</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tag_19"/>
<field name="code">87</field>
</record>
<record id="tax_report_de_tag_35" model="account.tax.report.line">
<field name="name">35. zu anderen Steuersätzen (zeile 28)</field>
<field name="name">35. zu anderen Steuersätzen (zeile 15)</field>
<field name="tag_name">35</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="parent_id" ref="tax_report_de_tag_25"/>
<field name="sequence">40</field>
<field name="parent_id" ref="tax_report_de_tag_19"/>
<field name="code">35</field>
</record>
<record id="tax_report_de_tag_77" model="account.tax.report.line">
<field name="name">77. Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit USt-IdNr. (zeile 29)</field>
<field name="name">77. Lieferungen land- und forstwirtschaftlicher Betriebe nach § 24 UStG an Abnehmer mit USt-IdNr. (zeile 16)</field>
<field name="tag_name">77</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">4</field>
<field name="parent_id" ref="tax_report_de_tag_25"/>
<field name="sequence">50</field>
<field name="parent_id" ref="tax_report_de_tag_19"/>
<field name="code">77</field>
</record>
<record id="tax_report_de_tag_76" model="account.tax.report.line">
<field name="name">76. Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (zeile 30)</field>
<field name="name">76. Umsätze, für die eine Steuer nach § 24 UStG zu entrichten ist (zeile 17)</field>
<field name="tag_name">76</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">5</field>
<field name="parent_id" ref="tax_report_de_tag_25"/>
<field name="sequence">60</field>
<field name="parent_id" ref="tax_report_de_tag_19"/>
<field name="code">76</field>
</record>
<record id="tax_report_de_tag_25" model="account.tax.report.line">
<field name="name">Steuerfreie Umsätze mit Vorsteuerabzug</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tag_18"/>
</record>
<record id="tax_report_de_tag_41" model="account.tax.report.line">
<field name="name">41. an Abnehmer mit USt-IdNr (zeile 18)</field>
<field name="tag_name">41</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tag_25"/>
<field name="code">41</field>
</record>
<record id="tax_report_de_tag_44" model="account.tax.report.line">
<field name="name">44. neuer Fahrzeuge an Abnehmer ohne USt-IdNr (zeile 19)</field>
<field name="tag_name">44</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tag_25"/>
<field name="code">44</field>
</record>
<record id="tax_report_de_tag_49" model="account.tax.report.line">
<field name="name">49. neuer Fahrzeuge außerhalb eines Unternehmens (zeile 20)</field>
<field name="tag_name">49</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tag_25"/>
<field name="code">49</field>
</record>
<record id="tax_report_de_tag_43" model="account.tax.report.line">
<field name="name">43. Weitere steuerfreie Umsätze mit Vorsteuerabzug (zeile 21)</field>
<field name="tag_name">43</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">40</field>
<field name="parent_id" ref="tax_report_de_tag_25"/>
<field name="code">43</field>
</record>
<record id="tax_report_de_tag_24" model="account.tax.report.line">
<field name="name">48. Steuerfreie Umsätze ohne Vorsteuerabzug (zeile 22)</field>
<field name="tag_name">48</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tag_18"/>
<field name="code">48</field>
</record>
<record id="tax_report_de_tag_31" model="account.tax.report.line">
<field name="name">Innergemeinschaftliche Erwerbe</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">40</field>
<field name="parent_id" ref="tax_report_de_tag_18"/>
</record>
<record id="tax_report_de_tag_91" model="account.tax.report.line">
<field name="name">91. Steuerfreie innergemeinschaftliche Erwerbe (zeile 32)</field>
<field name="name">91. Steuerfreie innergemeinschaftliche Erwerbe (zeile 23)</field>
<field name="tag_name">91</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tag_31"/>
<field name="code">91</field>
</record>
<record id="tax_report_de_tag_89" model="account.tax.report.line">
<field name="name">89. Steuerpflichtige innergemeinschaftliche Erwerbe zum Steuersatz von 19 % (zeile 33)</field>
<field name="name">89. Steuerpflichtige innergemeinschaftliche Erwerbe zum Steuersatz von 19 % (zeile 24)</field>
<field name="tag_name">89_BASE</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tag_31"/>
<field name="code">89</field>
</record>
<record id="tax_report_de_tag_93" model="account.tax.report.line">
<field name="name">93. zum Steuersatz von 7 % (zeile 34)</field>
<field name="name">93. zum Steuersatz von 7 % (zeile 25)</field>
<field name="tag_name">93_BASE</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">3</field>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tag_31"/>
<field name="code">93</field>
</record>
<record id="tax_report_de_tag_90" model="account.tax.report.line">
<field name="name">90. zum Steuersatz von 0 % (zeile 26)</field>
<field name="tag_name">90_BASE</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">40</field>
<field name="parent_id" ref="tax_report_de_tag_31"/>
<field name="code">90</field>
</record>
<record id="tax_report_de_tag_95" model="account.tax.report.line">
<field name="name">95. zu anderen Steuersätzen (zeile 35)</field>
<field name="name">95. zu anderen Steuersätzen (zeile 27)</field>
<field name="tag_name">95</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">4</field>
<field name="sequence">50</field>
<field name="parent_id" ref="tax_report_de_tag_31"/>
<field name="code">95</field>
</record>
<record id="tax_report_de_tag_94" model="account.tax.report.line">
<field name="name">94. neuer Fahrzeuge von Lieferern ohne (zeile 36)</field>
<field name="name">94. neuer Fahrzeuge von Lieferern ohne (zeile 28)</field>
<field name="tag_name">94</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">5</field>
<field name="sequence">60</field>
<field name="parent_id" ref="tax_report_de_tag_31"/>
<field name="code">94</field>
</record>
<record id="tax_report_de_tag_42" model="account.tax.report.line">
<field name="name">42. Dreiecksgeschäften (zeile 38)</field>
<field name="tag_name">42</field>
<record id="tax_report_de_tag_46" model="account.tax.report.line">
<field name="name">Leistungsempfänger als Steuerschuldner</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="parent_id" ref="tax_report_de_tag_37"/>
<field name="code">42</field>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tag_17"/>
</record>
<record id="tax_report_de_tag_68" model="account.tax.report.line">
<field name="name">68. Steuerpflichtige Umsätze, für die der Leistungsempfänger die Steuer nach § 13b Abs. 5 Satz 1 i.V.m. Abs. 2 Nr. 10 UStG schuldet (zeile 39)</field>
<field name="tag_name">68</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="parent_id" ref="tax_report_de_tag_37"/>
<field name="code">68</field>
</record>
<record id="tax_report_de_tag_60" model="account.tax.report.line">
<field name="name">60. Übrige steuerpflichtige Umsätze, für die der Leistungsempfänger die Steuer nach § 13b Abs. 5 UStG schuldet (zeile 40)</field>
<field name="tag_name">60</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">3</field>
<field name="parent_id" ref="tax_report_de_tag_37"/>
<field name="code">60</field>
</record>
<record id="tax_report_de_tag_21" model="account.tax.report.line">
<field name="name">21. Nicht steuerbare sonstige Leistungen (zeile 41)</field>
<field name="tag_name">21</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">4</field>
<field name="parent_id" ref="tax_report_de_tag_37"/>
<field name="code">21</field>
</record>
<record id="tax_report_de_tag_45" model="account.tax.report.line">
<field name="name">45. Übrige nicht steuerbare Umsätze (zeile 42)</field>
<field name="tag_name">45_BASE</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">5</field>
<field name="parent_id" ref="tax_report_de_tag_37"/>
</record>
<record id="tax_report_de_tag_48" model="account.tax.report.line">
<field name="name">46. Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (zeile 48)</field>
<field name="name">46. Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebiet ansässigen Unternehmers (zeile 29)</field>
<field name="tag_name">46</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tag_46"/>
<field name="code">46</field>
</record>
<record id="tax_report_de_tag_52" model="account.tax.report.line">
<field name="name">52. Andere Leistungen eines im Ausland ansässigen Unternehmers (zeile 49)</field>
<field name="tag_name">52</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="parent_id" ref="tax_report_de_tag_46"/>
<field name="code">52</field>
</record>
<record id="tax_report_de_tag_73" model="account.tax.report.line">
<field name="name">73. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (zeile 50)</field>
<field name="name">73. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (zeile 30)</field>
<field name="tag_name">73</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">3</field>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tag_46"/>
<field name="code">73</field>
</record>
<record id="tax_report_de_tag_78" model="account.tax.report.line">
<field name="name">78. Lieferungen von Mobilfunkgeräten, Tablet-Computern, Spielekonsolen und integrierten Schaltkreisen (zeile 51)</field>
<field name="tag_name">78</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">4</field>
<field name="parent_id" ref="tax_report_de_tag_46"/>
<field name="code">78</field>
</record>
<record id="tax_report_de_tag_84" model="account.tax.report.line">
<field name="name">84. Andere Leistungen (zeile 52)</field>
<field name="name">84. Andere Leistungen (zeile 31)</field>
<field name="tag_name">84</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">5</field>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tag_46"/>
<field name="code">84</field>
</record>
<record id="tax_report_de_tag_37" model="account.tax.report.line">
<field name="name">Ergänzende Angaben zu Umsätzen</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tag_17"/>
</record>
<record id="tax_report_de_tag_42" model="account.tax.report.line">
<field name="name">42. Dreiecksgeschäften (zeile 32)</field>
<field name="tag_name">42</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tag_37"/>
<field name="code">42</field>
</record>
<record id="tax_report_de_tag_60" model="account.tax.report.line">
<field name="name">60. Übrige steuerpflichtige Umsätze, für die der Leistungsempfänger die Steuer nach § 13b Abs. 5 UStG schuldet (zeile 33)</field>
<field name="tag_name">60</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tag_37"/>
<field name="code">60</field>
</record>
<record id="tax_report_de_tag_21" model="account.tax.report.line">
<field name="name">21. Nicht steuerbare sonstige Leistungen (zeile 34)</field>
<field name="tag_name">21</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tag_37"/>
<field name="code">21</field>
</record>
<record id="tax_report_de_tag_45" model="account.tax.report.line">
<field name="name">45. Übrige nicht steuerbare Umsätze (zeile 35)</field>
<field name="tag_name">45_BASE</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">40</field>
<field name="parent_id" ref="tax_report_de_tag_37"/>
<field name="code">45</field>
</record>
<!-- TAX -->
<record id="tax_report_de_tax_tag_17" model="account.tax.report.line">
<field name="name">I. Anmeldung der Umsatzsteuer-Vorauszahlung (zeile 17)</field>
<field name="name">83. Verbleibende Umsatzsteuer-Vorauszahlung</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tag_02"/>
<field name="code">83</field>
</record>
<!-- Row 18 - 31 - 37 - 46 - 55 - 64 - 66 -->
<record id="tax_report_de_tax_tag_18" model="account.tax.report.line">
<field name="name">Lieferungen und sonstige Leistungen (zeile 18)</field>
<field name="name">Lieferungen und sonstige Leistungen</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="parent_id" ref="tax_report_de_tax_tag_17"/>
</record>
<record id="tax_report_de_tax_tag_31" model="account.tax.report.line">
<field name="name">Innergemeinschaftliche Erwerbe (zeile 31)</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="parent_id" ref="tax_report_de_tax_tag_17"/>
</record>
<record id="tax_report_de_tax_tag_37" model="account.tax.report.line">
<field name="name">Erganzende Angaben zu Umsatzen (zeile 37)</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">3</field>
<field name="parent_id" ref="tax_report_de_tax_tag_17"/>
</record>
<record id="tax_report_de_tax_tag_46" model="account.tax.report.line">
<field name="name">Leistungsempfanger als Steuerschuldner (zeile 46)</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">4</field>
<field name="parent_id" ref="tax_report_de_tax_tag_17"/>
</record>
<record id="tax_report_de_tax_tag_55" model="account.tax.report.line">
<field name="name">Abziehbare Vorsteuerbetrage (zeile 55)</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">5</field>
<field name="parent_id" ref="tax_report_de_tax_tag_17"/>
</record>
<record id="tax_report_de_tax_tag_64" model="account.tax.report.line">
<field name="name">Andere Steuerbetrage (zeile 64)</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">6</field>
<field name="parent_id" ref="tax_report_de_tax_tag_17"/>
</record>
<record id="tax_report_de_tax_tag_66" model="account.tax.report.line">
<field name="name">Umsatzsteuer-Vorauszahlung/Uberschuss (zeile 66)</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">7</field>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tax_tag_17"/>
</record>
<!-- Row 26 - 27 - 28 - 30 -->
<record id="tax_report_de_tax_tag_19" model="account.tax.report.line">
<field name="name">Steuerpflichtige Umsätze</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tax_tag_18"/>
</record>
<!-- Row 20 - 21 - 22 - 24 -->
<record id="tax_report_de_tag_26" model="account.tax.report.line">
<field name="name">81. zum Steuersatz von 19 % (zeile 26)</field>
<field name="name">zum Steuersatz von 19 % (zeile 12)</field>
<field name="tag_name">81_TAX</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="parent_id" ref="tax_report_de_tax_tag_18"/>
<field name="code">81</field>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tax_tag_19"/>
<field name="code"></field>
</record>
<record id="tax_report_de_tag_27" model="account.tax.report.line">
<field name="name">86. zum Steuersatz von 7 % (zeile 27)</field>
<field name="name">zum Steuersatz von 7 % (zeile 13)</field>
<field name="tag_name">86_TAX</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="parent_id" ref="tax_report_de_tax_tag_18"/>
<field name="code">86</field>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tax_tag_19"/>
<field name="code"></field>
</record>
<record id="tax_report_de_tag_36" model="account.tax.report.line">
<field name="name">36. zu anderen Steuersatzen (zeile 28)</field>
<field name="name">36. zu anderen Steuersatzen (zeile 15)</field>
<field name="tag_name">36</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">3</field>
<field name="parent_id" ref="tax_report_de_tax_tag_18"/>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tax_tag_19"/>
<field name="code">36</field>
</record>
<record id="tax_report_de_tag_80" model="account.tax.report.line">
<field name="name">80. Umsatze, fur die eine Steuer nach § 24 UStG zu entrichten ist (zeile 30)</field>
<field name="name">80. Umsatze, fur die eine Steuer nach § 24 UStG zu entrichten ist (zeile 17)</field>
<field name="tag_name">80</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">4</field>
<field name="parent_id" ref="tax_report_de_tax_tag_18"/>
<field name="sequence">40</field>
<field name="parent_id" ref="tax_report_de_tax_tag_19"/>
<field name="code">80</field>
</record>
<!-- Row 33 - 34 - 35 - 36 -->
<record id="tax_report_de_tax_tag_31" model="account.tax.report.line">
<field name="name">Innergemeinschaftliche Erwerbe</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tax_tag_18"/>
</record>
<record id="tax_report_de_tag_33" model="account.tax.report.line">
<field name="name">89. zum Steuersatz von 19 % (zeile 33)</field>
<field name="name">89. zum Steuersatz von 19 % (zeile 24)</field>
<field name="tag_name">89_TAX</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tax_tag_31"/>
<field name="code">89</field>
<field name="code"></field>
</record>
<record id="tax_report_de_tag_34" model="account.tax.report.line">
<field name="name">93. zum Steuersatz von 7 % (zeile 34)</field>
<field name="name">93. zum Steuersatz von 7 % (zeile 25)</field>
<field name="tag_name">93_TAX</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tax_tag_31"/>
<field name="code">93</field>
<field name="code"></field>
</record>
<record id="tax_report_de_tag_98" model="account.tax.report.line">
<field name="name">98. zu anderen Steuersatzen (zeile 35)</field>
<field name="name">98. zu anderen Steuersatzen (zeile 27)</field>
<field name="tag_name">98</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">3</field>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tax_tag_31"/>
<field name="code">98</field>
</record>
<record id="tax_report_de_tag_96" model="account.tax.report.line">
<field name="name">96. neuer Fahrzeuge von Lieferern ohne USt-IdNr. zum allgemeinen Steuersatz (zeile 36)</field>
<field name="name">96. neuer Fahrzeuge von Lieferern ohne USt-IdNr. zum allgemeinen Steuersatz (zeile 28)</field>
<field name="tag_name">96</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">4</field>
<field name="sequence">40</field>
<field name="parent_id" ref="tax_report_de_tax_tag_31"/>
<field name="code">96</field>
</record>
<!-- Row 45 -->
<record id="tax_report_de_tax_tag_45" model="account.tax.report.line">
<field name="name">45. Ubertrag (zeile 45)</field>
<field name="tag_name">45_TAX</field>
<record id="tax_report_de_tax_tag_46" model="account.tax.report.line">
<field name="name">Leistungsempfänger als Steuerschuldner</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="parent_id" ref="tax_report_de_tax_tag_37"/>
<field name="code">45</field>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tax_tag_17"/>
</record>
<!-- Row 48 - 49 - 50 - 51 - 52 - 53 -->
<record id="tax_report_de_tag_47" model="account.tax.report.line">
<field name="name">47. Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebietansässigen Unternehmers (zeile 48)</field>
<field name="name">47. Steuerpflichtige sonstige Leistungen eines im übrigen Gemeinschaftsgebietansässigen Unternehmers (zeile 29)</field>
<field name="tag_name">47</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tax_tag_46"/>
<field name="code">47</field>
</record>
<record id="tax_report_de_tag_53" model="account.tax.report.line">
<field name="name">53. Andere Leistungen eines im Ausland ansässigen Unternehmers (zeile 49)</field>
<field name="tag_name">53</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="parent_id" ref="tax_report_de_tax_tag_46"/>
<field name="code">53</field>
</record>
<record id="tax_report_de_tag_74" model="account.tax.report.line">
<field name="name">74. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (zeile 50)</field>
<field name="name">74. Lieferungen sicherungsübereigneter Gegenstände und Umsätze, die unter das GrEStG fallen (zeile 30)</field>
<field name="tag_name">74</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">3</field>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tax_tag_46"/>
<field name="code">74</field>
</record>
<record id="tax_report_de_tag_79" model="account.tax.report.line">
<field name="name">79. Lieferungen von Mobilfunkgeräten, Tablet-Computern, Spielekonsolen und integrierten Schaltkreisen (zeile 51)</field>
<field name="tag_name">79</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">4</field>
<field name="parent_id" ref="tax_report_de_tax_tag_46"/>
<field name="code">79</field>
</record>
<record id="tax_report_de_tag_85" model="account.tax.report.line">
<field name="name">85. Andere Leistungen (zeile 52)</field>
<field name="name">85. Andere Leistungen eines im Ausland ansässigen Unternehmers (zeile 31)</field>
<field name="tag_name">85</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">5</field>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tax_tag_46"/>
<field name="code">85</field>
</record>
<record id="tax_report_de_tag_65" model="account.tax.report.line">
<field name="name">65. Steuer infolge Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen u. ä. wegen Steuersatzänderung (zeile 53)</field>
<field name="tag_name">65</field>
<record id="tax_report_de_tax_tag_55" model="account.tax.report.line">
<field name="name">Abziehbare Vorsteuerbetrage</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">6</field>
<field name="parent_id" ref="tax_report_de_tax_tag_46"/>
<field name="code">65</field>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tax_tag_17"/>
</record>
<!-- Row 56 - 57 - 58 - 59 - 60 - 61 - 62 -->
<record id="tax_report_de_tag_66" model="account.tax.report.line">
<field name="name">66. Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (zeile 56)</field>
<field name="name">66. Vorsteuerbeträge aus Rechnungen von anderen Unternehmern (zeile 37)</field>
<field name="tag_name">66</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tax_tag_55"/>
<field name="code">66</field>
</record>
<record id="tax_report_de_tag_61" model="account.tax.report.line">
<field name="name">61. Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (zeile 57)</field>
<field name="name">61. Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb von Gegenständen (zeile 38)</field>
<field name="tag_name">61</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tax_tag_55"/>
<field name="code">61</field>
</record>
<record id="tax_report_de_tag_62" model="account.tax.report.line">
<field name="name">62. Entstandene Einfuhrumsatzsteuer (zeile 58)</field>
<field name="name">62. Entstandene Einfuhrumsatzsteuer (zeile 39)</field>
<field name="tag_name">62</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">3</field>
<field name="sequence">30</field>
<field name="parent_id" ref="tax_report_de_tax_tag_55"/>
<field name="code">62</field>
</record>
<record id="tax_report_de_tag_67" model="account.tax.report.line">
<field name="name">67. Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (zeile 59)</field>
<field name="name">67. Vorsteuerbeträge aus Leistungen im Sinne des § 13b UStG (zeile 40)</field>
<field name="tag_name">67</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">4</field>
<field name="sequence">40</field>
<field name="parent_id" ref="tax_report_de_tax_tag_55"/>
<field name="code">67</field>
</record>
<record id="tax_report_de_tag_63" model="account.tax.report.line">
<field name="name">63. Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (zeile 60)</field>
<field name="name">63. Vorsteuerbeträge, die nach allgemeinen Durchschnittssätzen berechnet sind (zeile 41)</field>
<field name="tag_name">63</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">5</field>
<field name="sequence">50</field>
<field name="parent_id" ref="tax_report_de_tax_tag_55"/>
<field name="code">63</field>
</record>
<record id="tax_report_de_tag_64" model="account.tax.report.line">
<field name="name">64. Berichtigung des Vorsteuerabzugs (zeile 61)</field>
<field name="tag_name">64</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">6</field>
<field name="parent_id" ref="tax_report_de_tax_tag_55"/>
<field name="code">64</field>
</record>
<record id="tax_report_de_tag_59" model="account.tax.report.line">
<field name="name">59. Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (zeile 62)</field>
<field name="name">59. Vorsteuerabzug für innergemeinschaftliche Lieferungen neuer Fahrzeuge außerhalb eines Unternehmens (zeile 42)</field>
<field name="tag_name">59</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">7</field>
<field name="sequence">60</field>
<field name="parent_id" ref="tax_report_de_tax_tag_55"/>
<field name="code">59</field>
</record>
<record id="tax_report_de_tag_64" model="account.tax.report.line">
<field name="name">64. Berichtigung des Vorsteuerabzugs (zeile 43)</field>
<field name="tag_name">64</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">70</field>
<field name="parent_id" ref="tax_report_de_tax_tag_55"/>
<field name="code">64</field>
</record>
<!-- Row 65 -->
<record id="tax_report_de_tax_tag_64" model="account.tax.report.line">
<field name="name">Andere Steuerbetrage</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">40</field>
<field name="parent_id" ref="tax_report_de_tax_tag_17"/>
</record>
<record id="tax_report_de_tag_65" model="account.tax.report.line">
<field name="name">65. Steuer infolge Wechsels der Besteuerungsform sowie Nachsteuer auf versteuerte Anzahlungen u. ä. wegen Steuersatzänderung (zeile 45)</field>
<field name="tag_name">65</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tax_tag_64"/>
<field name="code">65</field>
</record>
<record id="tax_report_de_tag_69" model="account.tax.report.line">
<field name="name">69. In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (zeile 65)</field>
<field name="name">69. In Rechnungen unrichtig oder unberechtigt ausgewiesene Steuerbeträge (zeile 46)</field>
<field name="tag_name">69</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tax_tag_64"/>
<field name="code">69</field>
</record>
<!-- Row 67 - 68 -->
<record id="tax_report_de_tag_39" model="account.tax.report.line">
<field name="name">39. Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (zeile 67)</field>
<field name="name">39. Abzug der festgesetzten Sondervorauszahlung für Dauerfristverlängerung (zeile 48)</field>
<field name="tag_name">39</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">1</field>
<field name="parent_id" ref="tax_report_de_tax_tag_66"/>
<field name="sequence">60</field>
<field name="parent_id" ref="tax_report_de_tax_tag_17"/>
<field name="code">39</field>
</record>
<record id="tax_report_de_tag_83" model="account.tax.report.line">
<field name="name">83. Verbleibende Umsatzsteuer-Vorauszahlung (zeile 68)</field>
<field name="tag_name">83</field>
<record id="tax_report_de_tag_71" model="account.tax.report.line">
<field name="name">Minderung</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">2</field>
<field name="parent_id" ref="tax_report_de_tax_tag_66"/>
<field name="code">83</field>
<field name="sequence">30</field>
<field name="formula">None</field>
</record>
<record id="tax_report_de_tag_50" model="account.tax.report.line">
<field name="name">50. Minderung der Bemessungsgrundlage (zeile 50)</field>
<field name="tag_name">50</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">10</field>
<field name="parent_id" ref="tax_report_de_tag_71"/>
<field name="code">50</field>
</record>
<record id="tax_report_de_tag_37_74" model="account.tax.report.line">
<field name="name">37. Minderung der abziehbaren Vorsteuerbeträge (zeile 51)</field>
<field name="tag_name">37</field>
<field name="report_id" ref="tax_report"/>
<field name="sequence">20</field>
<field name="parent_id" ref="tax_report_de_tag_71"/>
<field name="code">37</field>
</record>
<record id="tag_de_intracom_community_delivery" model="account.account.tag">
<field name="name">Innergemeinschaftliche Lieferung</field>
+1 -1
View File
@@ -33,7 +33,7 @@
{
'name': 'Germany SKR03 - Accounting',
'version': '3.0',
'version': '3.1',
'author': 'openbig.org',
'website': 'http://www.openbig.org',
'category': 'Accounting/Localizations/Account Charts',
@@ -229,6 +229,7 @@
(0,0, {
'factor_percent': -100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_96')],
'account_id': ref('account_1772'),
}),
@@ -249,6 +250,7 @@
(0,0, {
'factor_percent': -100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_96')],
'account_id': ref('account_1772'),
}),
@@ -685,6 +687,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_87')],
}),
(0,0, {
@@ -696,6 +699,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_87')],
}),
(0,0, {
@@ -877,7 +881,7 @@
<field name="amount">19</field>
<field name="type_tax_use">sale</field>
<field name="price_include">False</field>
<field name="active">True</field>
<field name="active">False</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'factor_percent': 100,
@@ -888,6 +892,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_80')],
'account_id': ref('account_1776'),
}),
]"/>
@@ -901,6 +906,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_80')],
'account_id': ref('account_1776'),
}),
]"/>
@@ -916,7 +922,7 @@
<field name="amount">0</field>
<field name="type_tax_use">sale</field>
<field name="price_include">False</field>
<field name="active">True</field>
<field name="active">False</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'factor_percent': 100,
@@ -927,6 +933,8 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'account_id': ref('account_1770'),
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_36')],
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
@@ -939,6 +947,8 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'account_id': ref('account_1770'),
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_36')],
}),
]"/>
<field name="tax_group_id" ref="tax_group_x"/>
@@ -1311,12 +1321,13 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('account_1787'),
}),
]"/>
@@ -1324,12 +1335,13 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('account_1787'),
}),
]"/>
@@ -1350,12 +1362,13 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('account_1785'),
}),
]"/>
@@ -1363,12 +1376,13 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('account_1785'),
}),
]"/>
@@ -1395,6 +1409,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_47')],
'account_id': ref('account_1787'),
}),
]"/>
@@ -1408,6 +1423,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_47')],
'account_id': ref('account_1787'),
}),
]"/>
@@ -1434,6 +1450,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_47')],
'account_id': ref('account_1785'),
}),
]"/>
@@ -1447,6 +1464,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_47')],
'account_id': ref('account_1785'),
}),
]"/>
@@ -1473,6 +1491,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('account_1787'),
}),
]"/>
@@ -1486,6 +1505,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('account_1787'),
}),
]"/>
@@ -1512,6 +1532,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('account_1785'),
}),
]"/>
@@ -1525,6 +1546,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('account_1785'),
}),
]"/>
@@ -1730,7 +1752,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_68')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60')],
}),
(0,0, {
@@ -1742,7 +1764,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_68')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60')],
}),
(0,0, {
@@ -1877,7 +1899,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -1898,7 +1920,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -1932,7 +1954,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -1953,7 +1975,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -1987,7 +2009,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_78')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2001,14 +2023,14 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('account_1787'),
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_79')]
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')]
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_78')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2022,7 +2044,7 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('account_1787'),
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_79')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
}),
]"/>
<field name="tax_group_id" ref="tax_group_0"/>
@@ -2095,7 +2117,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2109,14 +2131,14 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('account_1783'),
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_53')]
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')]
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2130,7 +2152,7 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('account_1783'),
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_53')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
}),
]"/>
<field name="tax_group_id" ref="tax_group_0"/>
@@ -2150,7 +2172,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2164,14 +2186,14 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('account_1783'),
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_53')]
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')]
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2185,7 +2207,7 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('account_1783'),
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_53')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
}),
]"/>
<field name="tax_group_id" ref="tax_group_0"/>
@@ -0,0 +1,6 @@
# Part of Odoo, Flectra. See LICENSE file for full copyright and licensing details.
from flectra.addons.account.models.chart_template import update_taxes_from_templates
def migrate(cr, version):
update_taxes_from_templates(cr, 'l10n_de_skr03.l10n_de_chart_template')
+1 -1
View File
@@ -32,7 +32,7 @@
{
'name': 'Germany SKR04 - Accounting',
'version': '3.0',
'version': '3.1',
'author': 'openbig.org',
'website': 'http://www.openbig.org',
'category': 'Accounting/Localizations/Account Charts',
@@ -237,6 +237,7 @@
(0,0, {
'factor_percent': -100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_96')],
'account_id': ref('chart_skr04_3802'),
}),
@@ -258,6 +259,7 @@
(0,0, {
'factor_percent': -100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_96')],
'account_id': ref('chart_skr04_3802'),
}),
@@ -912,7 +914,7 @@
<field name="amount">19</field>
<field name="type_tax_use">sale</field>
<field name="price_include">False</field>
<field name="active">True</field>
<field name="active">False</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'factor_percent': 100,
@@ -923,6 +925,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_80')],
'account_id': ref('chart_skr04_3806'),
}),
@@ -937,6 +940,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_80')],
'account_id': ref('chart_skr04_3806'),
}),
@@ -953,7 +957,7 @@
<field name="amount">0</field>
<field name="type_tax_use">sale</field>
<field name="price_include">False</field>
<field name="active">True</field>
<field name="active">False</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'factor_percent': 100,
@@ -964,6 +968,8 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'account_id': ref('chart_skr04_3800'),
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_36')],
}),
]"/>
@@ -977,6 +983,8 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'account_id': ref('chart_skr04_3800'),
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_36')],
}),
]"/>
@@ -1368,12 +1376,13 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('chart_skr04_3837'),
}),
@@ -1382,12 +1391,13 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('chart_skr04_3837'),
}),
@@ -1409,12 +1419,13 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('chart_skr04_3835'),
}),
@@ -1423,12 +1434,13 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('chart_skr04_3835'),
}),
@@ -1456,6 +1468,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_47')],
'account_id': ref('chart_skr04_3837'),
}),
@@ -1470,6 +1483,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_47')],
'account_id': ref('chart_skr04_3837'),
}),
@@ -1497,6 +1511,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_47')],
'account_id': ref('chart_skr04_3835'),
}),
@@ -1511,6 +1526,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_47')],
'account_id': ref('chart_skr04_3835'),
}),
@@ -1538,6 +1554,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('chart_skr04_3837'),
}),
@@ -1552,6 +1569,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('chart_skr04_3837'),
}),
@@ -1579,6 +1597,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('chart_skr04_3835'),
}),
@@ -1593,6 +1612,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'tax',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
'account_id': ref('chart_skr04_3835'),
}),
@@ -1809,7 +1829,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_68')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60')],
}),
(0,0, {
@@ -1821,7 +1841,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_68')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60')],
}),
(0,0, {
@@ -1961,7 +1981,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -1983,7 +2003,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2018,7 +2038,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2040,7 +2060,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2075,7 +2095,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_78')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2089,7 +2109,7 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('chart_skr04_3837'),
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_79')]
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')]
}),
]"/>
@@ -2097,7 +2117,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_78')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_60'), ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2111,7 +2131,7 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('chart_skr04_3837'),
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_79')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
}),
]"/>
@@ -2187,7 +2207,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2201,7 +2221,7 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('chart_skr04_3851'),
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_53')]
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')]
}),
]"/>
@@ -2209,7 +2229,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2223,7 +2243,7 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('chart_skr04_3851'),
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_53')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
}),
]"/>
@@ -2244,7 +2264,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2258,7 +2278,7 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('chart_skr04_3851'),
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_53')]
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')]
}),
]"/>
@@ -2266,7 +2286,7 @@
(0,0, {
'factor_percent': 100,
'repartition_type': 'base',
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_52')],
'minus_report_line_ids': [ref('l10n_de.tax_report_de_tag_84')],
}),
(0,0, {
@@ -2280,7 +2300,7 @@
'factor_percent': -100,
'repartition_type': 'tax',
'account_id': ref('chart_skr04_3851'),
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_53')],
'plus_report_line_ids': [ref('l10n_de.tax_report_de_tag_85')],
}),
]"/>
@@ -0,0 +1,6 @@
# Part of Odoo, Flectra. See LICENSE file for full copyright and licensing details.
from flectra.addons.account.models.chart_template import update_taxes_from_templates
def migrate(cr, version):
update_taxes_from_templates(cr, 'l10n_de_skr04.l10n_de_chart_template')
+17 -9
View File
@@ -82,20 +82,28 @@ class ResCompany(models.Model):
@api.constrains('l10n_it_has_eco_index',
'l10n_it_eco_index_office',
'l10n_it_eco_index_number',
'l10n_it_eco_index_share_capital',
'l10n_it_eco_index_sole_shareholder',
'l10n_it_eco_index_liquidation_state')
def _check_eco_admin_index(self):
for record in self:
if not record.l10n_it_has_eco_index:
continue
if not record.l10n_it_eco_index_office\
or not record.l10n_it_eco_index_number\
or not record.l10n_it_eco_index_share_capital\
or not record.l10n_it_eco_index_sole_shareholder\
or not record.l10n_it_eco_index_liquidation_state:
if (record.l10n_it_has_eco_index
and (not record.l10n_it_eco_index_office
or not record.l10n_it_eco_index_number
or not record.l10n_it_eco_index_liquidation_state)):
raise ValidationError(_("All fields about the Economic and Administrative Index must be completed."))
@api.constrains('l10n_it_has_eco_index',
'l10n_it_eco_index_share_capital',
'l10n_it_eco_index_sole_shareholder')
def _check_eco_incorporated(self):
""" If the business is incorporated, both these fields must be present.
We don't know whether the business is incorporated, but in any case the fields
must be both present or not present. """
for record in self:
if (record.l10n_it_has_eco_index
and bool(record.l10n_it_eco_index_share_capital) ^ bool(record.l10n_it_eco_index_sole_shareholder)):
raise ValidationError(_("If one of Share Capital or Sole Shareholder is present, "
"then they must be both filled out."))
@api.constrains('l10n_it_has_tax_representative',
'l10n_it_tax_representative_partner_id')
def _check_tax_representative(self):
+4 -1
View File
@@ -36,6 +36,9 @@ class StockRule(models.Model):
remaining |= rule
super(StockRule, remaining)._compute_picking_type_code_domain()
def _should_auto_confirm_procurement_mo(self, p):
return not p.orderpoint_id and p.move_raw_ids
@api.model
def _run_manufacture(self, procurements):
productions_values_by_company = defaultdict(list)
@@ -57,7 +60,7 @@ class StockRule(models.Model):
self.env['stock.move'].sudo().create(productions._get_moves_raw_values())
self.env['stock.move'].sudo().create(productions._get_moves_finished_values())
productions._create_workorder()
productions.filtered(lambda p: not p.orderpoint_id and p.move_raw_ids).action_confirm()
productions.filtered(self._should_auto_confirm_procurement_mo).action_confirm()
for production in productions:
origin_production = production.move_dest_ids and production.move_dest_ids[0].raw_material_production_id or False
@@ -133,7 +133,7 @@ class StockMove(models.Model):
res |= super(StockMove, self - move_to_not_merge)._action_confirm(merge=merge, merge_into=merge_into)
if subcontract_details_per_picking:
self.env['stock.picking'].concat(*list(subcontract_details_per_picking.keys())).action_assign()
return res
return res.exists()
def _action_record_components(self):
self.ensure_one()
+99 -95
View File
@@ -140,49 +140,51 @@
</div>
</div>
<h3 class="font-weight-normal">Pricing</h3>
<table class="table table-sm">
<thead class="bg-100">
<tr>
<th>Products</th>
<th class="text-right d-none d-sm-table-cell" t-if="order.state in ['purchase', 'done']">Unit Price</th>
<th class="text-right">Quantity</th>
<th class="text-right" t-if="order.state in ['purchase', 'done']">Subtotal</th>
</tr>
</thead>
<tbody>
<t t-foreach="order.order_line" t-as="ol">
<tr t-att-class="'bg-200 font-weight-bold o_line_section' if ol.display_type == 'line_section' else 'font-italic o_line_note' if ol.display_type == 'line_note' else ''">
<t t-if="not ol.display_type">
<td>
<img t-att-src="image_data_uri(resize_to_48(ol.product_id.image_1024))" alt="Product" class="d-none d-lg-inline"/>
<span t-esc="ol.name"/>
</td>
<td class="text-right d-none d-sm-table-cell" t-if="order.state in ['purchase', 'done']">
<span t-field="ol.price_unit" t-options='{"widget": "monetary", "display_currency": order.currency_id}'/>
</td>
<td class="text-right">
<span t-esc="ol.product_qty"/>
</td>
<td class="text-right" t-if="order.state in ['purchase', 'done']">
<span t-field="ol.price_subtotal" t-options='{"widget": "monetary", "display_currency": order.currency_id}'/>
</td>
</t>
<t t-if="ol.display_type == 'line_section'">
<td colspan="99">
<span t-field="ol.name"/>
</td>
<t t-set="current_section" t-value="line"/>
<t t-set="current_subtotal" t-value="0"/>
</t>
<t t-if="ol.display_type == 'line_note'">
<td colspan="99">
<span t-field="ol.name"/>
</td>
</t>
<div class="table-responsive">
<table class="table table-sm">
<thead class="bg-100">
<tr>
<th>Products</th>
<th class="text-right d-none d-sm-table-cell" t-if="order.state in ['purchase', 'done']">Unit Price</th>
<th class="text-right">Quantity</th>
<th class="text-right" t-if="order.state in ['purchase', 'done']">Subtotal</th>
</tr>
</t>
</tbody>
</table>
</thead>
<tbody>
<t t-foreach="order.order_line" t-as="ol">
<tr t-att-class="'bg-200 font-weight-bold o_line_section' if ol.display_type == 'line_section' else 'font-italic o_line_note' if ol.display_type == 'line_note' else ''">
<t t-if="not ol.display_type">
<td>
<img t-att-src="image_data_uri(resize_to_48(ol.product_id.image_1024))" alt="Product" class="d-none d-lg-inline"/>
<span t-esc="ol.name"/>
</td>
<td class="text-right d-none d-sm-table-cell" t-if="order.state in ['purchase', 'done']">
<span t-field="ol.price_unit" t-options='{"widget": "monetary", "display_currency": order.currency_id}'/>
</td>
<td class="text-right">
<span t-esc="ol.product_qty"/>
</td>
<td class="text-right" t-if="order.state in ['purchase', 'done']">
<span t-field="ol.price_subtotal" t-options='{"widget": "monetary", "display_currency": order.currency_id}'/>
</td>
</t>
<t t-if="ol.display_type == 'line_section'">
<td colspan="99">
<span t-field="ol.name"/>
</td>
<t t-set="current_section" t-value="line"/>
<t t-set="current_subtotal" t-value="0"/>
</t>
<t t-if="ol.display_type == 'line_note'">
<td colspan="99">
<span t-field="ol.name"/>
</td>
</t>
</tr>
</t>
</tbody>
</table>
</div>
<div class="row" t-if="order.state in ['purchase', 'done']">
<div class="col-sm-7 col-md-5 ml-auto">
<table class="table table-sm">
@@ -240,62 +242,64 @@
</div>
</div>
<h3 class="font-weight-normal">Pricing</h3>
<table class="table table-sm">
<thead class="bg-100">
<tr>
<th>Products</th>
<th class="text-right d-none d-sm-table-cell">Unit Price</th>
<th class="text-right">Quantity</th>
<th class="text-right">Scheduled Date</th>
<th class="text-right" style="color:#3aadaa"><strong>Update Dates Here</strong></th>
<th class="text-right">Subtotal</th>
</tr>
</thead>
<tbody>
<t t-foreach="order.order_line" t-as="ol">
<t t-if="not ol.display_type">
<tr>
<td>
<img t-att-src="image_data_uri(resize_to_48(ol.product_id.image_1024))" alt="Product" class="d-none d-lg-inline"/>
<span t-esc="ol.name"/>
</td>
<td class="text-right d-none d-sm-table-cell">
<span t-field="ol.price_unit" t-options='{"widget": "monetary", "display_currency": order.currency_id}'/>
</td>
<td class="text-right">
<span t-esc="ol.product_qty"/>
</td>
<td class="text-right">
<span t-esc="ol.date_planned.date()"/>
</td>
<td class="text-right">
<form t-attf-action="/my/purchase/#{order.id}/update?access_token=#{order.access_token}" method="post">
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<div class="container">
<div class="form-group">
<div class="input-group date">
<input type="text" class="form-control datetimepicker-input o-purchase-datetimepicker" t-attf-id="datetimepicker_#{ol.id}" t-att-name="ol.id"
data-toggle="datetimepicker" data-date-format="YYYY-MM-DD" t-attf-data-target="#datetimepicker_#{ol.id}"/>
<div class="table-responsive">
<table class="table table-sm">
<thead class="bg-100">
<tr>
<th>Products</th>
<th class="text-right d-none d-sm-table-cell">Unit Price</th>
<th class="text-right">Quantity</th>
<th class="text-right">Scheduled Date</th>
<th class="text-right" style="color:#3aadaa"><strong>Update Dates Here</strong></th>
<th class="text-right">Subtotal</th>
</tr>
</thead>
<tbody>
<t t-foreach="order.order_line" t-as="ol">
<t t-if="not ol.display_type">
<tr>
<td>
<img t-att-src="image_data_uri(resize_to_48(ol.product_id.image_1024))" alt="Product" class="d-none d-lg-inline"/>
<span t-esc="ol.name"/>
</td>
<td class="text-right d-none d-sm-table-cell">
<span t-field="ol.price_unit" t-options='{"widget": "monetary", "display_currency": order.currency_id}'/>
</td>
<td class="text-right">
<span t-esc="ol.product_qty"/>
</td>
<td class="text-right">
<span t-esc="ol.date_planned.date()"/>
</td>
<td class="text-right">
<form t-attf-action="/my/purchase/#{order.id}/update?access_token=#{order.access_token}" method="post">
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<div class="container">
<div class="form-group">
<div class="input-group date">
<input type="text" class="form-control datetimepicker-input o-purchase-datetimepicker" t-attf-id="datetimepicker_#{ol.id}" t-att-name="ol.id"
data-toggle="datetimepicker" data-date-format="YYYY-MM-DD" t-attf-data-target="#datetimepicker_#{ol.id}"/>
</div>
</div>
</div>
</div>
</form>
</td>
<td class="text-right">
<span t-field="ol.price_subtotal" t-options='{"widget": "monetary", "display_currency": order.currency_id}'/>
</td>
</tr>
</form>
</td>
<td class="text-right">
<span t-field="ol.price_subtotal" t-options='{"widget": "monetary", "display_currency": order.currency_id}'/>
</td>
</tr>
</t>
<t t-if="ol.display_type">
<tr>
<td colspan="99">
<span t-esc="ol.name"/>
</td>
</tr>
</t>
</t>
<t t-if="ol.display_type">
<tr>
<td colspan="99">
<span t-esc="ol.name"/>
</td>
</tr>
</t>
</t>
</tbody>
</table>
</tbody>
</table>
</div>
<div class="row">
<div class="col-sm-7 col-md-5 ml-auto">
<table class="table table-sm">
+86 -84
View File
@@ -426,94 +426,96 @@
<t t-set="display_discount" t-value="True in [line.discount > 0 for line in sale_order.order_line]"/>
<table t-att-data-order-id="sale_order.id" t-att-data-token="sale_order.access_token" class="table table-sm" id="sales_order_table">
<thead class="bg-100">
<tr>
<th class="text-left">Products</th>
<th class="text-right">Quantity</th>
<th t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">Unit Price</th>
<th t-if="display_discount" t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">
<span>Disc.%</span>
</th>
<th t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span>Taxes</span>
</th>
<th class="text-right" >
<span groups="account.group_show_line_subtotals_tax_excluded">Amount</span>
<span groups="account.group_show_line_subtotals_tax_included">Total Price</span>
</th>
</tr>
</thead>
<tbody class="sale_tbody">
<t t-set="current_subtotal" t-value="0"/>
<t t-foreach="sale_order.order_line" t-as="line">
<t t-set="current_subtotal" t-value="current_subtotal + line.price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
<t t-set="current_subtotal" t-value="current_subtotal + line.price_total" groups="account.group_show_line_subtotals_tax_included"/>
<tr t-att-class="'bg-200 font-weight-bold o_line_section' if line.display_type == 'line_section' else 'font-italic o_line_note' if line.display_type == 'line_note' else ''">
<t t-if="not line.display_type">
<td id="product_name"><span t-field="line.name"/></td>
<td class="text-right">
<div id="quote_qty">
<span t-field="line.product_uom_qty"/>
<span t-field="line.product_uom"/>
</div>
</td>
<td t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">
<div
t-if="line.discount &gt;= 0"
t-field="line.price_unit"
t-att-style="line.discount and 'text-decoration: line-through' or None"
t-att-class="(line.discount and 'text-danger' or '') + ' text-right'"
/>
<div t-if="line.discount">
<t t-esc="(1-line.discount / 100.0) * line.price_unit" t-options='{"widget": "float", "decimal_precision": "Product Price"}'/>
</div>
</td>
<td t-if="display_discount" t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">
<strong t-if="line.discount &gt; 0" class="text-info">
<t t-esc="((line.discount % 1) and '%s' or '%d') % line.discount"/>%
</strong>
</td>
<td t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span t-esc="', '.join(map(lambda x: (x.description or x.name), line.tax_id))"/>
</td>
<td class="text-right">
<span class="oe_order_line_price_subtotal" t-field="line.price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
<span class="oe_order_line_price_total" t-field="line.price_total" groups="account.group_show_line_subtotals_tax_included"/>
</td>
</t>
<t t-if="line.display_type == 'line_section'">
<td colspan="99">
<span t-field="line.name"/>
</td>
<t t-set="current_section" t-value="line"/>
<t t-set="current_subtotal" t-value="0"/>
</t>
<t t-if="line.display_type == 'line_note'">
<td colspan="99">
<span t-field="line.name"/>
</td>
</t>
<div class="table-responsive">
<table t-att-data-order-id="sale_order.id" t-att-data-token="sale_order.access_token" class="table table-sm" id="sales_order_table">
<thead class="bg-100">
<tr>
<th class="text-left">Products</th>
<th class="text-right">Quantity</th>
<th t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">Unit Price</th>
<th t-if="display_discount" t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">
<span>Disc.%</span>
</th>
<th t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span>Taxes</span>
</th>
<th class="text-right" >
<span groups="account.group_show_line_subtotals_tax_excluded">Amount</span>
<span groups="account.group_show_line_subtotals_tax_included">Total Price</span>
</th>
</tr>
</thead>
<tbody class="sale_tbody">
<t t-if="current_section and (line_last or sale_order.order_line[line_index+1].display_type == 'line_section')">
<tr class="is-subtotal text-right">
<td colspan="99">
<strong class="mr16">Subtotal</strong>
<span
t-esc="current_subtotal"
t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'
/>
</td>
<t t-set="current_subtotal" t-value="0"/>
<t t-foreach="sale_order.order_line" t-as="line">
<t t-set="current_subtotal" t-value="current_subtotal + line.price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
<t t-set="current_subtotal" t-value="current_subtotal + line.price_total" groups="account.group_show_line_subtotals_tax_included"/>
<tr t-att-class="'bg-200 font-weight-bold o_line_section' if line.display_type == 'line_section' else 'font-italic o_line_note' if line.display_type == 'line_note' else ''">
<t t-if="not line.display_type">
<td id="product_name"><span t-field="line.name"/></td>
<td class="text-right">
<div id="quote_qty">
<span t-field="line.product_uom_qty"/>
<span t-field="line.product_uom"/>
</div>
</td>
<td t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">
<div
t-if="line.discount &gt;= 0"
t-field="line.price_unit"
t-att-style="line.discount and 'text-decoration: line-through' or None"
t-att-class="(line.discount and 'text-danger' or '') + ' text-right'"
/>
<div t-if="line.discount">
<t t-esc="(1-line.discount / 100.0) * line.price_unit" t-options='{"widget": "float", "decimal_precision": "Product Price"}'/>
</div>
</td>
<td t-if="display_discount" t-attf-class="text-right {{ 'd-none d-sm-table-cell' if report_type == 'html' else '' }}">
<strong t-if="line.discount &gt; 0" class="text-info">
<t t-esc="((line.discount % 1) and '%s' or '%d') % line.discount"/>%
</strong>
</td>
<td t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
<span t-esc="', '.join(map(lambda x: (x.description or x.name), line.tax_id))"/>
</td>
<td class="text-right">
<span class="oe_order_line_price_subtotal" t-field="line.price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
<span class="oe_order_line_price_total" t-field="line.price_total" groups="account.group_show_line_subtotals_tax_included"/>
</td>
</t>
<t t-if="line.display_type == 'line_section'">
<td colspan="99">
<span t-field="line.name"/>
</td>
<t t-set="current_section" t-value="line"/>
<t t-set="current_subtotal" t-value="0"/>
</t>
<t t-if="line.display_type == 'line_note'">
<td colspan="99">
<span t-field="line.name"/>
</td>
</t>
</tr>
<t t-if="current_section and (line_last or sale_order.order_line[line_index+1].display_type == 'line_section')">
<tr class="is-subtotal text-right">
<td colspan="99">
<strong class="mr16">Subtotal</strong>
<span
t-esc="current_subtotal"
t-options='{"widget": "monetary", "display_currency": sale_order.pricelist_id.currency_id}'
/>
</td>
</tr>
</t>
</t>
</t>
</tbody>
</table>
</tbody>
</table>
</div>
<div id="total" class="row" name="total" style="page-break-inside: avoid;">
<div t-attf-class="#{'col-6' if report_type != 'html' else 'col-sm-7 col-md-6'} ml-auto">
+6 -2
View File
@@ -979,8 +979,7 @@ class StockMove(models.Model):
keys += (self.partner_id, )
return keys
def _search_picking_for_assignation(self):
self.ensure_one()
def _search_picking_for_assignation_domain(self):
domain = [
('group_id', '=', self.group_id.id),
('location_id', '=', self.location_id.id),
@@ -991,6 +990,11 @@ class StockMove(models.Model):
('state', 'in', ['draft', 'confirmed', 'waiting', 'partially_available', 'assigned'])]
if self.partner_id and (self.location_id.usage == 'transit' or self.location_dest_id.usage == 'transit'):
domain += [('partner_id', '=', self.partner_id.id)]
return domain
def _search_picking_for_assignation(self):
self.ensure_one()
domain = self._search_picking_for_assignation_domain()
picking = self.env['stock.picking'].search(domain, limit=1)
return picking
+1
View File
@@ -771,6 +771,7 @@ class Picking(models.Model):
def action_cancel(self):
self.mapped('move_lines')._action_cancel()
self.write({'is_locked': True})
self.filtered(lambda x: not x.move_lines).state = 'cancel'
return True
def _action_done(self):
@@ -51,7 +51,11 @@ var SectionListRenderer = ListRenderer.extend({
if (record.data.questions_selection === "random") {
nbrColumns--;
}
// Render empty cells for buttons to avoid having unaligned elements
nbrColumns -= this.columns.filter(elem => elem.tag === "button_group").length;
$cell.attr('colspan', nbrColumns);
} else if (node.tag === "button_group") {
$cell.addClass('o_invisible_modifier');
} else {
$cell.removeClass('o_invisible_modifier');
return $cell.addClass('o_hidden');
+3 -2
View File
@@ -200,10 +200,11 @@ publicWidget.registry.SurveyFormWidget = publicWidget.Widget.extend({
if (!treatedQuestionIds.includes(questionId)) {
var dependingQuestion = $('.js_question-wrapper#' + questionId);
dependingQuestion.removeClass('d-none');
// Add answer to selected answer
self.selectedAnswers.push(parseInt($target.val()));
}
});
// Add answer to selected answer
this.selectedAnswers.push(parseInt($target.val()));
}
}
}
@@ -0,0 +1,46 @@
flectra.define('survey.tour_test_survey_chained_conditional_questions', function (require) {
'use strict';
const tour = require('web_tour.tour');
tour.register('test_survey_chained_conditional_questions', {
test: true,
url: '/survey/start/3cfadce3-3f7e-41da-920d-10fa0eb19527',
}, [
{
content: 'Click on Start',
trigger: 'button.btn:contains("Start")',
}, {
content: 'Answer Q1 with Answer 1',
trigger: 'div.js_question-wrapper:contains("Q1") label:contains("Answer 1")',
}, {
content: 'Answer Q2 with Answer 1',
trigger: 'div.js_question-wrapper:contains("Q2") label:contains("Answer 1")',
}, {
content: 'Answer Q3 with Answer 1',
trigger: 'div.js_question-wrapper:contains("Q3") label:contains("Answer 1")',
}, {
content: 'Answer Q1 with Answer 2', // This should hide all remaining questions.
trigger: 'div.js_question-wrapper:contains("Q1") label:contains("Answer 2")',
}, {
content: 'Check that only question 1 is now visible',
trigger: 'div.js_question-wrapper:contains("Q1")',
run: () => {
const selector = 'div.js_question-wrapper.d-none';
if (document.querySelectorAll(selector).length !== 2) {
throw new Error('Q2 and Q3 should have been hidden.');
}
}
}, {
content: 'Click Submit and finish the survey',
trigger: 'button[value="finish"]',
},
// Final page
{
content: 'Thank you',
trigger: 'h1:contains("Thank you!")',
}
]);
});
@@ -164,6 +164,89 @@ class TestUiFeedback(HttpCaseWithUserDemo):
access_token = self.survey_feedback.access_token
self.start_tour("/survey/start/%s" % access_token, 'test_survey')
def test_04_public_survey_with_triggers(self):
""" Check that chained conditional questions are correctly
hidden from survey when a previously selected triggering answer is
unselected. E.g., if a specific answer for "Question 1" is selected,
which triggers asking "Question 2", and a specific answer for
"Question 2" is selected and triggers asking "Question 3",
changing the selected answer for "Question 1" should:
* hide questions 2 and 3
* enable submitting the survey without answering questions 2 and 3,
even if "constr_mandatory=True", as they are not visible.
"""
survey_with_triggers = self.env['survey.survey'].create({
'title': 'Survey With Triggers',
'access_token': '3cfadce3-3f7e-41da-920d-10fa0eb19527',
'state': 'open',
'access_mode': 'public',
'users_can_go_back': True,
'questions_layout': 'one_page',
'description': "<p>Test survey with conditional questions</p>",
'question_and_page_ids': [
(0, 0, {
'title': 'Q1',
'sequence': 1,
'question_type': 'simple_choice',
'suggested_answer_ids': [
(0, 0, {
'value': 'Answer 1',
'sequence': 1,
}), (0, 0, {
'value': 'Answer 2',
'sequence': 2,
}),
],
'constr_mandatory': True,
}), (0, 0, {
'title': 'Q2',
'sequence': 2,
'question_type': 'simple_choice',
'suggested_answer_ids': [
(0, 0, {
'value': 'Answer 1',
'sequence': 1,
}), (0, 0, {
'value': 'Answer 2',
'sequence': 2,
})
],
'is_conditional': True,
'constr_mandatory': True,
}), (0, 0, {
'title': 'Q3',
'sequence': 3,
'question_type': 'simple_choice',
'suggested_answer_ids': [
(0, 0, {
'value': 'Answer 1',
'sequence': 1,
}), (0, 0, {
'value': 'Answer 2',
'sequence': 2,
})
],
'is_conditional': True,
'constr_mandatory': True,
}),
]
})
q1 = survey_with_triggers.question_ids.filtered(lambda q: q.title == 'Q1')
q1_a1 = q1.suggested_answer_ids.filtered(lambda a: a.value == 'Answer 1')
q2 = survey_with_triggers.question_ids.filtered(lambda q: q.title == 'Q2')
q2_a1 = q2.suggested_answer_ids.filtered(lambda a: a.value == 'Answer 1')
q3 = survey_with_triggers.question_ids.filtered(lambda q: q.title == 'Q3')
q2.triggering_question_id = q1
q2.triggering_answer_id = q1_a1
q3.triggering_question_id = q2
q3.triggering_answer_id = q2_a1
access_token = survey_with_triggers.access_token
self.start_tour("/survey/start/%s" % access_token, 'test_survey_chained_conditional_questions')
def test_06_survey_prefill(self):
access_token = self.survey_feedback.access_token
self.start_tour("/survey/start/%s" % access_token, 'test_survey_prefill')
+1
View File
@@ -57,6 +57,7 @@
<script type="text/javascript" src="/survey/static/tests/tours/certification_failure.js"></script>
<script type="text/javascript" src="/survey/static/tests/tours/certification_success.js"></script>
<script type="text/javascript" src="/survey/static/tests/tours/survey.js"></script>
<script type="text/javascript" src="/survey/static/tests/tours/survey_chained_conditional_questions.js"></script>
<script type="text/javascript" src="/survey/static/tests/tours/survey_prefill.js"></script>
<script type="text/javascript" src="/survey/static/tests/tours/survey_tour_session_tools.js"></script>
<script type="text/javascript" src="/survey/static/tests/tours/survey_tour_session_create.js"></script>
+1 -1
View File
@@ -54,7 +54,7 @@ class IrTranslation(models.Model):
project_modules = {}
for module in translation_modules:
for section in tx_sections:
tx_project, tx_mod = section.split('.')
_, _, _, tx_project, _, tx_mod = section.split(':')
if tx_mod == module:
project_modules[module] = tx_project
@@ -475,6 +475,7 @@
margin-top: 0;
margin-bottom: 0;
line-height: inherit;
overflow-wrap: anywhere;
&.d-flex > .o_input {
height: max-content;