Initial import from Docker volume

This commit is contained in:
root
2025-12-26 13:11:43 +00:00
commit 4998dc066a
13336 changed files with 1767801 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
# 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.pool import Pool
from . import carrier, stock
def register():
Pool.register(
carrier.CredentialDPD,
carrier.Carrier,
stock.Package,
stock.ShipmentOut,
stock.ShipmentInReturn,
module='stock_package_shipping_dpd', type_='model')
Pool.register(
stock.CreateShipping,
stock.CreateDPDShipping,
module='stock_package_shipping_dpd', type_='wizard')

View File

@@ -0,0 +1,124 @@
# 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 locale
from zeep.exceptions import Fault
from trytond.i18n import gettext
from trytond.model import (
MatchMixin, ModelSQL, ModelView, fields, sequence_ordered)
from trytond.pool import PoolMeta
from trytond.pyson import Eval
from .configuration import LOGIN_SERVICE, get_client
from .exceptions import DPDError
class CredentialDPD(sequence_ordered(), ModelSQL, ModelView, MatchMixin):
'DPD Credential'
__name__ = 'carrier.credential.dpd'
company = fields.Many2One('company.company', 'Company')
user_id = fields.Char('User ID', required=True, strip=False)
password = fields.Char('Password', required=True, strip=False)
server = fields.Selection([
('testing', 'Testing'),
('production', 'Production'),
], 'Server')
depot = fields.Char('Depot', readonly=True, strip=False)
token = fields.Char('Token', readonly=True, strip=False)
@classmethod
def default_server(cls):
return 'testing'
def update_token(self):
auth_client = get_client(self.server, LOGIN_SERVICE)
lang = (self.company.party.lang.code
if self.company.party.lang else 'en')
lang = locale.normalize(lang)[:5]
try:
result = auth_client.service.getAuth(
delisId=self.user_id, password=self.password,
messageLanguage=lang)
except Fault as e:
error_message = e.detail[0].find('errorMessage')
raise DPDError(
gettext('stock_package_shipping_dpd.msg_dpd_webservice_error',
message=error_message.text)) from e
self.token = result.authToken
self.depot = result.depot
self.save()
class Carrier(metaclass=PoolMeta):
__name__ = 'carrier'
dpd_product = fields.Selection([
(None, ''),
('CL', "DPD CLASSIC"),
('E830', "DPD 8:30"),
('E10', "DPD 10:00"),
('E12', "DPD 12:00"),
('E18', "DPD 18:00"),
('IE2', "DPD EXPRESS"),
('PL', "DPD PARCEL Letter"),
('PL+', "DPD PARCEL Letter Plus"),
('MAIL', "DPD International Mail"),
], "Product", sort=False, translate=False,
states={
'required': Eval('shipping_service') == 'dpd',
'invisible': Eval('shipping_service') != 'dpd',
})
dpd_printer_language = fields.Selection([
(None, ''),
('PDF', "PDF"),
('ZPL', "ZPL"),
], "Printer Language", sort=False, translate=False,
states={
'required': Eval('shipping_service') == 'dpd',
'invisible': Eval('shipping_service') != 'dpd',
})
dpd_paper_format = fields.Selection([
(None, ''),
('A4', "A4"),
('A6', "A6"),
('A7', "A7"),
], "Paper Format", sort=False, translate=False,
states={
'required': Eval('shipping_service') == 'dpd',
'invisible': Eval('shipping_service') != 'dpd',
})
dpd_notification = fields.Selection([
(None, ""),
('email', "E-Mail"),
('sms', "SMS"),
], "Notification",
states={
'invisible': Eval('shipping_service') != 'dpd',
},
help="The preferred notification channel.\n"
"Leave empty for no notification.")
@classmethod
def __setup__(cls):
super(Carrier, cls).__setup__()
cls.shipping_service.selection.append(('dpd', 'DPD'))
@classmethod
def view_attributes(cls):
return super().view_attributes() + [
("/form/separator[@id='dpd']", 'states', {
'invisible': Eval('shipping_service') != 'dpd',
}),
]
@property
def shipping_label_mimetype(self):
mimetype = super().shipping_label_mimetype
if self.shipping_service == 'dpd':
mimetype = 'application/pdf'
return mimetype

View File

