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,21 @@
# 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(
stock.PackageType,
stock.Package,
stock.ShipmentOut,
stock.ShipmentInReturn,
carrier.CredentialUPS,
carrier.Carrier,
module='stock_package_shipping_ups', type_='model')
Pool.register(
stock.CreateShipping,
stock.CreateShippingUPS,
module='stock_package_shipping_ups', type_='wizard')

View File

@@ -0,0 +1,159 @@
# 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 oauthlib.oauth2 import BackendApplicationClient
from requests_oauthlib import OAuth2Session
from trytond.model import (
MatchMixin, ModelSQL, ModelView, fields, sequence_ordered)
from trytond.pool import PoolMeta
from trytond.pyson import Eval
class CredentialUPS(sequence_ordered(), ModelSQL, ModelView, MatchMixin):
'UPS Credential'
__name__ = 'carrier.credential.ups'
_rec_name = 'account_number'
company = fields.Many2One('company.company', 'Company')
client_id = fields.Char("Client ID", required=True)
client_secret = fields.Char("Client Secret", required=True)
account_number = fields.Char('Account Number', required=True)
use_metric = fields.Boolean('Use Metric')
server = fields.Selection([
('testing', 'Testing'),
('production', 'Production'),
], 'Server')
@classmethod
def __register__(cls, module):
table_h = cls.__table_handler__(module)
super().__register__(module)
# Migration from 6.8: switch to OAuth
table_h.drop_column('user_id')
table_h.drop_column('password')
table_h.drop_column('license')
@classmethod
def default_use_metric(cls):
return True
@classmethod
def default_server(cls):
return 'testing'
def get_token(self):
if self.server == 'production':
url = 'https://onlinetools.ups.com/security/v1/oauth/token'
else:
url = 'https://wwwcie.ups.com/security/v1/oauth/token'
client = BackendApplicationClient(client_id=self.client_id)
oauth = OAuth2Session(client=client)
token = oauth.fetch_token(
token_url=url, client_id=self.client_id,
client_secret=self.client_secret)
return token['access_token']
def get_shipment_url(self):
if self.server == 'production':
return 'https://onlinetools.ups.com/api/shipments/v1/ship'
else:
return 'https://wwwcie.ups.com/api/shipments/v1/ship'
class Carrier(metaclass=PoolMeta):
__name__ = 'carrier'
ups_service_type = fields.Selection([
(None, ''),
('01', 'Next Day Air'),
('02', '2nd Day Air'),
('03', 'Ground'),
('07', 'Express'),
('08', 'Expedited'),
('11', 'UPS Standard'),
('12', '3 Days Select'),
('13', 'Next Day Air Saver'),
('14', 'UPS Next Day Air Early'),
('17', "UPS Worldwide Economy DDU"),
('54', 'Express Plus'),
('59', '2nd Day Air A.M.'),
('65', 'UPS Saver'),
('M2', 'First Class Mail'),
('M3', 'Priority Mail'),
('M4', 'Expedited Mail Innovations'),
('M5', 'Priority Mail Innovations'),
('M6', 'Economy Mail Innovations'),
('M7', "Mail Innovations (MI) Returns"),
('70', 'UPS Access Point Economy'),
('71', "UPS Worldwide Express Freight Midday"),
('72', "UPS Worldwide Economy DDP"),
('74', "UPS Express 12:00"),
('82', 'UPS Today Standard'),
('83', 'UPS Today Dedicated Courier'),
('84', 'UPS Today Intercity'),
('85', 'UPS Today Express'),
('86', 'UPS Today Express Saver'),
('96', 'UPS Worldwide Express Freight'),
], 'Service Type', sort=False, translate=False,
states={
'required': Eval('shipping_service') == 'ups',
'invisible': Eval('shipping_service') != 'ups',
})
ups_label_image_format = fields.Selection([
(None, ''),
('EPL', 'EPL2'),
('SPL', 'SPL'),
('ZPL', 'ZPL'),
('GIF', 'GIF'),
('STARPL', 'Star Printer'),
], 'Label Image Format', sort=False, translate=False,
states={
'required': Eval('shipping_service') == 'ups',
'invisible': Eval('shipping_service') != 'ups',
})
ups_label_height = fields.Selection([
(None, ''),
('6', '6'),
('8', '8'),
], 'Label Height', sort=False, translate=False,
states={
'required': ((Eval('shipping_service') == 'ups')
& (Eval('ups_label_image_format') != 'GIF')),
'invisible': ((Eval('shipping_service') != 'ups')
| (Eval('ups_label_image_format') == 'GIF')),
})
ups_notifications = fields.MultiSelection([
('5', "Quantum View In-transit"),
('6', "Quantum View Shop"),
('7', "Quantum View Exception"),
('8', "Quantum View Delivery"),
('2', "Return or Label Creation"),
('012', "Alternate Delivery Location"),
('013', "UPS Access Point Shipper"),
], "Notifications", sort=False,
states={
'invisible': Eval('shipping_service') != 'ups',
})
@classmethod
def __setup__(cls):
super(Carrier, cls).__setup__()
cls.shipping_service.selection.append(('ups', 'UPS'))
@classmethod
def view_attributes(cls):
return super(Carrier, cls).view_attributes() + [
("/form/separator[@id='ups']", 'states', {
'invisible': Eval('shipping_service') != 'ups',
}),
]
@property
def shipping_label_mimetype(self):
mimetype = super().shipping_label_mimetype
if self.shipping_service == 'ups':
if self.ups_label_image_format == 'GIF':
mimetype = 'image/gif'
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.ups</field>
<field name="type">form</field>
<field name="name">ups_credential_form</field>
</record>
<record model="ir.ui.view" id="credential_view_tree">
<field name="model">carrier.credential.ups</field>
<field name="type">tree</field>
<field name="name">ups_credential_list</field>
</record>
<record model="ir.action.act_window" id="act_ups_credential_form">
<field name="name">UPS Credentials</field>
<field name="res_model">carrier.credential.ups</field>
</record>
<record model="ir.action.act_window.view"
id="act_ups_credential_form_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="credential_view_tree"/>
<field name="act_window" ref="act_ups_credential_form"/>
</record>
<record model="ir.action.act_window.view"
id="act_ups_credential_form_view2">
<field name="sequence" eval="20"/>
<field name="view" ref="credential_view_form"/>
<field name="act_window" ref="act_ups_credential_form"/>
</record>
<menuitem
parent="carrier.menu_configuration"
action="act_ups_credential_form"
sequence="20"
id="menu_ups_credential_form"/>
<record model="ir.model.access" id="access_carrier_credential">
<field name="model">carrier.credential.ups</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.ups</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,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 UPSError(UserError):
pass

