first commit

This commit is contained in:
root
2026-03-14 09:42:12 +00:00
commit 0adbd20c2c
10991 changed files with 1646955 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.

View File

@@ -0,0 +1,160 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
import trytond.config as config
from trytond.model import fields
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Bool, Eval
from trytond.report import get_email
from trytond.sendmail import SMTPDataManager, send_message_transactional
from trytond.tools.email_ import format_address, has_rcpt, set_from_header
from trytond.transaction import Transaction
from trytond.wizard import StateTransition
class Configuration(metaclass=PoolMeta):
__name__ = 'account.configuration'
dunning_email_fallback = fields.Many2One(
'res.user', "Fall-back User",
domain=[
('email', '!=', None),
],
help="User notified when no email is found to send the dunning.")
class DunningLevel(metaclass=PoolMeta):
__name__ = 'account.dunning.level'
send_email = fields.Boolean("Send Email")
email_template = fields.Many2One(
'ir.action.report', "Email Template",
domain=[
('template_extension', 'in', ['plain', 'html', 'xhtml']),
('model', '=', 'account.dunning'),
],
states={
'required': Bool(Eval('send_email')),
'invisible': ~Eval('send_email'),
})
email_from = fields.Char(
"From", translate=True,
states={
'invisible': ~Eval('send_email'),
},
help="Leave empty for the value defined in the configuration file.")
email_contact_mechanism = fields.Selection(
'get_contact_mechanisms', "Contact Mechanism",
states={
'invisible': ~Eval('send_email'),
},
help="Define which email to use from the party's contact mechanisms.")
@classmethod
def default_email_template(cls):
pool = Pool()
Data = pool.get('ir.model.data')
try:
return Data.get_id('account_dunning_email', 'report_email')
except KeyError:
return
@classmethod
def get_contact_mechanisms(cls):
pool = Pool()
ContactMechanism = pool.get('party.contact_mechanism')
return ContactMechanism.usages()
@classmethod
def view_attributes(cls):
return super().view_attributes() + [
('//separator[@id="email"]', 'states', {
'invisible': ~Eval('send_email'),
}),
]
class ProcessDunning(metaclass=PoolMeta):
__name__ = 'account.dunning.process'
send_email = StateTransition()
@classmethod
def __setup__(cls):
super().__setup__()
cls._actions.append('send_email')
def transition_send_email(self):
pool = Pool()
Email = pool.get('ir.email')
datamanager = SMTPDataManager()
if not pool.test:
Transaction().join(datamanager)
emails = []
for dunning in self.records:
if dunning.level.send_email:
email = dunning.send_email(datamanager=datamanager)
if email:
emails.append(email)
if emails:
Email.save(emails)
return self.next_state('send_email')
class Dunning(metaclass=PoolMeta):
__name__ = 'account.dunning'
def send_email(self, datamanager=None):
pool = Pool()
Configuration = pool.get('ir.configuration')
AccountConfig = pool.get('account.configuration')
Lang = pool.get('ir.lang')
Email = pool.get('ir.email')
account_config = AccountConfig(1)
from_ = config.get('email', 'from')
to = []
contact = self.party.contact_mechanism_get(
'email', usage=self.level.email_contact_mechanism)
if contact and contact.email:
name = contact.name or self.party.rec_name
to.append(format_address(contact.email, name))
elif account_config.dunning_email_fallback:
user = account_config.get_multivalue(
'dunning_email_fallback', company=self.company.id)
to.append(format_address(user.email, self.party.rec_name))
cc = []
bcc = []
languages = set()
if self.party.lang:
languages.add(self.party.lang)
else:
lang, = Lang.search([
('code', '=', Configuration.get_language()),
], limit=1)
languages.add(lang)
msg = self._email(from_, to, cc, bcc, languages)
if has_rcpt(msg):
send_message_transactional(msg, datamanager=datamanager)
return Email.from_message(
msg, resource=self, dunning_level=self.level)
def _email(self, sender, to, cc, bcc, languages):
# TODO order languages to get default as last one for title
msg, title = get_email(self.level.email_template, self, languages)
language = list(languages)[-1]
from_ = sender
with Transaction().set_context(language=language.code):
dunning = self.__class__(self.id)
if dunning.level.email_from:
from_ = dunning.level.email_from
set_from_header(msg, sender, from_)
if to:
msg['To'] = to
if cc:
msg['Cc'] = cc
if bcc:
msg['Bcc'] = bcc
msg['Subject'] = title
msg['Auto-Submitted'] = 'auto-generated'
return msg

