Move crm_claim_rma from __unported__

This commit is contained in:
Aristobulo Meneses
2015-07-31 10:07:29 +02:00
parent 1be17a3630
commit a787c6a7a3
22 changed files with 244 additions and 255 deletions

View File

@@ -1,28 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright 2015 Eezee-It
# 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 . import wizard
from . import crm_claim_rma
from . import account_invoice
from . import stock

View File

@@ -1,99 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright 2015 Eezee-It
# Copyright 2013 Camptocamp
# Copyright 2009-2013 Akretion,
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
# Benoît Guillot, 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 Claim (Product Return Management)',
'version': '1.1',
'category': 'Generic Modules/CRM & SRM',
'description': """
Management of Return Merchandise Authorization (RMA)
====================================================
This module aims to improve the Claims by adding a way to manage the
product returns. It allows you to create and manage picking from a
claim. It also introduces a new object: the claim lines to better
handle that problematic. One Claim can have several lines that
concern the return of differents products. It's for every of them
that you'll be able to check the warranty (still running or not).
It mainly contains the following features:
* product returns (one by one, mass return by invoice)
* warranty control & return address (based on invoice date and product form)
* product picking in / out
* product refund
* access to related customer data (orders, invoices, refunds, picking
in/out) from a claim
* use the OpenERP chatter within team like in opportunity (reply to refer to
the team, not a person)
Using this module makes the logistic flow of return this way:
* Returning product goes into Stock or Supplier location with a incoming
shipment (depending on the settings of the supplier info in the
product form)
* You can make a delivery from the RMA to send a new product to the Customer
.. warning:: Currently, the warranty duration used is the one configured on the
products today, not the one which was configured when the product
has been sold.
Contributors:
-------------
* Emmanuel Samyn <esamyn@gmail.com>
* Sébastien Beau <sebastien.beau@akretion.com.br>
* Benoît Guillot <benoit.guillot@akretion.com.br>
* 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>
""",
'author': "Akretion, Camptocamp, Eezee-it, "
"Odoo Community Association (OCA)",
'website': 'http://www.akretion.com, http://www.camptocamp.com, '
'http://www.eezee-it.com',
'license': 'AGPL-3',
'depends': ['sale',
'stock',
'crm_claim',
'product_warranty',
],
'data': ['wizard/claim_make_picking_view.xml',
'crm_claim_rma_view.xml',
'security/ir.model.access.csv',
'account_invoice_view.xml',
'res_partner_view.xml',
'crm_claim_rma_data.xml',
],
'test': ['test/test_invoice_refund.yml'],
'images': ['images/product_return.png',
'images/claim.png',
'images/return_line.png',
'images/exchange.png',
],
'installable': True,
'auto_install': False,
}

View File

@@ -1,112 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright 2015 Eezee-It
# Copyright 2013 Camptocamp
# Copyright 2009-2013 Akretion,
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
# Benoît Guillot, 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.models import Model, api, _
from openerp.fields import Many2one
class AccountInvoice(Model):
_inherit = "account.invoice"
claim_id = Many2one('crm.claim', string='Claim')
@api.model
def _refund_cleanup_lines(self, lines):
""" Override when from claim to update the quantity and link to the
claim line."""
context = self.env.context
if context is None:
context = {}
new_lines = []
inv_line_obj = self.env['account.invoice.line']
claim_line_obj = self.env['claim.line']
# check if is an invoice_line and we are from a claim
if not (context.get('claim_line_ids') and lines and
lines[0]._name == 'account.invoice.line'):
return super(AccountInvoice, self)._refund_cleanup_lines(lines)
for __, claim_line_id, __ in context.get('claim_line_ids'):
line = claim_line_obj.browse(claim_line_id)
if not line.refund_line_id:
# For each lines replace quantity and add claim_line_id
inv_line = inv_line_obj.browse(line.invoice_line_id.id)
clean_line = {}
for field_name, field in inv_line._all_columns.iteritems():
column_type = field.column._type
if column_type == 'many2one':
clean_line[field_name] = inv_line[field_name].id
elif column_type not in ('many2many', 'one2many'):
clean_line[field_name] = inv_line[field_name]
elif field_name == 'invoice_line_tax_id':
tax_list = []
for tax in inv_line[field_name]:
tax_list.append(tax.id)
clean_line[field_name] = [(6, 0, tax_list)]
clean_line['quantity'] = line['product_returned_quantity']
clean_line['claim_line_id'] = [claim_line_id]
new_lines.append(clean_line)
if not new_lines:
# TODO use custom states to show button of this wizard or
# not instead of raise an error
raise Warning(
_('A refund has already been created for this claim !'))
return [(0, 0, l) for l in new_lines]
@api.model
def _prepare_refund(self, invoice, date=None, period_id=None,
description=None, journal_id=None):
context = self.env.context
if context is None:
context = {}
result = super(AccountInvoice, self)._prepare_refund(
invoice, date=date, period_id=period_id, description=description,
journal_id=journal_id)
if context.get('claim_id'):
result['claim_id'] = context['claim_id']
return result
class AccountInvoiceLine(Model):
_inherit = "account.invoice.line"
@api.model
def create(self, vals):
claim_line_id = False
if vals.get('claim_line_id'):
claim_line_id = vals['claim_line_id']
del vals['claim_line_id']
line_id = super(AccountInvoiceLine, self).create(vals)
if claim_line_id:
claim_line = self.env['claim.line'].browse(claim_line_id)
claim_line.write({'refund_line_id': line_id.id})
return line_id

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- INHERITED VIEW FOR THE OBJECT : account_invoice -->
<record id="invoice_form" model="ir.ui.view">
<field name="name">crm_claim_rma.invoice_form</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form" />
<field eval="16" name="priority"/>
<field name="arch" type="xml">
<data>
<xpath expr="/form/sheet/notebook/page[@string='Other Info']/group/group/field[@name='origin']" position="after">
<field name="claim_id" attrs="{'invisible':[('type','!=','out_refund')]}"/>
</xpath>
</data>
</field>
</record>
</data>
</openerp>

View File

@@ -1,601 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright 2015 Eezee-It
# Copyright 2013 Camptocamp
# Copyright 2009-2013 Akretion,
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
# Benoît Guillot, 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/>.
#
##############################################################################
import calendar
import math
from openerp.osv import fields, orm, osv
from openerp.models import Model, api, _, NewId
from openerp.fields import (Char, Date, Float, One2many, Many2one, Selection,
Text)
from datetime import datetime
from dateutil.relativedelta import relativedelta
from openerp.tools import (DEFAULT_SERVER_DATE_FORMAT,
DEFAULT_SERVER_DATETIME_FORMAT)
from openerp import SUPERUSER_ID
class InvoiceNoDate(Exception):
""" Raised when a warranty cannot be computed for a claim line
because the invoice has no date. """
class ProductNoSupplier(Exception):
""" Raised when a warranty cannot be computed for a claim line
because the product has no supplier. """
class SubstateSubstate(Model):
""" To precise a state (state=refused; substates= reason 1, 2,...) """
_name = "substate.substate"
_description = "substate that precise a given state"
name = Char(string='Sub state', required=True)
substate_descr = Text(string='Description',
help="To give more information about the sub state")
class ClaimLine(Model):
"""
Class to handle a product return line (corresponding to one invoice line)
"""
_name = "claim.line"
_description = "List of product to return"
# Comment written in a claim.line to know about the warranty status
WARRANT_COMMENT = {
'valid': "Valid",
'expired': "Expired",
'not_define': "Not Defined"}
# Method to calculate total amount of the line : qty*UP
@api.one
def _line_total_amount(self):
res = {}
self.return_value = (self.unit_sale_price *
self.product_returned_quantity)
@api.model
def copy_data(self, default=None):
if default is None:
default = {}
std_default = {
'move_in_id': False,
'move_out_id': False,
'refund_line_id': False,
}
std_default.update(default)
return super(ClaimLine, self).copy_data(default=std_default)
def get_warranty_return_partner(self):
seller = self.env['product.supplierinfo']
result = seller.get_warranty_return_partner()
return result
name = Char(string='Description', required=True, default=None)
claim_origine = 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')
],
string='Claim Subject', required=True,
help="To describe the line product problem")
claim_descr = Text(
string='Claim description',
help="More precise description of the problem")
product_id = Many2one(
'product.product', string='Product', help="Returned product")
product_returned_quantity = Float(
string='Quantity', digits=(12, 2), help="Quantity of product returned")
unit_sale_price = Float(
string='Unit sale price', digits=(12, 2),
help="Unit sale price of the product. Auto filled if retrun done "
"by invoice selection. Be careful and check the automatic "
"value as don't take into account previous refunds, invoice "
"discount, can be for 0 if product for free,...")
return_value = Float(
string='Total return', compute='_line_total_amount',
help="Quantity returned * Unit sold price",)
prodlot_id = Many2one(
'stock.production.lot',
string='Serial/Lot n°', help="The serial/lot of the returned product")
applicable_guarantee = Selection(
[('us', 'Company'),
('supplier', 'Supplier'),
('brand', 'Brand manufacturer')],
string='Warranty type')
guarantee_limit = Date(
string='Warranty limit',
readonly=True,
help="The warranty limit is computed as: invoice date + warranty "
"defined on selected product.")
warning = Char(
string='Warranty',
readonly=True,
help="If warranty has expired")
warranty_type = Selection(
get_warranty_return_partner,
string='Warranty type',
readonly=True,
help="Who is in charge of the warranty return treatment towards "
"the end customer. Company will use the current company "
"delivery or default address and so on for supplier and brand"
" manufacturer. Does not necessarily mean that the warranty "
"to be applied is the one of the return partner (ie: can be "
"returned to the company and be under the brand warranty")
warranty_return_partner = Many2one(
'res.partner',
string='Warranty Address',
help="Where the customer has to send back the product(s)")
claim_id = Many2one(
'crm.claim',
string='Related claim',
help="To link to the case.claim object")
state = Selection(
[('draft', 'Draft'),
('refused', 'Refused'),
('confirmed', 'Confirmed, waiting for product'),
('in_to_control', 'Received, to control'),
('in_to_treate', 'Controlled, to treate'),
('treated', 'Treated')],
string='State',
default="draft")
substate_id = Many2one(
'substate.substate',
string='Sub state',
help="Select a sub state to precise the standard state. Example 1:"
" state = refused; substate could be warranty over, not in "
"warranty, no problem,... . Example 2: state = to treate; "
"substate could be to refund, to exchange, to repair,...")
last_state_change = Date(
string='Last change',
help="To set the last state / substate change")
invoice_line_id = Many2one(
'account.invoice.line',
string='Invoice Line',
help='The invoice line related to the returned product')
refund_line_id = Many2one(
'account.invoice.line',
string='Refund Line',
help='The refund line related to the returned product')
move_in_id = Many2one(
'stock.move',
string='Move Line from picking in',
help='The move line related to the returned product')
move_out_id = Many2one(
'stock.move',
string='Move Line from picking out',
help='The move line related to the returned product')
location_dest_id = Many2one(
'stock.location',
string='Return Stock Location',
help='The return stock location of the returned product')
@staticmethod
def warranty_limit(start, warranty_duration):
""" Take a duration in float, return the duration in relativedelta
``relative_delta(months=...)`` only accepts integers.
We have to extract the decimal part, and then, extend the delta with
days.
"""
decimal_part, months = math.modf(warranty_duration)
months = int(months)
# If we have a decimal part, we add the number them as days to
# the limit. We need to get the month to know the number of
# days.
delta = relativedelta(months=months)
monthday = start + delta
__, days_month = calendar.monthrange(monthday.year, monthday.month)
# ignore the rest of the days (hours) since we expect a date
days = int(days_month * decimal_part)
return start + relativedelta(months=months, days=days)
def _warranty_limit_values(self, invoice, claim_type, product, claim_date):
if not (invoice and claim_type and product and claim_date):
return {'guarantee_limit': False, 'warning': False}
date_invoice = invoice.date_invoice
if not date_invoice:
raise InvoiceNoDate
warning = _(self.WARRANT_COMMENT['not_define'])
date_invoice = datetime.strptime(date_invoice,
DEFAULT_SERVER_DATE_FORMAT)
if claim_type == 'supplier':
suppliers = product.seller_ids
if not suppliers:
raise ProductNoSupplier
supplier = suppliers[0]
warranty_duration = supplier.warranty_duration
else:
warranty_duration = product.warranty
limit = self.warranty_limit(date_invoice, warranty_duration)
if warranty_duration > 0:
claim_date = datetime.strptime(claim_date,
DEFAULT_SERVER_DATETIME_FORMAT)
if limit < claim_date:
warning = _(self.WARRANT_COMMENT['expired'])
else:
warning = _(self.WARRANT_COMMENT['valid'])
return {'guarantee_limit': limit.strftime(DEFAULT_SERVER_DATE_FORMAT),
'warning': warning}
def set_warranty_limit(self):
claim = self.claim_id
invoice = claim.invoice_id
claim_type = claim.claim_type
claim_date = claim.date
product = self.product_id
try:
values = self._warranty_limit_values(invoice, claim_type, product,
claim_date)
except InvoiceNoDate:
raise osv.except_osv(
_('Error'), _('Cannot find any date for invoice. '
'Must be a validated invoice.'))
except ProductNoSupplier:
raise osv.except_osv(
_('Error'), _('The product has no supplier configured.'))
self.write(values)
return True
@api.multi
def auto_set_warranty(self):
""" Set warranty automatically
if the user has not himself pressed on 'Calculate warranty state'
button, it sets warranty for him"""
for line in self:
if not line.warning:
line.set_warranty()
return True
def get_destination_location(self, product, warehouse):
"""Compute and return the destination location ID to take
for a return. Always take 'Supplier' one when return type different
from company."""
location_dest_id = warehouse.lot_stock_id.id
if product:
sellers = product.seller_ids
if sellers:
seller = sellers[0]
return_type = seller.warranty_return_partner
if return_type != 'company':
location_dest_id = seller.name.property_stock_supplier.id
return location_dest_id
@api.onchange('product_id', 'invoice_line_id')
def _onchange_product_invoice_line(self):
product = self.product_id
invoice_line = self.invoice_line_id
context = self.env.context
claim = context.get('claim_id')
company_id = context.get('company_id')
warehouse_id = context.get('warehouse_id')
claim_type = context.get('claim_type')
claim_date = context.get('claim_date')
# claim_exists = not isinstance(claim.id, NewId)
if not claim and not (company_id and warehouse_id and
claim_type and claim_date):
# if we have a claim_id, we get the info from there,
# otherwise we get it from the args (on creation typically)
return False
if not (product and invoice_line):
return False
invoice = invoice_line.invoice_id
claim_line_obj = self.env['claim.line']
if claim:
claim = self.env['crm.claim'].browse(claim)
company = claim.company_id
warehouse = claim.warehouse_id
claim_type = claim.claim_type
claim_date = claim.date
else:
warehouse_obj = self.env['stock.warehouse']
company_obj = self.env['res.company']
company = company_obj.browse(company_id)
warehouse = warehouse_obj.browse(warehouse_id)
values = {}
try:
warranty = claim_line_obj._warranty_limit_values(
invoice, claim_type, product, claim_date)
except (InvoiceNoDate, ProductNoSupplier):
# we don't mind at this point if the warranty can't be
# computed and we don't want to block the user
values.update({'guarantee_limit': False, 'warning': False})
else:
values.update(warranty)
warranty_address = claim_line_obj._warranty_return_address_values(
product, company, warehouse)
values.update(warranty_address)
self.update(values)
def _warranty_return_address_values(self, product, company, warehouse):
"""Return the partner to be used as return destination and
the destination stock location of the line in case of return.
We can have various case here:
- company or other: return to company partner or
crm_return_address_id if specified
- supplier: return to the supplier address
"""
if not (product and company and warehouse):
return {'warranty_return_partner': False,
'warranty_type': False,
'location_dest_id': False}
return_address = None
sellers = product.seller_ids
if sellers:
seller = sellers[0]
return_address_id = seller.warranty_return_address.id
return_type = seller.warranty_return_partner
else:
# when no supplier is configured, returns to the company
return_address = (company.crm_return_address_id or
company.partner_id)
return_address_id = return_address.id
return_type = 'company'
location_dest_id = self.get_destination_location(product, warehouse)
return {'warranty_return_partner': return_address_id,
'warranty_type': return_type,
'location_dest_id': location_dest_id}
def set_warranty_return_address(self):
claim = self.claim_id
product = self.product_id
company = claim.company_id
warehouse = claim.warehouse_id
values = self._warranty_return_address_values(
product, company, warehouse)
self.write(values)
return True
@api.multi
def set_warranty(self):
""" Calculate warranty limit and address """
for claim_line in self:
if not (claim_line.product_id and claim_line.invoice_line_id):
raise Warning(_('Please set product and invoice.'))
claim_line.set_warranty_limit()
claim_line.set_warranty_return_address()
# TODO add the option to split the claim_line in order to manage the same
# product separately
class CrmClaim(Model):
_inherit = 'crm.claim'
def init(self, cr):
cr.execute("""
UPDATE "crm_claim" SET "number"=id::varchar
WHERE ("number" is NULL)
OR ("number" = '/');
""")
@api.model
def _get_sequence_number(self):
seq_obj = self.env['ir.sequence']
res = seq_obj.get('crm.claim.rma') or '/'
return res
def _get_default_warehouse(self):
user = self.env.user
company_id = user.company_id.id
wh_obj = self.env['stock.warehouse']
wh = wh_obj.search([
('company_id', '=', company_id)
], limit=1)
if not wh:
raise Warning(
_('There is no warehouse for the current user\'s company.'))
return wh
@api.multi
def name_get(self):
res = []
for claim in self:
number = claim.number and str(claim.number) or ''
res.append((claim.id, '[' + number + '] ' + claim.name))
return res
@api.model
def create(self, vals):
if ('number' not in vals) or (vals.get('number') == '/'):
vals['number'] = self._get_sequence_number()
claim = super(CrmClaim, self).create(vals)
return claim
def copy_data(self, cr, uid, id, default=None, context=None):
if default is None:
default = {}
std_default = {
'invoice_ids': False,
'picking_ids': False,
'number': self._get_sequence_number(cr, uid, context),
}
std_default.update(default)
return super(CrmClaim, self).copy_data(cr, uid, id, std_default,
context=context)
number = Char(
string='Number', readonly=True,
required=True,
select=True,
default='/',
help="Company internal claim unique number")
claim_type = Selection(
[('customer', 'Customer'),
('supplier', 'Supplier'),
('other', 'Other')],
string='Claim type',
required=True,
default='customer',
help="Customer: from customer to company.\n "
"Supplier: from company to supplier.")
claim_line_ids = One2many(
'claim.line',
'claim_id',
string='Return lines')
planned_revenue = Float(string='Expected revenue')
planned_cost = Float(string='Expected cost')
real_revenue = Float(string='Real revenue')
real_cost = Float(string='Real cost')
invoice_ids = One2many(
'account.invoice',
'claim_id',
string='Refunds')
picking_ids = One2many(
'stock.picking',
'claim_id',
string='RMA')
invoice_id = Many2one(
'account.invoice',
string='Invoice',
help='Related original Customer invoice')
delivery_address_id = Many2one(
'res.partner',
string='Partner delivery address',
help="This address will be used to deliver repaired or replacement"
"products.")
warehouse_id = Many2one(
'stock.warehouse',
string='Warehouse',
default=_get_default_warehouse,
required=True)
_sql_constraints = [
('number_uniq', 'unique(number, company_id)',
'Number/Reference must be unique per Company!'),
]
@api.onchange('invoice_id', 'warehouse_id', 'claim_type', 'date')
def _onchange_invoice_warehouse_type_date(self):
context = self.env.context
invoice_obj = self.env['account.invoice']
invoice_line_obj = self.env['account.invoice.line']
product_obj = self.env['product.product']
claim_line_obj = self.env['claim.line']
invoice_lines = self.invoice_id.invoice_line
claim_lines = []
if not self.warehouse_id:
self.warehouse_id = self._get_default_warehouse()
claim_type = self.claim_type
claim_date = self.date
warehouse = self.warehouse_id
company = self.company_id
create_lines = context.get('create_lines')
def warranty_values(invoice, product):
values = {}
try:
warranty = claim_line_obj._warranty_limit_values(
invoice, claim_type, product, claim_date)
except (InvoiceNoDate, ProductNoSupplier):
# we don't mind at this point if the warranty can't be
# computed and we don't want to block the user
values.update({'guarantee_limit': False, 'warning': False})
else:
values.update(warranty)
warranty_address = claim_line_obj._warranty_return_address_values(
product, company, warehouse)
values.update(warranty_address)
return values
if create_lines: # happens when the invoice is changed
for invoice_line in invoice_lines:
location_dest_id = claim_line_obj.get_destination_location(
invoice_line.product_id, warehouse)
line = {
'name': invoice_line.name,
'claim_origine': "none",
'invoice_line_id': invoice_line.id,
'product_id': invoice_line.product_id.id,
'product_returned_quantity': invoice_line.quantity,
'unit_sale_price': invoice_line.price_unit,
'location_dest_id': location_dest_id,
'state': 'draft',
}
line.update(warranty_values(invoice_line.invoice_id,
invoice_line.product_id))
claim_lines.append([0, 0, line])
for line in claim_lines:
value = self._convert_to_cache(
{'claim_line_ids': line}, validate=False)
self.update(value)
if self.invoice_id:
self.delivery_address_id = self.invoice_id.partner_id.id
@api.model
def message_get_reply_to(self):
""" Override to get the reply_to of the parent project. """
# return [claim.section_id.message_get_reply_to()[0]
# if claim.section_id else False
# for claim in self.browse(cr, SUPERUSER_ID, ids,
# context=context)]
return [claim.section_id.message_get_reply_to()[0]
if claim.section_id else False
for claim in self]
@api.model
def message_get_suggested_recipients(self):
recipients = super(CrmClaim, self
).message_get_suggested_recipients()
try:
for claim in self:
if claim.partner_id:
self._message_add_suggested_recipient(
recipients, claim,
partner=claim.partner_id, reason=_('Customer'))
elif claim.email_from:
self._message_add_suggested_recipient(
recipients, claim,
email=claim.email_from, reason=_('Customer Email'))
except (osv.except_osv, orm.except_orm):
# no read access rights -> just ignore suggested recipients
# because this imply modifying followers
pass
return recipients

