Files
odoo_source/addons/delivery/models/delivery_zip_prefix.py
T
Tiffany Chang (tic) 22fa7f90e4 [IMP] {website_}sale, delivery: add local delivery option
This commit does a couple of small related improvements:

- adds new delivery options: "Local Delivery".
  We replace the existing "Normal Delivery Charges" with the new "Local
  Delivery" since it is now redundant.
- Originally a "Local Pickup" demo option was going to be added, but
  this appeared redundant with the "[On Site Pick]" added in
  odoo/odoo#87636 . Regardless, an additional `carrier_description`
  field has been added so users can include extra instructions (e.g.
  address to pick up from, when pickup can occur, etc) to sales orders/
  confirmation emails (emails only via ecommerce sales).
- adds option to filter based on zip prefix rather than the previous zip
  "range" option, which was too restrictive in some cases (e.g. in the
  UK where zips can have letters in them). Note that users can view/edit
  zip prefixes in menu under settings when debug mode is active. Note:
  - prefixes are ordered by name so its easier to read large numbers
    prefixes
  - prefixes are always capitalized to avoid duplicate prefixes that
    differ by case + avoid capitalizing all prefixes every time the
    `_match_address` logic is called

Task: 2706451
Upgrade PR: odoo/upgrade#3384

closes odoo/odoo#84620

Signed-off-by: Arnold Moyaux (arm) <arm@odoo.com>
2022-06-29 14:44:19 +02:00

30 lines
964 B
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class DeliveryZipPrefix(models.Model):
""" Zip prefix that a delivery.carrier will deliver to. """
_name = 'delivery.zip.prefix'
_description = 'Delivery Zip Prefix'
_order = 'name, id'
name = fields.Char('Prefix', required=True)
@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
# we cannot easily convert a list of prefix names into upper to compare with partner zips
# later on, so let's ensure they are always upper
vals['name'] = vals['name'].upper()
return super(DeliveryZipPrefix, self).create(vals_list)
def write(self, vals):
vals['name'] = vals['name'].upper()
return super().write(vals)
_sql_constraints = [
('name_uniq', 'unique (name)', "Prefix already exists!"),
]