mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
Merge branch 'imp/11.0/delivery_hibou__sig_req' into '11.0-test'
imp/11.0/delivery_hibou__sig_req into 11.0-test See merge request hibou-io/hibou-odoo/suite!1355
This commit is contained in:
@@ -42,6 +42,8 @@ class DeliveryFedex(models.Model):
|
||||
if not third_party_account.delivery_type == 'fedex':
|
||||
raise ValidationError('Non-FedEx Shipping Account indicated during FedEx shipment.')
|
||||
return third_party_account.name
|
||||
if picking and picking.picking_type_id.warehouse_id.fedex_account_number:
|
||||
return picking.picking_type_id.warehouse_id.fedex_account_number
|
||||
return self.fedex_account_number
|
||||
|
||||
def _get_fedex_account_number(self, order=None, picking=None):
|
||||
@@ -668,3 +670,27 @@ class DeliveryFedex(models.Model):
|
||||
('fedex_service_type', '=', service_code)
|
||||
], limit=1)
|
||||
return carrier
|
||||
|
||||
def fedex_cancel_shipment(self, picking):
|
||||
request = FedexRequest(self.log_xml, request_type="shipping", prod_environment=self.prod_environment)
|
||||
superself = self.sudo()
|
||||
request.web_authentication_detail(superself.fedex_developer_key, superself.fedex_developer_password)
|
||||
acc_number = superself._get_fedex_account_number(picking=picking)
|
||||
meter_number = superself._get_fedex_meter_number(picking=picking)
|
||||
request.client_detail(acc_number, meter_number)
|
||||
request.transaction_detail(picking.id)
|
||||
|
||||
master_tracking_id = picking.carrier_tracking_ref.split(',')[0]
|
||||
request.set_deletion_details(master_tracking_id)
|
||||
result = request.delete_shipment()
|
||||
|
||||
warnings = result.get('warnings_message')
|
||||
if warnings:
|
||||
_logger.info(warnings)
|
||||
|
||||
if result.get('delete_success') and not result.get('errors_message'):
|
||||
picking.message_post(body=_(u'Shipment N° %s has been cancelled' % master_tracking_id))
|
||||
picking.write({'carrier_tracking_ref': '',
|
||||
'carrier_price': 0.0})
|
||||
else:
|
||||
raise UserError(result['errors_message'])
|
||||
|
||||
@@ -284,7 +284,7 @@ class ChooseDeliveryPackage(models.TransientModel):
|
||||
return 0.0
|
||||
if self.env.context.get('default_stock_quant_package_id'):
|
||||
stock_quant_package = self.env['stock.quant.package'].browse(self.env.context['default_stock_quant_package_id'])
|
||||
return stock_quant_package.package_declared_value
|
||||
return stock_quant_package.declared_value
|
||||
else:
|
||||
picking_id = self.env['stock.picking'].browse(self.env.context['active_id'])
|
||||
move_line_ids = [po for po in picking_id.move_line_ids if po.qty_done > 0 and not po.result_package_id]
|
||||
@@ -293,7 +293,7 @@ class ChooseDeliveryPackage(models.TransientModel):
|
||||
|
||||
@api.onchange('package_declared_value')
|
||||
def _onchange_package_declared_value(self):
|
||||
picking = self.env['stock.picking'].browse(self.env.context['active_id'])
|
||||
picking = self.env['stock.picking'].browse(self.env.context.get('active_id', 0))
|
||||
value = self.package_declared_value
|
||||
if picking.require_insurance == 'auto':
|
||||
self.package_require_insurance = value and picking.carrier_id.automatic_insurance_value and value >= picking.carrier_id.automatic_insurance_value
|
||||
|
||||
@@ -29,10 +29,17 @@ class FakeCollection():
|
||||
yield v
|
||||
|
||||
def filtered(self, f):
|
||||
return filter(f, self.vals)
|
||||
return self.__class__([v for v in self.vals if f(v)])
|
||||
|
||||
def mapped(self, s):
|
||||
# note this only maps to one level and doesn't really support recordset
|
||||
return [v[s] for v in self.vals]
|
||||
|
||||
def sudo(self, *args, **kwargs):
|
||||
return self
|
||||
|
||||
|
||||
class FakePartner():
|
||||
class FakePartner(FakeCollection):
|
||||
def __init__(self, **kwargs):
|
||||
"""
|
||||
'delivery.carrier'.verify_carrier(contact) ->
|
||||
@@ -95,7 +102,7 @@ class FakePartner():
|
||||
return getattr(self, item)
|
||||
|
||||
|
||||
class FakeOrderLine():
|
||||
class FakeOrderLine(FakeCollection):
|
||||
def __init__(self, **kwargs):
|
||||
"""
|
||||
'delivery.carrier'.get_price_available(order) ->
|
||||
@@ -133,7 +140,7 @@ class FakeOrderLine():
|
||||
return getattr(self, item)
|
||||
|
||||
|
||||
class FakeSaleOrder():
|
||||
class FakeSaleOrder(FakeCollection):
|
||||
"""
|
||||
partner_id :: used in shipping
|
||||
partner_shipping_id :: is used in several places
|
||||
@@ -694,7 +701,7 @@ class SaleOrderMakePlan(models.TransientModel):
|
||||
if has_error:
|
||||
continue
|
||||
order_fake.warehouse_id = warehouses.filtered(lambda wh: wh.id == wh_id)
|
||||
order_fake.order_line = FakeCollection(filter(lambda line: line.product_id.id in wh_vals['product_ids'], original_order_fake_order_line))
|
||||
order_fake.order_line = FakeCollection(list(filter(lambda line: line.product_id.id in wh_vals['product_ids'], original_order_fake_order_line)))
|
||||
wh_carrier_options = self._generate_shipping_carrier_option(wh_vals, order_fake, carrier)
|
||||
if not wh_carrier_options:
|
||||
has_error = True
|
||||
|
||||
Reference in New Issue
Block a user