View File

@@ -0,0 +1,41 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="configuration_view_form">
<field name="model">account.configuration</field>
<field name="inherit" ref="account.configuration_view_form"/>
<field name="name">configuration_form</field>
</record>
<record model="ir.ui.view" id="dunning_level_view_form">
<field name="model">account.dunning.level</field>
<field name="inherit"
ref="account_dunning.dunning_level_view_form"/>
<field name="name">dunning_level_form</field>
</record>
<record model="ir.ui.view" id="dunning_level_view_list">
<field name="model">account.dunning.level</field>
<field name="inherit"
ref="account_dunning.dunning_level_view_list"/>
<field name="name">dunning_level_list</field>
</record>
<record model="ir.ui.view" id="dunning_level_view_list_sequence">
<field name="model">account.dunning.level</field>
<field name="inherit"
ref="account_dunning.dunning_level_view_list_sequence"/>
<field name="name">dunning_level_list</field>
</record>
<record model="ir.action.report" id="report_email">
<field name="name">Dunning Email</field>
<field name="model">account.dunning</field>
<field name="report_name">account.dunning.letter</field>
<field name="report">account_dunning_email/email.html</field>
<field name="template_extension">html</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,82 @@
<!DOCTYPE html>
<html xmlns:py="http://genshi.edgewall.org/">
<head>
<title>Reminder Notice</title>
</head>
<body>
<py:for each="party, letter in letters.items()">
<header style="text-align: center">
<h3>${company.rec_name}</h3>
<py:if test="company.header">
<p py:for="line in company.header_used.splitlines()">${line}</p>
</py:if>
</header>
<h1 style="text-align: center">Reminder Notice</h1>
<p>Date: ${format_date(today, data.language)}</p>
<p py:if="letter.fees">Fees:
${', '.join(format_currency(amount, data['language'], cur)
for cur, amount in letter.fees.items())}
</p>
<table style="width: 100%;">
<thead>
<tr>
<th id="description">Description</th>
<th id="reference">Reference</th>
<th id="date">Date</th>
<th id="amount">Amount</th>
<th id="due-date">Due Date</th>
</tr>
</thead>
<tbody>
<tr py:for="dunning in letter.dunnings">
<td headers="description">
${dunning.line.description if dunning.line else ''}
</td>
<td headers="reference">
${dunning.line.origin_rec_name}
</td>
<td headers="date" style="text-align: end;">
${format_date(
dunning.line.date, data['language']) if dunning.line else ''}
</td>
<td headers="amount" style="text-align: end;">
${format_currency(
dunning.amount_second_currency, data['language'],
dunning.second_currency) if dunning.amount_second_currency else ''}
</td>
<td headers="due-date" style="text-align: end;">
${format_date(
dunning.maturity_date, data['language']) if dunning.maturity_date else ''}
</td>
</tr>
</tbody>
<py:if test="letter.payments">
<thead>
<tr>
<td colspan="2"></td>
<th id="payments" colspan="2">Pending Payments Received</th>
</tr>
</thead>
<tbody>
<tr py:for="payment in letter.payments">
<td colspan="2"></td>
<td headers="date payments" style="text-align: end;">
${format_date(payment.date, data['language'])}
</td>
<td headers="amount payments" style="text-align: end;">
${format_currency(
get_payment_amount(payment), data['language'],
get_payment_currency(payment))}
</td>
</tr>
</tbody>
</py:if>
</table>
<footer style="text-align: center">
<py:if test="company.footer">
<p py:for="line in company.footer_used.splitlines()">${line}</p>
</py:if>
</footer>
</py:for>
</body>
</html>

View File

