Skip to content

Commit 71811cf

Browse files
[15.0][3927][IMP] purchase_post_code_propose_address_sst (#116)
[15.0][3927][IMP] purchase_post_code_propose_address_sst
1 parent 6b8b23c commit 71811cf

File tree

6 files changed

+25
-109
lines changed

6 files changed

+25
-109
lines changed

purchase_post_code_propose_address_sst/__manifest__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
"website": "https://www.quartile.co",
88
"category": "Purchase",
99
"license": "AGPL-3",
10-
"depends": ["purchase_ext_sst"],
11-
"external_dependencies": {"python": ["jaconv"]},
10+
"depends": ["l10n_jp_partner_zip_address", "purchase_ext_sst"],
1211
"data": ["views/purchase_order_views.xml"],
1312
"installable": True,
1413
}

purchase_post_code_propose_address_sst/i18n/ja.po

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ msgid ""
66
msgstr ""
77
"Project-Id-Version: Odoo Server 15.0\n"
88
"Report-Msgid-Bugs-To: \n"
9-
"POT-Creation-Date: 2023-10-27 03:54+0000\n"
10-
"PO-Revision-Date: 2023-10-27 03:54+0000\n"
9+
"POT-Creation-Date: 2024-02-08 06:59+0000\n"
10+
"PO-Revision-Date: 2024-02-08 06:59+0000\n"
1111
"Last-Translator: \n"
1212
"Language-Team: \n"
1313
"MIME-Version: 1.0\n"
@@ -37,35 +37,15 @@ msgid "Country"
3737
msgstr "国"
3838

3939
#. module: purchase_post_code_propose_address_sst
40-
#: code:addons/purchase_post_code_propose_address_sst/models/purchase_order.py:0
41-
#: code:addons/purchase_post_code_propose_address_sst/models/purchase_order.py:0
42-
#: code:addons/purchase_post_code_propose_address_sst/models/purchase_order.py:0
43-
#, python-format
44-
msgid "Error"
45-
msgstr "エラー"
46-
47-
#. module: purchase_post_code_propose_address_sst
48-
#: code:addons/purchase_post_code_propose_address_sst/models/purchase_order.py:0
49-
#, python-format
50-
msgid "Only digits are allowed."
51-
msgstr "数値のみで入力してください。"
52-
53-
#. module: purchase_post_code_propose_address_sst
54-
#: model:ir.model.fields,field_description:purchase_post_code_propose_address_sst.field_purchase_order__zipcode
40+
#: model:ir.model.fields,field_description:purchase_post_code_propose_address_sst.field_purchase_order__zip
5541
msgid "Post Code (Search)"
5642
msgstr "郵便番号(検索用)"
5743

5844
#. module: purchase_post_code_propose_address_sst
59-
#: model:ir.model.fields,field_description:purchase_post_code_propose_address_sst.field_purchase_order__zip
45+
#: model:ir.model.fields,field_description:purchase_post_code_propose_address_sst.field_purchase_order__partner_zip
6046
msgid "Post Code (Supplier)"
6147
msgstr "郵便番号(仕入先)"
6248

63-
#. module: purchase_post_code_propose_address_sst
64-
#: code:addons/purchase_post_code_propose_address_sst/models/purchase_order.py:0
65-
#, python-format
66-
msgid "Post code should be 7 digits."
67-
msgstr "郵便番号には7桁の数値を入れてください。"
68-
6949
#. module: purchase_post_code_propose_address_sst
7050
#: model:ir.model.fields,field_description:purchase_post_code_propose_address_sst.field_purchase_order__state_id
7151
msgid "Prefecture"
@@ -74,7 +54,7 @@ msgstr "都道府県"
7454
#. module: purchase_post_code_propose_address_sst
7555
#: model:ir.model,name:purchase_post_code_propose_address_sst.model_purchase_order
7656
msgid "Purchase Order"
77-
msgstr "発注"
57+
msgstr "購買オーダ"
7858

7959
#. module: purchase_post_code_propose_address_sst
8060
#: model_terms:ir.ui.view,arch_db:purchase_post_code_propose_address_sst.purchase_order_form

purchase_post_code_propose_address_sst/models/purchase_order.py

Lines changed: 10 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
11
# Copyright 2019 Quartile Limited
22
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
33

4-
import json
5-
import logging
6-
import urllib
7-
8-
from odoo import _, api, fields, models
9-
10-
try:
11-
import jaconv
12-
except (ImportError, IOError) as err:
13-
logging.getLogger(__name__).warning(err)
4+
from odoo import api, fields, models
145

156

167
class PurchaseOrder(models.Model):
17-
_inherit = "purchase.order"
8+
_name = "purchase.order"
9+
_inherit = ["purchase.order", "zip.search.mixin"]
1810