@@ -0,0 +1,64 @@
<?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="carrier_view_form">
<field name="model">carrier</field>
<field name="inherit" ref="carrier.carrier_view_form"/>
<field name="name">carrier_form</field>
</record>
<record model="ir.ui.view" id="credential_view_form">
<field name="model">carrier.credential.dpd</field>
<field name="type">form</field>
<field name="name">dpd_credential_form</field>
</record>
<record model="ir.ui.view" id="credential_view_tree">
<field name="model">carrier.credential.dpd</field>
<field name="type">tree</field>
<field name="name">dpd_credential_list</field>
</record>
<record model="ir.action.act_window" id="act_dpd_credential_form">
<field name="name">DPD Credentials</field>
<field name="res_model">carrier.credential.dpd</field>
</record>
<record model="ir.action.act_window.view"
id="act_dpd_credential_form_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="credential_view_tree"/>
<field name="act_window" ref="act_dpd_credential_form"/>
</record>
<record model="ir.action.act_window.view"
id="act_dpd_credential_form_view2">
<field name="sequence" eval="20"/>
<field name="view" ref="credential_view_form"/>
<field name="act_window" ref="act_dpd_credential_form"/>
</record>
<menuitem
parent="carrier.menu_configuration"
action="act_dpd_credential_form"
sequence="50"
id="menu_dpd_credential_form"/>
<record model="ir.model.access" id="access_carrier_credential">
<field name="model">carrier.credential.dpd</field>
<field name="perm_read" eval="False"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_delete" eval="False"/>
</record>
<record model="ir.model.access"
id="access_carrier_credential_carrier_admin">
<field name="model">carrier.credential.dpd</field>
<field name="group" ref="carrier.group_carrier_admin"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_delete" eval="True"/>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,30 @@
# 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 urllib.parse import urljoin
from zeep import Client
from zeep.transports import Transport
from trytond.config import config
SERVER_URLS = {
'testing': 'https://public-ws-stage.dpd.com/services/',
'production': 'https://public-ws.dpd.com/services/',
}
LOGIN_SERVICE = 'LoginService/V2_0/?wsdl'
SHIPMENT_SERVICE = 'ShipmentService/V3_2/?wsdl'
TIMEOUT = config.get(
'stock_package_shipping_dpd', 'requests_timeout', default=300)
def get_client(server, service):
api_base_url = config.get('stock_package_shipping_dpd',
server, default=SERVER_URLS[server])
url = urljoin(api_base_url, service)
# Disable the cache for testing because zeep's bug
# https://github.com/mvantellingen/python-zeep/issues/48
# which makes testing environments fail
transport = (Transport(cache=None, operation_timeout=TIMEOUT)
if url.startswith(SERVER_URLS['testing']) else None)
return Client(url, transport=transport)

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.exceptions import UserError
class DPDError(UserError):
pass

View File

@@ -0,0 +1,121 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
#, fuzzy
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Управление на производство"
#, fuzzy
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Фирма"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
#, fuzzy
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Парола"
#, fuzzy
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Сървър"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Credentials"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
#, fuzzy
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Управление на производство"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,123 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr "Notificació"
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr "Format paper"
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr "Idioma de la impressió"
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Producte"
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Empresa"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr "Dipòsit"
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Contrasenya"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Servidor"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr "Token"
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr "Identificador usuari"
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
"El canal de notificació preferit. \n"
"Deixeu-ho en blanc per desactivar la notificació."
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "Credencial DPD"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Crea enviaments DPD per paquets"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "Credencials DPD"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr "La identificació DPD ha fallat amb les credencials \"%(credential)s\"."
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"La crida al servei web DPD ha fallat amb el següent missatge d'error:\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
"No podeu crear l'enviament per l'albarà \"%(shipment)s\" perquè ja té un "
"número de referència de l'enviament."
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
"Per validar l'albarà \"%(shipment)s\" heu d'establir una direcció al "
"magatzem \"%(warehouse)s\"."
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "Credencials DPD"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr "Correu electrònic"
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr "SMS"
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr "DPD"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Producció"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr "Proves"
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr "Informació de les credencials"
msgctxt "view:carrier:"
msgid "DPD"
msgstr "DPD"

View File

@@ -0,0 +1,116 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr ""
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr ""
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Credentials"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,123 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr "Benachrichtigung"
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr "Papierformat"
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr "Druckersprache"
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Artikel"
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Unternehmen"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr "Depot"
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Passwort"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Server"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr "Token"
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr "Benutzer ID"
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
"Der bevorzugte Benachrichtigungskanal.\n"
"Leer lassen für keine Benachrichtigung."
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Anmeldedaten"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "DPD Versand für Pakete erstellen"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Anmeldedaten"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr "Der DPD Login mit den Anmeldedaten \"%(credential)s\" ist fehlgeschlagen."
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"Der Aufruf des DPD-Webservice schlug fehl mit der folgenden Fehlermeldung:\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
"Für die Lieferung \"%(shipment)s\" kann keine Sendung erstellt werden, da "
"sie bereits eine Versandreferenz hat."
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
"Um die Lieferung \"%(shipment)s\" validieren zu können, muss eine Adresse "
"für den Logistikstandort \"%(warehouse)s\" erfasst werden."
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Anmeldedaten"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr "E-Mail"
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr "SMS"
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr "DPD"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Produktivumgebung"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr "Testumgebung"
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr "Anmeldedaten"
msgctxt "view:carrier:"
msgid "DPD"
msgstr "DPD"