View File

@@ -0,0 +1,149 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
#, fuzzy
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Фирма"
#, fuzzy
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Сървър"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Credentials"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
#, fuzzy
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Управление на производство"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,155 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr "Alçada de l'etiqueta"
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr "Format de la imatge de l'etiqueta"
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr "Notificacions"
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr "Tipus de servei"
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr "Número de compte"
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr "ID Client"
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr "Secret client"
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Empresa"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Servidor"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr "Usa mètric"
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr "Codi UPS"
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "Credencial UPS"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Crea enviament UPS per paquets"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "Credencials UPS"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
"Per a validar l'albarà \"%(shipment)s\" s'ha d'afegir un número de telèfon a"
" l'adreça \"%(address)s\"."
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
"No podeu crear el enviament per l'albarà \"%(shipment)s\" perquè ja té un "
"número de referència."
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
"Per validar l'albarà \"%(shipment)s\" heu d'emplenar la seva descripció "
"d'enviament."
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"La crida al servei web UPS ha fallat amb el següent missatge d'error:\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
"Per validar l'albarà \"%(shipment)s\" heu d'establir una adreça al magatzem "
"\"%(warehouse)s\"."
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "Credencials UPS"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr "UPS"
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr "Direcció d'enviament alternativa"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr "Lliurament"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr "Excepció"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr "En trànsit"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr "Tenda"
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr "Creació de devolució o etiqueta"
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr "UPS Punt d'accés de transportista"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Producció"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr "Proves"
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr "Informació de les credencials"
msgctxt "view:carrier:"
msgid "UPS"
msgstr "UPS"
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr "UPS"

View File

@@ -0,0 +1,146 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Credentials"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,155 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr "Höhe Etikett"
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr "Bildformat Etikett"
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr "Benachrichtigungen"
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr "Dienstleistungstyp"
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr "Kontonummer"
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr "Client-ID"
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr "Client Secret"
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Unternehmen"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Server"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr "Metrische Einheiten verwenden"
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr "UPS Code"
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Anmeldedaten"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "UPS Versand für Pakete erstellen"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Anmeldedaten"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
"Um die Lieferung \"%(shipment)s\" validieren zu können muss eine "
"Telefonnummer für die Adresse \"%(address)s\" erfasst werden."
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
"Für die Lieferung \"%(shipment)s\" kann keine Sendung erstellt werden, da "
"sie bereits eine Referenznummer hat."
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
"Um die Lieferung \"%(shipment)s\" validieren zu können, muss deren "
"Versandbeschreibung ausgefüllt werden."
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"Der Aufruf des UPS-Webservice schlug fehl mit der folgenden Fehlermeldung:\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
"Damit die Lieferung \"%(shipment)s\" validiert werden kann, muss eine "
"Adresse für den Logistikstandort \"%(warehouse)s\" erfasst werden."
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Anmeldedaten"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr "UPS"
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr "Alternativer Zustellungsort"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr "Quantum View Lieferung"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr "Quantum View Ausnahme"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr "Quantum View Unterwegs"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr "Quantum View Shop"
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr "Versandettikett erstellt"
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr "An UPS übergeben"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Produktivumgebung"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr "Testumgebung"
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr "Anmeldedaten"
msgctxt "view:carrier:"
msgid "UPS"
msgstr "UPS"
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr "UPS"

