Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
1 Balas
2868 Tampilan

i have created a manytoone field in contact module to enter multiple address for customer now i want to add the field in pos session partner screen.
how should i do that? 
this is my current code.

 res_partner_adddress.py

from odoo import models, fields, api
from odoo.exceptions import ValidationError
import re


class PartnerAddress(models.Model):
_name = 'res.partner.address'
_description = 'Partner Address'
_sql_constraints = [
('unique_address_per_partner', 'UNIQUE(partner_id, address)', 'The address must be unique per partner.')
]

partner_id = fields.Many2one('res.partner', string='Partner', required=True, ondelete='cascade')
address = fields.Char(string='Address', required=True)
phone_number = fields.Char(string='Phone Number', required=True)
is_default = fields.Boolean(string='Is Default')

@api.constrains('is_default')
def _check_default_address(self):
for record in self:
if record.is_default:
default_addresses = self.search([
('partner_id', '=', record.partner_id.id),
('is_default', '=', True),
('id', '!=', record.id)
])
if default_addresses:
raise ValidationError('A partner can have only one default address.')

@api.constrains('phone_number')
def _check_phone_number(self):
for record in self:
if not record.phone_number:
raise ValidationError('Phone Number is required.')
if not re.match(r'^\d+$', record.phone_number):
raise ValidationError('Phone Number can contain only numbers.')


class ResPartner(models.Model):
_inherit = 'res.partner'

address_ids = fields.One2many('res.partner.address', 'partner_id', string='Addresses')


Avatar
Buang
Penulis

res_partner_view.xml

<odoo>
<record id="view_res_partner_form" model="ir.ui.view">
<field name="name">res.partner.form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Delivery Addresses">
<field name="address_ids">
<tree editable="bottom">
<field name="address"/>
<field name="phone_number"/>
<field name="is_default"/>
</tree>
</field>
</page>
</notebook>
</field>
</record>

<record id="view_partner_address_tree" model="ir.ui.view">
<field name="name">res.partner.address.tree</field>
<field name="model">res.partner.address</field>
<field name="arch" type="xml">
<tree>
<field name="address"/>
<field name="phone_number"/>
<field name="is_default"/>
</tree>
</field>
</record>
</odoo>

Jawaban Terbai

Hi,

Try this:

https://www.cybrosys.com/blog/how-to-load-models-and-fields-to-pos-in-odoo-17


Hope it helps

Avatar
Buang
Penulis

i have seen that and it did work fine as long as the field is single data type. but with one to many it didnt work i must be doing something wrong that is why i post my question here.

Post Terkait Replies Tampilan Aktivitas
1
Jan 25
788
1
Agu 24
851
0
Jun 24
823
2
Jan 25
649
1
Jan 25
1495