View File

@@ -0,0 +1,123 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr "Notificación"
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr "Formato papel"
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr "Idioma de la impresión"
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Producto"
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Empresa"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr "Deposito"
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Contraseña"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Servidor"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr "Token"
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr "Identificador de usuario"
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
"El canal de notificación preferido. \n"
"Dejare en blanco para desactivar la notificación."
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "Credencial DPD"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Crear envíos DPD para paquetes"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "Credenciales DPD"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr "La identificación DPD ha fallado con las credenciales \"%(credential)s\"."
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"La llamada al servicio web DPD ha fallado con el siguiente mensaje de error:\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
"No puede crear el envío para el albarán \"%(shipment)s\" porque ya tiene un "
"número de referencia del envío."
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
"Para validar el albarán \"%(shipment)s\" debe establecer una dirección en el"
" almacén \"%(warehouse)s\"."
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "Credenciales DPD"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr "Correo electrónico"
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr "SMS"
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr "DPD"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Producción"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr "Pruebas"
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr "Información de las credenciales"
msgctxt "view:carrier:"
msgid "DPD"
msgstr "DPD"

View File

@@ -0,0 +1,115 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr ""
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr "Depósito"
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr ""
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr ""
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr ""
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,117 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
#, fuzzy
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Tootmine"
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Ettevõte"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Salasõna"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Server"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr "Token"
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr "Kasutaja ID"
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD viide"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Loo DPD saadetis"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD viide"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD viide"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr "DPD"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Tootmine"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr "Testimine"
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr "Viite info"
#, fuzzy
msgctxt "view:carrier:"
msgid "DPD"
msgstr "DPD"

View File

@@ -0,0 +1,125 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
#, fuzzy
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "تهیه کننده"
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "شرکت"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr "دپو"
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "کلمه عبور"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "سرور"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr "توکن"
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr "شناسه کاربر"
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "گواهی نامه DPD"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "ایجاد حمل ونقل DPD برای بسته ها"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "گواهی نامه های DPD"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"تماس با وب سرویس DPD با پیغام خطای زیر انجام نشد :\n"
"\"%s\""
#, fuzzy
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
"شما نمی توانید حمل و نقل را برای حمل و نقل :\"%(shipment)s\" ایجاد کنید زیرا"
" قبلا یک شماره مرجع است."
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
"برای تایید حمل و نقل :\"%(shipment)s\" شما باید یک آدرس را در "
"انبار:\"%(warehouse)s\" تنظیم کنید."
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "گواهی نامه های DPD"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr "DPD"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "تهیه کننده"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr "آزمایش"
#, fuzzy
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr "اطلاعات گواهی نامه"
#, fuzzy
msgctxt "view:carrier:"
msgid "DPD"
msgstr "DPD"

View File

@@ -0,0 +1,116 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr ""
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr ""
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Credentials"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,125 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr "Notification"
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr "Format papier"
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr "Langue de l'imprimante"
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Produit"
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Société"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr "Dépôt"
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Mot de passe"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Serveur"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr "Jeton"
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr "ID d'utilisateur"
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
"Le canal de notification préféré.\n"
"Laissez vide pour aucune notification."
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "Identifiant DPD"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Créer la livraison DPD pour les emballages"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "Identifiants DPD"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
"La connexion DPD a échoué avec les informations d'identification "
"« %(credential)s »."
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"L'appel au service web de DPD a échoué avec le message d'erreur suivant :\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
"Vous ne pouvez pas créer de livraison pour l'expédition « %(shipment)s » car"
" elle a déjà un numéro de référence d'expédition."
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
"Pour valider la livraison « %(shipment)s », vous devez définir une adresse "
"pour l'entrepôt « %(warehouse)s »."
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "Identifiants DPD"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr "E-Mail"
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr "SMS"
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr "DPD"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Production"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr "Essai"
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr "Informations d'identification"
msgctxt "view:carrier:"
msgid "DPD"
msgstr "DPD"

View File

@@ -0,0 +1,120 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
#, fuzzy
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Termelés"
#, fuzzy
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Társaság"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
#, fuzzy
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Jelszó"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Credentials"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
#, fuzzy
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Termelés"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,116 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Produk"
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Perusahaan"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Kata sandi"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Server"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr ""
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr ""
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr "DPD"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Produksi"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr "Testing"
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
#, fuzzy
msgctxt "view:carrier:"
msgid "DPD"
msgstr "DPD"

View File