View File

@@ -1,104 +0,0 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
<!-- Claims Sequence n° -->
<record id="seq_type_claim" model="ir.sequence.type">
<field name="name">CRM Claim</field>
<field name="code">crm.claim.rma</field>
</record>
<record id="seq_claim" model="ir.sequence">
<field name="name">CRM Claim</field>
<field name="code">crm.claim.rma</field>
<field eval="5" name="padding"/>
<field name="prefix">RMA-%(year)s/</field>
</record>
<!--
Claim sections
-->
<record model="crm.case.section" id="section_after_sales_service">
<field name="name">After Sales Service</field>
<field name="code">ASV</field>
<field name="parent_id" ref="crm.section_sales_department"/>
<!-- <field name="stage_ids" eval="[(4, ref('crm_claim.stage_claim1')), (4, ref('crm_claim.stage_claim2')), (4, ref('crm_claim.stage_claim3')), (4, ref('crm_claim.stage_claim5'))]"/> -->
</record>
<!--
Claim categories
-->
<record model="crm.case.categ" id="categ_claim10">
<field name="name">No Inventory</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_claim11">
<field name="name">Customer Return</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_claim12">
<field name="name">Buyer Cancelled</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_claim13">
<field name="name">General Adjustement</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_claim14">
<field name="name">Could Not Ship</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_claim15">
<field name="name">Different Item</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_claim16">
<field name="name">Merchandise Not Received</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_claim17">
<field name="name">Merchandise Not As Described</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_claim18">
<field name="name">Pricing Error</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_claim19">
<field name="name">Shipping Address Undeliverable</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_claim20">
<field name="name">Delivered Late by Carrier</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_claim21">
<field name="name">Missed Fulfilment Promise</field>
<field name="section_id" ref="section_after_sales_service"/>
<field name="object_id" search="[('model','=','crm.claim')]" model="ir.model"/>
</record>
</data>
</openerp>

View File