1911
country_id = fields.Many2one(
2012
"res.country", string="Country", default=lambda self: self.env.ref("base.jp")
@@ -23,8 +15,8 @@ class PurchaseOrder(models.Model):
2315
city = fields.Char()
2416
street = fields.Char()
2517
street2 = fields.Char()
26-
zipcode = fields.Char(string="Post Code (Search)")
27-
zip = fields.Char(
18+
zip = fields.Char(string="Post Code (Search)")
19+
partner_zip = fields.Char(
2820
related="partner_id.zip",
2921
string="Post Code (Supplier)",
3022
store=True,
@@ -33,76 +25,21 @@ class PurchaseOrder(models.Model):
3325

3426
@api.onchange("partner_id")
3527
def _onchange_partner_id(self):
36-
if self.partner_id and not self.zipcode and not self.street:
28+
if self.partner_id and not self.zip and not self.street:
3729
self.state_id = self.partner_id.state_id
3830
self.city = self.partner_id.city
3931
self.street = self.partner_id.street
4032
self.street2 = self.partner_id.street2
4133

42-
@api.onchange("zipcode")
43-
def _onchange_zipcode(self):
44-
if self.zipcode:
45-
self.zipcode, msg = self.check_zipcode(self.zipcode)
46-
if not self.zipcode:
47-
return msg
48-
request_url = (
49-
"http://zipcloud.ibsnet.co.jp/api/search?zipcode" "=%s" % self.zipcode
50-
)
51-
request = urllib.request.Request(request_url)
52-
response_data = json.loads(
53-
urllib.request.urlopen(request).read().decode("utf-8")
54-
)
55-
self.state_id = False
56-
self.city = False
57-
self.street = False
58-
self.street2 = False
59-
if response_data["status"] != 200:
60-
self.zipcode = False
61-
return {
62-
"warning": {
63-
"title": _("Error"),
64-
"message": response_data["message"],
65-
}
66-
}
67-
else:
68-
address_data = response_data["results"]
69-
if address_data:
70-
self.state_id = self.env["res.country.state"].search(
71-
[("name", "=", address_data[0]["address1"])], limit=1
72-
)
73-
self.city = address_data[0]["address2"]
74-
self.street = address_data[0]["address3"]
75-
76-
def check_zipcode(self, zipcode):
77-
msg = {}
78-
field = jaconv.z2h(zipcode, ascii=True, digit=True).replace("-", "")
79-
if not field.isdigit():
80-
field = False
81-
msg = {
82-
"warning": {
83-
"title": _("Error"),
84-
"message": _("Only digits are allowed."),
85-
}
86-
}
87-
elif len(field) != 7:
88-
field = False
89-
msg = {
90-
"warning": {
91-
"title": _("Error"),
92-
"message": _("Post code should be 7 digits."),
93-
}
94-
}
95-
return field, msg
96-
9734
def write(self, vals):
9835
res = super(PurchaseOrder, self).write(vals)
9936
for order in self:
10037
if (
10138
not self.is_default_partner(order.partner_id.id)
102-
and order.zipcode
39+
and order.zip
10340
and not order.partner_id.zip
10441
):
105-
order.partner_id.zip = order.zipcode
42+
order.partner_id.zip = order.zip
10643
order.partner_id.state_id = order.state_id
10744
order.partner_id.city = order.city
10845
order.partner_id.street = order.street
@@ -114,10 +51,10 @@ def create(self, vals):
11451
res = super(PurchaseOrder, self).create(vals)
11552
if (
11653
not self.is_default_partner(res.partner_id.id)
117-
and res.zipcode
54+
and res.zip
11855
and not res.partner_id.zip
11956
):
120-
res.partner_id.zip = res.zipcode
57+
res.partner_id.zip = res.zip
12158
res.partner_id.state_id = res.state_id
12259
res.partner_id.city = res.city
12360
res.partner_id.street = res.street

purchase_post_code_propose_address_sst/views/purchase_order_views.xml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<field name="inherit_id" ref="purchase.purchase_order_kpis_tree" />
77
<field name="arch" type="xml">
88
<xpath expr="//field[@name='company_id']" position="before">
9-
<field name="zipcode" optional="show" />
9+
<field name="zip" optional="show" />
1010
<field name="city" optional="show" />
1111
<field name="state_id" optional="hide" />
1212
<field name="country_id" optional="hide" />
@@ -21,7 +21,7 @@
2121
<field name="inherit_id" ref="purchase.purchase_order_tree" />
2222
<field name="arch" type="xml">
2323
<xpath expr="//field[@name='company_id']" position="before">
24-
<field name="zipcode" optional="show" />
24+
<field name="zip" optional="show" />
2525
<field name="city" optional="show" />
2626
<field name="state_id" optional="hide" />
2727
<field name="country_id" optional="hide" />
@@ -37,15 +37,15 @@
3737
<field name="arch" type="xml">
3838
<xpath expr="//sheet/group" position="inside">
3939
<group>
40-
<label for="zip" />
40+
<label for="partner_zip" />
4141
<div>
4242
43-
<field name="zip" />
43+
<field name="partner_zip" />
4444
</div>
45-
<label for="zipcode" />
45+
<label for="zip" />
4646
<div>
4747
<span class="oe_read_only">〒</span>
48-
<field name="zipcode" />
48+
<field name="zip" />
4949
</div>
5050
<label for="state_id" string="Address" />
5151
<div class="o_address_format">
@@ -85,7 +85,7 @@
8585
<field name="priority" eval="18" />
8686
<field name="arch" type="xml">
8787
<xpath expr="//field[@name='name']" position="before">
88-
<field name="zipcode" />
88+
<field name="zip" />
8989
<field name="street" />
9090
</xpath>
9191
</field>
@@ -96,7 +96,7 @@
9696
<field name="inherit_id" ref="purchase.purchase_order_view_search" />
9797
<field name="arch" type="xml">
9898
<xpath expr="//field[@name='name']" position="before">
99-
<field name="zipcode" />
99+
<field name="zip" />
100100
<field name="street" />
101101
</xpath>
102102
</field>

requirements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
# generated from manifests external_dependencies
2-
jaconv

test-requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ git+https://github.com/qrtl/[email protected]#subdirectory=setup/commission
22
git+https://github.com/qrtl/[email protected]#subdirectory=setup/account_commission
33
git+https://github.com/qrtl/[email protected]#subdirectory=setup/sale_commission
44
git+https://github.com/qrtl/[email protected]#subdirectory=setup/base_custom_filter
5+
git+https://github.com/qrtl/[email protected]#subdirectory=setup/l10n_jp_partner_zip_address

0 commit comments

Comments
 (0)