[MIG] rma: Migration to 18.0

This commit is contained in:
JasminSForgeFlow
2024-11-26 16:58:55 +05:30
parent 306acd47e3
commit e1179b8529
17 changed files with 499 additions and 514 deletions

View File

@@ -17,7 +17,7 @@ RMA (Return Merchandise Authorization)
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3 :alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-ForgeFlow%2Fstock--rma-lightgray.png?logo=github .. |badge3| image:: https://img.shields.io/badge/github-ForgeFlow%2Fstock--rma-lightgray.png?logo=github
:target: https://github.com/ForgeFlow/stock-rma/tree/17.0/rma :target: https://github.com/ForgeFlow/stock-rma/tree/18.0/rma
:alt: ForgeFlow/stock-rma :alt: ForgeFlow/stock-rma
|badge1| |badge2| |badge3| |badge1| |badge2| |badge3|
@@ -128,7 +128,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/ForgeFlow/stock-rma/issues>`_. Bugs are tracked on `GitHub Issues <https://github.com/ForgeFlow/stock-rma/issues>`_.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/ForgeFlow/stock-rma/issues/new?body=module:%20rma%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. `feedback <https://github.com/ForgeFlow/stock-rma/issues/new?body=module:%20rma%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues. Do not contact contributors directly about support or help with technical issues.
@@ -155,6 +155,6 @@ Contributors
Maintainers Maintainers
----------- -----------
This module is part of the `ForgeFlow/stock-rma <https://github.com/ForgeFlow/stock-rma/tree/17.0/rma>`_ project on GitHub. This module is part of the `ForgeFlow/stock-rma <https://github.com/ForgeFlow/stock-rma/tree/18.0/rma>`_ project on GitHub.
You are welcome to contribute. You are welcome to contribute.

View File

@@ -3,7 +3,7 @@
{ {
"name": "RMA (Return Merchandise Authorization)", "name": "RMA (Return Merchandise Authorization)",
"version": "17.0.1.0.0", "version": "18.0.1.0.0",
"license": "LGPL-3", "license": "LGPL-3",
"category": "RMA", "category": "RMA",
"summary": "Introduces the return merchandise authorization (RMA) process in odoo", "summary": "Introduces the return merchandise authorization (RMA) process in odoo",

View File

@@ -78,7 +78,6 @@ class StockMove(models.Model):
self, self,
need, need,
location_id, location_id,
quant_ids=None,
lot_id=None, lot_id=None,
package_id=None, package_id=None,
owner_id=None, owner_id=None,
@@ -94,7 +93,6 @@ class StockMove(models.Model):
return super()._update_reserved_quantity( return super()._update_reserved_quantity(
need, need,
location_id, location_id,
quant_ids=quant_ids,
lot_id=lot_id, lot_id=lot_id,
package_id=package_id, package_id=package_id,
owner_id=owner_id, owner_id=owner_id,

View File

@@ -69,7 +69,6 @@ class StockWarehouse(models.Model):
"usage": "internal", "usage": "internal",
"location_id": wh.view_location_id.id, "location_id": wh.view_location_id.id,
"company_id": wh.company_id.id, "company_id": wh.company_id.id,
"return_location": True,
} }
) )
# RMA types # RMA types

View File

@@ -1,24 +1,23 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="rma_order_line_report" model="ir.actions.report">
<record id="rma_order_line_report" model="ir.actions.report"> <field name="name">RMA</field>
<field name="name">RMA</field> <field name="model">rma.order.line</field>
<field name="model">rma.order.line</field> <field name="report_type">qweb-pdf</field>
<field name="report_type">qweb-pdf</field> <field name="report_name">rma.report_rma_order_line</field>
<field name="report_name">rma.report_rma_order_line</field> <field name="report_file">rma.report_rma_order_line</field>
<field name="report_file">rma.report_rma_order_line</field> <field name="print_report_name">('RMA - %s' % (object.name))</field>
<field name="print_report_name">('RMA - %s' % (object.name))</field> <field name="binding_model_id" ref="model_rma_order_line" />
<field name="binding_model_id" ref="model_rma_order_line" /> <field name="binding_type">report</field>
<field name="binding_type">report</field> </record>
</record> <record id="rma_order_report" model="ir.actions.report">
<record id="rma_order_report" model="ir.actions.report"> <field name="name">RMA Group</field>
<field name="name">RMA Group</field> <field name="model">rma.order</field>
<field name="model">rma.order</field> <field name="report_type">qweb-pdf</field>
<field name="report_type">qweb-pdf</field> <field name="report_name">rma.report_rma_order</field>
<field name="report_name">rma.report_rma_order</field> <field name="report_file">rma.report_rma_order</field>
<field name="report_file">rma.report_rma_order</field> <field name="print_report_name">('RMA Group - %s' % (object.name))</field>
<field name="print_report_name">('RMA Group - %s' % (object.name))</field> <field name="binding_model_id" ref="model_rma_order" />
<field name="binding_model_id" ref="model_rma_order" /> <field name="binding_type">report</field>
<field name="binding_type">report</field> </record>
</record>
</odoo> </odoo>

View File

@@ -4,7 +4,6 @@
<t t-call="web.external_layout"> <t t-call="web.external_layout">
<t t-set="doc" t-value="doc.with_context({'lang':doc.partner_id.lang})" /> <t t-set="doc" t-value="doc.with_context({'lang':doc.partner_id.lang})" />
<div class="page"> <div class="page">
<div class="oe_structure" />
<div class="row"> <div class="row">
<div class="col-6"> <div class="col-6">
<t <t
@@ -39,11 +38,11 @@
class="mt8" class="mt8"
> >
<strong>Shipping address:</strong> <strong>Shipping address:</strong>
<div <div
t-field="doc.customer_address_id" t-field="doc.customer_address_id"
t-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": True, "phone_icons": True}' t-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": True, "phone_icons": True}'
/> />
<p t-if="doc.customer_address_id.vat">VAT: <span <p t-if="doc.customer_address_id.vat">VAT: <span
t-field="doc.customer_address_id.vat" t-field="doc.customer_address_id.vat"
/></p> /></p>
</div> </div>
@@ -89,13 +88,15 @@
<th name="quantity" class="text-right">Quantity</th> <th name="quantity" class="text-right">Quantity</th>
<th name="unit_price" class="text-right">Unit Price</th> <th name="unit_price" class="text-right">Unit Price</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr> <tr>
<td name="product"><span t-field="doc.product_id" /></td> <td name="product">
<td name="lot" t-if="doc.lot_id"><span <span t-field="doc.product_id" />
t-field="doc.lot_id" </td>
/></td> <td name="lot" t-if="doc.lot_id">
<span t-field="doc.lot_id" />
</td>
<td name="quantity" class="text-right"> <td name="quantity" class="text-right">
<span t-field="doc.product_qty" /> <span t-field="doc.product_qty" />
<span t-field="doc.uom_id" groups="uom.group_uom" /> <span t-field="doc.uom_id" groups="uom.group_uom" />
@@ -110,11 +111,15 @@
</tbody> </tbody>
</table> </table>
<div t-if="doc.description"> <div t-if="doc.description">
<strong><p>Description</p></strong> <strong>
<p>Description</p>
</strong>
<span t-field="doc.description" /> <span t-field="doc.description" />
</div> </div>
<div t-if="doc.conditions"> <div t-if="doc.conditions">
<strong><p>Term and conditions</p></strong> <strong>
<p>Term and conditions</p>
</strong>
<span t-field="doc.conditions" /> <span t-field="doc.conditions" />
</div> </div>
</div> </div>
@@ -138,7 +143,6 @@
<t t-call="web.external_layout"> <t t-call="web.external_layout">
<t t-set="doc" t-value="doc.with_context({'lang':doc.partner_id.lang})" /> <t t-set="doc" t-value="doc.with_context({'lang':doc.partner_id.lang})" />
<div class="page"> <div class="page">
<div class="oe_structure" />
<div class="row"> <div class="row">
<div class="col-6"> <div class="col-6">
<t <t
@@ -173,11 +177,11 @@
class="mt8" class="mt8"
> >
<strong>Shipping address:</strong> <strong>Shipping address:</strong>
<div <div
t-field="doc.customer_address_id" t-field="doc.customer_address_id"
t-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": True, "phone_icons": True}' t-options='{"widget": "contact", "fields": ["address", "name", "phone", "fax"], "no_marker": True, "phone_icons": True}'
/> />
<p t-if="doc.customer_address_id.vat">VAT: <span <p t-if="doc.customer_address_id.vat">VAT: <span
t-field="doc.customer_address_id.vat" t-field="doc.customer_address_id.vat"
/></p> /></p>
</div> </div>
@@ -228,15 +232,21 @@
<th class="text-right">Quantity</th> <th class="text-right">Quantity</th>
<th class="text-right">Unit Price</th> <th class="text-right">Unit Price</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<tr t-foreach="doc.rma_line_ids" t-as="l"> <tr t-foreach="doc.rma_line_ids" t-as="l">
<td><span t-field="l.origin" /></td> <td>
<td><span t-field="l.operation_id.name" /></td> <span t-field="l.origin" />
<td><span t-field="l.product_id" /></td> </td>
<td name="lot" t-if="print_lot_column"><span <td>
t-field="l.lot_id" <span t-field="l.operation_id.name" />
/></td> </td>
<td>
<span t-field="l.product_id" />
</td>
<td name="lot" t-if="print_lot_column">
<span t-field="l.lot_id" />
</td>
<td class="text-right"> <td class="text-right">
<span t-field="l.product_qty" /> <span t-field="l.product_qty" />
<span t-field="l.uom_id" groups="uom.group_uom" /> <span t-field="l.uom_id" groups="uom.group_uom" />
@@ -248,7 +258,9 @@
</tbody> </tbody>
</table> </table>
<div t-if="doc.comment"> <div t-if="doc.comment">
<strong><p>Additional Information</p></strong> <strong>
<p>Additional Information</p>
</strong>
<span t-field="doc.comment" /> <span t-field="doc.comment" />
</div> </div>
</div> </div>