@@ -1,414 +0,0 @@
<?xml version="1.0"?>
<openerp>
<data>
<!-- Return line -->
<!-- SEARCH -->
<record id="view_crm_claim_lines_filter" model="ir.ui.view">
<field name="name">CRM - Claims Search</field>
<field name="model">claim.line</field>
<field name="arch" type="xml">
<search string="Search Claims">
<filter icon="terp-check" string="Current" name="current"
domain="[('state','in',('draft', 'refused', 'treated'))]"
separator="1" help="Draft and Open Claims" />
<filter icon="terp-camera_test"
string="In Progress"
domain="[('state','in',('confirmed','in_to_control','in_to_treate'))]"
separator="1" help="In Progress Claims"/>
<separator orientation="vertical"/>
<field name="state" select='1'/>
<field name="substate_id" select='1'/>
<field name="name" select='1'/>
<field name="warning" select='1'/>
<field name="invoice_line_id" select='1'/>
<field name="product_id" select='1'/>
<field name="prodlot_id" select='1'/>
<newline/>
<group expand="0" string="More">
<field name="last_state_change" select='1'/>
<field name="guarantee_limit" select='1'/>
<field name="return_value" select='1'/>
<field name="name" select='1'/>
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="Invoice" icon="terp-dolar"
domain="[]" help="Invoice"
context="{'group_by':'invoice_id'}" />
<filter string="Product" icon="terp-product"
domain="[]" help="Product"
context="{'group_by':'product_id'}" />
<separator orientation="vertical"/>
<filter string="Substate" icon="terp-stage"
domain="[]" context="{'group_by':'substate_id'}" />
<filter string="Claim n°" icon="terp-emblem-documents"
domain="[]" context="{'group_by':'claim_id'}" />
</group>
</search>
</field>
</record>
<!-- TREE -->
<record model="ir.ui.view" id="crm_claim_line_tree_view">
<field name="name">CRM - Claims Tree</field>
<field name="model">claim.line</field>
<field name="arch" type="xml">
<tree string="Returned lines">
<field name="claim_id" invisible="1"/>
<field name="state"/>
<field name="substate_id"/>
<field name="product_id"/>
<field name="name"/>
<field name="prodlot_id"/>
<field name="warning"/>
<field name="warranty_type"/>
<field name="warranty_return_partner"/>
<button name="set_warranty" string="Compute Waranty" type="object" icon="gtk-justify-fill"/>
<field name="product_returned_quantity"/>
<field name="claim_origine"/>
<field name="refund_line_id"/>
<field name="move_in_id"/>
<field name="move_out_id"/>
</tree>
</field>
</record>
<!-- FORM -->
<record model="ir.ui.view" id="crm_claim_line_form_view">
<field name="name">CRM - Claim product return line Form</field>
<field name="model">claim.line</field>
<field name="arch" type="xml">
<form string="Claim Line" version="7.0">
<header>
<button name="set_warranty" string="Calculate warranty state" type="object" class="oe_highlight"/>
</header>
<sheet string="Claims">
<div class="oe_title">
<group>
<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>
</group>
</div>
<group>
<group string="Returned good">
<field name="product_returned_quantity"/>
<field name="product_id" />
<field name="prodlot_id"/>
<field name="unit_sale_price"/>
<field name="return_value"/>
</group>
<group string="Linked Document">
<field name="claim_id" />
<field name="invoice_line_id" />
<field name="refund_line_id"/>
<field name="move_in_id"/>
<field name="move_out_id"/>
</group>
</group>
<group>
<group string="Problem">
<field name="claim_origine" nolabel="1" colspan="4"/>
<field name="claim_descr" nolabel="1" colspan="4"/>
</group>
<group string="Warranty">
<field name="guarantee_limit"/>
<field name="warning"/>
<field name="warranty_return_partner"/>
<field name="warranty_type"/>
</group>
</group>
<separator string="State" colspan="4"/>
<group col="6" colspan="4">
<field name="state"/>
<field name="substate_id" widget='selection' />
<field name="last_state_change"/>
</group>
</sheet>
</form>
</field>
</record>
<!-- CLAIM VIEWS -->
<record model="ir.ui.view" id="crm_case_claims_tree_view">
<field name="name">CRM - Claims Tree</field>
<field name="model">crm.claim</field>
<field name="inherit_id" ref="crm_claim.crm_case_claims_tree_view"/>
<field name="arch" type="xml">
<field name="stage_id" position="after">
<field name="section_id" />
</field>
<field name="name" position="before">
<field name="number" />
</field>
</field>
</record>
<record model="ir.ui.view" id="crm_case_claims_form_view_replace">
<field name="name">CRM - Claims Form</field>
<field name="model">crm.claim</field>
<field name="inherit_id" ref="crm_claim.crm_case_claims_form_view"/>
<field name="arch" type="xml">
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.claim')]" position="replace">
<field name="categ_id" />
</field>
</field>
</record>
<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.crm_case_claims_form_view"/>
<field name="arch" type="xml">
<page string="Follow Up" position="before">
<page string="Product Return">
<group name="Product Return">
<separator string="Product Return" colspan="4"/>
<group>
<field name="company_id" invisible="1"/>
<field name="invoice_id" domain="['|',('commercial_partner_id','=',partner_id),('partner_id','=',partner_id)]" context="{'create_lines': True}"/>
<field name="delivery_address_id" context="{'tree_view_ref': 'crm_claim_rma.view_partner_contact_tree', 'search_default_parent_id': partner_id}"/>
</group>
<group>
<!-- Place for mass return button from crm_rma_lot_mass_return -->
</group>
<field name="claim_line_ids" nolabel="1" colspan="4" editable="top">
<form string="Claim Line" version="7.0">
<header>
<button name="set_warranty" string="Calculate warranty state" type="object" class="oe_highlight"/>
</header>
<sheet string="Claims">
<div class="oe_title">
<group>
<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>
</group>
</div>
<group>
<group string="Returned good">
<field name="product_returned_quantity"/>
<field name="product_id" context="{'claim_id': parent.id, 'company_id': parent.company_id, 'warehouse_id': parent.warehouse_id, 'claim_type': parent.claim_type, 'claim_date': parent.date}"/>
<field name="prodlot_id"/>
<field name="unit_sale_price"/>
<field name="return_value"/>
</group>
<group string="Linked Document">
<field name="invoice_line_id" context="{'claim_id': parent.id, 'company_id': parent.company_id, 'warehouse_id': parent.warehouse_id, 'claim_type': parent.claim_type, 'claim_date': parent.date}"/>
<field name="refund_line_id"/>
<field name="move_in_id"/>
<field name="move_out_id"/>
</group>
</group>
<group>
<group string="Problem">
<field name="claim_origine" nolabel="1" colspan="4"/>
<field name="claim_descr" nolabel="1" colspan="4"/>
</group>
<group string="Warranty">
<field name="guarantee_limit"/>
<field name="warning"/>
<field name="warranty_return_partner"/>
<field name="warranty_type"/>
</group>
</group>
<separator string="State" colspan="4"/>
<group col="6" colspan="4">
<field name="state"/>
<field name="substate_id" widget='selection' />
<field name="last_state_change"/>
</group>
</sheet>
</form>
</field>
</group>
<group col="4" colspan="4" attrs="{'invisible': True}" >
<separator string="Action" colspan="4" />
<button name="%(action_claim_picking_in)d"
string="New Products Return"
type="action" target="new"
context="{'warehouse_id': warehouse_id,
'partner_id': partner_id}"/>
<button name="%(action_claim_picking_out)d"
string="New Delivery"
type="action" target="new"
context="{'warehouse_id': warehouse_id,
'partner_id': partner_id}"/>
<button name="%(account.action_account_invoice_refund)d"
type='action' string='New Refund'
icon="gtk-execute"
context="{
'invoice_ids': [invoice_id],
'claim_line_ids': claim_line_ids,
'description': name,
'claim_id': id,
}"/>
</group>
</page>
<page string="Generated Documents">
<separator colspan="2" string="Refunds"/>
<field name="invoice_ids" colspan="4" readonly="1"/>
<separator colspan="2" string="Receptions / Deliveries"/>
<field name="picking_ids" colspan="4" readonly="1"/>
</page>
</page>
</field>
</record>
<!-- Right side link to orders -->
<act_window
id="act_crm_claim_rma_sale_orders"
name="Quotations and Sales"
res_model="sale.order"
src_model="crm.claim"/>
<!-- Right side link to invoices -->
<act_window
domain="[('type', '=', 'out_invoice')]"
id="act_crm_claim_rma_invoice_out"
name="Customer Invoices"
res_model="account.invoice"
src_model="crm.claim"/>
<!-- Right side link to invoices -->
<act_window
domain="[('type', '=', 'in_invoice')]"
id="act_crm_claim_rma_invoice_in"
name="Supplier Invoices"
res_model="account.invoice"
src_model="crm.claim"/>
<!-- Right side link to refunds -->
<act_window
domain="[('type', '=', 'out_refund')]"
id="act_crm_claim_rma_refunds_out"
name="Customer Refunds"
res_model="account.invoice"
src_model="crm.claim"/>
<!-- Right side link to refunds -->
<act_window
domain="[('type', '=', 'in_refund')]"
id="act_crm_claim_rma_refunds_in"
name="Supplier Refunds"
res_model="account.invoice"
src_model="crm.claim"/>
<!-- Right side link to picking in -->
<act_window
domain="[('picking_type_id.code', '=', 'incoming')]"
id="act_crm_claim_rma_picking_in"
name="Incoming Shipment and Returns"
res_model="stock.picking"
src_model="crm.claim"/>
<!-- Right side link to picking out -->
<act_window
domain="[('picking_type_id.code', '=', 'outgoing')]"
id="act_crm_claim_rma_picking_out"
name="Deliveries"
res_model="stock.picking"
src_model="crm.claim"/>
<record model="ir.ui.view" id="crm_claim_rma_form_view2">
<field name="name">CRM - Claim product return Form</field>
<field name="model">crm.claim</field>
<field name="inherit_id" ref="crm_claim.crm_case_claims_form_view"/>
<field name="arch" type="xml">
<field name="date_deadline" position="after">
<field name="claim_type" context="{'create_lines': False}" />
<field name="warehouse_id" context="{'create_lines': False}"/>
</field>
<field name="name" position="replace">
<div class="oe_title">
<label for="number" class="oe_edit_only"/>
<h1><field name="number"/></h1>
</div>
</field>
<field name="date" position="replace">
</field>
<field name="user_id" position="before">
<field name="name" />
<field name="date" context="{'create_lines': False}"/>
</field>
<xpath expr="//sheet[@string='Claims']/group[1]" position="inside">
<div class="oe_right oe_button_box" name="buttons">
<button name="%(act_crm_claim_rma_sale_orders)d" type="action"
string="Quotations and Sales"
attrs="{'invisible': ['|',('partner_id','=', False),('claim_type','in', ['supplier','other'])]}"
context="{'search_default_partner_id': [partner_id],'search_default_user_id':False}"
/>
<button name="%(act_crm_claim_rma_invoice_out)d" type="action"
string="Customer Invoices"
attrs="{'invisible': ['|',('partner_id','=', False),('claim_type','in', ['supplier','other'])]}"
context="{'search_default_partner_id': [partner_id],'search_default_user_id':False}"
/>
<button name="%(act_crm_claim_rma_refunds_out)d" type="action"
string="Customer Refunds"
attrs="{'invisible': ['|',('partner_id','=', False),('claim_type','in', ['supplier','other'])]}"
context="{'search_default_partner_id': [partner_id],'search_default_user_id':False}"
/>
<button name="%(act_crm_claim_rma_invoice_in)d" type="action"
string="Supplier Invoices"
attrs="{'invisible': ['|',('partner_id','=', False),('claim_type','in', ['customer','other'])]}"
context="{'search_default_partner_id': [partner_id],'search_default_user_id':False}"
/>
<button name="%(act_crm_claim_rma_refunds_in)d" type="action"
string="Supplier Refunds"
attrs="{'invisible': ['|',('partner_id','=', False),('claim_type','in', ['customer','other'])]}"
context="{'search_default_partner_id': [partner_id],'search_default_user_id':False}"
/>
<button name="%(act_crm_claim_rma_picking_in)d" type="action"
string="Returned Products"
attrs="{'invisible': ['|',('partner_id','=', False),('claim_type','in', ['supplier','other'])]}"
context="{'search_default_claim_id': active_id,'search_default_user_id':False}"
/>
<button name="%(act_crm_claim_rma_picking_out)d" type="action"
string="Deliveries"
attrs="{'invisible': ['|',('partner_id','=', False),('claim_type','in', ['supplier','other'])]}"
context="{'search_default_partner_id': [partner_id],'search_default_user_id':False}"
/>
</div>
</xpath>
</field>
</record>
<!-- Crm claim Search view -->
<record id="view_crm_case_claims_filter" model="ir.ui.view">
<field name="name">CRM - Claims Search</field>
<field name="model">crm.claim</field>
<field name="inherit_id" ref="crm_claim.view_crm_case_claims_filter"/>
<field name="arch" type="xml">
<field name="name" string="Claims" position="before">
<field name="number"/>
</field>
<filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}" position="before">
<filter string="Sales Team" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'section_id'}"/>
</filter>
</field>
</record>
<!-- Menu -->
<record model="ir.actions.act_window" id="crm_claim.crm_case_categ_claim0">
<field name="context">{"search_default_user_id":uid, "stage_type":'claim'}</field>
</record>
<!-- return lines action -->
<record model="ir.actions.act_window" id="act_crm_case_claim_lines">
<field name="name">Claim lines</field>
<field name="res_model">claim.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="crm_claim_line_tree_view"/>
<field name="search_view_id" ref="view_crm_claim_lines_filter"/>
</record>
<!-- substates action -->
<!--<record id="act_crm_claim_substates" model="ir.actions.act_window">-->
<!--<field name="name">Claim line substates</field>-->
<!--<field name="res_model">substate.substate</field>-->
<!--<field name="view_type">form</field>-->
<!--</record>-->
<!-- Menu -->
<menuitem name="Return lines" id="menu_crm_case_claims_claim_lines"
parent="base.menu_aftersale" action="act_crm_case_claim_lines" sequence="2"/>
<!--<menuitem name="Returned line substates" id="menu_crm_case_claims_claim_line_substates"-->
<!--parent="crm_claim.menu_config_claim" action="act_crm_claim_substates" sequence="2"/>-->
</data>
</openerp>

View File

@@ -1,907 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * crm_claim_rma
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-20 18:21+0000\n"
"PO-Revision-Date: 2013-12-20 18:21+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_rma
#: view:claim.line:0
msgid "Returned good"
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Locations"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Draft and Open Claims"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Group By..."
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,claim_descr:0
msgid "More precise description of the problem"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,guarantee_limit:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_guarantee_limit
msgid "Warranty limit"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
#: selection:crm.claim,claim_type:0
msgid "Supplier"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Refused"
msgstr ""
#. module: crm_claim_rma
#: view:stock.picking.in:0
#: view:stock.picking.out:0
msgid "To Invoice"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,refund_line_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_refund_line_id
msgid "Refund Line"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
msgid "Company"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Order cancellation"
msgstr ""
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_dest_location:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_dest_location
msgid "Dest. Location"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:224
#, python-format
msgid "Cannot find any date for invoice. Must be a validated invoice."
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,last_state_change:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_last_state_change
msgid "Last change"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,product_id:0
msgid "Returned product"
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Create picking"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Claim Line"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Delivery"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Calculate warranty state"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/account_invoice.py:77
#, python-format
msgid "A refund has already been created for this claim !"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Compute Waranty"
msgstr ""
#. module: crm_claim_rma
#: field:account.invoice,claim_id:0
#: model:ir.model,name:crm_claim_rma.model_crm_claim
#: model:ir.model.fields,field_description:crm_claim_rma.field_account_invoice_claim_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id_4030
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id_4031
#: field:stock.picking,claim_id:0
#: field:stock.picking.in,claim_id:0
#: field:stock.picking.out,claim_id:0
msgid "Claim"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim13
msgid "General Adjustement"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:204
#, python-format
msgid "A product return cannot be created for various destination addresses, please choose line with a same address."
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.action_claim_picking_out
msgid "Create Outgoing Shipments"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,warning:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warning
msgid "Warranty"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim11
msgid "Customer Return"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_move
msgid "Stock Move"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,product_returned_quantity:0
msgid "Quantity of product returned"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,planned_cost:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_planned_cost
msgid "Expected cost"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Receptions / Deliveries"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,warranty_type:0
msgid "Who is in charge of the warranty return treatment towards the end customer. Company will use the current company delivery or default address and so on for supplier and brand manufacturer. Does not necessarily mean that the warranty to be applied is the one of the return partner (ie: can be returned to the company and be under the brand warranty"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking_out
msgid "Delivery Orders"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,last_state_change:0
msgid "To set the last state / substate change"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Not specified"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Returned lines"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Claim n°"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,state:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_state
msgid "State"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,applicable_guarantee:0
#: field:claim.line,warranty_type:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_applicable_guarantee
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warranty_type
msgid "Warranty type"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking
msgid "Picking List"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,warehouse_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_warehouse_id
msgid "Warehouse"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,claim_origine:0
msgid "To describe the line product problem"
msgstr ""
#. module: crm_claim_rma
#: help:claim_make_picking.wizard,claim_line_dest_location:0
msgid "Location where the system will stock the returned products."
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "More"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Legal retractation"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/account_invoice.py:76
#: code:addons/crm_claim_rma/crm_claim_rma.py:312
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:195
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:203
#, python-format
msgid "Error !"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,guarantee_limit:0
msgid "The warranty limit is computed as: invoice date + warranty defined on selected product."
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,claim_origine:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_origine
msgid "Claim Subject"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,real_cost:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_real_cost
msgid "Real cost"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,claim_id:0
msgid "To link to the case.claim object"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:73
#, python-format
msgid "A picking has already been created for this claim."
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim18
msgid "Pricing Error"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,product_returned_quantity:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_product_returned_quantity
msgid "Quantity"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Confirmed, waiting for product"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,claim_line_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_claim_line_ids
#: model:ir.ui.menu,name:crm_claim_rma.menu_crm_case_claims_claim_lines
msgid "Return lines"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Stage"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,planned_revenue:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_planned_revenue
msgid "Expected revenue"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Controlled, to treate"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_refunds_out
msgid "Customer Refunds"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,location_dest_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_location_dest_id
msgid "Return Stock Location"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_sale_orders
msgid "Quotations and Sales"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Lost during transport"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Shipping error"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,warranty_return_partner:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warranty_return_partner
msgid "Warranty Address"
msgstr ""
#. module: crm_claim_rma
#: help:crm.claim,invoice_id:0
msgid "Related original Cusotmer invoice"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim12
msgid "Buyer Cancelled"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,claim_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_id
msgid "Related claim"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,invoice_line_id:0
#: model:ir.model,name:crm_claim_rma.model_account_invoice_line
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_invoice_line_id
msgid "Invoice Line"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Linked Document"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,move_in_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_move_in_id
msgid "Move Line from picking in"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim20
msgid "Delivered Late by Carrier"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Product Return"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Generated Documents"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,prodlot_id:0
msgid "The serial/lot of the returned product"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Refund"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,substate_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_substate_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_substate_substate_name
#: field:substate.substate,name:0
msgid "Sub state"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_refunds_in
msgid "Supplier Refunds"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,claim_descr:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_descr
msgid "Claim description"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,real_revenue:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_real_revenue
msgid "Real revenue"
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Select lines for picking"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,substate_id:0
msgid "Select a sub state to precise the standard state. Example 1: state = refused; substate could be warranty over, not in warranty, no problem,... . Example 2: state = to treate; substate could be to refund, to exchange, to repair,..."
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Select exchange lines to add in picking"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Draft"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim14
msgid "Could Not Ship"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_claim_line
msgid "List of product to return"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim10
msgid "No Inventory"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,unit_sale_price:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_unit_sale_price
msgid "Unit sale price"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,refund_line_id:0
msgid "The refund line related to the returned product"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:245
#, python-format
msgid "expired"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking_in
msgid "Incoming Shipments"
msgstr ""
#. module: crm_claim_rma
#: help:substate.substate,substate_descr:0
msgid "To give more information about the sub state"
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_substates
msgid "Claim line substates"
msgstr ""
#. module: crm_claim_rma
#: help:claim_make_picking.wizard,claim_line_source_location:0
msgid "Location where the returned products are from."
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,picking_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_picking_ids
#: view:stock.picking.in:0
#: view:stock.picking.out:0
msgid "RMA"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
msgid "Brand manufacturer"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,prodlot_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_prodlot_id
msgid "Serial/Lot n°"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,unit_sale_price:0
msgid "Unit sale price of the product. Auto filled if retrun done by invoice selection. Be careful and check the automatic value as don't take into account previous refunds, invoice discount, can be for 0 if product for free,..."
msgstr ""
#. module: crm_claim_rma
#: sql_constraint:crm.claim:0
msgid "Number/Reference must be unique per Company!"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:313
#, python-format
msgid "Please set product and invoice."
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Damaged delivered product"
msgstr ""
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_ids:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_case_claim_lines
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_ids
msgid "Claim lines"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:341
#, python-format
msgid "There is no warehouse for the current user's company."
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:223
#: code:addons/crm_claim_rma/crm_claim_rma.py:233
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:72
#, python-format
msgid "Error"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Action"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
#: view:crm.claim:0
msgid "Claims"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Problem"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Treated"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim16
msgid "Merchandise Not Received"
msgstr ""
#. module: crm_claim_rma
#: help:crm.claim,number:0
msgid "Company internal claim unique number"
msgstr ""
#. module: crm_claim_rma
#: model:ir.ui.menu,name:crm_claim_rma.menu_crm_case_claims_claim_line_substates
msgid "Returned line substates"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Substate"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_invoice_out
msgid "Customer Invoices"
msgstr ""
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_source_location:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_source_location
msgid "Source Location"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,number:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_number
msgid "Number"
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_picking_out
msgid "Deliveries"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
#: field:crm.claim,invoice_id:0
#: model:ir.model,name:crm_claim_rma.model_account_invoice
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_invoice_id
msgid "Invoice"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,invoice_line_id:0
msgid "The invoice line related to the returned product"
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Cancel"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim21
msgid "Missed Fulfilment Promise"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "In Progress"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.section,name:crm_claim_rma.section_after_sales_service
msgid "After Sales Service"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Received, to control"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim17
msgid "Merchandise Not As Described"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Exchange request"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_substate_substate
msgid "substate that precise a given state"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:226
#, python-format
msgid "not_define"
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.action_claim_picking_in
msgid "Return Products"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Current"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
#: selection:crm.claim,claim_type:0
msgid "Other"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Products Return"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_invoice_in
msgid "Supplier Invoices"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,product_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_product_id
msgid "Product"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,name:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_name
#: model:ir.model.fields,field_description:crm_claim_rma.field_substate_substate_substate_descr
#: field:substate.substate,substate_descr:0
msgid "Description"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Search Claims"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,claim_type:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_claim_type
msgid "Claim type"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:196
#, python-format
msgid "A product return cannot be created for various destination locations, please choose line with a same destination location."
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:247
#, python-format
msgid "valid"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:340
#, python-format
msgid "Error!"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,location_dest_id:0
msgid "The return stock location of the returned product"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,warning:0
msgid "If warranty has expired"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,warranty_return_partner:0
msgid "Where the customer has to send back the product(s)"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Follow Up"
msgstr ""
#. module: crm_claim_rma
#: selection:crm.claim,claim_type:0
msgid "Customer"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,move_out_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_move_out_id
msgid "Move Line from picking out"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: field:crm.claim,invoice_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_invoice_ids
msgid "Refunds"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_account_invoice_refund
msgid "Invoice Refund"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,return_value:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_return_value
msgid "Total return"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,return_value:0
msgid "Quantity returned * Unit sold price"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim19
msgid "Shipping Address Undeliverable"
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_picking_in
msgid "Incoming Shipment and Returns"
msgstr ""
#. module: crm_claim_rma
#: view:stock.picking.out:0
msgid "Delivery orders to invoice"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,move_in_id:0
#: help:claim.line,move_out_id:0
msgid "The move line related to the returned product"
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "or"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Sales Team"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim15
msgid "Different Item"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_claim_make_picking_wizard
msgid "Wizard to create pickings from claim lines"
msgstr ""
#. module: crm_claim_rma
#: help:crm.claim,claim_type:0
msgid "Customer: from customer to company.\n"
" Supplier: from company to supplier."
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "In Progress Claims"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:234
#, python-format
msgid "The product has no supplier configured."
msgstr ""