@@ -0,0 +1,58 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from sql import Table
from sql.operators import Concat
from trytond import backend, config
from trytond.model import fields
from trytond.pool import PoolMeta
from trytond.pyson import Eval
from trytond.transaction import Transaction
class Email(metaclass=PoolMeta):
__name__ = 'ir.email'
dunning_level = fields.Many2One(
'account.dunning.level', "Level", readonly=True,
states={
'invisible': ~Eval('dunning_level'),
})
@classmethod
def __register__(cls, module):
table = cls.__table__()
log_name = 'account.dunning.email.log'
log_table_name = config.get(
'table', log_name, default=log_name.replace('.', '_'))
log = Table(log_table_name)
cursor = Transaction().connection.cursor()
super().__register__(module)
# Migration from 6.8: merge dunning email log with email
if backend.TableHandler.table_exist(log_table_name):
query = table.insert(
[table.create_uid, table.create_date,
table.write_uid, table.write_date,
table.recipients, table.recipients_secondary,
table.recipients_hidden,
table.resource,
table.dunning_level],
log.select(
log.create_uid, log.create_date,
log.write_uid, log.write_date,
log.recipients, log.recipients_secondary,
log.recipients_hidden,
Concat('account.dunning,', log.dunning),
log.level))
cursor.execute(*query)
backend.TableHandler.drop_table(log_name, log_table_name)
def get_user(self, name):
user = super().get_user(name)
if self.dunning_level:
user = None
return user

View File

@@ -0,0 +1,84 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr ""
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Dunning Email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Email Logs"

View File

@@ -0,0 +1,88 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr "Usuari enviament de fallada"
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr "Mitjà de contacte"
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "De"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "Plantilla de correu electrònic"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "Envia correu electrònic"
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "Nivell"
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
"L'usuari a notificar quan no es trobi cap correu electrònic per enviar la "
"reclamació."
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
"Defineix quin correu electrònic dels mitjans de contacte del tercer "
"s'utilitzarà."
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
"Deixeu en blanc per a utilitzar el valor definit al fitxer de configuració."
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Correu electrònic de reclamació"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Import"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Data"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Data:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Descripció"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "Data de venciment"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "Despeses:"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "Pagaments pendents rebuts"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Referència"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "Avís de recordatori"
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Correu electrònic"

View File

@@ -0,0 +1,84 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr ""
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Dunning Email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Email Logs"

View File

@@ -0,0 +1,87 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr "Ersatzbenutzer"
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr "Kontaktinformation"
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "Von"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "E-Mail Vorlage"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "E-Mail senden"
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "Mahnstufe"
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
"Der zu benachrichtigende Benutzer wenn keine E-Mail zum Versand der Mahnung "
"gefunden wurde."
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
"Definiert, welche E-Mail-Adresse aus den Kontaktinformationen der Partei "
"genutzt werden soll."
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr "Leer lassen, um den Wert aus der Konfigurationsdatei zu verwenden."
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Mahnung E-Mail"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Betrag"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Datum"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Datum:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Beschreibung"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "Fälligkeitsdatum"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "Gebühren:"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "Nicht zugeordnete erhaltene Zahlungen"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Referenz"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "Erinnerung"
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "E-Mail"

View File

@@ -0,0 +1,87 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr "Usuario de envío de fallos"
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr "Medio de contacto"
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "De"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "Plantilla de correo electrónico"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "Enviar correo"
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "Nivel"
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
"El usuario a notificar cuando no se ha encontrado ningún correo electrónico "
"para enviar la reclamación."
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
"Define que correo electrónico de los métodos de contacto del tercero se "
"quiere utilizar."
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr "Dejar en blanco para utilizar el valor definido en la configuración."
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Correo electrónico de reclamación"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Importe"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Fecha"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Fecha:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Descripción"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "Fecha vencimiento"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "Gastos:"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "Pagos pendientes recibidos"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Referencia"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "Aviso recordatorio"
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Correo electrónico"

View File

@@ -0,0 +1,83 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr ""
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr ""

View File

@@ -0,0 +1,88 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr "Reserv kasutaja"
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr "Kontakteerumise moodus"
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "Saatja"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "E-maili mall"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "Saada e-mail"
#, fuzzy
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "Tase"
#, fuzzy
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr "Kasutaja, keda teavitatakse, kui puudub e-mail millele saata meenutus"
#, fuzzy
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
"Määra, kasutaja kontaktide mehanismide hulgast, missugust e-maili kasutada."
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr "Jäta tühjaks, et rakenduks väärtus mis on määratud seadistuse failis."
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Meenutuse email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Väärtus"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Kuupäev"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Kuupäev:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Nimetus"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "Maksetähtaeg"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "Tasud:"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "Saadud tasumata maksed"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Viide"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "Meeldetuletuse teade"
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "E-mail"

