Merge pull request #87 from cyrilgdn/crm_rma_stock_location

crm_rma_stock_location: Migration V9
This commit is contained in:
Guewen Baconnier
2016-08-26 08:31:13 +02:00
committed by GitHub
41 changed files with 3232 additions and 374 deletions

View File

@@ -0,0 +1,101 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
==================
RMA Stock Location
==================
Allow the user to know how much for a product is available 'On Hand' and how much
is virtually (expected to be) available for RMA locations. Adding for the
different product views (Tree, Form and Kanban) information about it.
Both quantities are computed and include its children locations.
It is useful to use it as a quick snapshot for RMA from product perspective.
It also adds the following location on warehouses :
* Loss
* Refurbished
Several wizards on incoming deliveries that allow you to move your
goods easily in those new locations from a done reception.
Using this module make the logistic flow of return a bit more complex:
* Returning product goes into RMA location with a incoming shipment
* From the incoming shipment, forward them to another places (stock, loss, refurbish)
Installation
============
To install this module, just select it from availables modules.
Configuration
=============
No configuration is needed
Usage
=====
* Go to Sales > After-sale Services and note that 'RMA Quantity On Hand' and
'RMA Forecasted Quantity' has been included and they'll be shown when at least
when a product has either on hand or forecasted quantities available.
* In the other hand, it provides three wizards to make stock moves (transfers)
allowing to do product returns (incoming), send a product to loss or, to a refurbished
location.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/145/9.0
For further information, please visit:
* https://www.odoo.com/forum/help-1
Known issues / Roadmap
======================
* Optimization is possible when searching virtual quantities in the search function
Bug Tracker
===========
Bugs are tracked on `GitHub Issues
<https://github.com/OCA/rma/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smashing it by providing a detailed and welcomed feedback.
Credits
=======
Images
------
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.
Contributors
------------
* Guewen Baconnier <guewen.baconnier@camptocamp.com>
* Yanina Aular <yanina.aular@vauxoo.com>
* Osval Reyes <osval@vauxoo.com>
* Cyril Gaudin <cyril.gaudin@camptocamp.com>
Maintainer
----------
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
To contribute to this module, please visit https://odoo-community.org.

View File

@@ -1,23 +1,5 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Guewen Baconnier
# Copyright 2014 Camptocamp SA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import stock_warehouse
from . import product
from . import models
from . import wizards
from .init_hooks import post_init_hook

View File

@@ -1,49 +1,44 @@
# -*- coding: utf-8 -*-
##############################################################################
# Author: Guewen Baconnier,
# Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
# Joel Grand-Guillaume,
# Yanina Aular, Osval Reyes
#
# Author: Guewen Baconnier
# Copyright 2014 Camptocamp SA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# © 2009-2013 Akretion
# © 2014-2016 Camptocamp SA
# © 2015 Vauxoo
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{'name': 'RMA Stock Location',
'version': '1.0',
'author': "Camptocamp,Odoo Community Association (OCA)",
'maintainer': 'Camptocamp',
'license': 'AGPL-3',
'category': 'Generic Modules/CRM & SRM',
'depends': ['stock',
'procurement',
],
'description': """
RMA Stock Location
==================
A RMA location can be selected on the warehouses.
The product views displays the quantity available and virtual in this
RMA location (including the children locations).
""",
'website': 'http://www.camptocamp.com',
'data': ['stock_data.xml',
'stock_warehouse_view.xml',
'product_view.xml',
],
'test': ['test/quantity.yml',
],
'installable': False,
'auto_install': False,
}
{
'name': 'RMA Stock Location',
'version': '9.0.1.0.0',
'author': "Akretion,Vauxoo,Camptocamp,Odoo Community Association (OCA)",
'maintainer': 'Camptocamp',
'website': 'http://www.camptocamp.com,http://www.vauxoo.com',
'license': 'AGPL-3',
'category': 'Generic Modules/CRM & SRM',
'depends': [
'crm_claim_rma',
'crm_claim',
'stock_account',
'procurement',
'crm_rma_location',
],
'data': [
'wizards/claim_make_picking_from_picking_view.xml',
'wizards/claim_make_picking_view.xml',
'views/product_product.xml',
'views/product_template.xml',
'views/crm_claim.xml',
'views/stock_picking.xml',
'views/stock_warehouse.xml',
],
'demo': [
'demo/stock_location.xml',
'demo/stock_inventory.xml',
],
'post_init_hook': 'post_init_hook',
'installable': True,
'auto_install': False,
}

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="rma_stock_location_move_01" model="stock.move">
<field name="name">Demo Stock Move: Customer > RMA</field>
<field name="product_id" ref="product.product_product_24"/>
<field name="product_uom">1</field>
<field name="product_uom_qty">1000</field>
<field name="company_id" ref="base.main_company"/>
<field name="priority">1</field> <!-- Normal -->
<field name="picking_type_id" ref="stock.picking_type_in"/>
<field name="location_id" ref="stock.stock_location_customers"/>
<field name="location_dest_id" search="[('name', '=', 'RMA'), ('location_id.name', '=', 'WH')]"/>
</record>
<record id="rma_stock_location_move_03" model="stock.move">
<field name="name">Demo Stock Move: RMA > Loss</field>
<field name="product_id" ref="product.product_product_24"/>
<field name="product_uom">1</field>
<field name="product_uom_qty">1000</field>
<field name="company_id" ref="base.main_company"/>
<field name="priority">1</field> <!-- Normal -->
<field name="picking_type_id" ref="stock.picking_type_internal"/>
<field name="location_id" search="[('name', '=', 'RMA'), ('location_id.name', '=', 'WH')]"/>
<field name="location_dest_id" ref="stock.stock_location_stock"/>
</record>
</odoo>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="location_rma" model="stock.location">
<field name="name">RMA Demo</field>
<field name="usage">internal</field>
</record>
<record id="stock.stock_warehouse_shop0" model="stock.warehouse">
<field name="lot_rma_id" ref="location_rma"/>
</record>
<record id="location_rma_a" model="stock.location">
<field name="name">RMA - Box A</field>
<field name="location_id" ref="location_rma"/>
<field name="usage">internal</field>
</record>
<record id="location_rma_b" model="stock.location">
<field name="name">RMA - Box B</field>
<field name="location_id" ref="location_rma"/>
<field name="usage">internal</field>
</record>
<record id="product_socket" model="product.product">
<field name="name">Socket</field>
<field name="categ_id" ref="product.product_category_1"/>
<field name="standard_price">70.0</field>
<field name="list_price">100.0</field>
<field name="type">product</field>
<field name="uom_id" ref="product.product_uom_unit"/>
<field name="uom_po_id" ref="product.product_uom_unit"/>
</record>
</odoo>

View File

@@ -1,13 +1,13 @@
# Translation of OpenERP Server.
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_rma_stock_location
# * crm_rma_stock_location
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-12 11:27+0000\n"
"PO-Revision-Date: 2014-09-12 11:27+0000\n"
"POT-Creation-Date: 2015-11-25 21:48+0000\n"
"PO-Revision-Date: 2015-11-25 21:48+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -16,39 +16,221 @@ msgstr ""
"Plural-Forms: \n"
#. module: crm_rma_stock_location
#: model:ir.model.fields,field_description:crm_rma_stock_location.field_stock_warehouse_lot_rma_id
#: field:stock.warehouse,lot_rma_id:0
msgid "Location RMA"
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Cancel"
msgstr ""
#. module: crm_rma_stock_location
#: code:_description:0
#: model:ir.model,name:crm_rma_stock_location.model_product_product
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_loss_picking_from_claim_picking
msgid "Create Incoming Shipment to Breakage Loss Location"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_used_picking_from_claim_picking
msgid "Create Incoming Shipment to Refurbish Location"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_stock_picking_from_claim_picking
msgid "Create Incoming Shipment to Stock"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_claim_picking_loss
msgid "Create a Product Loss"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Create picking"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_uid:0
msgid "Created by"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_date:0
msgid "Created on"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:89
#: field:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Dest. Location"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,id:0
msgid "ID"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: crm_rma_stock_location
#: help:claim.make.picking.from.picking.wizard,picking_line_source_location:0
msgid "Source location where the returned products are"
msgstr ""
#. module: crm_rma_stock_location
#: help:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
msgid "Target location to send returned products"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Locations"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:62
#, python-format
msgid "Loss"
msgstr ""
#. module: crm_rma_stock_location
#: field:stock.warehouse,loss_loc_id:0
msgid "Loss Location"
msgstr ""
#. module: crm_rma_stock_location
#: view:crm.claim:crm_rma_stock_location.crm_claim_rma_form_view_loss
msgid "New Product Loss"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,picking_line_ids:0
msgid "Picking lines"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_product
msgid "Product"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.stock_location_rma
msgid "RMA"
#: model:ir.model,name:crm_rma_stock_location.model_product_template
msgid "Product Template"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model.fields,field_description:crm_rma_stock_location.field_product_product_rma_virtual_available
#: field:product.product,rma_virtual_available:0
#: view:product.product:crm_rma_stock_location.rma_product_product_tree_view
msgid "Product Variants"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to Loss"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to refurbish stock"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to stock"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_a
msgid "RMA - Box A"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_b
msgid "RMA - Box B"
msgstr ""
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Available Products"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma
msgid "RMA Demo"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:42
#, python-format
msgid "RMA Forecasted Quantity"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model.fields,field_description:crm_rma_stock_location.field_product_product_rma_qty_available
#: field:product.product,rma_qty_available:0
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Products"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:36
#, python-format
msgid "RMA Quantity On Hand"
msgstr ""
#. module: crm_rma_stock_location
#: code:_description:0
#: model:ir.model,name:crm_rma_stock_location.model_stock_warehouse
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:56
#, python-format
msgid "Refurbish"
msgstr ""
#. module: crm_rma_stock_location
#: field:stock.warehouse,lot_refurbish_id:0
msgid "Refurbish Location"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines for picking"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines to add in picking"
msgstr ""
#. module: crm_rma_stock_location
#: model:product.template,name:crm_rma_stock_location.product_socket_product_template
msgid "Socket"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:85
#: field:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source Location"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.rma_product_variant_action
#: model:ir.ui.menu,name:crm_rma_stock_location.menu_stock_rma
msgid "RMA Stock"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_stock_warehouse
msgid "Warehouse"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_wizard
msgid "Wizard to create pickings from claim lines"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_from_picking_wizard
msgid "Wizard to create pickings from picking lines"
msgstr ""

View File

@@ -0,0 +1,258 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_rma_stock_location
#
# Translators:
# Rudolf Schnapka <rs@techno-flex.de>, 2016
msgid ""
msgstr ""
"Project-Id-Version: rma (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-06 11:34+0000\n"
"PO-Revision-Date: 2016-05-03 15:37+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: German (http://www.transifex.com/oca/OCA-rma-8-0/language/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Cancel"
msgstr "Stornieren"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_loss_picking_from_claim_picking
msgid "Create Incoming Shipment to Breakage Loss Location"
msgstr "Lege Anlieferung an Bruch-/Verlustlagerort an"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_used_picking_from_claim_picking
msgid "Create Incoming Shipment to Refurbish Location"
msgstr "Lege Anlieferung in Aufarbeitungslagerort an"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_stock_picking_from_claim_picking
msgid "Create Incoming Shipment to Stock"
msgstr "Lege Anlieferung ins Lager an"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_claim_picking_loss
msgid "Create a Product Loss"
msgstr "Produktschwund anlegen"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Create picking"
msgstr "Kommissionierung anlegen"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_uid:0
msgid "Created by"
msgstr "Angelegt durch"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_date:0
msgid "Created on"
msgstr "Angelegt am"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:89
#: field:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Dest. Location"
msgstr "Ziel-Standort"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,display_name:0
msgid "Display Name"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,id:0
msgid "ID"
msgstr "ID"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,__last_update:0
msgid "Last Modified on"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_uid:0
msgid "Last Updated by"
msgstr "Zuletzt aktualisiert durch"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_date:0
msgid "Last Updated on"
msgstr "Zuletzt aktualisiert am"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Locations"
msgstr "Standorte"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:65
#, python-format
msgid "Loss"
msgstr "Schwund"
#. module: crm_rma_stock_location
#: field:stock.warehouse,loss_loc_id:0
msgid "Loss Location"
msgstr "Schwundlagerort"
#. module: crm_rma_stock_location
#: view:crm.claim:crm_rma_stock_location.crm_claim_rma_form_view_loss
msgid "New Product Loss"
msgstr "Neuer Produktschwund"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,picking_line_ids:0
msgid "Picking lines"
msgstr "Kommissionierpositionen"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_product
msgid "Product"
msgstr "Produkt"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_template
msgid "Product Template"
msgstr "Produktvorlage"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_product_tree_view
msgid "Product Variants"
msgstr "Produktvarianten"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to Loss"
msgstr "Produkt zu Schwund"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to refurbish stock"
msgstr "Produkt an Aufarbeitungsbestand"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to stock"
msgstr "Produkt an Lagerbestand"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_a
msgid "RMA - Box A"
msgstr "RMA - Box A"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_b
msgid "RMA - Box B"
msgstr "RMA - Box B"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Available Products"
msgstr "Verfügbare Produkte für RMA"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma
msgid "RMA Demo"
msgstr "RMA Demo"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:42
#: code:addons/crm_rma_stock_location/models/product_template.py:42
#: field:product.product,rma_virtual_available:0
#: field:product.template,rma_virtual_available:0
#, python-format
msgid "RMA Forecasted Quantity"
msgstr "RMA prognostizierte Menge"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Products"
msgstr "RMA-Produkte"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:36
#: code:addons/crm_rma_stock_location/models/product_template.py:36
#: field:product.product,rma_qty_available:0
#: field:product.template,rma_qty_available:0
#, python-format
msgid "RMA Quantity On Hand"
msgstr "RMA Freier Bestand"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.rma_product_variant_action
#: model:ir.ui.menu,name:crm_rma_stock_location.menu_stock_rma
msgid "RMA Stock"
msgstr "RMA-Bestand"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:56
#, python-format
msgid "Refurbish"
msgstr "Aufarbeiten"
#. module: crm_rma_stock_location
#: field:stock.warehouse,lot_refurbish_id:0
msgid "Refurbish Location"
msgstr "Aufarbeitungs-Standort"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines for picking"
msgstr "Positionen zur Kommissionierung auswählen"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines to add in picking"
msgstr "Wähle Positionen zur Kommissionierung"
#. module: crm_rma_stock_location
#: model:product.template,name:crm_rma_stock_location.product_socket_product_template
msgid "Socket"
msgstr "Stecker"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:85
#: field:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source Location"
msgstr "Herkunftsort"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:86
#: help:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source location where the returned products are"
msgstr "Herkunftsort wo die Retoure-Produkte sind"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:90
#: help:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Target location to send returned products"
msgstr "Zielort für Zustellung der Retoureprodukte"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_stock_warehouse
msgid "Warehouse"
msgstr "Warenlager"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_wizard
msgid "Wizard to create pickings from claim lines"
msgstr "Assistent, um Kommissionierungen aus Reklamationspositionen anzulegen"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_from_picking_wizard
msgid "Wizard to create pickings from picking lines"
msgstr "Assistent, um Kommissionierungen aus Kommissionspositionen anzulegen"

View File

@@ -0,0 +1,257 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_rma_stock_location
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: rma (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-06 11:34+0000\n"
"PO-Revision-Date: 2016-05-03 15:37+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: English (http://www.transifex.com/oca/OCA-rma-8-0/language/en/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Cancel"
msgstr "Cancel"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_loss_picking_from_claim_picking
msgid "Create Incoming Shipment to Breakage Loss Location"
msgstr "Create Incoming Shipment to Breakage Loss Location"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_used_picking_from_claim_picking
msgid "Create Incoming Shipment to Refurbish Location"
msgstr "Create Incoming Shipment to Refurbish Location"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_stock_picking_from_claim_picking
msgid "Create Incoming Shipment to Stock"
msgstr "Create Incoming Shipment to Stock"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_claim_picking_loss
msgid "Create a Product Loss"
msgstr "Create a Product Loss"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Create picking"
msgstr "Create picking"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_uid:0
msgid "Created by"
msgstr "Created by"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_date:0
msgid "Created on"
msgstr "Created on"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:89
#: field:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Dest. Location"
msgstr "Dest. Location"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,display_name:0
msgid "Display Name"
msgstr "Display Name"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,id:0
msgid "ID"
msgstr "ID"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,__last_update:0
msgid "Last Modified on"
msgstr "Last Modified on"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_uid:0
msgid "Last Updated by"
msgstr "Last Updated by"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_date:0
msgid "Last Updated on"
msgstr "Last Updated on"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Locations"
msgstr "Locations"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:65
#, python-format
msgid "Loss"
msgstr "Loss"
#. module: crm_rma_stock_location
#: field:stock.warehouse,loss_loc_id:0
msgid "Loss Location"
msgstr "Loss Location"
#. module: crm_rma_stock_location
#: view:crm.claim:crm_rma_stock_location.crm_claim_rma_form_view_loss
msgid "New Product Loss"
msgstr "New Product Loss"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,picking_line_ids:0
msgid "Picking lines"
msgstr "Picking lines"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_product
msgid "Product"
msgstr "Product"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_template
msgid "Product Template"
msgstr "Product Template"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_product_tree_view
msgid "Product Variants"
msgstr "Product Variants"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to Loss"
msgstr "Product to Loss"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to refurbish stock"
msgstr "Product to refurbish stock"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to stock"
msgstr "Product to stock"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_a
msgid "RMA - Box A"
msgstr "RMA - Box A"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_b
msgid "RMA - Box B"
msgstr "RMA - Box B"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Available Products"
msgstr "RMA Available Products"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma
msgid "RMA Demo"
msgstr "RMA Demo"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:42
#: code:addons/crm_rma_stock_location/models/product_template.py:42
#: field:product.product,rma_virtual_available:0
#: field:product.template,rma_virtual_available:0
#, python-format
msgid "RMA Forecasted Quantity"
msgstr "RMA Forecasted Quantity"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Products"
msgstr "RMA Products"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:36
#: code:addons/crm_rma_stock_location/models/product_template.py:36
#: field:product.product,rma_qty_available:0
#: field:product.template,rma_qty_available:0
#, python-format
msgid "RMA Quantity On Hand"
msgstr "RMA Quantity On Hand"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.rma_product_variant_action
#: model:ir.ui.menu,name:crm_rma_stock_location.menu_stock_rma
msgid "RMA Stock"
msgstr "RMA Stock"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:56
#, python-format
msgid "Refurbish"
msgstr "Refurbish"
#. module: crm_rma_stock_location
#: field:stock.warehouse,lot_refurbish_id:0
msgid "Refurbish Location"
msgstr "Refurbish Location"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines for picking"
msgstr "Select lines for picking"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines to add in picking"
msgstr "Select lines to add in picking"
#. module: crm_rma_stock_location
#: model:product.template,name:crm_rma_stock_location.product_socket_product_template
msgid "Socket"
msgstr "Socket"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:85
#: field:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source Location"
msgstr "Source Location"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:86
#: help:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source location where the returned products are"
msgstr "Source location where the returned products are"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:90
#: help:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Target location to send returned products"
msgstr "Target location to send returned products"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_stock_warehouse
msgid "Warehouse"
msgstr "Warehouse"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_wizard
msgid "Wizard to create pickings from claim lines"
msgstr "Wizard to create pickings from claim lines"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_from_picking_wizard
msgid "Wizard to create pickings from picking lines"
msgstr "Wizard to create pickings from picking lines"

View File

@@ -0,0 +1,257 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_rma_stock_location
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: rma (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-06 11:34+0000\n"
"PO-Revision-Date: 2016-05-03 15:37+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-rma-8-0/language/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Cancel"
msgstr "Cancelar"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_loss_picking_from_claim_picking
msgid "Create Incoming Shipment to Breakage Loss Location"
msgstr "Crear un envío de entrada hacia la ubicación de pérdida de productos dañados"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_used_picking_from_claim_picking
msgid "Create Incoming Shipment to Refurbish Location"
msgstr "Crear un envío de entrada hacia la ubicación de productos restaurados"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_stock_picking_from_claim_picking
msgid "Create Incoming Shipment to Stock"
msgstr "Crear un envío de entrada a Existencias"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_claim_picking_loss
msgid "Create a Product Loss"
msgstr "Registrar una pérdida de producto"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Create picking"
msgstr "Crear un albarán"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_uid:0
msgid "Created by"
msgstr "Creado por"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_date:0
msgid "Created on"
msgstr "Creado el"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:89
#: field:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Dest. Location"
msgstr "Ubicación destino"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,display_name:0
msgid "Display Name"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,id:0
msgid "ID"
msgstr "ID"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,__last_update:0
msgid "Last Modified on"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_uid:0
msgid "Last Updated by"
msgstr "Actualizado por"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_date:0
msgid "Last Updated on"
msgstr "Actualizado el"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Locations"
msgstr "Ubicaciones"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:65
#, python-format
msgid "Loss"
msgstr "Pérdida"
#. module: crm_rma_stock_location
#: field:stock.warehouse,loss_loc_id:0
msgid "Loss Location"
msgstr "Ubicación de Pérdida"
#. module: crm_rma_stock_location
#: view:crm.claim:crm_rma_stock_location.crm_claim_rma_form_view_loss
msgid "New Product Loss"
msgstr "Nueva Pérdida de Producto"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,picking_line_ids:0
msgid "Picking lines"
msgstr "Líneas de albarán"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_product
msgid "Product"
msgstr "Producto"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_template
msgid "Product Template"
msgstr "Producto Plantilla"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_product_tree_view
msgid "Product Variants"
msgstr "Variantes del Producto"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to Loss"
msgstr "Producto a Pérdida"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to refurbish stock"
msgstr "Producto a Existencias de restaurados"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to stock"
msgstr "Producto a Existencias"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_a
msgid "RMA - Box A"
msgstr "RMA - Caja A"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_b
msgid "RMA - Box B"
msgstr "RMA - Caja B"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Available Products"
msgstr "Productos disponibles en RMA"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma
msgid "RMA Demo"
msgstr "Demostración RMA"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:42
#: code:addons/crm_rma_stock_location/models/product_template.py:42
#: field:product.product,rma_virtual_available:0
#: field:product.template,rma_virtual_available:0
#, python-format
msgid "RMA Forecasted Quantity"
msgstr "Pronóstico de Cantidades en RMA"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Products"
msgstr "Productos en RMA"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:36
#: code:addons/crm_rma_stock_location/models/product_template.py:36
#: field:product.product,rma_qty_available:0
#: field:product.template,rma_qty_available:0
#, python-format
msgid "RMA Quantity On Hand"
msgstr "Cantidades Disponibles en RMA"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.rma_product_variant_action
#: model:ir.ui.menu,name:crm_rma_stock_location.menu_stock_rma
msgid "RMA Stock"
msgstr "Existencias en RMA"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:56
#, python-format
msgid "Refurbish"
msgstr "Restaurar"
#. module: crm_rma_stock_location
#: field:stock.warehouse,lot_refurbish_id:0
msgid "Refurbish Location"
msgstr "Ubicación de Restaurados"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines for picking"
msgstr "Seleccionar lineas para albarán"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines to add in picking"
msgstr "Seleccionar lineas a agregar en albarán"
#. module: crm_rma_stock_location
#: model:product.template,name:crm_rma_stock_location.product_socket_product_template
msgid "Socket"
msgstr "Sócate"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:85
#: field:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source Location"
msgstr "Ubicación origen"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:86
#: help:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source location where the returned products are"
msgstr "Ubicación origen de los productos devueltos"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:90
#: help:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Target location to send returned products"
msgstr "Ubicación destino de los productos devueltos"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_stock_warehouse
msgid "Warehouse"
msgstr "Almacén"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_wizard
msgid "Wizard to create pickings from claim lines"
msgstr "Asistente para create albaranes desde lineas de reclamo"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_from_picking_wizard
msgid "Wizard to create pickings from picking lines"
msgstr "Asistente para create albaranes desde lineas de albaranes"

View File

@@ -0,0 +1,16 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_rma_stock_location
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-07-18 00:48+0000\n"
"PO-Revision-Date: 2015-07-18 00:48+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

View File

@@ -0,0 +1,16 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_rma_stock_location
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-07-18 00:48+0000\n"
"PO-Revision-Date: 2015-07-18 00:48+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

View File

@@ -0,0 +1,16 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_rma_stock_location
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-07-18 00:48+0000\n"
"PO-Revision-Date: 2015-07-18 00:48+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"

View File

@@ -1,54 +1,257 @@
# Translation of OpenERP Server.
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_rma_stock_location
#
# * crm_rma_stock_location
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Project-Id-Version: rma (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-12 11:28+0000\n"
"PO-Revision-Date: 2014-09-12 11:28+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"POT-Creation-Date: 2016-05-06 11:34+0000\n"
"PO-Revision-Date: 2016-05-03 15:37+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n"
"Language-Team: French (http://www.transifex.com/oca/OCA-rma-8-0/language/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: crm_rma_stock_location
#: model:ir.model.fields,field_description:crm_rma_stock_location.field_stock_warehouse_lot_rma_id
#: field:stock.warehouse,lot_rma_id:0
msgid "Location RMA"
msgstr "Emplacement RMA"
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Cancel"
msgstr "Annuler"
#. module: crm_rma_stock_location
#: code:_description:0
#: model:ir.model,name:crm_rma_stock_location.model_product_product
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_loss_picking_from_claim_picking
msgid "Create Incoming Shipment to Breakage Loss Location"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_used_picking_from_claim_picking
msgid "Create Incoming Shipment to Refurbish Location"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_stock_picking_from_claim_picking
msgid "Create Incoming Shipment to Stock"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_claim_picking_loss
msgid "Create a Product Loss"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Create picking"
msgstr "Créer expédition/réception"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_uid:0
msgid "Created by"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_date:0
msgid "Created on"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:89
#: field:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Dest. Location"
msgstr "Emplacement de destination"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,display_name:0
msgid "Display Name"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,id:0
msgid "ID"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,__last_update:0
msgid "Last Modified on"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Locations"
msgstr "Emplacements"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:65
#, python-format
msgid "Loss"
msgstr ""
#. module: crm_rma_stock_location
#: field:stock.warehouse,loss_loc_id:0
msgid "Loss Location"
msgstr ""
#. module: crm_rma_stock_location
#: view:crm.claim:crm_rma_stock_location.crm_claim_rma_form_view_loss
msgid "New Product Loss"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,picking_line_ids:0
msgid "Picking lines"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_product
msgid "Product"
msgstr "Article"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.stock_location_rma
msgid "RMA"
msgstr "RMA"
#: model:ir.model,name:crm_rma_stock_location.model_product_template
msgid "Product Template"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model.fields,field_description:crm_rma_stock_location.field_product_product_rma_virtual_available
#: view:product.product:crm_rma_stock_location.rma_product_product_tree_view
msgid "Product Variants"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to Loss"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to refurbish stock"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to stock"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_a
msgid "RMA - Box A"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_b
msgid "RMA - Box B"
msgstr ""
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Available Products"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma
msgid "RMA Demo"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:42
#: code:addons/crm_rma_stock_location/models/product_template.py:42
#: field:product.product,rma_virtual_available:0
#: field:product.template,rma_virtual_available:0
#, python-format
msgid "RMA Forecasted Quantity"
msgstr "Quantité RMA prévue"
#. module: crm_rma_stock_location
#: model:ir.model.fields,field_description:crm_rma_stock_location.field_product_product_rma_qty_available
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Products"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:36
#: code:addons/crm_rma_stock_location/models/product_template.py:36
#: field:product.product,rma_qty_available:0
#: field:product.template,rma_qty_available:0
#, python-format
msgid "RMA Quantity On Hand"
msgstr "Quantité RMA en stock"
#. module: crm_rma_stock_location
#: code:_description:0
#: model:ir.model,name:crm_rma_stock_location.model_stock_warehouse
#: model:ir.actions.act_window,name:crm_rma_stock_location.rma_product_variant_action
#: model:ir.ui.menu,name:crm_rma_stock_location.menu_stock_rma
msgid "RMA Stock"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:56
#, python-format
msgid "Refurbish"
msgstr ""
#. module: crm_rma_stock_location
#: field:stock.warehouse,lot_refurbish_id:0
msgid "Refurbish Location"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines for picking"
msgstr "Selectionner les lignes pour l'expédition/réception"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines to add in picking"
msgstr ""
#. module: crm_rma_stock_location
#: model:product.template,name:crm_rma_stock_location.product_socket_product_template
msgid "Socket"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:85
#: field:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source Location"
msgstr "Emplacement source"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:86
#: help:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source location where the returned products are"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:90
#: help:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Target location to send returned products"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_stock_warehouse
msgid "Warehouse"
msgstr "Entrepôt"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_wizard
msgid "Wizard to create pickings from claim lines"
msgstr "Assistant pour créer des expédition/réceptions à partir des lignes de réclamation"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_from_picking_wizard
msgid "Wizard to create pickings from picking lines"
msgstr ""

View File

@@ -0,0 +1,243 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_rma_stock_location
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: rma (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-01-19 12:26+0000\n"
"PO-Revision-Date: 2016-03-08 03:12+0000\n"
"Last-Translator: danimaribeiro <danimaribeiro@gmail.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-rma-8-0/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Cancel"
msgstr "Cancelar"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_loss_picking_from_claim_picking
msgid "Create Incoming Shipment to Breakage Loss Location"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_used_picking_from_claim_picking
msgid "Create Incoming Shipment to Refurbish Location"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_stock_picking_from_claim_picking
msgid "Create Incoming Shipment to Stock"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_claim_picking_loss
msgid "Create a Product Loss"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Create picking"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_uid:0
msgid "Created by"
msgstr "Criado por"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_date:0
msgid "Created on"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:89
#: field:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Dest. Location"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,id:0
msgid "ID"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Locations"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:65
#, python-format
msgid "Loss"
msgstr ""
#. module: crm_rma_stock_location
#: field:stock.warehouse,loss_loc_id:0
msgid "Loss Location"
msgstr ""
#. module: crm_rma_stock_location
#: view:crm.claim:crm_rma_stock_location.crm_claim_rma_form_view_loss
msgid "New Product Loss"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,picking_line_ids:0
msgid "Picking lines"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_product
msgid "Product"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_template
msgid "Product Template"
msgstr ""
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_product_tree_view
msgid "Product Variants"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to Loss"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to refurbish stock"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to stock"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_a
msgid "RMA - Box A"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_b
msgid "RMA - Box B"
msgstr ""
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Available Products"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma
msgid "RMA Demo"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:42
#: code:addons/crm_rma_stock_location/models/product_template.py:42
#, python-format
msgid "RMA Forecasted Quantity"
msgstr ""
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Products"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:36
#: code:addons/crm_rma_stock_location/models/product_template.py:36
#, python-format
msgid "RMA Quantity On Hand"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.rma_product_variant_action
#: model:ir.ui.menu,name:crm_rma_stock_location.menu_stock_rma
msgid "RMA Stock"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:56
#, python-format
msgid "Refurbish"
msgstr ""
#. module: crm_rma_stock_location
#: field:stock.warehouse,lot_refurbish_id:0
msgid "Refurbish Location"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines for picking"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines to add in picking"
msgstr ""
#. module: crm_rma_stock_location
#: model:product.template,name:crm_rma_stock_location.product_socket_product_template
msgid "Socket"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:85
#: field:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source Location"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:86
#: help:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source location where the returned products are"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:90
#: help:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Target location to send returned products"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_stock_warehouse
msgid "Warehouse"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_wizard
msgid "Wizard to create pickings from claim lines"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_from_picking_wizard
msgid "Wizard to create pickings from picking lines"
msgstr ""

View File

@@ -0,0 +1,243 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_rma_stock_location
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: rma (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-12-03 01:39+0000\n"
"PO-Revision-Date: 2015-12-02 21:49+0000\n"
"Last-Translator: <>\n"
"Language-Team: Romanian (http://www.transifex.com/oca/OCA-rma-8-0/language/ro/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ro\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Cancel"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_loss_picking_from_claim_picking
msgid "Create Incoming Shipment to Breakage Loss Location"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_used_picking_from_claim_picking
msgid "Create Incoming Shipment to Refurbish Location"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_stock_picking_from_claim_picking
msgid "Create Incoming Shipment to Stock"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_claim_picking_loss
msgid "Create a Product Loss"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Create picking"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_uid:0
msgid "Created by"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_date:0
msgid "Created on"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:89
#: field:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Dest. Location"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,id:0
msgid "ID"
msgstr "ID"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_uid:0
msgid "Last Updated by"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_date:0
msgid "Last Updated on"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Locations"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:65
#, python-format
msgid "Loss"
msgstr ""
#. module: crm_rma_stock_location
#: field:stock.warehouse,loss_loc_id:0
msgid "Loss Location"
msgstr ""
#. module: crm_rma_stock_location
#: view:crm.claim:crm_rma_stock_location.crm_claim_rma_form_view_loss
msgid "New Product Loss"
msgstr ""
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,picking_line_ids:0
msgid "Picking lines"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_product
msgid "Product"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_template
msgid "Product Template"
msgstr ""
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_product_tree_view
msgid "Product Variants"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to Loss"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to refurbish stock"
msgstr ""
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to stock"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_a
msgid "RMA - Box A"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_b
msgid "RMA - Box B"
msgstr ""
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Available Products"
msgstr ""
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma
msgid "RMA Demo"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:42
#: code:addons/crm_rma_stock_location/models/product_template.py:42
#, python-format
msgid "RMA Forecasted Quantity"
msgstr ""
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Products"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:36
#: code:addons/crm_rma_stock_location/models/product_template.py:36
#, python-format
msgid "RMA Quantity On Hand"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.rma_product_variant_action
#: model:ir.ui.menu,name:crm_rma_stock_location.menu_stock_rma
msgid "RMA Stock"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:56
#, python-format
msgid "Refurbish"
msgstr ""
#. module: crm_rma_stock_location
#: field:stock.warehouse,lot_refurbish_id:0
msgid "Refurbish Location"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines for picking"
msgstr ""
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines to add in picking"
msgstr ""
#. module: crm_rma_stock_location
#: model:product.template,name:crm_rma_stock_location.product_socket_product_template
msgid "Socket"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:85
#: field:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source Location"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:86
#: help:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source location where the returned products are"
msgstr ""
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:90
#: help:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Target location to send returned products"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_stock_warehouse
msgid "Warehouse"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_wizard
msgid "Wizard to create pickings from claim lines"
msgstr ""
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_from_picking_wizard
msgid "Wizard to create pickings from picking lines"
msgstr ""

View File

@@ -0,0 +1,258 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * crm_rma_stock_location
#
# Translators:
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015
msgid ""
msgstr ""
"Project-Id-Version: rma (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-05-06 11:34+0000\n"
"PO-Revision-Date: 2016-05-04 03:48+0000\n"
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n"
"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-rma-8-0/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Cancel"
msgstr "Preklic"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_loss_picking_from_claim_picking
msgid "Create Incoming Shipment to Breakage Loss Location"
msgstr "Ustvari vstopno pošiljko na lokacijo izgub iz okvar"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_used_picking_from_claim_picking
msgid "Create Incoming Shipment to Refurbish Location"
msgstr "Ustvari vstopno pošiljko na lokacijo prenovljenih zalog"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_stock_picking_from_claim_picking
msgid "Create Incoming Shipment to Stock"
msgstr "Ustvari vstopno pošiljko med zaloge"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.action_claim_picking_loss
msgid "Create a Product Loss"
msgstr "Ustvari izgubo proizvoda"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Create picking"
msgstr "Ustvari zbirnik"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_uid:0
msgid "Created by"
msgstr "Ustvaril"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,create_date:0
msgid "Created on"
msgstr "Ustvarjeno"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:89
#: field:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Dest. Location"
msgstr "Ciljna lokacija"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,display_name:0
msgid "Display Name"
msgstr "Prikazni naziv"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,id:0
msgid "ID"
msgstr "ID"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,__last_update:0
msgid "Last Modified on"
msgstr "Zadnjič spremenjeno"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_uid:0
msgid "Last Updated by"
msgstr "Zadnji posodobil"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,write_date:0
msgid "Last Updated on"
msgstr "Zadnjič posodobljeno"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Locations"
msgstr "Lokacije"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:65
#, python-format
msgid "Loss"
msgstr "Izguba"
#. module: crm_rma_stock_location
#: field:stock.warehouse,loss_loc_id:0
msgid "Loss Location"
msgstr "Lokacija izgub"
#. module: crm_rma_stock_location
#: view:crm.claim:crm_rma_stock_location.crm_claim_rma_form_view_loss
msgid "New Product Loss"
msgstr "Nova izguba proizvoda"
#. module: crm_rma_stock_location
#: field:claim.make.picking.from.picking.wizard,picking_line_ids:0
msgid "Picking lines"
msgstr "Postavke zbirnika"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_product
msgid "Product"
msgstr "Proizvod"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_product_template
msgid "Product Template"
msgstr "Predloga proizvoda"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_product_tree_view
msgid "Product Variants"
msgstr "Različice proizvoda"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to Loss"
msgstr "Proizvod med izgube"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to refurbish stock"
msgstr "Proizvod med prenovljene zaloge"
#. module: crm_rma_stock_location
#: view:stock.picking:crm_rma_stock_location.picking_in_form
msgid "Product to stock"
msgstr "Proizvod v zaloge"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_a
msgid "RMA - Box A"
msgstr "PVB - zaboj A"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma_b
msgid "RMA - Box B"
msgstr "PVB - zaboj B"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Available Products"
msgstr "PVB proizvodi na voljo"
#. module: crm_rma_stock_location
#: model:stock.location,name:crm_rma_stock_location.location_rma
msgid "RMA Demo"
msgstr "PVB demonstracija"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:42
#: code:addons/crm_rma_stock_location/models/product_template.py:42
#: field:product.product,rma_virtual_available:0
#: field:product.template,rma_virtual_available:0
#, python-format
msgid "RMA Forecasted Quantity"
msgstr "PVB napovedana količina"
#. module: crm_rma_stock_location
#: view:product.product:crm_rma_stock_location.rma_product_search_view
msgid "RMA Products"
msgstr "PVB proizvodi"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/product_product.py:36
#: code:addons/crm_rma_stock_location/models/product_template.py:36
#: field:product.product,rma_qty_available:0
#: field:product.template,rma_qty_available:0
#, python-format
msgid "RMA Quantity On Hand"
msgstr "PVB količina pri roki"
#. module: crm_rma_stock_location
#: model:ir.actions.act_window,name:crm_rma_stock_location.rma_product_variant_action
#: model:ir.ui.menu,name:crm_rma_stock_location.menu_stock_rma
msgid "RMA Stock"
msgstr "PVB zaloge"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/models/stock_warehouse.py:56
#, python-format
msgid "Refurbish"
msgstr "Prenavljanje"
#. module: crm_rma_stock_location
#: field:stock.warehouse,lot_refurbish_id:0
msgid "Refurbish Location"
msgstr "Lokacija prenavljanja"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines for picking"
msgstr "Izberite postavke za zbirnik"
#. module: crm_rma_stock_location
#: view:claim.make.picking.from.picking.wizard:crm_rma_stock_location.view_claim_picking_from_picking
msgid "Select lines to add in picking"
msgstr "Izberi postavke, ki se dodajo v zbirnik"
#. module: crm_rma_stock_location
#: model:product.template,name:crm_rma_stock_location.product_socket_product_template
msgid "Socket"
msgstr "Vtičnica"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:85
#: field:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source Location"
msgstr "Izvorna lokacija"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:86
#: help:claim.make.picking.from.picking.wizard,picking_line_source_location:0
#, python-format
msgid "Source location where the returned products are"
msgstr "Izvorna lokacija, kjer so vrnjeni proizvodi"
#. module: crm_rma_stock_location
#: code:addons/crm_rma_stock_location/wizards/claim_make_picking_from_picking.py:90
#: help:claim.make.picking.from.picking.wizard,picking_line_dest_location:0
#, python-format
msgid "Target location to send returned products"
msgstr "Ciljna lokacija, kamor se pošilja vrnjene proizvode"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_stock_warehouse
msgid "Warehouse"
msgstr "Skladišče"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_wizard
msgid "Wizard to create pickings from claim lines"
msgstr "Čarovnik za ustvarjanje zbirnikov iz postavk zahtevka"
#. module: crm_rma_stock_location
#: model:ir.model,name:crm_rma_stock_location.model_claim_make_picking_from_picking_wizard
msgid "Wizard to create pickings from picking lines"
msgstr "Čarovnik za ustvarjanje zbirnikov iz zbirnih postavk"

View File

@@ -0,0 +1,17 @@
# -*- coding: utf-8 -*-
# © 2015 Vauxoo
# © 2014-2016 Camptocamp SA
# Author: Guewen Baconnier,
# Osval Reyes
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import SUPERUSER_ID
from openerp.api import Environment
def post_init_hook(cr, registry):
with Environment.manage():
env = Environment(cr, SUPERUSER_ID, {})
warehouses = env['stock.warehouse'].search([])
warehouses.create_locations_rma()

View File

@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
from . import product_product
from . import product_template
from . import stock_warehouse

View File

@@ -0,0 +1,95 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import api, fields, models
import openerp.addons.decimal_precision as dp
from openerp.tools.safe_eval import safe_eval as eval
class ProductProduct(models.Model):
_inherit = 'product.product'
rma_qty_available = fields.Float(
compute='_compute_rma_product_quantities',
digits_compute=dp.get_precision('Product Unit of Measure'),
search='_search_rma_product_quantity',
string='RMA Quantity On Hand'
)
rma_virtual_available = fields.Float(
compute='_compute_rma_product_quantities',
digits_compute=dp.get_precision('Product Unit of Measure'),
search='_search_rma_product_quantity',
string='RMA Forecasted Quantity'
)
def _search_rma_product_quantity(self, operator, value):
res = []
# to prevent sql injections
assert operator in ('<', '>', '=', '!=',
'<=', '>='), 'Invalid domain operator'
assert isinstance(value, (float, int)), 'Invalid domain right operand'
if operator == '=':
operator = '=='
ids = []
product_ids = self.search([])
if product_ids:
for element in product_ids:
localdict = {'virtual': element.rma_virtual_available,
'qty': element.rma_qty_available,
'value': value}
if eval('qty %s value or virtual %s value' %
(operator, operator), localdict):
ids.append(element.id)
res.append(('id', 'in', ids))
return res
@api.depends()
def _compute_rma_product_quantities(self):
""" Compute both rma_qty_available and rma_virtual_available values
by calling product_product._product_available with RMA locations
in context.
"""
warehouse_model = self.env['stock.warehouse']
locations = self.env['stock.location']
warehouse_id = self.env.context.get('warehouse_id')
if warehouse_id:
warehouse = warehouse_model.browse(warehouse_id)
if warehouse.lot_rma_id:
locations |= warehouse.lot_rma_id
else:
warehouses = warehouse_model.search([('lot_rma_id', '!=', False)])
locations |= warehouses.mapped('lot_rma_id')
if locations:
result = self.with_context(
# Sorted by parent_left to avoid a little Odoo bug
# in tests environnement
# see https://github.com/odoo/odoo/pull/11996
location=locations.sorted(
lambda l: l.parent_left
).mapped('id'),
)._product_available()
else:
result = {}
for product in self:
try:
product_qties = result[product.id]
except KeyError:
product.rma_qty_available = 0
product.rma_virtual_available = 0
else:
product.rma_qty_available = product_qties['qty_available']
product.rma_virtual_available = product_qties[
'virtual_available'
]

View File

@@ -0,0 +1,41 @@
# -*- coding: utf-8 -*-
# © 2015 Vauxoo
# © 2014 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import api, fields, models
import openerp.addons.decimal_precision as dp
class ProductTemplate(models.Model):
_inherit = 'product.template'
rma_qty_available = fields.Float(
compute='_compute_rma_template_quantities',
digits_compute=dp.get_precision('Product Unit of Measure'),
string='RMA Quantity On Hand'
)
rma_virtual_available = fields.Float(
compute='_compute_rma_template_quantities',
digits_compute=dp.get_precision('Product Unit of Measure'),
string='RMA Forecasted Quantity'
)
@api.depends('product_variant_ids.rma_qty_available',
'product_variant_ids.rma_virtual_available')
def _compute_rma_template_quantities(self):
""" Compute rma_qty_available and rma_virtual_available
with sum of variants quantities.
"""
for template in self:
qantities = template.product_variant_ids.read(
['rma_qty_available', 'rma_virtual_available']
)
template.rma_qty_available = sum(
qty['rma_qty_available'] for qty in qantities
)
template.rma_virtual_available = sum(
qty['rma_virtual_available'] for qty in qantities
)

View File

@@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
# © 2013 Camptocamp
# © 2009-2013 Akretion,
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
# Joel Grand-Guillaume
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import _, api, fields, models
class StockWarehouse(models.Model):
_inherit = "stock.warehouse"
loss_loc_id = fields.Many2one('stock.location', 'Loss Location')
lot_refurbish_id = fields.Many2one('stock.location', 'Refurbish Location')
@api.multi
def create_locations_rma(self):
super(StockWarehouse, self).create_locations_rma()
location_obj = self.env['stock.location']
for warehouse in self:
if not warehouse.lot_refurbish_id:
location_id = location_obj.with_context(
active_test=False
).create({
'name': _('Refurbish'),
'usage': 'production',
'location_id': warehouse.view_location_id.id,
'company_id': warehouse.company_id.id,
'active': True,
})
warehouse.lot_refurbish_id = location_id
if not warehouse.loss_loc_id:
location_id = location_obj.with_context(
active_test=False
).create({
'name': _('Loss'),
'usage': 'inventory',
'location_id': warehouse.view_location_id.id,
'company_id': warehouse.company_id.id,
'active': True,
})
warehouse.loss_loc_id = location_id

View File

@@ -1,106 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Guewen Baconnier
# Copyright 2014 Camptocamp SA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import orm, fields
import openerp.addons.decimal_precision as dp
class ProductProduct(orm.Model):
_inherit = 'product.product'
def _rma_product_available(self, cr, uid, ids, field_names=None, arg=False,
context=None):
""" Finds the incoming and outgoing quantity of product for the RMA
locations.
"""
if field_names is None:
field_names = []
if context is None:
context = {}
warehouse_obj = self.pool['stock.warehouse']
res = {}
for id in ids:
res[id] = {}.fromkeys(field_names, 0.0)
for field in field_names:
ctx = context.copy()
warehouse_id = ctx.get('warehouse_id')
# no dependency on 'sale', the same oddness is done in
# 'stock' so I kept it here
if ctx.get('shop') and self.pool.get('sale.shop'):
shop_obj = self.pool['sale.shop']
shop_id = ctx['shop']
warehouse = shop_obj.read(cr, uid, shop_id,
['warehouse_id'],
context=ctx)
warehouse_id = warehouse['warehouse_id'][0]
if warehouse_id:
rma_id = warehouse_obj.read(cr, uid,
warehouse_id,
['lot_rma_id'],
context=ctx)['lot_rma_id'][0]
if rma_id:
ctx['location'] = rma_id
else:
location_ids = set()
wids = warehouse_obj.search(cr, uid, [], context=context)
if not wids:
return res
for wh in warehouse_obj.browse(cr, uid, wids, context=context):
if wh.lot_rma_id:
location_ids.add(wh.lot_rma_id.id)
if not location_ids:
return res
ctx['location'] = list(location_ids)
ctx['compute_child'] = True
compute = {
'rma_qty_available': {
'states': ('done', ),
'what': ('in', 'out')
},
'rma_virtual_available': {
'states': ('confirmed', 'waiting', 'assigned', 'done'),
'what': ('in', 'out')
}
}
ctx.update(compute[field])
stock = self.get_product_available(cr, uid, ids, context=ctx)
for id in ids:
res[id][field] = stock.get(id, 0.0)
return res
_columns = {
'rma_qty_available': fields.function(
_rma_product_available,
type='float',
multi='rma_qty',
digits_compute=dp.get_precision('Product Unit of Measure'),
string='RMA Quantity On Hand'),
'rma_virtual_available': fields.function(
_rma_product_available,
type='float',
multi='rma_qty',
digits_compute=dp.get_precision('Product Unit of Measure'),
string='RMA Forecasted Quantity'),
}

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">
<record id="product_product_tree_view" model="ir.ui.view">
<field name="name">product.product.tree</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_product_tree_view"/>
<field name="arch" type="xml">
<field name="virtual_available" position="after">
<field name="rma_qty_available"/>
<field name="rma_virtual_available"/>
</field>
</field>
</record>
<record id="view_normal_procurement_locations_form" model="ir.ui.view">
<field name="name">product.normal.procurement.locations.inherit</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="stock.view_normal_procurement_locations_form"/>
<field name="arch" type="xml">
<field name="virtual_available" position="after">
<field name="rma_qty_available" class="oe_inline"/>
<field name="rma_virtual_available" class="oe_inline"/>
</field>
</field>
</record>
</data>
</openerp>

View File

@@ -1,15 +0,0 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
<record id="stock_location_rma" model="stock.location">
<field name="name">RMA</field>
<field name="usage">internal</field>
<field name="location_id" ref="stock.stock_location_company"/>
</record>
<record id="stock.warehouse0" model="stock.warehouse">
<field name="lot_rma_id" ref="stock_location_rma"/>
</record>
</data>
</openerp>

View File

@@ -1,30 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Guewen Baconnier
# Copyright 2014 Camptocamp SA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp.osv import orm, fields
class StockWarehouse(orm.Model):
_inherit = 'stock.warehouse'
_columns = {
'lot_rma_id': fields.many2one('stock.location', 'Location RMA'),
}

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">
<record id="view_warehouse_form" model="ir.ui.view">
<field name="name">view_warehouse_form</field>
<field name="model">stock.warehouse</field>
<field name="inherit_id" ref="stock.view_warehouse" />
<field name="arch" type="xml">
<xpath expr="/form/group/group/field[@name='lot_output_id']" position="after">
<field name="lot_rma_id"/>
</xpath>
</field>
</record>
</data>
</openerp>

View File

@@ -1,72 +0,0 @@
-
I create RMA locations
-
!record {model: stock.location, id: location_rma}:
name: RMA
usage: view
-
!record {model: stock.location, id: location_rma_a}:
name: RMA - Box A
usage: internal
location_id: location_rma
-
!record {model: stock.location, id: location_rma_b}:
name: RMA - Box B
usage: internal
location_id: location_rma
-
I set the RMA location on the warehouse
-
!record {model: stock.warehouse, id: stock.warehouse0}:
lot_rma_id: location_rma
-
I create a product
-
!record {model: product.product, id: product_socket}:
default_code: 002
name: Sockets
type: product
categ_id: product.product_category_1
list_price: 100.0
standard_price: 70.0
uom_id: product.product_uom_unit
uom_po_id: product.product_uom_unit
-
I create a physical inventory with 50 units in Box A and 30 in Box B
-
!record {model: stock.inventory, id: stock_inventory_socket}:
name: Inventory for Sockets
-
!record {model: stock.inventory.line, id: stock_inventory_line_socket_1}:
product_id: product_socket
product_uom: product.product_uom_unit
inventory_id: stock_inventory_socket
product_qty: 50.0
location_id: location_rma_a
-
!record {model: stock.inventory.line, id: stock_inventory_line_socket_2}:
product_id: product_socket
product_uom: product.product_uom_unit
inventory_id: stock_inventory_socket
product_qty: 30.0
location_id: location_rma_b
-
I confirm the physical inventory
-
!python {model: stock.inventory}: |
self.action_confirm(cr, uid, [ref('stock_inventory_socket')], context=context)
-
I confirm the move in Box A
-
!python {model: stock.inventory}: |
inventory = self.browse(cr, uid, ref('stock_inventory_socket'), context=context)
assert len(inventory.move_ids) == len(inventory.inventory_line_id), "moves are not correspond."
for move in inventory.move_ids:
if move.location_dest_id.id == ref('location_rma_a'):
move.action_done()
-
I check my RMA quantities, I should have 50 on hands and 80 forecasted
-
!assert {model: product.product, id: product_socket, string: RMA quantity is wrong}:
- rma_qty_available == 50
- rma_virtual_available == 80

View File

@@ -0,0 +1,5 @@
# -*- coding: utf-8 -*-
from . import test_crm_rma_stock_location
from . import test_make_picking_from_picking
from . import test_rma_stock

View File

@@ -0,0 +1,62 @@
# -*- coding: utf-8 -*-
# © 2015 Vauxoo
# Author: Osval Reyes
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp.tests.common import TransactionCase
class TestCrmRmaStockLocation(TransactionCase):
def setUp(self):
super(TestCrmRmaStockLocation, self).setUp()
self.inventory = self.env['stock.inventory']
self.inventory_line = self.env['stock.inventory.line']
self.location_id = self.env['stock.location'].search(
[('name', '=', 'RMA'), ('location_id.name', '=', 'WH')])
self.warehouse_id = self.env['stock.warehouse'].browse(
self.ref('stock.warehouse0'))
self.lot_rma_id = self.warehouse_id.lot_rma_id
self.product_uom_id = self.ref('product.product_uom_unit')
self.product_socket_id = self.env['product.product'].browse(
self.ref('crm_rma_stock_location.product_socket'))
def test_01_test(self):
inventory_id = self.inventory.create({
'name': 'Test Inventory 001',
'location_id': self.location_id.id,
'filter': 'product',
'product_id': self.product_socket_id.id,
})
inventory_line_id_a = self.inventory_line.create({
'inventory_id': inventory_id.id,
'product_id': self.product_socket_id.id,
'product_uom_id': self.product_uom_id,
'product_qty': 100,
'location_id': self.lot_rma_id.id
})
inventory_line_id_b = self.inventory_line.create({
'inventory_id': inventory_id.id,
'product_id': self.product_socket_id.id,
'product_uom_id': self.product_uom_id,
'product_qty': 10,
'location_id': self.lot_rma_id.id
})
inventory_id.prepare_inventory()
inventory_id.action_done()
qty = inventory_line_id_a.product_qty + inventory_line_id_b.product_qty
self.assertEquals(self.product_socket_id.rma_qty_available, qty)
self.assertEquals(self.product_socket_id.rma_virtual_available, qty)
self.assertEquals(
self.product_socket_id.product_tmpl_id.rma_qty_available, qty)
self.assertEquals(
self.product_socket_id.product_tmpl_id.rma_virtual_available, qty)
res = self.product_socket_id._search_rma_product_quantity(
'=',
inventory_line_id_a.product_qty + inventory_line_id_b.product_qty)
self.assertEquals(self.product_socket_id.id, res[0][2][0])

View File

@@ -0,0 +1,144 @@
# -*- coding: utf-8 -*-
# © 2015 Vauxoo
# Author: Yanina Aular
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp.tests.common import TransactionCase
class TestPickingFromPicking(TransactionCase):
def setUp(self):
super(TestPickingFromPicking, self).setUp()
self.stock_warehouse = self.env['stock.warehouse']
self.claim_id = self.create_claim()
self.wizardmakepicking = self.env['claim_make_picking.wizard']
self.claim_picking_wizard = \
self.env['claim.make.picking.from.picking.wizard']
self.get_default_locations()
def create_claim(self):
claim_id = self.env['crm.claim'].browse(
self.ref("crm_claim.crm_claim_6"))
claim_id.write({
'claim_line_ids': [(0, 0, {
'name': str(claim_id.id) + 'test 1',
'claim_origin': u'damaged',
'product_id': self.ref('product.product_product_8')
}), (0, 0, {
'name': str(claim_id.id) + 'test 2',
'claim_origin': u'none',
'product_id': self.ref('product.product_product_6')
})]
})
return claim_id
def get_default_locations(self):
"""
Return locations for RMA, Loss and Refurbish
"""
self.main_warehouse_id = self.stock_warehouse.browse(
self.ref("stock.warehouse0"))
self.loc_rma = self.main_warehouse_id.lot_rma_id
self.loss_loc = self.main_warehouse_id.loss_loc_id
self.loc_refurbish = self.main_warehouse_id.lot_refurbish_id
def test_01_get_dest_loc(self):
# Create Picking from Customers to RMA
# with button New Products Return
wiz_context = {
'active_id': self.claim_id.id,
'warehouse_id': self.claim_id.warehouse_id.id,
'partner_id': self.claim_id.partner_id.id,
'picking_type': 'in',
}
wizard_id = self.wizardmakepicking.with_context(wiz_context).create({})
res = wizard_id.action_create_picking()
stock_picking_id = res.get('res_id')
# Create Picking 'Product to stock'
context = {
'active_id': stock_picking_id,
'picking_type': 'picking_stock',
}
claim_wizard = self.claim_picking_wizard.\
with_context(context).create({})
self.assertEquals(claim_wizard.picking_line_source_location.id,
self.loc_rma.id)
self.assertEquals(claim_wizard.picking_line_dest_location.id,
self.main_warehouse_id.lot_stock_id.id)
self.assertEquals(len(claim_wizard.picking_line_ids),
len(self.claim_id.claim_line_ids))
# Review number of picking lines with claim lines
picking_lines = claim_wizard.picking_line_ids
claim_lines = self.claim_id.claim_line_ids
for num in xrange(0, len(picking_lines)):
band = False
for num2 in xrange(0, len(claim_lines)):
if claim_lines[num].product_id.id == \
picking_lines[num2].product_id.id:
band = True
self.assertEquals(True, band)
claim_wizard.with_context(context).action_create_picking_from_picking()
# Create Picking 'Product to Loss'
claim_wizard = self.claim_picking_wizard.\
with_context({
'active_id': stock_picking_id,
'picking_type': 'picking_loss',
}).create({})
self.assertEquals(claim_wizard.picking_line_source_location.id,
self.loc_rma.id)
self.assertEquals(claim_wizard.picking_line_dest_location.id,
self.loss_loc.id)
def assert_picking_type(self, picking_type_str=''):
new_context = {
'active_id': self.claim_id.id,
'warehouse_id': self.claim_id.warehouse_id.id,
'partner_id': self.claim_id.partner_id.id,
'picking_type': picking_type_str,
}
wizard_id = self.wizardmakepicking.with_context(new_context).create({})
default_location_dest_id = getattr(
self.claim_id.warehouse_id,
'rma_%s_type_id' % picking_type_str
).default_location_dest_id
self.assertEquals(
wizard_id.claim_line_dest_location_id, default_location_dest_id)
def test_02_picking_types_in_out_int(self):
self.assert_picking_type('in')
self.assert_picking_type('out')
self.assert_picking_type('int')
def test_03_picking_type_loss(self):
new_context = {
'active_id': self.claim_id.id,
'warehouse_id': self.claim_id.warehouse_id.id,
'partner_id': self.claim_id.partner_id.id,
'picking_type': 'loss',
}
wizard_id = self.wizardmakepicking.with_context(new_context).create({})
default_location_dest_id = self.claim_id.warehouse_id.loss_loc_id
self.assertEquals(
wizard_id.claim_line_dest_location_id, default_location_dest_id
)

View File

@@ -0,0 +1,194 @@
# -*- coding: utf-8 -*-
# © 2016 Cyril Gaudin (Camptocamp)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp.tests import TransactionCase
class TestRMAStock(TransactionCase):
def setUp(self):
super(TestRMAStock, self).setUp()
self.wh_main = self.env.ref("stock.warehouse0")
location_model = self.env['stock.location']
self.loc_rma = location_model.create({
'name': 'RMA',
'usage': 'view',
'location_id': self.wh_main.view_location_id.id,
})
self.loc_box_a = location_model.create({
'name': 'RMA - Box A',
'usage': 'internal',
'location_id': self.loc_rma.id,
})
self.loc_box_b = location_model.create({
'name': 'RMA - Box B',
'usage': 'internal',
'location_id': self.loc_rma.id,
})
self.wh_main.lot_rma_id = self.loc_rma
# Create products
self.product_socket = self.env['product.product'].create({
'name': 'Sockets',
})
self.product_shoes = self.env['product.product'].create({
'name': 'Shoes',
})
def test_rma_qty(self):
# Put 50 in box A
inventory = self.env['stock.inventory'].create({
'name': 'Inventory for Sockets',
'location_id': self.loc_box_a.id,
'filter': 'partial'
})
inventory.prepare_inventory()
self.env['stock.inventory.line'].create({
'inventory_id': inventory.id,
'product_id': self.product_socket.id,
'location_id': self.loc_box_a.id,
'product_qty': 50,
})
inventory.action_done()
# Confirmed move for 30 in box B
self.env['stock.move'].create({
'name': 'Test move rma',
'state': 'confirmed',
'product_id': self.product_socket.id,
'product_uom_qty': 30,
'product_uom': self.product_socket.uom_id.id,
'location_id': self.ref('stock.stock_location_suppliers'),
'location_dest_id': self.loc_box_b.id,
})
# Should have 50 avalaible and 80 forecasted
self.assertEqual(50.0, self.product_socket.rma_qty_available)
self.assertEqual(80.0, self.product_socket.rma_virtual_available)
# A warehouse can be specified
other_warehouse = self.env['stock.warehouse'].create({
'name': 'Other warehouse',
'partner_id': self.ref('base.main_partner'),
'code': 'WH2',
})
self.assertEqual(
0.0,
self.product_socket.with_context(
warehouse_id=other_warehouse.id
).rma_qty_available
)
self.assertEqual(
0.0,
self.product_socket.with_context(
warehouse_id=other_warehouse.id
).rma_virtual_available
)
# Reset lot_rma_id (automatically created)
other_warehouse.lot_rma_id = False
self.product_socket.refresh()
self.assertEqual(
0.0,
self.product_socket.with_context(
warehouse_id=other_warehouse.id
).rma_qty_available
)
self.assertEqual(
0.0,
self.product_socket.with_context(
warehouse_id=other_warehouse.id
).rma_virtual_available
)
def test_multi(self):
inventory = self.env['stock.inventory'].create({
'name': 'Inventory for Sockets',
'location_id': self.loc_box_a.id,
'filter': 'partial'
})
inventory.prepare_inventory()
# Put 20 sockets and 10 shoes in box A
self.env['stock.inventory.line'].create({
'inventory_id': inventory.id,
'product_id': self.product_socket.id,
'location_id': self.loc_box_a.id,
'product_qty': 20,
})
self.env['stock.inventory.line'].create({
'inventory_id': inventory.id,
'product_id': self.product_shoes.id,
'location_id': self.loc_box_a.id,
'product_qty': 10,
})
inventory.action_done()
qties = self.env['product.product'].search_read(
[('id', 'in', [self.product_socket.id, self.product_shoes.id])],
['rma_qty_available', 'rma_virtual_available'],
order='id'
)
self.assertEqual([
{'id': self.product_socket.id, 'rma_qty_available': 20,
'rma_virtual_available': 20},
{'id': self.product_shoes.id, 'rma_qty_available': 10,
'rma_virtual_available': 10}
], qties)
def test_variants(self):
self.variant_shoes = self.env['product.product'].create({
'product_tmpl_id': self.product_shoes.product_tmpl_id.id,
'name': 'Variant shoes'
})
inventory = self.env['stock.inventory'].create({
'name': 'Inventory for Sockets',
'location_id': self.loc_box_a.id,
'filter': 'partial'
})
inventory.prepare_inventory()
# Put 5 shoes and 4 variant shoes in box A
self.env['stock.inventory.line'].create({
'inventory_id': inventory.id,
'product_id': self.product_shoes.id,
'location_id': self.loc_box_a.id,
'product_qty': 5,
})
self.env['stock.inventory.line'].create({
'inventory_id': inventory.id,
'product_id': self.variant_shoes.id,
'location_id': self.loc_box_a.id,
'product_qty': 4,
})
inventory.action_done()
# Confirmed move for 3 variant shoes in box B
self.env['stock.move'].create({
'name': 'Test move rma',
'state': 'confirmed',
'product_id': self.variant_shoes.id,
'product_uom_qty': 3,
'product_uom': self.variant_shoes.uom_id.id,
'location_id': self.ref('stock.stock_location_suppliers'),
'location_dest_id': self.loc_box_b.id,
})
self.assertEqual(5.0, self.product_shoes.rma_qty_available)
self.assertEqual(5.0, self.product_shoes.rma_virtual_available)
self.assertEqual(4.0, self.variant_shoes.rma_qty_available)
self.assertEqual(7.0, self.variant_shoes.rma_virtual_available)
shoes_template = self.product_shoes.product_tmpl_id
self.assertEqual(9.0, shoes_template.rma_qty_available)
self.assertEqual(12.0, shoes_template.rma_virtual_available)

View File

@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<odoo>
<record model="ir.ui.view" id="crm_claim_rma_form_view_loss">
<field name="name">CRM - Claim product return Form</field>
<field name="model">crm.claim</field>
<field name="inherit_id" ref="crm_claim_rma.crm_claim_rma_form_view"/>
<field name="arch" type="xml">
<button name="%(crm_claim_rma.action_claim_picking_in)d" position="after">
<button name="%(action_claim_picking_loss)d"
string="New Product Loss"
type="action" target="new"
context="{'warehouse_id': warehouse_id, 'partner_id': partner_id}"/>
</button>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="rma_product_product_tree_view" model="ir.ui.view">
<field name="name">product.stock.tree.inherit</field>
<field name="model">product.product</field>
<field name="arch" type="xml">
<tree string="Product Variants" create="false">
<field name="default_code"/>
<field name="name"/>
<field name="attribute_value_ids" widget="many2many_tags"/>
<field name="rma_qty_available"/>
<field name="rma_virtual_available"/>
</tree>
</field>
</record>
<record id="rma_product_search_view" model="ir.ui.view">
<field name="name">product.product.search</field>
<field name="model">product.product</field>
<field name="arch" type="xml">
<search string="RMA Products">
<separator/>
<filter name="rma_available" string="RMA Available Products"
domain="['|', ('rma_qty_available','&gt;',0), ('rma_virtual_available','&gt;',0)]"/>
</search>
</field>
</record>
<record id="rma_product_variant_action" model="ir.actions.act_window">
<field name="name">RMA Stock</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.product</field>
<field name="view_mode">tree</field>
<field name="view_type">form</field>
<field name="view_id" ref="rma_product_product_tree_view"/>
<field name="search_view_id" ref="rma_product_search_view"/>
<field name="context">{'search_default_rma_available': 1}</field>
</record>
<menuitem action="rma_product_variant_action"
id="menu_stock_rma" parent="base.menu_aftersale"
name="RMA Stock"
sequence="100"/>
</odoo>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="product_template_tree_view" model="ir.ui.view">
<field name="name">product.template.tree</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="stock.view_stock_product_template_tree"/>
<field name="arch" type="xml">
<field name="virtual_available" position="after">
<field name="rma_qty_available"/>
<field name="rma_virtual_available"/>
</field>
</field>
</record>
<record id="product_template_form_view_rma" model="ir.ui.view">
<field name="name">product.form.view.rma</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<group name='inventory' position="after">
<separator string="RMA"/>
<group name="rma">
<field name="rma_qty_available" class="oe_inline"/>
<field name="rma_virtual_available" class="oe_inline"/>
</group>
</group>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- INHERITED VIEW FOR THE OBJECT : stock_picking -->
<record id="picking_in_form" model="ir.ui.view">
<field name="name">crm_claim_rma.picking_in_form</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='state']" position="before">
<button name="%(action_stock_picking_from_claim_picking)d"
string="Product to stock" type="action"
attrs="{'invisible':['|',
('state','&lt;&gt;','done'),
('claim_id', '=', False)]}"/>
<button name="%(action_loss_picking_from_claim_picking)d"
string="Product to Loss" type="action"
attrs="{'invisible':['|',
('state','&lt;&gt;','done'),
('claim_id', '=', False)]}"/>
<button name="%(action_used_picking_from_claim_picking)d"
string="Product to refurbish stock" type="action"
attrs="{'invisible':['|',
('state','&lt;&gt;','done'),
('claim_id', '=', False)]}"/>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="warehouse_form" model="ir.ui.view">
<field name="name">crm_claim_rma.warehouse_form</field>
<field name="model">stock.warehouse</field>
<field name="inherit_id" ref="crm_rma_location.view_warehouse_form" />
<field name="arch" type="xml">
<xpath expr="//field[@name='lot_rma_id']" position="after">
<field name="loss_loc_id"/>
<field name="lot_refurbish_id"/>
</xpath>
</field>
</record>
</odoo>

View File

@@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import claim_make_picking_from_picking
from . import claim_make_picking

View File

@@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
# © 2015 Vauxoo
# © 2009-2012 Akretion
# Author: Emmanuel Samyn, Benoît GUILLOT <benoit.guillot@akretion.com>,
# Osval Reyes
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields
class ClaimMakePicking(models.TransientModel):
_inherit = 'claim_make_picking.wizard'
_description = 'Wizard to create pickings from claim lines'
def _default_claim_line_dest_location_id(self):
"""Return the location_id to use as destination.
If it's an outgoing shipment: take the customer stock property
If it's an incoming shipment take the location_dest_id common to all
lines, or if different, return None.
"""
picking_type = self.env.context.get('picking_type')
claim_id = self.env.context.get('active_id')
claim_record = self.env['crm.claim'].browse(claim_id)
if isinstance(picking_type, int):
picking_obj = self.env['stock.picking.type']
return picking_obj.browse(picking_type)\
.default_location_dest_id
if picking_type == 'out':
return claim_record.warehouse_id.rma_out_type_id.\
default_location_dest_id
elif picking_type == 'in':
return claim_record.warehouse_id.rma_in_type_id.\
default_location_dest_id
elif picking_type == 'int':
return claim_record.warehouse_id.rma_int_type_id.\
default_location_dest_id
elif picking_type == 'loss':
return claim_record.warehouse_id.loss_loc_id
return self.env['stock.location']
claim_line_dest_location_id = fields.Many2one(
default=_default_claim_line_dest_location_id)

View File

@@ -0,0 +1,164 @@
# -*- coding: utf-8 -*-
# © 2015 Vauxoo
# © 2009-2012 Akretion
# Author: Emmanuel Samyn, Benoît GUILLOT <benoit.guillot@akretion.com>,
# Osval Reyes
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
from openerp import workflow
import time
class ClaimMakePickingFromPicking(models.TransientModel):
_name = 'claim.make.picking.from.picking.wizard'
_description = 'Wizard to create pickings from picking lines'
@api.model
def _get_default_warehouse(self):
warehouse_id = self.env['crm.claim']._get_default_warehouse()
return warehouse_id
@api.model
def _get_picking_lines(self):
move_lines = self.env['stock.picking'].\
browse(self.env.context.get('active_id')).move_lines
return [mov.id for mov in move_lines]
@api.model
def _get_source_loc(self):
"""
Get default source location
"""
warehouse_id = self._get_default_warehouse()
picking_obj = self.env['stock.picking']
picking_id = self.env.context.get('active_id')
picking_rec = picking_obj.browse(picking_id)
if picking_rec.location_dest_id:
return picking_rec.location_dest_id.id
else:
return warehouse_id.lot_rma_id.id
@api.model
def _get_dest_loc(self):
"""
Get default destination location
"""
warehouse_id = self._get_default_warehouse()
loc_id = self.env['stock.location']
picking_type = self.env.context.get('picking_type')
picking_type_obj = self.env['stock.picking.type']
if isinstance(picking_type, int):
pick_t = picking_type_obj.browse(picking_type)
loc_id = pick_t.default_location_dest_id
else:
if picking_type == 'picking_stock':
loc_id = warehouse_id.lot_stock_id.id
if picking_type == 'picking_loss':
loc_id = warehouse_id.loss_loc_id.id
if picking_type == 'picking_refurbish':
loc_id = warehouse_id.lot_refurbish_id.id
return loc_id
picking_line_source_location = fields.Many2one(
'stock.location', 'Source Location',
help="Source location where the returned products are",
required=True, default=_get_source_loc
)
picking_line_dest_location = fields.Many2one(
'stock.location', 'Dest. Location',
help="Target location to send returned products",
required=True, default=_get_dest_loc
)
picking_line_ids = fields.Many2many(
'stock.move', 'claim_picking_line_picking', 'claim_picking_id',
'picking_line_id', 'Picking lines', default=_get_picking_lines
)
@api.multi
def action_cancel(self):
return {'type': 'ir.actions.act_window_close'}
@api.multi
def action_create_picking_from_picking(self):
"""
If "Create" button pressed
"""
picking_obj = self.env['stock.picking']
move_obj = self.env['stock.move']
view_obj = self.env['ir.ui.view']
if self.env.context.get('picking_type'):
context_type = self.env.context.get('picking_type')[8:]
note = 'Internal picking from RMA to %s' % context_type
name = 'Internal picking to %s' % context_type
view_id = view_obj.search([
('model', '=', 'stock.picking'),
('type', '=', 'form'),
('name', '=', 'stock.picking.form')
])[0]
prev_picking = picking_obj.browse(self.env.context.get('active_id'))
partner_id = prev_picking.partner_id.id
# create picking
picking_id = picking_obj.create({
'origin': prev_picking.origin,
'move_type': 'one',
'state': 'draft',
'date': time.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
'partner_id': prev_picking.partner_id.id,
'company_id': prev_picking.company_id.id,
'location_id': self.picking_line_source_location.id,
'location_dest_id': self.picking_line_dest_location.id,
'note': note,
'claim_id': prev_picking.claim_id.id,
'picking_type_id': prev_picking.claim_id.warehouse_id.id,
})
# Create picking lines
for wizard_picking_line in self.picking_line_ids:
move_id = move_obj.create({
'name': wizard_picking_line.product_id.name_template,
'priority': '0',
'date': time.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
'date_expected': time.strftime(
DEFAULT_SERVER_DATETIME_FORMAT),
'product_id': wizard_picking_line.product_id.id,
'product_uom_qty': wizard_picking_line.product_uom_qty,
'product_uom': wizard_picking_line.product_uom.id,
'partner_id': prev_picking.partner_id.id,
'picking_id': picking_id.id,
'state': 'draft',
'price_unit': wizard_picking_line.price_unit,
'company_id': prev_picking.company_id.id,
'location_id': self.picking_line_source_location.id,
'location_dest_id': self.picking_line_dest_location.id,
'note': note,
})
wizard_picking_line.write(
{'move_dest_id': move_id.id})
wf_service = workflow
if picking_id:
wf_service.trg_validate(
self._uid, 'stock.picking',
picking_id.id,
'button_confirm',
self._cr)
picking_id.action_assign()
domain = "[('picking_type_id','=','%s'),('partner_id','=',%s)]" % (
prev_picking.claim_id.warehouse_id.rma_int_type_id.id, partner_id)
return {
'name': '%s' % name,
'view_type': 'form',
'view_mode': 'form',
'view_id': view_id.id,
'domain': domain,
'res_model': 'stock.picking',
'res_id': picking_id.id,
'type': 'ir.actions.act_window',
}

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
crm_claim_rma for OpenERP
Copyright (C) 2011 Akretion Benoît GUILLOT <benoit.guillot@akretion.com>
The licence is in the file __openerp__.py
-->
<odoo>
<record id="view_claim_picking_from_picking" model="ir.ui.view">
<field name="name">claim_picking</field>
<field name="model">claim.make.picking.from.picking.wizard</field>
<field name="arch" type="xml">
<form string="Select lines to add in picking">
<separator string="Locations" colspan="4"/>
<field name="picking_line_source_location" nolabel="1" />
<field name="picking_line_dest_location" nolabel="1" />
<separator string="Select lines for picking" colspan="4"/>
<field name="picking_line_ids" nolabel="1" colspan="4"/>
<group col="4" colspan="2">
<button special="cancel" string="Cancel"
name="action_cancel" type="object"
icon='gtk-cancel'/>
<button name="action_create_picking_from_picking"
string="Create picking"
icon='gtk-ok' type="object"/>
</group>
</form>
</field>
</record>
<record id="action_stock_picking_from_claim_picking"
model="ir.actions.act_window">
<field name="name">Create Incoming Shipment to Stock</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">claim.make.picking.from.picking.wizard</field>
<field name="src_model">stock.picking</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="context">{'picking_type': 'picking_stock'}</field>
</record>
<record id="action_loss_picking_from_claim_picking"
model="ir.actions.act_window">
<field name="name">Create Incoming Shipment to Breakage Loss Location</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">claim.make.picking.from.picking.wizard</field>
<field name="src_model">stock.picking</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="context">{'picking_type': 'picking_loss'}
</field>
</record>
<record id="action_used_picking_from_claim_picking"
model="ir.actions.act_window">
<field name="name">Create Incoming Shipment to Refurbish Location</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">claim.make.picking.from.picking.wizard</field>
<field name="src_model">stock.picking</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="context">{'picking_type': 'picking_refurbish'}</field>
</record>
</odoo>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
crm_claim_rma for OpenERP
Copyright (C) 2011 Akretion Benoît GUILLOT <benoit.guillot@akretion.com>
The licence is in the file __openerp__.py
-->
<odoo>
<record id="action_claim_picking_loss" model="ir.actions.act_window">
<field name="name">Create a Product Loss</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">claim_make_picking.wizard</field>
<field name="src_model">crm.claim</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="context">{'picking_type': 'loss'}</field>
</record>
</odoo>