@@ -0,0 +1,117 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr ""
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Azienda"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
#, fuzzy
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Password"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Credentials"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,119 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
#, fuzzy
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "ຜະລິດຕະພັນ"
#, fuzzy
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "ຫ້ອງການ/ສຳນັກງານ"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr ""
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Credentials"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
#, fuzzy
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "ຜະລິດຕະພັນ"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,116 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr ""
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Organizacija"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr ""
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr "Naudotojo ID"
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Credentials"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,123 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr "Melding"
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr "Papierformaat"
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr "Printertaal"
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Product"
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Bedrijf"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr "Magazijn"
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Wachtwoord"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Server"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr "Token"
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr "Gebruiker ID"
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
"Voorkeur welk soort melding te gebruiken.\n"
"Laat leeg om meldingen uit te schakelen."
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD-referentie"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Maak een DPD-verzending voor de pakketten"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr "DPD-aanmelding is mislukt met referentie %(credential)s\"."
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"DPD webservice-oproep mislukt met het volgende foutbericht:\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
"U kunt geen verzending voor zending \"%(shipment)s\" maken omdat deze al een"
" referentienummer heeft."
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
"Om zending \"%(shipment)s\" te valideren, moet u een adres voor magazijn "
"\"%(warehouse)s\" instellen."
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr "E-mail"
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr "SMS"
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr "DPD"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Productie"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr "Testen"
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr "Referentiegegevens"
msgctxt "view:carrier:"
msgid "DPD"
msgstr "DPD"

View File

@@ -0,0 +1,120 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
#, fuzzy
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Produkcja"
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Firma"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Hasło"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Serwer"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr "Token"
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr "ID użytkownika"
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Credentials"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
#, fuzzy
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr "DPD"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Produkcja"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
#, fuzzy
msgctxt "view:carrier:"
msgid "DPD"
msgstr "DPD"

View File

@@ -0,0 +1,125 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
#, fuzzy
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Produção"
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Empresa"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr "Depósito"
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Senha"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Servidor"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr "Token:"
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr "ID de usuário"
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "Credencial DPD"
#, fuzzy
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
#, fuzzy
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
#, fuzzy
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"A chamada ao serviço web DPD falhou com a mensagem de erro:\n"
"\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr "DPD"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Produção"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr "Testando"
#, fuzzy
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr "Informações da Credencial"
#, fuzzy
msgctxt "view:carrier:"
msgid "DPD"
msgstr "DPD"

View File

@@ -0,0 +1,115 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr ""
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Companie"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr ""
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr ""
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr ""
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,121 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
#, fuzzy
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Производство"
#, fuzzy
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Учет.орг."
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
#, fuzzy
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Пароль"
#, fuzzy
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Сервер"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Credentials"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
#, fuzzy
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Производство"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,125 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
#, fuzzy
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr "Produkcijski"
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr "Družba"
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr "Depot"
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "Geslo"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr "Strežnik"
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr "Žeton"
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr "ID uporabnika"
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD prijava"
#, fuzzy
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
#, fuzzy
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
#, fuzzy
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"Sporočilo napake pri klicu DPD spletne storitve:\n"
"\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr "E-pošta"
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr "DPD"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr "Produkcijski"
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr "Preizkusni"
#, fuzzy
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr "Prijavni podatki"
#, fuzzy
msgctxt "view:carrier:"
msgid "DPD"
msgstr "DPD"

View File

@@ -0,0 +1,116 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr ""
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr ""
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Credentials"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,115 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr ""
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr ""
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr ""
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr ""
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,117 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,dpd_notification:"
msgid "Notification"
msgstr ""
msgctxt "field:carrier,dpd_paper_format:"
msgid "Paper Format"
msgstr ""
msgctxt "field:carrier,dpd_printer_language:"
msgid "Printer Language"
msgstr ""
msgctxt "field:carrier,dpd_product:"
msgid "Product"
msgstr ""
msgctxt "field:carrier.credential.dpd,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.dpd,depot:"
msgid "Depot"
msgstr ""
#, fuzzy
msgctxt "field:carrier.credential.dpd,password:"
msgid "Password"
msgstr "密码"
msgctxt "field:carrier.credential.dpd,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.dpd,token:"
msgid "Token"
msgstr ""
msgctxt "field:carrier.credential.dpd,user_id:"
msgid "User ID"
msgstr ""
msgctxt "help:carrier,dpd_notification:"
msgid ""
"The preferred notification channel.\n"
"Leave empty for no notification."
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.dpd,name:"
msgid "DPD Credential"
msgstr "DPD Credentials"
msgctxt "model:ir.action,name:act_create_shipping_dpd_wizard"
msgid "Create DPD Shipping for Packages"
msgstr "Create DPD Shipping for Packages"
msgctxt "model:ir.action,name:act_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "model:ir.message,text:msg_dpd_login_error"
msgid "DPD login failed with credential \"%(credential)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_dpd_webservice_error"
msgid ""
"DPD webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_shipping_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a shipping reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on the "
"warehouse \"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_dpd_credential_form"
msgid "DPD Credentials"
msgstr "DPD Credentials"
msgctxt "selection:carrier,dpd_notification:"
msgid "E-Mail"
msgstr ""
msgctxt "selection:carrier,dpd_notification:"
msgid "SMS"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "DPD"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.dpd,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.dpd:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "DPD"
msgstr ""

