mirror of
https://gitlab.com/flectra-hq/flectra.git
synced 2026-08-17 16:54:42 -05:00
[PATCH] Upstream patch - 12022023
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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')
|
||||
@@ -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')
|
||||
@@ -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):
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 >= 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 > 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 >= 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 > 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">
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user