View File

@@ -0,0 +1,155 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr "Altura de la etiqueta"
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr "Formato de la imagen de la etiqueta"
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr "Notificaciones"
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr "Tipo de servicio"
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr "Número de cuenta"
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr "ID Cliente"
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr "Secreto cliente"
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Empresa"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Servidor"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr "Usar sistema métrico"
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr "Código UPS"
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "Credencial UPS"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Crear envíos UPS para paquetes"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "Credenciales UPS"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
"Para validar el albarán \"%(shipment)s\" debes añadir un numero de teléfono "
"a la dirección \"%(address)s\"."
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
"No puede crear el envío para el albarán \"%(shipment)s\" porque ya tiene un "
"número de referencia."
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
"Para validar el albaran \"%(shipment)s\" debe llenar la descripción de "
"envío."
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"La llamada al servicio web UPS ha fallado con el siguiente mensaje de error:\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on 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_ups_credential_form"
msgid "UPS Credentials"
msgstr "Credenciales UPS"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr "UPS"
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr "Dirección de envío alternativa"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr "Entrega"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr "Excepción"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr "En tránsito"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr "Tienda"
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr "Creación de devolución o etiqueta"
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr "UPS Punto de acceso de transportista"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Producción"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr "Pruebas"
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr "Información de las credenciales"
msgctxt "view:carrier:"
msgid "UPS"
msgstr "UPS"
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr "UPS"

View File

@@ -0,0 +1,145 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr ""
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr ""
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr ""
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,145 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr "Etiketi kõrgus"
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr "Etiketi pildi formaat"
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr "Teenuse tüüp"
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr "Konto number"
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Ettevõte"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Server"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr "UPS kood"
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS viide"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr ""
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS viide"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPSviide"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr "UPS"
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Tootmine"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr "Testimine"
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr "UPS"
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr "UPS"

View File

@@ -0,0 +1,157 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr "ارتفاع برچسب"
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr "فرمت تصویر برچسب"
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr "نوع خدمات"
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr "شماره حساب"
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "شرکت"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "سرور"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr "استفاده از متریک"
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr "کد سرویس UPS"
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "گواهی نامه UPS"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "ایجاد حمل ونقل UPS برای بسته ها"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "گواهی نامه UPS"
#, fuzzy
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
"برای تأیید حمل و نقل :\"%(shipment)s\" شما باید شماره تلفن را به نهاد/سازمان"
" :\"%(party)s\" اضافه کنید."
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
"شما نمی توانید حمل را برای حمل و نقل :\"%(shipment)s\" ایجاد کنید، چراکه "
"دارای یک شماره مرجع است."
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
"برای تایید حمل و نقل :\"%(shipment)s\" شما باید توضیحات حمل و نقل خود را پر "
"کنید."
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"تماس با وب سرویس UPS با پیغام خطای زیر انجام نشد :\n"
"\"%s\""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
"برای تأیید حمل و نقل :\"%(shipment)s\" شما باید آدرس را در "
"انبار:\"%(warehouse)s\" قرار دهید."
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "گواهی نامه های UPS"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr "UPS"
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "تهیه کننده"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr "آزمایش"
#, fuzzy
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr "اطلاعات گواهی نامه"
msgctxt "view:carrier:"
msgid "UPS"
msgstr "UPS"
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr "UPS"

View File

@@ -0,0 +1,146 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Credentials"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,155 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr "Hauteur d'étiquette"
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr "Format de l'image d'étiquette"
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr "Notifications"
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr "Type de service"
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr "Numéro de compte"
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr "ID client"
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr "Secret client"
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Société"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Serveur"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr "Utiliser le système métrique"
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr "Code UPS"
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "Identifiant UPS"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Créer la livraison UPS pour les emballages"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "Identifiant UPS"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
"Pour valider l'expédition « %(shipment)s », vous devez ajouter un numéro de "
"téléphone pour l'adresse « %(address)s »."
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a 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."
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
"Pour valider l'expédition « %(shipment)s », vous devez remplir sa "
"description de livraison."
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"L'appel au web service UPS a échoué avec le message d'erreur :\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
"Pour validé l'expédition « %(shipment)s », vous devez définir une adresse "
"pour l'entrepôt « %(warehouse)s »."
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "Identifiants UPS"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr "UPS"
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr "Lieu de livraison alternatif"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr "Livraison Quantum View"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr "Exception Quantum View"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr "En transit Quantum View"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr "Boutique Quantum View"
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr "Retour ou création d'étiquette"
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr "Point d'accès UPS expéditeur"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Production"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr "Essai"
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr "Informations d'identification"
msgctxt "view:carrier:"
msgid "UPS"
msgstr "UPS"
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr "UPS"