View File

@@ -1,950 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * crm_claim_rma
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-20 18:21+0000\n"
"PO-Revision-Date: 2014-01-22 19:38+0000\n"
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-05-24 06:50+0000\n"
"X-Generator: Launchpad (build 17017)\n"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Returned good"
msgstr "Mercancía devuelta"
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Locations"
msgstr "Localizaciones"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Draft and Open Claims"
msgstr "Reclamaciones abiertas o en borrador"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Group By..."
msgstr "Agrupar por..."
#. module: crm_claim_rma
#: help:claim.line,claim_descr:0
msgid "More precise description of the problem"
msgstr "Descripción detallada del problema"
#. module: crm_claim_rma
#: field:claim.line,guarantee_limit:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_guarantee_limit
msgid "Warranty limit"
msgstr "Límite de la garantía"
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
#: selection:crm.claim,claim_type:0
msgid "Supplier"
msgstr "Proveedor"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Refused"
msgstr "Rechazado"
#. module: crm_claim_rma
#: view:stock.picking.in:0
#: view:stock.picking.out:0
msgid "To Invoice"
msgstr "A facturar"
#. module: crm_claim_rma
#: field:claim.line,refund_line_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_refund_line_id
msgid "Refund Line"
msgstr "Linea de Abono"
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
msgid "Company"
msgstr "Compañia"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Order cancellation"
msgstr "Cancelación de orden"
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_dest_location:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_dest_location
msgid "Dest. Location"
msgstr "Localizalización de destino"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:224
#, python-format
msgid "Cannot find any date for invoice. Must be a validated invoice."
msgstr ""
"No se puede encontrar una fecha para la factura. Debe ser una fecha validada."
#. module: crm_claim_rma
#: field:claim.line,last_state_change:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_last_state_change
msgid "Last change"
msgstr "Última modificación"
#. module: crm_claim_rma
#: help:claim.line,product_id:0
msgid "Returned product"
msgstr "Productos devueltos"
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Create picking"
msgstr "Crear envío/recepción"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Claim Line"
msgstr "Línea de reclamación"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Delivery"
msgstr "Nueva entrega"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Calculate warranty state"
msgstr "Calcular el estado de la garantía"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/account_invoice.py:77
#, python-format
msgid "A refund has already been created for this claim !"
msgstr "¡Ya se ha creado un abono para esta reclamación!"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Compute Waranty"
msgstr "Calcular garantía"
#. module: crm_claim_rma
#: field:account.invoice,claim_id:0
#: model:ir.model,name:crm_claim_rma.model_crm_claim
#: model:ir.model.fields,field_description:crm_claim_rma.field_account_invoice_claim_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id_4030
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id_4031
#: field:stock.picking,claim_id:0
#: field:stock.picking.in,claim_id:0
#: field:stock.picking.out,claim_id:0
msgid "Claim"
msgstr "Reclamación"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim13
msgid "General Adjustement"
msgstr "Ajuste General"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:204
#, python-format
msgid ""
"A product return cannot be created for various destination addresses, please "
"choose line with a same address."
msgstr ""
"No se puede crear una devolución de producto para varias direcciones de "
"destino. Escoja por favor una línea con la misma dirección."
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.action_claim_picking_out
msgid "Create Outgoing Shipments"
msgstr "Crear envíos salientes"
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,warning:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warning
msgid "Warranty"
msgstr "Garantía"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim11
msgid "Customer Return"
msgstr "Devolución de cliente"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_move
msgid "Stock Move"
msgstr "Movimientos de stock"
#. module: crm_claim_rma
#: help:claim.line,product_returned_quantity:0
msgid "Quantity of product returned"
msgstr "Cantidad de producto devuelto"
#. module: crm_claim_rma
#: field:crm.claim,planned_cost:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_planned_cost
msgid "Expected cost"
msgstr "Coste estimado"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Receptions / Deliveries"
msgstr "Recepciones / Entregas"
#. module: crm_claim_rma
#: help:claim.line,warranty_type:0
msgid ""
"Who is in charge of the warranty return treatment towards the end customer. "
"Company will use the current company delivery or default address and so on "
"for supplier and brand manufacturer. Does not necessarily mean that the "
"warranty to be applied is the one of the return partner (ie: can be returned "
"to the company and be under the brand warranty"
msgstr ""
"Especifica quién es el responsable del tratamiento de la devolución de "
"garantía para el cliente final. La compañía utilizará la dirección por "
"defecto o la dirección de envío de la compañía, y así sucesivamente por "
"proveedor y marca del fabricante. No significa necesariamente que la "
"garantía que se aplica es el de la empresa que hace la devolución (es decir: "
"se puede devolver a la empresa y estar bajo la garantía de la marca)"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking_out
msgid "Delivery Orders"
msgstr "Órdenes de entrega"
#. module: crm_claim_rma
#: help:claim.line,last_state_change:0
msgid "To set the last state / substate change"
msgstr "Para definir el último cambio de estado / sub-estado"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Not specified"
msgstr "No especificado"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Returned lines"
msgstr "Líneas devueltas"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Claim n°"
msgstr "Reclamación nº"
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,state:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_state
msgid "State"
msgstr "Estado"
#. module: crm_claim_rma
#: field:claim.line,applicable_guarantee:0
#: field:claim.line,warranty_type:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_applicable_guarantee
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warranty_type
msgid "Warranty type"
msgstr "Tipo de garantía"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking
msgid "Picking List"
msgstr "Listado de recogida"
#. module: crm_claim_rma
#: field:crm.claim,warehouse_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_warehouse_id
msgid "Warehouse"
msgstr "Almacén"
#. module: crm_claim_rma
#: help:claim.line,claim_origine:0
msgid "To describe the line product problem"
msgstr "Para describir el problema de la línea de producto"
#. module: crm_claim_rma
#: help:claim_make_picking.wizard,claim_line_dest_location:0
msgid "Location where the system will stock the returned products."
msgstr ""
"Localización en la que el sistema almacenará los productos devueltos."
#. module: crm_claim_rma
#: view:claim.line:0
msgid "More"
msgstr "Más"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Legal retractation"
msgstr "Retractación legal"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/account_invoice.py:76
#: code:addons/crm_claim_rma/crm_claim_rma.py:312
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:195
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:203
#, python-format
msgid "Error !"
msgstr "¡Error!"
#. module: crm_claim_rma
#: help:claim.line,guarantee_limit:0
msgid ""
"The warranty limit is computed as: invoice date + warranty defined on "
"selected product."
msgstr ""
"El límite de la garantía se calcula como: fecha de factura + garantía "
"seleccionada en el producto seleccionado."
#. module: crm_claim_rma
#: field:claim.line,claim_origine:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_origine
msgid "Claim Subject"
msgstr "Objeto de la reclamación"
#. module: crm_claim_rma
#: field:crm.claim,real_cost:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_real_cost
msgid "Real cost"
msgstr "Coste real"
#. module: crm_claim_rma
#: help:claim.line,claim_id:0
msgid "To link to the case.claim object"
msgstr "Para enlazar con el objeto case.claim"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:73
#, python-format
msgid "A picking has already been created for this claim."
msgstr "Ya se ha creado un albarán para esta reclamación."
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim18
msgid "Pricing Error"
msgstr "Error de precio"
#. module: crm_claim_rma
#: field:claim.line,product_returned_quantity:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_product_returned_quantity
msgid "Quantity"
msgstr "Cantidad"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Confirmed, waiting for product"
msgstr "Confirmado, esperando el producto"
#. module: crm_claim_rma
#: field:crm.claim,claim_line_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_claim_line_ids
#: model:ir.ui.menu,name:crm_claim_rma.menu_crm_case_claims_claim_lines
msgid "Return lines"
msgstr "Líneas de devolución"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Stage"
msgstr "Etapa"
#. module: crm_claim_rma
#: field:crm.claim,planned_revenue:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_planned_revenue
msgid "Expected revenue"
msgstr "Expectativa de ingreso"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Controlled, to treate"
msgstr "Controlado, para procesar"
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_refunds_out
msgid "Customer Refunds"
msgstr "Facturas rectificativas de cliente"
#. module: crm_claim_rma
#: field:claim.line,location_dest_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_location_dest_id
msgid "Return Stock Location"
msgstr "Ubicación de existencias para devolución"
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_sale_orders
msgid "Quotations and Sales"
msgstr "Presupuestos y pedidos"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Lost during transport"
msgstr "Perdido durante el transporte"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Shipping error"
msgstr "Error de envío"
#. module: crm_claim_rma
#: field:claim.line,warranty_return_partner:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warranty_return_partner
msgid "Warranty Address"
msgstr "Dirección de garantía"
#. module: crm_claim_rma
#: help:crm.claim,invoice_id:0
msgid "Related original Cusotmer invoice"
msgstr "Factura de cliente original relacionada"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim12
msgid "Buyer Cancelled"
msgstr "Cancelado por el comprador"
#. module: crm_claim_rma
#: field:claim.line,claim_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_id
msgid "Related claim"
msgstr "Reclamación relacionada"
#. module: crm_claim_rma
#: field:claim.line,invoice_line_id:0
#: model:ir.model,name:crm_claim_rma.model_account_invoice_line
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_invoice_line_id
msgid "Invoice Line"
msgstr "Línea de factura"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Linked Document"
msgstr "Documento relacionado"
#. module: crm_claim_rma
#: field:claim.line,move_in_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_move_in_id
msgid "Move Line from picking in"
msgstr "Ubicación de producto recepcionado"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim20
msgid "Delivered Late by Carrier"
msgstr "Entregado con retraso por el transportista"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Product Return"
msgstr "Devolución de producto"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Generated Documents"
msgstr "Documentos generados"
#. module: crm_claim_rma
#: help:claim.line,prodlot_id:0
msgid "The serial/lot of the returned product"
msgstr "Nº de serie/lote del producto devuelto"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Refund"
msgstr "Nuevo abono"
#. module: crm_claim_rma
#: field:claim.line,substate_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_substate_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_substate_substate_name
#: field:substate.substate,name:0
msgid "Sub state"
msgstr "Sub-estado"
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_refunds_in
msgid "Supplier Refunds"
msgstr "Facturas rectificativas de proveedor"
#. module: crm_claim_rma
#: field:claim.line,claim_descr:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_descr
msgid "Claim description"
msgstr "Descripción de la reclamación"
#. module: crm_claim_rma
#: field:crm.claim,real_revenue:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_real_revenue
msgid "Real revenue"
msgstr "Ingreso real"
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Select lines for picking"
msgstr "Seleccionar líneas para recogida/envío"
#. module: crm_claim_rma
#: help:claim.line,substate_id:0
msgid ""
"Select a sub state to precise the standard state. Example 1: state = "
"refused; substate could be warranty over, not in warranty, no problem,... . "
"Example 2: state = to treate; substate could be to refund, to exchange, to "
"repair,..."
msgstr ""
"Seleccione un sub-estado para detallar el estado estandar. Por ejemplo: "
"Estado = rechazado; Sub-estado, garantía agotada, fuera de garantía, sin "
"problema..."
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Select exchange lines to add in picking"
msgstr "Seleccionar las líneas de cambio para añadir envío"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Draft"
msgstr "Borrador"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim14
msgid "Could Not Ship"
msgstr "No pudo enviarse"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_claim_line
msgid "List of product to return"
msgstr "Listado de productos a devolver"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim10
msgid "No Inventory"
msgstr "Sin Stock"
#. module: crm_claim_rma
#: field:claim.line,unit_sale_price:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_unit_sale_price
msgid "Unit sale price"
msgstr "Precio de venta unitario"
#. module: crm_claim_rma
#: help:claim.line,refund_line_id:0
msgid "The refund line related to the returned product"
msgstr "La línea de abono relacionada con el producto devuelto"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:245
#, python-format
msgid "expired"
msgstr "expirado"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking_in
msgid "Incoming Shipments"
msgstr "Albaranes de entrada"
#. module: crm_claim_rma
#: help:substate.substate,substate_descr:0
msgid "To give more information about the sub state"
msgstr "Permite ampliar la información del sub-estado"
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_substates
msgid "Claim line substates"
msgstr "Sub-estados de la reclamación"
#. module: crm_claim_rma
#: help:claim_make_picking.wizard,claim_line_source_location:0
msgid "Location where the returned products are from."
msgstr "Localización desde la que vienen los productos devueltos."
#. module: crm_claim_rma
#: field:crm.claim,picking_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_picking_ids
#: view:stock.picking.in:0
#: view:stock.picking.out:0
msgid "RMA"
msgstr "RMA"
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
msgid "Brand manufacturer"
msgstr "Fabricante"
#. module: crm_claim_rma
#: field:claim.line,prodlot_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_prodlot_id
msgid "Serial/Lot n°"
msgstr "N° de serie/lote:"
#. module: crm_claim_rma
#: help:claim.line,unit_sale_price:0
msgid ""
"Unit sale price of the product. Auto filled if retrun done by invoice "
"selection. Be careful and check the automatic value as don't take into "
"account previous refunds, invoice discount, can be for 0 if product for "
"free,..."
msgstr ""
"Precio de venta unitario del producto. Auto-completado si la devolución se "
"realizó por selección de factura. Tenga cuidado y compruebe el valor "
"automático, ya que no tiene en cuenta facturas rectificativas previas, "
"descuento de facturas, puede ser 0 si el producto es gratuito, etc..."
#. module: crm_claim_rma
#: sql_constraint:crm.claim:0
msgid "Number/Reference must be unique per Company!"
msgstr "El número/referencia debe ser único por compañía"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:313
#, python-format
msgid "Please set product and invoice."
msgstr "Establezca por favor producto y factura."
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Damaged delivered product"
msgstr "Producto enviado dañado"
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_ids:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_case_claim_lines
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_ids
msgid "Claim lines"
msgstr "Líneas de reclamación"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:341
#, python-format
msgid "There is no warehouse for the current user's company."
msgstr "No hay almacén definido para la compañía del usuario actual"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:223
#: code:addons/crm_claim_rma/crm_claim_rma.py:233
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:72
#, python-format
msgid "Error"
msgstr "Error"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Action"
msgstr "Acción"
#. module: crm_claim_rma
#: view:claim.line:0
#: view:crm.claim:0
msgid "Claims"
msgstr "Reclamaciones"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Problem"
msgstr "Problema"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Treated"
msgstr "Tratado"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim16
msgid "Merchandise Not Received"
msgstr "Mercancía no recibida"
#. module: crm_claim_rma
#: help:crm.claim,number:0
msgid "Company internal claim unique number"
msgstr "Número único de reclamación interno en la compañia"
#. module: crm_claim_rma
#: model:ir.ui.menu,name:crm_claim_rma.menu_crm_case_claims_claim_line_substates
msgid "Returned line substates"
msgstr "Sub-estados para lineas devueltas"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Substate"
msgstr "Sub-estado"
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_invoice_out
msgid "Customer Invoices"
msgstr "Facturas de cliente"
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_source_location:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_source_location
msgid "Source Location"
msgstr "Localización de origen"
#. module: crm_claim_rma
#: field:crm.claim,number:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_number
msgid "Number"
msgstr "Número"
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_picking_out
msgid "Deliveries"
msgstr "Entregas"
#. module: crm_claim_rma
#: view:claim.line:0
#: field:crm.claim,invoice_id:0
#: model:ir.model,name:crm_claim_rma.model_account_invoice
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_invoice_id
msgid "Invoice"
msgstr "Factura"
#. module: crm_claim_rma
#: help:claim.line,invoice_line_id:0
msgid "The invoice line related to the returned product"
msgstr "La línea de factura relacionada con el producto devuelto"
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Cancel"
msgstr "Cancelar"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim21
msgid "Missed Fulfilment Promise"
msgstr "Incumplimiento de la respuesta"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "In Progress"
msgstr "En progreso"
#. module: crm_claim_rma
#: model:crm.case.section,name:crm_claim_rma.section_after_sales_service
msgid "After Sales Service"
msgstr "Servicio Post-venta"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Received, to control"
msgstr "Recibido, para control"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim17
msgid "Merchandise Not As Described"
msgstr "El producto no se corresponde con la descripción"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Exchange request"
msgstr "Solicitar cambio"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_substate_substate
msgid "substate that precise a given state"
msgstr "Los sub-estados necesitan un estado padre"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:226
#, python-format
msgid "not_define"
msgstr "sin_definir"
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.action_claim_picking_in
msgid "Return Products"
msgstr "Productos devueltos"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Current"
msgstr "Actual"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
#: selection:crm.claim,claim_type:0
msgid "Other"
msgstr "Otro"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Products Return"
msgstr "Nueva devolución de productos"
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_invoice_in
msgid "Supplier Invoices"
msgstr "Facturas de proveedor"
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,product_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_product_id
msgid "Product"
msgstr "Producto"
#. module: crm_claim_rma
#: field:claim.line,name:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_name
#: model:ir.model.fields,field_description:crm_claim_rma.field_substate_substate_substate_descr
#: field:substate.substate,substate_descr:0
msgid "Description"
msgstr "Descripción"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Search Claims"
msgstr "Buscar reclamaciones"
#. module: crm_claim_rma
#: field:crm.claim,claim_type:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_claim_type
msgid "Claim type"
msgstr "Tipo de reclamación"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:196
#, python-format
msgid ""
"A product return cannot be created for various destination locations, please "
"choose line with a same destination location."
msgstr ""
"No se puede crear una devolución de productos para múltiples ubicación "
"destino. Escoja por favor una línea con la misma ubicación destino."
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:247
#, python-format
msgid "valid"
msgstr "válido"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:340
#, python-format
msgid "Error!"
msgstr "Error"
#. module: crm_claim_rma
#: help:claim.line,location_dest_id:0
msgid "The return stock location of the returned product"
msgstr "La ubicación de existencias para el producto devuelto"
#. module: crm_claim_rma
#: help:claim.line,warning:0
msgid "If warranty has expired"
msgstr "Si la garantía ha vencido"
#. module: crm_claim_rma
#: help:claim.line,warranty_return_partner:0
msgid "Where the customer has to send back the product(s)"
msgstr "Dirección a la que el cliente debe remitir el producto"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Follow Up"
msgstr "Seguimiento"
#. module: crm_claim_rma
#: selection:crm.claim,claim_type:0
msgid "Customer"
msgstr "Cliente"
#. module: crm_claim_rma
#: field:claim.line,move_out_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_move_out_id
msgid "Move Line from picking out"
msgstr "Ubicación para envío"
#. module: crm_claim_rma
#: view:crm.claim:0
#: field:crm.claim,invoice_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_invoice_ids
msgid "Refunds"
msgstr "Abonos"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_account_invoice_refund
msgid "Invoice Refund"
msgstr "Abono de factura"
#. module: crm_claim_rma
#: field:claim.line,return_value:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_return_value
msgid "Total return"
msgstr "Total devuelto"
#. module: crm_claim_rma
#: help:claim.line,return_value:0
msgid "Quantity returned * Unit sold price"
msgstr "Cantidad devuelta * precio de venta unitario"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim19
msgid "Shipping Address Undeliverable"
msgstr "Dirección de envío inexistente"
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_picking_in
msgid "Incoming Shipment and Returns"
msgstr ""
#. module: crm_claim_rma
#: view:stock.picking.out:0
msgid "Delivery orders to invoice"
msgstr "Ordenes de entrega a facturar"
#. module: crm_claim_rma
#: help:claim.line,move_in_id:0
#: help:claim.line,move_out_id:0
msgid "The move line related to the returned product"
msgstr "Línea de traslado relacionada con el producto devuelto"
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "or"
msgstr "o"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Sales Team"
msgstr "Equipo de ventas"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim15
msgid "Different Item"
msgstr "Artículo diferente"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_claim_make_picking_wizard
msgid "Wizard to create pickings from claim lines"
msgstr "Asistente para crear envíos desde la línea de reclamación"
#. module: crm_claim_rma
#: help:crm.claim,claim_type:0
msgid ""
"Customer: from customer to company.\n"
" Supplier: from company to supplier."
msgstr ""
"Cliente: del cliente a la compañía.\n"
"Proveedor: de la compañía al proveedor."
#. module: crm_claim_rma
#: view:claim.line:0
msgid "In Progress Claims"
msgstr "Reclamaciones en proceso"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:234
#, python-format
msgid "The product has no supplier configured."
msgstr "El producto no tiene proveedor configurado."