View File

@@ -0,0 +1,20 @@
<?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 grouped="1">
<record model="ir.message" id="msg_dpd_webservice_error">
<field name="text">DPD webservice call failed with the following error message:
%(message)s</field>
</record>
<record model="ir.message" id="msg_dpd_login_error">
<field name="text">DPD login failed with credential "%(credential)s".</field>
</record>
<record model="ir.message" id="msg_warehouse_address_required">
<field name="text">To validate shipment "%(shipment)s" you must set an address on the warehouse "%(warehouse)s".</field>
</record>
<record model="ir.message" id="msg_shipment_has_shipping_reference_number">
<field name="text">You cannot create shipping for shipment "%(shipment)s" because it has already a shipping reference number.</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,327 @@
# 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 locale
from io import BytesIO
from itertools import zip_longest
from lxml import etree
from pypdf import PdfReader, PdfWriter
from zeep.exceptions import Fault
from trytond.i18n import gettext
from trytond.model import fields
from trytond.model.exceptions import AccessError
from trytond.modules.stock_package_shipping.exceptions import (
PackingValidationError)
from trytond.pool import Pool, PoolMeta
from trytond.transaction import Transaction
from trytond.wizard import StateAction, StateTransition, Wizard
from .configuration import SHIPMENT_SERVICE, get_client
from .exceptions import DPDError
TRACKING_URL = 'https://tracking.dpd.de/status/%(code)s/parcel/%(reference)s'
def iter_pdf_pages(document):
if hasattr(document, 'pages'):
yield from document.pages
else:
for i in range(document.getNumPages()):
yield document.getPage(i)
class Package(metaclass=PoolMeta):
__name__ = 'stock.package'
def get_shipping_tracking_url(self, name):
pool = Pool()
ShipmentOut = pool.get('stock.shipment.out')
ShipmentInReturn = pool.get('stock.shipment.in.return')
url = super().get_shipping_tracking_url(name)
if (self.shipping_reference
and self.shipment
and self.shipment.id >= 0
and self.shipment.carrier
and self.shipment.carrier.shipping_service == 'dpd'):
party = address = None
if isinstance(self.shipment, ShipmentOut):
party = self.shipment.customer
address = self.shipment.delivery_address
elif isinstance(self.shipment, ShipmentInReturn):
party = self.shipment.supplier
address = self.shipment.delivery_address
if party and party.lang:
lang_code = party.lang.code
else:
lang_code = Transaction().language
if address and address.country:
code = '_'.join(
(lang_code.split('_')[0], address.country.code))
else:
code = lang_code
url = TRACKING_URL % {
'code': code,
'reference': self.shipping_reference,
}
return url
class ShippingDPDMixin:
__slots__ = ()
def validate_packing_dpd(self):
warehouse = self.shipping_warehouse
if not warehouse.address:
raise PackingValidationError(
gettext('stock_package_shipping_dpd'
'.msg_warehouse_address_required',
shipment=self.rec_name,
warehouse=warehouse.rec_name))
class ShipmentOut(ShippingDPDMixin, metaclass=PoolMeta):
__name__ = 'stock.shipment.out'
class ShipmentInReturn(ShippingDPDMixin, metaclass=PoolMeta):
__name__ = 'stock.shipment.in.return'
class CreateShipping(metaclass=PoolMeta):
__name__ = 'stock.shipment.create_shipping'
dpd = StateAction(
'stock_package_shipping_dpd.act_create_shipping_dpd_wizard')
def transition_start(self):
next_state = super(CreateShipping, self).transition_start()
if self.record.carrier.shipping_service == 'dpd':
next_state = 'dpd'
return next_state
def do_dpd(self, action):
ctx = Transaction().context
return action, {
'model': ctx['active_model'],
'id': ctx['active_id'],
'ids': [ctx['active_id']],
}
class CreateDPDShipping(Wizard):
'Create DPD Shipping'
__name__ = 'stock.shipment.create_shipping.dpd'
start = StateTransition()
def transition_start(self):
pool = Pool()
Package = pool.get('stock.package')
shipment = self.record
if shipment.shipping_reference:
raise AccessError(
gettext('stock_package_shipping_dpd'
'.msg_shipment_has_reference_number',
shipment=shipment.rec_name))
credential = self.get_credential(shipment)
if not credential.depot or not credential.token:
credential.update_token()
carrier = shipment.carrier
shipping_client = get_client(credential.server, SHIPMENT_SERVICE)
print_options = self.get_print_options(shipment)
packages = shipment.root_packages
shipment_data = self.get_shipment_data(credential, shipment, packages)
count = 0
while count < 2:
lang = (credential.company.party.lang.code
if credential.company.party.lang else 'en')
lang = locale.normalize(lang)[:5]
authentication = {
'delisId': credential.user_id,
'authToken': credential.token,
'messageLanguage': lang,
}
try:
shipment_response = shipping_client.service.storeOrders(
print_options, shipment_data, _soapheaders={
'authentication': authentication,
})
break
except Fault as e:
if e.detail:
tag = etree.QName(e.detail[0].tag)
if tag.localname == 'authenticationFault':
count += 1
credential.update_token()
continue
raise DPDError(gettext(
'stock_package_shipping_dpd.'
'msg_dpd_webservice_error',
message=e.message)) from e
else:
raise DPDError(
gettext('stock_package_shipping_dpd.msg_dpd_login_error',
credential=credential.rec_name))
response, = shipment_response.shipmentResponses
if response.faults:
message = '\n'.join(f.message for f in response.faults)
raise DPDError(
gettext('stock_package_shipping_dpd.msg_dpd_webservice_error',
message=message))
labels = []
labels_pdf = BytesIO(shipment_response.parcellabelsPDF)
reader = PdfReader(labels_pdf)
for page in iter_pdf_pages(reader):
new_pdf = PdfWriter()
new_label = BytesIO()
new_pdf.add_page(page)
new_pdf.write(new_label)
labels.append(new_label)
shipment.shipping_reference = response.mpsId
parcels = response.parcelInformation
for package, label, parcel in zip_longest(packages, labels, parcels):
package.shipping_label = fields.Binary.cast(label.getvalue())
package.shipping_label_mimetype = (
carrier.shipping_label_mimetype)
package.shipping_reference = parcel.parcelLabelNumber
Package.save(packages)
shipment.save()
return 'end'
def get_credential_pattern(self, shipment):
return {
'company': shipment.company.id,
}
def get_credential(self, shipment):
pool = Pool()
DPDCredential = pool.get('carrier.credential.dpd')
credential_pattern = self.get_credential_pattern(shipment)
for credential in DPDCredential.search([]):
if credential.match(credential_pattern):
return credential
def get_print_options(self, shipment):
return {
'printerLanguage': shipment.carrier.dpd_printer_language,
'paperFormat': shipment.carrier.dpd_paper_format,
}
def shipping_party(self, party, address, usage=None):
shipping_party = {
'name1': address.party_full_name[:35],
'name2': '',
'street': ' '.join((address.street or '').splitlines())[:35],
'country': address.country.code if address.country else '',
'zipCode': address.postal_code[:9],
'city': address.city[:35],
}
if party.full_name != address.party_full_name:
shipping_party['name2'] = party.full_name[:35]
phone = address.contact_mechanism_get({'phone', 'mobile'}, usage=usage)
if phone and len(phone.value) <= 30:
shipping_party['phone'] = phone.value
email = address.contact_mechanism_get('email', usage=usage)
if email and len(email.value) <= 50:
shipping_party['email'] = email.value
return shipping_party
def get_parcel(self, package):
pool = Pool()
UoM = pool.get('product.uom')
ModelData = pool.get('ir.model.data')
cm = UoM(ModelData.get_id('product', 'uom_centimeter'))
parcel = {}
if package.total_weight:
# in grams rounded in 10 gram units
weight = int(package.total_weight * 10) * 10
if weight < 1000000000:
parcel['weight'] = weight
if (package.length is not None
and package.width is not None
and package.height is not None):
length = UoM.compute_qty(
package.length_uom, package.length, cm)
width = UoM.compute_qty(
package.width_uom, package.width, cm)
height = UoM.compute_qty(
package.height_uom, package.height, cm)
if length < 1000 and width < 1000 and height < 1000:
parcel['volume'] = int(
'%03i%03i%03i' % (length, width, height))
return parcel
def get_shipment_data(self, credential, shipment, packages):
return {
'generalShipmentData': {
'identificationNumber': shipment.number,
'sendingDepot': credential.depot,
'product': shipment.carrier.dpd_product,
'sender': self.shipping_party(
shipment.company.party,
shipment.shipping_warehouse.address),
'recipient': self.shipping_party(
shipment.shipping_to, shipment.shipping_to_address),
},
'parcels': [self.get_parcel(p) for p in packages],
'productAndServiceData': {
'orderType': 'consignment',
**self.get_notification(shipment),
},
}
def get_notification(self, shipment, usage=None):
carrier = shipment.carrier
if not carrier.dpd_notification:
return {}
party = shipment.shipping_to
if party and party.lang:
lang_code = party.lang.code
else:
lang_code = Transaction().language
lang_code = lang_code.upper()
channel2type = {
'sms': {'mobile'},
}
channels = [
(1, 'email'),
(3, 'sms'),
]
if carrier.dpd_notification == 'sms':
channels = reversed(channels)
for channel_id, channel in channels:
mechanism = party.contact_mechanism_get(
channel2type.get(channel, channel), usage=usage)
if not mechanism:
continue
value = mechanism.value
if len(value) > 50:
continue
return {
'predict': {
'channel': channel_id,
'value': value,
'language': lang_code,
},
}
return {}