View File

@@ -0,0 +1,148 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
#, fuzzy
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Társaság"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Credentials"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
#, fuzzy
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Termelés"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,145 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Perusahaan"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Server"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr ""
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr ""
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr ""
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Produksi"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr "Testing"
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,147 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
#, fuzzy
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr "Numero del conto"
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Azienda"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Credentials"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,148 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
#, fuzzy
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "ຫ້ອງການ/ສຳນັກງານ"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Credentials"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
#, fuzzy
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "ຜະລິດຕະພັນ"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,146 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Organizacija"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Credentials"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,155 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr "Label hoogte"
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr "Label afbeeldingsformaat"
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr "Notificaties"
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr "Soort Dienst"
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr "Rekeningnummer"
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr "Klant ID"
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr "Klant Secret"
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Bedrijf"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Server"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr "Gebruik metrische eenheden"
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr "UPS-code"
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS-gegevens"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Maak een UPS-verzending voor de pakketten"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS aanmeldgegevens"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
"Om zending \"%(shipment)s\" te valideren, moet u een telefoonnummer "
"toevoegen aan adres \"%(address)s\"."
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
"U kunt geen verzending voor zending \"%(shipment)s\" maken omdat deze al een"
" referentienummer heeft."
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
"Om verzending \"%(shipment)s\" te valideren, moet u de verzendomschrijving "
"invullen."
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"UPS webservice-oproep is mislukt met het volgende foutbericht:\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on 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_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS aanmeldgegevens"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr "UPS"
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr "Alternatieve aflever locatie"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr "Quantum weergave aflevering"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr "Quantum weergave uitzondering"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr "Quantum weergave onderweg"
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr "Quantum weergave winkel"
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr "Retourneren of label aanmaken"
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr "UPS Access Point verzender"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Productie"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr "Testen"
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr "Aanmeld gegevens"
msgctxt "view:carrier:"
msgid "UPS"
msgstr "UPS"
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr "UPS"

View File

@@ -0,0 +1,148 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr "Typ usługi"
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr "Numer konta"
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Firma"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Serwer"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr "Kod UPS"
#, fuzzy
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Credentials"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
#, fuzzy
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr "UPS"
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Produkcja"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr "UPS"
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr "UPS"

View File

@@ -0,0 +1,153 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr "Altura da Etiqueta"
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr "Formato da Imagem da Etiqueta"
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr "Tipo de serviço"
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr "Número da Conta"
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Empresa"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Servidor"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr "Usar Métrica"
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr "Código UPS"
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "Credencial UPS"
#, fuzzy
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
#, fuzzy
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
#, fuzzy
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"A chamada ao serviço web UPS falhou com a seguinte mensagem:\n"
"\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr "UPS"
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Produção"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr "Testando"
#, fuzzy
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr "Informações da Credencial"
msgctxt "view:carrier:"
msgid "UPS"
msgstr "UPS"
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr "UPS"

View File

@@ -0,0 +1,150 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Companie"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr ""
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr ""
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr ""
#, fuzzy
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
"Pentru a valida expedierea \"%(shipment)s\" trebuie setata o adresa la "
"depozit \"%(warehouse)s\"."
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
"Pentru a valida expedierea \"%(shipment)s\" trebuie setata o adresa la "
"depozit \"%(warehouse)s\"."
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,149 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
#, fuzzy
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Учет.орг."
#, fuzzy
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Сервер"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Credentials"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
#, fuzzy
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Производство"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,153 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr "Velikost nalepke"
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr "Format nalepke"
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr "Vrsta storitve"
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr "Številka računa"
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr "Družba"
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr "Strežnik"
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr "Metrični sistem"
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr "UPS Šifra"
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS prijava"
#, fuzzy
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
#, fuzzy
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
#, fuzzy
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
"Sporočilo napake pri klicu UPS spletne storitve:\n"
"\n"
"%(message)s"
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr "UPS"
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr "Produkcijski"
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr "Preizkusni"
#, fuzzy
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr "Prijava"
msgctxt "view:carrier:"
msgid "UPS"
msgstr "UPS"
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr "UPS"

View File