View File

@@ -1,943 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * crm_claim_rma
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-20 18:21+0000\n"
"PO-Revision-Date: 2014-04-19 04:31+0000\n"
"Last-Translator: Yannickvaucher <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-05-24 06:50+0000\n"
"X-Generator: Launchpad (build 17017)\n"
"Language: \n"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Returned good"
msgstr "Marchandise retournée"
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Locations"
msgstr "Emplacements"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Draft and Open Claims"
msgstr "Crée et ouvre réclamations"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Group By..."
msgstr "Regrouper Par..."
#. module: crm_claim_rma
#: help:claim.line,claim_descr:0
msgid "More precise description of the problem"
msgstr "Description plus précise du problème"
#. module: crm_claim_rma
#: field:claim.line,guarantee_limit:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_guarantee_limit
msgid "Warranty limit"
msgstr "Limite de la garantie"
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
#: selection:crm.claim,claim_type:0
msgid "Supplier"
msgstr "Fournisseur"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Refused"
msgstr "Refusé"
#. module: crm_claim_rma
#: view:stock.picking.in:0
#: view:stock.picking.out:0
msgid "To Invoice"
msgstr "Vers facturation"
#. module: crm_claim_rma
#: field:claim.line,refund_line_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_refund_line_id
msgid "Refund Line"
msgstr "Ligne d'avoir"
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
msgid "Company"
msgstr "Société"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Order cancellation"
msgstr "Annulation de la commande"
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_dest_location:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_dest_location
msgid "Dest. Location"
msgstr "Emplacement de destination"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:224
#, python-format
msgid "Cannot find any date for invoice. Must be a validated invoice."
msgstr "Pas de dates pour la facture ! La facture doit être valide !"
#. module: crm_claim_rma
#: field:claim.line,last_state_change:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_last_state_change
msgid "Last change"
msgstr "Dernière modification"
#. module: crm_claim_rma
#: help:claim.line,product_id:0
msgid "Returned product"
msgstr "Produit retourné"
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Create picking"
msgstr "Créer expédition/réception"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Claim Line"
msgstr "Lignes de réclamations"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Delivery"
msgstr "Nouvelle livraison"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Calculate warranty state"
msgstr "Calcul de l'état de la garantie"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/account_invoice.py:77
#, python-format
msgid "A refund has already been created for this claim !"
msgstr "Un avoir a déjà été créé pour cette réclamation !"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Compute Waranty"
msgstr ""
#. module: crm_claim_rma
#: field:account.invoice,claim_id:0
#: model:ir.model,name:crm_claim_rma.model_crm_claim
#: model:ir.model.fields,field_description:crm_claim_rma.field_account_invoice_claim_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id_4030
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id_4031
#: field:stock.picking,claim_id:0
#: field:stock.picking.in,claim_id:0
#: field:stock.picking.out,claim_id:0
msgid "Claim"
msgstr "Réclamation"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim13
msgid "General Adjustement"
msgstr "Ajustement général"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:204
#, python-format
msgid ""
"A product return cannot be created for various destination addresses, please "
"choose line with a same address."
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.action_claim_picking_out
msgid "Create Outgoing Shipments"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,warning:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warning
msgid "Warranty"
msgstr "Garantie"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim11
msgid "Customer Return"
msgstr "Retour client"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_move
msgid "Stock Move"
msgstr "Mouvement de stock"
#. module: crm_claim_rma
#: help:claim.line,product_returned_quantity:0
msgid "Quantity of product returned"
msgstr "Quantité de produit retournés"
#. module: crm_claim_rma
#: field:crm.claim,planned_cost:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_planned_cost
msgid "Expected cost"
msgstr "Coût prévisionnel"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Receptions / Deliveries"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,warranty_type:0
msgid ""
"Who is in charge of the warranty return treatment towards the end customer. "
"Company will use the current company delivery or default address and so on "
"for supplier and brand manufacturer. Does not necessarily mean that the "
"warranty to be applied is the one of the return partner (ie: can be returned "
"to the company and be under the brand warranty"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking_out
msgid "Delivery Orders"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,last_state_change:0
msgid "To set the last state / substate change"
msgstr "Pour définir le derniere changement d'état ou de sous-état"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Not specified"
msgstr "Non spécifié"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Returned lines"
msgstr "Lignes retournées"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Claim n°"
msgstr "Réclamation n°"
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,state:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_state
msgid "State"
msgstr "Etat"
#. module: crm_claim_rma
#: field:claim.line,applicable_guarantee:0
#: field:claim.line,warranty_type:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_applicable_guarantee
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warranty_type
msgid "Warranty type"
msgstr "Type de garantie"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking
msgid "Picking List"
msgstr "Opération de manutention"
#. module: crm_claim_rma
#: field:crm.claim,warehouse_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_warehouse_id
msgid "Warehouse"
msgstr "Entrepôt"
#. module: crm_claim_rma
#: help:claim.line,claim_origine:0
msgid "To describe the line product problem"
msgstr "Pour décrire le problème de la ligne de produit"
#. module: crm_claim_rma
#: help:claim_make_picking.wizard,claim_line_dest_location:0
msgid "Location where the system will stock the returned products."
msgstr ""
"Emplacement vers lequel le système va stocker les produits retournés."
#. module: crm_claim_rma
#: view:claim.line:0
msgid "More"
msgstr "Plus"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Legal retractation"
msgstr "Rétracation légale"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/account_invoice.py:76
#: code:addons/crm_claim_rma/crm_claim_rma.py:312
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:195
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:203
#, python-format
msgid "Error !"
msgstr "Erreur !"
#. module: crm_claim_rma
#: help:claim.line,guarantee_limit:0
msgid ""
"The warranty limit is computed as: invoice date + warranty defined on "
"selected product."
msgstr ""
"La limite de garantie est calculé comme: date de facture + garantie définie "
"dans le produit sélectionné."
#. module: crm_claim_rma
#: field:claim.line,claim_origine:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_origine
msgid "Claim Subject"
msgstr "Sujet de la réclamation"
#. module: crm_claim_rma
#: field:crm.claim,real_cost:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_real_cost
msgid "Real cost"
msgstr "Coût réél"
#. module: crm_claim_rma
#: help:claim.line,claim_id:0
msgid "To link to the case.claim object"
msgstr "A relier à l'objet case.claim"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:73
#, python-format
msgid "A picking has already been created for this claim."
msgstr "Une expédition/réception à déjà été créée pour cette réclamation !"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim18
msgid "Pricing Error"
msgstr "Erreur d'établissement des prix"
#. module: crm_claim_rma
#: field:claim.line,product_returned_quantity:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_product_returned_quantity
msgid "Quantity"
msgstr "Quantité"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Confirmed, waiting for product"
msgstr "Confirmé, attente du produit"
#. module: crm_claim_rma
#: field:crm.claim,claim_line_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_claim_line_ids
#: model:ir.ui.menu,name:crm_claim_rma.menu_crm_case_claims_claim_lines
msgid "Return lines"
msgstr "Lignes de retour"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Stage"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,planned_revenue:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_planned_revenue
msgid "Expected revenue"
msgstr "Revenu attendu"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Controlled, to treate"
msgstr "Contrôlé, à traiter"
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_refunds_out
msgid "Customer Refunds"
msgstr "Remboursements client"
#. module: crm_claim_rma
#: field:claim.line,location_dest_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_location_dest_id
msgid "Return Stock Location"
msgstr "Emplacement stock de retour"
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_sale_orders
msgid "Quotations and Sales"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Lost during transport"
msgstr "Perte pendant le transport"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Shipping error"
msgstr "Erreur d'expédition"
#. module: crm_claim_rma
#: field:claim.line,warranty_return_partner:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warranty_return_partner
msgid "Warranty Address"
msgstr "Adresse de garantie"
#. module: crm_claim_rma
#: help:crm.claim,invoice_id:0
msgid "Related original Cusotmer invoice"
msgstr "Facture client dorigine liée"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim12
msgid "Buyer Cancelled"
msgstr "Annulation de l'acheteur"
#. module: crm_claim_rma
#: field:claim.line,claim_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_id
msgid "Related claim"
msgstr "Réclamation liée"
#. module: crm_claim_rma
#: field:claim.line,invoice_line_id:0
#: model:ir.model,name:crm_claim_rma.model_account_invoice_line
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_invoice_line_id
msgid "Invoice Line"
msgstr "Ligne de facture"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Linked Document"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,move_in_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_move_in_id
msgid "Move Line from picking in"
msgstr "Ligne de mouvement d'une réception"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim20
msgid "Delivered Late by Carrier"
msgstr "Livré en retard par le transporteur"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Product Return"
msgstr "Retour produit"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Generated Documents"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,prodlot_id:0
msgid "The serial/lot of the returned product"
msgstr "N° de série/lot du produit retourné"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Refund"
msgstr "Nouvel avoir"
#. module: crm_claim_rma
#: field:claim.line,substate_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_substate_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_substate_substate_name
#: field:substate.substate,name:0
msgid "Sub state"
msgstr "Sous-état"
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_refunds_in
msgid "Supplier Refunds"
msgstr "Remboursements Fournisseur"
#. module: crm_claim_rma
#: field:claim.line,claim_descr:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_descr
msgid "Claim description"
msgstr "Description de la réclamation"
#. module: crm_claim_rma
#: field:crm.claim,real_revenue:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_real_revenue
msgid "Real revenue"
msgstr "Revenu réél"
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Select lines for picking"
msgstr "Selectionner les lignes pour l'expédition/réception"
#. module: crm_claim_rma
#: help:claim.line,substate_id:0
msgid ""
"Select a sub state to precise the standard state. Example 1: state = "
"refused; substate could be warranty over, not in warranty, no problem,... . "
"Example 2: state = to treate; substate could be to refund, to exchange, to "
"repair,..."
msgstr ""
"Créer un sous-état pour préciser l'état standard. Exemple 1 : Etat = refusé; "
"le sous-état peut être garantie expirée, pas de garantie, pas de "
"problème,... . Exemple 2 : état = à créer; le sous-état peut être : à "
"rembourser, à échanger, à réparer,..."
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Select exchange lines to add in picking"
msgstr "Selectionner les lignes à ajouter dans l'expédition/réception"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Draft"
msgstr "Brouillon"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim14
msgid "Could Not Ship"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_claim_line
msgid "List of product to return"
msgstr "Liste des produits à retourner"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim10
msgid "No Inventory"
msgstr "Plus de stock"
#. module: crm_claim_rma
#: field:claim.line,unit_sale_price:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_unit_sale_price
msgid "Unit sale price"
msgstr "Prix de vente unitaire"
#. module: crm_claim_rma
#: help:claim.line,refund_line_id:0
msgid "The refund line related to the returned product"
msgstr "Ligne d'avoir liée au produit retourné"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:245
#, python-format
msgid "expired"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking_in
msgid "Incoming Shipments"
msgstr ""
#. module: crm_claim_rma
#: help:substate.substate,substate_descr:0
msgid "To give more information about the sub state"
msgstr "Permet de donner plus d'information sur le sous état"
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_substates
msgid "Claim line substates"
msgstr "Sous-états des lignes de réclamations"
#. module: crm_claim_rma
#: help:claim_make_picking.wizard,claim_line_source_location:0
msgid "Location where the returned products are from."
msgstr "Emplacement d'ou les produits retournés proviennent."
#. module: crm_claim_rma
#: field:crm.claim,picking_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_picking_ids
#: view:stock.picking.in:0
#: view:stock.picking.out:0
msgid "RMA"
msgstr "RMA"
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
msgid "Brand manufacturer"
msgstr "Marque du fabricant"
#. module: crm_claim_rma
#: field:claim.line,prodlot_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_prodlot_id
msgid "Serial/Lot n°"
msgstr "N° de série/lot :"
#. module: crm_claim_rma
#: help:claim.line,unit_sale_price:0
msgid ""
"Unit sale price of the product. Auto filled if retrun done by invoice "
"selection. Be careful and check the automatic value as don't take into "
"account previous refunds, invoice discount, can be for 0 if product for "
"free,..."
msgstr ""
"Prix de vente unitaire du produit. Remplis automatiquement si le retour est "
"effectué avec la sélection de la facture. ETRE VIGILANT ET VERIFIER les "
"valeurs automatiques récupérée différentes des précédents avoir, réductions "
"sur la facture,..."
#. module: crm_claim_rma
#: sql_constraint:crm.claim:0
msgid "Number/Reference must be unique per Company!"
msgstr "La référence doit être unique par société !"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:313
#, python-format
msgid "Please set product and invoice."
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Damaged delivered product"
msgstr "Produit livré endommagé"
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_ids:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_case_claim_lines
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_ids
msgid "Claim lines"
msgstr "Lignes de réclamations"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:341
#, python-format
msgid "There is no warehouse for the current user's company."
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:223
#: code:addons/crm_claim_rma/crm_claim_rma.py:233
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:72
#, python-format
msgid "Error"
msgstr "Erreur !"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Action"
msgstr "Action"
#. module: crm_claim_rma
#: view:claim.line:0
#: view:crm.claim:0
msgid "Claims"
msgstr "Réclamation"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Problem"
msgstr "Problème"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Treated"
msgstr "Traité"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim16
msgid "Merchandise Not Received"
msgstr "Marchandise non reçue"
#. module: crm_claim_rma
#: help:crm.claim,number:0
msgid "Company internal claim unique number"
msgstr "Numéro unique de réclamation interne à la société"
#. module: crm_claim_rma
#: model:ir.ui.menu,name:crm_claim_rma.menu_crm_case_claims_claim_line_substates
msgid "Returned line substates"
msgstr "Sous-états des lignes"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Substate"
msgstr "Sous-état"
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_invoice_out
msgid "Customer Invoices"
msgstr "Factures client"
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_source_location:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_source_location
msgid "Source Location"
msgstr "Emplacement source"
#. module: crm_claim_rma
#: field:crm.claim,number:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_number
msgid "Number"
msgstr "Numéro"
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_picking_out
msgid "Deliveries"
msgstr "Livraisons"
#. module: crm_claim_rma
#: view:claim.line:0
#: field:crm.claim,invoice_id:0
#: model:ir.model,name:crm_claim_rma.model_account_invoice
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_invoice_id
msgid "Invoice"
msgstr "Facture"
#. module: crm_claim_rma
#: help:claim.line,invoice_line_id:0
msgid "The invoice line related to the returned product"
msgstr "La ligne de facture reliée au produit retourné"
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Cancel"
msgstr "Annuler"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim21
msgid "Missed Fulfilment Promise"
msgstr "Promesse de traitement non tenue"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "In Progress"
msgstr "En cours"
#. module: crm_claim_rma
#: model:crm.case.section,name:crm_claim_rma.section_after_sales_service
msgid "After Sales Service"
msgstr "Service-après-vente"
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Received, to control"
msgstr "Reçu, à contrôler"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim17
msgid "Merchandise Not As Described"
msgstr "Produit ne correspondant pas à sa description"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Exchange request"
msgstr "Demande d'échange"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_substate_substate
msgid "substate that precise a given state"
msgstr "Sous état précisant l'état principal"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:226
#, python-format
msgid "not_define"
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.action_claim_picking_in
msgid "Return Products"
msgstr "Produit retourné"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Current"
msgstr "Actuel"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
#: selection:crm.claim,claim_type:0
msgid "Other"
msgstr "Autre"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Products Return"
msgstr "Nouveau retour produit"
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_invoice_in
msgid "Supplier Invoices"
msgstr "Factures fournisseurs"
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,product_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_product_id
msgid "Product"
msgstr "Produit"
#. module: crm_claim_rma
#: field:claim.line,name:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_name
#: model:ir.model.fields,field_description:crm_claim_rma.field_substate_substate_substate_descr
#: field:substate.substate,substate_descr:0
msgid "Description"
msgstr "Description"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Search Claims"
msgstr "Recherche réclamations"
#. module: crm_claim_rma
#: field:crm.claim,claim_type:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_claim_type
msgid "Claim type"
msgstr "Type de réclamation"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:196
#, python-format
msgid ""
"A product return cannot be created for various destination locations, please "
"choose line with a same destination location."
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:247
#, python-format
msgid "valid"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:340
#, python-format
msgid "Error!"
msgstr "Erreur !"
#. module: crm_claim_rma
#: help:claim.line,location_dest_id:0
msgid "The return stock location of the returned product"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,warning:0
msgid "If warranty has expired"
msgstr "Si la garantie a expirée"
#. module: crm_claim_rma
#: help:claim.line,warranty_return_partner:0
msgid "Where the customer has to send back the product(s)"
msgstr "Adresse vers laquelle le client doit renvoyer le(s) produit(s)"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Follow Up"
msgstr ""
#. module: crm_claim_rma
#: selection:crm.claim,claim_type:0
msgid "Customer"
msgstr "Client"
#. module: crm_claim_rma
#: field:claim.line,move_out_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_move_out_id
msgid "Move Line from picking out"
msgstr "Ligne de mouvement à partir d'une expédition"
#. module: crm_claim_rma
#: view:crm.claim:0
#: field:crm.claim,invoice_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_invoice_ids
msgid "Refunds"
msgstr "Avoirs"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_account_invoice_refund
msgid "Invoice Refund"
msgstr "Avoir"
#. module: crm_claim_rma
#: field:claim.line,return_value:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_return_value
msgid "Total return"
msgstr "Retour total"
#. module: crm_claim_rma
#: help:claim.line,return_value:0
msgid "Quantity returned * Unit sold price"
msgstr "Quantité retournée * Prix de vente unitaire"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim19
msgid "Shipping Address Undeliverable"
msgstr "Mauvaise adresse de livraison"
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_picking_in
msgid "Incoming Shipment and Returns"
msgstr ""
#. module: crm_claim_rma
#: view:stock.picking.out:0
msgid "Delivery orders to invoice"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,move_in_id:0
#: help:claim.line,move_out_id:0
msgid "The move line related to the returned product"
msgstr "La ligne de mouvement liée au produit retourné"
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "or"
msgstr "ou"
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Sales Team"
msgstr "Équipe de vente"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim15
msgid "Different Item"
msgstr "Article différent"
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.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_claim_rma
#: help:crm.claim,claim_type:0
msgid ""
"Customer: from customer to company.\n"
" Supplier: from company to supplier."
msgstr ""
"client : du client vers l'entreprise.\n"
" fournisseur : de l'entreprise vers son fournisseur"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "In Progress Claims"
msgstr "Réclamations en cours"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:234
#, python-format
msgid "The product has no supplier configured."
msgstr "Le produit n'a pas de fournisseur défini."

