Skip to content

Commit

Permalink
[MIG] purchase_third_party: migration to 16.0
Browse files Browse the repository at this point in the history
  • Loading branch information
kluna1998 committed Feb 6, 2025
1 parent 073c063 commit 2c7f809
Show file tree
Hide file tree
Showing 11 changed files with 222 additions and 196 deletions.
2 changes: 1 addition & 1 deletion purchase_third_party/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

{
"name": "Purchase Third Party",
"version": "14.0.1.0.0",
"version": "16.0.1.0.0",
"author": "Eficent, CreuBlanca",
"website": "https://github.com/tegin/cb-addons",
"summary": "Creates inter company relations",
Expand Down
260 changes: 128 additions & 132 deletions purchase_third_party/data/mail_template_data.xml
Original file line number Diff line number Diff line change
@@ -1,41 +1,38 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<data noupdate="1">
<!--Email template -->
<record id="email_template_edi_purchase" model="mail.template">
<field name="name">RFQ - Send by Email</field>
<field
name="email_from"
>${(object.create_uid.email and '&quot;%s&quot; &lt;%s&gt;' % (object.create_uid.name, object.create_uid.email) or '')|safe}</field>
<field
name="subject"
>${object.partner_id.name} Order (Ref ${object.name or 'n/a' })</field>
<field
name="partner_to"
>${object.third_party_partner_id.id},${object.partner_id.id}</field>
<field name="model_id" ref="purchase.model_purchase_order" />
<field name="auto_delete" eval="True" />
<field name="report_template" ref="report_purchase_quotation" />
<field
name="report_name"
>RFQ_${(object.name or '').replace('/','_')}</field>
<field name="lang">${object.third_party_partner_id.lang}</field>
<field
name="body_html"
><![CDATA[
<odoo noupdate="1">
<!--Email template -->
<record id="email_template_edi_purchase" model="mail.template">
<field name="name">RFQ - Send by Email</field>
<field
name="email_from"
>${(object.create_uid.email and '&quot;%s&quot; &lt;%s&gt;' % (object.create_uid.name, object.create_uid.email) or '')|safe}</field>
<field
name="subject"
>${object.partner_id.name} Order (Ref ${object.name or 'n/a' })</field>
<field
name="partner_to"
>${object.third_party_partner_id.id},${object.partner_id.id}</field>
<field name="model_id" ref="purchase.model_purchase_order" />
<field name="auto_delete" eval="True" />
<field name="report_template" ref="report_purchase_quotation" />
<field name="report_name">RFQ_${(object.name or '').replace('/','_')}</field>
<field name="lang">${object.third_party_partner_id.lang}</field>
<field
name="body_html"
><![CDATA[
<p>Dear
% if object.third_party_partner_id.is_company and object.third_party_partner_id.child_ids:
${object.third_party_partner_id.child_ids[0].name}
${object.third_party_partner_id.child_ids[0].name}
% else :
${object.third_party_partner_id.name}
${object.third_party_partner_id.name}
% endif
,</p><p>
Here is, in attachment, a ${object.state in ('draft', 'sent') and 'request for quotation' or 'purchase order confirmation'} <strong>${object.name}</strong>
% if object.partner_ref:
with reference: ${object.partner_ref}
with reference: ${object.partner_ref}
% endif
% if object.origin:
(RFQ origin: ${object.origin})
(RFQ origin: ${object.origin})
% endif
amounting in <strong>${format_amount(object.amount_total, object.currency_id)}</strong>
from ${object.partner_id.name}.
Expand All @@ -45,43 +42,43 @@ from ${object.partner_id.name}.
<p>Best regards,</p>
<p style="color:#888888;">
% if object.user_id and object.user_id.signature:
${object.user_id.signature | safe}
${object.user_id.signature | safe}
% endif
</p>
]]></field>
</record>
<!--Email template -->
<record id="email_template_edi_purchase_done" model="mail.template">
<field name="name">Purchase Order - Send by Email</field>
<field
name="email_from"
>${(object.create_uid.email and '&quot;%s&quot; &lt;%s&gt;' % (object.create_uid.name, object.create_uid.email) or '')|safe}</field>
<field
name="subject"
>${object.partner_id.name} Order (Ref ${object.name or 'n/a' })</field>
<field
name="partner_to"
>${object.third_party_partner_id.id},${object.partner_id.id}</field>
<field name="model_id" ref="purchase.model_purchase_order" />
<field name="auto_delete" eval="True" />
<field name="report_template" ref="action_report_purchase_order" />
<field name="report_name">PO_${(object.name or '').replace('/','_')}</field>
<field name="lang">${object.third_party_partner_id.lang}</field>
<field
name="body_html"
><![CDATA[
</record>
<!--Email template -->
<record id="email_template_edi_purchase_done" model="mail.template">
<field name="name">Purchase Order - Send by Email</field>
<field
name="email_from"
>${(object.create_uid.email and '&quot;%s&quot; &lt;%s&gt;' % (object.create_uid.name, object.create_uid.email) or '')|safe}</field>
<field
name="subject"
>${object.partner_id.name} Order (Ref ${object.name or 'n/a' })</field>
<field
name="partner_to"
>${object.third_party_partner_id.id},${object.partner_id.id}</field>
<field name="model_id" ref="purchase.model_purchase_order" />
<field name="auto_delete" eval="True" />
<field name="report_template" ref="action_report_purchase_order" />
<field name="report_name">PO_${(object.name or '').replace('/','_')}</field>
<field name="lang">${object.third_party_partner_id.lang}</field>
<field
name="body_html"
><![CDATA[
<p>Dear ${object.third_party_partner_id.name}
% if object.third_party_partner_id.parent_id:
(<i>${object.third_party_partner_id.parent_id.name}</i>)
(<i>${object.third_party_partner_id.parent_id.name}</i>)
% endif
,</p>
<p>
Please find in attachment a <strong>${object.state in ('draft', 'sent') and 'request for quotation' or 'purchase order confirmation'} ${object.name}</strong>
% if object.partner_ref:
with reference: ${object.partner_ref}
with reference: ${object.partner_ref}
% endif
% if object.origin:
(RFQ origin: ${object.origin})
(RFQ origin: ${object.origin})
% endif
amounting <strong>${format_amount(object.amount_total, object.currency_id)}</strong>
from ${object.partner_id.name}.
Expand All @@ -90,83 +87,82 @@ from ${object.partner_id.name}.
<p>You can reply to this email if you have any questions.</p>
<p>Thank you,</p>
]]></field>
</record>
<!--Default Notification Email template for invoices-->
<record
id="mail_template_data_notification_email_purchase_order"
model="mail.template"
>
<field name="name">Purchase Order Notification Email</field>
<field name="subject">${object.subject}</field>
<field name="model_id" ref="mail.model_mail_message" />
<field name="auto_delete" eval="True" />
<field
name="body_html"
><![CDATA[<html>
<head></head>
% set partner = ctx.get('record').partner_id
<body style="margin: 0; padding: 0;">
<table border="0" width="100%" cellpadding="0" bgcolor="#ededed" style="padding: 20px; background-color: #ededed" summary="o_mail_notification">
<tbody>
<!-- HEADER -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" bgcolor="#875A7B" style="min-width: 590px; background-color: rgb(135,90,123); padding: 20px;">
<tr>
<td valign="middle">
<span style="font-size:20px; color:white; font-weight: bold;">
${object.record_name}
</span>
</td>
</tr>
</table>
</td>
</tr>
<!-- CONTENT -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" bgcolor="#ffffff" style="min-width: 590px; background-color: rgb(255, 255, 255); padding: 20px;">
<tbody>
<td valign="top" style="font-family:Arial,Helvetica,sans-serif; color: #555; font-size: 14px;">
${object.body | safe}
</td>
</tbody>
</table>
</td>
</tr>
<!-- FOOTER -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" bgcolor="#875A7B" style="min-width: 590px; background-color: rgb(135,90,123); padding: 20px;">
<tr>
<td valign="middle" align="left" style="color: #fff; padding-top: 10px; padding-bottom: 10px; font-size: 12px;">
${partner.name}<br/>
${partner.phone or ''}
</td>
<td valign="middle" align="right" style="color: #fff; padding-top: 10px; padding-bottom: 10px; font-size: 12px;">
% if partner.email:
<a href="mailto:${partner.email}" style="text-decoration:none; color: white;">${partner.email}</a><br/>
% endif
% if partner.website:
<a href="${partner.website}" style="text-decoration:none; color: white;">
${partner.website}
</a>
% endif
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center">
Powered by <a href="https://www.odoo.com">Odoo</a>.
</td>
</tr>
</tbody>
</table>
</body>
</html>
]]></field>
</record>
</data>
</record>
<!--Default Notification Email template for invoices-->
<record
id="mail_template_data_notification_email_purchase_order"
model="mail.template"
>
<field name="name">Purchase Order Notification Email</field>
<field name="subject">${object.subject}</field>
<field name="model_id" ref="mail.model_mail_message" />
<field name="auto_delete" eval="True" />
<field
name="body_html"
><![CDATA[<html>
<head></head>
% set partner = ctx.get('record').partner_id
<body style="margin: 0; padding: 0;">
<table border="0" width="100%" cellpadding="0" bgcolor="#ededed" style="padding: 20px; background-color: #ededed" summary="o_mail_notification">
<tbody>
<!-- HEADER -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" bgcolor="#875A7B" style="min-width: 590px; background-color: rgb(135,90,123); padding: 20px;">
<tr>
<td valign="middle">
<span style="font-size:20px; color:white; font-weight: bold;">
${object.record_name}
</span>
</td>
</tr>
</table>
</td>
</tr>
<!-- CONTENT -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" bgcolor="#ffffff" style="min-width: 590px; background-color: rgb(255, 255, 255); padding: 20px;">
<tbody>
<td valign="top" style="font-family:Arial,Helvetica,sans-serif; color: #555; font-size: 14px;">
${object.body | safe}
</td>
</tbody>
</table>
</td>
</tr>
<!-- FOOTER -->
<tr>
<td align="center" style="min-width: 590px;">
<table width="590" border="0" cellpadding="0" bgcolor="#875A7B" style="min-width: 590px; background-color: rgb(135,90,123); padding: 20px;">
<tr>
<td valign="middle" align="left" style="color: #fff; padding-top: 10px; padding-bottom: 10px; font-size: 12px;">
${partner.name}<br/>
${partner.phone or ''}
</td>
<td valign="middle" align="right" style="color: #fff; padding-top: 10px; padding-bottom: 10px; font-size: 12px;">
% if partner.email:
<a href="mailto:${partner.email}" style="text-decoration:none; color: white;">${partner.email}</a><br/>
% endif
% if partner.website:
<a href="${partner.website}" style="text-decoration:none; color: white;">
${partner.website}
</a>
% endif
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center">
Powered by <a href="https://www.odoo.com">Odoo</a>.
</td>
</tr>
</tbody>
</table>
</body>
</html>
]]></field>
</record>
</odoo>
6 changes: 3 additions & 3 deletions purchase_third_party/models/product_supplierinfo.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def _check_third_party_price(self):

@api.constrains(
"third_party_partner_id",
"name",
"partner_id",
"product_id",
"date_start",
"date_end",
Expand Down Expand Up @@ -81,7 +81,7 @@ def _check_third_party(self):
[
("id", "!=", rec.id),
("product_id", "=", rec.product_id.id),
("name", "=", rec.name.id),
("partner_id", "=", rec.partner_id.id),
(
"third_party_partner_id",
"!=",
Expand All @@ -101,7 +101,7 @@ def _check_third_party(self):
[
("id", "!=", rec.id),
("product_tmpl_id", "=", rec.product_tmpl_id.id),
("name", "=", rec.name.id),
("partner_id", "=", rec.partner_id.id),
(
"third_party_partner_id",
"!=",
Expand Down
20 changes: 9 additions & 11 deletions purchase_third_party/models/purchase_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,15 @@ def action_rfq_send(self):
res = super().action_rfq_send()
if self.env.context.get("third_party_send"):
ctx = res.get("context")
ir_model_data = self.env["ir.model.data"]
try:
if self.env.context.get("send_rfq", False):
template_id = ir_model_data.get_object_reference(
"purchase_third_party", "email_template_edi_purchase"
)[1]
template_id = self.env.ref(

Check warning on line 56 in purchase_third_party/models/purchase_order.py

View check run for this annotation

Codecov / codecov/patch

purchase_third_party/models/purchase_order.py#L56

Added line #L56 was not covered by tests
"purchase_third_party.email_template_edi_purchase"
).id
else:
template_id = ir_model_data.get_object_reference(
"purchase_third_party",
"email_template_edi_purchase_done",
)[1]
template_id = self.env.ref(
"purchase_third_party.email_template_edi_purchase_done"
).id
except ValueError:
template_id = False

Check warning on line 64 in purchase_third_party/models/purchase_order.py

View check run for this annotation

Codecov / codecov/patch

purchase_third_party/models/purchase_order.py#L63-L64

Added lines #L63 - L64 were not covered by tests
ctx.update(
Expand Down Expand Up @@ -119,8 +117,8 @@ def _compute_amount_third_party(self):
)

@api.onchange("product_qty", "product_uom")
def _onchange_quantity(self):
res = super()._onchange_quantity()
def _compute_price_unit_and_date_planned_and_name(self):
res = super()._compute_price_unit_and_date_planned_and_name()

Check warning on line 121 in purchase_third_party/models/purchase_order.py

View check run for this annotation

Codecov / codecov/patch

purchase_third_party/models/purchase_order.py#L121

Added line #L121 was not covered by tests
if not self.product_id or not self.order_id.third_party_order:
return res
seller = self.product_id._select_seller(

Check warning on line 124 in purchase_third_party/models/purchase_order.py

View check run for this annotation

Codecov / codecov/patch

purchase_third_party/models/purchase_order.py#L123-L124

Added lines #L123 - L124 were not covered by tests
Expand Down Expand Up @@ -170,7 +168,7 @@ def _prepare_purchase_order_line_from_procurement(
product_id, product_qty, product_uom, company_id, values, po
)
procurement_uom_po_qty = res["product_qty"]
partner = values["supplier"].name
partner = values["supplier"].partner_id
seller = product_id._select_seller(
partner_id=partner,
quantity=procurement_uom_po_qty,
Expand Down
4 changes: 2 additions & 2 deletions purchase_third_party/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class ResPartner(models.Model):
_inherit = "res.partner"

supplier_info_ids = fields.One2many(
"product.supplierinfo", inverse_name="name", check_company=True
"product.supplierinfo", inverse_name="partner_id", check_company=True
)

third_party_supplier_info_ids = fields.One2many(
Expand All @@ -25,7 +25,7 @@ def action_view_product_supplierinfo(self):
)
action["domain"] = [

Check warning on line 26 in purchase_third_party/models/res_partner.py

View check run for this annotation

Codecov / codecov/patch

purchase_third_party/models/res_partner.py#L26

Added line #L26 was not covered by tests
"|",
("name", "=", self.id),
("partner_id", "=", self.id),
("third_party_partner_id", "=", self.id),
]
return action

Check warning on line 31 in purchase_third_party/models/res_partner.py

View check run for this annotation

Codecov / codecov/patch

purchase_third_party/models/res_partner.py#L31

Added line #L31 was not covered by tests
Loading

0 comments on commit 2c7f809

Please sign in to comment.