View File

@@ -0,0 +1,11 @@
<?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.action.wizard" id="act_create_shipping_dpd_wizard">
<field name="name">Create DPD Shipping for Packages</field>
<field name="wiz_name">stock.shipment.create_shipping.dpd</field>
</record>
</data>
</tryton>

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,226 @@
========================================
Stock Package Shipping with DPD scenario
========================================
Imports::
>>> import os
>>> from decimal import Decimal
>>> from proteus import Model
>>> from trytond.modules.account.tests.tools import (
... create_chart, create_fiscalyear, get_accounts)
>>> from trytond.modules.account_invoice.tests.tools import (
... create_payment_term, set_fiscalyear_invoice_sequences)
>>> from trytond.modules.company.tests.tools import create_company, get_company
>>> from trytond.tests.tools import activate_modules
Activate modules::
>>> config = activate_modules(
... ['stock_package_shipping_dpd', 'sale', 'sale_shipment_cost'])
Create company::
>>> _ = create_company()
>>> company = get_company()
Create fiscal year::
>>> fiscalyear = set_fiscalyear_invoice_sequences(
... create_fiscalyear(company))
>>> fiscalyear.click('create_period')
Create chart of accounts::
>>> _ = create_chart(company)
>>> accounts = get_accounts(company)
>>> revenue = accounts['revenue']
>>> expense = accounts['expense']
Create a payment term::
>>> payment_term = create_payment_term()
>>> payment_term.save()
Create parties::
>>> Party = Model.get('party.party')
>>> Country = Model.get('country.country')
>>> belgium = Country(code='BE', name='Belgium')
>>> belgium.save()
>>> france = Country(code='FR', name='France')
>>> france.save()
>>> customer = Party(name='Customer')
>>> customer.save()
>>> customer_address = customer.addresses.new()
>>> customer_address.street = 'Champs élysées'
>>> customer_address.postal_code = '75008'
>>> customer_address.city = 'Paris'
>>> customer_address.country = france
>>> customer_address.save()
>>> customer_phone = customer.contact_mechanisms.new(type='mobile')
>>> customer_phone.value = '+33 93 842 8862'
>>> customer_phone.save()
Set the warehouse address::
>>> Address = Model.get('party.address')
>>> Location = Model.get('stock.location')
>>> warehouse, = Location.find([('type', '=', 'warehouse')])
>>> company_address = Address()
>>> company_address.party = company.party
>>> company_address.street = '2 rue de la Centrale'
>>> company_address.postal_code = '4000'
>>> company_address.city = 'Sclessin'
>>> company_address.country = belgium
>>> company_address.save()
>>> company_phone = company.party.contact_mechanisms.new()
>>> company_phone.type = 'phone'
>>> company_phone.value = '+32 4 2522122'
>>> company_phone.save()
>>> warehouse.address = company_address
>>> warehouse.save()
Get some units::
>>> UoM = Model.get('product.uom')
>>> cm, = UoM.find([('symbol', '=', 'cm')])
>>> g, = UoM.find([('symbol', '=', 'g')])
Create account category::
>>> ProductCategory = Model.get('product.category')
>>> account_category = ProductCategory(name="Account Category")
>>> account_category.accounting = True
>>> account_category.account_expense = expense
>>> account_category.account_revenue = revenue
>>> account_category.save()
Create product::
>>> ProductUom = Model.get('product.uom')
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
>>> ProductTemplate = Model.get('product.template')
>>> template = ProductTemplate()
>>> template.name = 'product'
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.salable = True
>>> template.weight = 100
>>> template.weight_uom = g
>>> template.list_price = Decimal('10')
>>> template.account_category = account_category
>>> template.save()
>>> product, = template.products
Create an Inventory::
>>> Inventory = Model.get('stock.inventory')
>>> storage, = Location.find([
... ('code', '=', 'STO'),
... ])
>>> inventory = Inventory()
>>> inventory.location = storage
>>> inventory_line = inventory.lines.new(product=product)
>>> inventory_line.quantity = 100.0
>>> inventory_line.expected_quantity = 0.0
>>> inventory.click('confirm')
>>> inventory.state
'done'
Create Package Type::
>>> PackageType = Model.get('stock.package.type')
>>> box = PackageType(
... name='Box',
... length=10, length_uom=cm,
... height=8, height_uom=cm,
... width=5, width_uom=cm)
>>> box.save()
Create a DPD Carrier and the related credential::
>>> Carrier = Model.get('carrier')
>>> CarrierSelection = Model.get('carrier.selection')
>>> DPDCredential = Model.get('carrier.credential.dpd')
>>> credential = DPDCredential()
>>> credential.company = company
>>> credential.user_id = os.getenv('DPD_USER_ID')
>>> credential.password = os.getenv('DPD_PASSWORD')
>>> credential.server = 'testing'
>>> credential.save()
>>> carrier_product_template = ProductTemplate()
>>> carrier_product_template.name = 'DPD Delivery'
>>> carrier_product_template.default_uom = unit
>>> carrier_product_template.type = 'service'
>>> carrier_product_template.salable = True
>>> carrier_product_template.list_price = Decimal(20)
>>> carrier_product_template.account_category = account_category
>>> carrier_product_template.save()
>>> carrier_product, = carrier_product_template.products
>>> dpd = Party(name='DPD')
>>> dpd.save()
>>> carrier = Carrier()
>>> carrier.party = dpd
>>> carrier.carrier_product = carrier_product
>>> carrier.shipping_service = 'dpd'
>>> carrier.dpd_product = 'CL'
>>> carrier.dpd_printer_language = 'PDF'
>>> carrier.dpd_paper_format = 'A6'
>>> carrier.dpd_notification = 'sms'
>>> carrier.save()
>>> catchall_selection = CarrierSelection(carrier=carrier)
>>> catchall_selection.save()
Create a sale and thus a shipment::
>>> Sale = Model.get('sale.sale')
>>> SaleLine = Model.get('sale.line')
>>> sale = Sale()
>>> sale.party = customer
>>> sale.shipment_address = customer_address
>>> sale.payment_term = payment_term
>>> sale.invoice_method = 'order'
>>> sale.carrier = carrier
>>> sale_line = sale.lines.new()
>>> sale_line.product = product
>>> sale_line.quantity = 2.0
>>> sale.click('quote')
>>> sale.click('confirm')
>>> sale.click('process')
Create the packs and ship the shipment::
>>> Package = Model.get('stock.package')
>>> shipment, = sale.shipments
>>> shipment.click('assign_try')
>>> shipment.click('pick')
>>> pack = shipment.packages.new()
>>> pack.type = box
>>> pack_move, = pack.moves.find([])
>>> pack.moves.append(pack_move)
>>> shipment.click('pack')
>>> create_shipping = shipment.click('create_shipping')
>>> shipment.reload()
>>> bool(shipment.shipping_reference)
True
>>> pack, = shipment.root_packages
>>> pack.shipping_label is not None
True
>>> pack.shipping_label_mimetype
'application/pdf'
>>> pack.shipping_reference is not None
True
>>> pack.shipping_tracking_url
'https://tracking.dpd.de/status/...'
>>> pack.shipping_tracking_url.endswith(pack.shipping_reference)
True

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 StockPackageShippingDpdTestCase(ModuleTestCase):
'Test Stock Package Shipping Dpd module'
module = 'stock_package_shipping_dpd'
del ModuleTestCase

