Skip to content

Commit

Permalink
[MIG] contact_payment_mode_import_wizard: Migration to 16.0
Browse files Browse the repository at this point in the history
  • Loading branch information
oihane committed Jan 18, 2024
1 parent 97e7f5a commit 73bd5a4
Show file tree
Hide file tree
Showing 16 changed files with 1,317 additions and 1,249 deletions.
570 changes: 0 additions & 570 deletions contact_payment_mode_import/i18n/contact_payment_mode_import.pot

This file was deleted.

575 changes: 0 additions & 575 deletions contact_payment_mode_import/i18n/es.po

This file was deleted.

File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

{
"name": "Contact Payment Mode Import",
"version": "14.0.1.0.0",
"version": "16.0.1.0.0",
"category": "Hidden/Tools",
"license": "AGPL-3",
"author": "AvanzOSC",
Expand Down

Large diffs are not rendered by default.

566 changes: 566 additions & 0 deletions contact_payment_mode_import_wizard/i18n/es.po

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ class ResPartnerPaymentImport(models.Model):
import_line_ids = fields.One2many(
comodel_name="res.partner.payment.import.line",
)
res_partner_count = fields.Integer(
partner_count = fields.Integer(
string="# Contacts",
compute="_compute_res_partner_count",
compute="_compute_partner_count",
)
import_type = fields.Selection(
string="Sale/Purchase",
Expand Down Expand Up @@ -63,20 +63,19 @@ def _get_line_values(self, row_values, datemode=False):
)
return values

def _compute_res_partner_count(self):
def _compute_partner_count(self):
for record in self:
record.res_partner_count = len(record.mapped("import_line_ids.contact_id"))
record.partner_count = len(record.mapped("import_line_ids.contact_id"))

def button_open_res_partner(self):
def button_open_partner(self):
self.ensure_one()
contacts = self.mapped("import_line_ids.contact_id")
action = self.env.ref("contacts.action_contacts")
action_dict = action.read()[0] if action else {}
domain = expression.AND(
[[("id", "in", contacts.ids)], safe_eval(action.domain or "[]")]
action = self.env["ir.actions.actions"]._for_xml_id("contacts.action_contacts")
action["domain"] = expression.AND(
[[("id", "in", contacts.ids)], safe_eval(action.get("domain") or "[]")]
)
action_dict.update({"domain": domain})
return action_dict
action["context"] = dict(self._context, create=False)
return action


class ResPartnerPaymentImportLine(models.Model):
Expand All @@ -93,7 +92,10 @@ class ResPartnerPaymentImportLine(models.Model):
],
ondelete={"update": "set default"},
)
contact_id = fields.Many2one(string="Contact", comodel_name="res.partner")
contact_id = fields.Many2one(
string="Contact",
comodel_name="res.partner",
)
contact_name = fields.Char(
states={"done": [("readonly", True)]},
copy=False,
Expand Down Expand Up @@ -144,8 +146,6 @@ def _action_validate(self):
contact, log_info_contact = self._check_contact()
if log_info_contact:
log_infos.append(log_info_contact)
if contact and contact.company_id:
self = self.with_company(contact.company_id)
if self.contact_payment_mode:
payment_mode, log_info_payment_mode = self._check_payment_mode()
if log_info_payment_mode:
Expand Down Expand Up @@ -209,10 +209,10 @@ def _check_contact(self):
contacts = contact_obj.search(search_domain)
if not contacts:
contacts = False
log_info = _("Error: No contact found.")
log_info = _("No contact found.")
elif len(contacts) > 1:
contacts = False
log_info = _("Error: More than one contact found.")
log_info = _("More than one contact found.")
return contacts and contacts[:1], log_info

def _check_payment_mode(self):
Expand All @@ -221,26 +221,25 @@ def _check_payment_mode(self):
if self.payment_mode_id:
return self.payment_mode_id, log_info
payment_mode_obj = self.env["account.payment.mode"]
if self.contact_payment_mode:
search_domain = [
("name", "=", self.contact_payment_mode),
("company_id", "=", self.import_id.company_id.id),
]
if self.import_id.import_type == "sale":
search_domain = expression.AND(
[[("payment_type", "=", "inbound")], search_domain]
)
elif self.import_id.import_type == "purchase":
search_domain = expression.AND(
[[("payment_type", "=", "outbound")], search_domain]
)
payment_modes = payment_mode_obj.search(search_domain)
if not payment_modes:
payment_modes = False
log_info = _("Error: No payment mode found.")
elif len(payment_modes) > 1:
payment_modes = False
log_info = _("Error: More than one payment modes found.")
search_domain = [
("name", "=", self.contact_payment_mode),
("company_id", "=", self.import_id.company_id.id),
]
if self.import_id.import_type == "sale":
search_domain = expression.AND(
[[("payment_type", "=", "inbound")], search_domain]
)
elif self.import_id.import_type == "purchase":
search_domain = expression.AND(
[[("payment_type", "=", "outbound")], search_domain]
)
payment_modes = payment_mode_obj.search(search_domain)
if not payment_modes:
payment_modes = False
log_info = _("No payment mode found.")
elif len(payment_modes) > 1:
payment_modes = False
log_info = _("More than one payment modes found.")
return payment_modes and payment_modes[:1], log_info

def _check_payment_term(self):
Expand All @@ -249,20 +248,19 @@ def _check_payment_term(self):
if self.payment_term_id:
return self.payment_term_id, log_info
payment_term_obj = self.env["account.payment.term"]
if self.contact_payment_term:
search_domain = [
("name", "=", self.contact_payment_term),
"|",
("company_id", "=", self.import_id.company_id.id),
("company_id", "=", False),
]
payment_terms = payment_term_obj.search(search_domain)
if not payment_terms:
payment_terms = False
log_info = _("Error: No payment term found.")
elif len(payment_terms) > 1:
payment_terms = False
log_info = _("Error: More than one payment terms found.")
search_domain = [
("name", "=", self.contact_payment_term),
"|",
("company_id", "=", self.import_id.company_id.id),
("company_id", "=", False),
]
payment_terms = payment_term_obj.search(search_domain)
if not payment_terms:
payment_terms = False
log_info = _("No payment term found.")
elif len(payment_terms) > 1:
payment_terms = False
log_info = _("More than one payment terms found.")
return payment_terms and payment_terms[:1], log_info

def _check_fiscal_position(self):
Expand All @@ -271,18 +269,17 @@ def _check_fiscal_position(self):
if self.account_fiscal_position_id:
return self.account_fiscal_position_id, log_info
fiscal_position_obj = self.env["account.fiscal.position"]
if self.contact_account_fiscal_position:
search_domain = [
("name", "=", self.contact_account_fiscal_position),
("company_id", "=", self.import_id.company_id.id),
]
fiscal_positions = fiscal_position_obj.search(search_domain)
if not fiscal_positions:
fiscal_positions = False
log_info = _("Error: No fiscal position found.")
elif len(fiscal_positions) > 1:
fiscal_positions = False
log_info = _("Error: More than one fiscal position found.")
search_domain = [
("name", "=", self.contact_account_fiscal_position),
("company_id", "=", self.import_id.company_id.id),
]
fiscal_positions = fiscal_position_obj.search(search_domain)
if not fiscal_positions:
fiscal_positions = False
log_info = _("No fiscal position found.")
elif len(fiscal_positions) > 1:
fiscal_positions = False
log_info = _("More than one fiscal position found.")
return fiscal_positions and fiscal_positions[:1], log_info

def _partner_values(self):
Expand Down Expand Up @@ -323,3 +320,11 @@ def _partner_values(self):
}
)
return partner_values

