Restructure: move packages from packages/ subdirectory to root

Flattened directory structure by moving payment packages from redundant
packages/ subdirectory to the root level of oca-payment repository.

Changes:
- Moved odoo-bringout-oca-payment-* from packages/ to root
- Updated CLAUDE.md to reflect new flat structure
- Removed redundant packages/ directory

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ernad Husremovic 2025-11-16 09:10:09 +01:00
parent 99c650f4f5
commit 7f7e88ab3d
202 changed files with 1 additions and 1 deletions

View file

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
© 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="view_move_form" model="ir.ui.view">
<field name="name">account_payment_order.view_move_form</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account_payment_partner.view_move_form" />
<field name="arch" type="xml">
<button id="account_invoice_payment_btn" position="after">
<!-- For customer refunds:
'Add to Direct Debit Order' will deduct the refund from a customer invoice
We could also need a button 'Add to Payment Order' to reimburse
a customer via wire transfer... but I prefer to keep things
simple ; to do that, the user should manually create a payment order
and select the move lines -->
<button
name="create_account_payment_line"
type="object"
string="Add to Debit Order"
groups="account_payment_order.group_account_payment"
attrs="{'invisible': ['|', '|',
('payment_order_ok', '=', False),
('state', '!=', 'posted'),
('move_type', 'not in', ('out_invoice', 'out_refund'))
]}"
/>
<button
name="create_account_payment_line"
type="object"
string="Add to Payment Order"
groups="account_payment_order.group_account_payment"
attrs="{'invisible': ['|', '|',
('payment_order_ok', '=', False),
('state', '!=', 'posted'),
('move_type', 'not in', ('in_invoice', 'in_refund'))
]}"
/>
</button>
<div name="button_box" position="inside">
<button
name="action_payment_lines"
type="object"
attrs="{'invisible': [('payment_line_count', '=', 0)]}"
icon="fa-bars"
help="Payment Order Lines"
groups="account_payment_order.group_account_payment"
>
<field
string="Payment Lines"
name="payment_line_count"
widget="statinfo"
/>
</button>
</div>
<field name="payment_mode_id" position="after">
<field name="payment_order_ok" invisible="1" />
</field>
<!-- First we place the rest of the elements for the new reference distribution -->
<field name="payment_reference" position="before">
<label for="payment_reference" />
<div name="payment_reference_div" class="d-flex">
<field
name="reference_type"
attrs="{'readonly':[('state','!=','draft')],
'invisible': [('move_type', 'not in', ('out_invoice', 'out_refund'))],
'required': [('move_type', 'in', ('out_invoice', 'out_refund'))]}"
/>
</div>
</field>
<!-- Then we move the std field, as this can only be on a first level -->
<field name="reference_type" position="after">
<field name="payment_reference" position="move" />
</field>
</field>
</record>
<record
id="account_invoice_create_account_payment_line_action"
model="ir.actions.act_window"
>
<field name="name">Add to Payment/Debit Order</field>
<field name="res_model">account.invoice.payment.line.multi</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="binding_model_id" ref="account.model_account_move" />
</record>
<record id="view_invoice_tree" model="ir.ui.view">
<field name="name">account_payment_order.view_invoice_tree</field>
<field name="model">account.move</field>
<field name="inherit_id" ref="account.view_invoice_tree" />
<field name="arch" type="xml">
<button name="action_register_payment" position="after">
<button
name="%(account_invoice_create_account_payment_line_action)d"
type="action"
string="Add to Payment/Debit Order"
groups="account_payment_order.group_account_payment"
invisible="context.get('default_move_type') not in ('out_invoice', 'out_refund', 'in_invoice', 'in_refund')"
/>
</button>
</field>
</record>
</odoo>