View File

@@ -1,928 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * crm_claim
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 7.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-12-20 18:21+0000\n"
"PO-Revision-Date: 2014-01-22 19:16+0000\n"
"Last-Translator: Joël Grand-Guillaume @ camptocamp "
"<joel.grandguillaume@camptocamp.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2014-05-24 06:50+0000\n"
"X-Generator: Launchpad (build 17017)\n"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Returned good"
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Locations"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Draft and Open Claims"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Group By..."
msgstr "Agrupar por..."
#. module: crm_claim_rma
#: help:claim.line,claim_descr:0
msgid "More precise description of the problem"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,guarantee_limit:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_guarantee_limit
msgid "Warranty limit"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
#: selection:crm.claim,claim_type:0
msgid "Supplier"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Refused"
msgstr ""
#. module: crm_claim_rma
#: view:stock.picking.in:0
#: view:stock.picking.out:0
msgid "To Invoice"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,refund_line_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_refund_line_id
msgid "Refund Line"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
msgid "Company"
msgstr "Empresa"
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Order cancellation"
msgstr ""
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_dest_location:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_dest_location
msgid "Dest. Location"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:224
#, python-format
msgid "Cannot find any date for invoice. Must be a validated invoice."
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,last_state_change:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_last_state_change
msgid "Last change"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,product_id:0
msgid "Returned product"
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Create picking"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Claim Line"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Delivery"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Calculate warranty state"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/account_invoice.py:77
#, python-format
msgid "A refund has already been created for this claim !"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Compute Waranty"
msgstr ""
#. module: crm_claim_rma
#: field:account.invoice,claim_id:0
#: model:ir.model,name:crm_claim_rma.model_crm_claim
#: model:ir.model.fields,field_description:crm_claim_rma.field_account_invoice_claim_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id_4030
#: model:ir.model.fields,field_description:crm_claim_rma.field_stock_picking_claim_id_4031
#: field:stock.picking,claim_id:0
#: field:stock.picking.in,claim_id:0
#: field:stock.picking.out,claim_id:0
msgid "Claim"
msgstr "Solicitação"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim13
msgid "General Adjustement"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:204
#, python-format
msgid ""
"A product return cannot be created for various destination addresses, please "
"choose line with a same address."
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.action_claim_picking_out
msgid "Create Outgoing Shipments"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,warning:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warning
msgid "Warranty"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim11
msgid "Customer Return"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_move
msgid "Stock Move"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,product_returned_quantity:0
msgid "Quantity of product returned"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,planned_cost:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_planned_cost
msgid "Expected cost"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Receptions / Deliveries"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,warranty_type:0
msgid ""
"Who is in charge of the warranty return treatment towards the end customer. "
"Company will use the current company delivery or default address and so on "
"for supplier and brand manufacturer. Does not necessarily mean that the "
"warranty to be applied is the one of the return partner (ie: can be returned "
"to the company and be under the brand warranty"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking_out
msgid "Delivery Orders"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,last_state_change:0
msgid "To set the last state / substate change"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Not specified"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Returned lines"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Claim n°"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,state:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_state
msgid "State"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,applicable_guarantee:0
#: field:claim.line,warranty_type:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_applicable_guarantee
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warranty_type
msgid "Warranty type"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking
msgid "Picking List"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,warehouse_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_warehouse_id
msgid "Warehouse"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,claim_origine:0
msgid "To describe the line product problem"
msgstr ""
#. module: crm_claim_rma
#: help:claim_make_picking.wizard,claim_line_dest_location:0
msgid "Location where the system will stock the returned products."
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "More"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Legal retractation"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/account_invoice.py:76
#: code:addons/crm_claim_rma/crm_claim_rma.py:312
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:195
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:203
#, python-format
msgid "Error !"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,guarantee_limit:0
msgid ""
"The warranty limit is computed as: invoice date + warranty defined on "
"selected product."
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,claim_origine:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_origine
msgid "Claim Subject"
msgstr "Assunto da Solicitação"
#. module: crm_claim_rma
#: field:crm.claim,real_cost:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_real_cost
msgid "Real cost"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,claim_id:0
msgid "To link to the case.claim object"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:73
#, python-format
msgid "A picking has already been created for this claim."
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim18
msgid "Pricing Error"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,product_returned_quantity:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_product_returned_quantity
msgid "Quantity"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Confirmed, waiting for product"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,claim_line_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_claim_line_ids
#: model:ir.ui.menu,name:crm_claim_rma.menu_crm_case_claims_claim_lines
msgid "Return lines"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Stage"
msgstr "Estágio"
#. module: crm_claim_rma
#: field:crm.claim,planned_revenue:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_planned_revenue
msgid "Expected revenue"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Controlled, to treate"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_refunds_out
msgid "Customer Refunds"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,location_dest_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_location_dest_id
msgid "Return Stock Location"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_sale_orders
msgid "Quotations and Sales"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Lost during transport"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Shipping error"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,warranty_return_partner:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_warranty_return_partner
msgid "Warranty Address"
msgstr ""
#. module: crm_claim_rma
#: help:crm.claim,invoice_id:0
msgid "Related original Cusotmer invoice"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim12
msgid "Buyer Cancelled"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,claim_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_id
msgid "Related claim"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,invoice_line_id:0
#: model:ir.model,name:crm_claim_rma.model_account_invoice_line
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_invoice_line_id
msgid "Invoice Line"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Linked Document"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,move_in_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_move_in_id
msgid "Move Line from picking in"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim20
msgid "Delivered Late by Carrier"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Product Return"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Generated Documents"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,prodlot_id:0
msgid "The serial/lot of the returned product"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Refund"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,substate_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_substate_id
#: model:ir.model.fields,field_description:crm_claim_rma.field_substate_substate_name
#: field:substate.substate,name:0
msgid "Sub state"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_refunds_in
msgid "Supplier Refunds"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,claim_descr:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_claim_descr
msgid "Claim description"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,real_revenue:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_real_revenue
msgid "Real revenue"
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Select lines for picking"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,substate_id:0
msgid ""
"Select a sub state to precise the standard state. Example 1: state = "
"refused; substate could be warranty over, not in warranty, no problem,... . "
"Example 2: state = to treate; substate could be to refund, to exchange, to "
"repair,..."
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Select exchange lines to add in picking"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Draft"
msgstr "Provisório"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim14
msgid "Could Not Ship"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_claim_line
msgid "List of product to return"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim10
msgid "No Inventory"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,unit_sale_price:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_unit_sale_price
msgid "Unit sale price"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,refund_line_id:0
msgid "The refund line related to the returned product"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:245
#, python-format
msgid "expired"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_stock_picking_in
msgid "Incoming Shipments"
msgstr ""
#. module: crm_claim_rma
#: help:substate.substate,substate_descr:0
msgid "To give more information about the sub state"
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_substates
msgid "Claim line substates"
msgstr ""
#. module: crm_claim_rma
#: help:claim_make_picking.wizard,claim_line_source_location:0
msgid "Location where the returned products are from."
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,picking_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_picking_ids
#: view:stock.picking.in:0
#: view:stock.picking.out:0
msgid "RMA"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,applicable_guarantee:0
msgid "Brand manufacturer"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,prodlot_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_prodlot_id
msgid "Serial/Lot n°"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,unit_sale_price:0
msgid ""
"Unit sale price of the product. Auto filled if retrun done by invoice "
"selection. Be careful and check the automatic value as don't take into "
"account previous refunds, invoice discount, can be for 0 if product for "
"free,..."
msgstr ""
#. module: crm_claim_rma
#: sql_constraint:crm.claim:0
msgid "Number/Reference must be unique per Company!"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:313
#, python-format
msgid "Please set product and invoice."
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Damaged delivered product"
msgstr ""
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_ids:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_case_claim_lines
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_ids
msgid "Claim lines"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:341
#, python-format
msgid "There is no warehouse for the current user's company."
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:223
#: code:addons/crm_claim_rma/crm_claim_rma.py:233
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:72
#, python-format
msgid "Error"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Action"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
#: view:crm.claim:0
msgid "Claims"
msgstr "Solicitações"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Problem"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Treated"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim16
msgid "Merchandise Not Received"
msgstr ""
#. module: crm_claim_rma
#: help:crm.claim,number:0
msgid "Company internal claim unique number"
msgstr ""
#. module: crm_claim_rma
#: model:ir.ui.menu,name:crm_claim_rma.menu_crm_case_claims_claim_line_substates
msgid "Returned line substates"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Substate"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_invoice_out
msgid "Customer Invoices"
msgstr ""
#. module: crm_claim_rma
#: field:claim_make_picking.wizard,claim_line_source_location:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_make_picking_wizard_claim_line_source_location
msgid "Source Location"
msgstr ""
#. module: crm_claim_rma
#: field:crm.claim,number:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_number
msgid "Number"
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_picking_out
msgid "Deliveries"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
#: field:crm.claim,invoice_id:0
#: model:ir.model,name:crm_claim_rma.model_account_invoice
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_invoice_id
msgid "Invoice"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,invoice_line_id:0
msgid "The invoice line related to the returned product"
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "Cancel"
msgstr "Cancelar"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim21
msgid "Missed Fulfilment Promise"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "In Progress"
msgstr "Em Andamento"
#. module: crm_claim_rma
#: model:crm.case.section,name:crm_claim_rma.section_after_sales_service
msgid "After Sales Service"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,state:0
msgid "Received, to control"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim17
msgid "Merchandise Not As Described"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
msgid "Exchange request"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_substate_substate
msgid "substate that precise a given state"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:226
#, python-format
msgid "not_define"
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.action_claim_picking_in
msgid "Return Products"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Current"
msgstr ""
#. module: crm_claim_rma
#: selection:claim.line,claim_origine:0
#: selection:crm.claim,claim_type:0
msgid "Other"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "New Products Return"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_invoice_in
msgid "Supplier Invoices"
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
#: field:claim.line,product_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_product_id
msgid "Product"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,name:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_name
#: model:ir.model.fields,field_description:crm_claim_rma.field_substate_substate_substate_descr
#: field:substate.substate,substate_descr:0
msgid "Description"
msgstr "Descrição"
#. module: crm_claim_rma
#: view:claim.line:0
msgid "Search Claims"
msgstr "Pesquisar Solicitações"
#. module: crm_claim_rma
#: field:crm.claim,claim_type:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_claim_type
msgid "Claim type"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/wizard/claim_make_picking.py:196
#, python-format
msgid ""
"A product return cannot be created for various destination locations, please "
"choose line with a same destination location."
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:247
#, python-format
msgid "valid"
msgstr ""
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:340
#, python-format
msgid "Error!"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,location_dest_id:0
msgid "The return stock location of the returned product"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,warning:0
msgid "If warranty has expired"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,warranty_return_partner:0
msgid "Where the customer has to send back the product(s)"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Follow Up"
msgstr "Lembrete"
#. module: crm_claim_rma
#: selection:crm.claim,claim_type:0
msgid "Customer"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,move_out_id:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_move_out_id
msgid "Move Line from picking out"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
#: field:crm.claim,invoice_ids:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_crm_claim_invoice_ids
msgid "Refunds"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_account_invoice_refund
msgid "Invoice Refund"
msgstr ""
#. module: crm_claim_rma
#: field:claim.line,return_value:0
#: model:ir.model.fields,field_description:crm_claim_rma.field_claim_line_return_value
msgid "Total return"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,return_value:0
msgid "Quantity returned * Unit sold price"
msgstr ""
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim19
msgid "Shipping Address Undeliverable"
msgstr ""
#. module: crm_claim_rma
#: model:ir.actions.act_window,name:crm_claim_rma.act_crm_claim_rma_picking_in
msgid "Incoming Shipment and Returns"
msgstr ""
#. module: crm_claim_rma
#: view:stock.picking.out:0
msgid "Delivery orders to invoice"
msgstr ""
#. module: crm_claim_rma
#: help:claim.line,move_in_id:0
#: help:claim.line,move_out_id:0
msgid "The move line related to the returned product"
msgstr ""
#. module: crm_claim_rma
#: view:claim_make_picking.wizard:0
msgid "or"
msgstr ""
#. module: crm_claim_rma
#: view:crm.claim:0
msgid "Sales Team"
msgstr "Equipe de Vendas"
#. module: crm_claim_rma
#: model:crm.case.categ,name:crm_claim_rma.categ_claim15
msgid "Different Item"
msgstr ""
#. module: crm_claim_rma
#: model:ir.model,name:crm_claim_rma.model_claim_make_picking_wizard
msgid "Wizard to create pickings from claim lines"
msgstr ""
#. module: crm_claim_rma
#: help:crm.claim,claim_type:0
msgid ""
"Customer: from customer to company.\n"
" Supplier: from company to supplier."
msgstr ""
#. module: crm_claim_rma
#: view:claim.line:0
msgid "In Progress Claims"
msgstr "Solicitações em Andamento"
#. module: crm_claim_rma
#: code:addons/crm_claim_rma/crm_claim_rma.py:234
#, python-format
msgid "The product has no supplier configured."
msgstr ""