View File

@@ -0,0 +1,87 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr "کاربر عقب افتاده"
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr "مکانیزم تماس"
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "از"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "ایمیل الگو"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "ارسال ایمیل"
#, fuzzy
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "سطح"
#, fuzzy
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr "ابلاغ شده به کاربر هنگامی که هیچ ایمیلی برای بازپرداخت ارسال نشده"
#, fuzzy
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr "تعریف کدام ایمیل را از مکانیسم های تماس حزب استفاده کنید"
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr "برای مقدار تعریف شده در فایل پیکربندی خالی بگذارید."
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "ایمیل دانینگ"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "مقدار"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "تاریخ"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "تاریخ :"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "شرح"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "تاریخ تحویل"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "هزینه ها:"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "پرداخت های دریافت شده در انتظار"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "مرجع"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "متن یادآوری"
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "ایمیل"

View File

@@ -0,0 +1,84 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr ""
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Dunning Email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Email Logs"

View File

@@ -0,0 +1,87 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr "Utilisateur de repli"
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr "Moyen de contact"
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "De"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "Modèle de courriel"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "Envoyer un courriel"
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "Niveau"
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
"L'utilisateur averti lorsqu'aucun e-mail n'est trouvé pour envoyer la "
"relance."
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
"Définit quelle adresse électronique à utiliser des moyens de contact du "
"tiers."
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr "Laissez vide pour la valeur définie dans le fichier de configuration."
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Courriel de relance"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Montant"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Date"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Date :"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Description"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "Date d'échéance"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "Frais :"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "Paiements en attente reçus"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Référence"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "Avis de rappel"
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Courriel"

View File

@@ -0,0 +1,92 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr "Értesítés hiba esetén"
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr "Kapcsolatfelvételi mód"
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "Küldő"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "E-mail sablon"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "E-mail küldése"
#, fuzzy
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "Szint"
#, fuzzy
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
"Ez a felhasználó kapja meg azon vevők fizetési felszólításait, amelyeknek "
"hiányzik az e-mail címe"
#, fuzzy
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
"Adja meg, hogy a vevő kapcsolattartói közül melyik címre küldje a rendszer "
"az e-mailt"
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
"Hagyja üresen, ha a rendszerbeállításokban megadottat szeretné használni."
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Fizetési felszólítás e-mail"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Összeg"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Dátum"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Dátum:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Megjegyzés"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "Esedékesség"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "Kamat:"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "Beérkezett fizetések"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Hivatkozás"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "Fizetési felszólítás"
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "E-mail"

View File

@@ -0,0 +1,84 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "Dari"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Jumlah"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Tanggal"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Tanggal:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Deskripsi"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Referensi"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "E-mail"

View File

@@ -0,0 +1,91 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr "Utente di ripiego"
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr "Meccanismi di contatto"
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "Da"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "Modello di E-mail"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "Invia Email"
#, fuzzy
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "Livello"
#, fuzzy
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
"Utente notificato quando non viene trovata alcuna e-mail per inviare il "
"sollecito"
#, fuzzy
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
"Definire quale e-mail utilizzare fra i meccanismi di contatto della "
"controparte"
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr "Lasciare vuoto per il valore definito nel file di configurazione."
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Email di sollecito"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Importo"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Data"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Data:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Descrizione"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "Data Scadenza"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "Tariffe:"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "Pagamenti in attesa ricevuti"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Riferimento"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "Avviso di promemoria"
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "E-mail"

View File

@@ -0,0 +1,84 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr ""
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Dunning Email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Email Logs"

View File

@@ -0,0 +1,84 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr ""
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Dunning Email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Email Logs"

View File

@@ -0,0 +1,88 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr "Terugval gebruiker"
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr "Contactmogelijkheid"
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "Van"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "Email template"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "Verstuur e-mail"
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "Niveau"
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
"Stel de gebruiker op de hoogte wanneer er geen e-mail adres is gevonden om "
"de aanmaning naar toe te sturen."
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
"Bepaal welk email adres gebruikt moet worden van de contactmechanismen van "
"de relatie."
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
"Laat leeg voor de waarde die is gedefinieerd in het configuratiebestand."
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Aanmaningsmail"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Bedrag"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Datum"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Datum:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Omschrijving"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "Vervaldag"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "Kosten:"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "Openstaande betalingen ontvangen"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Referentie"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "Herinnering"
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Email"