View file

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
© 2016 Akretion (https://www.akretion.com/)
@author Alexis de Lattre <alexis.delattre@akretion.com>
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-->
<odoo>
<record id="view_move_line_form" model="ir.ui.view">
<field name="name">account_payment_order.move_line_form</field>
<field name="model">account.move.line</field>
<field name="inherit_id" ref="account_payment_partner.view_move_line_form" />
<field name="arch" type="xml">
<group name="payments" position="inside">
<field
name="partner_bank_id"
domain="[('partner_id', '=', partner_id), '|', ('company_id', '=', company_id), ('company_id', '=', False)]"
/>
</group>
</field>
</record>
<!-- Extra form view only to avoid open the recod in edit mode !-->
<record id="view_move_line_form_no_edit" model="ir.ui.view">
<field name="name">account.move.line.form.no_edit</field>
<field name="model">account.move.line</field>
<field name="inherit_id" ref="account.view_move_line_form" />
<field name="mode">primary</field>
<field name="priority">999</field>
<field name="arch" type="xml">
<form position="attributes">
<attribute name="edit">0</attribute>
</form>
</field>
</record>
<record id="view_move_line_tree" model="ir.ui.view">
<field name="name">account_payment_order.add.move_line_tree</field>
<field name="model">account.move.line</field>
<field name="inherit_id" ref="account.view_move_line_tree" />
<field name="mode">primary</field>
<field name="priority">999</field>
<field name="arch" type="xml">
<xpath expr="//field[@name='amount_currency']" position="after">
<field name="balance" readonly="1" />
<field name="amount_residual_currency" readonly="1" />
<field name="amount_residual" readonly="1" />
</xpath>
<xpath expr="//field[@name='debit']" position="replace" />
<xpath expr="//field[@name='credit']" position="replace" />
<xpath expr="//field[@name='tax_ids']" position="replace" />
</field>
</record>
</odoo>

View file

@ -0,0 +1,113 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="account_payment_line_form" model="ir.ui.view">
<field name="name">account.payment.line.form</field>
<field name="model">account.payment.line</field>
<field name="arch" type="xml">
<form string="Payment Lines">
<group name="main" col="2">
<group name="left">
<field name="state" invisible="1" />
<field name="company_id" invisible="1" />
<field
name="order_id"
invisible="not context.get('account_payment_line_main_view')"
/>
<field name="name" />
<field
name="move_line_id"
domain="[('reconciled','=', False), ('account_id.reconcile', '=', True)] "
/>
<!-- we removed the filter on amount_to_pay, because we want to be able to
select refunds -->
<field name="date" readonly="1" force_save="1" />
<field name="ml_maturity_date" readonly="1" />
<field name="amount_currency" />
<field name="currency_id" />
<field name="partner_id" />
<field
name="partner_bank_id"
context="{'default_partner_id': partner_id}"
domain="[('partner_id', '=', partner_id)]"
attrs="{'required': [('bank_account_required', '=', True)]}"
/>
<field name="bank_account_required" invisible="1" />
<field name="communication_type" />
<field name="communication" required="1" />
</group>
<group name="right">
<field
name="company_id"
widget="selection"
groups="base.group_multi_company"
/>
<field name="amount_company_currency" />
<field name="company_currency_id" invisible="1" />
<field name="payment_type" invisible="1" />
</group>
</group>
<group col="12" string="Payment Transaction">
<field name="payment_ids" colspan="12" nolabel="1" />
</group>
</form>
</field>
</record>
<record id="account_payment_line_form_readonly" model="ir.ui.view">
<field name="name">account.payment.line.form.readonly</field>
<field name="model">account.payment.line</field>
<field
name="inherit_id"
ref="account_payment_order.account_payment_line_form"
/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<form position="attributes">
<attribute name="create">0</attribute>
<attribute name="edit">0</attribute>
<attribute name="delete">0</attribute>
<attribute name="duplicate">0</attribute>
</form>
</field>
</record>
<record id="account_payment_line_tree" model="ir.ui.view">
<field name="name">account.payment.line.tree</field>
<field name="model">account.payment.line</field>
<field name="arch" type="xml">
<tree>
<field
name="order_id"
invisible="not context.get('account_payment_line_main_view')"
/>
<field name="partner_id" />
<field name="communication" />
<field name="partner_bank_id" />
<field name="partner_bank_acc_type" optional="hide" />
<field name="move_line_id" optional="hide" />
<field name="ml_maturity_date" optional="show" />
<field name="date" />
<field name="amount_currency" string="Amount" />
<field name="currency_id" invisible="1" />
<field name="name" optional="show" />
<field
name="amount_company_currency"
sum="Total in Company Currency"
invisible="1"
/>
<field name="payment_type" invisible="1" />
<button
name="action_open_business_doc"
type="object"
string="View"
class="btn btn-secondary"
attrs="{'invisible': [('move_line_id', '=', False)]}"
/>
</tree>
</field>
</record>
<record id="account_payment_line_action" model="ir.actions.act_window">
<field name="name">Payment Lines</field>
<field name="res_model">account.payment.line</field>
<field name="view_mode">tree,form</field>
<field name="context">{'account_payment_line_main_view': True}</field>
</record>
</odoo>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2019 ACSONE SA/NV
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
<odoo>
<record model="ir.ui.view" id="account_payment_method_form_view">
<field
name="name"
>account.payment.method.form (in account_payment_order)</field>
<field name="model">account.payment.method</field>
<field
name="inherit_id"
ref="account_payment_mode.account_payment_method_form"
/>
<field name="arch" type="xml">
<field name="active" position="before">
<field name="payment_order_only" />
</field>
</field>
</record>
</odoo>

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="account_payment_mode_form" model="ir.ui.view">
<field name="name">account_payment_order.account.payment.mode.form</field>
<field name="model">account.payment.mode</field>
<field name="inherit_id" ref="account_payment_mode.account_payment_mode_form" />
<field name="arch" type="xml">
<field name="payment_type" position="after">
<field name="payment_order_ok" />
</field>
<field name="variable_journal_ids" position="after">
<field name="transfer_journal_id" />
</field>
<group name="main" position="after">
<group
name="payment_order_options"
string="Options for Payment Orders"
attrs="{'invisible': [('payment_order_ok', '=', False)]}"
>
<field
name="no_debit_before_maturity"
attrs="{'invisible': ['|', ('payment_type', '!=', 'inbound'), ('payment_order_ok', '!=', True)]}"
/>
<field name="default_date_prefered" />
<field name="group_lines" />
</group>
<group
name="payment_order_create_defaults"
string="Select Move Lines to Pay - Default Values"
attrs="{'invisible': [('payment_order_ok', '=', False)]}"
>
<field name="default_journal_ids" widget="many2many_tags" />
<field name="default_payment_mode" />
<field name="default_target_move" widget="radio" />
<field name="default_invoice" />
<field name="default_date_type" />
</group>
</group>
</field>
</record>
<record id="account_payment_mode_tree" model="ir.ui.view">
<field name="name">account_payment_order.account.payment.mode.tree</field>
<field name="model">account.payment.mode</field>
<field name="inherit_id" ref="account_payment_mode.account_payment_mode_tree" />
<field name="arch" type="xml">
<field name="payment_type" position="after">
<field name="payment_order_ok" />
</field>
</field>
</record>
<record id="account_payment_mode_search" model="ir.ui.view">
<field name="name">account_payment_order.account.payment.mode.search</field>
<field name="model">account.payment.mode</field>
<field
name="inherit_id"
ref="account_payment_mode.account_payment_mode_search"
/>
<field name="arch" type="xml">
<filter name="outbound" position="after">
<filter
name="payment_order_ok"
string="Selectable in Payment Orders"
domain="[('payment_order_ok', '=', 1)]"
/>
</filter>
</field>
</record>
</odoo>

View file

@ -0,0 +1,293 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="account_payment_order_form" model="ir.ui.view">
<field name="name">account.payment.order.form</field>
<field name="model">account.payment.order</field>
<field name="arch" type="xml">
<form string="Payment Order">
<header>
<button
name="%(account_payment_line_create_action)d"
type="action"
string="Create Payment Lines from Journal Items"
states="draft"
class="oe_highlight"
/>
<button
name="draft2open"
type="object"
states="draft"
string="Confirm Payments"
class="oe_highlight"
/>
<button
name="open2generated"
type="object"
states="open"
string="Generate Payment File"
class="oe_highlight"
/>
<button
name="generated2uploaded"
type="object"
states="generated"
string="File Successfully Uploaded"
class="oe_highlight"
/>
<button
name="cancel2draft"
type="object"
states="cancel"
string="Back to Draft"
/>
<button
name="action_cancel"
type="object"
states="draft,open,generated"
string="Cancel Payments"
/>
<button
name="action_uploaded_cancel"
type="object"
states="uploaded"
string="Cancel Payments"
/>
<field
name="state"
widget="statusbar"
statusbar_visible="draft,open,generated,uploaded"
/>
</header>
<div
class="alert alert-warning"
role="alert"
attrs="{'invisible': [('partner_banks_archive_msg', '=', False)]}"
>
The following bank accounts are archived: <field
name="partner_banks_archive_msg"
readonly="1"
/>
</div>
<sheet>
<div class="oe_button_box" name="button_box">
<button
class="oe_stat_button"
name="action_move_journal_line"
type="object"
icon="fa-bars"
>
<field
string="Journal Entries"
name="move_count"
widget="statinfo"
/>
</button>
</div>
<div class="oe_title">
<label for="name" class="oe_edit_only" />
<h1>
<field name="name" />
</h1>
</div>
<group name="head" col="2">
<group name="head-left">
<field
name="payment_mode_id"
domain="[('payment_order_ok', '=', True), ('payment_type', '=', payment_type)]"
/>
<field name="allowed_journal_ids" invisible="1" />
<field
name="journal_id"
domain="[('id', 'in', allowed_journal_ids)]"
/>
<field name="bank_account_link" invisible="1" />
<field name="company_partner_bank_id" />
<field
name="company_id"
groups="base.group_multi_company"
/>
<field name="payment_type" invisible="0" />
<field
name="payment_count"
attrs="{'invisible': [('state', 'in', ('draft', 'cancel'))]}"
/>
</group>
<group name="head-right">
<field name="date_prefered" />
<field
name="date_scheduled"
attrs="{'invisible': [('date_prefered', '!=', 'fixed')], 'required': [('date_prefered', '=', 'fixed')]}"
/>
<field name="date_generated" />
<field name="generated_user_id" />
<field name="date_uploaded" />
<field name="description" />
</group>
</group>
<notebook>
<page name="payment-lines" string="Transactions">
<field
name="payment_line_ids"
context="{'default_payment_type': payment_type}"
/>
</page>
<page
name="payment-lines"
string="Payment Transactions"
attrs="{'invisible': [('state', 'in', ('draft', 'cancel'))]}"
>
<field
name="payment_ids"
edit="0"
create="0"
context="{'tree_view_ref': 'account_payment_order.view_account_payment_tree_payment_order'}"
/>
</page>
</notebook>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers" />
<field name="activity_ids" widget="mail_activity" />
<field name="message_ids" widget="mail_thread" />
</div>
</form>
</field>
</record>
<record id="account_payment_order_tree" model="ir.ui.view">
<field name="name">account.payment.order.tree</field>
<field name="model">account.payment.order</field>
<field name="arch" type="xml">
<tree>
<field name="name" decoration-bf="1" />
<field name="payment_mode_id" />
<field name="journal_id" />
<field name="company_id" groups="base.group_multi_company" />
<field name="date_uploaded" />
<field name="description" optional="show" />
<field
name="payment_count"
optional="hide"
string="Payment Transactions"
/>
<field name="total_company_currency" sum="Total Company Currency" />
<field name="company_currency_id" invisible="1" />
<field
name="state"
decoration-info="state == 'draft'"
decoration-success="state == 'uploaded'"
decoration-warning="state == 'open'"
decoration-danger="state == 'generated'"
decoration-muted="state == 'cancel'"
widget="badge"
/>
</tree>
</field>
</record>
<record id="account_payment_order_search" model="ir.ui.view">
<field name="name">account.payment.order.search</field>
<field name="model">account.payment.order</field>
<field name="arch" type="xml">
<search string="Search Payment Orders">
<field
name="description"
filter_domain="['|', ('name', 'ilike', self), ('description', 'ilike', self)]"
string="Name or Description"
/>
<field name="journal_id" />
<filter
name="draft"
string="Draft"
domain="[('state', '=', 'draft')]"
/>
<filter
name="open"
string="Confirmed"
domain="[('state', '=', 'open')]"
/>
<filter
name="generated"
string="File Generated"
domain="[('state', '=', 'generated')]"
/>
<filter
name="uploaded"
string="File Uploaded"
domain="[('state', '=', 'uploaded')]"
/>
<group string="Group By" name="groupby">
<filter
name="payment_mode_groupby"
string="Payment Mode"
context="{'group_by': 'payment_mode_id'}"
/>
<filter
name="journal_groupby"
string="Bank Journal"
context="{'group_by': 'journal_id'}"
/>
<filter
name="date_generated_groupby"
string="File Generation Date"
context="{'group_by': 'date_generated'}"
/>
<filter
name="date_uploaded_groupby"
string="File Upload Date"
context="{'group_by': 'date_uploaded'}"
/>
<filter
name="state_groupby"
string="State"
context="{'group_by': 'state'}"
/>
</group>
</search>
</field>
</record>
<record id="account_payment_order_graph" model="ir.ui.view">
<field name="name">account.payment.order.graph</field>
<field name="model">account.payment.order</field>
<field name="arch" type="xml">
<graph string="Payment Orders">
<field name="date_uploaded" type="row" interval="month" />
<field name="total_company_currency" type="measure" />
</graph>
</field>
</record>
<record id="account_payment_order_pivot" model="ir.ui.view">
<field name="name">account.payment.order.pivot</field>
<field name="model">account.payment.order</field>
<field name="arch" type="xml">
<pivot string="Payment Orders">
<field name="date_uploaded" type="row" interval="month" />
<field name="total_company_currency" type="measure" />
</pivot>
</field>
</record>
<record id="account_payment_order_outbound_action" model="ir.actions.act_window">
<field name="name">Payment Orders</field>
<field name="res_model">account.payment.order</field>
<field name="view_mode">tree,form,pivot,graph</field>
<field name="domain">[('payment_type', '=', 'outbound')]</field>
<field name="context">{'default_payment_type': 'outbound'}</field>
</record>
<record id="account_payment_order_inbound_action" model="ir.actions.act_window">
<field name="name">Debit Orders</field>
<field name="res_model">account.payment.order</field>
<field name="view_mode">tree,form,pivot,graph</field>
<field name="domain">[('payment_type', '=', 'inbound')]</field>
<field name="context">{'default_payment_type': 'inbound'}</field>
</record>
<menuitem
id="account_payment_order_outbound_menu"
action="account_payment_order_outbound_action"
parent="account.menu_finance_payables"
sequence="21"
/>
<menuitem
id="account_payment_order_inbound_menu"
action="account_payment_order_inbound_action"
parent="account.menu_finance_receivables"
sequence="18"
/>
</odoo>

View file

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_account_payment_tree_payment_order" model="ir.ui.view">
<field name="name">account.payment.tree</field>
<field name="model">account.payment</field>
<field name="mode">primary</field>
<field name="inherit_id" ref="account.view_account_payment_tree" />
<field name="arch" type="xml">
<field name="name" position="after">
<field name="payment_reference" />
<field name="order_state" invisible="1" />
<button
name="update_payment_reference"
attrs="{'invisible': [('order_state', '!=', 'open')]}"
title="Update Payment Reference"
type="object"
icon="fa-undo"
/>
</field>
</field>
</record>
<record id="view_account_payment_form" model="ir.ui.view">
<field name="name">account.payment.form</field>
<field name="model">account.payment</field>
<field name="inherit_id" ref="account.view_account_payment_form" />
<field name="arch" type="xml">
<field name="ref" position="after">
<field
name="payment_reference"
attrs="{'invisible': [('payment_reference', '=', False)]}"
/>
</field>
</field>
</record>
</odoo>

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>) -->
<odoo>
<record id="view_attachment_simplified_form" model="ir.ui.view">
<field name="name">ir.attachment.simplified.form</field>
<field name="model">ir.attachment</field>
<field name="priority" eval="25" />
<field name="arch" type="xml">
<form string="Attachments">
<sheet>
<label for="name" class="oe_edit_only" />
<h1>
<field name="name" />
</h1>
<group name="main">
<field
name="datas"
filename="name"
string="Generated File"
readonly="1"
/>
<label for="create_uid" string="Created by" />
<div name="creation_div">
<field name="create_uid" readonly="1" class="oe_inline" />
on
<field name="create_date" readonly="1" class="oe_inline" />
</div>
</group>
</sheet>
</form>
</field>
</record>
</odoo>