diff --git a/addons/crm/res_partner_view.xml b/addons/crm/res_partner_view.xml
index 19bb151b9b3..69f71c95405 100644
--- a/addons/crm/res_partner_view.xml
+++ b/addons/crm/res_partner_view.xml
@@ -45,25 +45,57 @@
-
-
+
+
+ Meetings
+ res.partner
+ crm.meeting
+ calendar,tree,form,gantt
+ {'search_default_partner_id': active_id}
+
-
+
+
+ Opportunities
+ crm.lead
+ kanban,tree,form,graph,calendar
+ [('type','=','opportunity')]
+ {'search_default_partner_id': active_id,
+ 'stage_type': 'opportunity', 'default_type': 'opportunity'}
+
+
+
+ With opportunities you can manage and keep track of your sales pipeline by creating specific customer- or prospect-related sales documents to follow up potential sales. Information such as expected revenue, opportunity stage, expected closing date, communication history and much more can be stored. Opportunities can be connected to the email gateway: new emails may create opportunities, each of them automatically gets the history of the conversation with the customer.
+
+ You and your team(s) will be able to plan meetings and phone calls from opportunities, convert them into quotations, manage related documents, track all customer related activities, and much more.
+
+
+
+
+ kanban
+
+
+
+
+
+ tree
+
+
+
+
+
+ form
+
+
+
+
+
+ graph
+
+
+
+
+
res.partner.kanban.inheritres.partner
@@ -74,13 +106,13 @@
-
-
- Opportunities
-
-
- Meetings
-
+
+
+ Opportunities
+
+
+ Meetings
+
@@ -96,13 +128,12 @@
+ context="{'search_default_partner_id': active_id, 'default_duration': 4.0}"/>
+ context="{'search_default_partner_id': active_id, 'default_duration': 1.0}" />
+ name="%(crm.crm_case_category_act_oppor11)d" context="{'search_default_partner_id': active_id}"/>
diff --git a/addons/crm/wizard/crm_add_note_view.xml b/addons/crm/wizard/crm_add_note_view.xml
index c2a7b248d93..93551eaf943 100644
--- a/addons/crm/wizard/crm_add_note_view.xml
+++ b/addons/crm/wizard/crm_add_note_view.xml
@@ -11,11 +11,14 @@
+
+
+
+ CRM - Meetings Tree (Inherited)
+ crm.meeting
+ tree
+
+
+
+
+
+
+
diff --git a/addons/import_google/test/test_sync_google_contact_import_address.yml b/addons/import_google/test/test_sync_google_contact_import_address.yml
deleted file mode 100644
index b1a8f9a2e09..00000000000
--- a/addons/import_google/test/test_sync_google_contact_import_address.yml
+++ /dev/null
@@ -1,34 +0,0 @@
--
- In order to test Importing contacts from any google account into OpenERP,
- I use a gmail account and import the contact details and store them as Partner addresses.
-- |
- I create a record for the gmail account for which I want to import the contacts.
--
- !record {model: google.login, id: google_login_id0}:
- user: testmail.openerp@gmail.com
- password: openerptiny
-- |
- I login into that account.
--
- !python {model: google.login}: |
- self.login(cr, uid, [ref('google_login_id0')], context)
-- |
- Now I select from which group I want to get the contact details.
--
- !record {model: synchronize.google.import, id: synchronize_google_import_id0}:
- create_partner: create_address
- group_name: all
- calendar_name: all
-- |
- I import the contacts and I also check if the contact already exists in db and updates the address.
--
- !python {model: synchronize.google.import}: |
- self.import_google(cr, uid, [ref('synchronize_google_import_id0')], context={'contact':True})
-- |
- I check whether the Contacts are created in Partner address or not.
--
- !python {model: res.partner.address}: |
- addr_obj = self.pool.get('ir.model.data')
- data_ids = addr_obj.search(cr, uid, [('model','=','res.partner.address'),('module','=','synchronize_google')])
- assert data_ids, 'Addresses not created !'
-
\ No newline at end of file
diff --git a/addons/import_google/test/test_sync_google_contact_import_partner.yml b/addons/import_google/test/test_sync_google_contact_import_partner.yml
index 4eadbf0f100..08aa0f30718 100644
--- a/addons/import_google/test/test_sync_google_contact_import_partner.yml
+++ b/addons/import_google/test/test_sync_google_contact_import_partner.yml
@@ -16,7 +16,6 @@
Now I select from which group I want to get the contact details and I want to create partner for all contacts.
-
!record {model: synchronize.google.import, id: synchronize_google_import_id1}:
- create_partner: create_all
group_name: all
- |
I import the contacts.
@@ -26,11 +25,11 @@
- |
I check whether the Partners are created or not.
-
- !python {model: res.partner.address }: |
+ !python {model: res.partner }: |
addr_obj = self.pool.get('ir.model.data')
addr_ids = addr_obj.search(cr, uid, [])
- data_ids = addr_obj.search(cr, uid, [('model','=','res.partner.address'),('module','=','synchronize_google')])
+ data_ids = addr_obj.search(cr, uid, [('model','=','res.partner'),('module','=','synchronize_google')])
address_ids = map(lambda x: x.res_id, [child for child in addr_obj.browse(cr, uid, data_ids) if child.res_id])
- partner_ids = map(lambda x: x.partner_id.id, [addr for addr in self.browse(cr, uid, address_ids) if addr.partner_id])
+ partner_ids = map(lambda x: x.parent_id.id, [addr for addr in self.browse(cr, uid, address_ids) if addr.parent_id])
assert partner_ids, 'Partners not created !'
-
\ No newline at end of file
+
diff --git a/addons/import_google/wizard/google_import_message_view.xml b/addons/import_google/wizard/google_import_message_view.xml
index 215de9ba59c..250239ea10c 100644
--- a/addons/import_google/wizard/google_import_message_view.xml
+++ b/addons/import_google/wizard/google_import_message_view.xml
@@ -8,9 +8,6 @@
form
-
-
-
diff --git a/addons/import_google/wizard/import_google.py b/addons/import_google/wizard/import_google.py
index f241fabf412..9a9b2802826 100644
--- a/addons/import_google/wizard/import_google.py
+++ b/addons/import_google/wizard/import_google.py
@@ -28,6 +28,8 @@ from pytz import timezone
from datetime import datetime
import time
from osv import *
+from tools.translate import _
+
try:
import gdata
import gdata.contacts.service
@@ -284,8 +286,8 @@ class google_import(import_framework):
data['id'] = entry.id.text
name = tools.ustr(entry.title.text)
if name == "None":
- name = entry.email[0].address
- data['name'] = name
+ name = entry.email and entry.email[0].address or ''
+ data['name'] = name or _('Unknown')
emails = ','.join(email.address for email in entry.email)
data['email'] = emails
if table == 'Contact':
@@ -314,13 +316,13 @@ class google_import(import_framework):
def get_contact_mapping(self):
return {
'model': 'res.partner',
- 'dependencies': [self.TABLE_ADDRESS],
+ #'dependencies': [self.TABLE_ADDRESS],
'map': {
'id':'id',
'name': value('company', fallback='name'),
'customer': 'customer',
'supplier': 'supplier',
- 'address/id': ref(self.TABLE_ADDRESS, 'id'),
+ 'child_ids/id': ref(self.TABLE_ADDRESS, 'id'),
}
}
@@ -337,11 +339,11 @@ class google_import(import_framework):
def get_address_mapping(self):
return {
- 'model': 'res.partner.address',
+ 'model': 'res.partner',
'dependencies': [],
'map': {
'id':'id',
- 'partner_id/.id': self.get_partner_id,
+ 'parent_id/.id': self.get_partner_id,
'name': 'name',
'city': 'city',
'phone': 'phone',
diff --git a/addons/import_google/wizard/import_google_data.py b/addons/import_google/wizard/import_google_data.py
index 9affc13899e..49127b85db8 100644
--- a/addons/import_google/wizard/import_google_data.py
+++ b/addons/import_google/wizard/import_google_data.py
@@ -102,7 +102,6 @@ class synchronize_google(osv.osv_memory):
return res
_columns = {
- 'create_partner': fields.selection([('create_all','Create partner for each contact'),('create_address','Import only address')],'Options'),
'customer': fields.boolean('Customer', help="Check this box to set newly created partner as Customer."),
'supplier': fields.boolean('Supplier', help="Check this box to set newly created partner as Supplier."),
'group_name': fields.selection(_get_group, "Group Name",help="Choose which group to import, By default it takes all."),
@@ -110,7 +109,6 @@ class synchronize_google(osv.osv_memory):
}
_defaults = {
- 'create_partner': 'create_all',
'group_name': 'all',
}
@@ -132,16 +130,13 @@ class synchronize_google(osv.osv_memory):
raise osv.except_osv(_('Error'), _("Invalid login detail !\n Specify Username/Password."))
if context.get('contact'):
- msg = " You're Contact are import in background, a email will be send when the process is finished to %s"%(user_obj.gmail_user)
+ msg = " Your contacts are being imported in background, an email to %s will be sent when the process is over" % (user_obj.gmail_user)
gd_client = google.google_login(gmail_user, gmail_pwd, type='contact')
if not gd_client:
raise osv.except_osv(_('Error'), _("Please specify correct user and password !"))
if obj.group_name not in ['all']:
context.update({ 'group_name': obj.group_name})
- if obj.create_partner=='create_all':
- tables.append('Contact')
- else:
- tables.append('Address')
+ tables.append('Contact')
context.update({'user': gmail_user,
'password': gmail_pwd,
'instance': 'contact',
diff --git a/addons/import_google/wizard/import_google_data_view.xml b/addons/import_google/wizard/import_google_data_view.xml
index 7df067a643b..2968b009a51 100644
--- a/addons/import_google/wizard/import_google_data_view.xml
+++ b/addons/import_google/wizard/import_google_data_view.xml
@@ -6,25 +6,21 @@
synchronize.google.importform
-
-
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/addons/knowledge/res_config_view.xml b/addons/knowledge/res_config_view.xml
index 80d13e6283a..ad3488deb98 100644
--- a/addons/knowledge/res_config_view.xml
+++ b/addons/knowledge/res_config_view.xml
@@ -8,8 +8,10 @@
-
-
+
+ or
+
+
diff --git a/addons/l10n_at/account_chart.xml b/addons/l10n_at/account_chart.xml
index 6e49ef357e4..51d0c9a85a8 100644
--- a/addons/l10n_at/account_chart.xml
+++ b/addons/l10n_at/account_chart.xml
@@ -1,2525 +1,2525 @@
-
+
-
-
-
- Forderungen/Debitoren
- receivable
- asset
- unreconciled
-
+
+
+
+ Forderungen/Debitoren
+ receivable
+ asset
+ unreconciled
+
-
- Verbindlichkeiten/Kreditoren
- payable
- liability
- unreconciled
-
+
+ Verbindlichkeiten/Kreditoren
+ payable
+ liability
+ unreconciled
+
-
- Ansicht
- view
- none
-
+
+ Ansicht
+ view
+ none
+
-
- Ertrag
- income
- income
- none
-
+
+ Ertrag
+ income
+ income
+ none
+
-
- Aufwand
- expense
- expense
- none
-
+
+ Aufwand
+ expense
+ expense
+ none
+
-
- Steuer
- tax
- unreconciled
-
+
+ Steuer
+ tax
+ unreconciled
+
-
- Kasse/Bank
- cash
- liability
- balance
-
+
+ Kasse/Bank
+ cash
+ liability
+ balance
+
-
- Vermögen
- asset
- asset
- balance
-
+
+ Vermögen
+ asset
+ asset
+ balance
+
-
- Eigenkapital
- equity
- liability
- balance
-
-
-
- Verbindlichkeiten
- liability
- liability
- balance
-
+
+ Eigenkapital
+ equity
+ liability
+ balance
+
+
+
+ Verbindlichkeiten
+ liability
+ liability
+ balance
+
-
- Sonstige
- other
- balance
-
-
-
-
-
-
- 0
- Account Chart - Austria EKR2010
- view
-
-
-
-
-
+
+ Sonstige
+ other
+ balance
+
+
+
+
+
+
+ 0
+ Account Chart - Austria EKR2010
+ view
+
+
+
+
+
-
- 00000
-
-
- view
-
- Summe Kontoklasse 0 Anlagevermögen
-
-
-
- 0010
-
-
- other
-
- Aufwendungen füs das Ingangssetzen u. Erweitern eines Betriebes
-
-
-
- 0090
-
-
- other
-
- Kumulierte Abschreibungen
-
+
+ 00000
+
+
+ view
+
+ Summe Kontoklasse 0 Anlagevermögen
+
+
+
+ 0010
+
+
+ other
+
+ Aufwendungen füs das Ingangssetzen u. Erweitern eines Betriebes
+
+
+
+ 0090
+
+
+ other
+
+ Kumulierte Abschreibungen
+
-
- 0100
-
-
- other
-
- Konzessionen
-
+
+ 0100
+
+
+ other
+
+ Konzessionen
+
-
- 0110
-
-
- other
-
- Patentrechte und Lizenzen
-
-
-
- 0120
-
-
- other
-
- Datenverarbeitungsprogramme
-
+
+ 0110
+
+
+ other
+
+ Patentrechte und Lizenzen
+
+
+
+ 0120
+
+
+ other
+
+ Datenverarbeitungsprogramme
+
-
- 0130
-
-
- other
-
- Marken, Warenzeichen und Musterschutzrechte
-
-
-
- 0140
-
-
- other
-
- Pacht- und Mietrechte
-
+
+ 0130
+
+
+ other
+
+ Marken, Warenzeichen und Musterschutzrechte
+
+
+
+ 0140
+
+
+ other
+
+ Pacht- und Mietrechte
+
-
- 0150
-
-
- other
-
- Geschäfts(Firmen)wert
-
-
-
- 0180
-
-
- other
-
- Geleistete Anzahlungen
-
+
+ 0150
+
+
+ other
+
+ Geschäfts(Firmen)wert
+
+
+
+ 0180
+
+
+ other
+
+ Geleistete Anzahlungen
+
-
- 0190
-
-
- other
-
- Kumulierte Abschreibungen
-
-
-
- 0200
-
-
- other
-
- Unbebaute Grundstücke
-
-
-
- 0210
-
-
- other
-
- Bebaute Grundstücke (Grundwert)
-
-
-
- 0220
-
-
- other
-
- Grundstücksgleiche Rechte
-
-
-
- 0300
-
-
- other
-
- Betriebs- und Geschäftsgebäude auf eigenem Grund
-
-
-
- 0310
-
-
- other
-
- Wohn- und Sozialgebäude auf eigenem Grund
-
-
-
- 0320
-
-
- other
-
- Betriebs- und Geschäftsgebäude auf fremdem Grund
-
-
-
- 0330
-
-
- other
-
- Wohn- und Sozialgebäude auf fremdem Grund
-
-
-
- 0340
-
-
- other
-
- Grundstückseinrichtunten auf eigenem Grund
-
-
-
- 0350
-
-
- other
-
- Grundstückseinrichtunten auf fremdem Grund
-
-
-
- 0360
-
-
- other
-
- Bauliche Investitionen in fremden (gepachteten) Betriebs- und Geschäftsgebäuden
-
-
-
-
- 0370
-
-
- other
-
- Bauliche Investitionen in fremden (gepachteten) Wohn- und Sozialgebäuden
-
-
-
- 0390
-
-
- other
-
- Kumulierte Abschreibungen
-
-
-
- 0400
-
-
- other
-
- Fertigungsmaschinen
-
-
-
- 0410
-
-
- other
-
- Antriebsmaschinen
-
-
-
- 0420
-
-
- other
-
- Energieversorgungsanlagen
-
-
-
- 0430
-
-
- other
-
- Transportanlagen
-
-
-
- 0440
-
-
- other
-
- 44 bis 49 Sonstige Maschinen und maschinelle Anlagen
-
-
-
- 0500
-
-
- other
-
- Maschinenwerkzeuge
-
-
-
- 0510
-
-
- other
-
- Allgemeine Werkzeuge und Handwerkzeuge
-
-
-
- 0520
-
-
- other
-
- Vorrichtungen, Formen und Modelle
-
-
-
- 0530
-
-
- other
-
- Andere Erzeugungshilfsmittel
-
-
-
- 0540
-
-
- other
-
- Hebezeuge und Montageanlagen
-
-
-
- 0550
-
-
- other
-
- Geringwertige Vermögensgegenstände, soweit im Erzeugerprozess verwendet
-
-
-
- 0600
-
-
- other
-
- Beheizungs- und Beleuchtungsanlagen
-
-
-
- 0610
-
-
- other
-
- Nachrichten- und Kontrollanlagen
-
-
-
- 0620
-
-
- other
-
- Büromaschinen, EDV - Anlagen
-
-
-
- 0630
-
-
- other
-
- PKW
-
-
-
- 0640
-
-
- other
-
- LKW
-
-
-
- 0650
-
-
- other
-
- Andere Beförderungsmittel
-
-
-
- 0660
-
-
- other
-
- Andere Betriebs- und Geschäftsausstattung
-
-
-
- 0670
-
-
- other
-
- Gebinde
-
+
+ 0190
+
+
+ other
+
+ Kumulierte Abschreibungen
+
+
+
+ 0200
+
+
+ other
+
+ Unbebaute Grundstücke
+
+
+
+ 0210
+
+
+ other
+
+ Bebaute Grundstücke (Grundwert)
+
+
+
+ 0220
+
+
+ other
+
+ Grundstücksgleiche Rechte
+
+
+
+ 0300
+
+
+ other
+
+ Betriebs- und Geschäftsgebäude auf eigenem Grund
+
+
+
+ 0310
+
+
+ other
+
+ Wohn- und Sozialgebäude auf eigenem Grund
+
+
+
+ 0320
+
+
+ other
+
+ Betriebs- und Geschäftsgebäude auf fremdem Grund
+
+
+
+ 0330
+
+
+ other
+
+ Wohn- und Sozialgebäude auf fremdem Grund
+
+
+
+ 0340
+
+
+ other
+
+ Grundstückseinrichtunten auf eigenem Grund
+
+
+
+ 0350
+
+
+ other
+
+ Grundstückseinrichtunten auf fremdem Grund
+
+
+
+ 0360
+
+
+ other
+
+ Bauliche Investitionen in fremden (gepachteten) Betriebs- und Geschäftsgebäuden
+
+
+
+
+ 0370
+
+
+ other
+
+ Bauliche Investitionen in fremden (gepachteten) Wohn- und Sozialgebäuden
+
+
+
+ 0390
+
+
+ other
+
+ Kumulierte Abschreibungen
+
+
+
+ 0400
+
+
+ other
+
+ Fertigungsmaschinen
+
+
+
+ 0410
+
+
+ other
+
+ Antriebsmaschinen
+
+
+
+ 0420
+
+
+ other
+
+ Energieversorgungsanlagen
+
+
+
+ 0430
+
+
+ other
+
+ Transportanlagen
+
+
+
+ 0440
+
+
+ other
+
+ 44 bis 49 Sonstige Maschinen und maschinelle Anlagen
+
+
+
+ 0500
+
+
+ other
+
+ Maschinenwerkzeuge
+
+
+
+ 0510
+
+
+ other
+
+ Allgemeine Werkzeuge und Handwerkzeuge
+
+
+
+ 0520
+
+
+ other
+
+ Vorrichtungen, Formen und Modelle
+
+
+
+ 0530
+
+
+ other
+
+ Andere Erzeugungshilfsmittel
+
+
+
+ 0540
+
+
+ other
+
+ Hebezeuge und Montageanlagen
+
+
+
+ 0550
+
+
+ other
+
+ Geringwertige Vermögensgegenstände, soweit im Erzeugerprozess verwendet
+
+
+
+ 0600
+
+
+ other
+
+ Beheizungs- und Beleuchtungsanlagen
+
+
+
+ 0610
+
+
+ other
+
+ Nachrichten- und Kontrollanlagen
+
+
+
+ 0620
+
+
+ other
+
+ Büromaschinen, EDV - Anlagen
+
+
+
+ 0630
+
+
+ other
+
+ PKW
+
+
+
+ 0640
+
+
+ other
+
+ LKW
+
+
+
+ 0650
+
+
+ other
+
+ Andere Beförderungsmittel
+
+
+
+ 0660
+
+
+ other
+
+ Andere Betriebs- und Geschäftsausstattung
+
+
+
+ 0670
+
+
+ other
+
+ Gebinde
+
-
- 0680
-
-
- other
-
- Geringwertige Vermögensgegenstände, soweit nicht im Erzeugungsprozess verwendet
-
-
-
- 0690
-
-
- other
-
- Kumulierte Abschreibungen
-
-
-
- 0700
-
-
- other
-
- Geleistete Anzahlungen
-
-
-
- 0710
-
-
- other
-
- Anlagen im Bau
-
-
-
- 0790
-
-
- other
-
- Kumulierte Abschreibungen
-
-
-
- 0800
-
-
- other
-
- Anteile an verbundenen Unternehmen
-
-
-
- 0810
-
-
- other
-
- Beteiligungen an Gemeinschaftunternehmen
-
-
-
- 0820
-
-
- other
-
- Beteiligungen an angeschlossenen (assoziierten) Unternehmen
-
-
-
- 0830
-
-
- other
-
- Sonstige Beteiligungen
-
-
-
- 0840
-
-
- other
-
- Ausleihungen an verbundene Unternehmen
-
-
-
- 0850
-
-
- other
-
- Ausleihungen an verbundene Unternehmen, mit denen ein Beteiligungsverhälnis besteht
-
-
-
- 0860
-
-
- other
-
- Sonstige Ausleihungen
-
-
-
- 0870
-
-
- other
-
- Anteile an Kapitalgesellschaften ohne Beteiligungscharakter
-
+
+ 0680
+
+
+ other
+
+ Geringwertige Vermögensgegenstände, soweit nicht im Erzeugungsprozess verwendet
+
+
+
+ 0690
+
+
+ other
+
+ Kumulierte Abschreibungen
+
+
+
+ 0700
+
+
+ other
+
+ Geleistete Anzahlungen
+
+
+
+ 0710
+
+
+ other
+
+ Anlagen im Bau
+
+
+
+ 0790
+
+
+ other
+
+ Kumulierte Abschreibungen
+
+
+
+ 0800
+
+
+ other
+
+ Anteile an verbundenen Unternehmen
+
+
+
+ 0810
+
+
+ other
+
+ Beteiligungen an Gemeinschaftunternehmen
+
+
+
+ 0820
+
+
+ other
+
+ Beteiligungen an angeschlossenen (assoziierten) Unternehmen
+
+
+
+ 0830
+
+
+ other
+
+ Sonstige Beteiligungen
+
+
+
+ 0840
+
+
+ other
+
+ Ausleihungen an verbundene Unternehmen
+
+
+
+ 0850
+
+
+ other
+
+ Ausleihungen an verbundene Unternehmen, mit denen ein Beteiligungsverhälnis besteht
+
+
+
+ 0860
+
+
+ other
+
+ Sonstige Ausleihungen
+
+
+
+ 0870
+
+
+ other
+
+ Anteile an Kapitalgesellschaften ohne Beteiligungscharakter
+
-
- 0880
-
-
- other
-
- Anteile an Personengesellschaften ohne Beteiligungscharakter
-
-
-
- 0900
-
-
- other
-
- Genossenschaften ohne Beteiligungscharakter
-
-
-
- 0910
-
-
- other
-
- Anteile an Investmentfonds
-
-
-
- 0920
-
-
- other
-
- 920 bis 930 Festverzinsliche Wertpapiere des Anlagevermögens
-
-
-
- 0940
-
-
- other
-
- 940 bis 970 Sonstige Finanzanlagen, Wertrechte
-
-
-
- 0980
-
-
- other
-
- Geleistete Anzahlungen
-
-
-
- 0990
-
-
- other
-
- Kumulierte Abschreibungen
-
-
-
-
-
-
+
+ 0880
+
+
+ other
+
+ Anteile an Personengesellschaften ohne Beteiligungscharakter
+
+
+
+ 0900
+
+
+ other
+
+ Genossenschaften ohne Beteiligungscharakter
+
+
+
+ 0910
+
+
+ other
+
+ Anteile an Investmentfonds
+
+
+
+ 0920
+
+
+ other
+
+ 920 bis 930 Festverzinsliche Wertpapiere des Anlagevermögens
+
+
+
+ 0940
+
+
+ other
+
+ 940 bis 970 Sonstige Finanzanlagen, Wertrechte
+
+
+
+ 0980
+
+
+ other
+
+ Geleistete Anzahlungen
+
+
+
+ 0990
+
+
+ other
+
+ Kumulierte Abschreibungen
+
+
+
+
+
+
-
- 10000
-
-
- view
-
- Summe Vorräte
-
-
-
- 1000
-
-
- other
-
- 1000 bis 1090 Bezugsverrechnung
-
-
-
- 1100
-
-
- other
-
- 1100 bis 1190 Rohstoffe
-
-
-
- 1200
-
-
- other
-
- 1200 bis 1290 Bezogene Teile
-
-
-
- 1300
-
-
- other
-
- 1300 bis 1340 Hilfsstoffe
-
-
-
- 1350
-
-
- other
-
- 1350 bis 1390 Betriebsstoffe
-
-
-
- 1400
-
-
- other
-
- 1400 bis 1490 Unfertige Erzeugniss
-
-
-
- 1500
-
-
- other
-
- 1500 bis 1590 Fertige Erzeugniss
-
-
-
- 1600
-
-
- other
-
- 1600 bis 1690 Waren
-
-
-
- 1700
-
-
- other
-
- 1700 bis 1790 Noch nicht abgerechenbare Leistungen
-
-
-
- 1800
-
-
- other
-
- geleistete Anzahlungen
-
-
-
- 1900
-
-
- other
-
- 1900 bis 1990 Wertberichtigungen
-
-
-
-
-
+
+ 10000
+
+
+ view
+
+ Summe Vorräte
+
+
+
+ 1000
+
+
+ other
+
+ 1000 bis 1090 Bezugsverrechnung
+
+
+
+ 1100
+
+
+ other
+
+ 1100 bis 1190 Rohstoffe
+
+
+
+ 1200
+
+
+ other
+
+ 1200 bis 1290 Bezogene Teile
+
+
+
+ 1300
+
+
+ other
+
+ 1300 bis 1340 Hilfsstoffe
+
+
+
+ 1350
+
+
+ other
+
+ 1350 bis 1390 Betriebsstoffe
+
+
+
+ 1400
+
+
+ other
+
+ 1400 bis 1490 Unfertige Erzeugniss
+
+
+
+ 1500
+
+
+ other
+
+ 1500 bis 1590 Fertige Erzeugniss
+
+
+
+ 1600
+
+
+ other
+
+ 1600 bis 1690 Waren
+
+
+
+ 1700
+
+
+ other
+
+ 1700 bis 1790 Noch nicht abgerechenbare Leistungen
+
+
+
+ 1800
+
+
+ other
+
+ geleistete Anzahlungen
+
+
+
+ 1900
+
+
+ other
+
+ 1900 bis 1990 Wertberichtigungen
+
+
+
+
+
-
-
- 20000
-
-
- view
-
- Summe Umlaufvermögen
-
-
-
- 2000
-
-
- receivable
-
- 2000 bis 2007 Forderungen aus Lief. und Leist. Inland
-
-
-
- 2080
-
-
- other
-
- Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. Inland
-
-
-
- 2090
-
-
- other
-
- Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. Inland
-
-
-
- 2100
-
-
- receivable
-
- 2100 bis 2120 Forderungen aus Lief. und Leist. EU
-
-
-
- 2130
-
-
- other
-
- Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. EU
-
-
-
- 2140
-
-
- other
-
- Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. EU
-
-
-
- 2150
-
-
- receivable
-
- 2150 bis 2170 Forderungen aus Lief. und Leist. Ausland
-
-
-
- 2180
-
-
- other
-
- Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. Ausland
-
-
-
- 2190
-
-
- other
-
- Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. Ausland
-
-
-
- 2200
-
-
- receivable
-
- 2200 bis 2220 Forderungen gegenüber verbundenen Unternehmen
-
-
-
- 2230
-
-
- other
-
- Einzelwertberichtigungen zu Forderungen gegenüber verbundenen Unternehmen
-
-
-
- 2240
-
-
- other
-
- Pauschalwertberichtigungen zu Forderungen gegenüber verbundenen Unternehmen
-
-
-
- 2250
-
-
- receivable
-
- 2250 bis 2270 Forderungen gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht
-
-
-
- 2280
-
-
- other
-
- Einzelwertberichtigungen zu Forderungen gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht
-
-
-
- 2290
-
-
- other
-
- Pauschalwertberichtigungen zu Forderungen gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht
-
-
-
- 2300
-
-
- other
-
- 2300 bis 2460 Sonstige Forderungen und Vermögensgegenstände
-
-
-
- 2470
-
-
- other
-
- Eingeforderte aber noch nicht eingezahlte Einlagen
-
-
-
- 2480
-
-
- other
-
- Einzelwertberichtigungen zu sonstigen Forderungen und Vermögensgegenständen
-
+
+
+ 20000
+
+
+ view
+
+ Summe Umlaufvermögen
+
+
+
+ 2000
+
+
+ receivable
+
+ 2000 bis 2007 Forderungen aus Lief. und Leist. Inland
+
+
+
+ 2080
+
+
+ other
+
+ Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. Inland
+
+
+
+ 2090
+
+
+ other
+
+ Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. Inland
+
+
+
+ 2100
+
+
+ receivable
+
+ 2100 bis 2120 Forderungen aus Lief. und Leist. EU
+
+
+
+ 2130
+
+
+ other
+
+ Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. EU
+
+
+
+ 2140
+
+
+ other
+
+ Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. EU
+
+
+
+ 2150
+
+
+ receivable
+
+ 2150 bis 2170 Forderungen aus Lief. und Leist. Ausland
+
+
+
+ 2180
+
+
+ other
+
+ Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. Ausland
+
+
+
+ 2190
+
+
+ other
+
+ Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. Ausland
+
+
+
+ 2200
+
+
+ receivable
+
+ 2200 bis 2220 Forderungen gegenüber verbundenen Unternehmen
+
+
+
+ 2230
+
+
+ other
+
+ Einzelwertberichtigungen zu Forderungen gegenüber verbundenen Unternehmen
+
+
+
+ 2240
+
+
+ other
+
+ Pauschalwertberichtigungen zu Forderungen gegenüber verbundenen Unternehmen
+
+
+
+ 2250
+
+
+ receivable
+
+ 2250 bis 2270 Forderungen gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht
+
+
+
+ 2280
+
+
+ other
+
+ Einzelwertberichtigungen zu Forderungen gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht
+
+
+
+ 2290
+
+
+ other
+
+ Pauschalwertberichtigungen zu Forderungen gegenüber Unternehmen mit denen ein Beteiligungsverhältnis besteht
+
+
+
+ 2300
+
+
+ other
+
+ 2300 bis 2460 Sonstige Forderungen und Vermögensgegenstände
+
+
+
+ 2470
+
+
+ other
+
+ Eingeforderte aber noch nicht eingezahlte Einlagen
+
+
+
+ 2480
+
+
+ other
+
+ Einzelwertberichtigungen zu sonstigen Forderungen und Vermögensgegenständen
+
-
- 2490
-
-
- other
-
- Pauschalwertberichtigungen zu sonstigen Forderungen und Vermögensgegenständen
-
+
+ 2490
+
+
+ other
+
+ Pauschalwertberichtigungen zu sonstigen Forderungen und Vermögensgegenständen
+
-
- 2490
-
-
- other
-
- Pauschalwertberichtigungen zu sonstigen Forderungen und Vermögensgegenständen
-
+
+ 2490
+
+
+ other
+
+ Pauschalwertberichtigungen zu sonstigen Forderungen und Vermögensgegenständen
+
-
- 2500
-
-
- other
-
- Vorsteuer
-
-
-
- 2501
-
-
- other
-
- Vorsteuer aus ig. Erwerb 20%
-
+
+ 2500
+
+
+ other
+
+ Vorsteuer
+
+
+
+ 2501
+
+
+ other
+
+ Vorsteuer aus ig. Erwerb 20%
+
-
- 2502
-
-
- other
-
- Vorsteuer §19/Art 19 ( reverse charge )
-
+
+ 2502
+
+
+ other
+
+ Vorsteuer §19/Art 19 ( reverse charge )
+
-
- 2503
-
-
- other
-
- Vorsteuer aus ig. Erwerb 10%
-
-
-
- 2510
-
-
- other
-
- Einfuhrumsatzsteuer (bezahlt)
-
-
-
- 2600
-
-
- other
-
- Eigene Anteile (Wertpapiere)
-
-
-
- 2610
-
-
- other
-
- Anteile an verbundenen Unternehmen
-
-
-
- 2620
-
-
- other
-
- Sonstige Anteile
-
-
-
- 2630
-
-
- other
-
- 2630 bis 2670 Sonstige Wertpapiere
-
-
-
- 2680
-
-
- other
-
- Besitzwechsel ...
-
-
-
- 2690
-
-
- other
-
- Wertberichtigungen
-
-
-
- 2700
-
-
- liquidity
-
- Kassenbestand
-
-
-
- 2730
-
-
- other
-
- Postwertzeichen
-
-
-
- 2740
-
-
- other
-
- Stempelmarken
-
-
-
- 2750
-
-
- other
-
- 2750 bis 2770 Kassenbestände in Fremdwährung
-
-
-
- 2780
-
-
- other
-
- Schecks in Inlandswährung
-
-
-
- 2800
-
-
- liquidity
-
- Bank / Guthaben bei Kreditinstituten
-
-
-
- 2890
-
-
- other
-
- Wertberichtigungen
-
-
-
- 2900
-
-
- other
-
- Aktive Rechnungsabrenzungsposten
-
-
-
- 2950
-
-
- other
-
- Disagio
-
-
-
- 2960
-
-
- other
-
- Unterschiedsbetrag zur gebotenen Pensionsrückstellung
-
-
-
- 2970
-
-
- other
-
- Unterschiedsbetrag gem. Abschnitt XII Pensionskassengesetz
-
-
-
- 2980
-
-
- other
-
- Steuerabgrenzung
-
-
-
-
+
+ 2503
+
+
+ other
+
+ Vorsteuer aus ig. Erwerb 10%
+
+
+
+ 2510
+
+
+ other
+
+ Einfuhrumsatzsteuer (bezahlt)
+
+
+
+ 2600
+
+
+ other
+
+ Eigene Anteile (Wertpapiere)
+
+
+
+ 2610
+
+
+ other
+
+ Anteile an verbundenen Unternehmen
+
+
+
+ 2620
+
+
+ other
+
+ Sonstige Anteile
+
+
+
+ 2630
+
+
+ other
+
+ 2630 bis 2670 Sonstige Wertpapiere
+
+
+
+ 2680
+
+
+ other
+
+ Besitzwechsel ...
+
+
+
+ 2690
+
+
+ other
+
+ Wertberichtigungen
+
+
+
+ 2700
+
+
+ liquidity
+
+ Kassenbestand
+
+
+
+ 2730
+
+
+ other
+
+ Postwertzeichen
+
+
+
+ 2740
+
+
+ other
+
+ Stempelmarken
+
+
+
+ 2750
+
+
+ other
+
+ 2750 bis 2770 Kassenbestände in Fremdwährung
+
+
+
+ 2780
+
+
+ other
+
+ Schecks in Inlandswährung
+
+
+
+ 2800
+
+
+ liquidity
+
+ Bank / Guthaben bei Kreditinstituten
+
+
+
+ 2890
+
+
+ other
+
+ Wertberichtigungen
+
+
+
+ 2900
+
+
+ other
+
+ Aktive Rechnungsabrenzungsposten
+
+
+
+ 2950
+
+
+ other
+
+ Disagio
+
+
+
+ 2960
+
+
+ other
+
+ Unterschiedsbetrag zur gebotenen Pensionsrückstellung
+
+
+
+ 2970
+
+
+ other
+
+ Unterschiedsbetrag gem. Abschnitt XII Pensionskassengesetz
+
+
+
+ 2980
+
+
+ other
+
+ Steuerabgrenzung
+
+
+
+
-
- 30000
-
-
- view
-
- Summe Fremdkapital
-
-
-
- 3000
-
-
- other
-
- Rückstellungen für Abfertigung
-
+
+ 30000
+
+
+ view
+
+ Summe Fremdkapital
+
+
+
+ 3000
+
+
+ other
+
+ Rückstellungen für Abfertigung
+
-
- 3010
-
-
- other
-
- Rückstellungen für Pensionen
-
+
+ 3010
+
+
+ other
+
+ Rückstellungen für Pensionen
+
-
- 3020
-
-
- other
-
- 3020 bis 3030 Steuerrückstellungen
-
+
+ 3020
+
+
+ other
+
+ 3020 bis 3030 Steuerrückstellungen
+
-
- 3040
-
-
- other
-
- 3040 bis 3090 Sonstige Rückstellungen
-
+
+ 3040
+
+
+ other
+
+ 3040 bis 3090 Sonstige Rückstellungen
+
-
- 3100
-
-
- other
-
- Anleihen (einschließlich konvertibler)
-
+
+ 3100
+
+
+ other
+
+ Anleihen (einschließlich konvertibler)
+
-
- 3110
-
-
- other
-
- 3110 bis 3170 Verbindlichkeiten gegenüber Kredidinstituten
-
+
+ 3110
+
+
+ other
+
+ 3110 bis 3170 Verbindlichkeiten gegenüber Kredidinstituten
+
-
- 3180
-
-
- other
-
- 3180 bis 3190 Verbindlichkeiten gegenüber Finanzinstituten
-
+
+ 3180
+
+
+ other
+
+ 3180 bis 3190 Verbindlichkeiten gegenüber Finanzinstituten
+
-
- 3200
-
-
- other
-
- Erhaltene Anzahlungenauf Bestellungen
-
+
+ 3200
+
+
+ other
+
+ Erhaltene Anzahlungenauf Bestellungen
+
-
- 3210
-
-
- other
-
- Umsatzsteuer-Evidenzkonto für erhaltene Anzahlungen auf Bestellungen
-
+
+ 3210
+
+
+ other
+
+ Umsatzsteuer-Evidenzkonto für erhaltene Anzahlungen auf Bestellungen
+
-
- 3300
-
-
- payable
-
- Verbindlichkeiten aus Lieferungen u. Leistungen Inland
-
+
+ 3300
+
+
+ payable
+
+ Verbindlichkeiten aus Lieferungen u. Leistungen Inland
+
-
- 3360
-
-
- payable
-
- Verbindlichkeiten aus Lieferungen u. Leistungen EU
-
+
+ 3360
+
+
+ payable
+
+ Verbindlichkeiten aus Lieferungen u. Leistungen EU
+
-
- 3370
-
-
- payable
-
- Verbindlichkeiten aus Lieferungen u. Leistungen sonst. Ausland
-
+
+ 3370
+
+
+ payable
+
+ Verbindlichkeiten aus Lieferungen u. Leistungen sonst. Ausland
+
-
- 3380
-
-
- other
-
- 3380 bis 3390 Verbindlichkeiten aus der Annahme gezogener Wechsel u. d. Ausstellungen eigener Wechsel
-
+
+ 3380
+
+
+ other
+
+ 3380 bis 3390 Verbindlichkeiten aus der Annahme gezogener Wechsel u. d. Ausstellungen eigener Wechsel
+
-
- 3400
-
-
- other
-
- 3400 bis 3470 Verbindlichkeiten gegenü. verb. Untern., Verbindl. gegenü. Untern., mit denen eine Beteiligungsverhälnis besteht
-
+
+ 3400
+
+
+ other
+
+ 3400 bis 3470 Verbindlichkeiten gegenü. verb. Untern., Verbindl. gegenü. Untern., mit denen eine Beteiligungsverhälnis besteht
+
-
- 3480
-
-
- other
-
- Verbindlichkeiten gegenüber Gesellschaften
-
+
+ 3480
+
+
+ other
+
+ Verbindlichkeiten gegenüber Gesellschaften
+
-
- 3500
-
-
- other
-
- Umsatzsteuer
-
-
- 3501
-
-
- other
-
- Umsatzsteuer aus i.g. Erwerb 20%
-
+
+ 3500
+
+
+ other
+
+ Umsatzsteuer
+
+
+ 3501
+
+
+ other
+
+ Umsatzsteuer aus i.g. Erwerb 20%
+
-
- 3502
-
-
- other
-
- USt. §19 /art (reverse charge)
-
+
+ 3502
+
+
+ other
+
+ USt. §19 /art (reverse charge)
+
-
- 3503
-
-
- other
-
- Umsatzsteuer aus i.g. Erwerb 10%
-
+
+ 3503
+
+
+ other
+
+ Umsatzsteuer aus i.g. Erwerb 10%
+
-
- 3510
-
-
- other
-
- Umsatzsteuer aus i.g. Lieferungen 20%
-
-
-
- 3511
-
-
- other
-
- Umsatzsteuer aus i.g. Lieferungen 10%
-
-
-
- 3520
-
-
- other
-
- Umsatzsteuer Zahllast
-
+
+ 3510
+
+
+ other
+
+ Umsatzsteuer aus i.g. Lieferungen 20%
+
+
+
+ 3511
+
+
+ other
+
+ Umsatzsteuer aus i.g. Lieferungen 10%
+
+
+
+ 3520
+
+
+ other
+
+ Umsatzsteuer Zahllast
+
-
- 3530
-
-
- other
-
- Verrechnung Finanzamt
-
-
-
- 3600
-
-
- other
-
- 3600 bis 3690 Verbindlichkeiten im Rahmen der sozialen Sicherheit
-
+
+ 3530
+
+
+ other
+
+ Verrechnung Finanzamt
+
+
+
+ 3600
+
+
+ other
+
+ 3600 bis 3690 Verbindlichkeiten im Rahmen der sozialen Sicherheit
+
-
- 3700
-
-
- other
-
- 3700 bis 3890 Übrige sonstige Verbindlichkeiten
-
+
+ 3700
+
+
+ other
+
+ 3700 bis 3890 Übrige sonstige Verbindlichkeiten
+
-
- 3900
-
-
- other
-
- 3900 bis 3990 Passive Rechnungsabgrenzungsposten
-
+
+ 3900
+
+
+ other
+
+ 3900 bis 3990 Passive Rechnungsabgrenzungsposten
+
-
-
-
-
+
+
+
+
-
- 40000
-
-
- view
-
- Summe Betriebliche Erträge
-
+
+ 40000
+
+
+ view
+
+ Summe Betriebliche Erträge
+
-
- 4000
-
-
- other
-
- Erlöse 20 %
-
+
+ 4000
+
+
+ other
+
+ Erlöse 20 %
+
-
- 4010
-
-
- other
-
- Erlöse 10 %
-
-
-
-
- 4020
-
-
- other
-
- Erlöse aus im Inland stpfl. EG Lieferungen 10 % USt
-
+
+ 4010
+
+
+ other
+
+ Erlöse 10 %
+
+
+
+
+ 4020
+
+
+ other
+
+ Erlöse aus im Inland stpfl. EG Lieferungen 10 % USt
+
-
- 4021
-
-
- other
-
- Erlöse aus im Inland stpfl. EG Lieferungen 20 % USt
-
+
+ 4021
+
+
+ other
+
+ Erlöse aus im Inland stpfl. EG Lieferungen 20 % USt
+
-
- 4050
-
-
- other
-
- Erlöse 0 % Ausfuhrlieferungen/Drittländer
-
+
+ 4050
+
+
+ other
+
+ Erlöse 0 % Ausfuhrlieferungen/Drittländer
+
-
- 4100
-
-
- other
-
- Erlöse i.g. Lieferungen (stfr)
-
-
-
- 4400
-
-
- other
-
- 4400 bis 4490 Erlösschmälerungen
-
-
-
- 4500
-
-
- other
-
- 4500 bis 4570 Veränderungen des Bestandes an fertigen und unfertigen Erzeugn. sowie an noch nicht abrechenbaren Leistungen
-
-
-
- 4580
-
-
- other
-
- 4580 bis 4590 andere aktivierte Eigenleistungen
-
-
-
- 4600
-
-
- other
-
- 4600 bis 4620 Erlöse aus dem Abgang vom Anlagevermögen, ausgen. Finanzanlagen
-
-
-
- 4630
-
-
- other
-
- 4630 bis 4650 Erträge aus dem Abgang vom Anlagevermögen, ausgen. Finanzanlagen
-
-
-
- 4660
-
-
- other
-
- 4660 bis 4670 Erträge aus der Zuschreibung zum Anlagevermögen, ausgen. Finanzanlagen
-
-
-
- 4700
-
-
- other
-
- 4700 bis 4790 Erträge aus der Auflösung von Rückstellungen
-
-
-
- 4800
-
-
- other
-
- 4800 bis 4990 Übrige betriebliche Erträge
-
-
-
-
-
-
+
+ 4100
+
+
+ other
+
+ Erlöse i.g. Lieferungen (stfr)
+
+
+
+ 4400
+
+
+ other
+
+ 4400 bis 4490 Erlösschmälerungen
+
+
+
+ 4500
+
+
+ other
+
+ 4500 bis 4570 Veränderungen des Bestandes an fertigen und unfertigen Erzeugn. sowie an noch nicht abrechenbaren Leistungen
+
+
+
+ 4580
+
+
+ other
+
+ 4580 bis 4590 andere aktivierte Eigenleistungen
+
+
+
+ 4600
+
+
+ other
+
+ 4600 bis 4620 Erlöse aus dem Abgang vom Anlagevermögen, ausgen. Finanzanlagen
+
+
+
+ 4630
+
+
+ other
+
+ 4630 bis 4650 Erträge aus dem Abgang vom Anlagevermögen, ausgen. Finanzanlagen
+
+
+
+ 4660
+
+
+ other
+
+ 4660 bis 4670 Erträge aus der Zuschreibung zum Anlagevermögen, ausgen. Finanzanlagen
+
+
+
+ 4700
+
+
+ other
+
+ 4700 bis 4790 Erträge aus der Auflösung von Rückstellungen
+
+
+
+ 4800
+
+
+ other
+
+ 4800 bis 4990 Übrige betriebliche Erträge
+
+
+
+
+
+
-
- 50000
-
-
- view
-
- Summe Wareneinsatz
-
-
-
- 5000
-
-
- other
-
- Wareneinkauf 20 %
-
-
-
- 5001
-
-
- other
-
- Wareneinkauf 10 %
-
+
+ 50000
+
+
+ view
+
+ Summe Wareneinsatz
+
+
+
+ 5000
+
+
+ other
+
+ Wareneinkauf 20 %
+
+
+
+ 5001
+
+
+ other
+
+ Wareneinkauf 10 %
+
-
- 5010
-
-
- other
-
- Wareneinkauf igErwerb 10 % VSt/10 % USt
-
+
+ 5010
+
+
+ other
+
+ Wareneinkauf igErwerb 10 % VSt/10 % USt
+
-
- 5011
-
-
- other
-
- Wareneinkauf igErwerb 20 % VSt/20 % USt
-
+
+ 5011
+
+
+ other
+
+ Wareneinkauf igErwerb 20 % VSt/20 % USt
+
-
- 5020
-
-
- other
-
- Wareneinkauf igErwerb ohne Vorsteuerabzug und 10 % USt
-
+
+ 5020
+
+
+ other
+
+ Wareneinkauf igErwerb ohne Vorsteuerabzug und 10 % USt
+
-
- 5021
-
-
- other
-
- Wareneinkauf igErwerb ohne Vorsteuerabzug und 20 % USt
-
-
-
- 5100
-
-
- other
-
- 5100 bis 5190 Verbrauch an Rohstoffen
-
-
-
- 5200
-
-
- other
-
- 5200 bis 5290 Verbrauch von bezogenen Fertig- und Einzelteilen
-
-
-
- 5300
-
-
- other
-
- 5300 bis 5390 Verbrauch von Hilfsstoffen
-
-
-
- 5400
-
-
- other
-
- 5400 bis 5490 Verbrauch von Betriebsstoffen
-
-
-
- 5500
-
-
- other
-
- 5500 bis 5590 Verbrauch von Werkzeugen und anderen Erzeugungshilfsmittel
-
-
-
- 5600
-
-
- other
-
- 5600 bis 5690 Verbrauch von Brenn- und Treibstoffen, Energie und Wasser
-
-
-
- 5700
-
-
- other
-
- 5700 bis 5790 Sonstige bezogene Herstellungsleistungen
-
-
-
- 5800
-
-
- other
-
- Skontoerträge auf Materialaufwand
-
-
-
- 5810
-
-
- other
-
- Skontoerträge auf sonstige bezogene Herstellungsleistungen
-
-
-
- 5900
-
-
- other
-
- Aufwandsstellenrechnung
-
-
-
-
-
-
-
- 60000
-
-
- view
-
- Summe Personalaufwand
-
-
-
- 6000
-
-
- other
-
- 6000 bis 6190 Löhne
-
+
+ 5021
+
+
+ other
+
+ Wareneinkauf igErwerb ohne Vorsteuerabzug und 20 % USt
+
+
+
+ 5100
+
+
+ other
+
+ 5100 bis 5190 Verbrauch an Rohstoffen
+
+
+
+ 5200
+
+
+ other
+
+ 5200 bis 5290 Verbrauch von bezogenen Fertig- und Einzelteilen
+
+
+
+ 5300
+
+
+ other
+
+ 5300 bis 5390 Verbrauch von Hilfsstoffen
+
+
+
+ 5400
+
+
+ other
+
+ 5400 bis 5490 Verbrauch von Betriebsstoffen
+
+
+
+ 5500
+
+
+ other
+
+ 5500 bis 5590 Verbrauch von Werkzeugen und anderen Erzeugungshilfsmittel
+
+
+
+ 5600
+
+
+ other
+
+ 5600 bis 5690 Verbrauch von Brenn- und Treibstoffen, Energie und Wasser
+
+
+
+ 5700
+
+
+ other
+
+ 5700 bis 5790 Sonstige bezogene Herstellungsleistungen
+
+
+
+ 5800
+
+
+ other
+
+ Skontoerträge auf Materialaufwand
+
+
+
+ 5810
+
+
+ other
+
+ Skontoerträge auf sonstige bezogene Herstellungsleistungen
+
+
+
+ 5900
+
+
+ other
+
+ Aufwandsstellenrechnung
+
+
+
+
+
+
+
+ 60000
+
+
+ view
+
+ Summe Personalaufwand
+
+
+
+ 6000
+
+
+ other
+
+ 6000 bis 6190 Löhne
+
-
- 6200
-
-
- other
-
- 6200 bis 6390 Gehälter
-
-
-
- 6400
-
-
- other
-
- 6400 bis 6440 Aufwendungen für Abfertigungen
-
-
-
- 6450
-
-
- other
-
- 6450 bis 6490 Aufwendungen für Altersversorgung
-
-
-
- 6500
-
-
- other
-
- 6500 bis 6550 Gesetzlicher Sozialaufwand Arbeiter
-
-
-
- 6560
-
-
- other
-
- 6560 bis 6590 Gesetzlicher Sozialaufwand Angestellte
-
-
-
- 6600
-
-
- other
-
- 6600 bis 6650 Lohnabhängige Abgaben und Pflichtbeiträgte
-
-
-
- 6660
-
-
- other
-
- 6660 bis 6690 Gehaltsabhängige Abgaben und Pflichtbeiträgte
-
-
-
- 6700
-
-
- other
-
- 6700 bis 6890 Sonstige Sozialaufwendungen
-
-
-
- 6900
-
-
- other
-
- Aufwandsstellenrechnung
-
-
-
-
-
+
+ 6200
+
+
+ other
+
+ 6200 bis 6390 Gehälter
+
+
+
+ 6400
+
+
+ other
+
+ 6400 bis 6440 Aufwendungen für Abfertigungen
+
+
+
+ 6450
+
+
+ other
+
+ 6450 bis 6490 Aufwendungen für Altersversorgung
+
+
+
+ 6500
+
+
+ other
+
+ 6500 bis 6550 Gesetzlicher Sozialaufwand Arbeiter
+
+
+
+ 6560
+
+
+ other
+
+ 6560 bis 6590 Gesetzlicher Sozialaufwand Angestellte
+
+
+
+ 6600
+
+
+ other
+
+ 6600 bis 6650 Lohnabhängige Abgaben und Pflichtbeiträgte
+
+
+
+ 6660
+
+
+ other
+
+ 6660 bis 6690 Gehaltsabhängige Abgaben und Pflichtbeiträgte
+
+
+
+ 6700
+
+
+ other
+
+ 6700 bis 6890 Sonstige Sozialaufwendungen
+
+
+
+ 6900
+
+
+ other
+
+ Aufwandsstellenrechnung
+
+
+
+
+
-
- 70000
-
-
- view
-
- Summe Abschreibungen und Aufwendungen
-
-
-
- 7000
-
-
- other
-
- Abschreibungen auf aktivierte Aufwendungen für das Ingangs. u. Erweitern des Betriebes
-
+
+ 70000
+
+
+ view
+
+ Summe Abschreibungen und Aufwendungen
+
+
+
+ 7000
+
+
+ other
+
+ Abschreibungen auf aktivierte Aufwendungen für das Ingangs. u. Erweitern des Betriebes
+
-
- 7010
-
-
- other
-
- 7010 bis 7080 Abschreibungen auf das Anlagevermögen (ausgenommen Finanzanlagen)
-
-
-
- 7090
-
-
- other
-
- Abschreibungen vom Umlaufvermögen, soweit diese die im Unternehmen üblichen Abschreibungen übersteigen
-
-
-
- 7100
-
-
- other
-
- 7100 bis 7190 Sonstige Steuern
-
-
-
- 7200
-
-
- other
-
- 7200 bis 7290 Instandhaltung u. Reinigung durh Dritte, Entsorgung, Beleuchtung
-
-
-
- 7300
-
-
- other
-
- 7300 bis 7310 Transporte durch Dritte
-
-
-
- 7320
-
-
- other
-
- 7320 bis 7330 Kfz - Aufwand
-
-
-
- 7340
-
-
- other
-
- 7340 bis 7350 Reise- und Fahraufwand
-
-
-
- 7360
-
-
- other
-
- 7360 bis 7370 Tag- und Nächtigungsgelder
-
-
-
- 7380
-
-
- other
-
- 7380 bis 7390 Nachrichtenaufwand
-
-
-
- 7400
-
-
- other
-
- 7400 bis 7430 Miet- und Pachtaufwand
-
-
-
- 7440
-
-
- other
-
- 7440 bis 7470 Leasingaufwand
-
-
-
- 7480
-
-
- other
-
- 7480 bis 7490 Lizenzaufwand
-
-
-
- 7500
-
-
- other
-
- 7500 bis 7530 Aufwand für beigestelltes Personal
-
-
-
- 7540
-
-
- other
-
- 7540 bis 7570 Provisionen an Dritte
-
-
-
- 7580
-
-
- other
-
- 7580 bis 7590 Aufsichtsratsvergütungen
-
-
-
- 7600
-
-
- other
-
- Büromaterial und Drucksorten
-
-
-
- 7610
-
-
- other
-
- 7610 bis 7620 Druckerzeugnisse und Vervielfältigungen
-
-
-
- 7630
-
-
- other
-
- Fachliteratur und Zeitungen
-
-
-
- 7650
-
-
- other
-
- 7650 bis 7680 Werbung und Repräsentationen
-
-
-
- 7690
-
-
- other
-
- Spenden und Trinkgelder
-
-
-
- 7700
-
-
- other
-
- 7700 bis 7740 Versicherungen
-
-
-
- 7750
-
-
- other
-
- 7750 bis 7760 Beratungs- und Prüfungsaufwand
-
-
-
- 7770
-
-
- other
-
- Aus- und Fortbildung
-
-
-
- 7780
-
-
- other
-
- Mitgliedsbeiträge
-
-
-
- 7790
-
-
- other
-
- Spesen des Geldverkehrs
-
-
-
- 7800
-
-
- other
-
- 7800 bis 7810 Schadensfälle
-
-
-
- 7820
-
-
- other
-
- Buchwert abgegangener Anlagen, ausgenommen Finanzanlagen
-
-
-
- 7830
-
-
- other
-
- Verluste aus dem Abgang vom Anlagevermögen, ausgenommen Finanzanlagen
-
-
-
- 7840
-
-
- other
-
- 7840 bis 7880 Verschiedene betriebliche Aufwendungen
-
-
-
- 7890
-
-
- other
-
- Skontoerträge auf sonstige betriebliche Aufwendungen
-
-
-
- 7900
-
-
- other
-
- Aufwandsstellenrechnung
-
-
-
- 7910
-
-
- other
-
- 7910 bis 7950 Aufwandsstellenrechung der Hersteller
-
-
-
- 7960
-
-
- other
-
- Herstellungskosten der zur Erzielung der Umsatzerlöse erbrachten Leistungen
-
-
-
- 7970
-
-
- other
-
- Vertriebskosten
-
-
-
- 7980
-
-
- other
-
- Verwaltungskosten
-
-
-
- 7990
-
-
- other
-
- Sonstige betrieblichen Aufwendungen
-
-
-
-
-
+
+ 7010
+
+
+ other
+
+ 7010 bis 7080 Abschreibungen auf das Anlagevermögen (ausgenommen Finanzanlagen)
+
+
+
+ 7090
+
+
+ other
+
+ Abschreibungen vom Umlaufvermögen, soweit diese die im Unternehmen üblichen Abschreibungen übersteigen
+
+
+
+ 7100
+
+
+ other
+
+ 7100 bis 7190 Sonstige Steuern
+
+
+
+ 7200
+
+
+ other
+
+ 7200 bis 7290 Instandhaltung u. Reinigung durh Dritte, Entsorgung, Beleuchtung
+
+
+
+ 7300
+
+
+ other
+
+ 7300 bis 7310 Transporte durch Dritte
+
+
+
+ 7320
+
+
+ other
+
+ 7320 bis 7330 Kfz - Aufwand
+
+
+
+ 7340
+
+
+ other
+
+ 7340 bis 7350 Reise- und Fahraufwand
+
+
+
+ 7360
+
+
+ other
+
+ 7360 bis 7370 Tag- und Nächtigungsgelder
+
+
+
+ 7380
+
+
+ other
+
+ 7380 bis 7390 Nachrichtenaufwand
+
+
+
+ 7400
+
+
+ other
+
+ 7400 bis 7430 Miet- und Pachtaufwand
+
+
+
+ 7440
+
+
+ other
+
+ 7440 bis 7470 Leasingaufwand
+
+
+
+ 7480
+
+
+ other
+
+ 7480 bis 7490 Lizenzaufwand
+
+
+
+ 7500
+
+
+ other
+
+ 7500 bis 7530 Aufwand für beigestelltes Personal
+
+
+
+ 7540
+
+
+ other
+
+ 7540 bis 7570 Provisionen an Dritte
+
+
+
+ 7580
+
+
+ other
+
+ 7580 bis 7590 Aufsichtsratsvergütungen
+
+
+
+ 7600
+
+
+ other
+
+ Büromaterial und Drucksorten
+
+
+
+ 7610
+
+
+ other
+
+ 7610 bis 7620 Druckerzeugnisse und Vervielfältigungen
+
+
+
+ 7630
+
+
+ other
+
+ Fachliteratur und Zeitungen
+
+
+
+ 7650
+
+
+ other
+
+ 7650 bis 7680 Werbung und Repräsentationen
+
+
+
+ 7690
+
+
+ other
+
+ Spenden und Trinkgelder
+
+
+
+ 7700
+
+
+ other
+
+ 7700 bis 7740 Versicherungen
+
+
+
+ 7750
+
+
+ other
+
+ 7750 bis 7760 Beratungs- und Prüfungsaufwand
+
+
+
+ 7770
+
+
+ other
+
+ Aus- und Fortbildung
+
+
+
+ 7780
+
+
+ other
+
+ Mitgliedsbeiträge
+
+
+
+ 7790
+
+
+ other
+
+ Spesen des Geldverkehrs
+
+
+
+ 7800
+
+
+ other
+
+ 7800 bis 7810 Schadensfälle
+
+
+
+ 7820
+
+
+ other
+
+ Buchwert abgegangener Anlagen, ausgenommen Finanzanlagen
+
+
+
+ 7830
+
+
+ other
+
+ Verluste aus dem Abgang vom Anlagevermögen, ausgenommen Finanzanlagen
+
+
+
+ 7840
+
+
+ other
+
+ 7840 bis 7880 Verschiedene betriebliche Aufwendungen
+
+
+
+ 7890
+
+
+ other
+
+ Skontoerträge auf sonstige betriebliche Aufwendungen
+
+
+
+ 7900
+
+
+ other
+
+ Aufwandsstellenrechnung
+
+
+
+ 7910
+
+
+ other
+
+ 7910 bis 7950 Aufwandsstellenrechung der Hersteller
+
+
+
+ 7960
+
+
+ other
+
+ Herstellungskosten der zur Erzielung der Umsatzerlöse erbrachten Leistungen
+
+
+
+ 7970
+
+
+ other
+
+ Vertriebskosten
+
+
+
+ 7980
+
+
+ other
+
+ Verwaltungskosten
+
+
+
+ 7990
+
+
+ other
+
+ Sonstige betrieblichen Aufwendungen
+
+
+
+
+
-
- 80000
-
-
- view
-
- Summe Finanzerträge und Aufwendungen
-
-
-
- 8000
-
-
- other
-
- 8000 bis 8040 Erträge aus Beteiligungen
-
+
+ 80000
+
+
+ view
+
+ Summe Finanzerträge und Aufwendungen
+
+
+
+ 8000
+
+
+ other
+
+ 8000 bis 8040 Erträge aus Beteiligungen
+
-
- 8050
-
-
- other
-
- 8050 bis 8090 Erträge aus anderen Wertpapieren und Ausleihungen des Finanzanlagevermögens
-
+
+ 8050
+
+
+ other
+
+ 8050 bis 8090 Erträge aus anderen Wertpapieren und Ausleihungen des Finanzanlagevermögens
+
-
- 8100
-
-
- other
-
- 8100 bis 8130 Sonstige Zinsen und ähnliche Erträge
-
+
+ 8100
+
+
+ other
+
+ 8100 bis 8130 Sonstige Zinsen und ähnliche Erträge
+
-
- 8140
-
-
- other
-
- Erlöse aus dem Abgang von Beteiligungen
-
+
+ 8140
+
+
+ other
+
+ Erlöse aus dem Abgang von Beteiligungen
+
-
- 8150
-
-
- other
-
- Erlöse aus dem Abgang von sonstigen Finanzanlagen
-
+
+ 8150
+
+
+ other
+
+ Erlöse aus dem Abgang von sonstigen Finanzanlagen
+
-
- 8160
-
-
- other
-
- Erlöse aus dem Abgang von Wertpapieren des Umlaufvermögens
-
+
+ 8160
+
+
+ other
+
+ Erlöse aus dem Abgang von Wertpapieren des Umlaufvermögens
+
-
- 8170
-
-
- other
-
- Buchwert abgegangener Beteiligungen
-
+
+ 8170
+
+
+ other
+
+ Buchwert abgegangener Beteiligungen
+
-
- 8180
-
-
- other
-
- Buchwert abgegangener sonstiger Finanzanlagen
-
+
+ 8180
+
+
+ other
+
+ Buchwert abgegangener sonstiger Finanzanlagen
+
-
- 8190
-
-
- other
-
- Buchwert abgegangener Wertpapiere des Umlaufvermögens
-
-
-
- 8200
-
-
- other
-
- Erträge aus dem Abgang von und der Zuschreibung zu Finanzanlagen
-
-
-
- 8210
-
-
- other
-
- Erträge aus dem Abgang von und der Zuschreibung zu Wertpapieren des Umlaufvermögens
-
+
+ 8190
+
+
+ other
+
+ Buchwert abgegangener Wertpapiere des Umlaufvermögens
+
+
+
+ 8200
+
+
+ other
+
+ Erträge aus dem Abgang von und der Zuschreibung zu Finanzanlagen
+
+
+
+ 8210
+
+
+ other
+
+ Erträge aus dem Abgang von und der Zuschreibung zu Wertpapieren des Umlaufvermögens
+
-
- 8220
-
-
- other
-
- 8220 bis 8250 Aufwendungen aus Beteiligungen
-
+
+ 8220
+
+
+ other
+
+ 8220 bis 8250 Aufwendungen aus Beteiligungen
+
-
- 8260
-
-
- other
-
- 8260 bis 8270 Aufwendungen aus sonst. Fiananzanlagen und aus Wertpapieren des Umlaufvermögens
-
+
+ 8260
+
+
+ other
+
+ 8260 bis 8270 Aufwendungen aus sonst. Fiananzanlagen und aus Wertpapieren des Umlaufvermögens
+
-
- 8280
-
-
- other
-
- 8280 bis 8340 Zinsen und ähnliche Aufwendungem
-
+
+ 8280
+
+
+ other
+
+ 8280 bis 8340 Zinsen und ähnliche Aufwendungem
+
-
- 8350
-
-
- other
-
- nicht ausgenutzte Lieferantenskonti
-
-
-
- 8400
-
-
- other
-
- 8400 bis 8440 Außerordentliche Erträge
-
-
-
- 8450
-
-
- other
-
- 8450 bis 8490 Außerordentliche Aufwendungen
-
-
-
- 8500
-
-
- other
-
- 8500 bis 8590 Steuern vom Einkommen und vom Ertrag
-
-
-
- 8600
-
-
- other
-
- 8600 bis 8690 Auflösung unversteuerten Rücklagen
-
-
-
- 8700
-
-
- other
-
- 8700 bis 8740 Auflösung von Kapitalrücklagen
-
-
-
- 8750
-
-
- other
-
- 8750 bis 8790 Auflösung von Gewinnrücklagen
-
-
-
- 8800
-
-
- other
-
- 8800 bis 8890 Zuweisung von unversteuerten Rücklagen
-
-
-
- 8990
-
-
- other
-
- Gewinabfuhr bzw. Verlustüberrechnung aus Ergebnisabführungsverträgen
-
+
+ 8350
+
+
+ other
+
+ nicht ausgenutzte Lieferantenskonti
+
+
+
+ 8400
+
+
+ other
+
+ 8400 bis 8440 Außerordentliche Erträge
+
+
+
+ 8450
+
+
+ other
+
+ 8450 bis 8490 Außerordentliche Aufwendungen
+
+
+
+ 8500
+
+
+ other
+
+ 8500 bis 8590 Steuern vom Einkommen und vom Ertrag
+
+
+
+ 8600
+
+
+ other
+
+ 8600 bis 8690 Auflösung unversteuerten Rücklagen
+
+
+
+ 8700
+
+
+ other
+
+ 8700 bis 8740 Auflösung von Kapitalrücklagen
+
+
+
+ 8750
+
+
+ other
+
+ 8750 bis 8790 Auflösung von Gewinnrücklagen
+
+
+
+ 8800
+
+
+ other
+
+ 8800 bis 8890 Zuweisung von unversteuerten Rücklagen
+
+
+
+ 8990
+
+
+ other
+
+ Gewinabfuhr bzw. Verlustüberrechnung aus Ergebnisabführungsverträgen
+
-
-
-
+
+
+
-
- 90000
-
-
- view
-
- Summe Eigenkapital Rücklagen Abschlusskonten
-
-
-
- 9000
-
-
- other
-
- 9000 bis 9180 Gezeichnetes bzw. gewidmetes Kapital
-
-
-
- 9190
-
-
- other
-
- nicht eingeforderte ausstehende Einlagen
-
-
-
- 9200
-
-
- other
-
- 9200 bis 9290 Kapitalrücklagen
-
-
-
- 9300
-
-
- other
-
- 9300 bis 9380 Gewinnrücklagen
-
-
-
- 9390
-
-
- other
-
- Bilanzgewinn (-verlust )
-
-
-
- 9400
-
-
- other
-
- 9400 bis 9590 Bewertungsreserven uns sonst. unversteuerte Rücklagen
-
-
-
- 9600
-
-
- other
-
- 9600 bis 9690 Privat und Verrechnungskonten bei Einzelunternehmen und Personengesellschaften
-
-
-
- 9700
-
-
- other
-
- 9700 bis 9790 Einlagen stiller Gesellschafter
-
-
-
- 9800
-
-
- other
-
- Eröffnungsbilanz
-
-
-
- 9850
-
-
- other
-
- Schlussbilanz
-
-
-
- 9890
-
-
- other
-
- Gewinn- und Verlustrechnung
-
-
-
- 9900
-
-
- other
-
- 9900 bis 9999 Evidenzkonten
-
-
-
-
+
+ 90000
+
+
+ view
+
+ Summe Eigenkapital Rücklagen Abschlusskonten
+
+
+
+ 9000
+
+
+ other
+
+ 9000 bis 9180 Gezeichnetes bzw. gewidmetes Kapital
+
+
+
+ 9190
+
+
+ other
+
+ nicht eingeforderte ausstehende Einlagen
+
+
+
+ 9200
+
+
+ other
+
+ 9200 bis 9290 Kapitalrücklagen
+
+
+
+ 9300
+
+
+ other
+
+ 9300 bis 9380 Gewinnrücklagen
+
+
+
+ 9390
+
+
+ other
+
+ Bilanzgewinn (-verlust )
+
+
+
+ 9400
+
+
+ other
+
+ 9400 bis 9590 Bewertungsreserven uns sonst. unversteuerte Rücklagen
+
+
+
+ 9600
+
+
+ other
+
+ 9600 bis 9690 Privat und Verrechnungskonten bei Einzelunternehmen und Personengesellschaften
+
+
+
+ 9700
+
+
+ other
+
+ 9700 bis 9790 Einlagen stiller Gesellschafter
+
+
+
+ 9800
+
+
+ other
+
+ Eröffnungsbilanz
+
+
+
+ 9850
+
+
+ other
+
+ Schlussbilanz
+
+
+
+ 9890
+
+
+ other
+
+ Gewinn- und Verlustrechnung
+
+
+
+ 9900
+
+
+ other
+
+ 9900 bis 9999 Evidenzkonten
+
+
+
+
-
-
-
-
- Austria - Chart of Accounts
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ Austria - Chart of Accounts
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/l10n_at/account_tax.xml b/addons/l10n_at/account_tax.xml
index 8a9509c8c65..7195486cc79 100644
--- a/addons/l10n_at/account_tax.xml
+++ b/addons/l10n_at/account_tax.xml
@@ -1,464 +1,464 @@
-
-
-
+
+
+
-
-
- Mehrwertsteuer 20%
- 20% MwSt
- 0.200000
- percent
-
-
-
-
-
-
- sale
-
-
-
-
- Mehrwertsteuer 10%
- 10% MwSt
- 0.100000
- percent
-
-
-
-
-
-
- sale
-
-
-
-
- Vorsteuer 20%
- 20% VSt
- 0.200000
- percent
-
-
-
-
-
-
- purchase
-
-
-
-
- Vorsteuer 10%
- 10% VSt
- 0.100000
- percent
-
-
-
-
-
-
- purchase
-
-
-
-
- 20% Einfuhrumsatzsteuer
- 20% EUSt
- percent
- 0.20
-
-
- -1
-
- -1
-
-
- 1
-
- 1
- purchase
-
-
-
-
- 10% Einfuhrumsatzsteuer
- 10% EUSt
- percent
- 0.10
-
-
- -1
-
- -1
-
-
- 1
-
- 1
- purchase
-
+
+
+ Mehrwertsteuer 20%
+ 20% MwSt
+ 0.200000
+ percent
+
+
+
+
+
+
+ sale
+
+
+
+
+ Mehrwertsteuer 10%
+ 10% MwSt
+ 0.100000
+ percent
+
+
+
+
+
+
+ sale
+
+
+
+
+ Vorsteuer 20%
+ 20% VSt
+ 0.200000
+ percent
+
+
+
+
+
+
+ purchase
+
+
+
+
+ Vorsteuer 10%
+ 10% VSt
+ 0.100000
+ percent
+
+
+
+
+
+
+ purchase
+
+
+
+
+ 20% Einfuhrumsatzsteuer
+ 20% EUSt
+ percent
+ 0.20
+
+
+ -1
+
+ -1
+
+
+ 1
+
+ 1
+ purchase
+
+
+
+
+ 10% Einfuhrumsatzsteuer
+ 10% EUSt
+ percent
+ 0.10
+
+
+ -1
+
+ -1
+
+
+ 1
+
+ 1
+ purchase
+
-
-
- Innergem. Erwerb 20%USt/20%VSt
- innergem. Erwerb 20%
- percent
- 1
- purchase
-
-
-
-
-
- 20% Umsatzsteuer aus innergem. Erwerb
- 20% USt
- percent
- -0.20
-
-
- -1
-
- -1
-
-
- 1
-
- 1
-
- purchase
-
-
-
-
- 20% Vorsteuer aus innergem. Erwerb
- 20% VSt
- percent
- 0.20
-
- -1
-
- -1
-
- 1
-
- 1
-
- purchase
-
+
+
+ Innergem. Erwerb 20%USt/20%VSt
+ innergem. Erwerb 20%
+ percent
+ 1
+ purchase
+
+
+
+
+
+ 20% Umsatzsteuer aus innergem. Erwerb
+ 20% USt
+ percent
+ -0.20
+
+
+ -1
+
+ -1
+
+
+ 1
+
+ 1
+
+ purchase
+
+
+
+
+ 20% Vorsteuer aus innergem. Erwerb
+ 20% VSt
+ percent
+ 0.20
+
+ -1
+
+ -1
+
+ 1
+
+ 1
+
+ purchase
+
-
-
- Innergem. Erwerb 10%USt/10%VSt
- innergem. Erwerb 10%
- percent
- 1
- purchase
-
-
-
-
-
- 10% Umsatzsteuer aus innergem. Erwerb
- 10% USt
- percent
- -0.10
-
-
- -1
-
- -1
-
-
- 1
-
- 1
-
- purchase
-
-
-
-
- 10% Vorsteuer aus innergem. Erwerb
- 10% VSt
- percent
- 0.10
-
- -1
-
- -1
-
- 1
-
- 1
-
- purchase
-
-
-
-
- 20% Umsatzsteuer EU Lieferung
- 20% USt EU
- percent
- 0.20
-
-
- 1
-
- 1
-
-
- -1
-
- -1
- sale
-
+
+
+ Innergem. Erwerb 10%USt/10%VSt
+ innergem. Erwerb 10%
+ percent
+ 1
+ purchase
+
+
+
+
+
+ 10% Umsatzsteuer aus innergem. Erwerb
+ 10% USt
+ percent
+ -0.10
+
+
+ -1
+
+ -1
+
+
+ 1
+
+ 1
+
+ purchase
+
+
+
+
+ 10% Vorsteuer aus innergem. Erwerb
+ 10% VSt
+ percent
+ 0.10
+
+ -1
+
+ -1
+
+ 1
+
+ 1
+
+ purchase
+
+
+
+
+ 20% Umsatzsteuer EU Lieferung
+ 20% USt EU
+ percent
+ 0.20
+
+
+ 1
+
+ 1
+
+
+ -1
+
+ -1
+ sale
+
-
-
- 10% Umsatzsteuer EU Lieferung
- 10% USt EU
- percent
- 0.10
-
-
- 1
-
- 1
-
-
- -1
-
- -1
- sale
-
-
-
-
- Steuerfreie innergem. Lieferung
- strf. i.g.L
- percent
- 0
-
-
- 1
- 1
-
-
- -1
- -1
- sale
-
-
-
- Steuerfreie Ausfuhr
- steuerfreie Ausfuhr
- percent
- 0
-
-
- 1
- 1
-
-
- -1
- -1
- sale
-
-
-
-
-
-
-
- Lieferant EU (ohne Ust-ID)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ 10% Umsatzsteuer EU Lieferung
+ 10% USt EU
+ percent
+ 0.10
+
+
+ 1
+
+ 1
+
+
+ -1
+
+ -1
+ sale
+
+
+
+
+ Steuerfreie innergem. Lieferung
+ strf. i.g.L
+ percent
+ 0
+
+
+ 1
+ 1
+
+
+ -1
+ -1
+ sale
+
+
+
+ Steuerfreie Ausfuhr
+ steuerfreie Ausfuhr
+ percent
+ 0
+
+
+ 1
+ 1
+
+
+ -1
+ -1
+ sale
+
+
+
+
+
+
+
+ Lieferant EU (ohne Ust-ID)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
- Lieferant EU Unternehmen (mit USt-ID)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Lieferant EU Unternehmen (mit USt-ID)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
- Lieferant Ausland
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Lieferant Ausland
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
-
-
- Kunde EU (ohne USt-ID)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ Kunde EU (ohne USt-ID)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
- Kunde EU Unternehmen (mit USt-ID)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+ Kunde EU Unternehmen (mit USt-ID)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
-
-
- Kunde Ausland
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ Kunde Ausland
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
diff --git a/addons/l10n_at/account_tax_code.xml b/addons/l10n_at/account_tax_code.xml
index 0af2038a9e2..6e4e861be5e 100644
--- a/addons/l10n_at/account_tax_code.xml
+++ b/addons/l10n_at/account_tax_code.xml
@@ -1,207 +1,207 @@
-
+
-
- Steuern AT
-
+
+ Steuern AT
+
-
- Bemessungsgrundlage
-
-
-
-
- Vorsteuer (dient lediglich der Verprobung)
-
-
-
-
- Einfuhren
-
-
-
-
- Einfuhren zum Steuersatz von 10 %
-
-
-
- Einfuhren zum Steuersatz von 20 %
-
-
-
-
-
-
- Abziehbare Vorsteuerbeträge
- VST
-
-
- Entrichtete Einfuhrumsatzsteuer
-
-
-
- Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb
-
-
+
+ Bemessungsgrundlage
+
+
+
+
+ Vorsteuer (dient lediglich der Verprobung)
+
+
+
+
+ Einfuhren
+
+
+
+
+ Einfuhren zum Steuersatz von 10 %
+
+
+
+ Einfuhren zum Steuersatz von 20 %
+
+
+
+
+
+
+ Abziehbare Vorsteuerbeträge
+ VST
+
+
+ Entrichtete Einfuhrumsatzsteuer
+
+
+
+ Vorsteuerbeträge aus dem innergemeinschaftlichen Erwerb
+
+
-
-
- UST Vorauszahlung / Überschuss - bitte dem Betrag ein Minuszeichen voranstellen
-
- 095
-
-
+
+
+ UST Vorauszahlung / Überschuss - bitte dem Betrag ein Minuszeichen voranstellen
+
+ 095
+
+
-
- Steuern
- ST
-
-
-
- Steuern
- BMG
-
-
+
+ Steuern
+ ST
+
+
+
+ Steuern
+ BMG
+
+
-
- Lieferungen, sonstige Leistungen und Eigenverbrauch
-
-
-
- Lieferungen, sonstige Leistungen und Eigenverbrauch
-
- 000
-
-
-
- Steuerpflichtige Umsätze (Lieferungen, sonstige Leistungen und Eigenverbrauch)
-
-
-
- Steuerpflichtige Umsätze (Lieferungen, sonstige Leistungen und Eigenverbrauch)
-
-
+
+ Lieferungen, sonstige Leistungen und Eigenverbrauch
+
+
+
+ Lieferungen, sonstige Leistungen und Eigenverbrauch
+
+ 000
+
+
+
+ Steuerpflichtige Umsätze (Lieferungen, sonstige Leistungen und Eigenverbrauch)
+
+
+
+ Steuerpflichtige Umsätze (Lieferungen, sonstige Leistungen und Eigenverbrauch)
+
+
-
- zum Steuersatz von 20 %
-
- 022 UST
-
-
- zum Steuersatz von 20 %
-
- 022 BMG
-
+
+ zum Steuersatz von 20 %
+
+ 022 UST
+
+
+ zum Steuersatz von 20 %
+
+ 022 BMG
+
-
- zum Steuersatz von 10%
-
- 029 UST
-
-
- zum Steuersatz von 10%
-
- 029 BMG
-
+
+ zum Steuersatz von 10%
+
+ 029 UST
+
+
+ zum Steuersatz von 10%
+
+ 029 BMG
+
-
-
-
- Innergemeinschaftliche Erwerbe
-
-
-
- Innergemeinschaftliche Erwerbe
-
- 070 BMG
-
-
-
- Steuerpflichtige innergemeinschaftliche Erwerbe
-
-
-
- Steuerpflichtige innergemeinschaftliche Erwerbe
-
-
-
-
- zum Steuersatz von 20 %
-
- 072 UST
-
-
- zum Steuersatz von 20 %
-
- 072 BMG
-
+
+
+
+ Innergemeinschaftliche Erwerbe
+
+
+
+ Innergemeinschaftliche Erwerbe
+
+ 070 BMG
+
+
+
+ Steuerpflichtige innergemeinschaftliche Erwerbe
+
+
+
+ Steuerpflichtige innergemeinschaftliche Erwerbe
+
+
+
+
+ zum Steuersatz von 20 %
+
+ 072 UST
+
+
+ zum Steuersatz von 20 %
+
+ 072 BMG
+
-
- zum Steuersatz von 10%
-
- 073 UST
-
-
- zum Steuersatz von 10%
-
- 073 BMG
-
-
-
-
-
-
- Rechnungen von anderen Unternehmern und innergemeinschaftliche Dreiecksgeschäfte
-
-
-
-
- zum Steuersatz von 10 %
-
-
-
- zum Steuersatz von 20 %
-
-
+
+ zum Steuersatz von 10%
+
+ 073 UST
+
+
+ zum Steuersatz von 10%
+
+ 073 BMG
+
+
+
+
+
+
+ Rechnungen von anderen Unternehmern und innergemeinschaftliche Dreiecksgeschäfte
+
+
+
+
+ zum Steuersatz von 10 %
+
+
+
+ zum Steuersatz von 20 %
+
+
-
- 20% Vorsteuerbeträge aus Rechnungen von anderen Unternehmern, aus Leistungen und aus innergemeinschaftlichen Dreiecksgeschäften
-
-
-
-
- 10% Vorsteuerbeträge aus Rechnungen von anderen Unternehmern, aus Leistungen und aus innergemeinschaftlichen Dreiecksgeschäften
-
-
+
+ 20% Vorsteuerbeträge aus Rechnungen von anderen Unternehmern, aus Leistungen und aus innergemeinschaftlichen Dreiecksgeschäften
+
+
+
+
+ 10% Vorsteuerbeträge aus Rechnungen von anderen Unternehmern, aus Leistungen und aus innergemeinschaftlichen Dreiecksgeschäften
+
+
-
-
- Lieferungen und sonstige Leistungen (einschließlich unentgeltlicher Wertabgaben)
-
-
-
-
- Steuerfreie Umsätze mit Vorsteuerabzug
-
-
-
-
- § 6 Abs. 1 Z 1 iVm § 7 (Ausfuhrlieferungen)
-
- 011
-
-
- Art. 6 Abs. 1 (Innergemeinschaftliche Lieferungen)
-
- 017
-
-
-
- Vorsteuer aus innergemeinschaftlichem Erwerb
-
- 065
-
+
+
+ Lieferungen und sonstige Leistungen (einschließlich unentgeltlicher Wertabgaben)
+
+
+
+
+ Steuerfreie Umsätze mit Vorsteuerabzug
+
+
+
+
+ § 6 Abs. 1 Z 1 iVm § 7 (Ausfuhrlieferungen)
+
+ 011
+
+
+ Art. 6 Abs. 1 (Innergemeinschaftliche Lieferungen)
+
+ 017
+
+
+
+ Vorsteuer aus innergemeinschaftlichem Erwerb
+
+ 065
+
-
+
diff --git a/addons/l10n_at/l10n_chart_at_wizard.xml b/addons/l10n_at/l10n_chart_at_wizard.xml
index f65a4d6d2df..b23d9be6cb5 100644
--- a/addons/l10n_at/l10n_chart_at_wizard.xml
+++ b/addons/l10n_at/l10n_chart_at_wizard.xml
@@ -1,12 +1,12 @@
-
- Generate Chart of Accounts from a Chart Template
- Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
- This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
-
- automatic
+
+ Generate Chart of Accounts from a Chart Template
+ Generate Chart of Accounts from a Chart Template. You will be asked to pass the name of the company, the chart template to follow, the no. of digits to generate the code for your accounts and Bank account, currency to create Journals. Thus,the pure copy of chart Template is generated.
+ This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.
+
+ automatic
diff --git a/addons/l10n_be/account_pcmn_belgium.xml b/addons/l10n_be/account_pcmn_belgium.xml
index bcb5479c2c5..0d7c275e621 100644
--- a/addons/l10n_be/account_pcmn_belgium.xml
+++ b/addons/l10n_be/account_pcmn_belgium.xml
@@ -1254,7 +1254,7 @@
- Sur bâtiments industriels
+ Sur bâtiments industriels22280other
diff --git a/addons/l10n_be/l10n_be_sequence.xml b/addons/l10n_be/l10n_be_sequence.xml
index 5c6d66d6a2c..1c11d5b48af 100644
--- a/addons/l10n_be/l10n_be_sequence.xml
+++ b/addons/l10n_be/l10n_be_sequence.xml
@@ -1,20 +1,20 @@
-
+
-
- Declarantnum
- declarantnum
-
-
- Declarantnum
- declarantnum
- 5
-
+
+ Declarantnum
+ declarantnum
+
+
+ Declarantnum
+ declarantnum
+ 5
+
-
+
diff --git a/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml b/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml
index 9b3a48725b9..357dc78c9d7 100644
--- a/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml
+++ b/addons/l10n_be/wizard/l10n_be_account_vat_declaration_view.xml
@@ -9,8 +9,9 @@
-
-
+
+ or
+
diff --git a/addons/mail/__init__.py b/addons/mail/__init__.py
index d9835f86fc5..805c27386f3 100644
--- a/addons/mail/__init__.py
+++ b/addons/mail/__init__.py
@@ -23,6 +23,7 @@ import mail_message
import mail_thread
import mail_group
import mail_subscription
+import ir_needaction
import res_users
import res_partner
import report
diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py
index 95ce7d5619d..f501cc58d2c 100644
--- a/addons/mail/__openerp__.py
+++ b/addons/mail/__openerp__.py
@@ -86,6 +86,7 @@ The main features are:
'static/src/css/mail_group.css',
],
'js': [
+ 'static/lib/jquery.expander/jquery.expander.js',
'static/src/js/mail.js',
],
'qweb': [
diff --git a/addons/mail/doc/index.rst.inc b/addons/mail/doc/index.rst.inc
index 822d855d5b4..c4b87cc18f9 100644
--- a/addons/mail/doc/index.rst.inc
+++ b/addons/mail/doc/index.rst.inc
@@ -10,3 +10,4 @@ Mail Module documentation topics
mail_openchatter_howto
mail_needaction_howto
mail_partner
+ mail_state
diff --git a/addons/mail/doc/mail_openchatter_howto.rst b/addons/mail/doc/mail_openchatter_howto.rst
index 7ca52348d99..4c8797e7f8b 100644
--- a/addons/mail/doc/mail_openchatter_howto.rst
+++ b/addons/mail/doc/mail_openchatter_howto.rst
@@ -38,7 +38,7 @@ Make your module inheriting from the ``mail.thread`` class.
# inherit from mail.thread allows the use of OpenChatter
_inherit = ['mail.thread']
-Use the thread viewer widget inside your form view by using the ThreadView widget on the message_ids field inherited from mail.thread.
+Use the thread viewer widget inside your form view by using the mail_thread widget on the message_ids field inherited from mail.thread.
::
@@ -50,7 +50,7 @@ Use the thread viewer widget inside your form view by using the ThreadView widge
[...]
-
+
@@ -131,7 +131,7 @@ The drawback of this method is that it is no longer possible to those subscriber
Messages display management
++++++++++++++++++++++++++++
-By default, the ThreadView widget shows all messages related to the current document beside the document, in the History and comments section. However, you may want to display other messages in the widget. For example, the OpenChatter on res.users model shows
+By default, the mail_thread widget shows all messages related to the current document beside the document, in the History and comments section. However, you may want to display other messages in the widget. For example, the OpenChatter on res.users model shows
- messages related to the user, as usual (messages with ``model = res.users, res_id = current_document_id``)
- messages directly pushed to this user (containing @login)
diff --git a/addons/mail/doc/mail_state.rst b/addons/mail/doc/mail_state.rst
new file mode 100644
index 00000000000..527a31ba835
--- /dev/null
+++ b/addons/mail/doc/mail_state.rst
@@ -0,0 +1,28 @@
+.. _mail_state:
+
+message_state
+=============
+
+``message_state`` is a boolean field that states whether the document
+has unread messages. In previous versions, some documents were going
+back to ``pending`` state when receiving an email through the mail
+gateway. Now the state related to messages differs from the state or
+stage of the document itself.
+
+message_state and need action mechanism
++++++++++++++++++++++++++++++++++++++++
+
+The ``mail`` module introduces a default behavior for the need_action
+mechanism [REF].
+
+::
+
+ def get_needaction_user_ids(self, cr, uid, ids, context=None):
+ """ Returns the user_ids that have to perform an action
+ :return: dict { record_id: [user_ids], }
+ """
+ result = super(ir_needaction_mixin, self).get_needaction_user_ids(cr, uid, ids, context=context)
+ for obj in self.browse(cr, uid, ids, context=context):
+ if obj.message_state == False and obj.user_id:
+ result[obj.id].append(obj.user_id.id)
+ return result
diff --git a/addons/mail/ir_needaction.py b/addons/mail/ir_needaction.py
new file mode 100644
index 00000000000..8193ac4f385
--- /dev/null
+++ b/addons/mail/ir_needaction.py
@@ -0,0 +1,46 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2012-today OpenERP SA ()
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see
+#
+##############################################################################
+
+from osv import osv
+
+class ir_needaction_mixin(osv.Model):
+ """ Update of ir.needaction_mixin class
+ - override the get_needaction_user_ids method to define the default
+ mail gateway need_action: when the object is unread, the object
+ responsible has an action to perform.
+ """
+ _name = 'ir.needaction_mixin'
+ _inherit = ['ir.needaction_mixin']
+
+ def get_needaction_user_ids(self, cr, uid, ids, context=None):
+ """ Returns the user_ids that have to perform an action. It the
+ document mail state is unread (False), return object.user_id.id
+ as need_action uid.
+ :return: dict { record_id: [user_ids], }
+ """
+ result = super(ir_needaction_mixin, self).get_needaction_user_ids(cr, uid, ids, context=context)
+ for obj in self.browse(cr, uid, ids, context=context):
+ if obj.message_state == False and obj.user_id:
+ result[obj.id].append(obj.user_id.id)
+ return result
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py
index 0a8677d7862..f691d75e0bc 100644
--- a/addons/mail/mail_group.py
+++ b/addons/mail/mail_group.py
@@ -87,7 +87,7 @@ class mail_group(osv.osv):
result = dict.fromkeys(ids)
for id in ids:
result[id] = {}
- result[id]['member_ids'] = self.message_get_subscribers_ids(cr, uid, [id], context=context)
+ result[id]['member_ids'] = self.message_get_subscribers(cr, uid, [id], context=context)
result[id]['member_count'] = len(result[id]['member_ids'])
result[id]['is_subscriber'] = uid in result[id]['member_ids']
return result
diff --git a/addons/mail/mail_group_view.xml b/addons/mail/mail_group_view.xml
index 921c3b528c4..6ad1792b3b4 100644
--- a/addons/mail/mail_group_view.xml
+++ b/addons/mail/mail_group_view.xml
@@ -51,28 +51,30 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index 1c1e980e3ed..301657ba4c2 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -96,11 +96,24 @@ class mail_message_common(osv.osv_memory):
continue
result[message.id] = self.pool.get(message.model).name_get(cr, uid, [message.res_id], context=context)[0][1]
return result
-
+
+ def name_get(self, cr, uid, ids, context=None):
+ res = []
+ for message in self.browse(cr, uid, ids, context=context):
+ name = ''
+ if message.subject:
+ name = '%s: ' % (message.subject)
+ if message.body_text:
+ name = '%s%s ' % (name, message.body_text[0:20])
+ if message.date:
+ name = '%s(%s)' % (name, message.date)
+ res.append((message.id, name))
+ return res
+
_name = 'mail.message.common'
_rec_name = 'subject'
_columns = {
- 'subject': fields.char('Subject', size=512, required=True),
+ 'subject': fields.char('Subject', size=512),
'model': fields.char('Related Document Model', size=128, select=1),
'res_id': fields.integer('Related Document ID', select=1),
'record_name': fields.function(get_record_name, type='string', string='Message Record Name',
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index e0f2bfaf455..5668709af17 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -34,7 +34,7 @@ import xmlrpclib
_logger = logging.getLogger(__name__)
-class mail_thread(osv.osv):
+class mail_thread(osv.Model):
'''Mixin model, meant to be inherited by any model that needs to
act as a discussion topic on which messages can be attached.
Public methods are prefixed with ``message_`` in order to avoid
@@ -62,10 +62,15 @@ class mail_thread(osv.osv):
_name = 'mail.thread'
_description = 'Email Thread'
- def _get_message_ids(self, cr, uid, ids, name, arg, context=None):
+ def _get_message_ids(self, cr, uid, ids, name, args, context=None):
res = {}
for id in ids:
- res[id] = self.message_load_ids(cr, uid, [id], context=context)
+ message_ids = self.message_load_ids(cr, uid, [id], context=context)
+ subscriber_ids = self.message_get_subscribers(cr, uid, [id], context=context)
+ res[id] = {
+ 'message_ids': message_ids,
+ 'message_summary': "Msg: %d . Fol: %d" % (len(message_ids), len(subscriber_ids)),
+ }
return res
def _search_message_ids(self, cr, uid, obj, name, args, context=None):
@@ -73,10 +78,23 @@ class mail_thread(osv.osv):
msg_ids = msg_obj.search(cr, uid, ['&', ('res_id', 'in', args[0][2]), ('model', '=', self._name)], context=context)
return [('id', 'in', msg_ids)]
- # OpenChatter: message_ids is a dummy field that should not be used
_columns = {
- 'message_ids': fields.function(_get_message_ids, method=True, fnct_search=_search_message_ids,
- type='one2many', obj='mail.message', string='Temp messages', _fields_id = 'res_id'),
+ 'message_ids': fields.function(_get_message_ids, method=True,
+ fnct_search=_search_message_ids,
+ type='one2many', obj='mail.message', _fields_id = 'res_id',
+ string='Temp messages', multi="_get_message_ids",
+ help="Functional field holding messages related to the current document."),
+ 'message_state': fields.boolean('Read',
+ help="When checked, new messages require your attention."),
+ 'message_summary': fields.function(_get_message_ids, method=True,
+ type='text', string='Summary', multi="_get_message_ids",
+ help="Holds the Chatter summary (number of messages, ...). "\
+ "This summary is directly in html format in order to "\
+ "be inserted in kanban views."),
+ }
+
+ _defaults = {
+ 'message_state': True,
}
#------------------------------------------------------
@@ -84,10 +102,11 @@ class mail_thread(osv.osv):
#------------------------------------------------------
def create(self, cr, uid, vals, context=None):
- """Automatically subscribe the creator"""
- thread_id = super(mail_thread, self).create(cr, uid, vals, context=context);
- self.message_subscribe(cr, uid, [thread_id], [uid], context=context)
- return thread_id;
+ """Automatically subscribe the creator """
+ thread_id = super(mail_thread, self).create(cr, uid, vals, context=context)
+ if thread_id:
+ self.message_subscribe(cr, uid, [thread_id], [uid], context=context)
+ return thread_id
def write(self, cr, uid, ids, vals, context=None):
"""Automatically subscribe the writer"""
@@ -106,8 +125,6 @@ class mail_thread(osv.osv):
a foreign key with a 'cascade' ondelete attribute.
Notifications will be deleted with messages
"""
- if context is None:
- context = {}
subscr_obj = self.pool.get('mail.subscription')
msg_obj = self.pool.get('mail.message')
# delete subscriptions
@@ -120,17 +137,18 @@ class mail_thread(osv.osv):
return super(mail_thread, self).unlink(cr, uid, ids, context=context)
#------------------------------------------------------
- # Generic message api
+ # mail.message wrappers and tools
#------------------------------------------------------
def message_create(self, cr, uid, thread_id, vals, context=None):
- """OpenSocial: wrapper of mail.message create method
+ """ OpenChatter: wrapper of mail.message create method
- creates the mail.message
- automatically subscribe the message writer
- push the message to subscribed users
"""
if context is None:
context = {}
+
message_obj = self.pool.get('mail.message')
subscription_obj = self.pool.get('mail.subscription')
notification_obj = self.pool.get('mail.notification')
@@ -167,7 +185,10 @@ class mail_thread(osv.osv):
# create message
msg_id = message_obj.create(cr, uid, vals, context=context)
-
+
+ # Set as unread if writer is not the document responsible
+ self.message_create_set_unread(cr, uid, [thread_id], context=context)
+
# special: if install mode, do not push demo data
if context.get('install_mode', False):
return True
@@ -186,7 +207,7 @@ class mail_thread(osv.osv):
body = new_msg_vals.get('body_html', '') if new_msg_vals.get('subtype', 'plain') == 'html' else new_msg_vals.get('body_text', '')
for thread_id in thread_ids:
# add subscribers
- notif_user_ids += [user['id'] for user in self.message_get_subscribers(cr, uid, [thread_id], context=context)]
+ notif_user_ids += self.message_get_subscribers(cr, uid, [thread_id], context=context)
# add users requested via parsing message (@login)
notif_user_ids += self.message_parse_users(cr, uid, [thread_id], body, context=context)
# add users requested to perform an action (need_action mechanism)
@@ -214,6 +235,10 @@ class mail_thread(osv.osv):
user_ids = self.pool.get('res.users').search(cr, uid, [('login', 'in', login_lst)], context=context)
return user_ids
+ #------------------------------------------------------
+ # Generic message api
+ #------------------------------------------------------
+
def message_capable_models(self, cr, uid, context=None):
ret_dict = {}
for model_name in self.pool.obj_list():
@@ -376,7 +401,6 @@ class mail_thread(osv.osv):
original = msg_dict.get('original'),
context = context)
- # Message loading
def _message_add_ancestor_ids(self, cr, uid, ids, child_ids, root_ids, context=None):
""" Given message child_ids
Find their ancestors until root ids"""
@@ -420,6 +444,9 @@ class mail_thread(osv.osv):
msg_ids = self.message_load_ids(cr, uid, ids, limit, offset, domain, ascent, root_ids, context=context)
msgs = self.pool.get('mail.message').read(cr, uid, msg_ids, [], context=context)
+ # Set as read
+ self.message_check_and_set_read(cr, uid, ids, context=context)
+
""" Retrieve all attachments names """
map_id_to_name = {}
@@ -474,7 +501,7 @@ class mail_thread(osv.osv):
return msgs
#------------------------------------------------------
- # Email specific
+ # Mail gateway
#------------------------------------------------------
# message_process will call either message_new or message_update.
@@ -549,7 +576,7 @@ class mail_thread(osv.osv):
if res_id:
res_id = res_id.group(1)
if res_id:
- res_id = int(res_id)
+ res_id = res_id
if model_pool.exists(cr, uid, res_id):
if hasattr(model_pool, 'message_update'):
model_pool.message_update(cr, uid, [res_id], msg, {}, context=context)
@@ -558,7 +585,7 @@ class mail_thread(osv.osv):
res_id = False
if not res_id:
res_id = create_record(msg)
- #To forward the email to other followers
+ # To forward the email to other followers
self.message_forward(cr, uid, model, [res_id], msg_txt, context=context)
return res_id
@@ -594,29 +621,34 @@ class mail_thread(osv.osv):
fields = model_pool.fields_get(cr, uid, context=context)
data = model_pool.default_get(cr, uid, fields, context=context)
if 'name' in fields and not data.get('name'):
- data['name'] = msg_dict.get('from','')
+ data['name'] = msg_dict.get('from', '')
if custom_values and isinstance(custom_values, dict):
data.update(custom_values)
res_id = model_pool.create(cr, uid, data, context=context)
self.message_append_dict(cr, uid, [res_id], msg_dict, context=context)
return res_id
- def message_update(self, cr, uid, ids, msg_dict, vals={}, default_act=None, context=None):
- """Called by ``message_process`` when a new message is received
- for an existing thread. The default behavior is to create a
- new mail.message in the given thread (by calling
- ``message_append_dict``)
- Additional behavior may be implemented by overriding this
- method.
+ def message_update(self, cr, uid, ids, msg_dict, update_vals=None, context=None):
+ """ Called by ``message_process`` when a new message is received
+ for an existing thread. The default behavior is to create a
+ new mail.message in the given thread (by calling
+ ``message_append_dict``)
+ Additional behavior may be implemented by overriding this
+ method.
- :param dict msg_dict: a map containing the email details and
+ :param dict msg_dict: a map containing the email details and
attachments. See ``message_process`` and
``mail.message.parse()`` for details.
- :param dict context: if a ``thread_model`` value is present
+ :param dict vals: a dict containing values to update records
+ given their ids; if the dict is None or is
+ void, no write operation is performed.
+ :param dict context: if a ``thread_model`` value is present
in the context, its value will be used
to determine the model of the thread to
update (instead of the current model).
"""
+ if update_vals:
+ self.write(cr, uid, ids, update_vals, context=context)
return self.message_append_dict(cr, uid, ids, msg_dict, context=context)
def message_thread_followers(self, cr, uid, ids, context=None):
@@ -746,13 +778,8 @@ class mail_thread(osv.osv):
self.message_append_note(cr, uid, [id], 'res.log', message, context=context)
def message_append_note(self, cr, uid, ids, subject=None, body=None, parent_id=False, type='notification', subtype='html', context=None):
- if subject is None:
- if type == 'notification':
- subject = _('System notification')
- elif type == 'comment' and not parent_id:
- subject = _('Comment')
- elif type == 'comment' and parent_id:
- subject = _('Reply')
+ if type in ['notification', 'reply']:
+ subject = None
if subtype == 'html':
body_html = body
body_text = body
@@ -765,51 +792,77 @@ class mail_thread(osv.osv):
# Subscription mechanism
#------------------------------------------------------
- def message_get_subscribers_ids(self, cr, uid, ids, context=None):
+ def message_get_subscribers(self, cr, uid, ids, context=None):
+ """ Returns the current document followers. Basically this method
+ checks in mail.subscription for entries with matching res_model,
+ res_id.
+
+ :param get_ids: if set to True, return the ids of users; if set
+ to False, returns the result of a read in res.users
+ """
subscr_obj = self.pool.get('mail.subscription')
subscr_ids = subscr_obj.search(cr, uid, ['&', ('res_model', '=', self._name), ('res_id', 'in', ids)], context=context)
- subs = subscr_obj.read(cr, uid, subscr_ids, context=context)
- return [sub['user_id'][0] for sub in subs]
+ return [sub['user_id'][0] for sub in subscr_obj.read(cr, uid, subscr_ids, ['user_id'], context=context)]
- def message_get_subscribers(self, cr, uid, ids, context=None):
- user_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context)
- users = self.pool.get('res.users').read(cr, uid, user_ids, fields=['id', 'name', 'avatar'], context=context)
- return users
+ def message_read_subscribers(self, cr, uid, ids, fields=['id', 'name', 'avatar'], context=None):
+ """ Returns the current document followers as a read result. Used
+ mainly for Chatter having only one method to call to have
+ details about users.
+ """
+ user_ids = self.message_get_subscribers(cr, uid, ids, context=context)
+ return self.pool.get('res.users').read(cr, uid, user_ids, fields=fields, context=context)
def message_is_subscriber(self, cr, uid, ids, user_id = None, context=None):
- users = self.message_get_subscribers(cr, uid, ids, context=context)
+ """ Check if uid or user_id (if set) is a subscriber to the current
+ document.
+
+ :param user_id: if set, check is done on user_id; if not set
+ check is done on uid
+ """
sub_user_id = uid if user_id is None else user_id
- if sub_user_id in [user['id'] for user in users]:
+ if sub_user_id in self.message_get_subscribers(cr, uid, ids, context=context):
return True
return False
def message_subscribe(self, cr, uid, ids, user_ids = None, context=None):
+ """ Subscribe the user (or user_ids) to the current document.
+
+ :param user_ids: a list of user_ids; if not set, subscribe
+ uid instead
+ """
subscription_obj = self.pool.get('mail.subscription')
to_subscribe_uids = [uid] if user_ids is None else user_ids
create_ids = []
for id in ids:
+ already_subscribed_user_ids = self.message_get_subscribers(cr, uid, [id], context=context)
for user_id in to_subscribe_uids:
- if self.message_is_subscriber(cr, uid, [id], user_id=user_id, context=context): continue
+ if user_id in already_subscribed_user_ids: continue
create_ids.append(subscription_obj.create(cr, uid, {'res_model': self._name, 'res_id': id, 'user_id': user_id}, context=context))
return create_ids
def message_unsubscribe(self, cr, uid, ids, user_ids = None, context=None):
- if not user_ids and not uid in self.message_get_subscribers_ids(cr, uid, ids, context=context):
+ """ Unsubscribe the user (or user_ids) from the current document.
+
+ :param user_ids: a list of user_ids; if not set, subscribe
+ uid instead
+ """
+ # Trying to unsubscribe somebody not in subscribers: returns False
+ # if special management is needed; allows to know that an automatically
+ # subscribed user tries to unsubscribe and allows to warn him
+ mail_thread_model = self.pool.get('mail.thread')
+ if not user_ids and not uid in mail_thread_model.message_get_subscribers(cr, uid, ids, context=context):
return False
subscription_obj = self.pool.get('mail.subscription')
to_unsubscribe_uids = [uid] if user_ids is None else user_ids
to_delete_sub_ids = subscription_obj.search(cr, uid,
['&', '&', ('res_model', '=', self._name), ('res_id', 'in', ids), ('user_id', 'in', to_unsubscribe_uids)], context=context)
- subscription_obj.unlink(cr, uid, to_delete_sub_ids, context=context)
- return True
+ return subscription_obj.unlink(cr, uid, to_delete_sub_ids, context=context)
#------------------------------------------------------
# Notification API
#------------------------------------------------------
def message_remove_pushed_notifications(self, cr, uid, ids, msg_ids, remove_childs=True, context=None):
- if context is None:
- context = {}
notif_obj = self.pool.get('mail.notification')
msg_obj = self.pool.get('mail.message')
if remove_childs:
@@ -819,4 +872,37 @@ class mail_thread(osv.osv):
to_del_notif_ids = notif_obj.search(cr, uid, ['&', ('user_id', '=', uid), ('message_id', 'in', notif_msg_ids)], context=context)
return notif_obj.unlink(cr, uid, to_del_notif_ids, context=context)
+ #------------------------------------------------------
+ # Thread_state
+ #------------------------------------------------------
+
+ def message_create_set_unread(self, cr, uid, ids, context=None):
+ """ When creating a new message, set as unread if uid is not the
+ object responsible. """
+ for obj in self.browse(cr, uid, ids, context=context):
+ if obj.message_state and hasattr(obj, 'user_id') and (not obj.user_id or obj.user_id.id != uid):
+ self.message_mark_as_unread(cr, uid, [obj.id], context=context)
+
+ def message_check_and_set_unread(self, cr, uid, ids, context=None):
+ """ Set unread if uid is the object responsible or if the object has
+ no responsible. """
+ for obj in self.browse(cr, uid, ids, context=context):
+ if obj.message_state and hasattr(obj, 'user_id') and (not obj.user_id or obj.user_id.id == uid):
+ self.message_mark_as_unread(cr, uid, [obj.id], context=context)
+
+ def message_mark_as_unread(self, cr, uid, ids, context=None):
+ """ Set as unread. """
+ return self.write(cr, uid, ids, {'message_state': False}, context=context)
+
+ def message_check_and_set_read(self, cr, uid, ids, context=None):
+ """ Set read if uid is the object responsible. """
+ for obj in self.browse(cr, uid, ids, context=context):
+ if not obj.message_state and hasattr(obj, 'user_id') and obj.user_id and obj.user_id.id == uid:
+ self.message_mark_as_read(cr, uid, [obj.id], context=context)
+
+ def message_mark_as_read(self, cr, uid, ids, context=None):
+ """ Set as read. """
+ return self.write(cr, uid, ids, {'message_state': True}, context=context)
+
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mail/res_partner_view.xml b/addons/mail/res_partner_view.xml
index 0a9860dc979..15f6618c8e5 100644
--- a/addons/mail/res_partner_view.xml
+++ b/addons/mail/res_partner_view.xml
@@ -10,7 +10,7 @@
diff --git a/addons/mail/res_users_view.xml b/addons/mail/res_users_view.xml
index 428f53d092e..918f77e0ace 100644
--- a/addons/mail/res_users_view.xml
+++ b/addons/mail/res_users_view.xml
@@ -28,7 +28,7 @@
-
+
diff --git a/addons/mail/static/lib/jquery.expander/jquery.expander.js b/addons/mail/static/lib/jquery.expander/jquery.expander.js
new file mode 100644
index 00000000000..91cc03db918
--- /dev/null
+++ b/addons/mail/static/lib/jquery.expander/jquery.expander.js
@@ -0,0 +1,385 @@
+/*!
+ * jQuery Expander Plugin v1.4.2
+ *
+ * Date: Fri Mar 16 14:29:56 2012 EDT
+ * Requires: jQuery v1.3+
+ *
+ * Copyright 2011, Karl Swedberg
+ * Dual licensed under the MIT and GPL licenses (just like jQuery):
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ *
+ *
+ *
+*/
+
+(function($) {
+ $.expander = {
+ version: '1.4.2',
+ defaults: {
+ // the number of characters at which the contents will be sliced into two parts.
+ slicePoint: 100,
+
+ // whether to keep the last word of the summary whole (true) or let it slice in the middle of a word (false)
+ preserveWords: true,
+
+ // a threshold of sorts for whether to initially hide/collapse part of the element's contents.
+ // If after slicing the contents in two there are fewer words in the second part than
+ // the value set by widow, we won't bother hiding/collapsing anything.
+ widow: 4,
+
+ // text displayed in a link instead of the hidden part of the element.
+ // clicking this will expand/show the hidden/collapsed text
+ expandText: 'read more',
+ expandPrefix: '… ',
+
+ expandAfterSummary: false,
+
+ // class names for summary element and detail element
+ summaryClass: 'summary',
+ detailClass: 'details',
+
+ // class names for around "read-more" link and "read-less" link
+ moreClass: 'read-more',
+ lessClass: 'read-less',
+
+ // number of milliseconds after text has been expanded at which to collapse the text again.
+ // when 0, no auto-collapsing
+ collapseTimer: 0,
+
+ // effects for expanding and collapsing
+ expandEffect: 'fadeIn',
+ expandSpeed: 250,
+ collapseEffect: 'fadeOut',
+ collapseSpeed: 200,
+
+ // allow the user to re-collapse the expanded text.
+ userCollapse: true,
+
+ // text to use for the link to re-collapse the text
+ userCollapseText: 'read less',
+ userCollapsePrefix: ' ',
+
+
+ // all callback functions have the this keyword mapped to the element in the jQuery set when .expander() is called
+
+ onSlice: null, // function() {}
+ beforeExpand: null, // function() {},
+ afterExpand: null, // function() {},
+ onCollapse: null // function(byUser) {}
+ }
+ };
+
+ $.fn.expander = function(options) {
+ var meth = 'init';
+
+ if (typeof options == 'string') {
+ meth = options;
+ options = {};
+ }
+
+ var opts = $.extend({}, $.expander.defaults, options),
+ rSelfClose = /^<(?:area|br|col|embed|hr|img|input|link|meta|param).*>$/i,
+ rAmpWordEnd = opts.wordEnd || /(&(?:[^;]+;)?|[a-zA-Z\u00C0-\u0100]+)$/,
+ rOpenCloseTag = /<\/?(\w+)[^>]*>/g,
+ rOpenTag = /<(\w+)[^>]*>/g,
+ rCloseTag = /<\/(\w+)>/g,
+ rLastCloseTag = /(<\/[^>]+>)\s*$/,
+ rTagPlus = /^<[^>]+>.?/,
+ delayedCollapse;
+
+ var methods = {
+ init: function() {
+ this.each(function() {
+ var i, l, tmp, newChar, summTagless, summOpens, summCloses,
+ lastCloseTag, detailText, detailTagless,
+ $thisDetails, $readMore,
+ openTagsForDetails = [],
+ closeTagsForsummaryText = [],
+ defined = {},
+ thisEl = this,
+ $this = $(this),
+ $summEl = $([]),
+ o = $.meta ? $.extend({}, opts, $this.data()) : opts,
+ hasDetails = !!$this.find('.' + o.detailClass).length,
+ hasBlocks = !!$this.find('*').filter(function() {
+ var display = $(this).css('display');
+ return (/^block|table|list/).test(display);
+ }).length,
+ el = hasBlocks ? 'div' : 'span',
+ detailSelector = el + '.' + o.detailClass,
+ moreSelector = 'span.' + o.moreClass,
+ expandSpeed = o.expandSpeed || 0,
+ allHtml = $.trim( $this.html() ),
+ allText = $.trim( $this.text() ),
+ summaryText = allHtml.slice(0, o.slicePoint);
+
+ // bail out if we've already set up the expander on this element
+ if ( $.data(this, 'expander') ) {
+ return;
+ }
+
+ $.data(this, 'expander', true);
+
+ // determine which callback functions are defined
+ $.each(['onSlice','beforeExpand', 'afterExpand', 'onCollapse'], function(index, val) {
+ defined[val] = $.isFunction(o[val]);
+ });
+
+ // back up if we're in the middle of a tag or word
+ summaryText = backup(summaryText);
+
+ // summary text sans tags length
+ summTagless = summaryText.replace(rOpenCloseTag, '').length;
+
+ // add more characters to the summary, one for each character in the tags
+ while (summTagless < o.slicePoint) {
+ newChar = allHtml.charAt(summaryText.length);
+ if (newChar == '<') {
+ newChar = allHtml.slice(summaryText.length).match(rTagPlus)[0];
+ }
+ summaryText += newChar;
+ summTagless++;
+ }
+
+ summaryText = backup(summaryText, o.preserveWords);
+
+ // separate open tags from close tags and clean up the lists
+ summOpens = summaryText.match(rOpenTag) || [];
+ summCloses = summaryText.match(rCloseTag) || [];
+
+ // filter out self-closing tags
+ tmp = [];
+ $.each(summOpens, function(index, val) {
+ if ( !rSelfClose.test(val) ) {
+ tmp.push(val);
+ }
+ });
+ summOpens = tmp;
+
+ // strip close tags to just the tag name
+ l = summCloses.length;
+ for (i = 0; i < l; i++) {
+ summCloses[i] = summCloses[i].replace(rCloseTag, '$1');
+ }
+
+ // tags that start in summary and end in detail need:
+ // a). close tag at end of summary
+ // b). open tag at beginning of detail
+ $.each(summOpens, function(index, val) {
+ var thisTagName = val.replace(rOpenTag, '$1');
+ var closePosition = $.inArray(thisTagName, summCloses);
+ if (closePosition === -1) {
+ openTagsForDetails.push(val);
+ closeTagsForsummaryText.push('' + thisTagName + '>');
+
+ } else {
+ summCloses.splice(closePosition, 1);
+ }
+ });
+
+ // reverse the order of the close tags for the summary so they line up right
+ closeTagsForsummaryText.reverse();
+
+ // create necessary summary and detail elements if they don't already exist
+ if ( !hasDetails ) {
+
+ // end script if there is no detail text or if detail has fewer words than widow option
+ detailText = allHtml.slice(summaryText.length);
+ detailTagless = $.trim( detailText.replace(rOpenCloseTag, '') );
+
+ if ( detailTagless === '' || detailTagless.split(/\s+/).length < o.widow ) {
+ return;
+ }
+ // otherwise, continue...
+ lastCloseTag = closeTagsForsummaryText.pop() || '';
+ summaryText += closeTagsForsummaryText.join('');
+ detailText = openTagsForDetails.join('') + detailText;
+
+ } else {
+ // assume that even if there are details, we still need readMore/readLess/summary elements
+ // (we already bailed out earlier when readMore el was found)
+ // but we need to create els differently
+
+ // remove the detail from the rest of the content
+ detailText = $this.find(detailSelector).remove().html();
+
+ // The summary is what's left
+ summaryText = $this.html();
+
+ // allHtml is the summary and detail combined (this is needed when content has block-level elements)
+ allHtml = summaryText + detailText;
+
+ lastCloseTag = '';
+ }
+ o.moreLabel = $this.find(moreSelector).length ? '' : buildMoreLabel(o);
+
+ if (hasBlocks) {
+ detailText = allHtml;
+ }
+ summaryText += lastCloseTag;
+
+ // onSlice callback
+ o.summary = summaryText;
+ o.details = detailText;
+ o.lastCloseTag = lastCloseTag;
+
+ if (defined.onSlice) {
+ // user can choose to return a modified options object
+ // one last chance for user to change the options. sneaky, huh?
+ // but could be tricky so use at your own risk.
+ tmp = o.onSlice.call(thisEl, o);
+
+ // so, if the returned value from the onSlice function is an object with a details property, we'll use that!
+ o = tmp && tmp.details ? tmp : o;
+ }
+
+ // build the html with summary and detail and use it to replace old contents
+ var html = buildHTML(o, hasBlocks);
+
+ $this.html( html );
+
+ // set up details and summary for expanding/collapsing
+ $thisDetails = $this.find(detailSelector);
+ $readMore = $this.find(moreSelector);
+ $thisDetails.hide();
+ $readMore.find('a').unbind('click.expander').bind('click.expander', expand);
+
+ $summEl = $this.find('div.' + o.summaryClass);
+
+ if ( o.userCollapse && !$this.find('span.' + o.lessClass).length ) {
+ $this
+ .find(detailSelector)
+ .append('' + o.userCollapsePrefix + '' + o.userCollapseText + '');
+ }
+
+ $this
+ .find('span.' + o.lessClass + ' a')
+ .unbind('click.expander')
+ .bind('click.expander', function(event) {
+ event.preventDefault();
+ clearTimeout(delayedCollapse);
+ var $detailsCollapsed = $(this).closest(detailSelector);
+ reCollapse(o, $detailsCollapsed);
+ if (defined.onCollapse) {
+ o.onCollapse.call(thisEl, true);
+ }
+ });
+
+ function expand(event) {
+ event.preventDefault();
+ $readMore.hide();
+ $summEl.hide();
+ if (defined.beforeExpand) {
+ o.beforeExpand.call(thisEl);
+ }
+
+ $thisDetails.stop(false, true)[o.expandEffect](expandSpeed, function() {
+ $thisDetails.css({zoom: ''});
+ if (defined.afterExpand) {o.afterExpand.call(thisEl);}
+ delayCollapse(o, $thisDetails, thisEl);
+ });
+ }
+
+ }); // this.each
+ },
+ destroy: function() {
+ if ( !this.data('expander') ) {
+ return;
+ }
+ this.removeData('expander');
+ this.each(function() {
+ var $this = $(this),
+ o = $.meta ? $.extend({}, opts, $this.data()) : opts,
+ details = $this.find('.' + o.detailClass).contents();
+
+ $this.find('.' + o.moreClass).remove();
+ $this.find('.' + o.summaryClass).remove();
+ $this.find('.' + o.detailClass).after(details).remove();
+ $this.find('.' + o.lessClass).remove();
+
+ });
+ }
+ };
+
+ // run the methods (almost always "init")
+ if ( methods[meth] ) {
+ methods[ meth ].call(this);
+ }
+
+ // utility functions
+ function buildHTML(o, blocks) {
+ var el = 'span',
+ summary = o.summary;
+ if ( blocks ) {
+ el = 'div';
+ // if summary ends with a close tag, tuck the moreLabel inside it
+ if ( rLastCloseTag.test(summary) && !o.expandAfterSummary) {
+ summary = summary.replace(rLastCloseTag, o.moreLabel + '$1');
+ } else {
+ // otherwise (e.g. if ends with self-closing tag) just add moreLabel after summary
+ // fixes #19
+ summary += o.moreLabel;
+ }
+
+ // and wrap it in a div
+ summary = '
-
-
+
+ or
+
diff --git a/addons/portal/wizard/portal_wizard.py b/addons/portal/wizard/portal_wizard.py
index 374e264195a..64e24e408dd 100644
--- a/addons/portal/wizard/portal_wizard.py
+++ b/addons/portal/wizard/portal_wizard.py
@@ -71,9 +71,8 @@ def extract_email(user_email):
class wizard(osv.osv_memory):
"""
- A wizard to create portal users from instances of either 'res.partner'
- or 'res.partner.address'. The purpose is to provide an OpenERP database
- access to customers or suppliers.
+ A wizard to create portal users from instances of 'res.partner'. The purpose
+ is to provide an OpenERP database access to customers or suppliers.
"""
_name = 'res.portal.wizard'
_description = 'Portal Wizard'
diff --git a/addons/portal/wizard/portal_wizard_view.xml b/addons/portal/wizard/portal_wizard_view.xml
index d35ce5e240b..1809c33d20a 100644
--- a/addons/portal/wizard/portal_wizard_view.xml
+++ b/addons/portal/wizard/portal_wizard_view.xml
@@ -18,9 +18,10 @@
-
+ name="action_create" type="object" class="oe_highlight" />
+ or
+
diff --git a/addons/portal/wizard/share_wizard.py b/addons/portal/wizard/share_wizard.py
index d642be7b698..ca950a61b08 100644
--- a/addons/portal/wizard/share_wizard.py
+++ b/addons/portal/wizard/share_wizard.py
@@ -28,7 +28,7 @@ UID_ROOT = 1
SHARED_DOCS_MENU = "Documents"
SHARED_DOCS_CHILD_MENU = "Shared Documents"
-class share_wizard_portal(osv.osv_memory):
+class share_wizard_portal(osv.TransientModel):
"""Inherited share wizard to automatically create appropriate
menus in the selected portal upon sharing with a portal group."""
_inherit = "share.wizard"
diff --git a/addons/portal/wizard/share_wizard_view.xml b/addons/portal/wizard/share_wizard_view.xml
index 2f9d55c1f0d..cf294285f4f 100644
--- a/addons/portal/wizard/share_wizard_view.xml
+++ b/addons/portal/wizard/share_wizard_view.xml
@@ -8,7 +8,7 @@
form
-
+ 04
@@ -40,11 +40,11 @@
-
-
-
-
+
+
+
+
diff --git a/addons/process/process_view.xml b/addons/process/process_view.xml
index fe88f61bd98..b4113311a3d 100644
--- a/addons/process/process_view.xml
+++ b/addons/process/process_view.xml
@@ -156,7 +156,7 @@
form
-
+
+ or
+
diff --git a/addons/product/product_data.xml b/addons/product/product_data.xml
index 223b6bc368e..8f10b7b2762 100644
--- a/addons/product/product_data.xml
+++ b/addons/product/product_data.xml
@@ -2,8 +2,8 @@
+ Resource: product.uom.categ
+ -->
All products
@@ -87,16 +87,16 @@ parameter) will see those record just disappear.
-->
+ Request link
+ -->
Productproduct.product
+ Resource: product.price.type
+ -->
Public Pricelist_price
@@ -110,8 +110,8 @@ parameter) will see those record just disappear.
+ Price list type
+ -->
Sale Pricelistsale
@@ -119,8 +119,8 @@ parameter) will see those record just disappear.
+ Price list
+ -->
Public Pricelistsale
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index f4922292ff2..cdf4d48c904 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -67,7 +67,7 @@
form
-
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index 353228df599..0a3ebbe72ac 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -1022,10 +1022,10 @@ class sale_order(osv.osv):
# ------------------------------------------------
def get_needaction_user_ids(self, cr, uid, ids, context=None):
- result = dict.fromkeys(ids, [])
+ result = super(sale_order, self).get_needaction_user_ids(cr, uid, ids, context=context)
for obj in self.browse(cr, uid, ids, context=context):
if (obj.state == 'manual' or obj.state == 'progress'):
- result[obj.id] = [obj.user_id.id]
+ result[obj.id].append(obj.user_id.id)
return result
def create_send_note(self, cr, uid, ids, context=None):
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 475e072d9cf..d5d6b5346eb 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -12,15 +12,16 @@
+
+
-
-
-
-
+
+
+
@@ -53,6 +54,43 @@
+
+
+ Mark unread
+ True
+ ir.actions.server
+
+ code
+ self.message_check_and_set_unread(cr, uid, context.get('active_ids'), context=context)
+
+
+ action_sale_order_unread
+
+
+ action
+
+ sale.order
+ client_action_multi
+
+
+
+ Mark read
+ True
+ ir.actions.server
+
+ code
+ self.message_check_and_set_read(cr, uid, context.get('active_ids'), context=context)
+
+
+ action_sale_order_read
+
+
+ action
+
+ sale.order
+ client_action_multi
+
+
sale.order.calendarsale.order
@@ -108,16 +146,14 @@
-
-
+
-
-
+
-
-
@@ -136,8 +172,8 @@
-
-
+
+
@@ -285,7 +321,7 @@
@@ -299,6 +335,11 @@
+
+
@@ -329,7 +370,7 @@
{"search_default_sales":1}Sales Orders help you manage quotations and orders from your customers. OpenERP suggests that you start by creating a quotation. Once it is confirmed, the quotation will be converted into a Sales Order. OpenERP can handle several types of products so that a sales order may trigger tasks, delivery orders, manufacturing orders, purchases and so on. Based on the configuration of the sales order, a draft invoice will be generated so that you just have to confirm it when you want to bill your customer.
-
+
Sales in Exception
@@ -372,7 +413,7 @@
+ sequence="4"/>
Old Quotations
@@ -424,8 +465,8 @@
-
-
+
+
diff --git a/addons/sale/security/ir.model.access.csv b/addons/sale/security/ir.model.access.csv
index 2e08a025971..721d706a5fb 100644
--- a/addons/sale/security/ir.model.access.csv
+++ b/addons/sale/security/ir.model.access.csv
@@ -30,7 +30,6 @@ access_product_template_sale_user,product.template sale use,product.model_produc
access_product_product_sale_user,product.product sale use,product.model_product_product,base.group_sale_salesman,1,0,0,0
access_sale_shop_manager,account.journal sale order.user,model_sale_shop,base.group_sale_manager,1,1,1,1
access_account_fiscalyear_user,account.fiscalyear.user,account.model_account_fiscalyear,base.group_sale_salesman,1,0,0,0
-access_res_partner_address_user,res.partner.address.user,base.model_res_partner_address,base.group_sale_salesman,1,0,0,0
access_account_tax_user,account.tax.user,account.model_account_tax,base.group_sale_salesman,1,0,0,0
access_product_packaging_user,product.packaging.user,product.model_product_packaging,base.group_sale_salesman,1,1,1,0
access_ir_attachment_sales,ir.attachment.sales,base.model_ir_attachment,base.group_sale_salesman,1,1,1,0
diff --git a/addons/sale/wizard/sale_line_invoice.xml b/addons/sale/wizard/sale_line_invoice.xml
index 84c19665e65..0da5b8825d0 100644
--- a/addons/sale/wizard/sale_line_invoice.xml
+++ b/addons/sale/wizard/sale_line_invoice.xml
@@ -8,8 +8,9 @@