View File

@@ -8,10 +8,11 @@
/* /*
:Author: David Goodger (goodger@python.org) :Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ :Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain. :Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils. Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet. customize this style sheet.
@@ -274,7 +275,7 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ; margin-left: 2em ;
margin-right: 2em } margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */ pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee } pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 } pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@ span.option {
span.pre { span.pre {
white-space: pre } white-space: pre }
span.problematic { span.problematic, pre.problematic {
color: red } color: red }
span.section-subtitle { span.section-subtitle {
@@ -368,7 +369,7 @@ ul.auto-toc {
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:310ce4e3f5919e5be643c54f11481d09bb8fc79cab65f08ac969ef3bf9d799fe !! source digest: sha256:310ce4e3f5919e5be643c54f11481d09bb8fc79cab65f08ac969ef3bf9d799fe
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/ForgeFlow/stock-rma/tree/17.0/rma"><img alt="ForgeFlow/stock-rma" src="https://img.shields.io/badge/github-ForgeFlow%2Fstock--rma-lightgray.png?logo=github" /></a></p> <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/ForgeFlow/stock-rma/tree/18.0/rma"><img alt="ForgeFlow/stock-rma" src="https://img.shields.io/badge/github-ForgeFlow%2Fstock--rma-lightgray.png?logo=github" /></a></p>
<p>A Return Merchandise Authorization (RMA), is a part of the process of <p>A Return Merchandise Authorization (RMA), is a part of the process of
returning a product in order to receive a refund, replacement, or repair returning a product in order to receive a refund, replacement, or repair
during the products warranty period.</p> during the products warranty period.</p>
@@ -485,7 +486,7 @@ showing “Vendor Address” while it should be “Customer Address”.</li>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/ForgeFlow/stock-rma/issues">GitHub Issues</a>. <p>Bugs are tracked on <a class="reference external" href="https://github.com/ForgeFlow/stock-rma/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/ForgeFlow/stock-rma/issues/new?body=module:%20rma%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p> <a class="reference external" href="https://github.com/ForgeFlow/stock-rma/issues/new?body=module:%20rma%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p> <p>Do not contact contributors directly about support or help with technical issues.</p>
</div> </div>
<div class="section" id="credits"> <div class="section" id="credits">
@@ -511,7 +512,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
</div> </div>
<div class="section" id="maintainers"> <div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-11">Maintainers</a></h2> <h2><a class="toc-backref" href="#toc-entry-11">Maintainers</a></h2>
<p>This module is part of the <a class="reference external" href="https://github.com/ForgeFlow/stock-rma/tree/17.0/rma">ForgeFlow/stock-rma</a> project on GitHub.</p> <p>This module is part of the <a class="reference external" href="https://github.com/ForgeFlow/stock-rma/tree/18.0/rma">ForgeFlow/stock-rma</a> project on GitHub.</p>
<p>You are welcome to contribute.</p> <p>You are welcome to contribute.</p>
</div> </div>
</div> </div>

View File

@@ -150,7 +150,7 @@ class TestRma(common.TransactionCase):
@classmethod @classmethod
def _create_product(cls, name): def _create_product(cls, name):
return cls.product_product_model.create( return cls.product_product_model.create(
{"name": name, "categ_id": cls.category.id, "type": "product"} {"name": name, "categ_id": cls.category.id, "is_storable": True}
) )
@classmethod @classmethod

View File

@@ -8,67 +8,40 @@
<field name="inherit_id" ref="base.res_config_settings_view_form" /> <field name="inherit_id" ref="base.res_config_settings_view_form" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//form" position="inside"> <xpath expr="//form" position="inside">
<div <app
class="app_settings_block"
data-string="RMA" data-string="RMA"
string="RMA" string="RMA"
data-key="rma" name="rma"
groups="rma.group_rma_manager" groups="rma.group_rma_manager"
> >
<h2>Return Merchandise Authorization</h2> <block title="Return Merchandise Authorization" name="rma_config">
<div class="row mt16 o_settings_container"> <setting
<div id="rma_delivery_address"
name="rma_delivery_address" help="Display 3 fields on rma: partner, invoice address, delivery address"
class="col-12 col-lg-6 o_setting_box"
> >
<div class="o_setting_left_pane"> <field name="group_rma_delivery_address" />
<field name="group_rma_delivery_address" /> </setting>
</div> <setting
<div class="o_setting_right_pane"> id="group_rma_lines"
<label for="group_rma_delivery_address" /> help="Group RMA lines in one RMA group"
<div class="text-muted">
Display 3 fields on rma: partner, invoice address, delivery address
</div>
</div>
</div>
<div
name="group_rma_lines"
class="col-12 col-lg-6 o_setting_box"
> >
<div class="o_setting_left_pane"> <field name="group_rma_lines" />
<field name="group_rma_lines" /> </setting>
</div> <setting id="rma_delivery_address" help="Enable RMA invoicing">
<div class="o_setting_right_pane"> <field name="module_rma_account" />
<label for="group_rma_lines" /> </setting>
<div class="text-muted"> </block>
Group RMA lines in one RMA group </app>
</div>
</div>
</div>
<div name="rma_account" class="col-12 col-lg-6 o_setting_box">
<div class="o_setting_left_pane">
<field name="module_rma_account" />
</div>
<div class="o_setting_right_pane">
<label for="module_rma_account" />
<div class="text-muted">
Enable RMA invoicing
</div>
</div>
</div>
</div>
</div>
</xpath> </xpath>
</field> </field>
</record> </record>
<record id="action_rma_config_settings" model="ir.actions.act_window"> <record id="action_rma_config_settings" model="ir.actions.act_window">
<field name="name">Settings</field> <field name="name">Settings</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.config.settings</field> <field name="res_model">res.config.settings</field>
<field name="view_mode">form</field> <field name="view_mode">form</field>
<field name="target">inline</field> <field name="target">inline</field>
<field name="context">{'module' : 'rma'}</field> <field name="context">{'module' : 'rma', 'bin_size': False}</field>
</record> </record>
</odoo> </odoo>

View File

@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<record id="rma_operation_tree" model="ir.ui.view"> <record id="rma_operation_tree" model="ir.ui.view">
<field name="name">rma.operation.tree</field> <field name="name">rma.operation.list</field>
<field name="model">rma.operation</field> <field name="model">rma.operation</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree name="RMA Operations"> <list name="RMA Operations">
<field name="active" invisible="1" /> <field name="active" invisible="1" />
<field name="code" /> <field name="code" />
<field name="name" /> <field name="name" />
<field name="receipt_policy" /> <field name="receipt_policy" />
<field name="delivery_policy" /> <field name="delivery_policy" />
</tree> </list>
</field> </field>
</record> </record>
@@ -71,7 +71,7 @@
<record id="action_rma_operation_customer" model="ir.actions.act_window"> <record id="action_rma_operation_customer" model="ir.actions.act_window">
<field name="name">Customer Operations</field> <field name="name">Customer Operations</field>
<field name="res_model">rma.operation</field> <field name="res_model">rma.operation</field>
<field name="view_mode">tree,form</field> <field name="view_mode">list,form</field>
<field name="context">{'default_type': "customer"}</field> <field name="context">{'default_type': "customer"}</field>
<field name="domain">[('type','=', 'customer')]</field> <field name="domain">[('type','=', 'customer')]</field>
<field name="view_id" ref="rma_operation_tree" /> <field name="view_id" ref="rma_operation_tree" />
@@ -80,7 +80,7 @@
<record id="action_rma_operation_supplier" model="ir.actions.act_window"> <record id="action_rma_operation_supplier" model="ir.actions.act_window">
<field name="name">Supplier Operations</field> <field name="name">Supplier Operations</field>
<field name="res_model">rma.operation</field> <field name="res_model">rma.operation</field>
<field name="view_mode">tree,form</field> <field name="view_mode">list,form</field>
<field name="context">{'default_type': "supplier"}</field> <field name="context">{'default_type': "supplier"}</field>
<field name="domain">[('type','=', 'supplier')]</field> <field name="domain">[('type','=', 'supplier')]</field>
<field name="view_id" ref="rma_operation_tree" /> <field name="view_id" ref="rma_operation_tree" />

View File

@@ -1,63 +1,63 @@
<?xml version="1.0" ?> <?xml version="1.0" ?>
<odoo> <odoo>
<record id="view_rma_line_tree" model="ir.ui.view"> <record id="view_rma_line_tree" model="ir.ui.view">
<field name="name">rma.order.line.tree</field> <field name="name">rma.order.line.list</field>
<field name="model">rma.order.line</field> <field name="model">rma.order.line</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree name="RMA Line" decoration-info="state in ('draft','to_approve')"> <list name="RMA Line" decoration-info="state in ('draft','to_approve')">
<field name="name" /> <field name="name" />
<field name="partner_id" /> <field name="partner_id" />
<field name="product_id" /> <field name="product_id" />
<field <field
name="lot_id" name="lot_id"
groups="stock.group_production_lot" groups="stock.group_production_lot"
context="{'default_product_id': product_id,}" context="{'default_product_id': product_id,}"
/> />
<field name="rma_id" groups="rma.group_rma_groups" /> <field name="rma_id" groups="rma.group_rma_groups" />
<field name="origin" /> <field name="origin" />
<field name="date_rma" /> <field name="date_rma" />
<field name="operation_id" /> <field name="operation_id" />
<field name="supplier_address_id" /> <field name="supplier_address_id" />
<field name="uom_id" groups="uom.group_uom" /> <field name="uom_id" groups="uom.group_uom" />
<field name="product_qty" /> <field name="product_qty" />
<field name="price_unit" /> <field name="price_unit" />
<field name="state" /> <field name="state" />
</tree> </list>
</field> </field>
</record> </record>
<record id="view_rma_line_supplier_tree" model="ir.ui.view"> <record id="view_rma_line_supplier_tree" model="ir.ui.view">
<field name="name">rma.order.line.supplier.tree</field> <field name="name">rma.order.line.supplier.list</field>
<field name="model">rma.order.line</field> <field name="model">rma.order.line</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree name="RMA Line" decoration-info="state in ('draft','to_approve')"> <list name="RMA Line" decoration-info="state in ('draft','to_approve')">
<field name="name" /> <field name="name" />
<field name="partner_id" /> <field name="partner_id" />
<field name="product_id" /> <field name="product_id" />
<field <field
name="lot_id" name="lot_id"
groups="stock.group_production_lot" groups="stock.group_production_lot"
context="{'default_product_id': product_id,}" context="{'default_product_id': product_id,}"
/> />
<field name="rma_id" groups="rma.group_rma_groups" /> <field name="rma_id" groups="rma.group_rma_groups" />
<field name="origin" /> <field name="origin" />
<field name="date_rma" /> <field name="date_rma" />
<field name="operation_id" domain="[('type','=','supplier')]" /> <field name="operation_id" domain="[('type','=','supplier')]" />
<field name="uom_id" groups="uom.group_uom" /> <field name="uom_id" groups="uom.group_uom" />
<field name="product_qty" /> <field name="product_qty" />
<field name="price_unit" /> <field name="price_unit" />
<field name="state" /> <field name="state" />
</tree> </list>
</field> </field>
</record> </record>
<record id="view_rma_line_form" model="ir.ui.view"> <record id="view_rma_line_form" model="ir.ui.view">
<field name="name">rma.order.line.form</field> <field name="name">rma.order.line.form</field>
<field name="model">rma.order.line</field> <field name="model">rma.order.line</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="RMA Line"> <form string="RMA Line">
<header> <header>
<button <button
name="action_rma_to_approve" name="action_rma_to_approve"
type="object" type="object"
string="Request Approval" string="Request Approval"
@@ -65,14 +65,14 @@
class="oe_highlight" class="oe_highlight"
groups="rma.group_rma_customer_user" groups="rma.group_rma_customer_user"
/> />
<button <button
name="action_rma_draft" name="action_rma_draft"
type="object" type="object"
string="Back to Draft" string="Back to Draft"
invisible="state == 'draft'" invisible="state == 'draft'"
groups="rma.group_rma_customer_user,rma.group_rma_supplier_user" groups="rma.group_rma_customer_user,rma.group_rma_supplier_user"
/> />
<button <button
name="action_rma_approve" name="action_rma_approve"
type="object" type="object"
string="Approve" string="Approve"
@@ -80,37 +80,37 @@
class="oe_highlight" class="oe_highlight"
groups="rma.group_rma_manager" groups="rma.group_rma_manager"
/> />
<button <button
name="action_rma_approve" name="action_rma_approve"
type="object" type="object"
string="Back to Approved" string="Back to Approved"
invisible="state != 'done'" invisible="state != 'done'"
groups="rma.group_rma_customer_user" groups="rma.group_rma_customer_user"
/> />
<button <button
name="action_rma_done" name="action_rma_done"
type="object" type="object"
string="Done" string="Done"
invisible="state in ('done', 'draft', 'canceled')" invisible="state in ('done', 'draft', 'canceled')"
groups="rma.group_rma_customer_user" groups="rma.group_rma_customer_user"
/> />
<button <button
name="action_rma_cancel" name="action_rma_cancel"
type="object" type="object"
string="Cancel" string="Cancel"
invisible="state in ('done', 'canceled')" invisible="state in ('done', 'canceled')"
groups="rma.group_rma_customer_user" groups="rma.group_rma_customer_user"
/> />
<field <field
name="state" name="state"
widget="statusbar" widget="statusbar"
statusbar_visible="draft,to_approve,approved,done" statusbar_visible="draft,to_approve,approved,done"
nolabel="1" nolabel="1"
/> />
</header> </header>
<sheet> <sheet>
<div name="button_box" class="oe_button_box"> <div name="button_box" class="oe_button_box">
<button <button
type="object" type="object"
name="action_view_in_shipments" name="action_view_in_shipments"
class="oe_stat_button" class="oe_stat_button"
@@ -118,13 +118,13 @@
invisible="in_shipment_count == 0" invisible="in_shipment_count == 0"
groups="stock.group_stock_user" groups="stock.group_stock_user"
> >
<field <field
name="in_shipment_count" name="in_shipment_count"
widget="statinfo" widget="statinfo"
string="Shipments" string="Shipments"
/> />
</button> </button>
<button <button
type="object" type="object"
name="action_view_out_shipments" name="action_view_out_shipments"
class="oe_stat_button" class="oe_stat_button"
@@ -132,19 +132,21 @@
invisible="out_shipment_count == 0" invisible="out_shipment_count == 0"
groups="stock.group_stock_user" groups="stock.group_stock_user"
> >
<field <field
name="out_shipment_count" name="out_shipment_count"
widget="statinfo" widget="statinfo"
string="Deliveries" string="Deliveries"
/> />
</button> </button>
<!--Move this button to rma_account--> <!--Move
<!--<button type="object" name="action_view_invoice" this button to rma_account-->
<!--<button
type="object" name="action_view_invoice"
class="oe_stat_button" class="oe_stat_button"
icon="fa-pencil-square-o" icon="fa-pencil-square-o"
string="Origin Inv"> string="Origin Inv">
</button>--> </button>-->
<button <button
type="object" type="object"
name="action_view_rma_lines" name="action_view_rma_lines"
class="oe_stat_button" class="oe_stat_button"
@@ -152,14 +154,14 @@
groups="stock.group_stock_user" groups="stock.group_stock_user"
invisible="rma_line_count == 0" invisible="rma_line_count == 0"
> >
<field <field
name="rma_line_count" name="rma_line_count"
widget="statinfo" widget="statinfo"
string="Supplier RMA" string="Supplier RMA"
/> />
</button> </button>
</div> </div>
<div class="oe_title" name="title"> <div class="oe_title" name="title">
<h1> <h1>
<field <field
name="name" name="name"
@@ -167,16 +169,16 @@
invisible="context.get('hide_title',False)" invisible="context.get('hide_title',False)"
/> />
</h1> </h1>
</div> </div>
<group> <group>
<group name="partner"> <group name="partner">
<field <field
name="partner_id" name="partner_id"
context="{'res_partner_search_mode': 'customer'}" context="{'res_partner_search_mode': 'customer'}"
string="Customer" string="Customer"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<field <field
name="delivery_address_id" name="delivery_address_id"
domain="['|', ('parent_id', '=', partner_id), domain="['|', ('parent_id', '=', partner_id),
('id', '=', partner_id)]" ('id', '=', partner_id)]"
@@ -185,25 +187,25 @@
groups='rma.group_rma_delivery_invoice_address' groups='rma.group_rma_delivery_invoice_address'
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
</group>
<group>
<group name="contact">
<field name="date_rma" />
<field name="requested_by" readonly="1" />
<field name="assigned_to" />
<field name="type" invisible="1" />
</group>
</group>
</group> </group>
<group> <group>
<group name="product" string="Product"> <group name="contact">
<field <field name="date_rma" />
<field name="requested_by" readonly="1" />
<field name="assigned_to" />
<field name="type" invisible="1" />
</group>
</group>
</group>
<group>
<group name="product" string="Product">
<field
name="product_id" name="product_id"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<newline /> <newline />
<field name="product_tracking" invisible="1" /> <field name="product_tracking" invisible="1" />
<field <field
name="lot_id" name="lot_id"
groups="stock.group_production_lot" groups="stock.group_production_lot"
required="product_tracking in ('serial', 'lot')" required="product_tracking in ('serial', 'lot')"
@@ -211,29 +213,29 @@
domain="[('product_id', '=', product_id)]" domain="[('product_id', '=', product_id)]"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<field <field
name="under_warranty" name="under_warranty"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
</group> </group>
<group name="product_qty" string="Quantity"> <group name="product_qty" string="Quantity">
<field <field
name="product_qty" name="product_qty"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<field <field
name="uom_id" name="uom_id"
groups="uom.group_uom" groups="uom.group_uom"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<field <field
name="price_unit" name="price_unit"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
</group>
</group> </group>
<group name="main_info" string="Origin"> </group>
<field <group name="main_info" string="Origin">
<field
name="reference_move_id" name="reference_move_id"
options="{'no_create': True}" options="{'no_create': True}"
domain="[('picking_id.partner_id', '=', partner_id), domain="[('picking_id.partner_id', '=', partner_id),
@@ -241,70 +243,70 @@
('state', '=', 'done')]" ('state', '=', 'done')]"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
</group> </group>
<group> <group>
<group name="operation" string="Operation"> <group name="operation" string="Operation">
<field <field
name="operation_id" name="operation_id"
domain="[('type','=','customer')]" domain="[('type','=','customer')]"
/> />
<field name="receipt_policy" /> <field name="receipt_policy" />
<field name="delivery_policy" /> <field name="delivery_policy" />
</group>
<group name="description" string="Description">
<field name="description" nolabel="1" colspan="4" />
</group>
</group> </group>
<notebook> <group name="description" string="Description">
<page name="quantities" string="Quantities"> <field name="description" nolabel="1" colspan="4" />
<group name="quantities" col="4" string="Quantities"> </group>
<group </group>
<notebook>
<page name="quantities" string="Quantities">
<group name="quantities" col="4" string="Quantities">
<group
name="receive" name="receive"
invisible="receipt_policy == 'no'" invisible="receipt_policy == 'no'"
> >
<field name="qty_to_receive" /> <field name="qty_to_receive" />
<field name="qty_incoming" /> <field name="qty_incoming" />
<field name="qty_received" /> <field name="qty_received" />
</group> </group>
<group <group
name="deliver" name="deliver"
invisible="delivery_policy == 'no'" invisible="delivery_policy == 'no'"
> >
<field name="qty_to_deliver" /> <field name="qty_to_deliver" />
<field name="qty_outgoing" /> <field name="qty_outgoing" />
<field name="qty_delivered" /> <field name="qty_delivered" />
</group> </group>
<group <group
name="supplier_rma" name="supplier_rma"
invisible="type != 'customer' or not customer_to_supplier" invisible="type != 'customer' or not customer_to_supplier"
> >
<field name="qty_to_supplier_rma" /> <field name="qty_to_supplier_rma" />
<field name="qty_in_supplier_rma" /> <field name="qty_in_supplier_rma" />
</group>
</group> </group>
</page> </group>
<page name="route" string="Routes"> </page>
<group name="inbound" string="Inbound"> <page name="route" string="Routes">
<field <group name="inbound" string="Inbound">
<field
name="in_warehouse_id" name="in_warehouse_id"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<field <field
name="location_id" name="location_id"
domain="[('usage', '=', 'internal')]" domain="[('usage', '=', 'internal')]"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<field <field
name="in_route_id" name="in_route_id"
groups="stock.group_adv_location" groups="stock.group_adv_location"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<field <field
name="customer_to_supplier" name="customer_to_supplier"
invisible="type != 'customer'" invisible="type != 'customer'"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<field <field
name="supplier_address_id" name="supplier_address_id"
context="{'show_address': 1}" context="{'show_address': 1}"
options="{'always_reload': 1}" options="{'always_reload': 1}"
@@ -312,23 +314,23 @@
invisible="customer_to_supplier == False" invisible="customer_to_supplier == False"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
</group> </group>
<group name="outbound" string="Outbound"> <group name="outbound" string="Outbound">
<field <field
name="out_warehouse_id" name="out_warehouse_id"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<field <field
name="out_route_id" name="out_route_id"
groups="stock.group_adv_location" groups="stock.group_adv_location"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<field <field
name="supplier_to_customer" name="supplier_to_customer"
invisible="type != 'supplier'" invisible="type != 'supplier'"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
<field <field
name="customer_address_id" name="customer_address_id"
context="{'show_address': 1}" context="{'show_address': 1}"
options="{'always_reload': 1}" options="{'always_reload': 1}"
@@ -336,212 +338,200 @@
invisible="supplier_to_customer == False" invisible="supplier_to_customer == False"
readonly="state not in ['draft']" readonly="state not in ['draft']"
/> />
</group> </group>
</page> </page>
<page <page
name="stock" name="stock"
string="Stock Moves" string="Stock Moves"
invisible="not move_ids" invisible="not move_ids"
> >
<field name="move_ids" nolabel="1" readonly="1" /> <field name="move_ids" nolabel="1" readonly="1" />
</page> </page>
<page name="other" string="Other Info"> <page name="other" string="Other Info">
<group name="general" string="General"> <group name="general" string="General">
<field name="conditions" /> <field name="conditions" />
<field <field name="rma_id" groups="rma.group_rma_groups" />
name="rma_id" <field name="origin" />
groups="rma.group_rma_groups" </group>
/> <group
<field name="origin" />
</group>
<group
name="company" name="company"
string="Company" string="Company"
groups="base.group_multi_company" groups="base.group_multi_company"
> >
<field name="company_id" /> <field name="company_id" />
</group> </group>
</page> </page>
</notebook> </notebook>
</sheet> </sheet>
<div class="oe_chatter"> <chatter />
<field </form>
name="message_follower_ids" </field>
widget="mail_followers" </record>
groups="base.group_user"
/>
<field name="message_ids" widget="mail_thread" />
</div>
</form>
</field>
</record>
<record id="view_rma_line_supplier_form" model="ir.ui.view"> <record id="view_rma_line_supplier_form" model="ir.ui.view">
<field name="name">rma.order.line.supplier.form</field> <field name="name">rma.order.line.supplier.form</field>
<field name="model">rma.order.line</field> <field name="model">rma.order.line</field>
<field name="inherit_id" ref="rma.view_rma_line_form" /> <field name="inherit_id" ref="rma.view_rma_line_form" />
<field name="mode">primary</field> <field name="mode">primary</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath <xpath
expr="//button[@name='action_view_rma_lines']/field" expr="//button[@name='action_view_rma_lines']/field"
position="attributes" position="attributes"
> >
<attribute name="string">Customer RMA</attribute> <attribute name="string">Customer RMA</attribute>
</xpath> </xpath>
<field name="partner_id" position="attributes"> <field name="partner_id" position="attributes">
<attribute name="string">Supplier</attribute> <attribute name="string">Supplier</attribute>
<attribute <attribute
name="context" name="context"
>{'res_partner_search_mode': 'supplier'}</attribute> >{'res_partner_search_mode': 'supplier'}</attribute>
</field>
<field name="under_warranty" position="attributes">
<attribute name="invisible">1</attribute>
</field>
<field name="reference_move_id" position="attributes">
<attribute
name="domain"
>[('picking_id.partner_id', '=', partner_id),
('location_id.usage', '=', 'supplier'),
('state', '=', 'done')]</attribute>
</field>
<field name="operation_id" position="attributes">
<attribute name="domain">[('type','=','supplier')]</attribute>
</field>
</field> </field>
</record> <field name="under_warranty" position="attributes">
<attribute name="invisible">1</attribute>
</field>
<field name="reference_move_id" position="attributes">
<attribute name="domain">[('picking_id.partner_id', '=', partner_id),
('location_id.usage', '=', 'supplier'),
('state', '=', 'done')]</attribute>
</field>
<field name="operation_id" position="attributes">
<attribute name="domain">[('type','=','supplier')]</attribute>
</field>
</field>
</record>
<record id="view_rma_rma_line_filter" model="ir.ui.view"> <record id="view_rma_rma_line_filter" model="ir.ui.view">
<field name="name">rma.order.line.select</field> <field name="name">rma.order.line.select</field>
<field name="model">rma.order.line</field> <field name="model">rma.order.line</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Search RMA line"> <search string="Search RMA line">
<field name="name" /> <field name="name" />
<field name="rma_id" groups="rma.group_rma_groups" /> <field name="rma_id" groups="rma.group_rma_groups" />
<field name="partner_id" /> <field name="partner_id" />
<field name="requested_by" /> <field name="requested_by" />
<field name="assigned_to" /> <field name="assigned_to" />
<field name="product_id" /> <field name="product_id" />
<field name="lot_id" /> <field name="lot_id" />
<field name="date_rma" /> <field name="date_rma" />
<separator /> <separator />
<filter <filter
name="assigned_to_filter" name="assigned_to_filter"
domain="[('assigned_to','=',uid)]" domain="[('assigned_to','=',uid)]"
help="My RMAs" help="My RMAs"
/> />
<separator /> <separator />
<group name="stock_quantities" groups="stock.group_stock_user"> <group name="stock_quantities" groups="stock.group_stock_user">
<filter <filter
name="to_receive" name="to_receive"
domain="[('state','!=', 'done'),('qty_to_receive','>',0.0)]" domain="[('state','!=', 'done'),('qty_to_receive','>',0.0)]"
help="To Receive" help="To Receive"
/> />
<filter <filter
name="to_deliver" name="to_deliver"
domain="[('state','!=', 'done'),('qty_to_deliver','>',0.0)]" domain="[('state','!=', 'done'),('qty_to_deliver','>',0.0)]"
help="To Deliver" help="To Deliver"
/> />
</group> </group>
<group name="rma_supplier_quantities"> <group name="rma_supplier_quantities">
<filter <filter
name="to_send_to_supplier" name="to_send_to_supplier"
domain="[('state','!=', 'done'),('qty_to_supplier_rma','>',0.0)]" domain="[('state','!=', 'done'),('qty_to_supplier_rma','>',0.0)]"
help="To Send to Supplier RMA" help="To Send to Supplier RMA"
/> />
</group> </group>
<group expand="0" string="Group By"> <group expand="0" string="Group By">
<filter <filter
name="status" name="status"
string="State" string="State"
domain="[]" domain="[]"
context="{'group_by':'state'}" context="{'group_by':'state'}"
/> />
<filter <filter
name="partner" name="partner"
string="Partner" string="Partner"
domain="[]" domain="[]"
context="{'group_by':'partner_id'}" context="{'group_by':'partner_id'}"
/> />
<filter <filter
name="operation" name="operation"
string="Operation" string="Operation"
domain="[]" domain="[]"
context="{'group_by':'operation_id'}" context="{'group_by':'operation_id'}"
/> />
<filter <filter
name="product" name="product"
string="Product" string="Product"
domain="[]" domain="[]"
context="{'group_by':'product_id'}" context="{'group_by':'product_id'}"
/> />
<filter <filter
name="to_receive" name="to_receive"
string="To Receive" string="To Receive"
domain="[('qty_to_receive', '>', 0)]" domain="[('qty_to_receive', '>', 0)]"
context="{'group_by':'partner_id'}" context="{'group_by':'partner_id'}"
/> />
<filter <filter
name="to_deliver" name="to_deliver"
string="To Deliver" string="To Deliver"
domain="[('qty_to_deliver', '>', 0)]" domain="[('qty_to_deliver', '>', 0)]"
context="{'group_by':'partner_id'}" context="{'group_by':'partner_id'}"
/> />
</group> </group>
</search> </search>
</field> </field>
</record> </record>
<record id="action_rma_customer_lines" model="ir.actions.act_window"> <record id="action_rma_customer_lines" model="ir.actions.act_window">
<field name="name">Customer RMA</field> <field name="name">Customer RMA</field>
<field name="res_model">rma.order.line</field> <field name="res_model">rma.order.line</field>
<field name="domain">[('type','=', 'customer')]</field> <field name="domain">[('type','=', 'customer')]</field>
<field name="context">{"search_default_assigned_to_filter":1}</field> <field name="context">{"search_default_assigned_to_filter":1}</field>
<field name="view_mode">tree,form</field> <field name="view_mode">list,form</field>
<field name="view_id" ref="view_rma_line_tree" /> <field name="view_id" ref="view_rma_line_tree" />
</record> </record>
<record id="action_rma_supplier_lines" model="ir.actions.act_window"> <record id="action_rma_supplier_lines" model="ir.actions.act_window">
<field name="name">Supplier RMA</field> <field name="name">Supplier RMA</field>
<field name="res_model">rma.order.line</field> <field name="res_model">rma.order.line</field>
<field name="domain">[('type','=', 'supplier')]</field> <field name="domain">[('type','=', 'supplier')]</field>
<field <field
name="context" name="context"
>{"search_default_assigned_to_filter":1, "supplier":1}</field> >{"search_default_assigned_to_filter":1, "supplier":1}</field>
<field name="view_mode">tree,form</field> <field name="view_mode">list,form</field>
<field name="view_id" ref="view_rma_line_supplier_tree" /> <field name="view_id" ref="view_rma_line_supplier_tree" />
</record> </record>
<record id="action_rma_line_supplier_tree" model="ir.actions.act_window.view"> <record id="action_rma_line_supplier_tree" model="ir.actions.act_window.view">
<field eval="3" name="sequence" /> <field eval="3" name="sequence" />
<field name="view_mode">tree</field> <field name="view_mode">list</field>
<field name="act_window_id" ref="action_rma_supplier_lines" /> <field name="act_window_id" ref="action_rma_supplier_lines" />
</record> </record>
<record id="action_rma_line_supplier_form" model="ir.actions.act_window.view"> <record id="action_rma_line_supplier_form" model="ir.actions.act_window.view">
<field eval="4" name="sequence" /> <field eval="4" name="sequence" />
<field name="view_mode">form</field> <field name="view_mode">form</field>
<field name="view_id" ref="view_rma_line_supplier_form" /> <field name="view_id" ref="view_rma_line_supplier_form" />
<field name="act_window_id" ref="action_rma_supplier_lines" /> <field name="act_window_id" ref="action_rma_supplier_lines" />
</record> </record>
<record model="ir.actions.server" id="action_request_approve_rma_order_line"> <record model="ir.actions.server" id="action_request_approve_rma_order_line">
<field name="name">Request Approval</field> <field name="name">Request Approval</field>
<field name="model_id" ref="rma.model_rma_order_line" /> <field name="model_id" ref="rma.model_rma_order_line" />
<field name="binding_model_id" ref="rma.model_rma_order_line" /> <field name="binding_model_id" ref="rma.model_rma_order_line" />
<field name="state">code</field> <field name="state">code</field>
<field name="code"> <field name="code">
if records.filtered(lambda x: x.state == "draft"): if records.filtered(lambda x: x.state == "draft"):
records.filtered(lambda x: x.state == "draft").action_rma_to_approve() records.filtered(lambda x: x.state == "draft").action_rma_to_approve()
</field> </field>
</record> </record>
<record model="ir.actions.server" id="action_request_cancel_rma_order_line"> <record model="ir.actions.server" id="action_request_cancel_rma_order_line">
<field name="name">Cancel</field> <field name="name">Cancel</field>
<field name="model_id" ref="rma.model_rma_order_line" /> <field name="model_id" ref="rma.model_rma_order_line" />
<field name="binding_model_id" ref="rma.model_rma_order_line" /> <field name="binding_model_id" ref="rma.model_rma_order_line" />
<field name="state">code</field> <field name="state">code</field>
<field name="code"> <field name="code">
records.action_rma_cancel() records.action_rma_cancel()
</field> </field>
</record> </record>
</odoo> </odoo>

View File

@@ -1,30 +1,30 @@
<?xml version="1.0" ?> <?xml version="1.0" ?>
<odoo> <odoo>
<record id="view_rma_tree" model="ir.ui.view"> <record id="view_rma_tree" model="ir.ui.view">
<field name="name">rma.order.tree</field> <field name="name">rma.order.list</field>
<field name="model">rma.order</field> <field name="model">rma.order</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree name="RMA"> <list name="RMA">
<field name="name" /> <field name="name" />
<field name="reference" /> <field name="reference" />
<field name="partner_id" groups="base.group_user" string="Customer" /> <field name="partner_id" groups="base.group_user" string="Customer" />
<field name="date_rma" /> <field name="date_rma" />
<field name="state" /> <field name="state" />
</tree> </list>
</field> </field>
</record> </record>
<record id="view_rma_supplier_tree" model="ir.ui.view"> <record id="view_rma_supplier_tree" model="ir.ui.view">
<field name="name">rma.order.supplier.tree</field> <field name="name">rma.order.supplier.list</field>
<field name="model">rma.order</field> <field name="model">rma.order</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree name="RMA"> <list name="RMA">
<field name="name" /> <field name="name" />
<field name="reference" /> <field name="reference" />
<field name="partner_id" groups="base.group_user" string="Supplier" /> <field name="partner_id" groups="base.group_user" string="Supplier" />
<field name="date_rma" /> <field name="date_rma" />
<field name="state" /> <field name="state" />
</tree> </list>
</field> </field>
</record> </record>
@@ -33,8 +33,8 @@
<field name="model">rma.order</field> <field name="model">rma.order</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<form string="RMA"> <form string="RMA">
<header> <header>
<button <button
name="action_rma_to_approve" name="action_rma_to_approve"
type="object" type="object"
string="Request Approval" string="Request Approval"
@@ -42,14 +42,14 @@
class="oe_highlight" class="oe_highlight"
groups="rma.group_rma_customer_user" groups="rma.group_rma_customer_user"
/> />
<button <button
name="action_rma_draft" name="action_rma_draft"
type="object" type="object"
string="Back to Draft" string="Back to Draft"
invisible="state == 'draft'" invisible="state == 'draft'"
groups="rma.group_rma_customer_user,rma.group_rma_supplier_user" groups="rma.group_rma_customer_user,rma.group_rma_supplier_user"
/> />
<button <button
name="action_rma_approve" name="action_rma_approve"
type="object" type="object"
string="Approve" string="Approve"
@@ -57,72 +57,76 @@
class="oe_highlight" class="oe_highlight"
groups="rma.group_rma_manager" groups="rma.group_rma_manager"
/> />
<button <button
name="action_rma_approve" name="action_rma_approve"
type="object" type="object"
string="Back to Approved" string="Back to Approved"
invisible="state != 'done'" invisible="state != 'done'"
groups="rma.group_rma_customer_user" groups="rma.group_rma_customer_user"
/> />
<button <button
name="action_rma_done" name="action_rma_done"
type="object" type="object"
string="Done" string="Done"
invisible="state in ('done', 'draft', 'cancel')" invisible="state in ('done', 'draft', 'cancel')"
groups="rma.group_rma_customer_user" groups="rma.group_rma_customer_user"
/> />
<button <button
name="action_rma_cancel" name="action_rma_cancel"
type="object" type="object"
string="Cancel" string="Cancel"
invisible="state in ('done', 'cancel')" invisible="state in ('done', 'cancel')"
groups="rma.group_rma_customer_user" groups="rma.group_rma_customer_user"
/> />
<field <field
name="state" name="state"
widget="statusbar" widget="statusbar"
statusbar_visible="draft,to_approve,approved,done" statusbar_visible="draft,to_approve,approved,done"
nolabel="1" nolabel="1"
/> />
</header> </header>
<sheet name='rma' string="RMA"> <sheet name='rma' string="RMA">
<div class="oe_button_box" name="button_box"> <div class="oe_button_box" name="button_box">
<button <button
type="object" type="object"
name="action_view_in_shipments" name="action_view_in_shipments"
class="oe_stat_button" class="oe_stat_button"
icon="fa-truck" icon="fa-truck"
groups="stock.group_stock_user" groups="stock.group_stock_user"
> >
<field <field
name="in_shipment_count" name="in_shipment_count"
widget="statinfo" widget="statinfo"
string="Shipments" string="Shipments"
/> />
</button> </button>
<button <button
type="object" type="object"
name="action_view_out_shipments" name="action_view_out_shipments"
class="oe_stat_button" class="oe_stat_button"
icon="fa-truck" icon="fa-truck"
groups="stock.group_stock_user" groups="stock.group_stock_user"
> >
<field <field
name="out_shipment_count" name="out_shipment_count"
widget="statinfo" widget="statinfo"
string="Deliveries" string="Deliveries"
/> />
</button> </button>
<button <button
type="object" type="object"
name="action_view_lines" name="action_view_lines"
class="oe_stat_button" class="oe_stat_button"
icon="fa-list" icon="fa-list"
groups="rma.group_rma_customer_user" groups="rma.group_rma_customer_user"
> >
<field name="line_count" widget="statinfo" string="RMA Lines" /> <field
</button> name="line_count"
<button widget="statinfo"
string="RMA Lines"
/>
</button>
<button
type="object" type="object"
name="action_view_supplier_lines" name="action_view_supplier_lines"
class="oe_stat_button" class="oe_stat_button"
@@ -130,61 +134,64 @@
icon="fa-list" icon="fa-list"
groups="rma.group_rma_supplier_user" groups="rma.group_rma_supplier_user"
> >
<field <field
name="supplier_line_count" name="supplier_line_count"
widget="statinfo" widget="statinfo"
string="Rel. RMA Lines" string="Rel. RMA Lines"
/> />
</button> </button>
</div> </div>
<div class="oe_title" name="title"> <div class="oe_title" name="title">
<h1> <h1>
<field name="name" readonly="1" /> <field name="name" readonly="1" />
</h1> </h1>
</div> </div>
<group> <group>
<group name="info"> <group name="info">
<field name="type" readonly="1" invisible="1" /> <field name="type" readonly="1" invisible="1" />
<field <field
name="partner_id" name="partner_id"
context="{'res_partner_search_mode': 'customer'}" context="{'res_partner_search_mode': 'customer'}"
string="Customer" string="Customer"
/> />
<field name="reference" invisible="type != 'supplier'" /> <field name="reference" invisible="type != 'supplier'" />
<field name="date_rma" readonly="state != 'draft'" /> <field name="date_rma" readonly="state != 'draft'" />
</group>
<group name="contact">
<field name="requested_by" readonly="1" />
<field name="assigned_to" readonly="state != 'draft'" />
<field
name="company_id"
groups="base.group_multi_company"
/>
</group>
</group> </group>
<group name="contact"> <group>
<field name="requested_by" readonly="1" /> <group name="inbound_route" string="Inbound">
<field name="assigned_to" readonly="state != 'draft'" /> <field
<field name="company_id" groups="base.group_multi_company" />
</group>
</group>
<group>
<group name="inbound_route" string="Inbound">
<field
name="operation_default_id" name="operation_default_id"
domain="[('type','=','customer')]" domain="[('type','=','customer')]"
/> />
<field name="in_warehouse_id" readonly="state != 'draft'" /> <field name="in_warehouse_id" readonly="state != 'draft'" />
<field name="in_route_id" readonly="state != 'draft'" /> <field name="in_route_id" readonly="state != 'draft'" />
<field <field
name="out_warehouse_id" name="out_warehouse_id"
invisible="1" invisible="1"
readonly="state != 'draft'" readonly="state != 'draft'"
/> />
<field name="location_id" readonly="state != 'draft'" /> <field name="location_id" readonly="state != 'draft'" />
<field <field
name="out_route_id" name="out_route_id"
invisible="1" invisible="1"
readonly="state != 'draft'" readonly="state != 'draft'"
/> />
<field <field
name="customer_to_supplier" name="customer_to_supplier"
readonly="state != 'draft'" readonly="state != 'draft'"
invisible="type != 'customer'" invisible="type != 'customer'"
/> />
<field name="state" invisible="1" /> <field name="state" invisible="1" />
<field <field
name="supplier_address_id" name="supplier_address_id"
context="{'show_address': 1}" context="{'show_address': 1}"
options="{'always_reload': 1}" options="{'always_reload': 1}"
@@ -192,74 +199,80 @@
invisible="customer_to_supplier == False" invisible="customer_to_supplier == False"
readonly="state != 'draft'" readonly="state != 'draft'"
/> />
</group>
</group> </group>
</group> <group>
<group> <group name="comments" string="Description" colspan="2">
<group name="comments" string="Description" colspan="2"> <field
<field
name="description" name="description"
placeholder="This description will be copied to RMA lines." placeholder="This description will be copied to RMA lines."
/> />
<field <field
name="comment" name="comment"
placeholder="Additional information will be printed in RMA group report." placeholder="Additional information will be printed in RMA group report."
/> />
</group>
</group> </group>
</group> <notebook colspan="4">
<notebook colspan="4"> <page string="RMA Lines" name="lines">
<page string="RMA Lines" name="lines"> <field
<field
name="rma_line_ids" name="rma_line_ids"
context="{'default_rma_id': id, context="{'default_rma_id': id,'default_partner_id': partner_id,'hide_title': True}"
'default_partner_id': partner_id,
'hide_title': True}"
> >
<tree <list
name="lines" name="lines"
editable="bottom" editable="bottom"
default_order="id asc" default_order="id asc"
create="0" create="0"
> >
<field name="sequence" widget="handle" /> <field name="sequence" widget="handle" />
<field name="partner_id" invisible="True" /> <field name="partner_id" invisible="True" />
<field name="product_id" /> <field name="product_id" />
<field <field
name="lot_id" name="lot_id"
groups="stock.group_production_lot" groups="stock.group_production_lot"
domain="[('product_id', '=', product_id)]" domain="[('product_id', '=', product_id)]"
context="{'default_product_id': product_id}" context="{'default_product_id': product_id}"
/> />
<field name="name" /> <field name="name" />
<field name="uom_id" groups="uom.group_uom" /> <field name="uom_id" groups="uom.group_uom" />
<field name="operation_id" /> <field name="operation_id" />
<field name="location_id" invisible="True" /> <field name="location_id" invisible="True" />
<field name="in_route_id" invisible="True" /> <field name="in_route_id" invisible="True" />
<field name="out_route_id" invisible="True" /> <field name="out_route_id" invisible="True" />
<field name="in_warehouse_id" invisible="True" /> <field name="in_warehouse_id" invisible="True" />
<field name="out_warehouse_id" invisible="True" /> <field name="out_warehouse_id" invisible="True" />
<field name="customer_to_supplier" invisible="True" /> <field
<field name="supplier_address_id" invisible="True" /> name="customer_to_supplier"
<field name="supplier_to_customer" invisible="True" /> invisible="True"
<field name="customer_address_id" invisible="True" /> />
<field name="receipt_policy" invisible="True" /> <field
<field name="delivery_policy" invisible="True" /> name="supplier_address_id"
<field name="delivery_address_id" invisible="True" /> invisible="True"
<field name="product_qty" /> />
<field name="price_unit" /> <field
<field name="state" /> name="supplier_to_customer"
</tree> invisible="True"
</field> />
</page> <field
</notebook> name="customer_address_id"
</sheet> invisible="True"
<div class="oe_chatter"> />
<field <field name="receipt_policy" invisible="True" />
name="message_follower_ids" <field name="delivery_policy" invisible="True" />
widget="mail_followers" <field
groups="base.group_user" name="delivery_address_id"
/> invisible="True"
<field name="message_ids" widget="mail_thread" /> />
</div> <field name="product_qty" />
<field name="price_unit" />
<field name="state" />
</list>
</field>
</page>
</notebook>
</sheet>
<chatter />
</form> </form>
</field> </field>
</record> </record>
@@ -342,7 +355,7 @@
context="{'group_by':'date_rma'}" context="{'group_by':'date_rma'}"
/> />
</group> </group>
</search> </search>
</field> </field>
</record> </record>
@@ -351,7 +364,7 @@
<field name="res_model">rma.order</field> <field name="res_model">rma.order</field>
<field name="domain">[('type','=', 'customer')]</field> <field name="domain">[('type','=', 'customer')]</field>
<field name="context">{'customer':1}</field> <field name="context">{'customer':1}</field>
<field name="view_mode">tree,form</field> <field name="view_mode">list,form</field>
<field name="view_id" ref="view_rma_tree" /> <field name="view_id" ref="view_rma_tree" />
</record> </record>
@@ -360,13 +373,13 @@
<field name="res_model">rma.order</field> <field name="res_model">rma.order</field>
<field name="domain">[('type','=', 'supplier')]</field> <field name="domain">[('type','=', 'supplier')]</field>
<field name="context">{'supplier':1}</field> <field name="context">{'supplier':1}</field>
<field name="view_mode">tree,form</field> <field name="view_mode">list,form</field>
<field name="view_id" ref="view_rma_supplier_tree" /> <field name="view_id" ref="view_rma_supplier_tree" />
</record> </record>
<record id="action_rma_supplier_tree" model="ir.actions.act_window.view"> <record id="action_rma_supplier_tree" model="ir.actions.act_window.view">
<field eval="1" name="sequence" /> <field eval="1" name="sequence" />
<field name="view_mode">tree</field> <field name="view_mode">list</field>
<field name="act_window_id" ref="action_rma_supplier" /> <field name="act_window_id" ref="action_rma_supplier" />
</record> </record>

View File

@@ -30,7 +30,7 @@
<field name="inherit_id" ref="stock.view_picking_form" /> <field name="inherit_id" ref="stock.view_picking_form" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath <xpath
expr="//page[@name='operations']/field[@name='move_ids_without_package']/tree" expr="//page[@name='operations']/field[@name='move_ids_without_package']/list"
position="inside" position="inside"
> >
<field name="rma_line_id" optional="hide" invisible="not rma_line_id" /> <field name="rma_line_id" optional="hide" invisible="not rma_line_id" />

View File

@@ -9,8 +9,11 @@
<field name="partner_id" string="Customer" /> <field name="partner_id" string="Customer" />
</group> </group>
<separator string="Select Stock Moves to add" /> <separator string="Select Stock Moves to add" />
<field name="move_ids"> <field
<tree> name="move_ids"
domain="[('picking_id.partner_id', '=', partner_id)]"
>
<list>
<field name="product_id" /> <field name="product_id" />
<field name="product_uom_qty" /> <field name="product_uom_qty" />
<field <field
@@ -30,12 +33,13 @@
<field name="create_date" groups="base.group_no_one" /> <field name="create_date" groups="base.group_no_one" />
<field name="date" string="Date" groups="base.group_no_one" /> <field name="date" string="Date" groups="base.group_no_one" />
<field name="state" /> <field name="state" />
</tree> </list>
</field> </field>
<field name="show_lot_filter" invisible="1" /> <field name="show_lot_filter" invisible="1" />
<field name="lot_domain_ids" widget="many2many_tags" invisible="1" /> <field name="lot_domain_ids" widget="many2many_tags" invisible="1" />
<div class="oe_grey" invisible="show_lot_filter == False"> <div class="oe_grey" invisible="show_lot_filter == False">
The creation of the RMA Lines will be separated according to the lots or serials selected The creation of the RMA Lines will be separated according to the lots or serials
selected
</div> </div>
<div class="o_row"> <div class="o_row">
<label <label
@@ -64,9 +68,7 @@
name="add_lines" name="add_lines"
type="object" type="object"
class="oe_highlight" class="oe_highlight"
/> /> or <button
or
<button
name="action_cancel" name="action_cancel"
string="Cancel" string="Cancel"
class="oe_link" class="oe_link"
@@ -146,9 +148,7 @@
name="add_lines" name="add_lines"
type="object" type="object"
class="oe_highlight" class="oe_highlight"
/> /> or <button
or
<button
name="action_cancel" name="action_cancel"
string="Cancel" string="Cancel"
class="oe_link" class="oe_link"

View File

@@ -151,7 +151,7 @@ class RmaMakePicking(models.TransientModel):
qty = item.qty_to_deliver qty = item.qty_to_deliver
values = self._get_procurement_data(item, group, qty, picking_type) values = self._get_procurement_data(item, group, qty, picking_type)
product = item.line_id.product_id product = item.line_id.product_id
if float_compare(qty, 0, product.uom_id.rounding) != 1: if float_compare(qty, 0, precision_rounding=product.uom_id.rounding) != 1:
raise ValidationError( raise ValidationError(
_( _(
"No quantity to transfer on %(arg1)s shipment of product %(arg2)s.", "No quantity to transfer on %(arg1)s shipment of product %(arg2)s.",

View File

@@ -7,7 +7,7 @@
<form string="Select lines for picking" name="lines"> <form string="Select lines for picking" name="lines">
<separator string="Select lines for picking" /> <separator string="Select lines for picking" />
<field name="item_ids"> <field name="item_ids">
<tree name="RMA Lines" editable="bottom" create="false"> <list name="RMA Lines" editable="bottom" create="false">
<field <field
name="rma_id" name="rma_id"
groups="rma.group_rma_groups" groups="rma.group_rma_groups"
@@ -18,7 +18,7 @@
<field name="line_id" invisible="1" /> <field name="line_id" invisible="1" />
<field name="uom_id" groups="uom.group_uom" readonly="1" /> <field name="uom_id" groups="uom.group_uom" readonly="1" />
<field name="qty_to_receive" readonly="0" /> <field name="qty_to_receive" readonly="0" />
</tree> </list>
</field> </field>
<footer> <footer>
<button <button
@@ -46,14 +46,14 @@
<form string="Select lines for picking" name="lines"> <form string="Select lines for picking" name="lines">
<separator string="Select lines for picking" /> <separator string="Select lines for picking" />
<field name="item_ids"> <field name="item_ids">
<tree name="RMA Lines" editable="bottom" create="false"> <list name="RMA Lines" editable="bottom" create="false">
<field name="rma_id" groups="rma.group_rma_groups" /> <field name="rma_id" groups="rma.group_rma_groups" />
<field name="product_id" /> <field name="product_id" />
<field name="product_qty" /> <field name="product_qty" />
<field name="line_id" invisible="1" /> <field name="line_id" invisible="1" />
<field name="uom_id" groups="uom.group_uom" /> <field name="uom_id" groups="uom.group_uom" />
<field name="qty_to_deliver" readonly="0" /> <field name="qty_to_deliver" readonly="0" />
</tree> </list>
</field> </field>
<footer> <footer>
<button <button

View File

@@ -25,14 +25,14 @@
<newline /> <newline />
<group> <group>
<field name="item_ids" nolabel="1" colspan="2"> <field name="item_ids" nolabel="1" colspan="2">
<tree name="Details" editable="bottom" create="false"> <list name="Details" editable="bottom" create="false">
<field name="line_id" options="{'no_open': true}" /> <field name="line_id" options="{'no_open': true}" />
<field name="product_id" /> <field name="product_id" />
<field name="name" /> <field name="name" />
<field name="operation_id" /> <field name="operation_id" />
<field name="product_qty" /> <field name="product_qty" />
<field name="uom_id" groups="uom.group_uom" /> <field name="uom_id" groups="uom.group_uom" />
</tree> </list>
</field> </field>
</group> </group>
<newline /> <newline />