[ODOO] Odoo updates till commit ref: 529a8f5aa8
This commit is contained in:
parent
3d05cc9726
commit
9985810340
@ -31,4 +31,4 @@ class HolidaysSummaryDept(models.TransientModel):
|
||||
'model': 'hr.department',
|
||||
'form': data
|
||||
}
|
||||
return self.env.ref('hr_holidays.action_report_holidayssummary').report_action(departments, data=datas)
|
||||
return self.env.ref('hr_holidays.action_report_holidayssummary').with_context(from_transient_model=True).report_action(departments, data=datas)
|
||||
|
@ -1,31 +1,266 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * l10n_ch
|
||||
# * l10n_ch
|
||||
#
|
||||
# Translators:
|
||||
# BT_astauder <andreas.stauder@brain-tec.ch>, 2015
|
||||
# Ermin Trevisan <trevi@twanda.com>, 2015
|
||||
# Wolfgang Taferner, 2016
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 9.0\n"
|
||||
"Project-Id-Version: Odoo Server 11.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-09-18 15:42+0000\n"
|
||||
"PO-Revision-Date: 2016-01-15 03:53+0000\n"
|
||||
"Last-Translator: Wolfgang Taferner\n"
|
||||
"Language-Team: German (http://www.transifex.com/odoo/odoo-9/language/de/)\n"
|
||||
"Language: de\n"
|
||||
"POT-Creation-Date: 2018-01-16 15:58+0000\n"
|
||||
"PO-Revision-Date: 2018-01-16 15:58+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.actions.client,name:l10n_ch.action_client_l10n_ch_menu
|
||||
msgid "Open Account Dashboard Menu"
|
||||
msgstr " Buchführungsübersicht öffnen"
|
||||
#: model:ir.model,name:l10n_ch.model_res_bank
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_partner_bank
|
||||
msgid "Bank Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_company_l10n_ch_isr_print_bank_location
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_config_settings_l10n_ch_isr_print_bank_location
|
||||
msgid "Boolean option field indicating whether or not the alternate layout (the one printing bank name and address) must be used when generating an ISR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_sent
|
||||
msgid "Boolean value telling whether or not the ISR corresponding to this invoice has already been printed or sent by mail."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_valid
|
||||
msgid "Boolean value. True iff all the data required to generate the ISR are present"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_bank_l10n_ch_postal_chf
|
||||
msgid "CHF ISR reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.cash.rounding,name:l10n_ch.cash_rounding_5_centime
|
||||
msgid "Coinage 0.05"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_currency_name
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_bank_l10n_ch_postal_eur
|
||||
msgid "EUR ISR reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_mail_template
|
||||
msgid "Email Templates"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_mail_compose_message
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.actions.report,name:l10n_ch.l10n_ch_isr_report
|
||||
msgid "ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.l10n_ch_isr_report_template
|
||||
msgid "ISR for invoice"
|
||||
msgstr "ESR bezüglich der Rechnung"
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_number_spaced
|
||||
msgid "ISR number split in blocks of 5 characters (right-justified), to generate ISR report."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.isr_invoice_search_view
|
||||
msgid "ISR reference number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: code:addons/l10n_ch/models/mail_compose_message.py:23
|
||||
#, python-format
|
||||
msgid "ISR sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_number
|
||||
msgid "L10N Ch Isr Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_number_spaced
|
||||
msgid "L10N Ch Isr Number Spaced"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_optical_line
|
||||
msgid "L10N Ch Isr Optical Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_postal
|
||||
msgid "L10N Ch Isr Postal"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_postal_formatted
|
||||
msgid "L10N Ch Isr Postal Formatted"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_sent
|
||||
msgid "L10N Ch Isr Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_valid
|
||||
msgid "L10N Ch Isr Valid"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_partner_bank_l10n_ch_postal
|
||||
msgid "L10N Ch Postal"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_optical_line
|
||||
msgid "Optical reading line, as it will be printed on ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_postal_formatted
|
||||
msgid "Postal reference of the bank, formated with '-' and without the padding zeros, to generate ISR report."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.isr_invoice_form
|
||||
msgid "Print ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_company_l10n_ch_isr_print_bank_location
|
||||
msgid "Print bank location"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_config_settings_l10n_ch_isr_print_bank_location
|
||||
msgid "Print bank on ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.res_config_settings_view_form
|
||||
msgid "Print the coordinates of your bank under the 'Payment for' title of the ISR.\n"
|
||||
" Your address will be moved to the 'in favour of' section."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.menu,name:l10n_ch.account_reports_ch_statements_menu
|
||||
msgid "Swiss Statements"
|
||||
msgstr "CH Bilanz- und Erfolgsrechnungen"
|
||||
msgid "Switzerland"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_0
|
||||
msgid "TVA 0%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_25
|
||||
msgid "TVA 2.5%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_37
|
||||
msgid "TVA 3.7%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_38
|
||||
msgid "TVA 3.8%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_77
|
||||
msgid "TVA 7.7%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_8
|
||||
msgid "TVA 8%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_partner_bank_l10n_ch_postal
|
||||
msgid "The ISR number of the company within the bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_currency_name
|
||||
msgid "The name of this invoice's currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_postal
|
||||
msgid "The postal reference identifying the bank managing this ISR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_bank_l10n_ch_postal_chf
|
||||
msgid "The postal reference of the bank, used to generate ISR payment slips in CHF."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_bank_l10n_ch_postal_eur
|
||||
msgid "The postal reference of the bank, used to generate ISR payment slips in EUR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_number
|
||||
msgid "The reference number associated with this invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: code:addons/l10n_ch/models/account_invoice.py:154
|
||||
#, python-format
|
||||
msgid "You cannot generate an ISR yet.\n"
|
||||
"\n"
|
||||
" For this, you need to :\n"
|
||||
"\n"
|
||||
" - set a valid postal account number (or an IBAN referencing one) for your company\n"
|
||||
"\n"
|
||||
" - define its bank\n"
|
||||
"\n"
|
||||
" - associate this bank with a postal reference for the currency used in this invoice\n"
|
||||
"\n"
|
||||
" - fill the 'bank account' field of the invoice with the postal to be used to receive the related payment. A default account will be automatically set for all invoices created after you defined a postal account for your company."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_config_settings
|
||||
msgid "res.config.settings"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1,30 +1,266 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * l10n_ch
|
||||
# * l10n_ch
|
||||
#
|
||||
# Translators:
|
||||
# Maxime Chambreuil <maxime.chambreuil@gmail.com>, 2015
|
||||
# Miguel Vidali <mvidali129@gmail.com>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 9.0\n"
|
||||
"Project-Id-Version: Odoo Server 11.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-09-18 15:42+0000\n"
|
||||
"PO-Revision-Date: 2015-11-11 21:04+0000\n"
|
||||
"Last-Translator: Maxime Chambreuil <maxime.chambreuil@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/odoo/odoo-9/language/fr/)\n"
|
||||
"Language: fr\n"
|
||||
"POT-Creation-Date: 2018-01-16 15:58+0000\n"
|
||||
"PO-Revision-Date: 2018-01-16 15:58+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.actions.client,name:l10n_ch.action_client_l10n_ch_menu
|
||||
msgid "Open Account Dashboard Menu"
|
||||
msgstr "Ouvrez le menu Comptabilité"
|
||||
#: model:ir.model,name:l10n_ch.model_res_bank
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_partner_bank
|
||||
msgid "Bank Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_company_l10n_ch_isr_print_bank_location
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_config_settings_l10n_ch_isr_print_bank_location
|
||||
msgid "Boolean option field indicating whether or not the alternate layout (the one printing bank name and address) must be used when generating an ISR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_sent
|
||||
msgid "Boolean value telling whether or not the ISR corresponding to this invoice has already been printed or sent by mail."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_valid
|
||||
msgid "Boolean value. True iff all the data required to generate the ISR are present"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_bank_l10n_ch_postal_chf
|
||||
msgid "CHF ISR reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.cash.rounding,name:l10n_ch.cash_rounding_5_centime
|
||||
msgid "Coinage 0.05"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_currency_name
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_bank_l10n_ch_postal_eur
|
||||
msgid "EUR ISR reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_mail_template
|
||||
msgid "Email Templates"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_mail_compose_message
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.actions.report,name:l10n_ch.l10n_ch_isr_report
|
||||
msgid "ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.l10n_ch_isr_report_template
|
||||
msgid "ISR for invoice"
|
||||
msgstr "BVR relatif à la facture"
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_number_spaced
|
||||
msgid "ISR number split in blocks of 5 characters (right-justified), to generate ISR report."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.isr_invoice_search_view
|
||||
msgid "ISR reference number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: code:addons/l10n_ch/models/mail_compose_message.py:23
|
||||
#, python-format
|
||||
msgid "ISR sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_number
|
||||
msgid "L10N Ch Isr Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_number_spaced
|
||||
msgid "L10N Ch Isr Number Spaced"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_optical_line
|
||||
msgid "L10N Ch Isr Optical Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_postal
|
||||
msgid "L10N Ch Isr Postal"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_postal_formatted
|
||||
msgid "L10N Ch Isr Postal Formatted"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_sent
|
||||
msgid "L10N Ch Isr Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_valid
|
||||
msgid "L10N Ch Isr Valid"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_partner_bank_l10n_ch_postal
|
||||
msgid "L10N Ch Postal"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_optical_line
|
||||
msgid "Optical reading line, as it will be printed on ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_postal_formatted
|
||||
msgid "Postal reference of the bank, formated with '-' and without the padding zeros, to generate ISR report."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.isr_invoice_form
|
||||
msgid "Print ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_company_l10n_ch_isr_print_bank_location
|
||||
msgid "Print bank location"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_config_settings_l10n_ch_isr_print_bank_location
|
||||
msgid "Print bank on ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.res_config_settings_view_form
|
||||
msgid "Print the coordinates of your bank under the 'Payment for' title of the ISR.\n"
|
||||
" Your address will be moved to the 'in favour of' section."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.menu,name:l10n_ch.account_reports_ch_statements_menu
|
||||
msgid "Swiss Statements"
|
||||
msgstr "Déclarations suisses"
|
||||
msgid "Switzerland"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_0
|
||||
msgid "TVA 0%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_25
|
||||
msgid "TVA 2.5%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_37
|
||||
msgid "TVA 3.7%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_38
|
||||
msgid "TVA 3.8%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_77
|
||||
msgid "TVA 7.7%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_8
|
||||
msgid "TVA 8%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_partner_bank_l10n_ch_postal
|
||||
msgid "The ISR number of the company within the bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_currency_name
|
||||
msgid "The name of this invoice's currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_postal
|
||||
msgid "The postal reference identifying the bank managing this ISR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_bank_l10n_ch_postal_chf
|
||||
msgid "The postal reference of the bank, used to generate ISR payment slips in CHF."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_bank_l10n_ch_postal_eur
|
||||
msgid "The postal reference of the bank, used to generate ISR payment slips in EUR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_number
|
||||
msgid "The reference number associated with this invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: code:addons/l10n_ch/models/account_invoice.py:154
|
||||
#, python-format
|
||||
msgid "You cannot generate an ISR yet.\n"
|
||||
"\n"
|
||||
" For this, you need to :\n"
|
||||
"\n"
|
||||
" - set a valid postal account number (or an IBAN referencing one) for your company\n"
|
||||
"\n"
|
||||
" - define its bank\n"
|
||||
"\n"
|
||||
" - associate this bank with a postal reference for the currency used in this invoice\n"
|
||||
"\n"
|
||||
" - fill the 'bank account' field of the invoice with the postal to be used to receive the related payment. A default account will be automatically set for all invoices created after you defined a postal account for your company."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_config_settings
|
||||
msgid "res.config.settings"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1,28 +1,266 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * l10n_ch
|
||||
# * l10n_ch
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo 9.0\n"
|
||||
"Project-Id-Version: Odoo Server 11.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-09-18 15:42+0000\n"
|
||||
"PO-Revision-Date: 2016-02-24 22:58+0000\n"
|
||||
"Last-Translator: Martin Trigaux\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/odoo/odoo-9/language/it/)\n"
|
||||
"Language: it\n"
|
||||
"POT-Creation-Date: 2018-01-16 15:58+0000\n"
|
||||
"PO-Revision-Date: 2018-01-16 15:58+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.actions.client,name:l10n_ch.action_client_l10n_ch_menu
|
||||
msgid "Open Account Dashboard Menu"
|
||||
msgstr "Apri menu dashboard dell'account"
|
||||
#: model:ir.model,name:l10n_ch.model_res_bank
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_partner_bank
|
||||
msgid "Bank Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_company_l10n_ch_isr_print_bank_location
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_config_settings_l10n_ch_isr_print_bank_location
|
||||
msgid "Boolean option field indicating whether or not the alternate layout (the one printing bank name and address) must be used when generating an ISR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_sent
|
||||
msgid "Boolean value telling whether or not the ISR corresponding to this invoice has already been printed or sent by mail."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_valid
|
||||
msgid "Boolean value. True iff all the data required to generate the ISR are present"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_bank_l10n_ch_postal_chf
|
||||
msgid "CHF ISR reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.cash.rounding,name:l10n_ch.cash_rounding_5_centime
|
||||
msgid "Coinage 0.05"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_currency_name
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_bank_l10n_ch_postal_eur
|
||||
msgid "EUR ISR reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_mail_template
|
||||
msgid "Email Templates"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_mail_compose_message
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.actions.report,name:l10n_ch.l10n_ch_isr_report
|
||||
msgid "ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.l10n_ch_isr_report_template
|
||||
msgid "ISR for invoice"
|
||||
msgstr "SR relativo alla fattura"
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_number_spaced
|
||||
msgid "ISR number split in blocks of 5 characters (right-justified), to generate ISR report."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.isr_invoice_search_view
|
||||
msgid "ISR reference number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: code:addons/l10n_ch/models/mail_compose_message.py:23
|
||||
#, python-format
|
||||
msgid "ISR sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_number
|
||||
msgid "L10N Ch Isr Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_number_spaced
|
||||
msgid "L10N Ch Isr Number Spaced"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_optical_line
|
||||
msgid "L10N Ch Isr Optical Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_postal
|
||||
msgid "L10N Ch Isr Postal"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_postal_formatted
|
||||
msgid "L10N Ch Isr Postal Formatted"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_sent
|
||||
msgid "L10N Ch Isr Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_valid
|
||||
msgid "L10N Ch Isr Valid"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_partner_bank_l10n_ch_postal
|
||||
msgid "L10N Ch Postal"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_optical_line
|
||||
msgid "Optical reading line, as it will be printed on ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_postal_formatted
|
||||
msgid "Postal reference of the bank, formated with '-' and without the padding zeros, to generate ISR report."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.isr_invoice_form
|
||||
msgid "Print ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_company_l10n_ch_isr_print_bank_location
|
||||
msgid "Print bank location"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_config_settings_l10n_ch_isr_print_bank_location
|
||||
msgid "Print bank on ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.res_config_settings_view_form
|
||||
msgid "Print the coordinates of your bank under the 'Payment for' title of the ISR.\n"
|
||||
" Your address will be moved to the 'in favour of' section."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.menu,name:l10n_ch.account_reports_ch_statements_menu
|
||||
msgid "Swiss Statements"
|
||||
msgid "Switzerland"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_0
|
||||
msgid "TVA 0%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_25
|
||||
msgid "TVA 2.5%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_37
|
||||
msgid "TVA 3.7%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_38
|
||||
msgid "TVA 3.8%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_77
|
||||
msgid "TVA 7.7%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_8
|
||||
msgid "TVA 8%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_partner_bank_l10n_ch_postal
|
||||
msgid "The ISR number of the company within the bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_currency_name
|
||||
msgid "The name of this invoice's currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_postal
|
||||
msgid "The postal reference identifying the bank managing this ISR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_bank_l10n_ch_postal_chf
|
||||
msgid "The postal reference of the bank, used to generate ISR payment slips in CHF."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_bank_l10n_ch_postal_eur
|
||||
msgid "The postal reference of the bank, used to generate ISR payment slips in EUR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_number
|
||||
msgid "The reference number associated with this invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: code:addons/l10n_ch/models/account_invoice.py:154
|
||||
#, python-format
|
||||
msgid "You cannot generate an ISR yet.\n"
|
||||
"\n"
|
||||
" For this, you need to :\n"
|
||||
"\n"
|
||||
" - set a valid postal account number (or an IBAN referencing one) for your company\n"
|
||||
"\n"
|
||||
" - define its bank\n"
|
||||
"\n"
|
||||
" - associate this bank with a postal reference for the currency used in this invoice\n"
|
||||
"\n"
|
||||
" - fill the 'bank account' field of the invoice with the postal to be used to receive the related payment. A default account will be automatically set for all invoices created after you defined a postal account for your company."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_config_settings
|
||||
msgid "res.config.settings"
|
||||
msgstr ""
|
||||
|
||||
|
@ -4,10 +4,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0\n"
|
||||
"Project-Id-Version: Odoo Server 11.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-09-18 15:42+0000\n"
|
||||
"PO-Revision-Date: 2015-09-18 15:42+0000\n"
|
||||
"POT-Creation-Date: 2018-01-16 15:58+0000\n"
|
||||
"PO-Revision-Date: 2018-01-16 15:58+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -16,12 +16,251 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.actions.client,name:l10n_ch.action_client_l10n_ch_menu
|
||||
msgid "Open Account Dashboard Menu"
|
||||
#: model:ir.model,name:l10n_ch.model_res_bank
|
||||
msgid "Bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_partner_bank
|
||||
msgid "Bank Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_company_l10n_ch_isr_print_bank_location
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_config_settings_l10n_ch_isr_print_bank_location
|
||||
msgid "Boolean option field indicating whether or not the alternate layout (the one printing bank name and address) must be used when generating an ISR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_sent
|
||||
msgid "Boolean value telling whether or not the ISR corresponding to this invoice has already been printed or sent by mail."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_valid
|
||||
msgid "Boolean value. True iff all the data required to generate the ISR are present"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_bank_l10n_ch_postal_chf
|
||||
msgid "CHF ISR reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.cash.rounding,name:l10n_ch.cash_rounding_5_centime
|
||||
msgid "Coinage 0.05"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_currency_name
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_bank_l10n_ch_postal_eur
|
||||
msgid "EUR ISR reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_mail_template
|
||||
msgid "Email Templates"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_mail_compose_message
|
||||
msgid "Email composition wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.actions.report,name:l10n_ch.l10n_ch_isr_report
|
||||
msgid "ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.l10n_ch_isr_report_template
|
||||
msgid "ISR for invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_number_spaced
|
||||
msgid "ISR number split in blocks of 5 characters (right-justified), to generate ISR report."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.isr_invoice_search_view
|
||||
msgid "ISR reference number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: code:addons/l10n_ch/models/mail_compose_message.py:23
|
||||
#, python-format
|
||||
msgid "ISR sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_number
|
||||
msgid "L10N Ch Isr Number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_number_spaced
|
||||
msgid "L10N Ch Isr Number Spaced"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_optical_line
|
||||
msgid "L10N Ch Isr Optical Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_postal
|
||||
msgid "L10N Ch Isr Postal"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_postal_formatted
|
||||
msgid "L10N Ch Isr Postal Formatted"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_sent
|
||||
msgid "L10N Ch Isr Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_account_invoice_l10n_ch_isr_valid
|
||||
msgid "L10N Ch Isr Valid"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_partner_bank_l10n_ch_postal
|
||||
msgid "L10N Ch Postal"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_optical_line
|
||||
msgid "Optical reading line, as it will be printed on ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_postal_formatted
|
||||
msgid "Postal reference of the bank, formated with '-' and without the padding zeros, to generate ISR report."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.isr_invoice_form
|
||||
msgid "Print ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_company_l10n_ch_isr_print_bank_location
|
||||
msgid "Print bank location"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,field_description:l10n_ch.field_res_config_settings_l10n_ch_isr_print_bank_location
|
||||
msgid "Print bank on ISR"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.view,arch_db:l10n_ch.res_config_settings_view_form
|
||||
msgid "Print the coordinates of your bank under the 'Payment for' title of the ISR.\n"
|
||||
" Your address will be moved to the 'in favour of' section."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.ui.menu,name:l10n_ch.account_reports_ch_statements_menu
|
||||
msgid "Swiss Statements"
|
||||
msgid "Switzerland"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_0
|
||||
msgid "TVA 0%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_25
|
||||
msgid "TVA 2.5%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_37
|
||||
msgid "TVA 3.7%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_38
|
||||
msgid "TVA 3.8%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_77
|
||||
msgid "TVA 7.7%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:account.tax.group,name:l10n_ch.tax_group_tva_8
|
||||
msgid "TVA 8%"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_partner_bank_l10n_ch_postal
|
||||
msgid "The ISR number of the company within the bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_currency_name
|
||||
msgid "The name of this invoice's currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_postal
|
||||
msgid "The postal reference identifying the bank managing this ISR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_bank_l10n_ch_postal_chf
|
||||
msgid "The postal reference of the bank, used to generate ISR payment slips in CHF."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_res_bank_l10n_ch_postal_eur
|
||||
msgid "The postal reference of the bank, used to generate ISR payment slips in EUR."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model.fields,help:l10n_ch.field_account_invoice_l10n_ch_isr_number
|
||||
msgid "The reference number associated with this invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: code:addons/l10n_ch/models/account_invoice.py:154
|
||||
#, python-format
|
||||
msgid "You cannot generate an ISR yet.\n"
|
||||
"\n"
|
||||
" For this, you need to :\n"
|
||||
"\n"
|
||||
" - set a valid postal account number (or an IBAN referencing one) for your company\n"
|
||||
"\n"
|
||||
" - define its bank\n"
|
||||
"\n"
|
||||
" - associate this bank with a postal reference for the currency used in this invoice\n"
|
||||
"\n"
|
||||
" - fill the 'bank account' field of the invoice with the postal to be used to receive the related payment. A default account will be automatically set for all invoices created after you defined a postal account for your company."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_ch
|
||||
#: model:ir.model,name:l10n_ch.model_res_config_settings
|
||||
msgid "res.config.settings"
|
||||
msgstr ""
|
||||
|
||||
|
@ -36,13 +36,13 @@ class AccountMove(models.Model):
|
||||
_('An error occured when computing the inalterability. Impossible to get the unique previous posted journal entry.'))
|
||||
|
||||
#build and return the hash
|
||||
return self._compute_hash(prev_move.l10n_fr_hash if prev_move else '')
|
||||
return self._compute_hash(prev_move.l10n_fr_hash if prev_move else u'')
|
||||
|
||||
def _compute_hash(self, previous_hash):
|
||||
""" Computes the hash of the browse_record given as self, based on the hash
|
||||
of the previous record in the company's securisation sequence given as parameter"""
|
||||
self.ensure_one()
|
||||
hash_string = sha256(previous_hash + self.l10n_fr_string_to_hash)
|
||||
hash_string = sha256((previous_hash + self.l10n_fr_string_to_hash).encode('utf-8'))
|
||||
return hash_string.hexdigest()
|
||||
|
||||
def _compute_string_to_hash(self):
|
||||
@ -63,7 +63,7 @@ class AccountMove(models.Model):
|
||||
values[k] = _getattrstring(line, field)
|
||||
#make the json serialization canonical
|
||||
# (https://tools.ietf.org/html/draft-staykov-hu-json-canonical-form-00)
|
||||
move.l10n_fr_string_to_hash = dumps(values, sort_keys=True, encoding="utf-8",
|
||||
move.l10n_fr_string_to_hash = dumps(values, sort_keys=True,
|
||||
ensure_ascii=True, indent=None,
|
||||
separators=(',',':'))
|
||||
|
||||
@ -118,7 +118,7 @@ class AccountMove(models.Model):
|
||||
|
||||
if not moves:
|
||||
raise UserError(_('There isn\'t any journal entry flagged for data inalterability yet for the company %s. This mechanism only runs for journal entries generated after the installation of the module France - Certification CGI 286 I-3 bis.') % self.env.user.company_id.name)
|
||||
previous_hash = ''
|
||||
previous_hash = u''
|
||||
start_move_info = []
|
||||
for move in moves:
|
||||
if move.l10n_fr_hash != move._compute_hash(previous_hash=previous_hash):
|
||||
|
@ -3,7 +3,6 @@ flectra.define('mail.systray', function (require) {
|
||||
|
||||
var config = require('web.config');
|
||||
var core = require('web.core');
|
||||
var framework = require('web.framework');
|
||||
var session = require('web.session');
|
||||
var SystrayMenu = require('web.SystrayMenu');
|
||||
var Widget = require('web.Widget');
|
||||
@ -175,6 +174,9 @@ var ActivityMenu = Widget.extend({
|
||||
return self._rpc({
|
||||
model: 'res.users',
|
||||
method: 'activity_user_count',
|
||||
kwargs: {
|
||||
context: session.user_context,
|
||||
},
|
||||
}).then(function (data) {
|
||||
self.activities = data;
|
||||
self.activityCounter = _.reduce(data, function(total_count, p_data){ return total_count + p_data.total_count; }, 0);
|
||||
|
105
addons/mail/static/tests/client_action_mobile_tests.js
Normal file
105
addons/mail/static/tests/client_action_mobile_tests.js
Normal file
@ -0,0 +1,105 @@
|
||||
odoo.define('mail.client_action_mobile_tests', function (require) {
|
||||
"use strict";
|
||||
|
||||
var session = require('web.session');
|
||||
var testUtils = require('web.test_utils');
|
||||
var Widget = require('web.Widget');
|
||||
|
||||
var ChatAction = require('mail.chat_client_action');
|
||||
var chat_manager = require('mail.chat_manager');
|
||||
|
||||
QUnit.module('mail', {}, function () {
|
||||
|
||||
QUnit.module('Discuss client action in mobile', {
|
||||
beforeEach: function () {
|
||||
this.data = {
|
||||
'mail.message': {
|
||||
fields: {},
|
||||
},
|
||||
};
|
||||
this.createChatAction = function (params) {
|
||||
var Parent = Widget.extend({
|
||||
do_push_state: function () {},
|
||||
});
|
||||
var parent = new Parent();
|
||||
testUtils.addMockEnvironment(parent, {
|
||||
data: this.data,
|
||||
archs: {
|
||||
'mail.message,false,search': '<search/>',
|
||||
},
|
||||
session: params.session || {},
|
||||
intercepts: params.intercepts || {},
|
||||
});
|
||||
var chatAction = new ChatAction(parent, params);
|
||||
chatAction.set_cp_bus(new Widget());
|
||||
chatAction.appendTo($('#qunit-fixture'));
|
||||
|
||||
return chatAction;
|
||||
};
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
QUnit.test('mobile basic rendering', function (assert) {
|
||||
// This is a very basic first test for the client action. However, with
|
||||
// the chat_manager, it is hard to override RPCs (for instance, the
|
||||
// /mail/client_action route is always called when the test suite is
|
||||
// launched), and we must wait for this RPC to be done before starting to
|
||||
// test the interface. This should be refactored to facilitate the testing.
|
||||
assert.expect(9);
|
||||
var done = assert.async();
|
||||
|
||||
var rpc = session.rpc;
|
||||
|
||||
var chatAction = this.createChatAction({
|
||||
id: 1,
|
||||
context: {},
|
||||
params: {},
|
||||
intercepts: {
|
||||
get_session: function (ev) {
|
||||
ev.data.callback({});
|
||||
},
|
||||
},
|
||||
session: {
|
||||
rpc: function (route, args) {
|
||||
if (args.method === 'message_fetch') {
|
||||
return $.when([]);
|
||||
}
|
||||
return rpc.apply(this, arguments);
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
chat_manager.is_ready.then(function () {
|
||||
// test basic rendering in mobile
|
||||
assert.strictEqual(chatAction.$('.o_mail_chat_mobile_control_panel').length, 1,
|
||||
"should have rendered a control panel");
|
||||
assert.strictEqual(chatAction.$('.o_mail_chat_content .o_mail_no_content').length, 1,
|
||||
"should display the no content message");
|
||||
assert.strictEqual(chatAction.$('.o_mail_mobile_tabs').length, 1,
|
||||
"should have rendered the tabs");
|
||||
assert.ok(chatAction.$('.o_mail_mobile_tab[data-type=channel_inbox]').hasClass('active'),
|
||||
"should be in inbox tab");
|
||||
assert.strictEqual(chatAction.$('.o_mail_chat_mobile_inbox_buttons:visible').length, 1,
|
||||
"inbox/starred buttons should be visible");
|
||||
assert.ok(chatAction.$('.o_mail_chat_mobile_inbox_buttons .o_channel_inbox_item[data-type=channel_inbox]').hasClass('btn-primary'),
|
||||
"should be in inbox");
|
||||
|
||||
// move to DMs tab
|
||||
chatAction.$('.o_mail_mobile_tab[data-type=dm]').click();
|
||||
assert.ok(chatAction.$('.o_mail_mobile_tab[data-type=dm]').hasClass('active'),
|
||||
"should be in DMs tab");
|
||||
assert.strictEqual(chatAction.$('.o_mail_chat_content .o_mail_no_content').length, 0,
|
||||
"should display the no content message");
|
||||
chatAction.$('.o_mail_chat_button_dm').click(); // click to add a channel
|
||||
assert.strictEqual(chatAction.$('.o_mail_add_channel input:visible').length, 1,
|
||||
"should display the input to add a channel");
|
||||
|
||||
chatAction.destroy();
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
@ -1,88 +0,0 @@
|
||||
flectra.define('mail.client_action_test', function (require) {
|
||||
"use strict";
|
||||
|
||||
var testUtils = require('web.test_utils');
|
||||
var Widget = require('web.Widget');
|
||||
|
||||
var ChatAction = require("mail.chat_client_action");
|
||||
|
||||
QUnit.module('mail', {}, function () {
|
||||
|
||||
QUnit.module('Discuss client action', {
|
||||
beforeEach: function () {
|
||||
this.data = {
|
||||
'mail.message': {
|
||||
fields: {},
|
||||
},
|
||||
};
|
||||
this.createChatAction = function (params) {
|
||||
var parent = new Widget();
|
||||
testUtils.addMockEnvironment(parent, {
|
||||
data: this.data,
|
||||
archs: {
|
||||
'mail.message,false,search': '<search/>',
|
||||
},
|
||||
config: {device: {isMobile: true}},
|
||||
});
|
||||
var chatAction = new ChatAction(parent, params);
|
||||
chatAction.set_cp_bus(new Widget());
|
||||
chatAction.appendTo($('#qunit-fixture'));
|
||||
|
||||
return chatAction;
|
||||
};
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
QUnit.skip('mobile basic rendering', function (assert) {
|
||||
// Unfortunately, this test is skipped for now because there is no way to
|
||||
// execute the whole test suite in mobile (it only works test by test), so
|
||||
// as the client action include for mobile is rejected when we are not in
|
||||
// mobile, it isn't possible to test it
|
||||
// Moreover, RPCs done by the chat_manager (e.g. message_fetch) should be
|
||||
// properly mocked.
|
||||
assert.expect(11);
|
||||
|
||||
var parent = new Widget();
|
||||
testUtils.addMockEnvironment(parent, {
|
||||
data: this.data,
|
||||
archs: {
|
||||
'mail.message,false,search': '<search/>',
|
||||
},
|
||||
config: {device: {isMobile: true}},
|
||||
});
|
||||
|
||||
var params = {
|
||||
id: 1,
|
||||
context: {},
|
||||
params: {},
|
||||
};
|
||||
var chatAction = this.createChatAction(params);
|
||||
|
||||
// test basic rendering in mobile
|
||||
assert.equal(chatAction.$(".o_mail_chat_mobile_control_panel").length, 1, "Mobile control panel created");
|
||||
assert.equal(chatAction.$(".o_mail_mobile_tab").length, 4, "Four mobile tabs created");
|
||||
assert.equal(chatAction.$('.o_mail_chat_content').length, 1, "One default chat content pane created");
|
||||
assert.equal(chatAction.$(".o_mail_chat_tab_pane").length, 3, "Three mobile tab panes created");
|
||||
|
||||
// Inbox
|
||||
assert.equal(chatAction.activeMobileTab, "channel_inbox", "'channel_inbox' is default active tab");
|
||||
assert.ok(chatAction.$(".o_channel_inbox_item:nth(0)").hasClass("btn-primary"), "Showing 'Inbox'");
|
||||
|
||||
// Starred
|
||||
chatAction.$(".o_channel_inbox_item[data-type='channel_starred']").click();
|
||||
assert.ok(chatAction.$(".o_channel_inbox_item:nth(1)").hasClass("btn-primary"), "Clicked on 'Starred'");
|
||||
|
||||
assert.ok(chatAction.$(".o_mail_chat_content").is(":visible"), "Default main content pane visible");
|
||||
|
||||
chatAction.$(".o_mail_mobile_tab[data-type='dm']").click();
|
||||
assert.equal(chatAction.activeMobileTab, "dm", "After click on 'Conversation', is now active tab");
|
||||
|
||||
assert.ok(!chatAction.$(".o_mail_chat_content").is(":visible"), "none", "'Main' content pane is invisible");
|
||||
assert.ok(chatAction.$(".o_mail_chat_tab_pane:nth(0)").is(":visible"), "'Conversation' pane is visible");
|
||||
|
||||
chatAction.destroy();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
@ -41,13 +41,18 @@
|
||||
|
||||
<template id="qunit_suite" name="mail_tests" inherit_id="web.qunit_suite">
|
||||
<xpath expr="//t[@t-set='head']" position="inside">
|
||||
<script type="text/javascript" src="/mail/static/tests/client_action_tests.js"></script>
|
||||
<script type="text/javascript" src="/mail/static/tests/chatter_tests.js"></script>
|
||||
<script type="text/javascript" src="/mail/static/tests/systray_tests.js"></script>
|
||||
<script type="text/javascript" src="/mail/static/tests/chat_window_test.js"></script>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="qunit_mobile_suite" name="mail_mobile_tests" inherit_id="web.qunit_mobile_suite">
|
||||
<xpath expr="//t[@t-set='head']" position="inside">
|
||||
<script type="text/javascript" src="/mail/static/tests/client_action_mobile_tests.js"></script>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="message_origin_link">
|
||||
<p>This <t t-esc="self._description.lower()"/> has been <span t-if="edit">modified</span><span t-if="not edit">created</span> from:
|
||||
<t t-foreach="origin" t-as="o">
|
||||
|
@ -88,6 +88,10 @@ class MrpUnbuild(models.Model):
|
||||
if self.product_id.tracking != 'none' and not self.lot_id.id:
|
||||
raise UserError(_('Should have a lot for the finished product'))
|
||||
|
||||
if self.mo_id:
|
||||
if self.mo_id.state != 'done':
|
||||
raise UserError(_('You cannot unbuild a undone manufacturing order.'))
|
||||
|
||||
consume_move = self._generate_consume_moves()[0]
|
||||
produce_moves = self._generate_produce_moves()
|
||||
|
||||
@ -156,12 +160,31 @@ class MrpUnbuild(models.Model):
|
||||
def _generate_produce_moves(self):
|
||||
moves = self.env['stock.move']
|
||||
for unbuild in self:
|
||||
factor = unbuild.product_uom_id._compute_quantity(unbuild.product_qty, unbuild.bom_id.product_uom_id) / unbuild.bom_id.product_qty
|
||||
boms, lines = unbuild.bom_id.explode(unbuild.product_id, factor, picking_type=unbuild.bom_id.picking_type_id)
|
||||
for line, line_data in lines:
|
||||
moves += unbuild._generate_move_from_bom_line(line, line_data['qty'])
|
||||
if unbuild.mo_id:
|
||||
raw_moves = unbuild.mo_id.move_raw_ids.filtered(lambda move: move.state == 'done')
|
||||
factor = unbuild.product_qty / unbuild.mo_id.product_uom_id._compute_quantity(unbuild.mo_id.product_qty, unbuild.product_uom_id)
|
||||
for raw_move in raw_moves:
|
||||
moves += unbuild._generate_move_from_raw_moves(raw_move, factor)
|
||||
else:
|
||||
factor = unbuild.product_uom_id._compute_quantity(unbuild.product_qty, unbuild.bom_id.product_uom_id) / unbuild.bom_id.product_qty
|
||||
boms, lines = unbuild.bom_id.explode(unbuild.product_id, factor, picking_type=unbuild.bom_id.picking_type_id)
|
||||
for line, line_data in lines:
|
||||
moves += unbuild._generate_move_from_bom_line(line, line_data['qty'])
|
||||
return moves
|
||||
|
||||
def _generate_move_from_raw_moves(self, raw_move, factor):
|
||||
return self.env['stock.move'].create({
|
||||
'name': self.name,
|
||||
'date': self.create_date,
|
||||
'product_id': raw_move.product_id.id,
|
||||
'product_uom_qty': raw_move.product_uom_qty * factor,
|
||||
'product_uom': raw_move.product_uom.id,
|
||||
'procure_method': 'make_to_stock',
|
||||
'location_dest_id': self.location_dest_id.id,
|
||||
'location_id': raw_move.location_dest_id.id,
|
||||
'unbuild_id': self.id,
|
||||
})
|
||||
|
||||
def _generate_move_from_bom_line(self, bom_line, quantity):
|
||||
return self.env['stock.move'].create({
|
||||
'name': self.name,
|
||||
|
@ -122,7 +122,7 @@
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field name="mo_id" required="True"/>
|
||||
<field name="mo_id" domain="[('state','=','done')]"/>
|
||||
<field name="location_id" groups="stock.group_stock_multi_locations"/>
|
||||
<field name="location_dest_id" groups="stock.group_stock_multi_locations"/>
|
||||
<field name="has_tracking" invisible="1"/>
|
||||
|
@ -43,11 +43,10 @@ try:
|
||||
else:
|
||||
_logger.warning(_('Unable to format %s:\n%s') % number, e)
|
||||
return number
|
||||
if always_international and phone_nbr.country_code != country_phone_code:
|
||||
if always_international or phone_nbr.country_code != country_phone_code:
|
||||
phone_fmt = phonenumbers.PhoneNumberFormat.INTERNATIONAL
|
||||
else:
|
||||
phone_fmt = phonenumbers.PhoneNumberFormat.NATIONAL
|
||||
|
||||
return phonenumbers.format_number(phone_nbr, phone_fmt)
|
||||
|
||||
except ImportError:
|
||||
|
@ -1,8 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
The purpose of this view is to move the VAT field at the top of the
|
||||
company form. That way, the user will fill it first
|
||||
-->
|
||||
<flectra>
|
||||
<record id="res_company_view_form_phone_validation" model="ir.ui.view">
|
||||
<field name="name">res.company.view.form.phone_validation</field>
|
||||
|
@ -127,6 +127,15 @@
|
||||
<filter string="Archived" name="inactive" domain="[('active','=',False)]"/>
|
||||
<field string="Attributes" name="attribute_line_ids" groups="product.group_product_variant"/>
|
||||
<field name="pricelist_id" widget="selection" context="{'pricelist': self}" filter_domain="[]" groups="product.group_sale_pricelist"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
|
||||
<separator/>
|
||||
<filter string="Late Activities" name="activities_overdue"
|
||||
domain="[('activity_ids.date_deadline', '<', context_today().strftime('%Y-%m-%d'))]"
|
||||
help="Show all records which has next action date is before today"/>
|
||||
<filter string="Today Activities" name="activities_today"
|
||||
domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/>
|
||||
<filter string="Future Activities" name="activities_upcoming_all"
|
||||
domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d'))
|
||||
]"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -44,7 +44,7 @@ class StockProductionLot(models.Model):
|
||||
# Assign dates according to products data
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
dates = self._get_dates(vals.get('product_id'))
|
||||
dates = self._get_dates(vals.get('product_id') or self.env.context.get('default_product_id'))
|
||||
for d in dates:
|
||||
if not vals.get(d):
|
||||
vals[d] = dates[d]
|
||||
|
@ -9,6 +9,16 @@ from flectra.addons.iap.models import iap
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
try:
|
||||
import phonenumbers
|
||||
_sms_phonenumbers_lib_imported = True
|
||||
|
||||
except ImportError:
|
||||
_sms_phonenumbers_lib_imported = False
|
||||
_logger.warning(
|
||||
"The `phonenumbers` Python module is not installed. Try: pip install phonenumbers."
|
||||
)
|
||||
|
||||
|
||||
class SendSMS(models.TransientModel):
|
||||
_name = 'sms.send_sms'
|
||||
@ -16,6 +26,27 @@ class SendSMS(models.TransientModel):
|
||||
recipients = fields.Char('Recipients', required=True)
|
||||
message = fields.Text('Message', required=True)
|
||||
|
||||
def _phone_get_country(self, partner):
|
||||
if 'country_id' in partner:
|
||||
return partner.country_id
|
||||
return self.env.user.company_id.country_id
|
||||
|
||||
def _sms_sanitization(self, partner, field_name):
|
||||
number = partner[field_name]
|
||||
if _sms_phonenumbers_lib_imported:
|
||||
country = self._phone_get_country(partner)
|
||||
country_code = country.code if country else None
|
||||
try:
|
||||
phone_nbr = phonenumbers.parse(number, region=country_code, keep_raw_input=True)
|
||||
except phonenumbers.phonenumberutil.NumberParseException:
|
||||
return number
|
||||
if not phonenumbers.is_possible_number(phone_nbr) or not phonenumbers.is_valid_number(phone_nbr):
|
||||
return number
|
||||
phone_fmt = phonenumbers.PhoneNumberFormat.INTERNATIONAL
|
||||
return phonenumbers.format_number(phone_nbr, phone_fmt).replace(' ', '')
|
||||
else:
|
||||
return number
|
||||
|
||||
def _get_records(self, model):
|
||||
if self.env.context.get('active_domain'):
|
||||
records = model.search(self.env.context.get('active_domain'))
|
||||
@ -38,7 +69,8 @@ class SendSMS(models.TransientModel):
|
||||
phone_numbers = []
|
||||
no_phone_partners = []
|
||||
for partner in partners:
|
||||
number = partner.mobile
|
||||
default_field_name = 'mobile' if partner.mobile else 'phone'
|
||||
number = self._sms_sanitization(partner, self.env.context('field_name') or default_field_name)
|
||||
if number:
|
||||
phone_numbers.append(number)
|
||||
else:
|
||||
|
@ -8,7 +8,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Add pickings to batch">
|
||||
<separator string="Select a batch"/>
|
||||
<field name="batch_id" class="oe_inline"/>
|
||||
<field name="batch_id" class="oe_inline" options="{'no_create_edit': True, 'no_open': True}"/>
|
||||
<footer>
|
||||
<button name="attach_pickings" type="object" string="Add to Batch" class="btn-primary"/>
|
||||
<button string="Cancel" class="btn-default" special="cancel"/>
|
||||
|
@ -44,11 +44,6 @@ var AbstractField = Widget.extend({
|
||||
navigation_move: '_onNavigationMove',
|
||||
},
|
||||
|
||||
/**
|
||||
* fields can extend the context, e.g. binary fields add {bin_size: true}
|
||||
*/
|
||||
context: null,
|
||||
|
||||
/**
|
||||
* An object representing fields to be fetched by the model eventhough not present in the view
|
||||
* This object contains "field name" as key and an object as value.
|
||||
|
@ -2374,7 +2374,7 @@ var BasicModel = AbstractModel.extend({
|
||||
});
|
||||
record.data[fieldName] = list.id;
|
||||
if (!fieldInfo.__no_fetch) {
|
||||
var def = self._readUngroupedList(list).then(function (list) {
|
||||
var def = self._readUngroupedList(list).then(function () {
|
||||
return $.when(
|
||||
self._fetchX2ManysBatched(list),
|
||||
self._fetchReferencesBatched(list)
|
||||
@ -2403,6 +2403,7 @@ var BasicModel = AbstractModel.extend({
|
||||
var fields = view ? view.fields : fieldInfo.relatedFields;
|
||||
var viewType = view ? view.type : fieldInfo.viewType;
|
||||
list = this._applyX2ManyOperations(list);
|
||||
this._sortList(list);
|
||||
var x2mRecords = [];
|
||||
|
||||
// step 1: collect ids
|
||||
@ -3092,16 +3093,13 @@ var BasicModel = AbstractModel.extend({
|
||||
id: {type: 'integer'},
|
||||
}, params.fields);
|
||||
|
||||
// datapoint context is extended by fields widgets
|
||||
var context = _.extend({}, params.context);
|
||||
|
||||
var dataPoint = {
|
||||
_cache: type === 'list' ? {} : undefined,
|
||||
_changes: null,
|
||||
_domains: {},
|
||||
_rawChanges: {},
|
||||
aggregateValues: params.aggregateValues || {},
|
||||
context: context,
|
||||
context: params.context,
|
||||
count: params.count || res_ids.length,
|
||||
data: data,
|
||||
domain: params.domain || [],
|
||||
|
@ -7640,6 +7640,46 @@ QUnit.module('relational_fields', {
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test('one2many with multiple pages and sequence field, part2', function (assert) {
|
||||
assert.expect(1);
|
||||
|
||||
this.data.partner.records[0].turtles = [3, 2, 1];
|
||||
this.data.partner.onchanges.turtles = function () {};
|
||||
|
||||
var form = createView({
|
||||
View: FormView,
|
||||
model: 'partner',
|
||||
data: this.data,
|
||||
arch:'<form string="Partners">' +
|
||||
'<field name="turtles">' +
|
||||
'<tree limit="2">' +
|
||||
'<field name="turtle_int" widget="handle"/>' +
|
||||
'<field name="turtle_foo"/>' +
|
||||
'<field name="partner_ids" invisible="1"/>' +
|
||||
'</tree>' +
|
||||
'</field>' +
|
||||
'</form>',
|
||||
res_id: 1,
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === 'onchange') {
|
||||
return $.when({value: { turtles: [
|
||||
[5],
|
||||
[1, 1, {turtle_foo: "from onchange id2", partner_ids: [[5]]}],
|
||||
[1, 3, {turtle_foo: "from onchange id3", partner_ids: [[5]]}],
|
||||
]}});
|
||||
}
|
||||
return this._super(route, args);
|
||||
},
|
||||
viewOptions: {
|
||||
mode: 'edit',
|
||||
},
|
||||
});
|
||||
form.$('span[name="delete"]').first().click();
|
||||
assert.strictEqual(form.$('.o_data_row').text(), 'from onchange id2from onchange id3',
|
||||
'onchange has been properly applied');
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.module('FieldMany2Many');
|
||||
|
||||
QUnit.test('many2many kanban: edition', function (assert) {
|
||||
@ -9251,7 +9291,7 @@ QUnit.module('relational_fields', {
|
||||
'</tree>',
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === 'read' && args.model === 'partner_type') {
|
||||
assert.deepEqual(args.kwargs.context.take, 'five',
|
||||
assert.deepEqual(args.kwargs.context, {take: 'five'},
|
||||
'The context should be passed to the RPC');
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
|
@ -13,7 +13,7 @@ class WebSuite(flectra.tests.HttpCase):
|
||||
|
||||
def test_01_js(self):
|
||||
# webclient desktop test suite
|
||||
self.phantom_js('/web/tests?mod=web', "", "", login='admin', timeout=300)
|
||||
self.phantom_js('/web/tests?mod=web', "", "", login='admin', timeout=360)
|
||||
|
||||
def test_02_js(self):
|
||||
# webclient mobile test suite
|
||||
|
@ -622,6 +622,7 @@ var SnippetsMenu = Widget.extend({
|
||||
* - Remove the 'contentEditable' attributes
|
||||
*/
|
||||
cleanForSave: function () {
|
||||
this.trigger_up('ready_to_clean_for_save');
|
||||
_.each(this.snippetEditors, function (snippetEditor) {
|
||||
snippetEditor.cleanForSave();
|
||||
});
|
||||
|
@ -43,8 +43,16 @@ var WebsiteRoot = BodyManager.extend({
|
||||
}),
|
||||
custom_events: _.extend({}, BodyManager.prototype.custom_events || {}, {
|
||||
animation_start_demand: '_onAnimationStartDemand',
|
||||
ready_to_clean_for_save: '_onAnimationStopDemand',
|
||||
}),
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
*/
|
||||
init: function () {
|
||||
this._super.apply(this, arguments);
|
||||
this.animations = [];
|
||||
},
|
||||
/**
|
||||
* @override
|
||||
*/
|
||||
@ -108,6 +116,7 @@ var WebsiteRoot = BodyManager.extend({
|
||||
* registry has been instantiated outside of the class and is simply
|
||||
* returned here.
|
||||
*
|
||||
* @private
|
||||
* @override
|
||||
*/
|
||||
_getRegistry: function () {
|
||||
@ -118,6 +127,7 @@ var WebsiteRoot = BodyManager.extend({
|
||||
* `selector` key of one of the registered animations
|
||||
* (@see Animation.selector).
|
||||
*
|
||||
* @private
|
||||
* @param {boolean} [editableMode=false] - true if the page is in edition mode
|
||||
* @param {jQuery} [$from]
|
||||
* only initialize the animations whose `selector` matches the
|
||||
@ -138,9 +148,11 @@ var WebsiteRoot = BodyManager.extend({
|
||||
var $snippet = $(el);
|
||||
var animation = $snippet.data('snippet-view');
|
||||
if (animation) {
|
||||
self.animations = _.without(self.animations, animation);
|
||||
animation.destroy();
|
||||
}
|
||||
animation = new Animation(self, editableMode);
|
||||
self.animations.push(animation);
|
||||
$snippet.data('snippet-view', animation);
|
||||
return animation.attachTo($snippet);
|
||||
});
|
||||
@ -148,6 +160,18 @@ var WebsiteRoot = BodyManager.extend({
|
||||
});
|
||||
return $.when.apply($, defs);
|
||||
},
|
||||
/**
|
||||
* Destroys all animation instances. Especially needed before saving while
|
||||
* in edition mode for example.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_stopAnimations: function () {
|
||||
_.each(this.animations, function (animation) {
|
||||
animation.destroy();
|
||||
});
|
||||
this.animations = [];
|
||||
},
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Handlers
|
||||
@ -165,6 +189,15 @@ var WebsiteRoot = BodyManager.extend({
|
||||
.done(ev.data.onSuccess)
|
||||
.fail(ev.data.onFailure);
|
||||
},
|
||||
/**
|
||||
* Called when the root is notified that the animations have to be
|
||||
* stopped.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
_onAnimationStopDemand: function () {
|
||||
this._stopAnimations();
|
||||
},
|
||||
/**
|
||||
* @todo review
|
||||
* @private
|
||||
|
@ -21,7 +21,10 @@ $(document).ready(function () {
|
||||
setTimeout(function () { payment_transaction_poll_status(); }, Math.ceil(_poll_nbr / 3) * 1000);
|
||||
}
|
||||
else {
|
||||
result.message = "<i class='fa fa-warning' />";
|
||||
var $message = $(result.message);
|
||||
$message.find('span:first').prepend($(
|
||||
"<i title='We are waiting the confirmation of the bank or payment provider' class='fa fa-warning' style='margin-right:10px;'>"));
|
||||
result.message = $message.html();
|
||||
}
|
||||
}
|
||||
$('div.oe_website_sale_tx_status').html(result.message);
|
||||
|
@ -360,13 +360,6 @@ Source installation requires manually installing dependencies:
|
||||
Install ``psycopg`` using the installer here
|
||||
http://www.stickpeople.com/projects/python/win-psycopg/
|
||||
|
||||
Then edit the requirements.txt file:
|
||||
|
||||
- remove ``psycopg2`` as you already have it.
|
||||
- remove the optional ``python-ldap``, ``gevent`` and ``psutil`` because
|
||||
they require compilation.
|
||||
- add ``pypiwin32`` because it's needed under windows.
|
||||
|
||||
Then use pip to install the dependencies using the following
|
||||
command from a cmd.exe prompt (replace ``\YourOdooPath`` by the actual
|
||||
path where you downloaded Odoo):
|
||||
|
@ -82,8 +82,9 @@ Overview
|
||||
The Credits
|
||||
|
||||
Every service provided through the In-App platform can be used by the
|
||||
clients with tokens or *credits*. The monetary value of a credit depends
|
||||
on the service and is decided by the provider. This could be:
|
||||
clients with tokens or *credits*. The credits are an integer unit and
|
||||
their monetary value depends on the service and is decided by the
|
||||
provider. This could be:
|
||||
|
||||
* for an sms service: 1 credit = 1 sms,
|
||||
* for an add service: 1 credit = 1 add,
|
||||
@ -210,14 +211,20 @@ The credit packages are essentially a product with 4 characteristics.
|
||||
* Credits: the amount of credits the client is entitled to when buying the package,
|
||||
* Price: the price in *EUROS* for the time being (USD support is planned).
|
||||
|
||||
.. image:: images/package.png
|
||||
:align: center
|
||||
.. note::
|
||||
|
||||
Odoo takes a 25% commission on all package sales. Adjust your selling price accordingly.
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
Depending on the strategy, the price per credit can vary from one
|
||||
package to another.
|
||||
|
||||
|
||||
.. image:: images/package.png
|
||||
:align: center
|
||||
|
||||
.. _iap-odoo-app:
|
||||
|
||||
Odoo App
|
||||
@ -427,9 +434,11 @@ Capture
|
||||
|
||||
:param TransactionToken token:
|
||||
:param ServiceKey key:
|
||||
:param int credit_to_capture: (new - 15 Jan 2018) optional parameter to capture a smaller amount of credits than authorized
|
||||
:raises: :class:`~odoo.exceptions.AccessError`
|
||||
|
||||
.. code-block:: python
|
||||
:emphasize-lines: 8
|
||||
|
||||
r2 = requests.post(ODOO + '/iap/1/capture', json={
|
||||
'jsonrpc': '2.0',
|
||||
@ -438,6 +447,7 @@ Capture
|
||||
'params': {
|
||||
'token': tx,
|
||||
'key': SERVICE_KEY,
|
||||
'credit_to_capture': credit or False,
|
||||
}
|
||||
}).json()
|
||||
if 'error' in r:
|
||||
@ -575,9 +585,9 @@ Charging
|
||||
credits = int(MAXIMUM_POWER * factor)
|
||||
with charge(request.env, SERVICE_KEY, user_account, credits) as transaction:
|
||||
# TODO: allow other targets
|
||||
transaction.credit = credits * 0.85
|
||||
transaction.credit = max(credits, 2)
|
||||
# Sales ongoing one the energy price,
|
||||
# only 85% of the price will be charged/captured.
|
||||
# a maximum of 2 credits will be charged/captured.
|
||||
self.env['systems.planets'].search([
|
||||
('grid', '=', 'M-10'),
|
||||
('name', '=', 'Alderaan'),
|
||||
|
@ -678,7 +678,7 @@ class IrActionsReport(models.Model):
|
||||
"""
|
||||
discard_logo_check = self.env.context.get('discard_logo_check')
|
||||
if (self.env.uid == SUPERUSER_ID) and ((not self.env.user.company_id.external_report_layout) or (not discard_logo_check and not self.env.user.company_id.logo)) and config:
|
||||
template = self.env.ref('base.view_company_report_form_with_print')
|
||||
template = self.env.ref('base.view_company_report_form_with_print') if self.env.context.get('from_transient_model', False) else self.env.ref('base.view_company_report_form')
|
||||
return {
|
||||
'name': _('Choose Your Document Layout'),
|
||||
'type': 'ir.actions.act_window',
|
||||
|
@ -1597,7 +1597,7 @@
|
||||
<field name="code">tl</field>
|
||||
<field file="base/static/img/country_flags/tl.png" name="image" type="base64" />
|
||||
<field name="currency_id" ref="USD" />
|
||||
<field eval="0" name="phone_code" />
|
||||
<field eval="670" name="phone_code" />
|
||||
</record>
|
||||
<record id="tr" model="res.country">
|
||||
<field name="name">Turkey</field>
|
||||
|
@ -3,22 +3,23 @@ decorator==4.0.10
|
||||
docutils==0.12
|
||||
ebaysdk==2.1.5
|
||||
feedparser==5.2.1
|
||||
gevent==1.1.2
|
||||
gevent==1.1.2 ; sys_platform != 'win32'
|
||||
greenlet==0.4.10
|
||||
html2text==2016.9.19
|
||||
Jinja2==2.8
|
||||
lxml==3.5.0
|
||||
lxml==3.7.1 ; sys_platform != 'win32'
|
||||
lxml ; sys_platform == 'win32'
|
||||
Mako==1.0.4
|
||||
MarkupSafe==0.23
|
||||
mock==2.0.0
|
||||
num2words==0.5.4
|
||||
ofxparse==0.16
|
||||
passlib==1.6.5
|
||||
Pillow==3.4.1
|
||||
psutil==4.3.1
|
||||
psycopg2==2.7.3.1
|
||||
Pillow==4.0.0
|
||||
psutil==4.3.1; sys_platform != 'win32'
|
||||
psycopg2==2.7.3.1; sys_platform != 'win32'
|
||||
pydot==1.2.3
|
||||
pyldap==2.4.28
|
||||
pyldap==2.4.28; sys_platform != 'win32'
|
||||
pyparsing==2.1.10
|
||||
PyPDF2==1.26.0
|
||||
pyserial==3.1.1
|
||||
@ -29,12 +30,12 @@ PyYAML==3.12
|
||||
qrcode==5.3
|
||||
reportlab==3.3.0
|
||||
requests==2.11.1
|
||||
six==1.10.0
|
||||
suds-jurko==0.6
|
||||
vatnumber==1.2
|
||||
vobject==0.9.3
|
||||
Werkzeug==0.11.11
|
||||
Werkzeug==0.11.15
|
||||
XlsxWriter==0.9.3
|
||||
xlwt==1.3.*
|
||||
xlrd==1.0.0
|
||||
unittest2==1.1.0
|
||||
pypiwin32 ; sys_platform == 'win32'
|
||||
|
Loading…
Reference in New Issue
Block a user