View File

@@ -0,0 +1,10 @@
# 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 os
from trytond.tests.test_tryton import load_doc_tests
if os.getenv('DPD_USER_ID') and os.getenv('DPD_PASSWORD'):
def load_tests(*args, **kwargs):
return load_doc_tests(__name__, __file__, *args, **kwargs)

View File

@@ -0,0 +1,15 @@
[tryton]
version=7.2.0
depends:
ir
res
party
product
stock
stock_shipment_measurements
stock_package
stock_package_shipping
xml:
carrier.xml
stock.xml
message.xml

View File

@@ -0,0 +1,17 @@
<?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='shipping_service']" position="after">
<separator string="DPD" colspan="4" id="dpd"/>
<label name="dpd_product"/>
<field name="dpd_product"/>
<label name="dpd_notification"/>
<field name="dpd_notification"/>
<label name="dpd_printer_language"/>
<field name="dpd_printer_language"/>
<label name="dpd_paper_format"/>
<field name="dpd_paper_format"/>
</xpath>
</data>

View File

@@ -0,0 +1,17 @@
<?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. -->
<form cursor="server">
<label name="company"/>
<field name="company"/>
<label name="sequence"/>
<field name="sequence"/>
<label name="server"/>
<field name="server"/>
<separator string="Credential Information" colspan="4" id="credential_info"/>
<label name="user_id"/>
<field name="user_id"/>
<label name="password"/>
<field name="password" widget="password"/>
</form>

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. -->
<tree sequence="sequence">
<field name="company" expand="1"/>
<field name="user_id" expand="2"/>
<field name="server"/>
</tree>