mirror of
https://github.com/OCA/rma.git
synced 2025-02-16 17:11:47 +02:00
Merge branch '8.0' into 8.0-squash_crm_rma_claim_make_claim_module_between_oca_vauxoo
This commit is contained in:
@@ -44,11 +44,13 @@ Available addons
|
||||
----------------
|
||||
addon | version | summary
|
||||
--- | --- | ---
|
||||
[crm_claim_rma](crm_claim_rma/) | 8.0.1.2.0 | RMA Claim (Product Return Management)
|
||||
[crm_claim_rma](crm_claim_rma/) | 8.0.1.1.1 | RMA Claim (Product Return Management)
|
||||
[crm_claim_rma_code](crm_claim_rma_code/) | 8.0.1.0.0 | CRM Claim RMA Code
|
||||
[crm_rma_location](crm_rma_location/) | 8.0.1.0.0 | RMA Location
|
||||
[crm_rma_lot_mass_return](crm_rma_lot_mass_return/) | 8.0.1.0.0 | RMA Claims Mass Return by Lot
|
||||
[crm_rma_prodlot_invoice](crm_rma_prodlot_invoice/) | 8.0.1.0.0 | CRM Claim Prodlot Invoice
|
||||
[crm_rma_prodlot_supplier](crm_rma_prodlot_supplier/) | 8.0.1.0.0 | Claim Prodlot Supplier
|
||||
[crm_rma_stock_location](crm_rma_stock_location/) | 8.0.1.0.0 | RMA Stock Location
|
||||
[product_warranty](product_warranty/) | 8.0.1.0.0 | Product warranty
|
||||
|
||||
Unported addons
|
||||
@@ -57,10 +59,7 @@ addon | version | summary
|
||||
--- | --- | ---
|
||||
[crm_claim_categ_as_name](crm_claim_categ_as_name/) | 1.0 (unported) | crm_claim_categ_as_name
|
||||
[crm_claim_ext](crm_claim_ext/) | 1.0 (unported) | CRM claim extension
|
||||
[crm_rma_advance_location](crm_rma_advance_location/) | 1.0 (unported) | RMA Claims Advance Location
|
||||
[crm_rma_by_shop](crm_rma_by_shop/) | 1.0 (unported) | RMA Claims by shop
|
||||
[crm_rma_lot_mass_return](crm_rma_lot_mass_return/) | 1.0 (unported) | RMA Claims Mass Return by Lot
|
||||
[crm_rma_stock_location](crm_rma_stock_location/) | 1.0 (unported) | RMA Stock Location
|
||||
|
||||
[//]: # (end addons)
|
||||
|
||||
|
||||
75
crm_claim_product_supplier/README.rst
Normal file
75
crm_claim_product_supplier/README.rst
Normal file
@@ -0,0 +1,75 @@
|
||||
.. 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
|
||||
|
||||
==========================
|
||||
CRM Claim Product Supplier
|
||||
==========================
|
||||
|
||||
This module adds information in claim lines to keep supplier and supplier
|
||||
invoice when creating/editing a claim.
|
||||
|
||||
As this module shows, this is not used directly be the end user, it may be used
|
||||
as complementary for another modules to explode information stored by this one.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
To install this module, just select it from available modules
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Aditional configuration is not needed
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
* End-user direct usage is not possible, all the functionality contained in this
|
||||
module is done under the hood and no view is included
|
||||
|
||||
.. 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/8.0
|
||||
|
||||
For further information, please visit:
|
||||
|
||||
* https://www.odoo.com/forum/help-1
|
||||
|
||||
Known issues / Roadmap
|
||||
======================
|
||||
|
||||
No issues exists yet
|
||||
|
||||
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
|
||||
`here <https://github.com/OCA/rma/issues/new?body=module:%20crm_claim_product_supplier%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
* Yanina Aular <yanina.aular@vauxoo.com>
|
||||
* Osval Reyes <osval@vauxoo.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 http://odoo-community.org.
|
||||
@@ -1,9 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2013 Camptocamp
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau, Joel Grand-Guillaume
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Yanina Aular
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -19,5 +18,5 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from . import stock
|
||||
from . import wizard
|
||||
|
||||
from . import models
|
||||
34
crm_claim_product_supplier/__openerp__.py
Normal file
34
crm_claim_product_supplier/__openerp__.py
Normal file
@@ -0,0 +1,34 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Yanina Aular
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
'name': 'CRM Claim Product Supplier',
|
||||
'version': '8.0.1.0.0',
|
||||
'author': 'Vauxoo, Odoo Community Association (OCA)',
|
||||
'website': 'http://www.vauxoo.com/',
|
||||
'license': 'AGPL-3',
|
||||
'category': 'Generic Modules/CRM & SRM',
|
||||
'depends': [
|
||||
'crm_rma_lot_mass_return',
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_claim_product_supplier
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-14 19:24+0000\n"
|
||||
"PO-Revision-Date: 2015-08-14 19:24+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"
|
||||
|
||||
#. module: crm_claim_product_supplier
|
||||
#: model:ir.model,name:crm_claim_product_supplier.model_claim_line
|
||||
msgid "List of product to return"
|
||||
msgstr ""
|
||||
16
crm_claim_product_supplier/i18n/es.po
Normal file
16
crm_claim_product_supplier/i18n/es.po
Normal file
@@ -0,0 +1,16 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_claim_product_supplier
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-07-17 18:01+0000\n"
|
||||
"PO-Revision-Date: 2015-07-17 18:01+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"
|
||||
21
crm_claim_product_supplier/models/__init__.py
Normal file
21
crm_claim_product_supplier/models/__init__.py
Normal file
@@ -0,0 +1,21 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Yanina Aular
|
||||
#
|
||||
# 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 claim_line
|
||||
32
crm_claim_product_supplier/models/claim_line.py
Normal file
32
crm_claim_product_supplier/models/claim_line.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Yanina Aular
|
||||
#
|
||||
# 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 import fields, models
|
||||
|
||||
|
||||
class ClaimLine(models.Model):
|
||||
|
||||
_inherit = 'claim.line'
|
||||
|
||||
supplier_id = fields.Many2one(comodel_name='res.partner',
|
||||
related='prodlot_id.supplier_id')
|
||||
supplier_invoice_id = fields.Many2one(
|
||||
comodel_name='account.invoice',
|
||||
related="prodlot_id.supplier_invoice_line_id.invoice_id")
|
||||
@@ -1,8 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Author: Guewen Baconnier
|
||||
# Copyright 2014 Camptocamp SA
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Osval Reyes
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -19,12 +19,4 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from openerp.osv import orm, fields
|
||||
|
||||
|
||||
class StockWarehouse(orm.Model):
|
||||
_inherit = 'stock.warehouse'
|
||||
|
||||
_columns = {
|
||||
'lot_rma_id': fields.many2one('stock.location', 'Location RMA'),
|
||||
}
|
||||
from . import test_crm_claim_product_supplier
|
||||
@@ -0,0 +1,67 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Osval Reyes
|
||||
#
|
||||
# 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.tests.common import TransactionCase
|
||||
|
||||
|
||||
class TestCrmClaimProductSupplier(TransactionCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestCrmClaimProductSupplier, self).setUp()
|
||||
self.sale_order_id = self.env.ref(
|
||||
'crm_rma_lot_mass_return.so_wizard_rma_1')
|
||||
self.invoice_id = self.sale_order_id.invoice_ids[0]
|
||||
self.metasearch_wizard = self.env['returned.lines.from.serial.wizard']
|
||||
self.lot_id = self.env.ref(
|
||||
'crm_rma_lot_mass_return.lot_purchase_wizard_rma_item_5')
|
||||
|
||||
# Create the claim with a claim line
|
||||
self.claim_id = self.env['crm.claim'].create({
|
||||
'name': 'TEST CLAIM',
|
||||
'claim_type': self.ref('crm_claim_type.'
|
||||
'crm_claim_type_customer'),
|
||||
'partner_id': self.sale_order_id.partner_id.id,
|
||||
})
|
||||
|
||||
wizard_id = self.metasearch_wizard.with_context({
|
||||
'active_model': self.claim_id._name,
|
||||
'active_id': self.claim_id.id,
|
||||
'active_ids': [self.claim_id.id]
|
||||
}).create({})
|
||||
|
||||
# Get ids for invoice lines
|
||||
lines_list_id = wizard_id.onchange_load_products(
|
||||
self.lot_id.name + '\n', [(6, 0, [])]
|
||||
)['domain']['lines_list_id'][0][2]
|
||||
|
||||
# Get ids for invoice lines
|
||||
lines_list_id = self.env['claim.line.wizard'].search(
|
||||
[('lot_id.name', '=', 'IPAD0001')]).mapped('id')
|
||||
|
||||
wizard_id.option_ids = lines_list_id
|
||||
wizard_id.lines_list_id = [(6, 0, lines_list_id)]
|
||||
|
||||
wizard_id.add_claim_lines()
|
||||
|
||||
def test_01_product_supplier(self):
|
||||
claim_line_id = self.claim_id.claim_line_ids[0]
|
||||
self.assertTrue(claim_line_id.supplier_id)
|
||||
self.assertTrue(claim_line_id.supplier_invoice_id)
|
||||
@@ -71,6 +71,7 @@ Contributors:
|
||||
* Joel Grand-Guillaume <joel.grandguillaume@camptocamp.com>
|
||||
* Guewen Baconnier <guewen.baconnier@camptocamp.com>
|
||||
* Yannick Vaucher <yannick.vaucher@camptocamp.com>
|
||||
* Javier Carrasco <javier.carrasco@eezee-it.com>
|
||||
* Yanina Aular <yanina.aular@vauxoo.com>
|
||||
* Osval Reyes <osval@vauxoo.com>
|
||||
|
||||
|
||||
1049
crm_claim_rma/i18n/en.po
Normal file
1049
crm_claim_rma/i18n/en.po
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1049
crm_claim_rma/i18n/ro.po
Normal file
1049
crm_claim_rma/i18n/ro.po
Normal file
File diff suppressed because it is too large
Load Diff
1050
crm_claim_rma/i18n/sl.po
Normal file
1050
crm_claim_rma/i18n/sl.po
Normal file
File diff suppressed because it is too large
Load Diff
23
crm_claim_rma_code/i18n/en.po
Normal file
23
crm_claim_rma_code/i18n/en.po
Normal file
@@ -0,0 +1,23 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_claim_rma_code
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-03 17:05+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_claim_rma_code
|
||||
#: field:crm.claim.type,ir_sequence_id:0
|
||||
msgid "Sequence Code"
|
||||
msgstr "Sequence Code"
|
||||
24
crm_claim_rma_code/i18n/sl.po
Normal file
24
crm_claim_rma_code/i18n/sl.po
Normal file
@@ -0,0 +1,24 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_claim_rma_code
|
||||
#
|
||||
# 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: 2015-12-05 22:30+0000\n"
|
||||
"PO-Revision-Date: 2015-12-11 20:25+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_claim_rma_code
|
||||
#: field:crm.claim.type,ir_sequence_id:0
|
||||
msgid "Sequence Code"
|
||||
msgstr "Zaporedna številka"
|
||||
@@ -1,65 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2013 Camptocamp
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau, Joel Grand-Guillaume
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{'name': 'RMA Claims Advance Location',
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/CRM & SRM',
|
||||
'depends': ['crm_claim_rma',
|
||||
'crm_rma_stock_location',
|
||||
],
|
||||
'author': "Akretion,Odoo Community Association (OCA)",
|
||||
'license': 'AGPL-3',
|
||||
'website': 'http://www.akretion.com',
|
||||
'description': """
|
||||
RMA Claim Advance Location
|
||||
==========================
|
||||
|
||||
This module adds the following location on warehouses :
|
||||
|
||||
* Carrier Loss
|
||||
* RMA
|
||||
* Breakage Loss
|
||||
* Refurbish
|
||||
* Mistake Loss
|
||||
|
||||
And also various wizards on icoming 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 complexe:
|
||||
|
||||
* Returning product goes into RMA location with a incoming shipment
|
||||
* From the incoming shipment, forward them to another places (stock, loss,...)
|
||||
|
||||
WARNING: Use with caution, this module is currently not yet completely debugged and is waiting his author to be.
|
||||
|
||||
""",
|
||||
'images': [],
|
||||
'demo': [],
|
||||
'data': ['wizard/claim_make_picking_from_picking_view.xml',
|
||||
'wizard/claim_make_picking_view.xml',
|
||||
'stock_view.xml',
|
||||
'stock_data.xml',
|
||||
'claim_rma_view.xml',
|
||||
],
|
||||
'installable': False,
|
||||
'application': True,
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="crm_claim_rma_form_view">
|
||||
<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">
|
||||
<xpath expr="//button[@string='New Delivery']" position="after">
|
||||
<button name="%(action_claim_picking_loss)d"
|
||||
string="New Product Loss" states="open"
|
||||
type="action" target="new"
|
||||
context="{'warehouse_id': warehouse_id,
|
||||
'partner_id': partner_id}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,122 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_advance_location
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 7.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-11-15 13:27+0000\n"
|
||||
"PO-Revision-Date: 2013-11-15 13:27+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"
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:ir.actions.act_window,name:crm_rma_advance_location.action_claim_picking_loss
|
||||
msgid "Create Products Loss"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:ir.actions.act_window,name:crm_rma_advance_location.action_used_picking_from_claim_picking
|
||||
msgid "Create Incomming Shipment to Refurbish Location"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: view:claim_make_picking_from_picking.wizard:0
|
||||
msgid "Locations"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: view:claim_make_picking_from_picking.wizard:0
|
||||
msgid "Select lines for picking"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:stock.location,name:crm_rma_advance_location.stock_location_breakage_loss
|
||||
msgid "Breakage Loss"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:ir.model,name:crm_rma_advance_location.model_claim_make_picking_wizard
|
||||
msgid "Wizard to create pickings from claim lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:stock.location,name:crm_rma_advance_location.stock_location_carrier_loss
|
||||
msgid "Carrier Loss"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:stock.location,name:crm_rma_advance_location.stock_location_mistake_loss
|
||||
msgid "Mistake Loss"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:ir.actions.act_window,name:crm_rma_advance_location.action_loss_picking_from_claim_picking
|
||||
msgid "Create Incomming Shipment to Breakkage Loss Location"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: view:stock.picking.in:0
|
||||
msgid "Product to refurbish stock"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:ir.model,name:crm_rma_advance_location.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:stock.location,name:crm_rma_advance_location.stock_location_rma
|
||||
msgid "RMA"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:stock.location,name:crm_rma_advance_location.stock_location_refurbish
|
||||
msgid "Refurbish"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: view:stock.picking.in:0
|
||||
msgid "Product to stock"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:ir.actions.act_window,name:crm_rma_advance_location.action_stock_picking_from_claim_picking
|
||||
msgid "Create Incomming Shipment to Stock"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: view:claim_make_picking_from_picking.wizard:0
|
||||
msgid "Create picking"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: view:claim_make_picking_from_picking.wizard:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: view:crm.claim:0
|
||||
msgid "New Product Loss"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: model:ir.model,name:crm_rma_advance_location.model_claim_make_picking_from_picking_wizard
|
||||
msgid "Wizard to create pickings from picking lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: view:stock.picking.in:0
|
||||
msgid "Product to Loss"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_advance_location
|
||||
#: view:claim_make_picking_from_picking.wizard:0
|
||||
msgid "Select lines to add in picking"
|
||||
msgstr ""
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2013 Camptocamp
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau, Joel Grand-Guillaume
|
||||
#
|
||||
# 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 fields, orm
|
||||
|
||||
|
||||
class stock_warehouse(orm.Model):
|
||||
|
||||
_inherit = "stock.warehouse"
|
||||
|
||||
_columns = {
|
||||
'lot_carrier_loss_id': fields.many2one(
|
||||
'stock.location',
|
||||
'Location Carrier Loss'),
|
||||
'lot_breakage_loss_id': fields.many2one(
|
||||
'stock.location',
|
||||
'Location Breakage Loss'),
|
||||
'lot_refurbish_id': fields.many2one(
|
||||
'stock.location',
|
||||
'Location Refurbish'),
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<!--
|
||||
Default Values for : Stock Location
|
||||
-->
|
||||
<record id="stock_location_carrier_loss" model="stock.location">
|
||||
<field name="name">Carrier Loss</field>
|
||||
<field name="usage">internal</field>
|
||||
<field name="location_id" ref="stock.stock_location_company"/>
|
||||
</record>
|
||||
<record id="stock_location_breakage_loss" model="stock.location">
|
||||
<field name="name">Breakage Loss</field>
|
||||
<field name="usage">internal</field>
|
||||
<field name="location_id" ref="stock.stock_location_company"/>
|
||||
</record>
|
||||
<record id="stock_location_refurbish" model="stock.location">
|
||||
<field name="name">Refurbish</field>
|
||||
<field name="usage">internal</field>
|
||||
<field name="location_id" ref="stock.stock_location_company"/>
|
||||
</record>
|
||||
<record id="stock_location_mistake_loss" model="stock.location">
|
||||
<field name="name">Mistake Loss</field>
|
||||
<field name="usage">internal</field>
|
||||
<field name="location_id" ref="stock.stock_location_company"/>
|
||||
</record>
|
||||
<!--
|
||||
Default Values for : Stock Warehouse
|
||||
-->
|
||||
<record id="stock.warehouse0" model="stock.warehouse">
|
||||
<field name="lot_breakage_loss_id" ref="stock_location_breakage_loss"/>
|
||||
<field name="lot_carrier_loss_id" ref="stock_location_carrier_loss"/>
|
||||
<field name="lot_refurbish_id" ref="stock_location_refurbish"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,53 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#########################################################################
|
||||
# #
|
||||
# #
|
||||
#########################################################################
|
||||
# #
|
||||
# crm_claim_rma for OpenERP #
|
||||
# Copyright (C) 2009-2012 Akretion, Emmanuel Samyn, #
|
||||
# Benoît GUILLOT <benoit.guillot@akretion.com> #
|
||||
#This program is free software: you can redistribute it and/or modify #
|
||||
#it under the terms of the GNU 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 General Public License for more details. #
|
||||
# #
|
||||
#You should have received a copy of the GNU General Public License #
|
||||
#along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
||||
#########################################################################
|
||||
from openerp.osv import orm
|
||||
|
||||
|
||||
class claim_make_picking(orm.TransientModel):
|
||||
|
||||
_inherit = 'claim_make_picking.wizard'
|
||||
|
||||
def _get_dest_loc(self, cr, uid, context=None):
|
||||
""" Get default destination location """
|
||||
loc_id = super(claim_make_picking, self)._get_dest_loc(cr, uid, context=context)
|
||||
if context is None:
|
||||
context = {}
|
||||
warehouse_obj = self.pool.get('stock.warehouse')
|
||||
warehouse_id = context.get('warehouse_id')
|
||||
if context.get('picking_type') == 'in':
|
||||
loc_id = warehouse_obj.read(
|
||||
cr, uid,
|
||||
warehouse_id,
|
||||
['lot_rma_id'],
|
||||
context=context)['lot_rma_id'][0]
|
||||
elif context.get('picking_type') == 'loss':
|
||||
loc_id = warehouse_obj.read(
|
||||
cr, uid,
|
||||
warehouse_id,
|
||||
['lot_carrier_loss_id'],
|
||||
context=context)['lot_carrier_loss_id'][0]
|
||||
return loc_id
|
||||
|
||||
_defaults = {
|
||||
'claim_line_dest_location': _get_dest_loc,
|
||||
}
|
||||
@@ -1,169 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#########################################################################
|
||||
# #
|
||||
# #
|
||||
#########################################################################
|
||||
# #
|
||||
# crm_claim_rma for OpenERP #
|
||||
# Copyright (C) 2009-2012 Akretion, Emmanuel Samyn, #
|
||||
# Benoît GUILLOT <benoit.guillot@akretion.com> #
|
||||
#This program is free software: you can redistribute it and/or modify #
|
||||
#it under the terms of the GNU 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 General Public License for more details. #
|
||||
# #
|
||||
#You should have received a copy of the GNU General Public License #
|
||||
#along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
||||
#########################################################################
|
||||
from openerp.osv import fields, orm
|
||||
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
|
||||
from openerp import netsvc
|
||||
import time
|
||||
|
||||
|
||||
class claim_make_picking_from_picking(orm.TransientModel):
|
||||
|
||||
_name = 'claim_make_picking_from_picking.wizard'
|
||||
_description = 'Wizard to create pickings from picking lines'
|
||||
_columns = {
|
||||
'picking_line_source_location': fields.many2one('stock.location',
|
||||
'Source Location',
|
||||
help="Location where the returned products are from.",
|
||||
required=True),
|
||||
'picking_line_dest_location': fields.many2one('stock.location',
|
||||
'Dest. Location',
|
||||
help="Location where the system will stock the returned products.",
|
||||
required=True),
|
||||
'picking_line_ids': fields.many2many('stock.move',
|
||||
'claim_picking_line_picking',
|
||||
'claim_picking_id',
|
||||
'picking_line_id',
|
||||
'Picking lines'),
|
||||
}
|
||||
|
||||
def _get_default_warehouse(self, cr, uid, context=None):
|
||||
warehouse_id=self.pool.get('crm.claim')._get_default_warehouse(cr, uid, context=context)
|
||||
return warehouse_id
|
||||
|
||||
def _get_picking_lines(self, cr, uid, context):
|
||||
return self.pool.get('stock.picking').read(cr, uid,
|
||||
context['active_id'], ['move_lines'], context=context)['move_lines']
|
||||
|
||||
# Get default source location
|
||||
def _get_source_loc(self, cr, uid, context):
|
||||
if context is None:
|
||||
context = {}
|
||||
warehouse_obj = self.pool.get('stock.warehouse')
|
||||
warehouse_id = self._get_default_warehouse(cr, uid, context=context)
|
||||
return warehouse_obj.read(cr, uid,
|
||||
warehouse_id, ['lot_rma_id'], context=context)['lot_rma_id'][0]
|
||||
|
||||
# Get default destination location
|
||||
def _get_dest_loc(self, cr, uid, context):
|
||||
if context is None:
|
||||
context = {}
|
||||
warehouse_id = self._get_default_warehouse(cr, uid, context=context)
|
||||
warehouse_obj = self.pool.get('stock.warehouse')
|
||||
if context.get('picking_type'):
|
||||
context_loc = context.get('picking_type')[8:]
|
||||
loc_field = 'lot_%s_id' %context.get('picking_type')[8:]
|
||||
loc_id = warehouse_obj.read(cr, uid,
|
||||
warehouse_id, [loc_field], context=context)[loc_field][0]
|
||||
return loc_id
|
||||
|
||||
_defaults = {
|
||||
'picking_line_source_location': _get_source_loc,
|
||||
'picking_line_dest_location': _get_dest_loc,
|
||||
'picking_line_ids': _get_picking_lines,
|
||||
}
|
||||
|
||||
def action_cancel(self,cr,uid,ids,conect=None):
|
||||
return {'type': 'ir.actions.act_window_close',}
|
||||
|
||||
# If "Create" button pressed
|
||||
def action_create_picking_from_picking(self, cr, uid, ids, context=None):
|
||||
picking_obj = self.pool.get('stock.picking')
|
||||
move_obj = self.pool.get('stock.move')
|
||||
view_obj = self.pool.get('ir.ui.view')
|
||||
if context is None:
|
||||
context = {}
|
||||
p_type = 'internal'
|
||||
if context.get('picking_type'):
|
||||
context_type = 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(cr, uid, [
|
||||
('xml_id', '=', 'view_picking_form'),
|
||||
('model', '=', 'stock.picking'),
|
||||
('type', '=', 'form'),
|
||||
('name', '=', 'stock.picking.form')
|
||||
], context=context)[0]
|
||||
wizard = self.browse(cr, uid, ids[0], context=context)
|
||||
prev_picking = picking_obj.browse(cr, uid,
|
||||
context['active_id'], context=context)
|
||||
partner_id = prev_picking.partner_id.id
|
||||
# create picking
|
||||
picking_id = picking_obj.create(cr, uid, {
|
||||
'origin': prev_picking.origin,
|
||||
'type': p_type,
|
||||
'move_type': 'one', # direct
|
||||
'state': 'draft',
|
||||
'date': time.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
|
||||
'partner_id': prev_picking.partner_id.id,
|
||||
'invoice_state': "none",
|
||||
'company_id': prev_picking.company_id.id,
|
||||
'location_id': wizard.picking_line_source_location.id,
|
||||
'location_dest_id': wizard.picking_line_dest_location.id,
|
||||
'note' : note,
|
||||
'claim_id': prev_picking.claim_id.id,
|
||||
})
|
||||
# Create picking lines
|
||||
for wizard_picking_line in wizard.picking_line_ids:
|
||||
move_id = move_obj.create(cr, uid, {
|
||||
'name' : wizard_picking_line.product_id.name_template, # Motif : crm id ? stock_picking_id ?
|
||||
'priority': '0',
|
||||
#'create_date':
|
||||
'date': time.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
|
||||
'date_expected': time.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
|
||||
'product_id': wizard_picking_line.product_id.id,
|
||||
'product_qty': wizard_picking_line.product_qty,
|
||||
'product_uom': wizard_picking_line.product_uom.id,
|
||||
'partner_id': prev_picking.partner_id.id,
|
||||
'prodlot_id': wizard_picking_line.prodlot_id.id,
|
||||
# 'tracking_id':
|
||||
'picking_id': picking_id,
|
||||
'state': 'draft',
|
||||
'price_unit': wizard_picking_line.price_unit,
|
||||
# 'price_currency_id': claim_id.company_id.currency_id.id, # from invoice ???
|
||||
'company_id': prev_picking.company_id.id,
|
||||
'location_id': wizard.picking_line_source_location.id,
|
||||
'location_dest_id': wizard.picking_line_dest_location.id,
|
||||
'note': note,
|
||||
})
|
||||
wizard_move = move_obj.write(cr, uid,
|
||||
wizard_picking_line.id,
|
||||
{'move_dest_id': move_id},
|
||||
context=context)
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
if picking_id:
|
||||
wf_service.trg_validate(uid,
|
||||
'stock.picking', picking_id,'button_confirm', cr)
|
||||
picking_obj.action_assign(cr, uid, [picking_id])
|
||||
domain = "[('type','=','%s'),('partner_id','=',%s)]"%(p_type, partner_id)
|
||||
return {
|
||||
'name': '%s' % name,
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
'view_id': view_id,
|
||||
'domain' : domain,
|
||||
'res_model': 'stock.picking',
|
||||
'res_id': picking_id,
|
||||
'type': 'ir.actions.act_window',
|
||||
}
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -1,46 +1,48 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_location
|
||||
#
|
||||
# * crm_rma_location
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-07-17 19:39+0000\n"
|
||||
"PO-Revision-Date: 2015-07-17 19:39+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-03 17:06+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"
|
||||
"Plural-Forms: \n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/stock.py:60
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:73
|
||||
#, python-format
|
||||
msgid " Sequence in"
|
||||
msgstr "Secuencia de entrada"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/stock.py:72
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:83
|
||||
#, python-format
|
||||
msgid " Sequence internal"
|
||||
msgstr "Secuencia interna"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/stock.py:66
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:78
|
||||
#, python-format
|
||||
msgid " Sequence out"
|
||||
msgstr "Secuencia de salida"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/stock.py:166
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:161
|
||||
#, python-format
|
||||
msgid "RMA"
|
||||
msgstr "RMA"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/stock.py:120
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:115
|
||||
#, python-format
|
||||
msgid "RMA Delivery Orders"
|
||||
msgstr "Órdenes de envío de RMA"
|
||||
@@ -51,7 +53,7 @@ msgid "RMA In Type"
|
||||
msgstr "Entradas en RMA"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/stock.py:134
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:129
|
||||
#, python-format
|
||||
msgid "RMA Internal Transfers"
|
||||
msgstr "Transferencias internas en RMA"
|
||||
@@ -72,7 +74,7 @@ msgid "RMA Out Type"
|
||||
msgstr "Salidas en RMA"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/stock.py:108
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:103
|
||||
#, python-format
|
||||
msgid "RMA Receipts"
|
||||
msgstr "Recepciones de RMA"
|
||||
@@ -81,4 +83,3 @@ msgstr "Recepciones de RMA"
|
||||
#: model:ir.model,name:crm_rma_location.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Almacén"
|
||||
|
||||
|
||||
85
crm_rma_location/i18n/fr.po
Normal file
85
crm_rma_location/i18n/fr.po
Normal file
@@ -0,0 +1,85 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_location
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-03 17:05+0000\n"
|
||||
"Last-Translator: <>\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"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:73
|
||||
#, python-format
|
||||
msgid " Sequence in"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:83
|
||||
#, python-format
|
||||
msgid " Sequence internal"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:78
|
||||
#, python-format
|
||||
msgid " Sequence out"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:161
|
||||
#, python-format
|
||||
msgid "RMA"
|
||||
msgstr "RMA"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:115
|
||||
#, python-format
|
||||
msgid "RMA Delivery Orders"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: field:stock.warehouse,rma_in_type_id:0
|
||||
msgid "RMA In Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:129
|
||||
#, python-format
|
||||
msgid "RMA Internal Transfers"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: field:stock.warehouse,rma_int_type_id:0
|
||||
msgid "RMA Internal Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: field:stock.warehouse,lot_rma_id:0
|
||||
msgid "RMA Location"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: field:stock.warehouse,rma_out_type_id:0
|
||||
msgid "RMA Out Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:103
|
||||
#, python-format
|
||||
msgid "RMA Receipts"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: model:ir.model,name:crm_rma_location.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Entrepôt"
|
||||
86
crm_rma_location/i18n/sl.po
Normal file
86
crm_rma_location/i18n/sl.po
Normal file
@@ -0,0 +1,86 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_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: 2015-12-12 22:57+0000\n"
|
||||
"PO-Revision-Date: 2015-12-13 06:20+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_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:73
|
||||
#, python-format
|
||||
msgid " Sequence in"
|
||||
msgstr "Vhodno zaporedje"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:83
|
||||
#, python-format
|
||||
msgid " Sequence internal"
|
||||
msgstr "Interno zaporedje"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:78
|
||||
#, python-format
|
||||
msgid " Sequence out"
|
||||
msgstr "Izhodno zaporedje"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:161
|
||||
#, python-format
|
||||
msgid "RMA"
|
||||
msgstr "Pooblastilo vračila blaga - PVB"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:115
|
||||
#, python-format
|
||||
msgid "RMA Delivery Orders"
|
||||
msgstr "PVB dobavni nalogi"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: field:stock.warehouse,rma_in_type_id:0
|
||||
msgid "RMA In Type"
|
||||
msgstr "PVB vhodni tip"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:129
|
||||
#, python-format
|
||||
msgid "RMA Internal Transfers"
|
||||
msgstr "PVB interni transferji"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: field:stock.warehouse,rma_int_type_id:0
|
||||
msgid "RMA Internal Type"
|
||||
msgstr "PVB interni tip"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: field:stock.warehouse,lot_rma_id:0
|
||||
msgid "RMA Location"
|
||||
msgstr "PVB lokacija"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: field:stock.warehouse,rma_out_type_id:0
|
||||
msgid "RMA Out Type"
|
||||
msgstr "PVB izhodni tip"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: code:addons/crm_rma_location/models/stock_warehouse.py:103
|
||||
#, python-format
|
||||
msgid "RMA Receipts"
|
||||
msgstr "PVB prejemi"
|
||||
|
||||
#. module: crm_rma_location
|
||||
#: model:ir.model,name:crm_rma_location.model_stock_warehouse
|
||||
msgid "Warehouse"
|
||||
msgstr "Skladišče"
|
||||
86
crm_rma_lot_mass_return/README.rst
Normal file
86
crm_rma_lot_mass_return/README.rst
Normal file
@@ -0,0 +1,86 @@
|
||||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
|
||||
:alt: License: AGPL-3
|
||||
|
||||
============================
|
||||
RMA Claim Mass Return by Lot
|
||||
============================
|
||||
|
||||
This module adds possibility to return a whole lot of product from an invoice
|
||||
and create a incoming shipment for them based on serial/lot for a product or
|
||||
invoice number.
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
To install this module, just select it from availables modules
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
No configuration is need for this module
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To use this module, you need to:
|
||||
|
||||
* Go into Sales > After-Sale services > Claims
|
||||
|
||||
* A button named "Mass return from serial/lot or invoice" will appear in the
|
||||
form view when creating or editing an existing claim.
|
||||
|
||||
* Enter into the wizard and introduce serial/lot for an invoiced product or
|
||||
invoice number and press enter.
|
||||
|
||||
* A list of selectable items it will show below or next to the input box
|
||||
depending upon is introduced either invoice number or serial/lot number
|
||||
respectively. When finish adding, click on Validate button and then Ok
|
||||
to exit of wizard and continue editing the claim.
|
||||
|
||||
|
||||
.. 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/8.0
|
||||
|
||||
|
||||
For further information, please visit:
|
||||
|
||||
* https://www.odoo.com/forum/help-1
|
||||
|
||||
Known issues / Roadmap
|
||||
======================
|
||||
|
||||
* No issues are registered
|
||||
|
||||
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
|
||||
`here <https://github.com/OCA/rma/issues/new?body=module:%20crm_rma_lot_mass_return%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
* Yanina Aular <yanina.aular@vauxoo.com>
|
||||
* Osval Reyes <osval@vauxoo.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 http://odoo-community.org.
|
||||
@@ -1,9 +1,11 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Copyright 2013 Camptocamp
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau, Joel Grand-Guillaume
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
|
||||
# Joel Grand-Guillaume
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -19,4 +21,6 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
from . import wizard
|
||||
|
||||
from . import models
|
||||
from . import wizards
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Copyright 2013 Camptocamp
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau, Joel Grand-Guillaume
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
|
||||
# Joel Grand-Guillaume,
|
||||
# Yanina Aular, Osval Reyes
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -20,31 +23,29 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{'name': 'RMA Claims Mass Return by Lot',
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/CRM & SRM',
|
||||
'depends': ['crm_claim_rma'
|
||||
],
|
||||
'author': "Akretion,Odoo Community Association (OCA)",
|
||||
'license': 'AGPL-3',
|
||||
'website': 'http://www.akretion.com',
|
||||
'description': """
|
||||
RMA Claim Mass Return by Lot
|
||||
============================
|
||||
|
||||
This module adds possibility to return a whole lot of product from a Claim
|
||||
and create a incoming shipment for them.
|
||||
|
||||
|
||||
WARNING: This module is currently not yet completely debugged and is waiting his author to be.
|
||||
|
||||
""",
|
||||
'images': [],
|
||||
'demo': [],
|
||||
'data': [
|
||||
'wizard/returned_lines_from_serial_wizard_view.xml',
|
||||
'crm_rma_view.xml',
|
||||
],
|
||||
'installable': False,
|
||||
'application': True,
|
||||
{
|
||||
'name': 'RMA Claims Mass Return by Lot',
|
||||
'version': '8.0.1.0.0',
|
||||
'category': 'Generic Modules/CRM & SRM',
|
||||
'author': 'Vauxoo,Akretion,Odoo Community Association (OCA)',
|
||||
'license': 'AGPL-3',
|
||||
'website': 'http://www.vauxoo.com, http://www.akretion.com',
|
||||
'depends': [
|
||||
'crm_claim_rma',
|
||||
'crm_rma_prodlot_invoice',
|
||||
'crm_rma_prodlot_supplier',
|
||||
],
|
||||
'data': [
|
||||
'wizards/returned_lines_from_serial_wizard.xml',
|
||||
'views/crm_claim.xml',
|
||||
'templates/search_view.xml'
|
||||
],
|
||||
'demo': [
|
||||
'demo/stock_production_lot.xml',
|
||||
'demo/purchase_order.xml',
|
||||
'demo/sale_order.xml',
|
||||
'demo/transfer_details.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False
|
||||
}
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="crm_claim_rma_form_view">
|
||||
<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">
|
||||
<xpath expr="//page[@string='Product Return']/group/group[2]" position="inside">
|
||||
<button name="%(action_create_return_serial)d" string="Mass return from serial/lot" states="draft,open" type="action" target="new"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
69
crm_rma_lot_mass_return/demo/purchase_order.xml
Normal file
69
crm_rma_lot_mass_return/demo/purchase_order.xml
Normal file
@@ -0,0 +1,69 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Purchase Order -->
|
||||
|
||||
<record id="po_wizard_rma_1" model="purchase.order">
|
||||
<field name="name">POWIZARDCLAIM001</field>
|
||||
<field name="date_order">2015-05-08 18:17:05</field>
|
||||
<field name="invoice_method">order</field>
|
||||
<field name="partner_id" ref="base.res_partner_21"/>
|
||||
<field name="currency_id" ref="base.EUR"/>
|
||||
<field name="pricelist_id" ref="purchase.list0"/>
|
||||
<field name="location_id" ref="stock.stock_location_stock"/>
|
||||
</record>
|
||||
|
||||
<!-- Purchase Order Lines-->
|
||||
|
||||
<record id="po_wizard_rma_1_line_1" model="purchase.order.line">
|
||||
<field name="name">POWIZARDCLAIM001 Line 1</field>
|
||||
<field name="order_id" ref="po_wizard_rma_1"/>
|
||||
<field name="product_id" ref="product.product_product_38"/>
|
||||
<field name="product_qty">10</field>
|
||||
<field name="price_unit">60.0</field>
|
||||
<field name="date_planned">2015-05-08</field>
|
||||
</record>
|
||||
|
||||
<record id="po_wizard_rma_1_line_2" model="purchase.order.line">
|
||||
<field name="name">POWIZARDCLAIM001 Line 2</field>
|
||||
<field name="order_id" ref="po_wizard_rma_1"/>
|
||||
<field name="product_id" ref="product.product_product_39"/>
|
||||
<field name="product_qty">10</field>
|
||||
<field name="price_unit">66.0</field>
|
||||
<field name="date_planned">2015-05-08</field>
|
||||
</record>
|
||||
|
||||
<record id="po_wizard_rma_1_line_3" model="purchase.order.line">
|
||||
<field name="name">POWIZARDCLAIM001 Line 3</field>
|
||||
<field name="order_id" ref="po_wizard_rma_1"/>
|
||||
<field name="product_id" ref="product.product_product_6"/>
|
||||
<field name="product_qty">10</field>
|
||||
<field name="price_unit">800.0</field>
|
||||
<field name="date_planned">2015-05-08</field>
|
||||
</record>
|
||||
|
||||
<record id="po_wizard_rma_1_line_4" model="purchase.order.line">
|
||||
<field name="name">POWIZARDCLAIM001 Line 4</field>
|
||||
<field name="order_id" ref="po_wizard_rma_1"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_qty">7</field>
|
||||
<field name="price_unit">1299.0</field>
|
||||
<field name="date_planned">2015-05-08</field>
|
||||
</record>
|
||||
|
||||
<!-- Confirm Purchase Order, (Invoice and Picking is created automatically) -->
|
||||
|
||||
<workflow action="purchase_confirm"
|
||||
model="purchase.order"
|
||||
ref="po_wizard_rma_1"/>
|
||||
|
||||
<workflow action="purchase_approve"
|
||||
model="purchase.order"
|
||||
ref="po_wizard_rma_1"/>
|
||||
|
||||
<workflow action="invoice_open" model="account.invoice">
|
||||
<value eval="obj(ref('po_wizard_rma_1')).invoice_ids[0].id" model="purchase.order"/>
|
||||
</workflow>
|
||||
</data>
|
||||
</openerp>
|
||||
67
crm_rma_lot_mass_return/demo/sale_order.xml
Normal file
67
crm_rma_lot_mass_return/demo/sale_order.xml
Normal file
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="so_wizard_rma_1" model="sale.order">
|
||||
<field name="name">SOWIZARDCLAIM001</field>
|
||||
<field name="date_order">2015-05-08 18:17:05</field>
|
||||
<field name="partner_id" ref="base.res_partner_12"/>
|
||||
<field name="currency_id" ref="base.EUR"/>
|
||||
<field name="pricelist_id" ref="product.list0"/>
|
||||
</record>
|
||||
|
||||
<record id="so_wizard_rma_1_line_1" model="sale.order.line">
|
||||
<field name="name">SOWIZARDCLAIM001 Line 1</field>
|
||||
<field name="order_id" ref="so_wizard_rma_1"/>
|
||||
<field name="product_id" ref="product.product_product_38"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="price_unit">65.0</field>
|
||||
</record>
|
||||
|
||||
<record id="so_wizard_rma_1_line_2" model="sale.order.line">
|
||||
<field name="name">SOWIZARDCLAIM001 Line 2</field>
|
||||
<field name="order_id" ref="so_wizard_rma_1"/>
|
||||
<field name="product_id" ref="product.product_product_39"/>
|
||||
<field name="product_uom_qty">2</field>
|
||||
<field name="price_unit">66.0</field>
|
||||
</record>
|
||||
|
||||
<record id="so_wizard_rma_1_line_3" model="sale.order.line">
|
||||
<field name="name">SOWIZARDCLAIM001 Line 3</field>
|
||||
<field name="order_id" ref="so_wizard_rma_1"/>
|
||||
<field name="product_id" ref="product.product_product_6"/>
|
||||
<field name="product_uom_qty">1</field>
|
||||
<field name="price_unit">800.0</field>
|
||||
</record>
|
||||
|
||||
<record id="so_wizard_rma_1_line_4" model="sale.order.line">
|
||||
<field name="name">SOWIZARDCLAIM001 Line 4</field>
|
||||
<field name="order_id" ref="so_wizard_rma_1"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_qty">5</field>
|
||||
<field name="price_unit">1299.0</field>
|
||||
</record>
|
||||
|
||||
<workflow action="order_confirm" model="sale.order" ref="so_wizard_rma_1"/>
|
||||
|
||||
<workflow action="manual_invoice" model="sale.order" ref="so_wizard_rma_1" uid="base.user_root"/>
|
||||
|
||||
<workflow action="invoice_open" model="account.invoice">
|
||||
<value eval="obj(ref('so_wizard_rma_1')).invoice_ids[0].id" model="sale.order"/>
|
||||
</workflow>
|
||||
|
||||
<function model="account.invoice" name="pay_and_reconcile">
|
||||
<!-- ids = --> <value eval="obj(ref('so_wizard_rma_1')).invoice_ids[0].id" model="sale.order"/>
|
||||
<!-- amount = --> <value eval="30000"/>
|
||||
<!-- account_id = --> <value eval="ref('account.cash')"/>
|
||||
<!-- period_id = --> <value eval="ref('account.period_10')"/>
|
||||
<!-- journal_id = --> <value eval="ref('account.bank_journal')"/>
|
||||
<!-- writeoff_acc_id = --> <value eval="ref('account.cash')"/>
|
||||
<!-- writeoff_period_id = --> <value eval="ref('account.period_10')"/>
|
||||
<!-- writeoff_journal_id = --> <value eval="ref('account.bank_journal')"/>
|
||||
<!-- context = --> <value eval="{}"/>
|
||||
<!-- name = --> <value eval="str('Payment WIzard RMA')"/>
|
||||
</function>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
37
crm_rma_lot_mass_return/demo/stock_production_lot.xml
Normal file
37
crm_rma_lot_mass_return/demo/stock_production_lot.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="lot_purchase_wizard_rma_item_1" model="stock.production.lot">
|
||||
<field name="name">MAC0001</field>
|
||||
<field name="ref">MAC0001</field>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
</record>
|
||||
|
||||
<record id="lot_purchase_wizard_rma_item_2" model="stock.production.lot">
|
||||
<field name="name">MAC0002</field>
|
||||
<field name="ref">MAC0002</field>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
</record>
|
||||
|
||||
<record id="lot_purchase_wizard_rma_item_3" model="stock.production.lot">
|
||||
<field name="name">MAC0003</field>
|
||||
<field name="ref">MAC0003</field>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
</record>
|
||||
|
||||
<record id="lot_purchase_wizard_rma_item_4" model="stock.production.lot">
|
||||
<field name="name">MAC0004</field>
|
||||
<field name="ref">MAC0004</field>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
</record>
|
||||
|
||||
<record id="lot_purchase_wizard_rma_item_5" model="stock.production.lot">
|
||||
<field name="name">IPAD0001</field>
|
||||
<field name="ref">IPAD0001</field>
|
||||
<field name="product_id" ref="product.product_product_6"/>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
196
crm_rma_lot_mass_return/demo/transfer_details.xml
Normal file
196
crm_rma_lot_mass_return/demo/transfer_details.xml
Normal file
@@ -0,0 +1,196 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<!--Transfer of Products in the Picking of Purchase Order -->
|
||||
|
||||
<record id="transfer_purchase_wizard_rma" model="stock.transfer_details">
|
||||
<field name="picking_id" model="stock.picking" search="[('origin', '=', 'POWIZARDCLAIM001')]"/>
|
||||
<field name="picking_source_location_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="picking_destination_location_id" ref="stock.stock_location_stock"/>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Transfer Detail Items of Product Transfer -->
|
||||
|
||||
<record id="transfer_purchase_wizard_rma_item_1" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_purchase_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="lot_id" ref="lot_purchase_wizard_rma_item_1"/>
|
||||
</record>
|
||||
|
||||
<record id="transfer_purchase_wizard_rma_item_2" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_purchase_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="lot_id" ref="lot_purchase_wizard_rma_item_2"/>
|
||||
</record>
|
||||
|
||||
<record id="transfer_purchase_wizard_rma_item_3" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_purchase_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="lot_id" ref="lot_purchase_wizard_rma_item_3"/>
|
||||
</record>
|
||||
|
||||
<record id="transfer_purchase_wizard_rma_item_4" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_purchase_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="lot_id" ref="lot_purchase_wizard_rma_item_4"/>
|
||||
</record>
|
||||
|
||||
<record id="transfer_purchase_wizard_rma_item_5" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_purchase_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_6"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="lot_id" ref="lot_purchase_wizard_rma_item_5"/>
|
||||
</record>
|
||||
|
||||
<!-- two MAC without lot -->
|
||||
<record id="transfer_purchase_wizard_rma_item_6" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_purchase_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">2</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_stock"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="transfer_purchase_wizard_rma_item_7" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_purchase_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_39"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_stock"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="transfer_purchase_wizard_rma_item_8" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_purchase_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_39"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_stock"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="transfer_purchase_wizard_rma_item_9" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_purchase_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_38"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_suppliers"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_stock"/>
|
||||
</record>
|
||||
|
||||
<!-- Make transfer of product -->
|
||||
|
||||
<function model="stock.transfer_details"
|
||||
name="do_detailed_transfer" eval="[ref('transfer_purchase_wizard_rma')]"/>
|
||||
|
||||
|
||||
|
||||
<!-- Transfer of Products in the Picking of Purchase Order 2 -->
|
||||
|
||||
<record id="transfer_sale_wizard_rma" model="stock.transfer_details">
|
||||
<field name="picking_id" model="stock.picking" search="[('origin', '=', 'SOWIZARDCLAIM001')]"/>
|
||||
<field name="picking_source_location_id" ref="stock.stock_location_stock"/>
|
||||
<field name="picking_destination_location_id" ref="stock.stock_location_customers"/>
|
||||
</record>
|
||||
|
||||
<!-- Transfer Detail Items Part 2 of Product Transfer -->
|
||||
|
||||
<record id="transfer_sale_wizard_rma_item_1" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_sale_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_38"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_customers"/>
|
||||
</record>
|
||||
|
||||
<record id="transfer_sale_wizard_rma_item_2" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_sale_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_39"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">2</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_customers"/>
|
||||
</record>
|
||||
|
||||
<record id="transfer_sale_wizard_rma_item_3" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_sale_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_6"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_customers"/>
|
||||
<field name="lot_id" ref="lot_purchase_wizard_rma_item_5"/>
|
||||
</record>
|
||||
|
||||
<record id="transfer_sale_wizard_rma_item_4" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_sale_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_customers"/>
|
||||
<field name="lot_id" ref="lot_purchase_wizard_rma_item_1"/>
|
||||
</record>
|
||||
|
||||
<record id="transfer_sale_wizard_rma_item_5" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_sale_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_customers"/>
|
||||
<field name="lot_id" ref="lot_purchase_wizard_rma_item_2"/>
|
||||
</record>
|
||||
|
||||
<record id="transfer_sale_wizard_rma_item_6" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_sale_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_customers"/>
|
||||
<field name="lot_id" ref="lot_purchase_wizard_rma_item_3"/>
|
||||
</record>
|
||||
|
||||
<record id="transfer_sale_wizard_rma_item_7" model="stock.transfer_details_items">
|
||||
<field name="transfer_id" ref="transfer_sale_wizard_rma"/>
|
||||
<field name="product_id" ref="product.product_product_8"/>
|
||||
<field name="product_uom_id" ref="product.product_uom_unit"/>
|
||||
<field name="quantity">1</field>
|
||||
<field name="sourceloc_id" ref="stock.stock_location_stock"/>
|
||||
<field name="destinationloc_id" ref="stock.stock_location_customers"/>
|
||||
<field name="lot_id" ref="lot_purchase_wizard_rma_item_4"/>
|
||||
</record>
|
||||
|
||||
<!-- Make transfer of product -->
|
||||
|
||||
<function model="stock.transfer_details"
|
||||
name="do_detailed_transfer" eval="[ref('transfer_sale_wizard_rma')]"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,13 +1,13 @@
|
||||
# Translation of OpenERP Server.
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_lot_mass_return
|
||||
#
|
||||
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: 2013-11-15 13:30+0000\n"
|
||||
"PO-Revision-Date: 2013-11-15 13:30+0000\n"
|
||||
"POT-Creation-Date: 2015-10-16 03:32+0000\n"
|
||||
"PO-Revision-Date: 2015-10-16 03:32+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -16,52 +16,160 @@ msgstr ""
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:0
|
||||
msgid "Mass return from serial/lot"
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:90
|
||||
#, python-format
|
||||
msgid "-->"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned_lines_from_serial.wizard:0
|
||||
msgid "Claim short description"
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_crm_claim
|
||||
msgid "Claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned_lines_from_serial.wizard:0
|
||||
msgid "Select serial numbers to create"
|
||||
#: field:returned.lines.from.serial.wizard,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.actions.act_window,name:crm_rma_lot_mass_return.action_create_return_serial
|
||||
msgid "action_create_return_serial"
|
||||
#: field:returned.lines.from.serial.wizard,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scan_data:0
|
||||
msgid "Field used to load and show the products"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,lines_id:0
|
||||
msgid "Field used to load the ids of invoice lines in invoices writed"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Field used to load the ids of products loaded"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Field used to show the current status of the lots loaded"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid "Field used to show the current status of the product loaded(Name and quantity)"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,lines_id:0
|
||||
msgid "Invoice Lines to Select"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Lots selected"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "Mass return from serial/lot or invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:93
|
||||
#, python-format
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,scan_data:0
|
||||
#: field:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:141
|
||||
#, python-format
|
||||
msgid "Search Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:299
|
||||
#, python-format
|
||||
msgid "The following Serial/Lot numbers were not added, because all of them (listed below) are currently in use:\n"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:221
|
||||
#, python-format
|
||||
msgid "The product or invoice %s was not found"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "True"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Validate the actual picking, it will execute all the validations and the inventory will be affected"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_returned_lines_from_serial_wizard
|
||||
msgid "Wizard to create product return lines from serial numbers"
|
||||
msgid "Wizard to create product return lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned_lines_from_serial.wizard:0
|
||||
msgid "Quantity returned"
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Invoice Number to search the products in lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned_lines_from_serial.wizard:0
|
||||
msgid "Save and close"
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Serial/Lot Number to search the product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned_lines_from_serial.wizard:0
|
||||
msgid "Save and new"
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You add new returns in claim, are you sure?."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned_lines_from_serial.wizard:0
|
||||
msgid "Cancel"
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You should use this windows on this way."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned_lines_from_serial.wizard:0
|
||||
msgid "Serial / Lot Number"
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "_Validate"
|
||||
msgstr ""
|
||||
|
||||
|
||||
310
crm_rma_lot_mass_return/i18n/en.po
Normal file
310
crm_rma_lot_mass_return/i18n/en.po
Normal file
@@ -0,0 +1,310 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_lot_mass_return
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-19 22:20+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_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:67
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s"
|
||||
msgstr "(ID: %s) - %s - %s"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:72
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s - %s"
|
||||
msgstr "(ID: %s) - %s - %s - %s"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:90
|
||||
#, python-format
|
||||
msgid "-->"
|
||||
msgstr "-->"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "Add claim lines using serial or invoice number"
|
||||
msgstr "Add claim lines using serial or invoice number"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Add items to the claim"
|
||||
msgstr "Add items to the claim"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "All the valid lines will be added to the claim"
|
||||
msgstr "All the valid lines will be added to the claim"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_crm_claim
|
||||
msgid "Claim"
|
||||
msgstr "Claim"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr "Created by"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_date:0
|
||||
#: field:returned.lines.from.serial.wizard,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr "Created on"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Damaged Delivered Product"
|
||||
msgstr "Damaged Delivered Product"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS"
|
||||
msgstr "Example: A4JD6JHS"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS*4*The display is break"
|
||||
msgstr "Example: A4JD6JHS*4*The display is break"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Exchange request"
|
||||
msgstr "Exchange request"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scan_data:0
|
||||
msgid "Field used to load and show the products"
|
||||
msgstr "Field used to load and show the products"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Field used to load the ids of invoice lines in invoices writed"
|
||||
msgstr "Field used to load the ids of invoice lines in invoices writed"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Field used to load the ids of products loaded"
|
||||
msgstr "Field used to load the ids of products loaded"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Field used to show the current status of the lots loaded"
|
||||
msgstr "Field used to show the current status of the lots loaded"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid ""
|
||||
"Field used to show the current status of the product loaded(Name and "
|
||||
"quantity)"
|
||||
msgstr "Field used to show the current status of the product loaded(Name and quantity)"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,id:0 field:returned.lines.from.serial.wizard,id:0
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Imperfection"
|
||||
msgstr "Imperfection"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,invoice_line_id:0
|
||||
#: help:claim.line.wizard,invoice_line_id:0
|
||||
msgid "Invoice Line"
|
||||
msgstr "Invoice Line"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Invoice Lines to Select"
|
||||
msgstr "Invoice Lines to Select"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr "Last Updated by"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_date:0
|
||||
#: field:returned.lines.from.serial.wizard,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr "Last Updated on"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Legal retractation"
|
||||
msgstr "Legal retractation"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Lost during transport"
|
||||
msgstr "Lost during transport"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,lot_id:0
|
||||
msgid "Lot"
|
||||
msgstr "Lot"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Not specified"
|
||||
msgstr "Not specified"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:93
|
||||
#, python-format
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Order Cancellation"
|
||||
msgstr "Order Cancellation"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Other"
|
||||
msgstr "Other"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Perfect Conditions"
|
||||
msgstr "Perfect Conditions"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Client"
|
||||
msgstr "Physical Damage by Client"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Company"
|
||||
msgstr "Physical Damage by Company"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,product_id:0
|
||||
msgid "Product"
|
||||
msgstr "Product"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:claim.line.wizard,lot_id:0 help:claim.line.wizard,product_id:0
|
||||
msgid "Product to claim"
|
||||
msgstr "Product to claim"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,scan_data:0
|
||||
#: field:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Products"
|
||||
msgstr "Products"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Products selected"
|
||||
msgstr "Products selected"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:210
|
||||
#, python-format
|
||||
msgid "Search Product"
|
||||
msgstr "Search Product"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Serial/Lot Number*reason number*Description here"
|
||||
msgstr "Serial/Lot Number*reason number*Description here"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Shipping error"
|
||||
msgstr "Shipping error"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:590
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The following Serial/Lot numbers won't be added, because all of them (listed below) are currently in use:\n"
|
||||
"\n"
|
||||
" %s"
|
||||
msgstr "The following Serial/Lot numbers won't be added, because all of them (listed below) are currently in use:\n\n %s"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid ""
|
||||
"The format for writing the reason for the claim and\n"
|
||||
" the description is:"
|
||||
msgstr "The format for writing the reason for the claim and\n the description is:"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:399
|
||||
#, python-format
|
||||
msgid "The product or invoice %s was not found"
|
||||
msgstr "The product or invoice %s was not found"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "The reasons for the claim can be"
|
||||
msgstr "The reasons for the claim can be"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "True"
|
||||
msgstr "True"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_returned_lines_from_serial_wizard
|
||||
msgid "Wizard to create product return lines"
|
||||
msgstr "Wizard to create product return lines"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Invoice Number to search the products in lines"
|
||||
msgstr "Write the Invoice Number to search the products in lines"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Serial/Lot Number to search the product"
|
||||
msgstr "Write the Serial/Lot Number to search the product"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You are about to add new lines to the claim, Do you want to continue?."
|
||||
msgstr "You are about to add new lines to the claim, Do you want to continue?."
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You should use this windows on this way."
|
||||
msgstr "You should use this windows on this way."
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "or"
|
||||
msgstr "or"
|
||||
310
crm_rma_lot_mass_return/i18n/es.po
Normal file
310
crm_rma_lot_mass_return/i18n/es.po
Normal file
@@ -0,0 +1,310 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_lot_mass_return
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-19 22:20+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_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:67
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:72
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s - %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:90
|
||||
#, python-format
|
||||
msgid "-->"
|
||||
msgstr "-->"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "Add claim lines using serial or invoice number"
|
||||
msgstr "Agregar devoluciones usando número de serial o de factura"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Add items to the claim"
|
||||
msgstr "Añadir productos a la reclamación"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "All the valid lines will be added to the claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_crm_claim
|
||||
msgid "Claim"
|
||||
msgstr "Reclamo"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr "Creado por"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_date:0
|
||||
#: field:returned.lines.from.serial.wizard,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr "Creado en"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Damaged Delivered Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS*4*The display is break"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Exchange request"
|
||||
msgstr "Solicitar cambio"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scan_data:0
|
||||
msgid "Field used to load and show the products"
|
||||
msgstr "Campo usado para cargar y ver los productos"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Field used to load the ids of invoice lines in invoices writed"
|
||||
msgstr "Campo usado para cargar los ids de las líneas de factura en facturas editadas"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Field used to load the ids of products loaded"
|
||||
msgstr "Campo usado para cargar los ids de los productos cargados"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Field used to show the current status of the lots loaded"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid ""
|
||||
"Field used to show the current status of the product loaded(Name and "
|
||||
"quantity)"
|
||||
msgstr "Campo usado para visualizar el estado actual de los productos cargados (Nombre y cantidad)"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,id:0 field:returned.lines.from.serial.wizard,id:0
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Imperfection"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,invoice_line_id:0
|
||||
#: help:claim.line.wizard,invoice_line_id:0
|
||||
msgid "Invoice Line"
|
||||
msgstr "Línea de factura"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Invoice Lines to Select"
|
||||
msgstr "Líneas de factura a seleccionar"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr "Última actualización hecha por"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_date:0
|
||||
#: field:returned.lines.from.serial.wizard,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr "Última actualización hecha en"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Legal retractation"
|
||||
msgstr "Retractación legal"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Lost during transport"
|
||||
msgstr "Perdido durante el transporte"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,lot_id:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Not specified"
|
||||
msgstr "No especificado"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:93
|
||||
#, python-format
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Order Cancellation"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Other"
|
||||
msgstr "Otro"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr "Socio"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Perfect Conditions"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Client"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,product_id:0
|
||||
msgid "Product"
|
||||
msgstr "Producto"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:claim.line.wizard,lot_id:0 help:claim.line.wizard,product_id:0
|
||||
msgid "Product to claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,scan_data:0
|
||||
#: field:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Products"
|
||||
msgstr "Productos"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Products selected"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:210
|
||||
#, python-format
|
||||
msgid "Search Product"
|
||||
msgstr "Buscar producto"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Serial/Lot Number*reason number*Description here"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Shipping error"
|
||||
msgstr "Error de envío"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid "Status"
|
||||
msgstr "Estado"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:590
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The following Serial/Lot numbers won't be added, because all of them (listed below) are currently in use:\n"
|
||||
"\n"
|
||||
" %s"
|
||||
msgstr "los siguientes números de seriales no pueden ser agregados, porque todos ellos (listados abajo) están actualmente en uso:\n\n %s"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid ""
|
||||
"The format for writing the reason for the claim and\n"
|
||||
" the description is:"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:399
|
||||
#, python-format
|
||||
msgid "The product or invoice %s was not found"
|
||||
msgstr "El producto o factura %s no fué encontrado"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "The reasons for the claim can be"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "True"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_returned_lines_from_serial_wizard
|
||||
msgid "Wizard to create product return lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Invoice Number to search the products in lines"
|
||||
msgstr "Escribir el número de factura para buscar los productos en las líneas"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Serial/Lot Number to search the product"
|
||||
msgstr "Escribir el número de serie o lote para buscar el producto."
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You are about to add new lines to the claim, Do you want to continue?."
|
||||
msgstr "Se agregarán nuevas líneas a la reclamación, ¿Desea continuar?"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You should use this windows on this way."
|
||||
msgstr "Deberías usar ésta ventana"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "or"
|
||||
msgstr "o"
|
||||
16
crm_rma_lot_mass_return/i18n/es_MX.po
Normal file
16
crm_rma_lot_mass_return/i18n/es_MX.po
Normal file
@@ -0,0 +1,16 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_lot_mass_return
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-07-17 19:54+0000\n"
|
||||
"PO-Revision-Date: 2015-07-17 19:54+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"
|
||||
16
crm_rma_lot_mass_return/i18n/es_PA.po
Normal file
16
crm_rma_lot_mass_return/i18n/es_PA.po
Normal file
@@ -0,0 +1,16 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_lot_mass_return
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-07-17 19:54+0000\n"
|
||||
"PO-Revision-Date: 2015-07-17 19:54+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"
|
||||
16
crm_rma_lot_mass_return/i18n/es_VE.po
Normal file
16
crm_rma_lot_mass_return/i18n/es_VE.po
Normal file
@@ -0,0 +1,16 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_lot_mass_return
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-07-17 19:54+0000\n"
|
||||
"PO-Revision-Date: 2015-07-17 19:54+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"
|
||||
310
crm_rma_lot_mass_return/i18n/fr.po
Normal file
310
crm_rma_lot_mass_return/i18n/fr.po
Normal file
@@ -0,0 +1,310 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_lot_mass_return
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-19 22:20+0000\n"
|
||||
"Last-Translator: <>\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"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:67
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:72
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s - %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:90
|
||||
#, python-format
|
||||
msgid "-->"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "Add claim lines using serial or invoice number"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Add items to the claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "All the valid lines will be added to the claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_crm_claim
|
||||
msgid "Claim"
|
||||
msgstr "Réclamation"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_date:0
|
||||
#: field:returned.lines.from.serial.wizard,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Damaged Delivered Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS*4*The display is break"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Exchange request"
|
||||
msgstr "Demande d'échange"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scan_data:0
|
||||
msgid "Field used to load and show the products"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Field used to load the ids of invoice lines in invoices writed"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Field used to load the ids of products loaded"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Field used to show the current status of the lots loaded"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid ""
|
||||
"Field used to show the current status of the product loaded(Name and "
|
||||
"quantity)"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,id:0 field:returned.lines.from.serial.wizard,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Imperfection"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,invoice_line_id:0
|
||||
#: help:claim.line.wizard,invoice_line_id:0
|
||||
msgid "Invoice Line"
|
||||
msgstr "Ligne de facture"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Invoice Lines to Select"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_date:0
|
||||
#: field:returned.lines.from.serial.wizard,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Legal retractation"
|
||||
msgstr "Rétracation légale"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Lost during transport"
|
||||
msgstr "Perte pendant le transport"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,lot_id:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Not specified"
|
||||
msgstr "Non spécifié"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:93
|
||||
#, python-format
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Order Cancellation"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Other"
|
||||
msgstr "Autre"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Perfect Conditions"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Client"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,product_id:0
|
||||
msgid "Product"
|
||||
msgstr "Produit"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:claim.line.wizard,lot_id:0 help:claim.line.wizard,product_id:0
|
||||
msgid "Product to claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,scan_data:0
|
||||
#: field:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Products selected"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:210
|
||||
#, python-format
|
||||
msgid "Search Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Serial/Lot Number*reason number*Description here"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Shipping error"
|
||||
msgstr "Erreur d'expédition"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:590
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The following Serial/Lot numbers won't be added, because all of them (listed below) are currently in use:\n"
|
||||
"\n"
|
||||
" %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid ""
|
||||
"The format for writing the reason for the claim and\n"
|
||||
" the description is:"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:399
|
||||
#, python-format
|
||||
msgid "The product or invoice %s was not found"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "The reasons for the claim can be"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "True"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_returned_lines_from_serial_wizard
|
||||
msgid "Wizard to create product return lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Invoice Number to search the products in lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Serial/Lot Number to search the product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You are about to add new lines to the claim, Do you want to continue?."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You should use this windows on this way."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "or"
|
||||
msgstr "ou"
|
||||
310
crm_rma_lot_mass_return/i18n/pt_BR.po
Normal file
310
crm_rma_lot_mass_return/i18n/pt_BR.po
Normal file
@@ -0,0 +1,310 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_lot_mass_return
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-19 22:20+0000\n"
|
||||
"Last-Translator: <>\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_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:67
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:72
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s - %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:90
|
||||
#, python-format
|
||||
msgid "-->"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "Add claim lines using serial or invoice number"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Add items to the claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "All the valid lines will be added to the claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_crm_claim
|
||||
msgid "Claim"
|
||||
msgstr "Solicitação"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_date:0
|
||||
#: field:returned.lines.from.serial.wizard,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Damaged Delivered Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS*4*The display is break"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Exchange request"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scan_data:0
|
||||
msgid "Field used to load and show the products"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Field used to load the ids of invoice lines in invoices writed"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Field used to load the ids of products loaded"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Field used to show the current status of the lots loaded"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid ""
|
||||
"Field used to show the current status of the product loaded(Name and "
|
||||
"quantity)"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,id:0 field:returned.lines.from.serial.wizard,id:0
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Imperfection"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,invoice_line_id:0
|
||||
#: help:claim.line.wizard,invoice_line_id:0
|
||||
msgid "Invoice Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Invoice Lines to Select"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_date:0
|
||||
#: field:returned.lines.from.serial.wizard,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Legal retractation"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Lost during transport"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,lot_id:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Not specified"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:93
|
||||
#, python-format
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Order Cancellation"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Other"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Perfect Conditions"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Client"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,product_id:0
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:claim.line.wizard,lot_id:0 help:claim.line.wizard,product_id:0
|
||||
msgid "Product to claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,scan_data:0
|
||||
#: field:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Products selected"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:210
|
||||
#, python-format
|
||||
msgid "Search Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Serial/Lot Number*reason number*Description here"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Shipping error"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:590
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The following Serial/Lot numbers won't be added, because all of them (listed below) are currently in use:\n"
|
||||
"\n"
|
||||
" %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid ""
|
||||
"The format for writing the reason for the claim and\n"
|
||||
" the description is:"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:399
|
||||
#, python-format
|
||||
msgid "The product or invoice %s was not found"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "The reasons for the claim can be"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "True"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_returned_lines_from_serial_wizard
|
||||
msgid "Wizard to create product return lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Invoice Number to search the products in lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Serial/Lot Number to search the product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You are about to add new lines to the claim, Do you want to continue?."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You should use this windows on this way."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
310
crm_rma_lot_mass_return/i18n/ro.po
Normal file
310
crm_rma_lot_mass_return/i18n/ro.po
Normal file
@@ -0,0 +1,310 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_lot_mass_return
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-19 22:20+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_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:67
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:72
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s - %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:90
|
||||
#, python-format
|
||||
msgid "-->"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "Add claim lines using serial or invoice number"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Add items to the claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "All the valid lines will be added to the claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_crm_claim
|
||||
msgid "Claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_date:0
|
||||
#: field:returned.lines.from.serial.wizard,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Damaged Delivered Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS*4*The display is break"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Exchange request"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scan_data:0
|
||||
msgid "Field used to load and show the products"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Field used to load the ids of invoice lines in invoices writed"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Field used to load the ids of products loaded"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Field used to show the current status of the lots loaded"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid ""
|
||||
"Field used to show the current status of the product loaded(Name and "
|
||||
"quantity)"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,id:0 field:returned.lines.from.serial.wizard,id:0
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Imperfection"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,invoice_line_id:0
|
||||
#: help:claim.line.wizard,invoice_line_id:0
|
||||
msgid "Invoice Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Invoice Lines to Select"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_date:0
|
||||
#: field:returned.lines.from.serial.wizard,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Legal retractation"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Lost during transport"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,lot_id:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Not specified"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:93
|
||||
#, python-format
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Order Cancellation"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Other"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Perfect Conditions"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Client"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,product_id:0
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:claim.line.wizard,lot_id:0 help:claim.line.wizard,product_id:0
|
||||
msgid "Product to claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,scan_data:0
|
||||
#: field:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Products selected"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:210
|
||||
#, python-format
|
||||
msgid "Search Product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Serial/Lot Number*reason number*Description here"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Shipping error"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:590
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The following Serial/Lot numbers won't be added, because all of them (listed below) are currently in use:\n"
|
||||
"\n"
|
||||
" %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid ""
|
||||
"The format for writing the reason for the claim and\n"
|
||||
" the description is:"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:399
|
||||
#, python-format
|
||||
msgid "The product or invoice %s was not found"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "The reasons for the claim can be"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "True"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_returned_lines_from_serial_wizard
|
||||
msgid "Wizard to create product return lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Invoice Number to search the products in lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Serial/Lot Number to search the product"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You are about to add new lines to the claim, Do you want to continue?."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You should use this windows on this way."
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
311
crm_rma_lot_mass_return/i18n/sl.po
Normal file
311
crm_rma_lot_mass_return/i18n/sl.po
Normal file
@@ -0,0 +1,311 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_lot_mass_return
|
||||
#
|
||||
# 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: 2015-12-12 22:57+0000\n"
|
||||
"PO-Revision-Date: 2015-12-13 06:18+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_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:67
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s"
|
||||
msgstr "(ID: %s) - %s - %s"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:72
|
||||
#, python-format
|
||||
msgid "(ID: %s) - %s - %s - %s"
|
||||
msgstr "(ID: %s) - %s - %s - %s"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:90
|
||||
#, python-format
|
||||
msgid "-->"
|
||||
msgstr "-->"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "Add claim lines using serial or invoice number"
|
||||
msgstr "Dodajanje postavk zahtevka z uporabo serijske številke ali številke računa"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Add items to the claim"
|
||||
msgstr "Dodajanje artiklov v zahtevek"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "All the valid lines will be added to the claim"
|
||||
msgstr "Vse veljavne postavke bodo dodane v zahtevek"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_crm_claim
|
||||
msgid "Claim"
|
||||
msgstr "Zahtevek"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,create_uid:0
|
||||
msgid "Created by"
|
||||
msgstr "Ustvaril"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,create_date:0
|
||||
#: field:returned.lines.from.serial.wizard,create_date:0
|
||||
msgid "Created on"
|
||||
msgstr "Ustvarjeno"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Damaged Delivered Product"
|
||||
msgstr "Poškodovan dobavljeni proizvod"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS"
|
||||
msgstr "Primer: A4JD6JHS"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Example: A4JD6JHS*4*The display is break"
|
||||
msgstr "Primer: A4JD6JHS*4*Zaslon je okvarjen"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Exchange request"
|
||||
msgstr "Zahteva po zamenjavi"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scan_data:0
|
||||
msgid "Field used to load and show the products"
|
||||
msgstr "Polje, ki se uporablja za nalaganje in prikaz proizvodov"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Field used to load the ids of invoice lines in invoices writed"
|
||||
msgstr "Polje, ki se uporablja za id-je postavk računa pri zapisu"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Field used to load the ids of products loaded"
|
||||
msgstr "Polje, ki se uporablja za nalaganje id-jev naloženih proizvodov"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Field used to show the current status of the lots loaded"
|
||||
msgstr "Polje, ki se uporablja za prikaz trenutnega statusa naloženih lotov"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid ""
|
||||
"Field used to show the current status of the product loaded(Name and "
|
||||
"quantity)"
|
||||
msgstr "Polje, ki se uporablja za prikaz trenutnega statusa naloženega proizvoda (naziv in količina)"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,id:0 field:returned.lines.from.serial.wizard,id:0
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Imperfection"
|
||||
msgstr "Nepopolnost"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,invoice_line_id:0
|
||||
#: help:claim.line.wizard,invoice_line_id:0
|
||||
msgid "Invoice Line"
|
||||
msgstr "Postavka računa"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,option_ids:0
|
||||
msgid "Invoice Lines to Select"
|
||||
msgstr "Postavke računa za izbor"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_uid:0
|
||||
#: field:returned.lines.from.serial.wizard,write_uid:0
|
||||
msgid "Last Updated by"
|
||||
msgstr "Zadnji posodobil"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,write_date:0
|
||||
#: field:returned.lines.from.serial.wizard,write_date:0
|
||||
msgid "Last Updated on"
|
||||
msgstr "Zadnjič posodobljeno"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Legal retractation"
|
||||
msgstr "Pravni preklic"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Lost during transport"
|
||||
msgstr "Izgubljen med prevozom"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,lot_id:0
|
||||
msgid "Lot"
|
||||
msgstr "Lot"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Not specified"
|
||||
msgstr "Ni določeno"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#. openerp-web
|
||||
#: code:addons/crm_rma_lot_mass_return/static/src/js/barcode_text.js:93
|
||||
#, python-format
|
||||
msgid "Ok"
|
||||
msgstr "V redu"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Order Cancellation"
|
||||
msgstr "Preklic naročila"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Other"
|
||||
msgstr "Drugo"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Perfect Conditions"
|
||||
msgstr "Brezhibno stanje"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Client"
|
||||
msgstr "Fizično poškodoval kupec"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Physical Damage by Company"
|
||||
msgstr "Fizično poškodovala družba"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:claim.line.wizard,product_id:0
|
||||
msgid "Product"
|
||||
msgstr "Proizvod"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: help:claim.line.wizard,lot_id:0 help:claim.line.wizard,product_id:0
|
||||
msgid "Product to claim"
|
||||
msgstr "Proizvod za reklamacijo"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,scan_data:0
|
||||
#: field:returned.lines.from.serial.wizard,scaned_data:0
|
||||
msgid "Products"
|
||||
msgstr "Proizvodi"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,lines_list_id:0
|
||||
msgid "Products selected"
|
||||
msgstr "Izbrani proizvodi"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:210
|
||||
#, python-format
|
||||
msgid "Search Product"
|
||||
msgstr "Iskanje proizvoda"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Serial/Lot Number*reason number*Description here"
|
||||
msgstr "Serijska številka/št. lota*številka razloga*opis"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Shipping error"
|
||||
msgstr "Napaka odpreme"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: field:returned.lines.from.serial.wizard,current_status:0
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:590
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The following Serial/Lot numbers won't be added, because all of them (listed below) are currently in use:\n"
|
||||
"\n"
|
||||
" %s"
|
||||
msgstr "Sledeče serijske številke/številke lotov ne bodo dodane, ker so vse (spodaj naštete) trenutno v uporabi:\n\n %s"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid ""
|
||||
"The format for writing the reason for the claim and\n"
|
||||
" the description is:"
|
||||
msgstr "Format zapisa razloga za zahtevek in\n opis je:"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: code:addons/crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py:399
|
||||
#, python-format
|
||||
msgid "The product or invoice %s was not found"
|
||||
msgstr "Proizvod ali račun %s ni najden"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "The reasons for the claim can be"
|
||||
msgstr "Razlogi za zahtevek so lahko"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:crm.claim:crm_rma_lot_mass_return.crm_claim_rma_form_view_meta
|
||||
msgid "True"
|
||||
msgstr "Pravilno"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: model:ir.model,name:crm_rma_lot_mass_return.model_returned_lines_from_serial_wizard
|
||||
msgid "Wizard to create product return lines"
|
||||
msgstr "Čarovnik za ustvarjanje postavk vračila proizvoda"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Invoice Number to search the products in lines"
|
||||
msgstr "Zapišite številko računa za iskanje proizvodov v postavkah"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "Write the Serial/Lot Number to search the product"
|
||||
msgstr "Zapišite serijsko ali številko lota za iskanje proizvoda"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You are about to add new lines to the claim, Do you want to continue?."
|
||||
msgstr "Dodali boste nove postavke v zahtevek. Želite nadaljevati?"
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "You should use this windows on this way."
|
||||
msgstr "Ta okna bi morali uporabljati na tak način."
|
||||
|
||||
#. module: crm_rma_lot_mass_return
|
||||
#: view:returned.lines.from.serial.wizard:crm_rma_lot_mass_return.view_enter_product
|
||||
msgid "or"
|
||||
msgstr "ali"
|
||||
22
crm_rma_lot_mass_return/models/__init__.py
Normal file
22
crm_rma_lot_mass_return/models/__init__.py
Normal file
@@ -0,0 +1,22 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Osval Reyes, Yanina Aular
|
||||
#
|
||||
# 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 crm_claim
|
||||
58
crm_rma_lot_mass_return/models/crm_claim.py
Normal file
58
crm_rma_lot_mass_return/models/crm_claim.py
Normal file
@@ -0,0 +1,58 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Osval Reyes, Yanina Aular
|
||||
#
|
||||
# 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 import api, models
|
||||
|
||||
|
||||
class CrmClaim(models.Model):
|
||||
|
||||
_inherit = 'crm.claim'
|
||||
|
||||
@api.model
|
||||
def _get_stock_moves_with_code(self, code='incoming'):
|
||||
"""
|
||||
@code: Type of operation code.
|
||||
Returns all stock_move with filtered by type of
|
||||
operation.
|
||||
"""
|
||||
stockmove = self.env['stock.move']
|
||||
receipts = self.env['stock.picking.type']
|
||||
|
||||
spt_receipts = receipts.search([('code',
|
||||
'=',
|
||||
code)])
|
||||
spt_receipts = [spt.id for spt in spt_receipts]
|
||||
sm_receipts = stockmove.search([('picking_type_id',
|
||||
'in',
|
||||
spt_receipts)])
|
||||
return sm_receipts
|
||||
|
||||
@api.multi
|
||||
def render_metasearch_view(self):
|
||||
context = self._context.copy()
|
||||
context.update({
|
||||
'active_model': self._name,
|
||||
'active_ids': self.ids,
|
||||
'active_id': self.id or False,
|
||||
})
|
||||
wizard = self.env['returned.lines.from.serial.wizard'].\
|
||||
with_context(context).create({})
|
||||
return wizard.render_metasearch_view()
|
||||
115
crm_rma_lot_mass_return/static/src/js/barcode_text.js
Normal file
115
crm_rma_lot_mass_return/static/src/js/barcode_text.js
Normal file
@@ -0,0 +1,115 @@
|
||||
openerp.crm_rma_lot_mass_return = function(openerp) {
|
||||
var _t = openerp.web._t,
|
||||
_lt = openerp.web._lt;
|
||||
var QWeb = openerp.web.qweb;
|
||||
/*
|
||||
This widget is suposed to be used only in places where you need to load several
|
||||
barcodes at same time. In order to save locally information and trigger save
|
||||
data "ala onchange" but without lose the focus.
|
||||
*/
|
||||
openerp.web.form.BarcodeText = openerp.web.form.FieldText.extend({
|
||||
events: {
|
||||
'keyup': function(e) {
|
||||
if (e.which === $.ui.keyCode.ENTER) {
|
||||
this.store_dom_value();
|
||||
e.stopPropagation();
|
||||
|
||||
}
|
||||
},
|
||||
'keypress': function(e) {
|
||||
if (e.which === $.ui.keyCode.ENTER) {
|
||||
this.store_dom_value();
|
||||
e.stopPropagation();
|
||||
}
|
||||
},
|
||||
'change textarea': function(e) {
|
||||
this.store_dom_value();
|
||||
e.stopPropagation();
|
||||
$('textarea[name="scan_data"]').focus();
|
||||
$('textarea[name="scan_data"]').trigger('focus');
|
||||
|
||||
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
openerp.web.form.ChangeFocus = openerp.web.form.FieldChar.extend({
|
||||
|
||||
events: {
|
||||
'keyup': function(e) {
|
||||
if (e.which === $.ui.keyCode.ENTER) {
|
||||
$('textarea[name="scan_data"]').focus();
|
||||
this.store_dom_value();
|
||||
e.stopPropagation();
|
||||
|
||||
}
|
||||
},
|
||||
'keypress': function(e) {
|
||||
if (e.which === 0 || e.which === $.ui.keyCode.TAB) {
|
||||
$('textarea[name="scan_data"]').focus();
|
||||
this.store_dom_value();
|
||||
e.stopPropagation();
|
||||
}
|
||||
},
|
||||
'change input': function(e) {
|
||||
this.store_dom_value();
|
||||
e.stopPropagation();
|
||||
$('.packing_cache_button').click(function(e) {
|
||||
$('body').off("keypress");
|
||||
});
|
||||
$('body').keypress(function(p) {
|
||||
if ($._data($('body')[0], 'events').keypress.length > 1) {
|
||||
$._data($('body')[0], 'events').keypress.pop();
|
||||
|
||||
}
|
||||
var search = p.target.parentElement.className.search('pack_search');
|
||||
if (p.target.name != 'scan_data' && search < 0 && p.keyCode === $.ui.keyCode.ENTER){
|
||||
playAlert.volume(0.9);
|
||||
playAlert('purr');
|
||||
}
|
||||
});
|
||||
$('textarea[name="scan_data"]').focus();
|
||||
$('textarea[name="scan_data"]').trigger('focus');
|
||||
|
||||
|
||||
},
|
||||
},
|
||||
|
||||
});
|
||||
openerp.web.FormView.include({
|
||||
on_processed_onchange: function(result){
|
||||
try {
|
||||
var result2 = result;
|
||||
if (!_.isEmpty(result2.warning) && this.model == 'returned.lines.from.serial.wizard') {
|
||||
playAlert.volume(0.9);
|
||||
playAlert('purr');
|
||||
new openerp.web.Dialog(this, {
|
||||
size: 'medium',
|
||||
title: result2.warning.title,
|
||||
buttons: [{
|
||||
text: _t("-->"),
|
||||
click: function() {}
|
||||
}, {
|
||||
text: _t("Ok"),
|
||||
click: function() {
|
||||
this.parents('.modal').modal('hide');
|
||||
}
|
||||
}]
|
||||
}, QWeb.render("CrashManager.warning", result2.warning)).open();
|
||||
|
||||
$("span:contains('-->')").focus();
|
||||
} else {
|
||||
this._super.apply(this, arguments);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
openerp.webclient.crashmanager.show_message(e);
|
||||
return $.Deferred().reject();
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
});
|
||||
openerp.web.form.widgets.add('barcode_text', 'openerp.web.form.BarcodeText');
|
||||
openerp.web.form.widgets.add('change_focus', 'openerp.web.form.ChangeFocus');
|
||||
};
|
||||
11
crm_rma_lot_mass_return/templates/search_view.xml
Normal file
11
crm_rma_lot_mass_return/templates/search_view.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<template id="assets_backend" name="search_product assets" inherit_id="web.assets_backend">
|
||||
<xpath expr="." position="inside">
|
||||
<script type="text/javascript" src="/crm_rma_lot_mass_return/static/lib/alert.js"></script>
|
||||
<script type="text/javascript" src="/crm_rma_lot_mass_return/static/src/js/barcode_text.js"></script>
|
||||
</xpath>
|
||||
</template>
|
||||
</data>
|
||||
</openerp>
|
||||
25
crm_rma_lot_mass_return/tests/__init__.py
Normal file
25
crm_rma_lot_mass_return/tests/__init__.py
Normal file
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Osval Reyes,
|
||||
# Yanina Aular
|
||||
#
|
||||
# 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 test_crm_rma_lot_mass_return
|
||||
from . import test_crm_rma_lot_mass_return_2
|
||||
from . import test_constrains
|
||||
48
crm_rma_lot_mass_return/tests/test_constrains.py
Normal file
48
crm_rma_lot_mass_return/tests/test_constrains.py
Normal file
@@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Yanina Aular
|
||||
#
|
||||
# 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.tests.common import TransactionCase
|
||||
from openerp.exceptions import ValidationError
|
||||
|
||||
|
||||
class TestConstrains(TransactionCase):
|
||||
|
||||
"""
|
||||
- The product in claim.line.wizard must be the same
|
||||
that product of invoice line
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(TestConstrains, self).setUp()
|
||||
self.claim_line_wizard = self.env['claim.line.wizard']
|
||||
|
||||
def test_product_constrain(self):
|
||||
|
||||
msg = "The product of the invoice .* is not same that product .*"
|
||||
with self.assertRaisesRegexp(ValidationError, msg):
|
||||
self.claim_line_wizard.\
|
||||
create({
|
||||
'product_id': self.env.ref('product.'
|
||||
'product_product_8').id,
|
||||
'invoice_line_id':
|
||||
self.env.ref('account.demo_invoice_0_'
|
||||
'line_rpanrearpanelshe0').id,
|
||||
})
|
||||
199
crm_rma_lot_mass_return/tests/test_crm_rma_lot_mass_return.py
Normal file
199
crm_rma_lot_mass_return/tests/test_crm_rma_lot_mass_return.py
Normal file
@@ -0,0 +1,199 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Osval Reyes,
|
||||
# Yanina Aular
|
||||
#
|
||||
# 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 datetime import date
|
||||
from openerp.tests.common import TransactionCase
|
||||
|
||||
|
||||
class TestCrmRmaLotMassReturn(TransactionCase):
|
||||
|
||||
"""
|
||||
Test cases for CRM RMA Lot Mass Return Module
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(TestCrmRmaLotMassReturn, self).setUp()
|
||||
self.metasearch_wizard = self.env['returned.lines.from.serial.wizard']
|
||||
self.partner_id = self.env['res.partner'].browse(
|
||||
self.ref('base.res_partner_2'))
|
||||
self.invoice_id, self.lot_ids = self.create_sale_invoice()
|
||||
self.claim_id = self.env['crm.claim'].\
|
||||
create({
|
||||
'name': 'Test',
|
||||
'claim_type': self.ref('crm_claim_type.'
|
||||
'crm_claim_type_customer'),
|
||||
'partner_id': self.invoice_id.partner_id.id,
|
||||
'pick': True
|
||||
})
|
||||
|
||||
def create_sale_order(self, order_policy='manual'):
|
||||
sale_order_id = self.env['sale.order'].create({
|
||||
'partner_id': self.partner_id.id,
|
||||
'note': 'Sale Order Test',
|
||||
'order_policy': order_policy,
|
||||
'payment_term': self.ref('account.account_payment_term'),
|
||||
'order_line': [(0, 0, {
|
||||
'name': 'Test',
|
||||
'product_id': self.ref('product.product_product_8'),
|
||||
'product_uom_qty': 2
|
||||
})]
|
||||
})
|
||||
|
||||
sale_order_id.action_button_confirm()
|
||||
|
||||
return sale_order_id
|
||||
|
||||
def test_01_render_metasearch_view(self):
|
||||
res = self.claim_id.render_metasearch_view()
|
||||
self.assertEqual(res['res_model'], self.metasearch_wizard._name)
|
||||
|
||||
def test_02_load_products(self):
|
||||
|
||||
wizard_id = self.metasearch_wizard.with_context({
|
||||
'active_model': self.claim_id._name,
|
||||
'active_id': self.claim_id.id,
|
||||
'active_ids': [self.claim_id.id]
|
||||
}).create({})
|
||||
|
||||
# Get ids for invoice lines
|
||||
lines_list_id = wizard_id.onchange_load_products(
|
||||
self.invoice_id.number +
|
||||
'*5*description here' + '\n' + self.lot_ids[0].name,
|
||||
[(6, 0, [])])
|
||||
|
||||
lines_list_id = lines_list_id['domain']['lines_list_id'][0][2]
|
||||
|
||||
option_ids = wizard_id.onchange_load_products(
|
||||
self.invoice_id.number, [(6, 0, [])])['value']['option_ids'][0][2]
|
||||
|
||||
wizard_id.option_ids = option_ids
|
||||
wizard_id.lines_list_id = [(6, 0, lines_list_id)]
|
||||
|
||||
# the invoice lines are two
|
||||
self.assertEqual(len(lines_list_id), 2)
|
||||
|
||||
# Validate it has exactly as much records as the taken invoice has
|
||||
self.assertEqual(len(lines_list_id),
|
||||
int(self.invoice_id.invoice_line.quantity))
|
||||
|
||||
wizard_id._set_message()
|
||||
|
||||
wizard_id.add_claim_lines()
|
||||
|
||||
# Claim record it must have same line count as the invoice
|
||||
qty = 0
|
||||
for inv_line in self.invoice_id.invoice_line:
|
||||
qty += inv_line.quantity
|
||||
self.assertEqual(len(self.claim_id.claim_line_ids),
|
||||
int(qty))
|
||||
|
||||
def sale_validate_invoice(self, sale):
|
||||
|
||||
sale_advance_obj = self.env['sale.advance.payment.inv']
|
||||
|
||||
context = {
|
||||
'active_model': 'sale.order',
|
||||
'active_ids': [sale.id],
|
||||
'active_id': sale.id,
|
||||
}
|
||||
|
||||
wizard_invoice_id = sale_advance_obj.with_context(context).create({
|
||||
'advance_payment_method': 'all',
|
||||
})
|
||||
|
||||
wizard_invoice_id.with_context(context).create_invoices()
|
||||
|
||||
invoice_id = sale.invoice_ids[0]
|
||||
invoice_id.signal_workflow('invoice_open')
|
||||
|
||||
# check if invoice is open
|
||||
self.assertEqual(invoice_id.state, 'open')
|
||||
|
||||
pay_account_id = self.env['account.account'].\
|
||||
browse(self.ref("account.cash"))
|
||||
journal_id = self.env['account.journal'].\
|
||||
browse(self.ref("account.bank_journal"))
|
||||
date_start = date.today().replace(day=1, month=1).strftime('%Y-%m-%d')
|
||||
period_id = self.env['account.fiscalyear'].search(
|
||||
[('date_start', '=', date_start)]).period_ids[8]
|
||||
|
||||
invoice_id.pay_and_reconcile(
|
||||
invoice_id.amount_total, pay_account_id.id,
|
||||
period_id.id, journal_id.id, pay_account_id.id,
|
||||
period_id.id, journal_id.id,
|
||||
name="Payment for Invoice")
|
||||
|
||||
# in order to proceed is necessary to get the sale order invoiced
|
||||
# and the invoice paid as well
|
||||
self.assertTrue(sale.invoiced)
|
||||
self.assertEqual(invoice_id.state, 'paid')
|
||||
|
||||
return invoice_id
|
||||
|
||||
def create_sale_invoice(self):
|
||||
sale_order_id = self.create_sale_order('manual')
|
||||
|
||||
lot_ids = []
|
||||
for picking_id in sale_order_id.picking_ids:
|
||||
|
||||
picking_id.force_assign()
|
||||
|
||||
# create wizard
|
||||
wizard_id = self.env['stock.transfer_details'].create({
|
||||
'picking_id': picking_id.id,
|
||||
})
|
||||
|
||||
# make the transfers
|
||||
for move_id in picking_id.move_lines:
|
||||
|
||||
wizard_item_id = self.env['stock.transfer_details_items'].\
|
||||
create({
|
||||
'transfer_id': wizard_id.id,
|
||||
'product_id': move_id.product_id.id,
|
||||
'quantity': move_id.product_qty,
|
||||
'sourceloc_id': move_id.location_id.id,
|
||||
'destinationloc_id':
|
||||
self.ref('stock.stock_location_stock'),
|
||||
'lot_id': False,
|
||||
'product_uom_id': move_id.product_uom.id,
|
||||
})
|
||||
|
||||
lot_id = self.env['stock.production.lot'].create({
|
||||
'product_id': move_id.product_id.id,
|
||||
'name': 'Test Lot %s%s' % (move_id.id,
|
||||
move_id.product_id.id)
|
||||
})
|
||||
|
||||
# keep lot_id for later check
|
||||
lot_ids.append(lot_id)
|
||||
|
||||
wizard_item_id.write({
|
||||
'lot_id': lot_id.id
|
||||
})
|
||||
|
||||
wizard_id.do_detailed_transfer()
|
||||
|
||||
# Before continue, invoice must be open to get a number value
|
||||
# and this is needed by the wizard
|
||||
invoice_id = self.sale_validate_invoice(sale_order_id)
|
||||
|
||||
return invoice_id, lot_ids
|
||||
209
crm_rma_lot_mass_return/tests/test_crm_rma_lot_mass_return_2.py
Normal file
209
crm_rma_lot_mass_return/tests/test_crm_rma_lot_mass_return_2.py
Normal file
@@ -0,0 +1,209 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Osval Reyes,
|
||||
# Yanina Aular
|
||||
#
|
||||
# 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.tests.common import TransactionCase
|
||||
import re
|
||||
|
||||
|
||||
class TestCrmRmaLotMassReturn2(TransactionCase):
|
||||
|
||||
"""
|
||||
Test cases for CRM RMA Lot Mass Return Module
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
super(TestCrmRmaLotMassReturn2, self).setUp()
|
||||
self.metasearch_wizard = self.env['returned.lines.from.serial.wizard']
|
||||
self.sale_order = self.env.ref('crm_rma_lot_mass_return.'
|
||||
'so_wizard_rma_1')
|
||||
self.lot_ids_mac0001 = self.env.ref('crm_rma_lot_mass_return.'
|
||||
'lot_purchase_wizard_rma_item_1')
|
||||
self.lot_ids_mac0003 = self.env.ref('crm_rma_lot_mass_return.'
|
||||
'lot_purchase_wizard_rma_item_3')
|
||||
self.claim_id_1 = self.env['crm.claim'].\
|
||||
create({
|
||||
'name': 'CLAIM001',
|
||||
'claim_type': self.ref('crm_claim_type.'
|
||||
'crm_claim_type_customer'),
|
||||
'partner_id': self.sale_order.partner_id.id,
|
||||
'pick': True
|
||||
})
|
||||
|
||||
self.claim_id_2 = self.env['crm.claim'].\
|
||||
create({
|
||||
'name': 'CLAIM002',
|
||||
'claim_type': self.ref('crm_claim_type.'
|
||||
'crm_claim_type_customer'),
|
||||
'partner_id': self.sale_order.partner_id.id,
|
||||
'pick': True
|
||||
})
|
||||
|
||||
def test_01_load_products(self):
|
||||
wizard_id = self.metasearch_wizard.with_context({
|
||||
'active_model': self.claim_id_1._name,
|
||||
'active_id': self.claim_id_1.id,
|
||||
'active_ids': [self.claim_id_1.id]
|
||||
}).create({})
|
||||
|
||||
# Get ids for invoice lines
|
||||
lines_list_id = wizard_id.onchange_load_products(
|
||||
self.sale_order.invoice_ids[0].number +
|
||||
'*5*description here' + '\n' + self.lot_ids_mac0001.name,
|
||||
[(6, 0, [])])['domain']['lines_list_id'][0][2]
|
||||
|
||||
option_ids = wizard_id.onchange_load_products(
|
||||
self.sale_order.invoice_ids[0].number +
|
||||
'*5*description here' + '\n' + self.lot_ids_mac0001.name,
|
||||
[(6, 0, [])])['value']['option_ids'][0][2]
|
||||
|
||||
wizard_id.option_ids = option_ids
|
||||
|
||||
items_to_select = self.env['claim.line.wizard'].browse(lines_list_id)
|
||||
|
||||
mac0001 = items_to_select.search([('lot_id.name', '=', 'MAC0001')])
|
||||
mac0002 = items_to_select.search([('lot_id.name', '=', 'MAC0002')])
|
||||
wizard_id.lines_list_id = [(6, 0, [mac0001.id, mac0002.id])]
|
||||
|
||||
# 1 Ink Cartridge, 2 Toner Cartridge, 1 iPad, 5 iMac
|
||||
self.assertEqual(len(lines_list_id), 9)
|
||||
|
||||
qty = 0
|
||||
for inv_line in self.sale_order.invoice_ids[0].invoice_line:
|
||||
qty += inv_line.quantity
|
||||
# Validate it has exactly as much records as the taken invoice has
|
||||
self.assertEqual(len(lines_list_id), int(qty))
|
||||
|
||||
wizard_id._set_message()
|
||||
wizard_id.add_claim_lines()
|
||||
|
||||
# 2 Macs
|
||||
self.assertEqual(len(self.claim_id_1.claim_line_ids), 2)
|
||||
|
||||
def test_02_load_products(self):
|
||||
wizard_id = self.metasearch_wizard.with_context({
|
||||
'active_model': self.claim_id_2._name,
|
||||
'active_id': self.claim_id_2.id,
|
||||
'active_ids': [self.claim_id_2.id]
|
||||
}).create({})
|
||||
|
||||
line_str = self.sale_order.invoice_ids[0].number + '*5*A description\n'
|
||||
# Get ids for invoice lines
|
||||
lines_list_id = wizard_id.onchange_load_products(
|
||||
line_str, [(6, 0, [])])['domain']['lines_list_id'][0][2]
|
||||
|
||||
option_ids = wizard_id.onchange_load_products(
|
||||
line_str, [(6, 0, [])])['value']['option_ids'][0][2]
|
||||
|
||||
wizard_id.option_ids = option_ids
|
||||
cl_wizard = self.env['claim.line.wizard'].browse(lines_list_id)
|
||||
|
||||
mac0001 = cl_wizard.search([('lot_id.name', '=', 'MAC0001')])
|
||||
mac0003 = cl_wizard.search([('lot_id.name', '=', 'MAC0003')])
|
||||
toner0001 = cl_wizard.search([('product_id.name',
|
||||
'=', 'Toner Cartridge')])
|
||||
toner0002 = toner0001[1]
|
||||
toner0001 = toner0001[0]
|
||||
ink0001 = cl_wizard.search([('product_id.name', '=', 'Ink Cartridge')])
|
||||
|
||||
wizard_id.lines_list_id = [(6, 0, [mac0001.id, mac0003.id,
|
||||
toner0001.id, toner0002.id,
|
||||
ink0001.id])]
|
||||
# 1 Ink Cartridge, 2 Toner Cartridge, 1 iPad, 5 iMac
|
||||
self.assertEqual(len(lines_list_id), 9)
|
||||
|
||||
qty = 0
|
||||
for inv_line in self.sale_order.invoice_ids[0].invoice_line:
|
||||
qty += inv_line.quantity
|
||||
# Validate it has exactly as much records as the taken invoice has
|
||||
self.assertEqual(len(lines_list_id), int(qty))
|
||||
wizard_id.add_claim_lines()
|
||||
# 2 Macs
|
||||
self.assertEqual(len(self.claim_id_2.claim_line_ids), 5)
|
||||
|
||||
def test_03_claim_line_creation_and_error_message(self):
|
||||
"""
|
||||
Challenge the wizard when a claim line is created, to set claim_origin
|
||||
and the name correctly in a claim line itself, and also it tests the
|
||||
message displayed to the user when is introduced an Serial/Lot numbers
|
||||
that already is part of another claim.
|
||||
"""
|
||||
|
||||
subject_list = self.env['claim.line'].SUBJECT_LIST
|
||||
lot_name = "MAC0001"
|
||||
subject_index = 3
|
||||
scanned_data = lot_name + '*' + \
|
||||
str(subject_index) + '*A short description to test\n'
|
||||
wizard_id = self.metasearch_wizard.with_context({
|
||||
'active_model': self.claim_id_2._name,
|
||||
'active_id': self.claim_id_2.id,
|
||||
'active_ids': [self.claim_id_2.id]
|
||||
}).create({})
|
||||
wizard_id.scan_data = scanned_data
|
||||
|
||||
# Get ids for invoice lines
|
||||
lines_list_id = wizard_id.onchange_load_products(
|
||||
scanned_data, [(6, 0, [])])['domain']['lines_list_id'][0][2]
|
||||
|
||||
wizard_id.option_id = wizard_id.onchange_load_products(
|
||||
scanned_data, [(6, 0, [])])['value']['option_ids'][0][2]
|
||||
|
||||
items_to_select = self.env['claim.line.wizard'].browse(lines_list_id)
|
||||
mac0001 = items_to_select.search([('lot_id.name', '=', lot_name)])
|
||||
wizard_id.lines_list_id = [(6, 0, [mac0001.id])]
|
||||
self.assertEqual(len(lines_list_id), 1)
|
||||
|
||||
wizard_id.add_claim_lines()
|
||||
self.assertEqual(len(self.claim_id_2.claim_line_ids), 1)
|
||||
|
||||
line_id = self.claim_id_2.claim_line_ids
|
||||
self.assertEqual(
|
||||
subject_list[subject_index - 1][0], line_id.claim_origin)
|
||||
self.assertEqual(scanned_data, line_id.prodlot_id.name + '*' +
|
||||
str(subject_index) + '*' + line_id.name + '\n')
|
||||
|
||||
# create again the wizard
|
||||
wizard_id = self.metasearch_wizard.with_context({
|
||||
'active_model': self.claim_id_2._name,
|
||||
'active_id': self.claim_id_2.id,
|
||||
'active_ids': [self.claim_id_2.id]
|
||||
}).create({})
|
||||
wizard_id.scan_data = scanned_data
|
||||
|
||||
# Get ids for invoice lines
|
||||
lines_list_id = wizard_id.onchange_load_products(
|
||||
scanned_data, [(6, 0, [])])['domain']['lines_list_id'][0][2]
|
||||
|
||||
wizard_id.option_id = wizard_id.onchange_load_products(
|
||||
scanned_data, [(6, 0, [])])['value']['option_ids'][0][2]
|
||||
|
||||
cl_wizard = self.env['claim.line.wizard'].browse(lines_list_id)
|
||||
clw_id = cl_wizard.search([('lot_id.name', '=', lot_name)])
|
||||
wizard_id.lines_list_id = [(6, 0, [clw_id.id])]
|
||||
self.assertEqual(len(lines_list_id), 1)
|
||||
|
||||
wizard_id._set_message()
|
||||
wizard_id.add_claim_lines()
|
||||
self.assertEqual(len(self.claim_id_2.claim_line_ids), 1)
|
||||
|
||||
# if the message exists, then it's being displayed
|
||||
regex = re.compile(".*" + lot_name + ".*")
|
||||
self.assertTrue(regex.search(wizard_id.message))
|
||||
19
crm_rma_lot_mass_return/views/crm_claim.xml
Normal file
19
crm_rma_lot_mass_return/views/crm_claim.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="crm_claim_rma_form_view_meta" model="ir.ui.view">
|
||||
<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">
|
||||
<xpath expr="//page[@string='Claim Description']//div[@name='serial']" position="inside">
|
||||
<button name="render_metasearch_view"
|
||||
string="Add claim lines using serial or invoice number" type="object"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='invoice_id']" position="attributes">
|
||||
<attribute name="invisible">True</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,267 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#########################################################################
|
||||
# #
|
||||
# #
|
||||
#########################################################################
|
||||
# #
|
||||
# Copyright (C) 2009-2011 Akretion, Emmanuel Samyn #
|
||||
# #
|
||||
#This program is free software: you can redistribute it and/or modify #
|
||||
#it under the terms of the GNU 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 General Public License for more details. #
|
||||
# #
|
||||
#You should have received a copy of the GNU General Public License #
|
||||
#along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
||||
#########################################################################
|
||||
from openerp.osv import fields, orm
|
||||
|
||||
|
||||
class returned_lines_from_serial(orm.TransientModel):
|
||||
|
||||
_name = 'returned_lines_from_serial.wizard'
|
||||
_description = 'Wizard to create product return lines from serial numbers'
|
||||
_columns = {
|
||||
'prodlot_id_1': fields.many2one('stock.production.lot',
|
||||
'Serial / Lot Number 1', required=True),
|
||||
'prodlot_id_2': fields.many2one('stock.production.lot',
|
||||
'Serial / Lot Number 2'),
|
||||
'prodlot_id_3': fields.many2one('stock.production.lot',
|
||||
'Serial / Lot Number 3'),
|
||||
'prodlot_id_4': fields.many2one('stock.production.lot',
|
||||
'Serial / Lot Number 4'),
|
||||
'prodlot_id_5': fields.many2one('stock.production.lot',
|
||||
'Serial / Lot Number 5'),
|
||||
'qty_1' : fields.float('Quantity 1', digits=(12,2), required=True),
|
||||
'qty_2' : fields.float('Quantity 2', digits=(12,2)),
|
||||
'qty_3' : fields.float('Quantity 3', digits=(12,2)),
|
||||
'qty_4' : fields.float('Quantity 4', digits=(12,2)),
|
||||
'qty_5' : fields.float('Quantity 5', digits=(12,2)),
|
||||
'claim_1': fields.selection([('none','Not specified'),
|
||||
('legal','Legal retractation'),
|
||||
('cancellation','Order cancellation'),
|
||||
('damaged','Damaged delivered product'),
|
||||
('error','Shipping error'),
|
||||
('exchange','Exchange request'),
|
||||
('lost','Lost during transport'),
|
||||
('other','Other')], 'Claim Subject',
|
||||
required=True,
|
||||
help="To describe the product problem"),
|
||||
'claim_2': fields.selection([('none','Not specified'),
|
||||
('legal','Legal retractation'),
|
||||
('cancellation','Order cancellation'),
|
||||
('damaged','Damaged delivered product'),
|
||||
('error','Shipping error'),
|
||||
('exchange','Exchange request'),
|
||||
('lost','Lost during transport'),
|
||||
('other','Other')], 'Claim Subject',
|
||||
required=True,
|
||||
help="To describe the line product problem"),
|
||||
'claim_3': fields.selection([('none','Not specified'),
|
||||
('legal','Legal retractation'),
|
||||
('cancellation','Order cancellation'),
|
||||
('damaged','Damaged delivered product'),
|
||||
('error','Shipping error'),
|
||||
('exchange','Exchange request'),
|
||||
('lost','Lost during transport'),
|
||||
('other','Other')], 'Claim Subject',
|
||||
required=True,
|
||||
help="To describe the line product problem"),
|
||||
'claim_4': fields.selection([('none','Not specified'),
|
||||
('legal','Legal retractation'),
|
||||
('cancellation','Order cancellation'),
|
||||
('damaged','Damaged delivered product'),
|
||||
('error','Shipping error'),
|
||||
('exchange','Exchange request'),
|
||||
('lost','Lost during transport'),
|
||||
('other','Other')], 'Claim Subject',
|
||||
required=True,
|
||||
help="To describe the line product problem"),
|
||||
'claim_5': fields.selection([('none','Not specified'),
|
||||
('legal','Legal retractation'),
|
||||
('cancellation','Order cancellation'),
|
||||
('damaged','Damaged delivered product'),
|
||||
('error','Shipping error'),
|
||||
('exchange','Exchange request'),
|
||||
('lost','Lost during transport'),
|
||||
('other','Other')], 'Claim Subject',
|
||||
required=True,
|
||||
help="To describe the line product problem"),
|
||||
'partner_id': fields.many2one('res.partner', 'Partner'),
|
||||
}
|
||||
|
||||
# Get partner from case is set to filter serials
|
||||
def _get_default_partner_id(self, cr, uid, context):
|
||||
return self.pool.get('crm.claim').read(cr, uid,
|
||||
context['active_id'], ['partner_id'])['partner_id'][0]
|
||||
|
||||
_defaults = {
|
||||
'qty_1': lambda *a: 1.0,
|
||||
'qty_2': lambda *a: 1.0,
|
||||
'qty_3': lambda *a: 1.0,
|
||||
'qty_4': lambda *a: 1.0,
|
||||
'qty_5': lambda *a: 1.0,
|
||||
'claim_1': lambda *a: "none",
|
||||
'claim_2': lambda *a: "none",
|
||||
'claim_3': lambda *a: "none",
|
||||
'claim_4': lambda *a: "none",
|
||||
'claim_5': lambda *a: "none",
|
||||
'partner_id': _get_default_partner_id,
|
||||
}
|
||||
|
||||
# If "Cancel" button pressed
|
||||
def action_cancel(self,cr,uid,ids,conect=None):
|
||||
return {'type': 'ir.actions.act_window_close',}
|
||||
|
||||
# If "Add & close" button pressed
|
||||
def action_add_and_close(self, cr, uid, ids, context=None):
|
||||
self.add_return_lines(cr, uid, ids, context)
|
||||
return {'type': 'ir.actions.act_window_close',}
|
||||
|
||||
# If "Add & new" button pressed
|
||||
def action_add_and_new(self, cr, uid, ids, context=None):
|
||||
self.add_return_lines(cr, uid, ids, context)
|
||||
return {
|
||||
'context': context,
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'returned_lines_from_serial.wizard',
|
||||
'view_id': False,
|
||||
'type': 'ir.actions.act_window',
|
||||
'target': 'new',
|
||||
}
|
||||
|
||||
# Method to get the product id from set
|
||||
def get_product_id(self, cr, uid,ids,product_set, context=None):
|
||||
product_id = False
|
||||
for product in self.prodlot_2_product(cr, uid,[product_set]):
|
||||
product_id = product
|
||||
return product_id
|
||||
|
||||
# Method to create return lines
|
||||
def add_return_lines(self, cr, uid, ids, context=None):
|
||||
result = self.browse(cr,uid,ids)[0]
|
||||
return_line = self.pool.get('claim.line')
|
||||
# Refactor code : create 1 "createmethode" called by each if with values as parameters
|
||||
return_line.create(cr, uid, {
|
||||
'claim_id': context['active_id'],
|
||||
'claim_origine': result.claim_1,
|
||||
'product_id' : self.get_product_id(cr, uid, ids,
|
||||
result.prodlot_id_1.id, context=context),
|
||||
#'invoice_id' : self.prodlot_2_invoice(cr, uid,[result.prodlot_id_1.id],[result.prodlot_id_1.product_id.id]), #PRODLOT_ID can be in many invoice !!
|
||||
'product_returned_quantity' : result.qty_1,
|
||||
'prodlot_id' : result.prodlot_id_1.id,
|
||||
'selected' : False,
|
||||
'state' : 'draft',
|
||||
#'guarantee_limit' : warranty['value']['guarantee_limit'],
|
||||
#'warning' : warranty['value']['warning'],
|
||||
})
|
||||
if result.prodlot_id_2.id :
|
||||
return_line.create(cr, uid, {
|
||||
'claim_id': context['active_id'],
|
||||
'claim_origine': result.claim_2,
|
||||
'product_id' : self.get_product_id(cr, uid, ids,
|
||||
result.prodlot_id_2.id, context=context),
|
||||
# 'invoice_id' : self.prodlot_2_invoice(cr, uid,[result.prodlot_id_1.id]),
|
||||
'product_returned_quantity' : result.qty_2,
|
||||
'prodlot_id' : result.prodlot_id_2.id,
|
||||
'selected' : False,
|
||||
'state' : 'draft',
|
||||
#'guarantee_limit' : warranty['value']['guarantee_limit'],
|
||||
#'warning' : warranty['value']['warning'],
|
||||
})
|
||||
if result.prodlot_id_3.id :
|
||||
return_line.create(cr, uid, {
|
||||
'claim_id': context['active_id'],
|
||||
'claim_origine': result.claim_3,
|
||||
'product_id' : self.get_product_id(cr, uid, ids,
|
||||
result.prodlot_id_3.id, context=context),
|
||||
# 'invoice_id' : self.prodlot_2_invoice(cr, uid,[result.prodlot_id_1.id]),
|
||||
'product_returned_quantity' : result.qty_3,
|
||||
'prodlot_id' : result.prodlot_id_3.id,
|
||||
'selected' : False,
|
||||
'state' : 'draft',
|
||||
#'guarantee_limit' : warranty['value']['guarantee_limit'],
|
||||
#'warning' : warranty['value']['warning'],
|
||||
})
|
||||
if result.prodlot_id_4.id :
|
||||
return_line.create(cr, uid, {
|
||||
'claim_id': context['active_id'],
|
||||
'claim_origine': result.claim_4,
|
||||
'product_id' : self.get_product_id(cr, uid, ids,
|
||||
result.prodlot_id_4.id, context=context),
|
||||
# 'invoice_id' : self.prodlot_2_invoice(cr, uid,[result.prodlot_id_1.id]),
|
||||
'product_returned_quantity' : result.qty_4,
|
||||
'prodlot_id' : result.prodlot_id_4.id,
|
||||
'selected' : False,
|
||||
'state' : 'draft',
|
||||
#'guarantee_limit' : warranty['value']['guarantee_limit'],
|
||||
#'warning' : warranty['value']['warning'],
|
||||
})
|
||||
if result.prodlot_id_5.id :
|
||||
return_line.create(cr, uid, {
|
||||
'claim_id': context['active_id'],
|
||||
'claim_origine': result.claim_5,
|
||||
'product_id' : self.get_product_id(cr, uid, ids,
|
||||
result.prodlot_id_5.id, context=context),
|
||||
# 'invoice_id' : self.prodlot_2_invoice(cr, uid,[result.prodlot_id_1.id],[result.prodlot_id_1.product_id.id]),
|
||||
'product_returned_quantity' : result.qty_5,
|
||||
'prodlot_id' : result.prodlot_id_5.id,
|
||||
'selected' : False,
|
||||
'state' : 'draft',
|
||||
#'guarantee_type':
|
||||
#'guarantee_limit' : warranty['value']['guarantee_limit'],
|
||||
#'warning' : warranty['value']['warning'],
|
||||
})
|
||||
|
||||
return True
|
||||
|
||||
def prodlot_2_product(self,cr, uid, prodlot_ids):
|
||||
stock_move_ids = self.pool.get('stock.move').search(cr, uid,
|
||||
[('prodlot_id', 'in', prodlot_ids)])
|
||||
res = self.pool.get('stock.move').read(cr, uid,
|
||||
stock_move_ids, ['product_id'])
|
||||
return set([x['product_id'][0] for x in res if x['product_id']])
|
||||
|
||||
def prodlot_2_invoice(self,cr, uid, prodlot_id,product_id):
|
||||
# get stock_move_ids
|
||||
stock_move_ids = self.pool.get('stock.move').search(cr, uid,
|
||||
[('prodlot_id', 'in', prodlot_id)])
|
||||
# if 1 id
|
||||
# (get stock picking (filter on out ?))
|
||||
# get invoice_ids from stock_move_id where invoice.line.product = prodlot_product and invoice customer = claim_partner
|
||||
# if 1 id
|
||||
# return invoice_id
|
||||
# else
|
||||
# else : move_in / move_out ; 1 move per order line so if many order lines with same lot, ...
|
||||
|
||||
|
||||
#
|
||||
#return set(self.stock_move_2_invoice(cr, uid, stock_move_ids))
|
||||
return True
|
||||
|
||||
def stock_move_2_invoice(self, cr, uid, stock_move_ids):
|
||||
inv_line_ids = []
|
||||
res = self.pool.get('stock.move').read(cr, uid,
|
||||
stock_move_ids, ['sale_line_id'])
|
||||
sale_line_ids = [x['sale_line_id'][0] for x in res if x['sale_line_id']]
|
||||
if not sale_line_ids:
|
||||
return []
|
||||
sql_base = "select invoice_id from sale_order_line_invoice_rel where \
|
||||
order_line_id in ("
|
||||
cr.execute(sql_base + ','.join(map(lambda x: str(x),sale_line_ids))+')')
|
||||
res = cr.fetchall()
|
||||
for i in res:
|
||||
for j in i:
|
||||
inv_line_ids.append(j)
|
||||
|
||||
res = self.pool.get('account.invoice.line').read(cr, uid,
|
||||
inv_line_ids,['invoice_id'])
|
||||
return [x['invoice_id'][0] for x in res if x['invoice_id']]
|
||||
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
#########################################################################
|
||||
# #
|
||||
# #
|
||||
#########################################################################
|
||||
# #
|
||||
# Copyright (C) 2009-2011 Akretion, Emmanuel Samyn #
|
||||
# #
|
||||
#This program is free software: you can redistribute it and/or modify #
|
||||
#it under the terms of the GNU 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 General Public License for more details. #
|
||||
# #
|
||||
#You should have received a copy of the GNU General Public License #
|
||||
#along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
||||
#########################################################################
|
||||
-->
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- SELECT FORM VIEW -->
|
||||
<record id="view_create_return_serial_form" model="ir.ui.view">
|
||||
<field name="name">returned_lines_from_serial_wiew</field>
|
||||
<field name="model">returned_lines_from_serial.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Select serial numbers to create">
|
||||
<group col="3" colspan="4">
|
||||
<separator string="Serial / Lot Number" colspan="1"/>
|
||||
<separator string="Quantity returned" colspan="1"/>
|
||||
<separator string="Claim short description" colspan="1"/>
|
||||
<field name="prodlot_id_1" nolabel="1"/>
|
||||
<field name="qty_1" nolabel="1"/>
|
||||
<field name="claim_1" nolabel="1"/>
|
||||
<field name="prodlot_id_2" nolabel="1"/>
|
||||
<field name="qty_2" nolabel="1"/>
|
||||
<field name="claim_2" nolabel="1"/>
|
||||
<field name="prodlot_id_3" nolabel="1"/>
|
||||
<field name="qty_3" nolabel="1"/>
|
||||
<field name="claim_3" nolabel="1"/>
|
||||
<field name="prodlot_id_4" nolabel="1"/>
|
||||
<field name="qty_4" nolabel="1"/>
|
||||
<field name="claim_4" nolabel="1"/>
|
||||
<field name="prodlot_id_5" nolabel="1"/>
|
||||
<field name="qty_5" nolabel="1"/>
|
||||
<field name="claim_5" nolabel="1"/>
|
||||
</group>
|
||||
<group col="4" colspan="2">
|
||||
<button special="cancel" string="Cancel" name="action_cancel" type="object" icon='gtk-cancel'/>
|
||||
<button name="action_add_and_close" string="Save and close" icon='gtk-ok' type="object"/>
|
||||
<button name="action_add_and_new" string="Save and new" icon='gtk-add' type="object"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- SELECT ACTION -->
|
||||
<record id="action_create_return_serial" model="ir.actions.act_window">
|
||||
<field name="name">action_create_return_serial</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">returned_lines_from_serial.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>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,9 +1,12 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Copyright 2013 Camptocamp
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau, Joel Grand-Guillaume
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
|
||||
# Joel Grand-Guillaume,
|
||||
# Yanina Aular, Osval Reyes
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -19,4 +22,5 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from . import returned_lines_from_serial
|
||||
595
crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py
Normal file
595
crm_rma_lot_mass_return/wizards/returned_lines_from_serial.py
Normal file
@@ -0,0 +1,595 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Copyright (C) 2009-2011 Akretion
|
||||
# Author: Emmanuel Samyn,
|
||||
# Yanina Aular,
|
||||
# Osval Reyes
|
||||
#
|
||||
# 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 import _, api, fields, models
|
||||
from openerp.exceptions import ValidationError
|
||||
|
||||
|
||||
class ClaimLineWizard(models.TransientModel):
|
||||
|
||||
_name = "claim.line.wizard"
|
||||
|
||||
product_id = fields.Many2one("product.product",
|
||||
string="Product",
|
||||
help="Product to claim")
|
||||
lot_id = fields.Many2one("stock.production.lot",
|
||||
string="Lot",
|
||||
help="Product to claim")
|
||||
invoice_line_id = fields.Many2one("account.invoice.line",
|
||||
required=True,
|
||||
string="Invoice Line",
|
||||
help="Invoice Line")
|
||||
name = fields.Char(compute="_get_complete_name",
|
||||
string="Complete Lot Name",)
|
||||
|
||||
@api.constrains('product_id', 'invoice_line_id')
|
||||
def _check_product_id(self):
|
||||
for record in self:
|
||||
if record.product_id != \
|
||||
record.invoice_line_id.product_id:
|
||||
raise ValidationError("The product of the"
|
||||
" invoice %s is not same"
|
||||
" that product %s" %
|
||||
(record.invoice_line_id.product_id.name,
|
||||
record.product_id.name))
|
||||
|
||||
@api.depends('invoice_line_id', 'lot_id', 'product_id')
|
||||
def _get_complete_name(self):
|
||||
for wizard in self:
|
||||
invoice_number = wizard.invoice_line_id.invoice_id.number
|
||||
product_name = wizard.product_id.name
|
||||
|
||||
lot_name = False
|
||||
if wizard.lot_id:
|
||||
lot_name = wizard.lot_id.name
|
||||
|
||||
if not lot_name:
|
||||
name = _("(ID: %s) - %s - %s") % \
|
||||
(wizard.id,
|
||||
product_name,
|
||||
invoice_number)
|
||||
else:
|
||||
name = _("(ID: %s) - %s - %s - %s") % \
|
||||
(wizard.id,
|
||||
product_name,
|
||||
invoice_number,
|
||||
lot_name)
|
||||
|
||||
wizard.name = name
|
||||
|
||||
|
||||
class ReturnedLinesFromSerial(models.TransientModel):
|
||||
|
||||
_name = 'returned.lines.from.serial.wizard'
|
||||
_description = 'Wizard to create product return lines'
|
||||
' from serial numbers or invoices'
|
||||
|
||||
# Get partner from case is set to filter serials
|
||||
@api.model
|
||||
def _get_default_partner_id(self):
|
||||
"""
|
||||
Obtain partner from the claim
|
||||
"""
|
||||
crm_claim_model = self.env['crm.claim']
|
||||
claim_id = self.env.context.get('active_id')
|
||||
partner_record = crm_claim_model.browse(claim_id).\
|
||||
partner_id
|
||||
return partner_record and partner_record[0] or \
|
||||
self.env['res.partner']
|
||||
|
||||
@api.model
|
||||
def create_claim_line(self, claim_id, claim_origin,
|
||||
product_record, claim_line_wizard,
|
||||
qty, name):
|
||||
clima_line = self.env['claim.line']
|
||||
if claim_line_wizard.lot_id:
|
||||
inv_line = self.prodlot_2_invoice_line(
|
||||
claim_line_wizard.lot_id.name)
|
||||
lot_id = claim_line_wizard.lot_id.id
|
||||
else:
|
||||
inv_line = claim_line_wizard.invoice_line_id
|
||||
lot_id = False
|
||||
line_rec = clima_line.create({
|
||||
'claim_id': claim_id,
|
||||
'claim_origin': claim_origin,
|
||||
'product_id': product_record and product_record.id or False,
|
||||
'name': name and name or (product_record and
|
||||
product_record.name or
|
||||
inv_line.name),
|
||||
'invoice_line_id': inv_line.id,
|
||||
'product_returned_quantity': qty,
|
||||
'prodlot_id': lot_id,
|
||||
})
|
||||
line_rec.set_warranty()
|
||||
|
||||
# If "Cancel" button pressed
|
||||
@api.multi
|
||||
def action_cancel(self):
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
partner_id = fields.Many2one('res.partner',
|
||||
'Partner',
|
||||
default=_get_default_partner_id)
|
||||
|
||||
def _get_claim_type(self):
|
||||
claim_id = self.env.context.get('active_id')
|
||||
claim_record = self.env['crm.claim'].browse(claim_id)
|
||||
current_claim_type = claim_record.claim_type
|
||||
customer_claim_type = \
|
||||
self.env.ref('crm_claim_type.crm_claim_type_customer')
|
||||
supplier_claim_type = \
|
||||
self.env.ref('crm_claim_type.crm_claim_type_supplier')
|
||||
return current_claim_type, customer_claim_type, supplier_claim_type
|
||||
|
||||
@api.model
|
||||
def prodlot_2_invoice_line(self, prodlot):
|
||||
"""
|
||||
Return the last line of customer invoice
|
||||
based in serial/lot number
|
||||
"""
|
||||
lot_obj = self.env['stock.production.lot']
|
||||
current_claim_type, customer_claim_type, supplier_claim_type = \
|
||||
self._get_claim_type()
|
||||
|
||||
prodlot = lot_obj.search([('name', '=', str(prodlot))])
|
||||
|
||||
if supplier_claim_type == current_claim_type:
|
||||
if prodlot.supplier_invoice_line_id:
|
||||
return prodlot.supplier_invoice_line_id
|
||||
elif customer_claim_type == current_claim_type:
|
||||
if prodlot.invoice_line_id:
|
||||
return prodlot.invoice_line_id
|
||||
else:
|
||||
if prodlot.invoice_line_id:
|
||||
return prodlot.invoice_line_id
|
||||
elif prodlot.supplier_invoice_line_id:
|
||||
return prodlot.supplier_invoice_line_id
|
||||
|
||||
return False
|
||||
|
||||
lines_list_id = fields.Many2many('claim.line.wizard',
|
||||
'claim_line_wizard_returned',
|
||||
'wizard_id',
|
||||
'claim_line_wizard_id',
|
||||
string='Products selected',
|
||||
help='Field used to show the current '
|
||||
'status of the lots '
|
||||
'loaded')
|
||||
option_ids = fields.Many2many('claim.line.wizard',
|
||||
string='Invoice Lines to Select',
|
||||
help='Field used to load the ids of '
|
||||
'invoice lines in invoices writed')
|
||||
scan_data = fields.Text('Products',
|
||||
help='Field used to load and show the '
|
||||
'products')
|
||||
scaned_data = fields.Text('Products',
|
||||
help='Field used to load the ids of '
|
||||
'products loaded')
|
||||
current_status = fields.Text('Status',
|
||||
help='Field used to show the current '
|
||||
'status of the product '
|
||||
'loaded(Name and quantity)')
|
||||
|
||||
@api.multi
|
||||
def get_metasearch_view_brw(self):
|
||||
"""
|
||||
@return: view with metasearch field
|
||||
"""
|
||||
view_id = self.env.\
|
||||
ref('crm_rma_lot_mass_return.view_enter_product')
|
||||
return view_id
|
||||
|
||||
@api.multi
|
||||
def render_metasearch_view(self):
|
||||
"""
|
||||
Render wizard view with metasearch field
|
||||
"""
|
||||
view = self.get_metasearch_view_brw()
|
||||
if view:
|
||||
return {
|
||||
'name': _('Search Product'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form',
|
||||
'res_model': 'returned.lines.from.serial.wizard',
|
||||
'view_id': view.id,
|
||||
'views': [(view.id, 'form')],
|
||||
'target': 'new',
|
||||
'res_id': self.id,
|
||||
}
|
||||
|
||||
@api.model
|
||||
def get_data_of_products(self, input_data):
|
||||
data_line = []
|
||||
for item in input_data and input_data.split('\n') or []:
|
||||
if '*' in item:
|
||||
|
||||
comput = item.split('*')
|
||||
data_it_1 = '0'
|
||||
data_it_2 = ''
|
||||
if len(comput) >= 2:
|
||||
data_it_1 = comput[1]
|
||||
if len(comput) >= 3:
|
||||
data_it_2 = comput[2]
|
||||
if comput[0]:
|
||||
data_line.append((comput[0], (data_it_1, data_it_2)))
|
||||
else:
|
||||
if item.strip():
|
||||
data_line.append((item.strip(), ('0', '')))
|
||||
return data_line
|
||||
|
||||
def _get_lots_from_scan_data(self, input_data):
|
||||
|
||||
input_lines = self.get_data_of_products(input_data)
|
||||
invoice = self.env['account.invoice']
|
||||
lot = self.env['stock.production.lot']
|
||||
|
||||
prodlot_set_ids = set()
|
||||
lot_set_ids = []
|
||||
lots_lot_set_ids = []
|
||||
|
||||
if not input_lines:
|
||||
return False, False, False
|
||||
|
||||
current_claim_type, customer_claim_type, supplier_claim_type = \
|
||||
self._get_claim_type()
|
||||
|
||||
claim_line_wizard = self.env['claim.line.wizard']
|
||||
|
||||
for line in input_lines:
|
||||
# if there is no invoice/serial in it
|
||||
if not line[0]:
|
||||
continue
|
||||
|
||||
number_serial = line[0].encode('utf8')
|
||||
# search invoices first
|
||||
invoice_ids = invoice.search([('number', '=', number_serial)])
|
||||
element_searched = False
|
||||
if invoice_ids:
|
||||
|
||||
if supplier_claim_type == current_claim_type:
|
||||
invoice_field = 'supplier_invoice_line_id'
|
||||
elif customer_claim_type == current_claim_type:
|
||||
invoice_field = 'invoice_line_id'
|
||||
|
||||
for inv in invoice_ids:
|
||||
for inv_line in inv.invoice_line:
|
||||
clw = claim_line_wizard.\
|
||||
search([('invoice_line_id', '=', inv_line.id)])
|
||||
enter = False
|
||||
lot_ids = lot.\
|
||||
search([(invoice_field, '=',
|
||||
inv_line.id)])
|
||||
if len(clw) < int(inv_line.quantity):
|
||||
for asd in clw:
|
||||
if asd not in lot_set_ids:
|
||||
lot_set_ids.append(asd)
|
||||
lot_ids = lot_ids - asd.lot_id
|
||||
num_to_create = int(inv_line.quantity) - len(clw)
|
||||
for num in xrange(0, num_to_create):
|
||||
clw = \
|
||||
claim_line_wizard.\
|
||||
create({
|
||||
'product_id':
|
||||
inv_line.product_id.id,
|
||||
'invoice_line_id': inv_line.id,
|
||||
})
|
||||
if lot_ids:
|
||||
lot = lot_ids[0]
|
||||
clw.write({'lot_id': lot.id})
|
||||
lot_ids = lot_ids - lot
|
||||
for asd in clw:
|
||||
if asd not in lot_set_ids:
|
||||
lot_set_ids.append(asd)
|
||||
enter = True
|
||||
if not enter:
|
||||
for asd in clw:
|
||||
if asd not in lot_set_ids:
|
||||
if lot_ids:
|
||||
lot = lot_ids[0]
|
||||
asd.write({'lot_id': lot.id})
|
||||
lot_ids = lot_ids - lot
|
||||
lot_set_ids.append(asd)
|
||||
|
||||
element_searched = lot_set_ids
|
||||
else:
|
||||
# if not, it must be a serial lot number
|
||||
prodlot_ids = lot
|
||||
if supplier_claim_type == current_claim_type:
|
||||
prodlot_ids = \
|
||||
lot.search([('name', '=', number_serial),
|
||||
('supplier_invoice_line_id', '!=', False)])
|
||||
invoice_line = prodlot_ids.supplier_invoice_line_id
|
||||
elif customer_claim_type == current_claim_type:
|
||||
prodlot_ids = \
|
||||
lot.search([('name', '=', number_serial),
|
||||
('invoice_line_id', '!=', False)])
|
||||
invoice_line = prodlot_ids.invoice_line_id
|
||||
else:
|
||||
prodlot_ids = \
|
||||
lot.search([('name', '=', number_serial), '|',
|
||||
('supplier_invoice_line_id', '!=', False),
|
||||
('invoice_line_id', '!=', False),
|
||||
])
|
||||
if prodlot_ids.invoice_line_id:
|
||||
invoice_line = prodlot_ids.invoice_line_id
|
||||
else:
|
||||
invoice_line = prodlot_ids.supplier_invoice_line_id
|
||||
if prodlot_ids:
|
||||
for lot_id in prodlot_ids:
|
||||
clw = claim_line_wizard.\
|
||||
search([('lot_id', '=', lot_id.id)])
|
||||
if not clw:
|
||||
clw = \
|
||||
claim_line_wizard.\
|
||||
create({
|
||||
'product_id': lot_id.product_id.id,
|
||||
'lot_id': lot_id.id,
|
||||
'invoice_line_id': invoice_line.id,
|
||||
})
|
||||
for asd in clw:
|
||||
if asd not in lot_set_ids:
|
||||
lot_set_ids.append(asd)
|
||||
element_searched = True
|
||||
|
||||
for item in prodlot_ids:
|
||||
item_name = item.product_id \
|
||||
and item.product_id.name.encode('utf8') or False
|
||||
prodlot_set_ids |= {'%s+%s' % (item.id, item_name)}
|
||||
|
||||
for asd in lot_set_ids:
|
||||
if asd not in lots_lot_set_ids:
|
||||
lots_lot_set_ids.append(asd)
|
||||
|
||||
# if at least one line is not found, then return error
|
||||
if not element_searched:
|
||||
return False, line[0], False
|
||||
|
||||
# all lines were found, then return those lots
|
||||
return lot_set_ids, prodlot_set_ids, lots_lot_set_ids
|
||||
|
||||
@api.multi
|
||||
def onchange_load_products(self, input_data, lines_list_id):
|
||||
"""
|
||||
Load claim lines from partner invoices or related production lots
|
||||
into the current claim massively
|
||||
"""
|
||||
lot_lots_ids = []
|
||||
prodlot_set_ids = set()
|
||||
lines_set_ids = []
|
||||
current_status = scaned_data = ''
|
||||
|
||||
elements_searched, line_found, lot_lots_ids = \
|
||||
self._get_lots_from_scan_data(input_data)
|
||||
|
||||
if not elements_searched and not line_found:
|
||||
return {
|
||||
'value': {
|
||||
'option_ids': [],
|
||||
'current_status': current_status,
|
||||
'scaned_data': scaned_data,
|
||||
},
|
||||
'domain': {
|
||||
'lines_list_id': [('id', 'in', [])]
|
||||
}
|
||||
}
|
||||
if not elements_searched and not lot_lots_ids and line_found:
|
||||
return {
|
||||
'warning': {
|
||||
'message': (_('The product or invoice %s'
|
||||
' was not found') % line_found)},
|
||||
}
|
||||
else:
|
||||
lines_set_ids = elements_searched
|
||||
prodlot_set_ids = line_found
|
||||
|
||||
for line in prodlot_set_ids:
|
||||
name = line.split('+')
|
||||
current_status += name[1] + '\n'
|
||||
scaned_data += name[0] + '\n'
|
||||
|
||||
lines_set_ids = [asd.id for asd in lines_set_ids]
|
||||
return {
|
||||
'value': {
|
||||
'option_ids': [(6, 0, lines_set_ids)],
|
||||
'current_status': current_status,
|
||||
'scaned_data': scaned_data,
|
||||
},
|
||||
'domain': {
|
||||
'lines_list_id': [('id', 'in', lines_set_ids)]
|
||||
}
|
||||
}
|
||||
|
||||
def _get_lot_ids(self):
|
||||
lot = self.env['stock.production.lot']
|
||||
lot_ids = set()
|
||||
if self.scaned_data:
|
||||
lot_ids |= {lot_id
|
||||
for lid in self.scaned_data.strip().split('\n')
|
||||
for lot_id in lot.browse(int(lid))}
|
||||
|
||||
claim_line_wizard = self.env['claim.line.wizard']
|
||||
|
||||
lot_ids_2 = []
|
||||
for wizard_id in lot_ids:
|
||||
clws = claim_line_wizard.search([('lot_id', '=', wizard_id.id)])
|
||||
for clw in clws:
|
||||
lot_ids_2.append(clw)
|
||||
|
||||
lot_ids = set(lot_ids_2)
|
||||
|
||||
if self.lines_list_id:
|
||||
lot_ids |= {lid for lid in self.lines_list_id}
|
||||
|
||||
return lot_ids
|
||||
|
||||
@api.model
|
||||
def _get_invalid_lots_set(self, claim_line_wizard_ids, add=False):
|
||||
"""
|
||||
Return only those lots are related to claim lines
|
||||
"""
|
||||
claim_line_wizard = self.env['claim.line.wizard']
|
||||
valid = claim_line_wizard.browse(claim_line_wizard_ids)
|
||||
invalid_lots = []
|
||||
for clw in claim_line_wizard.browse(claim_line_wizard_ids):
|
||||
if clw.lot_id:
|
||||
invalid_lot = self.env['claim.line'].search([
|
||||
('invoice_line_id', '=', clw.invoice_line_id.id),
|
||||
('product_id', '=', clw.product_id.id),
|
||||
('prodlot_id', '=', clw.lot_id.id),
|
||||
])
|
||||
if not invalid_lot:
|
||||
valid = valid - clw
|
||||
if invalid_lot:
|
||||
invalid_lots.append(clw)
|
||||
|
||||
for clw in valid.mapped('invoice_line_id'):
|
||||
|
||||
# mac1, None -> claim.line
|
||||
invalid_lot = self.env['claim.line'].search([
|
||||
('invoice_line_id', '=', clw.id),
|
||||
('product_id', '=', clw.product_id.id),
|
||||
])
|
||||
|
||||
# mac1, mac2, mac3, mac4, None -> breaked down
|
||||
clws = self.env['claim.line.wizard'].\
|
||||
search([('invoice_line_id', '=', clw.id),
|
||||
])
|
||||
|
||||
if invalid_lot:
|
||||
for item in invalid_lot:
|
||||
if item.prodlot_id:
|
||||
add = clws.search([
|
||||
('lot_id', '=', item.prodlot_id.id),
|
||||
('id', 'in', clws.mapped('id')),
|
||||
('id', 'not in', [rdy.id for rdy in invalid_lots]),
|
||||
])
|
||||
else:
|
||||
add = clws.search([
|
||||
('lot_id', '=', False),
|
||||
('id', 'in', clws.mapped('id')),
|
||||
('id', 'not in', [rdy.id for rdy in invalid_lots]),
|
||||
])
|
||||
if add:
|
||||
invalid_lots.append(add[0])
|
||||
|
||||
# mac1, None -> like claim.line.wizard
|
||||
return invalid_lots and invalid_lots or []
|
||||
|
||||
@api.multi
|
||||
def add_claim_lines(self):
|
||||
info = self.get_data_of_products(self.scan_data)
|
||||
lot_ids = self._get_lot_ids()
|
||||
lot_ids = [lid.id for lid in lot_ids]
|
||||
clw_ids = set(self._get_lot_ids()) - \
|
||||
set(self._get_invalid_lots_set(lot_ids, True))
|
||||
clw_ids = list(clw_ids)
|
||||
# It creates only those claim lines that have a valid production lot,
|
||||
# i. e. not using in others claims
|
||||
info = dict(info)
|
||||
|
||||
if clw_ids:
|
||||
for clw_id in clw_ids:
|
||||
product_id = clw_id.product_id
|
||||
|
||||
claim_line_info = False
|
||||
if clw_id.lot_id.name in info:
|
||||
claim_line_info = info.get(clw_id.lot_id.name, False)
|
||||
elif clw_id.invoice_line_id.invoice_id.number in info:
|
||||
claim_line_info = \
|
||||
info.get(clw_id.invoice_line_id.invoice_id.number,
|
||||
False)
|
||||
|
||||
num = claim_line_info and claim_line_info[0] or '0'
|
||||
name = claim_line_info and claim_line_info[1] or ''
|
||||
if num.isdigit():
|
||||
num = int(num)
|
||||
else:
|
||||
num = 0
|
||||
|
||||
current_claim_type, customer_claim_type, \
|
||||
supplier_claim_type = \
|
||||
self._get_claim_type()
|
||||
self.create_claim_line(self.env.context.get('active_id'),
|
||||
self.env[
|
||||
'claim.line']._get_subject(num),
|
||||
product_id, clw_id, 1, name)
|
||||
|
||||
# Clean items in wizard model
|
||||
if len(clw_ids) == 1:
|
||||
ids_to_delete = "(%s)" % str(clw_ids[0].id)
|
||||
else:
|
||||
ids_to_delete = "%s" % str(tuple([clw.id for clw in clw_ids]))
|
||||
self._cr.execute("DELETE FROM claim_line_wizard where id IN %s"
|
||||
% ids_to_delete)
|
||||
|
||||
# normal execution
|
||||
self.action_cancel()
|
||||
|
||||
@api.multi
|
||||
def change_list(self, lines):
|
||||
return {
|
||||
'value': {
|
||||
'lines_list_id': lines,
|
||||
}
|
||||
}
|
||||
|
||||
message = fields.Text(string='Message',
|
||||
compute='_set_message'
|
||||
)
|
||||
|
||||
@api.depends('current_status', 'lines_list_id', 'scan_data')
|
||||
def _set_message(self):
|
||||
"""
|
||||
Notify for missing (not added) claim lines that are in use in others
|
||||
claims
|
||||
"""
|
||||
for wizard in self:
|
||||
msg = ''
|
||||
all_lots = wizard._get_lots_from_scan_data(wizard.scan_data)
|
||||
not_valid_lot_ids = set()
|
||||
if all_lots[0]:
|
||||
all_lots_0 = [item for item in all_lots[0]]
|
||||
not_valid_lot_ids = set(all_lots_0)
|
||||
if all_lots[2]:
|
||||
all_lots_2 = [item for item in all_lots[2]]
|
||||
not_valid_lot_ids |= set(all_lots_2)
|
||||
|
||||
if not_valid_lot_ids:
|
||||
not_valid_lot_ids = [item.id for
|
||||
item in list(not_valid_lot_ids)]
|
||||
not_valid_lot_ids = wizard.\
|
||||
_get_invalid_lots_set(not_valid_lot_ids)
|
||||
not_valid_lot_ids = list(set(not_valid_lot_ids))
|
||||
claim_with_lots_msg = ""
|
||||
|
||||
for line_id in not_valid_lot_ids:
|
||||
claim_with_lots_msg += "\t- %s\n" % \
|
||||
line_id.name
|
||||
if claim_with_lots_msg:
|
||||
msg = _("The following Serial/Lot numbers won't be added,"
|
||||
" because all of them (listed below)"
|
||||
" are currently in"
|
||||
" use:\n\n %s") % (claim_with_lots_msg) or ''
|
||||
|
||||
wizard.message = msg
|
||||
@@ -0,0 +1,104 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_enter_product" model="ir.ui.view">
|
||||
<field name="name">returned_lines_from_serial_wiew</field>
|
||||
<field name="model">returned.lines.from.serial.wizard</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<div class='row'>
|
||||
<div class="col-md-10 col-sm-10 col-lg-10">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h2><field name="partner_id" readonly="1"/></h2>
|
||||
<field class="oe_form_box_info oe_text_center"
|
||||
name='message'
|
||||
readonly="1"
|
||||
attrs="{'invisible':[('message', '=', '')]}"/>
|
||||
<group>
|
||||
<field name="scaned_data" invisible="1"/>
|
||||
</group>
|
||||
</div>
|
||||
</div>
|
||||
<table class="table table-hover">
|
||||
<tbody>
|
||||
<td>
|
||||
<field name="current_status" readonly="1" widget="barcode_text" nolabel='1'/>
|
||||
</td>
|
||||
<td>
|
||||
<field name="scan_data"
|
||||
widget='barcode_text'
|
||||
on_change="onchange_load_products(scan_data, option_ids)"
|
||||
nolabel='1'/>
|
||||
</td>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-md-10 col-sm-10 col-lg-10">
|
||||
<div class="row">
|
||||
<div class="pull-right" name="buttons">
|
||||
<button name="add_claim_lines"
|
||||
help="All the valid lines will be added to the claim"
|
||||
confirm="You are about to add new lines to the claim, Do you want to continue?."
|
||||
string="Add items to the claim" colspan="1" type="object" class="oe_highlight"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class='col-md-4 col-sm-4 col-lg-4'>
|
||||
<div class="row">
|
||||
<field name="option_ids" invisible="1"/>
|
||||
<field name="lines_list_id"
|
||||
domain="[('id', 'in', [])]"
|
||||
widget="many2many_checkboxes" on_change="change_list(lines_list_id)"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-md-16 col-sm-16 col-lg-16'>
|
||||
<div class="row">
|
||||
<!-- Invoice lines list -->
|
||||
</div>
|
||||
</div>
|
||||
<div class='col-md-4 col-sm-4 col-lg-4'>
|
||||
<div class="row">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer>
|
||||
<p class="oe_help">
|
||||
You should use this windows on this way.
|
||||
<ol>
|
||||
<li>Write the Serial/Lot Number to search the product</li>
|
||||
or
|
||||
<li>Write the Invoice Number to search the products in lines</li>
|
||||
<li>Example: A4JD6JHS</li>
|
||||
</ol>
|
||||
The format for writing the reason for the claim and
|
||||
the description is:
|
||||
<ol>
|
||||
<li>Serial/Lot Number*reason number*Description here</li>
|
||||
<li>Example: A4JD6JHS*4*The display is break</li>
|
||||
</ol>
|
||||
|
||||
The reasons for the claim can be
|
||||
<ol>
|
||||
<li>Not specified</li>
|
||||
<li>Legal retractation</li>
|
||||
<li>Order Cancellation</li>
|
||||
<li>Damaged Delivered Product</li>
|
||||
<li>Shipping error</li>
|
||||
<li>Exchange request</li>
|
||||
<li>Lost during transport</li>
|
||||
<li>Perfect Conditions</li>
|
||||
<li>Imperfection</li>
|
||||
<li>Physical Damage by Client</li>
|
||||
<li>Physical Damage by Company</li>
|
||||
<li>Other</li>
|
||||
</ol>
|
||||
</p>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,19 +1,58 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_prodlot_invoice
|
||||
#
|
||||
# * crm_rma_prodlot_invoice
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-07-17 19:54+0000\n"
|
||||
"PO-Revision-Date: 2015-07-17 19:54+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-03 17:06+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"
|
||||
"Plural-Forms: \n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: code:addons/crm_rma_prodlot_invoice/models/stock_production_lot.py:39
|
||||
#, python-format
|
||||
msgid "%s - Lot Number: %s - %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: field:stock.production.lot,invoice_line_id:0
|
||||
msgid "Customer Invoice Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: help:stock.production.lot,invoice_line_id:0
|
||||
msgid "Invoice Line Of Product to Customer Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_stock_production_lot
|
||||
msgid "Lot/Serial"
|
||||
msgstr "Lote/No. de Serie"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: code:addons/crm_rma_prodlot_invoice/models/stock_production_lot.py:41
|
||||
#, python-format
|
||||
msgid "No lot number"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr "Listado de recogida"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_stock_transfer_details
|
||||
msgid "Picking wizard"
|
||||
msgstr "Asistente de albarán"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_sale_order
|
||||
|
||||
65
crm_rma_prodlot_invoice/i18n/fr.po
Normal file
65
crm_rma_prodlot_invoice/i18n/fr.po
Normal file
@@ -0,0 +1,65 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_prodlot_invoice
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-03 17:06+0000\n"
|
||||
"Last-Translator: <>\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"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: code:addons/crm_rma_prodlot_invoice/models/stock_production_lot.py:39
|
||||
#, python-format
|
||||
msgid "%s - Lot Number: %s - %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: field:stock.production.lot,invoice_line_id:0
|
||||
msgid "Customer Invoice Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: help:stock.production.lot,invoice_line_id:0
|
||||
msgid "Invoice Line Of Product to Customer Invoice"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_stock_production_lot
|
||||
msgid "Lot/Serial"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: code:addons/crm_rma_prodlot_invoice/models/stock_production_lot.py:41
|
||||
#, python-format
|
||||
msgid "No lot number"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr "Opération de manutention"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_stock_transfer_details
|
||||
msgid "Picking wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_sale_order
|
||||
msgid "Sales Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_sale_order_line
|
||||
msgid "Sales Order Line"
|
||||
msgstr ""
|
||||
66
crm_rma_prodlot_invoice/i18n/sl.po
Normal file
66
crm_rma_prodlot_invoice/i18n/sl.po
Normal file
@@ -0,0 +1,66 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_prodlot_invoice
|
||||
#
|
||||
# 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: 2015-12-12 22:57+0000\n"
|
||||
"PO-Revision-Date: 2015-12-14 06:38+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_prodlot_invoice
|
||||
#: code:addons/crm_rma_prodlot_invoice/models/stock_production_lot.py:39
|
||||
#, python-format
|
||||
msgid "%s - Lot Number: %s - %s"
|
||||
msgstr "%s - Lot številka: %s - %s"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: field:stock.production.lot,invoice_line_id:0
|
||||
msgid "Customer Invoice Line"
|
||||
msgstr "Postavka izdanega računa"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: help:stock.production.lot,invoice_line_id:0
|
||||
msgid "Invoice Line Of Product to Customer Invoice"
|
||||
msgstr "Postavka proizvoda v postavko izdanega računa"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_stock_production_lot
|
||||
msgid "Lot/Serial"
|
||||
msgstr "Lot/Serijska"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: code:addons/crm_rma_prodlot_invoice/models/stock_production_lot.py:41
|
||||
#, python-format
|
||||
msgid "No lot number"
|
||||
msgstr "Ni številke računa"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr "Zbirni seznam"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_stock_transfer_details
|
||||
msgid "Picking wizard"
|
||||
msgstr "Zbirni čarovnik"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_sale_order
|
||||
msgid "Sales Order"
|
||||
msgstr "Prodajni nalog"
|
||||
|
||||
#. module: crm_rma_prodlot_invoice
|
||||
#: model:ir.model,name:crm_rma_prodlot_invoice.model_sale_order_line
|
||||
msgid "Sales Order Line"
|
||||
msgstr "Postavka prodajnega naloga"
|
||||
40
crm_rma_prodlot_supplier/i18n/es.po
Executable file → Normal file
40
crm_rma_prodlot_supplier/i18n/es.po
Executable file → Normal file
@@ -1,25 +1,32 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_prodlot_supplier
|
||||
#
|
||||
# * crm_rma_prodlot_supplier
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 8.0\n"
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-07-17 19:57+0000\n"
|
||||
"PO-Revision-Date: 2015-07-17 19:57+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-03 17:06+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"
|
||||
"Plural-Forms: \n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: model:ir.model,name:crm_rma_prodlot_supplier.model_stock_production_lot
|
||||
msgid "Lot/Serial"
|
||||
msgstr "Lote/No. de Serie"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: model:ir.model,name:crm_rma_prodlot_supplier.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr "Listado de recogida"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: model:ir.model,name:crm_rma_prodlot_supplier.model_stock_transfer_details
|
||||
msgid "Picking wizard"
|
||||
@@ -30,7 +37,24 @@ msgstr "Asistente de albarán"
|
||||
msgid "Supplier"
|
||||
msgstr "Proveedor"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: field:stock.production.lot,supplier_invoice_line_id:0
|
||||
msgid "Supplier Invoice Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: help:stock.production.lot,supplier_invoice_line_id:0
|
||||
msgid "Supplier invoice with the purchase of goods sold to customer"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: help:stock.production.lot,supplier_id:0
|
||||
msgid "Supplier of good in claim"
|
||||
msgstr "Proveedor del producto en la reclamación"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: view:stock.transfer_details:crm_rma_prodlot_supplier.view_lot_form_supplier_context
|
||||
msgid ""
|
||||
"{'product_id': product_id,\n"
|
||||
" 'active_id': active_id}"
|
||||
msgstr ""
|
||||
|
||||
60
crm_rma_prodlot_supplier/i18n/fr.po
Normal file
60
crm_rma_prodlot_supplier/i18n/fr.po
Normal file
@@ -0,0 +1,60 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_prodlot_supplier
|
||||
#
|
||||
# Translators:
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: rma (8.0)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-11-24 16:07+0000\n"
|
||||
"PO-Revision-Date: 2015-11-03 17:06+0000\n"
|
||||
"Last-Translator: <>\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"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: model:ir.model,name:crm_rma_prodlot_supplier.model_stock_production_lot
|
||||
msgid "Lot/Serial"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: model:ir.model,name:crm_rma_prodlot_supplier.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr "Opération de manutention"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: model:ir.model,name:crm_rma_prodlot_supplier.model_stock_transfer_details
|
||||
msgid "Picking wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: field:stock.production.lot,supplier_id:0
|
||||
msgid "Supplier"
|
||||
msgstr "Fournisseur"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: field:stock.production.lot,supplier_invoice_line_id:0
|
||||
msgid "Supplier Invoice Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: help:stock.production.lot,supplier_invoice_line_id:0
|
||||
msgid "Supplier invoice with the purchase of goods sold to customer"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: help:stock.production.lot,supplier_id:0
|
||||
msgid "Supplier of good in claim"
|
||||
msgstr ""
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: view:stock.transfer_details:crm_rma_prodlot_supplier.view_lot_form_supplier_context
|
||||
msgid ""
|
||||
"{'product_id': product_id,\n"
|
||||
" 'active_id': active_id}"
|
||||
msgstr ""
|
||||
61
crm_rma_prodlot_supplier/i18n/sl.po
Normal file
61
crm_rma_prodlot_supplier/i18n/sl.po
Normal file
@@ -0,0 +1,61 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * crm_rma_prodlot_supplier
|
||||
#
|
||||
# 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: 2015-12-12 22:57+0000\n"
|
||||
"PO-Revision-Date: 2015-12-14 06:37+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_prodlot_supplier
|
||||
#: model:ir.model,name:crm_rma_prodlot_supplier.model_stock_production_lot
|
||||
msgid "Lot/Serial"
|
||||
msgstr "Lot/Serijska"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: model:ir.model,name:crm_rma_prodlot_supplier.model_stock_picking
|
||||
msgid "Picking List"
|
||||
msgstr "Zbirni seznam"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: model:ir.model,name:crm_rma_prodlot_supplier.model_stock_transfer_details
|
||||
msgid "Picking wizard"
|
||||
msgstr "Zbirni čarovnik"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: field:stock.production.lot,supplier_id:0
|
||||
msgid "Supplier"
|
||||
msgstr "Dobavitelj"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: field:stock.production.lot,supplier_invoice_line_id:0
|
||||
msgid "Supplier Invoice Line"
|
||||
msgstr "Postavka prejetega računa"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: help:stock.production.lot,supplier_invoice_line_id:0
|
||||
msgid "Supplier invoice with the purchase of goods sold to customer"
|
||||
msgstr "Prejeti račun z nabavljenim blagom za nadaljnjo prodajo kupcu"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: help:stock.production.lot,supplier_id:0
|
||||
msgid "Supplier of good in claim"
|
||||
msgstr "Dobavitelj blaga v zahtevku"
|
||||
|
||||
#. module: crm_rma_prodlot_supplier
|
||||
#: view:stock.transfer_details:crm_rma_prodlot_supplier.view_lot_form_supplier_context
|
||||
msgid ""
|
||||
"{'product_id': product_id,\n"
|
||||
" 'active_id': active_id}"
|
||||
msgstr "{'product_id': product_id,\n 'active_id': active_id}"
|
||||
96
crm_rma_stock_location/README.rst
Normal file
96
crm_rma_stock_location/README.rst
Normal file
@@ -0,0 +1,96 @@
|
||||
.. 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/8.0/145
|
||||
|
||||
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
|
||||
`here <https://github.com/OCA/rma/issues/new?body=module:%20crm_rma_stock_location%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
* Guewen Baconnier <guewen.baconnier@camptocamp.com>
|
||||
* Yanina Aular <yanina.aular@vauxoo.com>
|
||||
* Osval Reyes <osval@vauxoo.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 http://odoo-community.org.
|
||||
@@ -1,8 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Author: Guewen Baconnier
|
||||
# Copyright 2015 Vauxoo
|
||||
# Copyright 2014 Camptocamp SA
|
||||
# Author: Guewen Baconnier,
|
||||
# Osval Reyes
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -19,5 +21,6 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from . import stock_warehouse
|
||||
from . import product
|
||||
from . import models
|
||||
from . import wizards
|
||||
from .init_hooks import post_init_hook
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Author: Guewen Baconnier
|
||||
# Copyright 2014 Camptocamp SA
|
||||
# Copyright 2015 Vauxoo
|
||||
# Copyright 2013-2014 Camptocamp SA
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Guewen Baconnier,
|
||||
# Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
|
||||
# Joel Grand-Guillaume,
|
||||
# Yanina Aular, Osval Reyes
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
@@ -19,31 +24,35 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{'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': '8.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,
|
||||
}
|
||||
|
||||
28
crm_rma_stock_location/demo/stock_inventory.xml
Normal file
28
crm_rma_stock_location/demo/stock_inventory.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data 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>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
37
crm_rma_stock_location/demo/stock_location.xml
Normal file
37
crm_rma_stock_location/demo/stock_location.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data 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>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
243
crm_rma_stock_location/i18n/en.po
Normal file
243
crm_rma_stock_location/i18n/en.po
Normal 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: 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,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 "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
|
||||
#, 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
|
||||
#, 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"
|
||||
243
crm_rma_stock_location/i18n/es.po
Normal file
243
crm_rma_stock_location/i18n/es.po
Normal 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: 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,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 "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
|
||||
#, 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
|
||||
#, 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"
|
||||
16
crm_rma_stock_location/i18n/es_MX.po
Normal file
16
crm_rma_stock_location/i18n/es_MX.po
Normal 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"
|
||||
16
crm_rma_stock_location/i18n/es_PA.po
Normal file
16
crm_rma_stock_location/i18n/es_PA.po
Normal 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"
|
||||
16
crm_rma_stock_location/i18n/es_VE.po
Normal file
16
crm_rma_stock_location/i18n/es_VE.po
Normal 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"
|
||||
@@ -1,54 +1,243 @@
|
||||
# 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: 2015-12-03 01:39+0000\n"
|
||||
"PO-Revision-Date: 2015-12-02 21:49+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,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 "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
|
||||
#: 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
|
||||
#: code:addons/crm_rma_stock_location/models/product_template.py:42
|
||||
#, 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
|
||||
#: 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
|
||||
#: code:addons/crm_rma_stock_location/models/product_template.py:36
|
||||
#, 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 ""
|
||||
|
||||
243
crm_rma_stock_location/i18n/pt_BR.po
Normal file
243
crm_rma_stock_location/i18n/pt_BR.po
Normal 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: 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 ""
|
||||
|
||||
#. 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 ""
|
||||
243
crm_rma_stock_location/i18n/ro.po
Normal file
243
crm_rma_stock_location/i18n/ro.po
Normal 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 ""
|
||||
244
crm_rma_stock_location/i18n/sl.po
Normal file
244
crm_rma_stock_location/i18n/sl.po
Normal file
@@ -0,0 +1,244 @@
|
||||
# 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: 2015-12-12 22:57+0000\n"
|
||||
"PO-Revision-Date: 2015-12-14 06:36+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,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 "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
|
||||
#, 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
|
||||
#, 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"
|
||||
31
crm_rma_stock_location/init_hooks.py
Normal file
31
crm_rma_stock_location/init_hooks.py
Normal file
@@ -0,0 +1,31 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Copyright 2014 Camptocamp SA
|
||||
# Author: Guewen Baconnier,
|
||||
# Osval Reyes
|
||||
#
|
||||
# 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 import SUPERUSER_ID
|
||||
|
||||
|
||||
def post_init_hook(cr, registry):
|
||||
stock_wh = registry['stock.warehouse']
|
||||
for wh_id in stock_wh.browse(cr, SUPERUSER_ID,
|
||||
stock_wh.search(cr, SUPERUSER_ID, [])):
|
||||
vals = stock_wh.create_locations_rma(cr, SUPERUSER_ID, wh_id)
|
||||
stock_wh.write(cr, SUPERUSER_ID, wh_id.id, vals)
|
||||
29
crm_rma_stock_location/models/__init__.py
Normal file
29
crm_rma_stock_location/models/__init__.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Copyright 2013-2014 Camptocamp SA
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Guewen Baconnier,
|
||||
# Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
|
||||
# Joel Grand-Guillaume,
|
||||
# Osval Reyes
|
||||
#
|
||||
# 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 product_product
|
||||
from . import product_template
|
||||
from . import stock_warehouse
|
||||
132
crm_rma_stock_location/models/product_product.py
Normal file
132
crm_rma_stock_location/models/product_product.py
Normal file
@@ -0,0 +1,132 @@
|
||||
# -*- 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 import _, api, fields, models
|
||||
import openerp.addons.decimal_precision as dp
|
||||
from openerp.tools.float_utils import float_round
|
||||
from openerp.tools.safe_eval import safe_eval as eval
|
||||
|
||||
|
||||
class ProductProduct(models.Model):
|
||||
|
||||
_inherit = 'product.product'
|
||||
|
||||
rma_qty_available = fields.Float(
|
||||
compute='_rma_product_available',
|
||||
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='_rma_product_available',
|
||||
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.multi
|
||||
def _rma_product_available(self):
|
||||
"""
|
||||
Finds the incoming and outgoing quantity of product for the RMA
|
||||
locations.
|
||||
"""
|
||||
context = self.env.context
|
||||
warehouse_id = context.get('warehouse_id')
|
||||
ctx = context.copy()
|
||||
location_ids = set()
|
||||
for product in self:
|
||||
if warehouse_id and warehouse_id.lot_rma_id:
|
||||
location_ids.add(warehouse_id.lot_rma_id.id)
|
||||
else:
|
||||
warehouse_ids = self.env['stock.warehouse'].search([])
|
||||
if not warehouse_ids:
|
||||
return
|
||||
for warehouse_id in warehouse_ids:
|
||||
if warehouse_id.lot_rma_id:
|
||||
location_ids.add(warehouse_id.lot_rma_id.id)
|
||||
|
||||
if not location_ids:
|
||||
return
|
||||
ctx['location'] = list(location_ids)
|
||||
|
||||
domain_products = [('product_id', 'in', [product.id])]
|
||||
domain_quant, domain_move_in, domain_move_out = \
|
||||
product.with_context(ctx)._get_domain_locations()
|
||||
domain_move_in += product.with_context(ctx)._get_domain_dates() + \
|
||||
[('state', 'not in', ('done', 'cancel', 'draft'))] + \
|
||||
domain_products
|
||||
domain_move_out += product.with_context(ctx).\
|
||||
_get_domain_dates() + \
|
||||
[('state', 'not in', ('done', 'cancel', 'draft'))] + \
|
||||
domain_products
|
||||
domain_quant += domain_products
|
||||
moves_in = []
|
||||
moves_out = []
|
||||
lot_id = context.get('lot_id')
|
||||
if lot_id:
|
||||
domain_quant.append(('lot_id', '=', lot_id))
|
||||
else:
|
||||
moves_in = self.env['stock.move'].\
|
||||
with_context(ctx).read_group(domain_move_in,
|
||||
['product_id', 'product_qty'],
|
||||
['product_id'])
|
||||
moves_out = self.env['stock.move'].\
|
||||
with_context(ctx).read_group(domain_move_out,
|
||||
['product_id', 'product_qty'],
|
||||
['product_id'])
|
||||
quants = self.env['stock.quant'].with_context(ctx).read_group(
|
||||
domain_quant, ['product_id', 'qty'], ['product_id'])
|
||||
quants = dict([(item.get('product_id')[0],
|
||||
item.get('qty')) for item in quants])
|
||||
moves_in = dict([(item.get('product_id')[0],
|
||||
item.get('product_qty')) for item in moves_in])
|
||||
moves_out = dict([(item.get('product_id')[0],
|
||||
item.get('product_qty')) for item in moves_out])
|
||||
product.rma_qty_available = \
|
||||
float_round(quants.get(product.id, 0.0),
|
||||
precision_rounding=product.uom_id.rounding)
|
||||
product.rma_virtual_available = \
|
||||
float_round(quants.get(product.id, 0.0) +
|
||||
moves_in.get(product.id, 0.0) -
|
||||
moves_out.get(product.id, 0.0),
|
||||
precision_rounding=product.uom_id.rounding)
|
||||
50
crm_rma_stock_location/models/product_template.py
Normal file
50
crm_rma_stock_location/models/product_template.py
Normal file
@@ -0,0 +1,50 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Copyright 2014 Camptocamp SA
|
||||
# Author: Guewen Baconnier,
|
||||
# Osval Reyes
|
||||
#
|
||||
# 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 import _, api, fields, models
|
||||
import openerp.addons.decimal_precision as dp
|
||||
|
||||
|
||||
class ProductTemplate(models.Model):
|
||||
|
||||
_inherit = 'product.template'
|
||||
|
||||
rma_qty_available = fields.Float(compute='_rma_template_available',
|
||||
digits_compute=dp.
|
||||
get_precision('Product Unit '
|
||||
'of Measure'),
|
||||
string=_('RMA Quantity On Hand'))
|
||||
|
||||
rma_virtual_available = fields.Float(compute='_rma_template_available',
|
||||
digits_compute=dp.
|
||||
get_precision('Product Unit'
|
||||
' of Measure'),
|
||||
string=_('RMA Forecasted Quantity'))
|
||||
|
||||
@api.multi
|
||||
def _rma_template_available(self):
|
||||
for product in self:
|
||||
product.rma_qty_available = sum(
|
||||
product.mapped('product_variant_ids.rma_virtual_available'))
|
||||
product.rma_virtual_available = sum(
|
||||
product.mapped('product_variant_ids.rma_virtual_available'))
|
||||
73
crm_rma_stock_location/models/stock_warehouse.py
Normal file
73
crm_rma_stock_location/models/stock_warehouse.py
Normal file
@@ -0,0 +1,73 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2013 Camptocamp
|
||||
# Copyright 2009-2013 Akretion,
|
||||
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
|
||||
# Joel Grand-Guillaume
|
||||
#
|
||||
# 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 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.model
|
||||
def create_locations_rma(self, wh_id):
|
||||
vals = {}
|
||||
|
||||
location_obj = self.env['stock.location']
|
||||
context_with_inactive = self.env.context.copy()
|
||||
context_with_inactive['active_test'] = False
|
||||
wh_loc_id = wh_id.view_location_id.id
|
||||
|
||||
vals_new = super(StockWarehouse, self).create_locations_rma(wh_id)
|
||||
|
||||
loc_vals = {
|
||||
'location_id': wh_loc_id,
|
||||
'active': True,
|
||||
}
|
||||
|
||||
if vals.get('company_id'):
|
||||
loc_vals['company_id'] = vals.get('company_id')
|
||||
|
||||
if not wh_id.lot_refurbish_id:
|
||||
loc_vals.update({
|
||||
'name': _('Refurbish'),
|
||||
'usage': 'production'
|
||||
})
|
||||
location_id = location_obj.with_context(context_with_inactive).\
|
||||
create(loc_vals)
|
||||
vals['lot_refurbish_id'] = location_id.id
|
||||
|
||||
if not wh_id.loss_loc_id:
|
||||
loc_vals.update({
|
||||
'name': _('Loss'),
|
||||
'usage': 'inventory'
|
||||
})
|
||||
location_id = location_obj.with_context(context_with_inactive).\
|
||||
create(loc_vals)
|
||||
vals['loss_loc_id'] = location_id.id
|
||||
|
||||
vals.update(vals_new)
|
||||
return vals
|
||||
@@ -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'),
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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
|
||||
23
crm_rma_stock_location/tests/__init__.py
Normal file
23
crm_rma_stock_location/tests/__init__.py
Normal file
@@ -0,0 +1,23 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Yanina Aular, Osval Reyes
|
||||
#
|
||||
# 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 test_crm_rma_stock_location
|
||||
from . import test_make_picking_from_picking
|
||||
78
crm_rma_stock_location/tests/test_crm_rma_stock_location.py
Normal file
78
crm_rma_stock_location/tests/test_crm_rma_stock_location.py
Normal file
@@ -0,0 +1,78 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright 2015 Vauxoo
|
||||
# Author: Osval Reyes
|
||||
#
|
||||
# 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.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])
|
||||
159
crm_rma_stock_location/tests/test_make_picking_from_picking.py
Normal file
159
crm_rma_stock_location/tests/test_make_picking_from_picking.py
Normal file
@@ -0,0 +1,159 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Author: Yanina Aular
|
||||
# Copyright 2015 Vauxoo
|
||||
#
|
||||
# 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.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': self.claim_id.warehouse_id.rma_in_type_id.id,
|
||||
}
|
||||
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 = eval(
|
||||
'self.claim_id.warehouse_id.'
|
||||
'rma_%s_type_id.default_location_dest_id' % picking_type_str)
|
||||
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 = eval(
|
||||
'self.claim_id.warehouse_id.loss_loc_id')
|
||||
self.assertEquals(
|
||||
wizard_id.claim_line_dest_location_id, default_location_dest_id)
|
||||
19
crm_rma_stock_location/views/crm_claim.xml
Normal file
19
crm_rma_stock_location/views/crm_claim.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<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">
|
||||
<xpath expr="//button[@string='New Delivery']" 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}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
46
crm_rma_stock_location/views/product_product.xml
Normal file
46
crm_rma_stock_location/views/product_product.xml
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<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','>',0), ('rma_virtual_available','>',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"/>
|
||||
</data>
|
||||
</openerp>
|
||||
17
crm_rma_stock_location/views/product_template.xml
Normal file
17
crm_rma_stock_location/views/product_template.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="view_template_property_form" model="ir.ui.view">
|
||||
<field name="name">product.normal.procurement.locations.inherit</field>
|
||||
<field name="model">product.template</field>
|
||||
<field name="inherit_id" ref="stock.view_template_property_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='virtual_available']" position="after">
|
||||
<field name="rma_qty_available"/>
|
||||
<field name="rma_virtual_available"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -2,25 +2,23 @@
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- 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.in</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_in_form" />
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<!-- Those wizard aren't working yet -->
|
||||
<xpath expr="/form/header/button[@string='Return Products']" position="after">
|
||||
<button name="%(action_stock_picking_from_claim_picking)d"
|
||||
<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','<>','done'),
|
||||
('claim_id', '=', False)]}"/>
|
||||
<button name="%(action_loss_picking_from_claim_picking)d"
|
||||
<button name="%(action_loss_picking_from_claim_picking)d"
|
||||
string="Product to Loss" type="action"
|
||||
attrs="{'invisible':['|',
|
||||
('state','<>','done'),
|
||||
('claim_id', '=', False)]}"/>
|
||||
<button name="%(action_used_picking_from_claim_picking)d"
|
||||
<button name="%(action_used_picking_from_claim_picking)d"
|
||||
string="Product to refurbish stock" type="action"
|
||||
attrs="{'invisible':['|',
|
||||
('state','<>','done'),
|
||||
@@ -28,20 +26,5 @@
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<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_stock_location.view_warehouse_form" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/group/group/field[@name='lot_rma_id']" position="after">
|
||||
<field name="lot_carrier_loss_id"/>
|
||||
<field name="lot_breakage_loss_id"/>
|
||||
<field name="lot_refurbish_id"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
16
crm_rma_stock_location/views/stock_warehouse.xml
Normal file
16
crm_rma_stock_location/views/stock_warehouse.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<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>
|
||||
</data>
|
||||
</openerp>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user