View File

@@ -1,25 +0,0 @@
<?xml version="1.0"?>
<openerp>
<data>
<!-- Address list with details to help shipping address selection -->
<record id="view_partner_contact_tree" model="ir.ui.view">
<field name="name">res.partner.contact.tree</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<tree string="Contacts">
<field name="name"/>
<field name="function" invisible="1"/>
<field name="street"/>
<field name="zip"/>
<field name="city"/>
<field name="email"/>
<field name="user_id" invisible="1"/>
<field name="is_company" invisible="1"/>
<!--<field name="country" invisible="1"/>-->
<field name="country_id"/>
<field name="parent_id" invisible="1"/>
</tree>
</field>
</record>
</data>
</openerp>

View File

@@ -1,7 +0,0 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_substate_user","substate.substate.user","model_substate_substate","base.group_sale_salesman_all_leads","True","True","True",
"access_claim_line_user","claim.line.user","model_claim_line","base.group_sale_salesman_all_leads","True","True","True",
"access_substate_manager","substate.substate.manager","model_substate_substate","base.group_sale_manager","True","True","True","True"
"access_claim_line_manager","claim.line.manager","model_claim_line","base.group_sale_manager","True","True","True","True"
"access_substate_user","substate.substate.user","model_substate_substate","base.group_sale_salesman","True","True","True",
"access_claim_line_user","claim.line.user","model_claim_line","base.group_sale_salesman","True","True","True",
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_substate_user substate.substate.user model_substate_substate base.group_sale_salesman_all_leads True True True
3 access_claim_line_user claim.line.user model_claim_line base.group_sale_salesman_all_leads True True True
4 access_substate_manager substate.substate.manager model_substate_substate base.group_sale_manager True True True True
5 access_claim_line_manager claim.line.manager model_claim_line base.group_sale_manager True True True True
6 access_substate_user substate.substate.user model_substate_substate base.group_sale_salesman True True True
7 access_claim_line_user claim.line.user model_claim_line base.group_sale_salesman True True True

View File

@@ -1,60 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright 2015 Eezee-It
# Copyright 2013 Camptocamp
# Copyright 2009-2013 Akretion,
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
# Benoît Guillot, 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.models import Model, api
from openerp.fields import Many2one
class StockPicking(Model):
_inherit = "stock.picking"
claim_id = Many2one('crm.claim', string='Claim')
@api.model
def create(self, vals):
if ('name' not in vals) or (vals.get('name') == '/'):
sequence_obj = self.env['ir.sequence']
seq_obj_name = self._name
vals['name'] = sequence_obj.get(seq_obj_name)
picking = super(StockPicking, self).create(vals)
return picking
# This part concern the case of a wrong picking out. We need to create a new
# stock_move in a picking already open.
# In order to don't have to confirm the stock_move we override the create and
# confirm it at the creation only for this case
class StockMove(Model):
_inherit = "stock.move"
@api.model
def create(self, vals):
move = super(StockMove, self).create(vals)
if vals.get('picking_id'):
picking_obj = self.env['stock.picking']
picking = picking_obj.browse(vals['picking_id'])
if picking.claim_id and picking.picking_type_id.code == 'incoming':
move.write({'state': 'confirmed'})
return move