View File

@@ -0,0 +1,85 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "Od"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "Szablon wiadomości"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "Wyślij wiadomość"
#, fuzzy
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "Poziom"
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Dunning Email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Data"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Data:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Opis"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Wyślij wiadomość"

View File

@@ -0,0 +1,86 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr "Usuário de encaminhamento de falhas"
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "De"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "Modelo de Email"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "Enviar Email"
#, fuzzy
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "Nível"
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr "Deixe vazio para usar o valor definido no arquivo de configuração."
#, fuzzy
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Dunning Email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Montante"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Data"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Data:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Descrição"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "Vencimento"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "Taxas:"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "Pagamentos Recebidos Pendentes"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Referência"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "Lembrete"
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Enviar Email"

View File

@@ -0,0 +1,83 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr ""
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Suma"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Data"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Data:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Descriere"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "Data scadentă"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "Tarife:"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "Încasări Primite În Aşteptare"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Referinţă"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "Notificare"
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr ""

View File

@@ -0,0 +1,84 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr ""
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Dunning Email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Email Logs"

View File

@@ -0,0 +1,84 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr ""
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Dunning Email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Znesek"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "E-pošta"

View File

@@ -0,0 +1,86 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr "Kimden"
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr "E-posta Taslağı"
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr "E-posta Gönder"
#, fuzzy
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr "Seviye"
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr "Konfigurasyon dosyasında tanımlanmış değer için boş bırakın."
#, fuzzy
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Dunning Email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr "Miktar"
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr "Tarih"
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr "Tarih:"
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr "Tanım"
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr "Son Tarih"
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr "Ücretler:"
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr "Beklemedeki Alınan Ödemeler"
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr "Referans"
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr "Hatırlatıcı Bildirim"
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "E-posta Gönder"

View File

@@ -0,0 +1,83 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr ""
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr ""

View File

@@ -0,0 +1,84 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:account.configuration,dunning_email_fallback:"
msgid "Fall-back User"
msgstr ""
msgctxt "field:account.dunning.level,email_contact_mechanism:"
msgid "Contact Mechanism"
msgstr ""
msgctxt "field:account.dunning.level,email_from:"
msgid "From"
msgstr ""
msgctxt "field:account.dunning.level,email_template:"
msgid "Email Template"
msgstr ""
msgctxt "field:account.dunning.level,send_email:"
msgid "Send Email"
msgstr ""
msgctxt "field:ir.email,dunning_level:"
msgid "Level"
msgstr ""
msgctxt "help:account.configuration,dunning_email_fallback:"
msgid "User notified when no email is found to send the dunning."
msgstr ""
msgctxt "help:account.dunning.level,email_contact_mechanism:"
msgid "Define which email to use from the party's contact mechanisms."
msgstr ""
msgctxt "help:account.dunning.level,email_from:"
msgid "Leave empty for the value defined in the configuration file."
msgstr ""
msgctxt "model:ir.action,name:report_email"
msgid "Dunning Email"
msgstr "Dunning Email"
msgctxt "report:account.dunning.letter:"
msgid "Amount"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Date:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Description"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Due Date"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Fees:"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Pending Payments Received"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reference"
msgstr ""
msgctxt "report:account.dunning.letter:"
msgid "Reminder Notice"
msgstr ""
#, fuzzy
msgctxt "view:account.dunning.level:"
msgid "Email"
msgstr "Email Logs"

View File

@@ -0,0 +1,2 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.

View File