def action_open_form(self):
self.ensure_one()
action = self.env["ir.actions.actions"]._for_xml_id(
"contact_payment_mode_import_wizard.res_partner_payment_import_line_form_action"
)
action["res_id"] = self.id
return action
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<odoo noupdate="1">
<record id="res_partner_import_rule" model="ir.rule">
<field name="name">Payment mode for contacts import wizard company rule</field>
<field name="model_id" ref="model_res_partner_payment_import" />
<field name="model_id" ref="model_res_partner_payment_import_line" />
<field
name="domain_force"
>['|', ('company_id', 'in', company_ids), ('company_id', '=', False)]</field>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,13 @@
/>
<separator />
<filter
name="group_status"
string="Status"
name="state_group"
domain="[]"
context="{'group_by':'state'}"
context="{'group_by': 'state'}"
/>
<filter
string="Action"
name="action_group"
domain="[]"
name="group_action"
context="{'group_by':'action'}"
/>
</group>
Expand All @@ -71,18 +69,16 @@
<form>
<header>
<button
name="action_validate"
name="button_validate"
string="Validate"
type="object"
class="oe_read_only"
states="2validate,error"
states="2validate,error,pass"
/>
<button
name="action_process"
name="button_process"
string="Process"
type="object"
class="oe_read_only"
states="error,pass"
states="pass"
/>
<field name="state" widget="statusbar" />
</header>
Expand Down Expand Up @@ -140,18 +136,54 @@
<field name="import_id" invisible="1" />
<field name="contact_name" />
<field name="contact_code" />
<field name="contact_id" optional="hide" />
<field
name="contact_id"
optional="hide"
options="{'no_create': True}"
/>
<field name="contact_payment_mode" string="Payment Mode" />
<field name="payment_mode_id" optional="hide" />
<field
name="payment_mode_id"
optional="hide"
options="{'no_create': True}"
/>
<field name="contact_payment_term" string="Payment Term" />
<field name="payment_term_id" optional="hide" />
<field
name="payment_term_id"
optional="hide"
options="{'no_create': True}"
/>
<field
name="contact_account_fiscal_position"
string="Account Fiscal Position"
/>
<field name="account_fiscal_position_id" optional="hide" />
<field name="state" />
<field name="log_info" optional="show" />
<field
name="account_fiscal_position_id"
optional="hide"
options="{'no_create': True}"
/>
<field name="state" optional="hide" />
<field name="log_info" optional="hide" />
<button
name="action_open_form"
type="object"
title="Open form view"
icon="fa-external-link"
/>
<button
name="button_validate"
type="object"
title="Validate"
icon="fa-search"
states="2validate,pass,error"
/>
<button
name="button_process"
type="object"
title="Process"
icon="fa-check"
states="pass"
/>
</tree>
</field>
</record>
Expand All @@ -163,4 +195,52 @@
<field name="view_mode">tree,form</field>
<field name="view_id" ref="res_partner_payment_import_line_view_tree" />
</record>

<record
id="res_partner_payment_import_line_form_action"
model="ir.actions.act_window"
>
<field name="name">Import Contact Payment Lines</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.partner.payment.import.line</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="view_id" ref="res_partner_payment_import_line_view_form" />
</record>

<record id="action_button_validate" model="ir.actions.server">
<field name="name">Validate</field>
<field
name="model_id"
ref="contact_payment_mode_import_wizard.model_res_partner_payment_import_line"
/>
<field
name="binding_model_id"
ref="contact_payment_mode_import_wizard.model_res_partner_payment_import_line"
/>
<field name="type">ir.actions.server</field>
<field name="state">code</field>
<field name="code">
if records:
records.button_validate()
</field>
</record>

<record id="action_button_process" model="ir.actions.server">
<field name="name">Process</field>
<field
name="model_id"
ref="contact_payment_mode_import_wizard.model_res_partner_payment_import_line"
/>
<field
name="binding_model_id"
ref="contact_payment_mode_import_wizard.model_res_partner_payment_import_line"
/>
<field name="type">ir.actions.server</field>
<field name="state">code</field>
<field name="code">
if records:
records.button_process()
</field>
</record>
</odoo>
Loading

0 comments on commit 73bd5a4

Please sign in to comment.