@@ -0,0 +1,146 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Credentials"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,145 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr ""
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr ""
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr ""
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr ""
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,146 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:carrier,ups_label_height:"
msgid "Label Height"
msgstr ""
msgctxt "field:carrier,ups_label_image_format:"
msgid "Label Image Format"
msgstr ""
msgctxt "field:carrier,ups_notifications:"
msgid "Notifications"
msgstr ""
msgctxt "field:carrier,ups_service_type:"
msgid "Service Type"
msgstr ""
msgctxt "field:carrier.credential.ups,account_number:"
msgid "Account Number"
msgstr ""
msgctxt "field:carrier.credential.ups,client_id:"
msgid "Client ID"
msgstr ""
msgctxt "field:carrier.credential.ups,client_secret:"
msgid "Client Secret"
msgstr ""
msgctxt "field:carrier.credential.ups,company:"
msgid "Company"
msgstr ""
msgctxt "field:carrier.credential.ups,server:"
msgid "Server"
msgstr ""
msgctxt "field:carrier.credential.ups,use_metric:"
msgid "Use Metric"
msgstr ""
msgctxt "field:stock.package.type,ups_code:"
msgid "UPS Code"
msgstr ""
#, fuzzy
msgctxt "model:carrier.credential.ups,name:"
msgid "UPS Credential"
msgstr "UPS Credentials"
msgctxt "model:ir.action,name:act_create_shipping_ups_wizard"
msgid "Create UPS Shipping for Packages"
msgstr "Create UPS Shipping for Packages"
msgctxt "model:ir.action,name:act_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "model:ir.message,text:msg_phone_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must add phone number for address "
"\"%(address)s\"."
msgstr ""
msgctxt "model:ir.message,text:msg_shipment_has_reference_number"
msgid ""
"You cannot create shipping for shipment \"%(shipment)s\" because it has "
"already a reference number."
msgstr ""
msgctxt "model:ir.message,text:msg_shipping_description_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must fill its shipping "
"description."
msgstr ""
msgctxt "model:ir.message,text:msg_ups_webservice_error"
msgid ""
"UPS webservice call failed with the following error message:\n"
"%(message)s"
msgstr ""
msgctxt "model:ir.message,text:msg_warehouse_address_required"
msgid ""
"To validate shipment \"%(shipment)s\" you must set an address on warehouse "
"\"%(warehouse)s\"."
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_ups_credential_form"
msgid "UPS Credentials"
msgstr "UPS Credentials"
msgctxt "selection:carrier,shipping_service:"
msgid "UPS"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Alternate Delivery Location"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Delivery"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Exception"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View In-transit"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Quantum View Shop"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "Return or Label Creation"
msgstr ""
msgctxt "selection:carrier,ups_notifications:"
msgid "UPS Access Point Shipper"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Production"
msgstr ""
msgctxt "selection:carrier.credential.ups,server:"
msgid "Testing"
msgstr ""
msgctxt "view:carrier.credential.ups:"
msgid "Credential Information"
msgstr ""
msgctxt "view:carrier:"
msgid "UPS"
msgstr ""
msgctxt "view:stock.package.type:"
msgid "UPS"
msgstr ""

View File