@@ -0,0 +1,132 @@
==============================
Account Dunning Email Scenario
==============================
Imports::
>>> import datetime
>>> from decimal import Decimal
>>> from unittest.mock import patch
>>> from proteus import Model, Wizard
>>> from trytond.modules.account.tests.tools import (
... create_chart, create_fiscalyear, get_accounts)
>>> from trytond.modules.account_dunning_email import account
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.tests.tools import activate_modules, assertEqual
Patch send_message_transactional::
>>> smtp_calls = patch.object(
... account, 'send_message_transactional').start()
>>> manager = patch.object(
... account, 'SMTPDataManager').start()
Activate modules::
>>> config = activate_modules(
... 'account_dunning_email', create_company, create_chart)
>>> Email = Model.get('ir.email')
Create fiscal year::
>>> fiscalyear = create_fiscalyear()
>>> fiscalyear.click('create_period')
>>> period = fiscalyear.periods[0]
Get accounts::
>>> accounts = get_accounts()
>>> receivable = accounts['receivable']
>>> revenue = accounts['revenue']
>>> cash = accounts['cash']
Create dunning procedure::
>>> Procedure = Model.get('account.dunning.procedure')
>>> procedure = Procedure(name="Procedure")
>>> level = procedure.levels.new()
>>> level.sequence = 1
>>> level.overdue = datetime.timedelta(5)
>>> level.send_email = True
>>> level.email_from = 'noreply@example.com'
>>> procedure.save()
>>> level, = procedure.levels
Create parties::
>>> Party = Model.get('party.party')
>>> customer = Party(name='Customer')
>>> customer.dunning_procedure = procedure
>>> email = customer.contact_mechanisms.new(type='email')
>>> email.value = 'customer@example.com'
>>> customer.save()
Create some moves::
>>> Journal = Model.get('account.journal')
>>> Move = Model.get('account.move')
>>> journal_revenue, = Journal.find([
... ('code', '=', 'REV'),
... ])
>>> journal_cash, = Journal.find([
... ('code', '=', 'CASH'),
... ])
Create due move of 100::
>>> move = Move()
>>> move.period = period
>>> move.journal = journal_revenue
>>> move.date = period.start_date
>>> line = move.lines.new()
>>> line.account = revenue
>>> line.credit = Decimal(100)
>>> line = move.lines.new()
>>> line.account = receivable
>>> line.debit = Decimal(100)
>>> line.party = customer
>>> line.maturity_date = period.start_date
>>> move.save()
>>> dunning_line, = [l for l in move.lines if l.account == receivable]
Add partial payment of 50::
>>> move = Move()
>>> move.period = period
>>> move.journal = journal_cash
>>> move.date = period.start_date
>>> line = move.lines.new()
>>> line.account = cash
>>> line.debit = Decimal(50)
>>> line = move.lines.new()
>>> line.account = receivable
>>> line.credit = Decimal(50)
>>> line.party = customer
>>> move.save()
Create dunnings::
>>> Dunning = Model.get('account.dunning')
>>> create_dunning = Wizard('account.dunning.create')
>>> create_dunning.form.date = period.start_date + datetime.timedelta(days=5)
>>> create_dunning.execute('create_')
>>> dunning, = Dunning.find([])
Process dunning::
>>> process_dunning = Wizard('account.dunning.process',
... [dunning])
>>> process_dunning.execute('process')
>>> dunning.reload()
>>> dunning.state
'waiting'
>>> email, = Email.find([])
>>> email.recipients
'Customer <customer@example.com>'
>>> email.subject
'Dunning Email'
>>> assertEqual(email.resource, dunning)
>>> assertEqual(email.dunning_level, level)

View File

@@ -0,0 +1,12 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.tests.test_tryton import ModuleTestCase
class AccountDunningEmailTestCase(ModuleTestCase):
'Test Account Dunning Email module'
module = 'account_dunning_email'
del ModuleTestCase

View File

@@ -0,0 +1,8 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.tests.test_tryton import load_doc_tests
def load_tests(*args, **kwargs):
return load_doc_tests(__name__, __file__, *args, **kwargs)

View File

@@ -0,0 +1,19 @@
[tryton]
version=7.8.0
depends:
account
account_dunning
account_dunning_letter
ir
party
xml:
account.xml
[register]
model:
ir.Email
account.Configuration
account.DunningLevel
account.Dunning
wizard:
account.ProcessDunning

View File

@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="/form/field[@name='default_dunning_procedure']" position="after">
<label name="dunning_email_fallback"/>
<field name="dunning_email_fallback"/>
</xpath>
</data>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="/form/field[@name='print_on_letter']" position="after">
<label name="send_email"/>
<field name="send_email"/>
<separator string="Email" id="email" colspan="4"/>
<label name="email_template"/>
<field name="email_template"/>
<newline/>
<label name="email_from"/>
<field name="email_from"/>
<label name="email_contact_mechanism"/>
<field name="email_contact_mechanism"/>
<newline/>
</xpath>
</data>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="/tree/field[@name='print_on_letter']" position="after">
<field name="send_email"/>
</xpath>
</data>