View File

@@ -1,56 +0,0 @@
-
In order to test the refund creation from a claim
-
I create a customer invoice
-
!record {model: account.invoice, id: account_invoice_claim_refund, view: account.invoice_form}:
payment_term: account.account_payment_term_advance
journal_id: account.sales_journal
partner_id: base.res_partner_3
name: 'Test Customer Invoice'
invoice_line:
- product_id: product.product_product_5
quantity: 10.0
- product_id: product.product_product_4
quantity: 5.0
-
I confirm the invoice
-
!workflow {model: account.invoice, action: invoice_open, ref: account_invoice_claim_refund}
-
I create a claim
-
!record {model: crm.claim, id: claim_refund}:
name: 'Angry Customer'
claim_type: customer
partner_id: base.res_partner_3
invoice_id: account_invoice_claim_refund
state: open
-
I prepare the wizard context.
-
!python {model: account.invoice.refund}: |
claim_lines = self.pool.get('claim.line').search(cr, uid, [('claim_id','=',ref('claim_refund'))])
context.update({'active_model': 'crm_claim', 'active_id': ref('claim_refund'), 'claim_id': ref('claim_refund'), 'claim_line_ids': [[4, claim_lines[0], False], [4, claim_lines[1], False]], 'invoice_ids':[ref('account_invoice_claim_refund')] })
-
I create a refund wizard
-
!record {model: account.invoice.refund, id: wizard_claim_refund}:
filter_refund: refund
description: 'claim refund'
-
I launch the refund wizard
-
!python {model: account.invoice.refund}: |
self.compute_refund(cr, uid, [ref('wizard_claim_refund')], 'refund', context=context)
-
I check that a refund linked to the claim has been created.
-
!python {model: account.invoice}: |
refund = self.search(cr, uid, [('type', '=', 'out_refund'),('claim_id', '=', ref('claim_refund'))])
assert refund, "The refund is created"
refund_line_ids = self.pool.get('account.invoice.line').search(cr, uid, [('invoice_id','=',refund[0])])
assert len(refund_line_ids) == 2, "It contains 2 lines, as excepted"
refund_lines = self.pool.get('account.invoice.line').browse(cr, uid, refund_line_ids)
assert ref('product.product_product_4') in [refund_lines[0].product_id.id, refund_lines[1].product_id.id], "First line is checked"
assert ref('product.product_product_5') in [refund_lines[0].product_id.id, refund_lines[1].product_id.id], "Second line is checked"

View File

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

View File

@@ -1,112 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Yannick Vaucher
# 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.tests import common
class test_lp_1282584(common.TransactionCase):
""" Test wizard open the right type of view
The wizard can generate picking.in and picking.out
Let's ensure it open the right view for each picking type
"""
def setUp(self):
super(test_lp_1282584, self).setUp()
cr, uid = self.cr, self.uid
self.WizardMakePicking = self.registry('claim_make_picking.wizard')
ClaimLine = self.registry('claim.line')
Claim = self.registry('crm.claim')
self.product_id = self.ref('product.product_product_4')
self.partner_id = self.ref('base.res_partner_12')
# Create the claim with a claim line
self.claim_id = Claim.create(
cr, uid,
{
'name': 'TEST CLAIM',
'number': 'TEST CLAIM',
'claim_type': 'customer',
'delivery_address_id': self.partner_id,
})
claim = Claim.browse(cr, uid, self.claim_id)
self.warehouse_id = claim.warehouse_id.id
self.claim_line_id = ClaimLine.create(
cr, uid,
{
'name': 'TEST CLAIM LINE',
'claim_origine': 'none',
'product_id': self.product_id,
'claim_id': self.claim_id,
'location_dest_id': claim.warehouse_id.lot_stock_id.id
})
def test_00(self):
"""Test wizard opened view model for a new product return
"""
cr, uid = self.cr, self.uid
wiz_context = {
'active_id': self.claim_id,
'partner_id': self.partner_id,
'warehouse_id': self.warehouse_id,
'picking_type': 'in',
}
wizard_id = self.WizardMakePicking.create(cr, uid, {
}, context=wiz_context)
res = self.WizardMakePicking.action_create_picking(
cr, uid, [wizard_id], context=wiz_context)
self.assertEquals(res.get('res_model'), 'stock.picking.in',
"Wrong model defined")
def test_01(self):
"""Test wizard opened view model for a new delivery
"""
cr, uid = self.cr, self.uid
WizardChangeProductQty = self.registry('stock.change.product.qty')
wiz_context = {'active_id': self.product_id}
wizard_chg_qty_id = WizardChangeProductQty.create(cr, uid, {
'product_id': self.product_id,
'new_quantity': 12})
WizardChangeProductQty.change_product_qty(cr, uid,
[wizard_chg_qty_id],
context=wiz_context)
wiz_context = {
'active_id': self.claim_id,
'partner_id': self.partner_id,
'warehouse_id': self.warehouse_id,
'picking_type': 'out',
}
wizard_id = self.WizardMakePicking.create(cr, uid, {
}, context=wiz_context)
res = self.WizardMakePicking.action_create_picking(
cr, uid, [wizard_id], context=wiz_context)
self.assertEquals(res.get('res_model'), 'stock.picking.out',
"Wrong model defined")

View File

@@ -1,26 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright 2015 Eezee-It
# Copyright 2013 Camptocamp
# Copyright 2009-2013 Akretion,
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
# Benoît Guillot, 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 . import claim_make_picking
from . import account_invoice_refund

View File

@@ -1,52 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright 2015 Eezee-It
# Copyright 2013 Camptocamp
# Copyright 2009-2013 Akretion,
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
# Benoît Guillot, 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.models import api, TransientModel
from openerp.fields import Char
class AccountInvoiceRefund(TransientModel):
_inherit = "account.invoice.refund"
@api.one
def _get_description(self):
context = self.env.context
if context is None:
context = {}
description = context.get('description') or ''
self.description = description
description = Char(default=_get_description)
@api.model
def compute_refund(self, mode='refund'):
context = self.env.context
if context is None:
context = {}
if context.get('invoice_ids'):
context['active_ids'] = context.get('invoice_ids')
return super(AccountInvoiceRefund, self).compute_refund(mode=mode)

View File

@@ -1,276 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright 2015 Eezee-It
# Copyright 2013 Camptocamp
# Copyright 2009-2013 Akretion,
# Author: Emmanuel Samyn, Raphaël Valyi, Sébastien Beau,
# Benoît Guillot, 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.models import api, TransientModel, _
from openerp.fields import Many2many, Many2one
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
from openerp import netsvc
import time
class ClaimMakePicking(TransientModel):
_name = 'claim_make_picking.wizard'
_description = 'Wizard to create pickings from claim lines'
# Get default source location
@api.one
def _get_source_loc(self):
loc_id = False
context = self.env.context
if context is None:
context = {}
warehouse_obj = self.env['stock.warehouse']
warehouse_id = context.get('warehouse_id')
if context.get('picking_type') == 'out':
loc_id = warehouse_obj.read(
warehouse_id, ['lot_stock_id'])['lot_stock_id'][0]
elif context.get('partner_id'):
loc_id = self.env['res.partner'].read(
context['partner_id'], ['property_stock_customer']
)['property_stock_customer'][0]
self.claim_line_source_location = loc_id
def _get_common_dest_location_from_line(self, line_ids):
"""Return the ID of the common location between all lines. If no common
destination was found, return False"""
loc_id = False
line_obj = self.env['claim.line']
line_location = []
for line in line_obj.browse(line_ids):
if line.location_dest_id.id not in line_location:
line_location.append(line.location_dest_id.id)
if len(line_location) == 1:
loc_id = line_location[0]
return loc_id
# Get default destination location
@api.one
def _get_dest_loc(self):
"""Return the location_id to use as destination.
If it's an outoing shippment: take the customer stock property
If it's an incoming shippment take the location_dest_id common to all
lines, or if different, return None."""
context = self.env.context
if context is None:
context = {}
loc_id = False
if context.get('picking_type') == 'out' and context.get('partner_id'):
loc_id = self.env['res.partner'].read(
context.get('partner_id'), ['property_stock_customer']
)['property_stock_customer'][0]
elif context.get('picking_type') == 'in' and context.get('partner_id'):
# Add the case of return to supplier !
line_ids = self._get_claim_lines()
loc_id = self._get_common_dest_location_from_line(line_ids)
self.claim_line_dest_location = loc_id
@api.one
def _get_claim_lines(self):
print "GET CLAIM LINES"
# TODO use custom states to show buttons of this wizard or not instead
# of raise an error
context = self.env.context
if context is None:
context = {}
line_obj = self.env['claim.line']
if context.get('picking_type') == 'out':
move_field = 'move_out_id'
else:
move_field = 'move_in_id'
good_lines = []
lines = line_obj.search(
[('claim_id', '=', context['active_id'])])
for line in lines:
if not line[move_field] or line[move_field].state == 'cancel':
good_lines.append(line.id)
if not good_lines:
raise Warning(
_('A picking has already been created for this claim.'))
print "LINES: ", good_lines
self.claim_line_ids = good_lines
claim_line_source_location = Many2one(
'stock.location', string='Source Location', required=True,
default='_get_source_loc',
help="Location where the returned products are from.")
claim_line_dest_location = Many2one(
'stock.location', string='Dest. Location', required=True,
default='_get_dest_loc',
help="Location where the system will stock the returned products.")
claim_line_ids = Many2many(
'claim.line',
'claim_line_picking',
'claim_picking_id',
'claim_line_id',
string='Claim lines', default=_get_claim_lines)
def _get_common_partner_from_line(self, line_ids):
"""Return the ID of the common partner between all lines. If no common
partner was found, return False"""
partner_id = False
line_obj = self.env['claim.line']
line_partner = []
for line in line_obj.browse(line_ids):
if (line.warranty_return_partner
and line.warranty_return_partner.id
not in line_partner):
line_partner.append(line.warranty_return_partner.id)
if len(line_partner) == 1:
partner_id = line_partner[0]
return partner_id
@api.multi
def action_cancel(self):
return {'type': 'ir.actions.act_window_close'}
# If "Create" button pressed
@api.model
def action_create_picking(self):
picking_obj = self.env['stock.picking']
context = self.env.context
if context is None:
context = {}
view_obj = self.env['ir.ui.view']
name = 'RMA picking out'
if context.get('picking_type') == 'out':
p_type = 'out'
write_field = 'move_out_id'
note = 'RMA picking out'
else:
p_type = 'in'
write_field = 'move_in_id'
if context.get('picking_type'):
note = 'RMA picking ' + str(context.get('picking_type'))
name = note
model = 'stock.picking.' + p_type
view_id = view_obj.search([
('model', '=', model),
('type', '=', 'form')
], limit=1).id
claim = self.env['crm.claim'].browse(context['active_id'])
partner_id = claim.delivery_address_id.id
wizard = self
claim_lines = wizard.clame_line_ids
# line_ids = [x.id for x in wizard.claim_line_ids]
# In case of product return, we don't allow one picking for various
# product if location are different
# or if partner address is different
if context.get('product_return'):
common_dest_loc_id = self._get_common_dest_location_from_line(
claim_lines.ids)
if not common_dest_loc_id:
raise Warning(
_('A product return cannot be created for various '
'destination locations, please choose line with a '
'same destination location.'))
claim_lines.auto_set_warranty()
common_dest_partner_id = self._get_common_partner_from_line(
claim_lines.ids)
if not common_dest_partner_id:
raise Warning(
_('A product return cannot be created for various '
'destination addresses, please choose line with a '
'same address.'))
partner_id = common_dest_partner_id
# create picking
picking = picking_obj.create(
{'origin': claim.number,
'type': p_type,
'move_type': 'one', # direct
'state': 'draft',
'date': time.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
'partner_id': partner_id,
'invoice_state': "none",
'company_id': claim.company_id.id,
'location_id': wizard.claim_line_source_location.id,
'location_dest_id': wizard.claim_line_dest_location.id,
'note': note,
'claim_id': claim.id,
}).id
# Create picking lines
fmt = DEFAULT_SERVER_DATETIME_FORMAT
for wizard_claim_line in wizard.claim_line_ids:
move_obj = self.env['stock.move']
move_id = move_obj.create(
{'name': wizard_claim_line.product_id.name_template,
'priority': '0',
'date': time.strftime(fmt),
'date_expected': time.strftime(fmt),
'product_id': wizard_claim_line.product_id.id,
'product_qty': wizard_claim_line.product_returned_quantity,
'product_uom': wizard_claim_line.product_id.uom_id.id,
'partner_id': partner_id,
'prodlot_id': wizard_claim_line.prodlot_id.id,
'picking_id': picking.id,
'state': 'draft',
'price_unit': wizard_claim_line.unit_sale_price,
'company_id': claim.company_id.id,
'location_id': wizard.claim_line_source_location.id,
'location_dest_id': wizard.claim_line_dest_location.id,
'note': note,
}).id
wizard_claim_line.write({write_field: move_id})
wf_service = netsvc.LocalService("workflow")
if picking:
cr, uid = self.env.cr, self.env.uid
wf_service.trg_validate(uid, 'stock.picking',
picking.id, 'button_confirm', cr)
picking.action_assign()
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': model,
'res_id': picking.id,
'type': 'ir.actions.act_window',
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@@ -1,53 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
crm_claim_rma for OpenERP
Copyright (c) 2015 Eezee-It (www.eezee-it.com)
Copyright (C) 2011 Akretion Benoît GUILLOT <benoit.guillot@akretion.com>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
<record id="view_claim_picking" model="ir.ui.view">
<field name="name">claim_picking</field>
<field name="model">claim_make_picking.wizard</field>
<field name="arch" type="xml">
<form string="Select exchange lines to add in picking" version="7.0">
<separator string="Locations" colspan="4"/>
<field name="claim_line_source_location" nolabel="1" />
<field name="claim_line_dest_location" nolabel="1" />
<separator string="Select lines for picking" colspan="4"/>
<field name="claim_line_ids" nolabel="1" colspan="4"/>
<footer>
<button name="action_create_picking" string="Create picking" type="object" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link" special="cancel" />
</footer>
</form>
</field>
</record>
<record id="action_claim_picking_in" model="ir.actions.act_window">
<field name="name">Return Products</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">claim_make_picking.wizard</field>
<field name="src_model">crm.claim</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="context">{'picking_type': 'in','product_return': True}</field>
</record>
<record id="action_claim_picking_out" model="ir.actions.act_window">
<field name="name">Create Outgoing Shipments</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">claim_make_picking.wizard</field>
<field name="src_model">crm.claim</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="context">{'picking_type': 'out'}</field>
</record>
</data>
</openerp>