@@ -0,0 +1,23 @@
<?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_ups_webservice_error">
<field name="text">UPS webservice call failed with the following error message:
%(message)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 warehouse "%(warehouse)s".</field>
</record>
<record model="ir.message" id="msg_phone_required">
<field name="text">To validate shipment "%(shipment)s" you must add phone number for address "%(address)s".</field>
</record>
<record model="ir.message" id="msg_shipping_description_required">
<field name="text">To validate shipment "%(shipment)s" you must fill its shipping description.</field>
</record>
<record model="ir.message" id="msg_shipment_has_reference_number">
<field name="text">You cannot create shipping for shipment "%(shipment)s" because it has already a reference number.</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,409 @@
# 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 base64
import re
import ssl
import urllib.parse
from itertools import zip_longest
import requests
from trytond.config import config
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 .exceptions import UPSError
TRACKING_URL = 'https://www.ups.com/track'
TIMEOUT = config.getfloat(
'stock_package_shipping_ups', 'requests_timeout', default=300)
class PackageType(metaclass=PoolMeta):
__name__ = 'stock.package.type'
ups_code = fields.Selection([
(None, ''),
('01', 'UPS Letter'),
('02', 'Customer Supplied Package'),
('03', 'Tube'),
('04', 'PAK'),
('21', 'UPS Express Box'),
('24', 'UPS 25KG Box'),
('25', 'UPS 10KG Box'),
('30', 'Pallet'),
('2a', 'Small Express Box'),
('2b', 'Medium Express Box'),
('2c', 'Large Express Box'),
('56', 'Flats'),
('57', 'Parcels'),
('58', 'BPM'),
('59', 'First Class'),
('60', 'Priority'),
('61', 'Machinables'),
('62', 'Irregulars'),
('63', 'Parcel Post'),
('64', 'BPM Parcel'),
('65', 'Media Mail'),
('66', 'BPM Flat'),
('67', 'Standard Flat'),
], 'UPS Code', sort=False, translate=False)
@classmethod
def default_ups_code(cls):
return None
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 == 'ups'):
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
parts = urllib.parse.urlsplit(TRACKING_URL)
query = urllib.parse.parse_qsl(parts.query)
if party and party.lang and address and address.country:
loc = '_'.join(
(party.lang.code.split('_')[0], address.country.code))
query.append(('loc', loc))
query.append(('tracknum', self.shipping_reference))
parts = list(parts)
parts[3] = urllib.parse.urlencode(query)
url = urllib.parse.urlunsplit(parts)
return url
class ShippingUPSMixin:
__slots__ = ()
def validate_packing_ups(self, usage=None):
warehouse = self.shipping_warehouse
if not warehouse.address:
raise PackingValidationError(
gettext('stock_package_shipping_ups'
'.msg_warehouse_address_required',
shipment=self.rec_name,
warehouse=warehouse.rec_name))
if warehouse.address.country != self.delivery_address.country:
for address in [self.shipping_to_address, warehouse.address]:
if not address.contact_mechanism_get(
{'phone', 'mobile'}, usage=usage):
raise PackingValidationError(
gettext('stock_package_shipping_ups'
'.msg_phone_required',
shipment=self.rec_name,
address=address.rec_name))
if not self.shipping_description:
if (any(p.type.ups_code != '01' for p in self.root_packages)
and self.carrier.ups_service_type != '11'):
# TODO Should also test if a country is not in the EU
raise PackingValidationError(
gettext('stock_package_shipping_ups'
'.msg_shipping_description_required',
shipment=self.rec_name))
class ShipmentOut(ShippingUPSMixin, metaclass=PoolMeta):
__name__ = 'stock.shipment.out'
class ShipmentInReturn(ShippingUPSMixin, metaclass=PoolMeta):
__name__ = 'stock.shipment.in.return'
class CreateShipping(metaclass=PoolMeta):
__name__ = 'stock.shipment.create_shipping'
ups = StateAction(
'stock_package_shipping_ups.act_create_shipping_ups_wizard')
def transition_start(self):
next_state = super(CreateShipping, self).transition_start()
if self.record.carrier.shipping_service == 'ups':
next_state = 'ups'
return next_state
def do_ups(self, action):
ctx = Transaction().context
return action, {
'model': ctx['active_model'],
'id': ctx['active_id'],
'ids': [ctx['active_id']],
}
class CreateShippingUPS(Wizard):
'Create UPS Shipping'
__name__ = 'stock.shipment.create_shipping.ups'
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_ups'
'.msg_shipment_has_shipping_reference_number',
shipment=shipment.rec_name))
credential = self.get_credential(shipment)
carrier = shipment.carrier
packages = shipment.root_packages
shipment_request = self.get_request(shipment, packages, credential)
token = credential.get_token()
api_url = credential.get_shipment_url()
headers = {
'transactionSrc': "Tryton",
'Authorization': f"Bearer {token}",
}
nb_tries, response = 0, None
error_message = ''
try:
while nb_tries < 5 and response is None:
try:
response = requests.post(
api_url, json=shipment_request, headers=headers,
timeout=TIMEOUT)
except ssl.SSLError as e:
error_message = e.reason
nb_tries += 1
continue
response.raise_for_status()
response = response.json()
except requests.HTTPError as e:
try:
errors = e.response.json()['response']['errors']
error_message = "\n".join(m['message'] for m in errors)
except (requests.JSONDecodeError, TypeError, KeyError):
error_message = e.args[0]
if error_message:
raise UPSError(
gettext('stock_package_shipping_ups.msg_ups_webservice_error',
message=error_message))
shipment_response = response['ShipmentResponse']
response_status = shipment_response['Response']['ResponseStatus']
if response_status['Code'] != '1':
raise UPSError(
gettext('stock_package_shipping_ups.msg_ups_webservice_error',
message=response_status['Description']))
shipment_results = shipment_response['ShipmentResults']
shipment.shipping_reference = (
shipment_results['ShipmentIdentificationNumber'])
ups_packages = shipment_results['PackageResults']
if not isinstance(ups_packages, list):
# In case only one package is requested UPS may return a dictionary
# instead of a list of one package
ups_packages = [ups_packages]
for tryton_pkg, ups_pkg in zip_longest(packages, ups_packages):
label = fields.Binary.cast(base64.b64decode(
ups_pkg['ShippingLabel']['GraphicImage']))
tryton_pkg.shipping_reference = ups_pkg['TrackingNumber']
tryton_pkg.shipping_label = label
tryton_pkg.shipping_label_mimetype = (
carrier.shipping_label_mimetype)
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()
UPSCredential = pool.get('carrier.credential.ups')
credential_pattern = self.get_credential_pattern(shipment)
for credential in UPSCredential.search([]):
if credential.match(credential_pattern):
return credential
def get_request_container(self, shipment):
return {
'RequestOption': 'validate',
'TransactionReference': {
'CustomerContext': (shipment.number or '')[:512],
},
}
def get_shipping_party(self, party, address, usage=None):
shipping_party = {
'Name': address.party_full_name[:35],
'AttentionName': party.full_name[:35],
'Address': {
'AddressLine': [l[:35]
for l in (address.street or '').splitlines()[:3]],
'City': address.city[:30],
'PostalCode': (address.postal_code or '').replace(' ', '')[:9],
'CountryCode': address.country.code if address.country else '',
},
}
phone = address.contact_mechanism_get({'phone', 'mobile'}, usage=usage)
if phone:
shipping_party['Phone'] = {
'Number': re.sub('[() .-]', '', phone.value)[:15]
}
email = address.contact_mechanism_get('email')
if email and len(email.value) <= 50:
shipping_party['EMailAddress'] = email.value
return shipping_party
def get_payment_information(self, shipment, credential):
return {
'ShipmentCharge': {
# Type 01 is for Transportation Charges
'Type': '01',
'BillShipper': {
'AccountNumber': credential.account_number,
},
},
}
def get_package(self, use_metric, package):
pool = Pool()
UoM = pool.get('product.uom')
ModelData = pool.get('ir.model.data')
cm = UoM(ModelData.get_id('product', 'uom_centimeter'))
inch = UoM(ModelData.get_id('product', 'uom_inch'))
kg = UoM(ModelData.get_id('product', 'uom_kilogram'))
lb = UoM(ModelData.get_id('product', 'uom_pound'))
pkg = {
'Packaging': {
'Code': package.type.ups_code,
},
}
if (package.length is not None
and package.width is not None
and package.height is not None):
pkg['Dimensions'] = {
'UnitOfMeasurement': {
'Code': 'CM' if use_metric else 'IN',
},
'Length': '%i' % round(UoM.compute_qty(package.length_uom,
package.length, cm if use_metric else inch)),
'Width': '%i' % round(UoM.compute_qty(package.width_uom,
package.width, cm if use_metric else inch)),
'Height': '%i' % round(UoM.compute_qty(package.height_uom,
package.height, cm if use_metric else inch)),
}
if package.total_weight is not None:
pkg['PackageWeight'] = {
'UnitOfMeasurement': {
'Code': 'KGS' if use_metric else 'LBS',
},
'Weight': str(UoM.compute_qty(kg, package.total_weight,
kg if use_metric else lb)),
}
return pkg
def get_service_options(self, shipment):
service_options = {}
notifications = list(self.get_notifications(shipment))
if notifications:
service_options['Notification'] = notifications
return service_options
def get_notifications(self, shipment):
if not shipment.carrier.ups_notifications:
return
for code in shipment.carrier.ups_notifications:
shipping_to_address = shipment.shipping_to_address
email = shipping_to_address.contact_mechanism_get('email')
if email and len(email.value) <= 50:
notification = {
'NotificationCode': code,
'EMail': {
'EMailAddress': email.value,
},
}
if code in {'012', '013'}:
phone = shipping_to_address.contact_mechanism_get(
{'phone', 'mobile'})
if phone and len(phone.value) <= 15:
notification['VoiceMessage'] = {
'PhoneNumber': phone.value,
}
mobile = shipping_to_address.contact_mechanism_get(
'mobile')
if mobile and len(mobile.value) <= 15:
notification['TextMessage'] = {
'PhoneNumber': phone.value,
}
yield notification
def get_request(self, shipment, packages, credential):
shipper = self.get_shipping_party(
shipment.company.party, shipment.shipping_warehouse.address)
shipper['ShipperNumber'] = credential.account_number
# email is not required but must be associated with the UserId
# which can not be ensured.
shipper.pop('EMailAddress', None)
packages = [self.get_package(credential.use_metric, p)
for p in packages]
options = self.get_service_options(shipment)
if options:
# options are set on package instead of shipment
# despite what UPS documentation says
for pkg in packages:
pkg['ShipmentServiceOptions'] = options
return {
'ShipmentRequest': {
'Request': self.get_request_container(shipment),
'Shipment': {
'Description': (shipment.shipping_description or '')[:50],
'Shipper': shipper,
'ShipTo': self.get_shipping_party(
shipment.shipping_to, shipment.shipping_to_address),
'PaymentInformation': self.get_payment_information(
shipment, credential),
'Service': {
'Code': shipment.carrier.ups_service_type,
},
'Package': packages,
},
'LabelSpecification': {
'LabelImageFormat': {
'Code': shipment.carrier.ups_label_image_format,
},
'LabelStockSize': {
'Width': '4',
'Height': shipment.carrier.ups_label_height,
},
}
},
}

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. -->
<tryton>
<data>
<record model="ir.ui.view" id="package_type_view_form">
<field name="model">stock.package.type</field>
<field name="inherit" ref="stock_package.package_type_view_form"/>
<field name="name">package_type_form</field>
</record>
<record model="ir.action.wizard" id="act_create_shipping_ups_wizard">
<field name="name">Create UPS Shipping for Packages</field>
<field name="wiz_name">stock.shipment.create_shipping.ups</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,237 @@
========================================
Stock Package Shipping with UPS 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, assertEqual
Activate modules::
>>> config = activate_modules(
... ['stock_package_shipping_ups', '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()
>>> customer_phone.type = 'phone'
>>> customer_phone.value = '+33 93 842 8862'
>>> customer_phone.save()
>>> customer_email = customer.contact_mechanisms.new()
>>> customer_email.type = 'email'
>>> customer_email.value = 'customer@example.com'
>>> customer_email.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')
>>> ups_box = PackageType(
... name='UPS Box', ups_code='02',
... length=10, length_uom=cm,
... height=8, height_uom=cm,
... width=1, width_uom=cm)
>>> ups_box.save()
Create a UPS Carrier and the related credential::
>>> Carrier = Model.get('carrier')
>>> CarrierSelection = Model.get('carrier.selection')
>>> UPSCredential = Model.get('carrier.credential.ups')
>>> credential = UPSCredential()
>>> credential.company = company
>>> credential.client_id = os.getenv('UPS_CLIENT_ID')
>>> credential.client_secret = os.getenv('UPS_CLIENT_SECRET')
>>> credential.account_number = os.getenv('UPS_ACCOUNT_NUMBER')
>>> credential.server = 'testing'
>>> credential.save()
>>> carrier_product_template = ProductTemplate()
>>> carrier_product_template.name = 'UPS Ground'
>>> 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
>>> ups = Party(name='UPS')
>>> ups.save()
>>> carrier = Carrier()
>>> carrier.party = ups
>>> carrier.carrier_product = carrier_product
>>> carrier.shipping_service = 'ups'
>>> carrier.ups_service_type = '65'
>>> carrier.ups_label_image_format = 'GIF'
>>> carrier.ups_notifications = ['5', '7', '012']
>>> 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.shipping_description = 'Football Players'
>>> shipment.click('assign_try')
>>> shipment.click('pick')
>>> pack = shipment.packages.new()
>>> pack.type = ups_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
'image/gif'
>>> pack.shipping_reference is not None
True
>>> pack.shipping_tracking_url
'https://www.ups.com/track?...'
>>> pack.shipping_reference in pack.shipping_tracking_url
True
Because there is only one box, the pack shipping number is also the shipment
identification number::
>>> assertEqual(pack.shipping_reference, shipment.shipping_reference)

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 ShippingUpsTestCase(ModuleTestCase):
'Test Shipping Ups module'
module = 'stock_package_shipping_ups'
del ModuleTestCase

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.
import os
from trytond.tests.test_tryton import load_doc_tests
if (os.getenv('UPS_CLIENT_ID')
and os.getenv('UPS_CLIENT_SECRET')
and os.getenv('UPS_ACCOUNT_NUMBER')):
def load_tests(*args, **kwargs):
return load_doc_tests(__name__, __file__, *args, **kwargs)

View File

@@ -0,0 +1,16 @@
[tryton]
version=7.2.1
depends:
carrier
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,18 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="/form/field[@name='shipping_service']" position="after">
<separator string="UPS" colspan="4" id="ups"/>
<label name="ups_service_type"/>
<field name="ups_service_type"/>
<newline/>
<label name="ups_label_image_format"/>
<field name="ups_label_image_format"/>
<label name="ups_label_height"/>
<field name="ups_label_height"/>
<label name="ups_notifications"/>
<field name="ups_notifications" colspan="3"/>
</xpath>
</data>

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. -->
<data>
<xpath expr="/form/notebook" position="inside">
<page id="ups" string="UPS">
<label name="ups_code"/>
<field name="ups_code"/>
</page>
</xpath>
</data>

View File

@@ -0,0 +1,19 @@
<?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="account_number"/>
<field name="account_number"/>
<label name="server"/>
<field name="server"/>
<separator string="Credential Information" colspan="4" id="credential_info"/>
<label name="client_id"/>
<field name="client_id" widget="password"/>
<label name="client_secret"/>
<field name="client_secret" 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="account_number" expand="2"/>
<field name="server"/>
</tree>