# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. import logging from odoo import api, fields, models, registry, SUPERUSER_ID, _ from odoo.exceptions import UserError _logger = logging.getLogger(__name__) class TZCarrier(models.Model): _inherit = 'delivery.carrier' delivery_type = fields.Selection(selection_add=[('TZCarrier', 'TZCarrier')]) # ------------------------------------------------ # # Fixed price shipping, aka a very simple provider # # ------------------------------------------------ # # fixed_price = fields.Float(compute='_compute_fixed_price', inverse='_set_product_fixed_price', store=True, # string='Fixed Price') # # # @api.depends('product_id.list_price', 'product_id.product_tmpl_id.list_price') # def _compute_fixed_price(self): # for carrier in self: # carrier.fixed_price = carrier.product_id.list_price # # # def _set_product_fixed_price(self): # for carrier in self: # carrier.product_id.list_price = carrier.fixed_price # # def TZCarrier_rate_shipment(self, order): price = 0 # price = self.fixed_price # if self.company_id.currency_id.id != order.currency_id.id: # price = self.env['res.currency']._compute(self.company_id.currency_id, order.currency_id, price) # return {'success': True, # 'price': price, # 'error_message': False, # 'warning_message': False} return False def TZCarrier_send_shipping(self, pickings): res = [] # for p in pickings: # res = res + [{'exact_price': p.carrier_id.fixed_price, # 'tracking_number': False}] return res def TZCarrier_get_tracking_link(self, picking): lSearch = picking.carrier_tracking_ref if self.name == 'Weiss': if picking.carrier_tracking_ref == '?': lSearch = picking.origin TZLink = r'http://isis.gw-world.com/siprod/sixWeb.pStartApp?i_vcAction=SearchConLight&i_vcSearchKey=%s&i_vcAdd=Glaser&i_vclangid=DE' % lSearch elif self.name == 'DHL': TZLink = r'https://www.dhl.at/en/express/tracking.html?AWB=%s&brand=DHL' % lSearch elif self.name == 'Dachser': TZLink = r'http://partner.dachser.com/shp2/?wicket:interface=:5:pnlHead:frmHead:btnSearch::IActivePageBehaviorListener:0:-1&wicket:ignoreIfNotActive=true&random=0.35369399622175934&tfiSearch=%s' % lSearch elif self.name == 'DPD': TZLink = r'https://tracking.dpd.de/status/de_AT/parcel/%s' % lSearch else: TZLink = False return TZLink def TZCarrier_cancel_shipment(self, pickings): # return True raise UserError('Derzeit nicht möglich!')