85 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
| # -*- 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')])
 | |
|     tracking_url = fields.Char('Tracking URL',track_visibility='onchange')
 | |
| 
 | |
|     # ------------------------------------------------ #
 | |
|     # 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 picking.carrier_tracking_ref == '?':
 | |
|             lSearch = picking.origin
 | |
| 
 | |
|         if self.tracking_url:
 | |
|             TZLink = self.tracking_url % lSearch
 | |
|         else:
 | |
|             TZLink = False
 | |
| 
 | |
|         return TZLink
 | |
| 
 | |
|         # 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!')
 |