[MERGE] Sync with trunk

bzr revid: tde@openerp.com-20131219144025-cu9hxr0ctcmajyrr
This commit is contained in:
Thibault Delavallée 2013-12-19 15:40:25 +01:00
commit 31c6c465e2
74 changed files with 24176 additions and 1031 deletions

View File

@ -28,7 +28,7 @@ import time
import openerp
from openerp import SUPERUSER_ID
from openerp import tools
from openerp.osv import fields, osv
from openerp.osv import fields, osv, expression
from openerp.tools.translate import _
from openerp.tools.float_utils import float_round
@ -579,15 +579,18 @@ class account_account(osv.osv):
except:
pass
if name:
ids = self.search(cr, user, [('code', '=like', name+"%")]+args, limit=limit)
if not ids:
ids = self.search(cr, user, [('shortcut', '=', name)]+ args, limit=limit)
if not ids:
ids = self.search(cr, user, [('name', operator, name)]+ args, limit=limit)
if not ids and len(name.split()) >= 2:
#Separating code and name of account for searching
operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.
ids = self.search(cr, user, [('code', operator, operand1), ('name', operator, operand2)]+ args, limit=limit)
if operator not in expression.NEGATIVE_TERM_OPERATORS:
ids = self.search(cr, user, ['|', ('code', '=like', name+"%"), '|', ('shortcut', '=', name), ('name', operator, name)]+args, limit=limit)
if not ids and len(name.split()) >= 2:
#Separating code and name of account for searching
operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.
ids = self.search(cr, user, [('code', operator, operand1), ('name', operator, operand2)]+ args, limit=limit)
else:
ids = self.search(cr, user, ['&','!', ('code', '=like', name+"%"), ('name', operator, name)]+args, limit=limit)
# as negation want to restric, do if already have results
if ids and len(name.split()) >= 2:
operand1,operand2 = name.split(' ',1) #name can contain spaces e.g. OpenERP S.A.
ids = self.search(cr, user, [('code', operator, operand1), ('name', operator, operand2), ('id', 'in', ids)]+ args, limit=limit)
else:
ids = self.search(cr, user, args, context=context, limit=limit)
return self.name_get(cr, user, ids, context=context)
@ -1573,11 +1576,6 @@ class account_move(osv.osv):
obj_analytic_line = self.pool.get('account.analytic.line')
obj_move_line = self.pool.get('account.move.line')
for move in self.browse(cr, uid, ids, context):
# Unlink old analytic lines on move_lines
for obj_line in move.line_id:
for obj in obj_line.analytic_lines:
obj_analytic_line.unlink(cr,uid,obj.id)
journal = move.journal_id
amount = 0
line_ids = []

View File

@ -193,6 +193,8 @@ class account_move_line(osv.osv):
if obj_line.analytic_account_id:
if not obj_line.journal_id.analytic_journal_id:
raise osv.except_osv(_('No Analytic Journal!'),_("You have to define an analytic journal on the '%s' journal!") % (obj_line.journal_id.name, ))
if obj_line.analytic_lines:
acc_ana_line_obj.unlink(cr,uid,[obj.id for obj in obj_line.analytic_lines])
vals_line = self._prepare_analytic_line(cr, uid, obj_line, context=context)
acc_ana_line_obj.create(cr, uid, vals_line)
return True
@ -1207,20 +1209,6 @@ class account_move_line(osv.osv):
if not ok:
raise osv.except_osv(_('Bad Account!'), _('You cannot use this general account in this journal, check the tab \'Entry Controls\' on the related journal.'))
if vals.get('analytic_account_id',False):
if journal.analytic_journal_id:
vals['analytic_lines'] = [(0,0, {
'name': vals['name'],
'date': vals.get('date', time.strftime('%Y-%m-%d')),
'account_id': vals.get('analytic_account_id', False),
'unit_amount': vals.get('quantity', 1.0),
'amount': vals.get('debit', 0.0) or vals.get('credit', 0.0),
'general_account_id': vals.get('account_id', False),
'journal_id': journal.analytic_journal_id.id,
'ref': vals.get('ref', False),
'user_id': uid
})]
result = super(account_move_line, self).create(cr, uid, vals, context=context)
# CREATE Taxes
if vals.get('account_tax_id', False):

View File

@ -3,9 +3,15 @@
<data noupdate="1">
<record id="analytic_journal_sale" model="account.analytic.journal">
<field name="code">SAL</field>
<field name="name">Sales</field>
<field name="type">sale</field>
</record>
<record id="exp" model="account.analytic.journal">
<field name="code">PUR</field>
<field name="name">Purchases</field>
<field name="type">purchase</field>
</record>
<!--
Payment term

10849
addons/account/i18n/es_PE.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -6,11 +6,6 @@
<field name="name">Sales</field>
<field name="type">sale</field>
</record>
<record id="exp" model="account.analytic.journal">
<field name="code">PUR</field>
<field name="name">Purchases</field>
<field name="type">purchase</field>
</record>
<record id="sit" model="account.analytic.journal">
<field name="code">START</field>
<field name="name">Miscellaneous Operation</field>

View File

@ -1,4 +1,7 @@
from . import test_tax
from . import test_search
fast_suite = [test_tax,
]
fast_suite = [
test_tax,
test_search,
]

View File

@ -0,0 +1,60 @@
from openerp.tests.common import TransactionCase
class TestSearch(TransactionCase):
"""Tests for search on name_search (account.account)
The name search on account.account is quite complexe, make sure
we have all the correct results
"""
def setUp(self):
super(TestSearch, self).setUp()
cr, uid = self.cr, self.uid
self.account_model = self.registry('account.account')
self.account_type_model = self.registry('account.account.type')
ac_ids = self.account_type_model.search(cr, uid, [], limit=1)
self.atax = (int(self.account_model.create(cr, uid, dict(
name="Tax Received",
code="121",
user_type=ac_ids[0],
))), "121 Tax Received")
self.apurchase = (int(self.account_model.create(cr, uid, dict(
name="Purchased Stocks",
code="1101",
user_type=ac_ids[0],
))), "1101 Purchased Stocks")
self.asale = (int(self.account_model.create(cr, uid, dict(
name="Product Sales",
code="200",
user_type=ac_ids[0],
))), "200 Product Sales")
self.all_ids = [self.atax[0], self.apurchase[0], self.asale[0]]
def test_name_search(self):
cr, uid = self.cr, self.uid
atax_ids = self.account_model.name_search(cr, uid, name="Tax", operator='ilike', args=[('id', 'in', self.all_ids)])
self.assertEqual(set([self.atax[0]]), set([a[0] for a in atax_ids]), "name_search 'ilike Tax' should have returned Tax Received account only")
atax_ids = self.account_model.name_search(cr, uid, name="Tax", operator='not ilike', args=[('id', 'in', self.all_ids)])
self.assertEqual(set([self.apurchase[0], self.asale[0]]), set([a[0] for a in atax_ids]), "name_search 'not ilike Tax' should have returned all but Tax Received account")
apur_ids = self.account_model.name_search(cr, uid, name='1101', operator='ilike', args=[('id', 'in', self.all_ids)])
self.assertEqual(set([self.apurchase[0]]), set([a[0] for a in apur_ids]), "name_search 'ilike 1101' should have returned Purchased Stocks account only")
apur_ids = self.account_model.name_search(cr, uid, name='1101', operator='not ilike', args=[('id', 'in', self.all_ids)])
self.assertEqual(set([self.atax[0], self.asale[0]]), set([a[0] for a in apur_ids]), "name_search 'not ilike 1101' should have returned all but Purchased Stocks account")
asale_ids = self.account_model.name_search(cr, uid, name='200 Sales', operator='ilike', args=[('id', 'in', self.all_ids)])
self.assertEqual(set([self.asale[0]]), set([a[0] for a in asale_ids]), "name_search 'ilike 200 Sales' should have returned Product Sales account only")
asale_ids = self.account_model.name_search(cr, uid, name='200 Sales', operator='not ilike', args=[('id', 'in', self.all_ids)])
self.assertEqual(set([self.atax[0], self.apurchase[0]]), set([a[0] for a in asale_ids]), "name_search 'not ilike 200 Sales' should have returned all but Product Sales account")
asale_ids = self.account_model.name_search(cr, uid, name='Product Sales', operator='ilike', args=[('id', 'in', self.all_ids)])
self.assertEqual(set([self.asale[0]]), set([a[0] for a in asale_ids]), "name_search 'ilike Product Sales' should have returned Product Sales account only")
asale_ids = self.account_model.name_search(cr, uid, name='Product Sales', operator='not ilike', args=[('id', 'in', self.all_ids)])
self.assertEqual(set([self.atax[0], self.apurchase[0]]), set([a[0] for a in asale_ids]), "name_search 'not ilike Product Sales' should have returned all but Product Sales account")

View File

@ -0,0 +1,23 @@
# Spanish (Peru) translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2013-12-11 21:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Peru) <es_PE@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-12-12 05:15+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: account_accountant
#: model:ir.actions.client,name:account_accountant.action_client_account_menu
msgid "Open Accounting Menu"
msgstr ""

View File

@ -450,6 +450,7 @@ class account_analytic_account(osv.osv):
'is_overdue_quantity' : fields.function(_is_overdue_quantity, method=True, type='boolean', string='Overdue Quantity',
store={
'account.analytic.line' : (_get_analytic_account, None, 20),
'account.analytic.account': (lambda self, cr, uid, ids, c=None: ids, ['quantity_max'], 10),
}),
'ca_invoiced': fields.function(_ca_invoiced_calc, type='float', string='Invoiced Amount',
help="Total customer invoiced amount for this account.",

File diff suppressed because it is too large Load Diff

View File

@ -23,6 +23,7 @@ from datetime import datetime, timedelta
import time
import logging
import openerp
from openerp import SUPERUSER_ID
from openerp.osv import fields, osv
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT
@ -222,6 +223,7 @@ class base_action_rule(osv.osv):
def create(self, cr, uid, vals, context=None):
res_id = super(base_action_rule, self).create(cr, uid, vals, context=context)
self._register_hook(cr, [res_id])
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return res_id
def write(self, cr, uid, ids, vals, context=None):
@ -229,6 +231,7 @@ class base_action_rule(osv.osv):
ids = [ids]
super(base_action_rule, self).write(cr, uid, ids, vals, context=context)
self._register_hook(cr, ids)
openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
return True
def onchange_model_id(self, cr, uid, ids, model_id, context=None):

View File

@ -68,7 +68,7 @@ class base_config_settings(osv.osv_memory):
def set_base_defaults(self, cr, uid, ids, context=None):
ir_model_data = self.pool.get('ir.model.data')
wizard = self.browse(cr, uid, ids)[0]
wizard = self.browse(cr, uid, ids, context)[0]
if wizard.font:
user = self.pool.get('res.users').browse(cr, uid, uid, context)
font_name = wizard.font.name
@ -76,7 +76,7 @@ class base_config_settings(osv.osv_memory):
return {}
def act_discover_fonts(self, cr, uid, ids, context=None):
return self.pool.get("res.font").discover_fonts(cr, uid, ids, context)
return self.pool.get("res.font").font_scan(cr, uid, context=context)
# Preferences wizard for Sales & CRM.
# It is defined here because it is inherited independently in modules sale, crm,

View File

@ -94,7 +94,7 @@
<label for="font" />
<div>
<div>
<field name="font" class="oe_inline"/>
<field name="font" class="oe_inline" domain="[('mode', 'in', ('normal', 'regular', 'all', 'book'))]" />
<button string="(reload fonts)" name="act_discover_fonts" type="object" class="oe_link"/>
</div>
</div>

View File

@ -0,0 +1,75 @@
# Spanish (Peru) translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-12-09 17:26+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Peru) <es_PE@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: base_vat
#: view:res.partner:0
msgid "Check Validity"
msgstr ""
#. module: base_vat
#: code:addons/base_vat/base_vat.py:152
#, python-format
msgid ""
"This VAT number does not seem to be valid.\n"
"Note: the expected format is %s"
msgstr "El RUC no es válido. El formato esperado es %s"
#. module: base_vat
#: field:res.company,vat_check_vies:0
msgid "VIES VAT Check"
msgstr ""
#. module: base_vat
#: model:ir.model,name:base_vat.model_res_company
msgid "Companies"
msgstr ""
#. module: base_vat
#: code:addons/base_vat/base_vat.py:113
#, python-format
msgid "Error!"
msgstr ""
#. module: base_vat
#: help:res.partner,vat_subjected:0
msgid ""
"Check this box if the partner is subjected to the VAT. It will be used for "
"the VAT legal statement."
msgstr ""
"Marque esta opción si la empresa está sujeta a Impuestos. Será utilizado "
"para la declaración legal de Impuestos."
#. module: base_vat
#: model:ir.model,name:base_vat.model_res_partner
msgid "Partner"
msgstr ""
#. module: base_vat
#: help:res.company,vat_check_vies:0
msgid ""
"If checked, Partners VAT numbers will be fully validated against EU's VIES "
"service rather than via a simple format validation (checksum)."
msgstr ""
"Si se marca, el RUC de la empresa se validará contra el servicio europeo "
"VIES VAT en lugar de sólo validar el formato."
#. module: base_vat
#: field:res.partner,vat_subjected:0
msgid "VAT Legal Statement"
msgstr "Sujeto a Impuestos"

View File

@ -411,7 +411,7 @@
on_change="on_change_partner_id(partner_id)"
string="Customer"
context="{'default_name': partner_name, 'default_email': email_from, 'default_phone': phone}"/>
<field name="email_from" string="Email"/>
<field name="email_from" string="Email" widget="email"/>
<field name="phone"/>
</group>

View File

@ -32,6 +32,7 @@ import psycopg2
import openerp
from openerp import tools
from openerp import SUPERUSER_ID
from openerp.osv import fields, osv
from openerp.osv.orm import except_orm
import openerp.report.interface
@ -322,7 +323,7 @@ class document_directory(osv.osv):
ressource_parent_type_id=vals.get('ressource_parent_type_id',False)
ressource_id=vals.get('ressource_id',0)
if op=='write':
for directory in self.browse(cr, uid, ids):
for directory in self.browse(cr, SUPERUSER_ID, ids):
if not name:
name=directory.name
if not parent_id:
@ -336,7 +337,7 @@ class document_directory(osv.osv):
if len(res):
return False
if op=='create':
res=self.search(cr,uid,[('name','=',name),('parent_id','=',parent_id),('ressource_parent_type_id','=',ressource_parent_type_id),('ressource_id','=',ressource_id)])
res = self.search(cr, SUPERUSER_ID, [('name','=',name),('parent_id','=',parent_id),('ressource_parent_type_id','=',ressource_parent_type_id),('ressource_id','=',ressource_id)])
if len(res):
return False
return True

View File

@ -58,6 +58,23 @@
!python {model: ir.attachment}: |
ids = self.search(cr, uid, [('res_model', '=', 'res.country'), ('res_id', '=', ref("base.za"))])
assert ids == [ ref("attach_3rd")], ids
-
I test that I can't create duplicate directories (even when duplicates are hidden by a record rule)
-
!python {model: document.directory}: |
duplicate_detected = False
from openerp.osv.osv import except_osv
try:
demo_uid = ref('base.user_demo')
dir_vals = {
'name': 'Testing (will be deleted!)',
'parent_id': ref('document.dir_root')
}
new_dir_id = self.create(cr, demo_uid, dir_vals, context=None)
self.unlink(cr, uid, [new_dir_id], context=None)
except except_osv, e:
duplicate_detected = e.value == u'Directory name must be unique!'
assert duplicate_detected is True, 'Failed to detect duplicate directory'
-
I delete the attachments
-

View File

@ -57,9 +57,10 @@ class res_users(osv.Model):
various mailboxes, we do not have access to the current partner_id. """
if kwargs.get('type') == 'email':
return super(res_users, self).message_post(cr, uid, thread_id, context=context, **kwargs)
res = None
employee_ids = self._message_post_get_eid(cr, uid, thread_id, context=context)
if not employee_ids:
pass # dpo something
if not employee_ids: # no employee: fall back on previous behavior
return super(res_users, self).message_post(cr, uid, thread_id, context=context, **kwargs)
for employee_id in employee_ids:
res = self.pool.get('hr.employee').message_post(cr, uid, employee_id, context=context, **kwargs)
return res

View File

@ -5,9 +5,9 @@
<!--logo-->
<fill color="black"/>
<stroke color="black"/>
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
<setFont name="DejaVu Sans Bold" size="10"/>
<setFont name="DejaVuSans-Bold" size="10"/>
<drawString x="13.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
<stroke color="#000000"/>
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
@ -17,9 +17,9 @@
<!--logo-->
<fill color="black"/>
<stroke color="black"/>
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
<setFont name="DejaVu Sans Bold" size="10"/>
<setFont name="DejaVuSans-Bold" size="10"/>
<drawString x="27.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
<stroke color="#000000"/>
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>

View File

@ -242,6 +242,10 @@ class hr_holidays(osv.osv):
result['value'] = {
'employee_id': ids_employee[0]
}
elif holiday_type != 'employee':
result['value'] = {
'employee_id': False
}
return result
def onchange_employee(self, cr, uid, ids, employee_id):

View File

@ -14,7 +14,7 @@
<separator/>
<filter icon="terp-go-year" name="year" string="Year" domain="[('holiday_status_id.active','=',True)]" help="Filters only on allocations and requests that belong to an holiday type that is 'active' (active field is True)"/>
<separator/>
<filter string="My Leaves" icon="terp-personal" name="my_leaves" domain="[('employee_id.user_id','=', uid)]" help="My Leaves"/>
<filter string="My Requests" icon="terp-personal" name="my_leaves" domain="[('employee_id.user_id','=', uid)]" help="My Leave Requests"/>
<separator/>
<filter string="My Department Leaves" icon="terp-personal+" help="My Department Leaves" domain="[('department_id.manager_id','=',uid)]"/>
<field name="employee_id"/>
@ -47,61 +47,14 @@
</field>
</record>
<record id="edit_holiday_new" model="ir.ui.view">
<!-- Holidays: Allocation Request -->
<record model="ir.ui.view" id="edit_holiday_new">
<field name="name">Leave Request</field>
<field name="model">hr.holidays</field>
<field name="priority">1</field>
<field name="arch" type="xml">
<form string="Leave Request" version="7.0">
<field name="can_reset" invisible="1"/>
<header>
<button string="Confirm" name="confirm" states="draft" type="workflow" class="oe_highlight"/>
<button string="Approve" name="validate" states="confirm" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
<button string="Validate" name="second_validate" states="validate1" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
<button string="Refuse" name="refuse" states="confirm,validate1,validate" type="workflow" groups="base.group_hr_user"/>
<button string="Reset to Draft" name="reset" type="workflow"
attrs="{'invisible': ['|', ('can_reset', '=', False), ('state', 'not in', ['confirm', 'refuse'])]}"/>
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,validate" statusbar_colors='{"confirm":"blue","validate1":"blue","refuse":"red"}'/>
</header>
<sheet string="Leave Request">
<group>
<group>
<field name="name" attrs="{'readonly':[('state','!=','draft'),('state','!=','confirm')]}"/>
<field name="holiday_status_id" context="{'employee_id':employee_id}"/>
<label for="number_of_days_temp" string="Duration" help="The default duration interval between the start date and the end date is 8 hours. Feel free to adapt it to your needs."/>
<div>
<group col="3">
<field name="date_from" nolabel="1" on_change="onchange_date_from(date_to, date_from)" required="1" class="oe_inline"/><label string="-" class="oe_inline"/>
<field name="date_to" nolabel="1" on_change="onchange_date_to(date_to, date_from)" required="1" class="oe_inline"/>
</group>
<div>
<field name="number_of_days_temp" class="oe_inline"/> days
</div>
</div>
<field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'invisible':[('holiday_type','=','employee')], 'readonly':[('state','!=','draft'), ('state','!=','confirm')]}"/>
</group>
<group>
<field name="holiday_type" on_change="onchange_type(holiday_type, employee_id)" attrs="{'readonly':[('state','!=','draft')]}" width="130" string="Mode" groups="base.group_hr_user"/>
<field name="employee_id" attrs="{'required':[('holiday_type','=','employee')],'invisible':[('holiday_type','=','category')]}" on_change="onchange_employee(employee_id)" groups="base.group_hr_user"/>
<field name="department_id" attrs="{'readonly':[('holiday_type','=','category')]}" groups="base.group_hr_user"/>
</group>
</group>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
<field name="message_ids" widget="mail_thread"/>
</div>
</form>
</field>
</record>
<!-- Holidays: Allocation Request -->
<record model="ir.ui.view" id="allocation_leave_new">
<field name="name">Allocation Request</field>
<field name="model">hr.holidays</field>
<field name="arch" type="xml">
<form string="Allocation Request" version="7.0">
<field name="can_reset" invisible="1"/>
<field name="type" invisible="1"/>
<header>
<button string="Confirm" name="confirm" states="draft" type="workflow" class="oe_highlight"/>
<button string="Approve" name="validate" states="confirm" type="workflow" groups="base.group_hr_user" class="oe_highlight"/>
@ -114,21 +67,27 @@
<sheet>
<group>
<group>
<field name="name" required="1" attrs="{'readonly':[('state','!=','draft'),('state','!=','confirm')]}"/>
<field name="name" attrs="{'readonly':[('state','!=','draft'),('state','!=','confirm')], 'required': [('type', '=', 'add')]}"/>
<field name="holiday_status_id" context="{'employee_id':employee_id}"/>
<label for="number_of_days_temp"/>
<label for="number_of_days_temp" string="Duration"/>
<div>
<field name="number_of_days_temp" class="oe_inline"/> days
<group col="3" attrs="{'invisible': [('type', '=', 'add')]}">
<field name="date_from" nolabel="1" on_change="onchange_date_from(date_to, date_from)" required="1" class="oe_inline"/><label string="-" class="oe_inline"/>
<field name="date_to" nolabel="1" on_change="onchange_date_to(date_to, date_from)" required="1" class="oe_inline"/>
</group>
<div>
<field name="number_of_days_temp" class="oe_inline"/> days
</div>
</div>
</group>
<group>
<field name="holiday_type" on_change="onchange_type(holiday_type)"/>
<field name="employee_id" attrs="{'required':[('holiday_type','=','employee')], 'invisible':[('holiday_type','=','category')]}"/>
<field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'invisible':[('holiday_type','=','employee')]}"/>
<field name="department_id" attrs="{'invisible':[('holiday_type','=','category')]}"/>
<field name="holiday_type" on_change="onchange_type(holiday_type)" attrs="{'readonly':[('type', '=', 'remove'),('state','!=','draft')]}" string="Mode" groups="base.group_hr_user"/>
<field name="employee_id" attrs="{'required':[('holiday_type','=','employee')],'invisible':[('holiday_type','=','category')]}" on_change="onchange_employee(employee_id)" groups="base.group_hr_user"/>
<field name="category_id" attrs="{'required':[('holiday_type','=','category')], 'readonly': [('type', '=', 'remove'),('state','!=','draft'), ('state','!=','confirm')], 'invisible':[('holiday_type','=','employee')]}"/>
<field name="department_id" attrs="{'readonly':['|', ('type','=','add'),('holiday_type','=','category')],'invisible':[('holiday_type','=','category')]}" groups="base.group_hr_user"/>
</group>
</group>
<field name="notes" nolabel="1" colspan="4" placeholder="Add a reason..."/>
<field name="notes" nolabel="1" colspan="4" placeholder="Add a reason..." attrs="{'invisible': [('type', '=', 'remove')]}"/>
</sheet>
<div class="oe_chatter">
<field name="message_follower_ids" widget="mail_followers"/>
@ -231,7 +190,7 @@
<menuitem name="Leaves" parent="hr.menu_hr_root" id="menu_open_ask_holidays" sequence="20"/>
<record model="ir.actions.act_window" id="open_ask_holidays">
<field name="name">Leave Requests</field>
<field name="name">Leave Request</field>
<field name="res_model">hr.holidays</field>
<field name="view_type">form</field>
<field name="view_id" ref="edit_holiday_new"/>
@ -305,7 +264,7 @@
<field name="view_type">form</field>
<field name="context">{'default_type':'add', 'search_default_my_leaves':1}</field>
<field name="domain">[('type','=','add')]</field>
<field name="view_id" ref="allocation_leave_new"/>
<field name="view_id" ref="edit_holiday_new"/>
<field name="search_view_id" ref="view_hr_holidays_filter"/>
</record>
@ -319,7 +278,7 @@
<record model="ir.actions.act_window.view" id="action_open_allocation_holidays_form">
<field name="sequence" eval="2"/>
<field name="view_mode">form</field>
<field name="view_id" ref="allocation_leave_new"/>
<field name="view_id" ref="edit_holiday_new"/>
<field name="act_window_id" ref="open_allocation_holidays"/>
</record>
@ -331,7 +290,7 @@
<field name="view_type">form</field>
<field name="context">{'default_type': 'add', 'search_default_approve':1}</field>
<field name="domain">[('type','=','add')]</field>
<field name="view_id" ref="allocation_leave_new"/>
<field name="view_id" ref="edit_holiday_new"/>
<field name="search_view_id" ref="view_hr_holidays_filter"/>
</record>
@ -345,7 +304,7 @@
<record model="ir.actions.act_window.view" id="action_request_approve_allocation_form">
<field name="sequence" eval="2"/>
<field name="view_mode">form</field>
<field name="view_id" ref="allocation_leave_new"/>
<field name="view_id" ref="edit_holiday_new"/>
<field name="act_window_id" ref="request_approve_allocation"/>
</record>

View File

@ -5,9 +5,9 @@
<!--logo-->
<fill color="black"/>
<stroke color="black"/>
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
<setFont name="DejaVu Sans Bold" size="10"/>
<setFont name="DejaVuSans-Bold" size="10"/>
<drawString x="13.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
<stroke color="#000000"/>
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
@ -17,9 +17,9 @@
<!--logo-->
<fill color="black"/>
<stroke color="black"/>
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
<setFont name="DejaVu Sans Bold" size="10"/>
<setFont name="DejaVuSans-Bold" size="10"/>
<drawString x="27.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
<stroke color="#000000"/>
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>

View File

@ -197,7 +197,7 @@ class hr_applicant(osv.Model):
return res
_columns = {
'name': fields.char('Subject', size=128, required=True),
'name': fields.char('Subject / Application Name', size=128, required=True),
'active': fields.boolean('Active', help="If the active field is set to false, it will allow you to hide the case without removing it."),
'description': fields.text('Description'),
'email_from': fields.char('Email', size=128, help="These people will receive email."),
@ -224,7 +224,7 @@ class hr_applicant(osv.Model):
'salary_expected_extra': fields.char('Expected Salary Extra', size=100, help="Salary Expected by Applicant, extra advantages"),
'salary_proposed': fields.float('Proposed Salary', help="Salary Proposed by the Organisation"),
'salary_expected': fields.float('Expected Salary', help="Salary Expected by Applicant"),
'availability': fields.integer('Availability'),
'availability': fields.integer('Availability', help="The number of days in which the applicant will be available to start working"),
'partner_name': fields.char("Applicant's Name", size=64),
'partner_phone': fields.char('Phone', size=32),
'partner_mobile': fields.char('Mobile', size=32),

View File

@ -44,7 +44,7 @@
<field name="last_stage_id" invisible="1"/>
<field name="create_date"/>
<field name="date_last_stage_update" invisible="1"/>
<field name="name" string="Subject"/>
<field name="name"/>
<field name="partner_name"/>
<field name="email_from"/>
<field name="partner_phone"/>

View File

@ -5,9 +5,9 @@
<!--logo-->
<fill color="black"/>
<stroke color="black"/>
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
<setFont name="DejaVu Sans Bold" size="10"/>
<setFont name="DejaVuSans-Bold" size="10"/>
<drawString x="13.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
<stroke color="#000000"/>
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>
@ -17,9 +17,9 @@
<!--logo-->
<fill color="black"/>
<stroke color="black"/>
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<drawString x="1.3cm" y="19.5cm"><xsl:value-of select="//report/header/date"/></drawString>
<setFont name="DejaVu Sans Bold" size="10"/>
<setFont name="DejaVuSans-Bold" size="10"/>
<drawString x="27.8cm" y="19.5cm"><xsl:value-of select="//report/header/company"/></drawString>
<stroke color="#000000"/>
<lines>1.3cm 19.3cm 28.5cm 19.3cm</lines>

View File

@ -745,6 +745,8 @@
<field name="property_account_receivable" ref="pcg_3488"/>
<field name="property_account_payable" ref="pcg_4488"/>
<field name="currency_id" ref="base.MAD"/>
<field name="property_account_income_categ" ref="pcg_7111"/>
<field name="property_account_expense_categ" ref="pcg_1486"/>
</record>
<record model="account.tax.template" id="tva_exo">

View File

@ -119,3 +119,5 @@
"51100_general_product",51100,"Freight and Shipping Costs","other","l10n_us.user_type_cogs","cost_of_goods_sold","False","l10n_us.account_chart_template_general_product"
"52500_general_product",52500,"Purchase Discounts","other","l10n_us.user_type_cogs","cost_of_goods_sold","False","l10n_us.account_chart_template_general_product"
"52900_general_product",52900,"Purchases - Resale Items","other","l10n_us.user_type_cogs","cost_of_goods_sold","False","l10n_us.account_chart_template_general_product"
"base_miscincome","49000","Miscellaneous Income","other","l10n_us.user_type_income","income","False","l10n_us.account_chart_template_basic"
"base_miscexpense","69000","Miscellaneous Expense","other","l10n_us.user_type_expense","expense","False","l10n_us.account_chart_template_basic"
1 id code name type user_type:id parent_id:id reconcile chart_template_id:id
119 51100_general_product 51100 Freight and Shipping Costs other l10n_us.user_type_cogs cost_of_goods_sold False l10n_us.account_chart_template_general_product
120 52500_general_product 52500 Purchase Discounts other l10n_us.user_type_cogs cost_of_goods_sold False l10n_us.account_chart_template_general_product
121 52900_general_product 52900 Purchases - Resale Items other l10n_us.user_type_cogs cost_of_goods_sold False l10n_us.account_chart_template_general_product
122 base_miscincome 49000 Miscellaneous Income other l10n_us.user_type_income income False l10n_us.account_chart_template_basic
123 base_miscexpense 69000 Miscellaneous Expense other l10n_us.user_type_expense expense False l10n_us.account_chart_template_basic

View File

@ -9,6 +9,8 @@
<field name="property_account_receivable" ref="account_receivable"/>
<field name="property_account_payable" ref="account_payable"/>
<field name="currency_id" ref="base.USD"/>
<field name="property_account_income_categ" ref="base_miscincome"/>
<field name="property_account_expense_categ" ref="base_miscexpense"/>
</record>
<record id="account_chart_template_advertising" model="account.chart.template">
<field name="bank_account_view_id" ref="cash_expenditure"/>

View File

@ -81,16 +81,19 @@ Main Features
'css': [
'static/src/css/mail.css',
'static/src/css/mail_group.css',
'static/src/css/announcement.css',
],
'js': [
'static/src/js/mail.js',
'static/src/js/mail_followers.js',
'static/src/js/many2many_tags_email.js',
'static/src/js/announcement.js',
'static/src/js/suggestions.js',
],
'qweb': [
'static/src/xml/mail.xml',
'static/src/xml/mail_followers.xml',
'static/src/xml/announcement.xml',
'static/src/xml/suggestions.xml',
],
}

View File

@ -252,13 +252,10 @@ class mail_thread(osv.AbstractModel):
new = set(command[2])
# remove partners that are no longer followers
fol_ids = fol_obj.search(cr, SUPERUSER_ID,
[('res_model', '=', self._name), ('res_id', '=', id), ('partner_id', 'not in', list(new))])
fol_obj.unlink(cr, SUPERUSER_ID, fol_ids)
self.message_unsubscribe(cr, uid, [id], list(old-new))
# add new followers
for partner_id in new - old:
fol_obj.create(cr, SUPERUSER_ID, {'res_model': self._name, 'res_id': id, 'partner_id': partner_id})
self.message_subscribe(cr, uid, [id], list(new-old))
def _search_followers(self, cr, uid, obj, name, args, context):
"""Search function for message_follower_ids
@ -346,6 +343,7 @@ class mail_thread(osv.AbstractModel):
"""
if context is None:
context = {}
thread_id = super(mail_thread, self).create(cr, uid, values, context=context)
# automatic logging unless asked not to (mainly for various testing purpose)
@ -355,6 +353,7 @@ class mail_thread(osv.AbstractModel):
# subscribe uid unless asked not to
if not context.get('mail_create_nosubscribe'):
self.message_subscribe_users(cr, uid, [thread_id], [uid], context=context)
# auto_subscribe: take values and defaults into account
create_values = dict(values)
for key, val in context.iteritems():
@ -1545,35 +1544,33 @@ class mail_thread(osv.AbstractModel):
else:
self.check_access_rights(cr, uid, 'write')
for record in self.browse(cr, SUPERUSER_ID, ids, context=context):
existing_pids = set([f.id for f in record.message_follower_ids
if f.id in partner_ids])
existing_pids_dict = {}
fol_ids = mail_followers_obj.search(cr, SUPERUSER_ID, [('res_model', '=', self._name), ('res_id', 'in', ids)])
for fol in mail_followers_obj.browse(cr, SUPERUSER_ID, fol_ids, context=context):
existing_pids_dict.setdefault(fol.res_id, set()).add(fol.partner_id.id)
# subtype_ids specified: update already subscribed partners
if subtype_ids and fol_ids:
mail_followers_obj.write(cr, SUPERUSER_ID, fol_ids, {'subtype_ids': [(6, 0, subtype_ids)]}, context=context)
# subtype_ids not specified: do not update already subscribed partner, fetch default subtypes for new partners
if subtype_ids is None:
subtype_ids = subtype_obj.search(
cr, uid, [
('default', '=', True), '|', ('res_model', '=', self._name), ('res_model', '=', False)], context=context)
for id in ids:
existing_pids = existing_pids_dict.get(id, set())
new_pids = set(partner_ids) - existing_pids
# subtype_ids specified: update already subscribed partners
if subtype_ids and existing_pids:
fol_ids = mail_followers_obj.search(cr, SUPERUSER_ID, [
('res_model', '=', self._name),
('res_id', '=', record.id),
('partner_id', 'in', list(existing_pids)),
], context=context)
mail_followers_obj.write(cr, SUPERUSER_ID, fol_ids, {'subtype_ids': [(6, 0, subtype_ids)]}, context=context)
# subtype_ids not specified: do not update already subscribed partner, fetch default subtypes for new partners
elif subtype_ids is None:
subtype_ids = subtype_obj.search(cr, uid, [
('default', '=', True),
'|',
('res_model', '=', self._name),
('res_model', '=', False)
], context=context)
# subscribe new followers
for new_pid in new_pids:
mail_followers_obj.create(cr, SUPERUSER_ID, {
'res_model': self._name,
'res_id': record.id,
'partner_id': new_pid,
'subtype_ids': [(6, 0, subtype_ids)],
}, context=context)
mail_followers_obj.create(
cr, SUPERUSER_ID, {
'res_model': self._name,
'res_id': id,
'partner_id': new_pid,
'subtype_ids': [(6, 0, subtype_ids)],
}, context=context)
return True
@ -1592,7 +1589,14 @@ class mail_thread(osv.AbstractModel):
self.check_access_rights(cr, uid, 'read')
else:
self.check_access_rights(cr, uid, 'write')
return self.write(cr, SUPERUSER_ID, ids, {'message_follower_ids': [(3, pid) for pid in partner_ids]}, context=context)
fol_obj = self.pool['mail.followers']
fol_ids = fol_obj.search(
cr, SUPERUSER_ID, [
('res_model', '=', self._name),
('res_id', 'in', ids),
('partner_id', 'in', partner_ids)
], context=context)
return fol_obj.unlink(cr, SUPERUSER_ID, fol_ids, context=context)
def _message_get_auto_subscribe_fields(self, cr, uid, updated_fields, auto_follow_fields=['user_id'], context=None):
""" Returns the list of relational fields linking to res.users that should

View File

@ -0,0 +1,3 @@
.openerp .annoucement_bar {
display: none;
}

View File

@ -90,7 +90,9 @@
}
.openerp .oe_group_button {
padding-top: 7px;
position: absolute;
padding-bottom: 50px;
bottom: 0;
}
.openerp .oe_group_button .oe_group_join {

View File

@ -0,0 +1,42 @@
openerp_announcement = function(instance) {
instance.web.WebClient.include({
show_application: function() {
return $.when(this._super.apply(this, arguments)).then(this.proxy('show_annoucement_bar'));
},
_ab_location: function(dbuuid) {
return _.str.sprintf('https://services.openerp.com/openerp-enterprise/ab/css/%s.css', dbuuid);
},
show_annoucement_bar: function() {
if (this.session.get_cookie('ab') === 'c') {
return;
}
var self = this;
var config_parameter = new instance.web.Model('ir.config_parameter');
var $bar = this.$el.find('.announcement_bar');
return config_parameter.call('get_param', ['database.uuid', false]).then(function(dbuuid) {
if (!dbuuid) {
return;
}
var $link = $bar.find('.url a');
$link.attr('href', _.str.sprintf('%s/%s', $link.attr('href'), dbuuid));
var $css = $('<link />').attr({
rel : 'stylesheet',
type: 'text/css',
media: 'screen',
href: self._ab_location(dbuuid)
});
$css.on('load', function() {
var close = function() {
var ttl = 7*24*60*60;
self.session.set_cookie('ab', 'c', ttl);
$bar.slideUp('slow');
};
$bar.find('.close').on('click', close);
self.trigger('ab_loaded', $bar);
});
$('head').append($css);
});
}
});
};

View File

@ -6,6 +6,7 @@ openerp.mail = function (session) {
openerp_mail_followers(session, mail); // import mail_followers.js
openerp_FieldMany2ManyTagsEmail(session); // import manyy2many_tags_email.js
openerp_announcement(session);
/**
* ------------------------------------------------------------

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-extend="WebClient">
<t t-jquery="table.oe_webclient" t-operation="prepend">
<td colspan="2" class="announcement_bar">
<span class="message"></span>
<span class="url"><a href="https://services.openerp.com/openerp-enterprise/ab/register" target="_blank"></a></span>
<span class="close"></span>
</td>
</t>
</t>
</templates>

View File

@ -163,7 +163,7 @@ class TestMailgateway(TestMail):
self.assertIn('<div dir="ltr">Should create a multipart/mixed: from gmail, <b>bold</b>, with attachment.<br clear="all"><div><br></div>', res.get('body', ''),
'message_parse: html version should be in body after parsing multipart/mixed')
# @mute_logger('openerp.addons.mail.mail_thread', 'openerp.osv.orm')
@mute_logger('openerp.addons.mail.mail_thread', 'openerp.osv.orm')
def test_10_message_process(self):
""" Testing incoming emails processing. """
cr, uid, user_raoul = self.cr, self.uid, self.user_raoul
@ -523,7 +523,7 @@ class TestMailgateway(TestMail):
self.assertIn('<pre>\nPlease call me as soon as possible this afternoon!\n\n--\nSylvie\n</pre>', msg.body,
'message_process: plaintext incoming email incorrectly parsed')
# @mute_logger('openerp.addons.mail.mail_thread', 'openerp.osv.orm')
@mute_logger('openerp.addons.mail.mail_thread', 'openerp.osv.orm')
def test_20_thread_parent_resolution(self):
""" Testing parent/child relationships are correctly established when processing incoming mails """
cr, uid = self.cr, self.uid

View File

@ -38,9 +38,9 @@ professional emails and reuse templates in a few clicks.
],
'data': [
'mail_data.xml',
'mass_mailing_view.xml',
'wizard/mail_compose_message_view.xml',
'wizard/mail_mass_mailing_create_segment.xml',
'mass_mailing_view.xml',
'security/ir.model.access.csv',
],
'js': [

View File

@ -252,6 +252,9 @@
<t t-if="widget.view.is_action_enabled('edit')">
<li><a type="edit">Settings</a></li>
</t>
<t t-if="widget.view.is_action_enabled('edit')">
<li><a name="%(action_mail_mass_mailing_create)d" type="action">New Wave</a></li>
</t>
<t t-if="widget.view.is_action_enabled('delete')">
<li><a type="delete">Delete</a></li>
</t>

View File

@ -36,7 +36,7 @@ class MailMassMailingCreate(osv.TransientModel):
required=True,
),
'model_id': fields.many2one(
'ir.model', 'Document',
'ir.model', 'Document Type',
required=True,
help='Document on which the mass mailing will run. This must be a '
'valid OpenERP model.',
@ -116,6 +116,7 @@ class MailMassMailingCreate(osv.TransientModel):
'default_template_id': wizard.template_id.id,
'default_use_mass_mailing_campaign': True,
'default_use_active_domain': True,
'default_model': wizard.model_id.model,
'default_active_domain': wizard.domain,
'default_mass_mailing_campaign_id': wizard.mass_mailing_campaign_id.id,
'default_mass_mailing_id': wizard.mass_mailing_id.id,

View File

@ -42,7 +42,7 @@
</p>
</div>
<label for="model_id"/>
<label for="template_id"/>
<div>
<field name="template_id"/>
<p class="oe_grey"
@ -55,8 +55,7 @@
<label for="name"/>
<div>
<field name="name"/>
<p class="oe_grey"
attrs="{'invisible': [('name', '!=', False)]}">
<p class="oe_grey">
Please choose the name of the mailing.
</p>
</div>

View File

@ -15,9 +15,9 @@
<!--logo-->
<fill color="black"/>
<stroke color="black"/>
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<drawString x="1.3cm" y="28.3cm"><xsl:value-of select="//date"/></drawString>
<setFont name="DejaVu Sans Bold" size="10"/>
<setFont name="DejaVuSans-Bold" size="10"/>
<drawString x="9.8cm" y="28.3cm"><xsl:value-of select="//company"/></drawString>
<stroke color="#000000"/>
<lines>1.3cm 28.1cm 20cm 28.1cm</lines>
@ -29,9 +29,9 @@
<!--logo-->
<fill color="black"/>
<stroke color="black"/>
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<drawString x="1.3cm" y="28.3cm"><xsl:value-of select="//date"/></drawString>
<setFont name="DejaVu Sans Bold" size="10"/>
<setFont name="DejaVuSans-Bold" size="10"/>
<drawString x="9.8cm" y="28.3cm"><xsl:value-of select="//company"/></drawString>
<stroke color="#000000"/>
<lines>1.3cm 28.1cm 20cm 28.1cm</lines>

View File

@ -70,6 +70,8 @@ class report_custom(report_rml):
main_strd_price = str(std_price) + '\r\n'
sum_strd = prod_qtty*std_price
for seller_id in prod.seller_ids:
if seller_id.name.id == prod.seller_id.id:
continue
sellers += '- <i>'+ to_xml(seller_id.name.name) +'</i>\r\n'
pricelist = seller_id.name.property_product_pricelist_purchase
price = pricelist_pool.price_get(cr,uid,[pricelist.id],

View File

@ -714,13 +714,14 @@ class pos_order(osv.osv):
}, context=context)
self.write(cr, uid, [order.id], {'picking_id': picking_id}, context=context)
location_id = order.warehouse_id.lot_stock_id.id
output_id = order.warehouse_id.lot_output_id.id
if order.partner_id:
destination_id = order.partner_id.property_stock_customer.id
else:
destination_id = partner_obj.default_get(cr, uid, ['property_stock_customer'], context=context)['property_stock_customer']
for line in order.lines:
if line.product_id and line.product_id.type == 'service':
continue
if line.qty < 0:
location_id, output_id = output_id, location_id
move_obj.create(cr, uid, {
'name': line.name,
@ -732,11 +733,9 @@ class pos_order(osv.osv):
'product_qty': abs(line.qty),
'tracking_id': False,
'state': 'draft',
'location_id': location_id,
'location_dest_id': output_id,
'location_id': location_id if line.qty >= 0 else destination_id,
'location_dest_id': destination_id if line.qty >= 0 else location_id,
}, context=context)
if line.qty < 0:
location_id, output_id = output_id, location_id
picking_obj.signal_button_confirm(cr, uid, [picking_id])
picking_obj.force_assign(cr, uid, [picking_id], context)

View File

@ -560,6 +560,7 @@ function openerp_pos_devices(instance,module){ //module is instance.point_of_sal
this.handler = function(e){
if(e.which === 13){ //ignore returns
e.preventDefault();
return;
}

View File

@ -32,12 +32,6 @@ openerp.project = function(openerp) {
if (self.dataset.model === 'project.project') {
self.project_display_members_names();
}
},
on_record_moved: function(record, old_group, old_index, new_group, new_index){
var self = this;
this._super.apply(this, arguments);
if(new_group.state.folded)
new_group.do_action_toggle_fold();
}
});

View File

@ -46,12 +46,15 @@
Process Transition
-->
<!-- This "foreign" process node is duplicated here from the corresponding sale_stock node because
<!-- This process node is duplicated here from the corresponding sale_stock node because
`project_mrp` implements a basic procurement system for services without actually using the
full-fledged procurement process from sale_stock, and without the dependency. So it stil
represents a "procurement system".
full-fledged procurement process from sale_stock, and without the dependency. So it still
represents a "procurement system". Sharing the external ID causes other problems, so
we duplicate it instead.
TODO: To cleanup this duplicate node, it should probably be moved to the
`sale` module directly, and removed from both `sale_stock` and `project_mrp`.
-->
<record id="procurement.process_node_saleprocurement0" model="process.node">
<record id="process_node_saleprocurement0" model="process.node">
<field name="menu_id" ref="procurement.menu_stock_procurement_action"/>
<field name="model_id" ref="procurement.model_procurement_order"/>
<field name="kind">subflow</field>
@ -66,7 +69,7 @@
<field eval="&quot;&quot;&quot;Procurement Task&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;if product type is 'service' then it creates the task.&quot;&quot;&quot;" name="note"/>
<field name="target_node_id" ref="process_node_procuretasktask0"/>
<field name="source_node_id" ref="procurement.process_node_saleprocurement0"/>
<field name="source_node_id" ref="process_node_saleprocurement0"/>
</record>
<record id="process_transition_createtask0" model="process.transition">

File diff suppressed because it is too large Load Diff

View File

@ -915,8 +915,11 @@ class purchase_order_line(osv.osv):
"""
onchange handler of product_uom.
"""
if context is None:
context = {}
if not uom_id:
return {'value': {'price_unit': price_unit or 0.0, 'name': name or '', 'product_uom' : uom_id or False}}
context = dict(context, purchase_uom_check=True)
return self.onchange_product_id(cr, uid, ids, pricelist_id, product_id, qty, uom_id,
partner_id, date_order=date_order, fiscal_position_id=fiscal_position_id, date_planned=date_planned,
name=name, price_unit=price_unit, context=context)
@ -990,7 +993,7 @@ class purchase_order_line(osv.osv):
uom_id = product_uom_po_id
if product.uom_id.category_id.id != product_uom.browse(cr, uid, uom_id, context=context).category_id.id:
if self._check_product_uom_group(cr, uid, context=context):
if context.get('purchase_uom_check') and self._check_product_uom_group(cr, uid, context=context):
res['warning'] = {'title': _('Warning!'), 'message': _('Selected Unit of Measure does not belong to the same category as the product Unit of Measure.')}
uom_id = product_uom_po_id

View File

@ -140,6 +140,6 @@ class stock_picking_in(osv.osv):
_columns = {
'purchase_id': fields.many2one('purchase.order', 'Purchase Order',
ondelete='set null', select=True),
'warehouse_id': fields.related('purchase_id', 'warehouse_id', type='many2one', relation='stock.warehouse', string='Destination Warehouse'),
'warehouse_id': fields.related('purchase_id', 'warehouse_id', type='many2one', relation='stock.warehouse', string='Destination Warehouse', readonly=True),
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,33 @@
# Spanish (Peru) translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-12-10 17:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Peru) <es_PE@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: purchase_analytic_plans
#: field:purchase.order.line,analytics_id:0
msgid "Analytic Distribution"
msgstr ""
#. module: purchase_analytic_plans
#: model:ir.model,name:purchase_analytic_plans.model_purchase_order_line
msgid "Purchase Order Line"
msgstr ""
#. module: purchase_analytic_plans
#: model:ir.model,name:purchase_analytic_plans.model_purchase_order
msgid "Purchase Order"
msgstr ""

View File

@ -0,0 +1,49 @@
# Spanish (Peru) translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-12-10 18:09+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Peru) <es_PE@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: purchase_double_validation
#: model:ir.model,name:purchase_double_validation.model_purchase_config_settings
msgid "purchase.config.settings"
msgstr ""
#. module: purchase_double_validation
#: view:purchase.order:0
msgid "Purchase orders which are not approved yet."
msgstr ""
#. module: purchase_double_validation
#: field:purchase.config.settings,limit_amount:0
msgid "limit to require a second approval"
msgstr ""
#. module: purchase_double_validation
#: view:board.board:0
#: model:ir.actions.act_window,name:purchase_double_validation.purchase_waiting
msgid "Purchase Orders Waiting Approval"
msgstr ""
#. module: purchase_double_validation
#: view:purchase.order:0
msgid "To Approve"
msgstr ""
#. module: purchase_double_validation
#: help:purchase.config.settings,limit_amount:0
msgid "Amount after which validation of purchase is required."
msgstr ""

2139
addons/sale/i18n/es_PE.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
"PO-Revision-Date: 2013-11-19 12:50+0000\n"
"PO-Revision-Date: 2013-12-09 15:46+0000\n"
"Last-Translator: krnkris <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: 2013-11-20 05:24+0000\n"
"X-Generator: Launchpad (build 16831)\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: sale
#: model:res.groups,name:sale.group_analytic_accounting
@ -116,7 +116,7 @@ msgstr "Beszerzési módszer"
#. module: sale
#: help:sale.order,date_confirm:0
msgid "Date on which sales order is confirmed."
msgstr "Az értékesítési megbízás megerősítésének dátuma."
msgstr "A vevői megrendelés megerősítésének dátuma."
#. module: sale
#: field:account.config.settings,module_sale_analytic_plans:0
@ -132,7 +132,8 @@ msgstr "Március"
#: code:addons/sale/sale.py:565
#, python-format
msgid "First cancel all invoices attached to this sales order."
msgstr "Először vonja vissza a megrendelés összes számla mellékletét."
msgstr ""
"Először vonja vissza a vevői megrendeléshez kötött összes számla mellékletet."
#. module: sale
#: view:sale.order:0
@ -254,12 +255,13 @@ msgstr "Az előleg mennyiség értékének pozitívnak kell lennie"
#. module: sale
#: help:sale.config.settings,group_discount_per_so_line:0
msgid "Allows you to apply some discount per sales order line."
msgstr "Lehetővé teszi a megrendelés soraihoz árengedmény alkalmazását"
msgstr ""
"Lehetővé teszi a megrendelés egyes soraihoz árengedmény alkalmazását."
#. module: sale
#: view:sale.order.line:0
msgid "Sales Order Lines that are in 'done' state"
msgstr "'Elvégzett' állapotú megrendelési sorok"
msgstr "'Elvégzett' állapotú vevői megrendelési sorok"
#. module: sale
#: selection:sale.order.line,type:0
@ -349,7 +351,8 @@ msgstr "Érvénytelenített"
#. module: sale
#: view:sale.order.line:0
msgid "Sales Order Lines related to a Sales Order of mine"
msgstr "Megrendelés sorok melyek összefüggenk az én megrendeléseimmel"
msgstr ""
"Megrendelés sorok melyek összefüggenek az én vásárlói megrendeléseimmel"
#. module: sale
#: selection:sale.order,state:0
@ -398,7 +401,7 @@ msgstr "Számlázási cím"
#. module: sale
#: help:sale.order,create_date:0
msgid "Date on which sales order is created."
msgstr "Az értékesítési megbízás létrehozásának dátuma."
msgstr "Vásárlói megrendelés létrehozásának dátuma."
#. module: sale
#: view:res.partner:0
@ -451,7 +454,7 @@ msgid ""
"The 'Waiting Schedule' status is set when the invoice is confirmed "
" but waiting for the scheduler to run on the order date."
msgstr ""
"Az árajánlatkérés vagy a megrendelés állapotát adja. \n"
"Az árajánlatkérés vagy a vásárlói megrendelés állapotát adja. \n"
"A kizárás állapot automatikusan beállított egy visszavonás művelet "
"elvégzésekkor egy számla érvényesítésekor (Számla kizárás) "
"vagy a kiválogatási lista műveletekben (Szállítási kizárás).\n"
@ -482,7 +485,8 @@ msgstr ""
#: help:sale.order.line,sequence:0
msgid "Gives the sequence order when displaying a list of sales order lines."
msgstr ""
"A megrendelés sorrendet adja ha a megrendelési sorok listáját jelzi ki."
"A vásárlói megrendelés sorrendet adja ha a megrendelési sorok listáját jelzi "
"ki."
#. module: sale
#: view:sale.report:0
@ -501,8 +505,8 @@ msgstr "Fax:"
msgid ""
"In order to delete a confirmed sales order, you must cancel it before !"
msgstr ""
"Ahhoz, hogy törölni tudjon egy megerősített megrendelést, először vissza "
"kell vonnia azt !"
"Ahhoz, hogy törölni tudjon egy megerősített vsárlói megrendelést, először "
"vissza kell vonnia azt !"
#. module: sale
#: view:sale.order:0
@ -538,7 +542,7 @@ msgstr "Vevői megrendelés"
#. module: sale
#: model:res.groups,name:sale.group_invoice_so_lines
msgid "Enable Invoicing Sales order lines"
msgstr "Megrendelés sorai számlázásának engedélyezése"
msgstr "Vásárlói megrendelés sorai számlázásának engedélyezése"
#. module: sale
#: model:ir.model,name:sale.model_sale_order_line
@ -573,7 +577,7 @@ msgstr "Egy alkalmazottnak különböző funkciója lehet egy szerződésen bel
#. module: sale
#: selection:sale.advance.payment.inv,advance_payment_method:0
msgid "Invoice the whole sales order"
msgstr "Számlázza ki a teljes megrendelést"
msgstr "Számlázza ki a teljes vásárlói megrendelést"
#. module: sale
#: field:sale.shop,payment_default_id:0
@ -624,7 +628,7 @@ msgstr "Különböző mértékegységek használatának engedélyezése"
#. module: sale
#: model:mail.message.subtype,name:sale.mt_order_confirmed
msgid "Sales Order Confirmed"
msgstr "Megrendelés visszaigazolva"
msgstr "Vásárlói megrendelés visszaigazolva"
#. module: sale
#: view:sale.order:0
@ -675,7 +679,7 @@ msgstr "Összérték"
msgid "Allows you to specify an analytic account on sales orders."
msgstr ""
"Lehetővé teszi az analitikus/elemző könyvelés gyűjtőkód meghatározását a "
"megrendeléseken."
"vevői megrendeléseken."
#. module: sale
#: help:sale.config.settings,module_sale_journal:0
@ -743,7 +747,7 @@ msgstr "Számlázandó"
#. module: sale
#: help:sale.order,partner_invoice_id:0
msgid "Invoice address for current sales order."
msgstr "Az aktuális megrendelés számlázási címe."
msgstr "Az aktuális vevői megrendelés számlázási címe."
#. module: sale
#: selection:sale.order,invoice_quantity:0
@ -887,7 +891,7 @@ msgstr "Megrendelés dátuma"
#. module: sale
#: view:sale.order:0
msgid "Sales Order done"
msgstr "Megrendelés elvégezve"
msgstr "Vevői megrendelés elvégezve"
#. module: sale
#: code:addons/sale/sale.py:364
@ -928,7 +932,7 @@ msgstr "Számla létrehozása és megtekintése"
#. module: sale
#: view:sale.order.line:0
msgid "Sales order lines done"
msgstr "Megrendelési tételek elvégezve"
msgstr "Vevői megrendelési tételek elvégezve"
#. module: sale
#: field:sale.make.invoice,grouped:0
@ -965,11 +969,10 @@ msgid ""
"1.The state of this sales order line is either \"draft\" or \"cancel\"!\n"
"2.The Sales Order Line is Invoiced!"
msgstr ""
"Nem készíthet számlát ehhez az értékesítési megbízási tételhez, az alábbi "
"okok egyike miatt:\n"
"1. Az értékesítési megbízás tételének állapota: \"Tervezet\" vagy "
"\"Mégsem\".\n"
"2. Az értékesítési megbízás tétel már kiszámlázásra került."
"Nem készíthet számlát ehhez a vásárlói megrendelés tételhez, az alábbi okok "
"egyike miatt:\n"
"1. A vevői megrendelés tételének állapota: \"Tervezet\" vagy \"Mégsem\".\n"
"2. A vevői megrendelési tétel már kiszámlázásra került."
#. module: sale
#: view:sale.order.line.make.invoice:0
@ -1048,7 +1051,7 @@ msgstr "Üzlet neve"
#. module: sale
#: view:sale.order:0
msgid "My Sales Orders"
msgstr "Az én megrendeléseim"
msgstr "Az én vevői megrendeléseim"
#. module: sale
#: report:sale.order:0
@ -1085,7 +1088,7 @@ msgstr "Értékesítési menü megnyitása"
#: code:addons/sale/sale.py:598
#, python-format
msgid "You cannot confirm a sales order which has no line."
msgstr "Nem tud megerősíteni tétel nélküli értékesítési megbízást"
msgstr "Nem tud megerősíteni tétel nélküli vevői megrendelést"
#. module: sale
#: selection:sale.report,state:0
@ -1215,7 +1218,7 @@ msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Kattintson új értékesítési hely meghatározáshoz.\n"
" </p><p>\n"
" Mindegyik árajánlatot vagy értékesítési megbízást össze kell "
" Mindegyik árajánlatot vagy vevői megrendelést össze kell "
"kötni egy értékesítési helyhez. Az\n"
" értékesítési hely meghatároz egy raktárhelyet ahonnan a "
"termék\n"
@ -1247,13 +1250,13 @@ msgid ""
"Sales Order Lines that are confirmed, done or in exception state and haven't "
"yet been invoiced"
msgstr ""
"Értékesítési megbízási tételek, melyek megerősítettek, elvégzettek vagy "
"Vásárlói megrendelési tételek, melyek megerősítettek, elvégzettek vagy "
"kifogásolt állapotúak és még nincs számlázva"
#. module: sale
#: model:ir.model,name:sale.model_sale_report
msgid "Sales Orders Statistics"
msgstr "Értékesítési megbízási statisztikák"
msgstr "Vevői megrendelési statisztikák"
#. module: sale
#: field:sale.order,date_order:0
@ -1310,10 +1313,10 @@ msgid ""
"is 'Shipping and Manual in Progress'. The invoice is created automatically "
"if the shipping policy is 'Payment before Delivery'."
msgstr ""
"Az értékesítő manuálisan létrehoz egy számlát, hogy ha az értékesítési "
"megbízás szállítási szabálya: \"Szállítás és manuális vezérléssel "
"folyamatban\". A számla automatikusan létrejön , ha a szállítási szabály: "
"\"Fizetés kiszállítás előtt\"."
"Az értékesítő kézzel hoz létre egy számlát, hogy ha a vevői megrendelés "
"szállítási szabálya: \"Szállítás és manuális vezérléssel folyamatban\". A "
"számla automatikusan létrejön , ha a szállítási szabály: \"Fizetés "
"kiszállítás előtt\"."
#. module: sale
#: model:ir.model,name:sale.model_sale_shop
@ -1351,12 +1354,12 @@ msgstr "Január"
#. module: sale
#: field:sale.config.settings,group_discount_per_so_line:0
msgid "Allow setting a discount on the sales order lines"
msgstr "Engedélyezi a megrendelés tételeire az árengedmény beállítását"
msgstr "Engedélyezi a vevői megrendelés tételeire az árengedmény beállítását"
#. module: sale
#: model:ir.actions.act_window,name:sale.action_orders_in_progress
msgid "Sales Order in Progress"
msgstr "Értékesítési megbízás folyamatban"
msgstr "Folyamatban lévő vevői megrendelés"
#. module: sale
#: view:sale.order.line.make.invoice:0
@ -1366,9 +1369,9 @@ msgid ""
" or a fixed price (for advances) directly from the sales "
"order form if you prefer."
msgstr ""
"Ezen a megrendelésen minden tétel sor számlázva lesz. Lehetősége van a "
"megrendelés egy bizonyos százalékának számlázására\n"
" vagy fix ár (az előlegekre), ah kívánja direkt a "
"Ezen a vásárlói megrendelésen minden tétel sor számlázva lesz. Lehetősége "
"van a megrendelés egy bizonyos százalékának számlázására\n"
" vagy fix ár (az előlegekre), ha kívánja direkt a "
"megrendelés űrlapról."
#. module: sale
@ -1394,7 +1397,7 @@ msgstr "Paypal Url"
#. module: sale
#: help:sale.order,project_id:0
msgid "The analytic account related to a sales order."
msgstr "Az értékesítési megbízáshoz kapcsolódó analitikus/elemző számla."
msgstr "A vevői megrendeléshez kapcsolódó analitikus/elemző számla."
#. module: sale
#: view:sale.order:0
@ -1435,7 +1438,7 @@ msgstr ""
#: help:sale.order,origin:0
msgid "Reference of the document that generated this sales order request."
msgstr ""
"A dokumentum hivatkozása, amely létrehozta ezt az értékesítési megbízási "
"A dokumentum hivatkozása, amely létrehozta ezt a vásárlói megrendelési "
"igényt."
#. module: sale
@ -1478,7 +1481,7 @@ msgstr "Hiba figyelmen kívül hagyása"
#. module: sale
#: help:sale.order,partner_shipping_id:0
msgid "Delivery address for current sales order."
msgstr "Szállítási cím a jelenlegi megrendeléshez."
msgstr "Szállítási cím a jelenlegi vásárlói megrendeléshez."
#. module: sale
#: field:sale.config.settings,module_sale_margin:0
@ -1492,9 +1495,9 @@ msgid ""
"The same sales order may have been invoiced in several times (by line for "
"example)."
msgstr ""
"Ez egy olyan számlalista, amely ehhez az értékesítési megbízáshoz jött "
"létre. Ugyanaz az értékesítési megbízás több alkalommal is számlázásra "
"kerülhetett (például tételek alapján)."
"Ez egy olyan számlalista, amely ehhez a vevői megrendeléshez jött létre. "
"Ugyanaz a vevői megrendelés több alkalommal is számlázásra kerülhetett "
"(például tételek alapján)."
#. module: sale
#: report:sale.order:0
@ -1606,7 +1609,7 @@ msgstr "Számla"
#. module: sale
#: view:sale.order.line:0
msgid "My Sales Order Lines"
msgstr "Az én értékesítési megbízásam tételei"
msgstr "Az én vevői megrendekléseim tételei"
#. module: sale
#: model:process.transition.action,name:sale.process_transition_action_cancel0
@ -1630,7 +1633,7 @@ msgstr "Nincs árlista ! : "
#. module: sale
#: view:sale.order:0
msgid "Sales Order "
msgstr "Megrendelés "
msgstr "Vásárlói megrendelés "
#. module: sale
#: model:mail.message.subtype,description:sale.mt_order_sent
@ -1668,8 +1671,8 @@ msgid ""
" "
msgstr ""
"<p>\n"
" Ez itt a lista a már kiszámlázott megrendelési tételekről. "
"Tud\n"
" Ez itt a lista a már kiszámlázott vevői megrendelési "
"tételekről. Tud\n"
" számlázni megrendelési részt, a megrendelés tételeivel. "
"Nincs\n"
" szüksége erre a listára, ha kiszállítási Kiszolgáltatási "
@ -1695,7 +1698,7 @@ msgstr "Nem csoportosíthat különböző devizákon értékesítést egy partne
#. module: sale
#: view:sale.advance.payment.inv:0
msgid "Invoice Sales Order"
msgstr "Megrendelés számlázás"
msgstr "Vevői megrendelés számlázás"
#. module: sale
#: help:sale.order,invoice_quantity:0
@ -1705,8 +1708,8 @@ msgid ""
"if you want your invoice based on ordered "
msgstr ""
"A megrendelés automatikusan létre lesz hozva a díjbekérő / előleg (Számla "
"terv) alapján. Választhatja, ha "
"akarja a számlázást a megrendelés alapján "
"terv) alapján. Ki kell "
"választania, ha a számlázást a megrendelés alapján kívánja "
#. module: sale
#: field:sale.config.settings,module_account_analytic_analysis:0
@ -1998,12 +2001,12 @@ msgid ""
"Before delivery: A draft invoice is created from the sales order and must be "
"paid before the products can be delivered."
msgstr ""
"Igényléskori: Egy terv/előleg számla hozható létre a megrendelésből, ha "
"szükséges. \n"
"Igényléskori: Egy terv/előleg számla hozható létre a vevői megrendelésből, "
"ha szükséges. \n"
"A kézbesítési bizonylatkor: Egy terv/előleg számla hozható létre a "
"kézbesítési bizonylatra ha az árut szállításba adták. \n"
"Szállítás előtt: Egy terv/előleg számla hozható létre a megrendelésből és ki "
"kell egyenlíteni mielőtt az árut kiszállítanák."
"kézbesítési bizonylatra, ha az árut szállításba adták. \n"
"Szállítás előtt: Egy terv/előleg számla hozható létre a vevői megrendelésből "
"és ki kell egyenlíteni mielőtt az árut kiszállítanák."
#. module: sale
#: model:ir.actions.act_window,help:sale.action_order_report_all
@ -2014,8 +2017,8 @@ msgid ""
"having invoiced yet. If you want to analyse your turnover, you should use "
"the Invoice Analysis report in the Accounting application."
msgstr ""
"Ez a jelentés elemzést készít az árajánlatairól és az értékesítési "
"megbízásairól. Az elemzés kimutatja az értékesítési bevételeit, és "
"Ez a jelentés elemzést készít az árajánlatairól és a vásárlói "
"megrendelésekről. Az elemzés kimutatja az értékesítés bevételeit, és "
"szétosztja különböző kritériumok alapján (értékesítő, partner, termék stb.). "
"Használja ezt a jelentést, ha elemzést szeretne készíteni a még ki nem "
"számlázott értékesítéseiről. Ha a forgalmát szeretné elemezni, akkor "
@ -2064,10 +2067,10 @@ msgstr ""
" a megrendelés visszaigazolásában, a szállításban,\n"
" a számlázásban és az áru ellenértékének beszedésében.\n"
" </p><p>\n"
" A társadalmi jellemzők segítenek az értékesítések "
" A társadalmi jellemzők segítenek a vevői megrendelések "
"megbeszélésének szervezésében,\n"
" és lehetővé teszik a megrendeléseken a vásárlói fejlődésének "
"követését.\n"
" és lehetővé teszik a megrendeléseken a vásárlói "
"megrendelések fejlődésénak követését.\n"
" </p>\n"
" "
@ -2138,7 +2141,7 @@ msgid ""
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Kattintson megrendelésre átalakítható árajánlat "
" Kattintson vásárlói megrendelésre átalakítható árajánlat "
"létrehozásához.\n"
" </p><p>\n"
" OpenERP segít a hatékony értékesítési folyamat hatékony "
@ -2237,8 +2240,8 @@ msgid ""
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Kattintson ehhez a vevőhöz tartozó árajánlat vagy "
"értékesítési megbízás létrehozásához.\n"
" Kattintson ehhez a vevőhöz tartozó árajánlat vagy vevői "
"megrendelés létrehozásához.\n"
" </p><p>\n"
" OpenERP segít az értékesítési folyamat hatékony "
"kezelésében:\n"
@ -2266,7 +2269,7 @@ msgstr "Üzenetek és kommunikáció történet"
#: view:sale.order:0
#: view:sale.order.line:0
msgid "Search Sales Order"
msgstr "Értékesítési megbízás keresése"
msgstr "Vásárlói megrendelés keresése"
#. module: sale
#: report:sale.order:0
@ -2294,12 +2297,13 @@ msgstr "A megrendelés megrendelési hónapja"
#. module: sale
#: model:process.transition,name:sale.process_transition_saleinvoice0
msgid "From a sales order"
msgstr "Értékesítési megbízásból"
msgstr "Vevői megrendelésből"
#. module: sale
#: view:sale.order.line:0
msgid "Confirmed sales order lines, not yet delivered"
msgstr "Megerősített megrendelési tételek, amiket még nem szállítottak ki"
msgstr ""
"Megerősített vásárlói megrendelési tételek, melyeket még nem szállítottak ki"
#. module: sale
#: model:process.transition,note:sale.process_transition_saleinvoice0
@ -2309,10 +2313,10 @@ msgid ""
"generates an invoice or a delivery order as soon as it is confirmed by the "
"salesman."
msgstr ""
"Az értékesítési megbízás számlázási beállításaitól függően a számla "
"alapulhat a kiszállítási vagy a megrendelési mennyiségen. A rendszer az "
"értékesítési megbízásból létrehozhat egy számlát vagy egy kiszállítási "
"megbízást, amint az értékesítő megerősíti azt."
"A vevői megrendelés számlázási beállításaitól függően a számla alapulhat a "
"kiszállítási vagy a megrendelési mennyiségen. A rendszer a vevői "
"megrendelésből létrehozhat egy számlát vagy egy kiszállítási megbízást, "
"amint az értékesítő megerősíti azt."
#. module: sale
#: view:sale.order:0
@ -2346,7 +2350,7 @@ msgstr "Számlázásra kész megrendelés"
#. module: sale
#: field:sale.config.settings,group_invoice_so_lines:0
msgid "Generate invoices based on the sales order lines"
msgstr "Számla létrehozása a megrendelési téetelsorokra"
msgstr "Számla létrehozása a vevői megrendelési téetelsorokra"
#. module: sale
#: view:sale.advance.payment.inv:0
@ -2360,12 +2364,12 @@ msgstr "vagy"
#: view:sale.order:0
#: view:sale.order.line:0
msgid "Sales Order Lines"
msgstr "Értékesítési megbízási tételek"
msgstr "Vevői megrendelési tételek"
#. module: sale
#: help:sale.order,pricelist_id:0
msgid "Pricelist for current sales order."
msgstr "A jelenlegi értékesítési megbízás árlistája."
msgstr "A jelenlegi vevői megrendelés árlistája."
#. module: sale
#: report:sale.order:0
@ -2395,7 +2399,7 @@ msgid ""
"between the Unit Price and Cost Price.\n"
" This installs the module sale_margin."
msgstr ""
"Ez hozzáadja az 'Árrés' -t a megrendelésre.\n"
"Ez hozzáadja az 'Árrés' -t a vevői megrendelésre.\n"
" Jövedelmezőséget ad az egységár és a költség ár "
"különbözetéből.\n"
" Ez a sale_margin modult telepíti."

View File

@ -318,6 +318,9 @@ class sale_order(osv.osv):
context = {}
if vals.get('name', '/') == '/':
vals['name'] = self.pool.get('ir.sequence').get(cr, uid, 'sale.order') or '/'
if vals.get('partner_id') and any(f not in vals for f in ['partner_invoice_id', 'partner_shipping_id', 'pricelist_id']):
defaults = self.onchange_partner_id(cr, uid, [], vals['partner_id'], context)['value']
vals = dict(defaults, **vals)
context.update({'mail_create_nolog': True})
new_id = super(sale_order, self).create(cr, uid, vals, context=context)
self.message_post(cr, uid, [new_id], body=_("Quotation created"), context=context)
@ -831,6 +834,24 @@ class sale_order_line(osv.osv):
pass
return {'value': value}
def create(self, cr, uid, values, context=None):
if values.get('order_id') and values.get('product_id') and any(f not in values for f in ['name', 'price_unit', 'type', 'product_uom_qty', 'product_uom']):
order = self.pool['sale.order'].read(cr, uid, values['order_id'], ['pricelist_id', 'partner_id', 'date_order', 'fiscal_position'], context=context)
defaults = self.product_id_change(cr, uid, [], order['pricelist_id'][0], values['product_id'],
qty=float(values.get('product_uom_qty', False)),
uom=values.get('product_uom', False),
qty_uos=float(values.get('product_uos_qty', False)),
uos=values.get('product_uos', False),
name=values.get('name', False),
partner_id=order['partner_id'][0],
date_order=order['date_order'],
fiscal_position=order['fiscal_position'][0] if order['fiscal_position'] else False,
flag=False, # Force name update
context=context
)['value']
values = dict(defaults, **values)
return super(sale_order_line, self).create(cr, uid, values, context=context)
def copy_data(self, cr, uid, id, default=None, context=None):
if not default:
default = {}
@ -976,9 +997,9 @@ class mail_compose_message(osv.Model):
def send_mail(self, cr, uid, ids, context=None):
context = context or {}
if context.get('active_model') == 'sale.order' and context.get('active_ids') and context.get('mark_so_as_sent'):
if context.get('default_model') == 'sale.order' and context.get('default_res_id') and context.get('mark_so_as_sent'):
context = dict(context, mail_post_autofollow=True)
self.pool.get('sale.order').signal_quotation_sent(cr, uid, context['active_ids'])
self.pool.get('sale.order').signal_quotation_sent(cr, uid, [context['default_res_id']])
return super(mail_compose_message, self).send_mail(cr, uid, ids, context=context)

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-01-07 22:28+0000\n"
"PO-Revision-Date: 2013-12-09 15:55+0000\n"
"Last-Translator: krnkris <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: 2013-09-12 05:57+0000\n"
"X-Generator: Launchpad (build 16761)\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: sale_analytic_plans
#: field:sale.order.line,analytics_id:0
@ -29,7 +29,7 @@ msgstr "Vevői megrendelés"
#. module: sale_analytic_plans
#: model:ir.model,name:sale_analytic_plans.model_sale_order_line
msgid "Sales Order Line"
msgstr "Vevői megrendelés sor"
msgstr "Vevői megrendelési tétel sor"
#~ msgid "Sales Analytic Distribution Management"
#~ msgstr "Értékesítés analitikus felosztás kezelés"

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2011-02-01 18:33+0000\n"
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
"PO-Revision-Date: 2013-12-09 15:59+0000\n"
"Last-Translator: krnkris <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: 2013-09-12 05:19+0000\n"
"X-Generator: Launchpad (build 16761)\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: sale_crm
#: code:addons/sale_crm/wizard/crm_make_sale.py:92
@ -81,7 +81,7 @@ msgstr "Árajánlat"
#. module: sale_crm
#: field:crm.make.sale,partner_id:0
msgid "Customer"
msgstr "Vevő"
msgstr "Vásárló"
#. module: sale_crm
#: view:crm.make.sale:0
@ -91,7 +91,7 @@ msgstr "_Létrehoz"
#. module: sale_crm
#: model:ir.model,name:sale_crm.model_crm_make_sale
msgid "Make sales"
msgstr "Értékesítés létrehozás"
msgstr "Vevői értékesítés létrehozás"
#. module: sale_crm
#: model:ir.model,name:sale_crm.model_account_invoice
@ -108,7 +108,7 @@ msgstr "Lehetőség: %s"
#: code:addons/sale_crm/wizard/crm_make_sale.py:113
#, python-format
msgid "Opportunity has been <b>converted</b> to the quotation <em>%s</em>."
msgstr "A lehetőségát lett <b>konvertálva</b> árajánlattá <em>%s</em>."
msgstr "A lehetőség át lett <b>konvertálva</b> árajánlattá <em>%s</em>."
#. module: sale_crm
#: field:crm.make.sale,shop_id:0
@ -119,12 +119,12 @@ msgstr "Üzlet"
#: code:addons/sale_crm/wizard/crm_make_sale.py:92
#, python-format
msgid "No addresse(s) defined for this customer."
msgstr "Ehhez a vevőhöz nem lett cím meghatározva."
msgstr "Ehhez a vevőhöz nem lett meghatározva cím."
#. module: sale_crm
#: model:mail.message.subtype,name:sale_crm.mt_salesteam_order_confirmed
msgid "Sales Order Confirmed"
msgstr "Megrendelés visszaigazolva"
msgstr "Vásárlói megrendelés visszaigazolva"
#. module: sale_crm
#: view:account.invoice:0

View File

@ -26,6 +26,18 @@ from dateutil import relativedelta
from openerp import tools
from openerp.osv import osv, fields
class res_users(osv.Model):
_inherit = 'res.users'
_columns = {
'default_section_id': fields.many2one('crm.case.section', 'Default Sales Team'),
}
def __init__(self, pool, cr):
init_res = super(res_users, self).__init__(pool, cr)
# duplicate list to avoid modifying the original reference
self.SELF_WRITEABLE_FIELDS = list(self.SELF_WRITEABLE_FIELDS)
self.SELF_WRITEABLE_FIELDS.extend(['default_section_id'])
return init_res
class sale_order(osv.osv):
_inherit = 'sale.order'
@ -35,6 +47,17 @@ class sale_order(osv.osv):
domain="['|',('section_id','=',section_id),('section_id','=',False), ('object_id.model', '=', 'crm.lead')]", context="{'object_name': 'crm.lead'}")
}
def _get_default_section_id(self, cr, uid, context=None):
""" Gives default section by checking if present in the context """
section_id = self.pool.get('crm.lead')._resolve_section_id_from_context(cr, uid, context=context) or False
if not section_id:
section_id = self.pool.get('res.users').browse(cr, uid, uid, context).default_section_id.id or False
return section_id
_defaults = {
'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c),
}
def _prepare_invoice(self, cr, uid, order, lines, context=None):
invoice_vals = super(sale_order, self)._prepare_invoice(cr, uid, order, lines, context=context)
if order.section_id and order.section_id.id:
@ -92,21 +115,6 @@ class crm_case_section(osv.osv):
def action_forecast(self, cr, uid, id, value, context=None):
return self.write(cr, uid, [id], {'invoiced_forecast': round(float(value))}, context=context)
class res_users(osv.Model):
_inherit = 'res.users'
_columns = {
'default_section_id': fields.many2one('crm.case.section', 'Default Sales Team'),
}
def __init__(self, pool, cr):
init_res = super(res_users, self).__init__(pool, cr)
# duplicate list to avoid modifying the original reference
self.SELF_WRITEABLE_FIELDS = list(self.SELF_WRITEABLE_FIELDS)
self.SELF_WRITEABLE_FIELDS.extend(['default_section_id'])
return init_res
class sale_crm_lead(osv.Model):
_inherit = 'crm.lead'

View File

@ -47,7 +47,7 @@ class crm_make_sale(osv.osv_memory):
return False
lead = lead_obj.read(cr, uid, active_id, ['partner_id'], context=context)
return lead['partner_id'][0]
return lead['partner_id'][0] if lead['partner_id'] else False
def view_init(self, cr, uid, fields_list, context=None):
return super(crm_make_sale, self).view_init(cr, uid, fields_list, context=context)

View File

@ -0,0 +1,139 @@
# Spanish (Peru) translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-12-09 18:37+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Peru) <es_PE@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: sale_journal
#: field:sale_journal.invoice.type,note:0
msgid "Note"
msgstr ""
#. module: sale_journal
#: field:res.partner,property_invoice_type:0
msgid "Invoicing Type"
msgstr ""
#. module: sale_journal
#: help:res.partner,property_invoice_type:0
msgid ""
"This invoicing type will be used, by default, to invoice the current partner."
msgstr ""
#. module: sale_journal
#: view:res.partner:0
msgid "Sales & Purchases"
msgstr ""
#. module: sale_journal
#: view:res.partner:0
msgid "Invoicing"
msgstr ""
#. module: sale_journal
#: model:ir.model,name:sale_journal.model_stock_picking_in
msgid "Incoming Shipments"
msgstr "Entregas a Recibir"
#. module: sale_journal
#: help:sale_journal.invoice.type,active:0
msgid ""
"If the active field is set to False, it will allow you to hide the invoice "
"type without removing it."
msgstr ""
#. module: sale_journal
#: view:sale_journal.invoice.type:0
msgid "Notes"
msgstr ""
#. module: sale_journal
#: field:sale_journal.invoice.type,invoicing_method:0
msgid "Invoicing method"
msgstr ""
#. module: sale_journal
#: model:ir.model,name:sale_journal.model_stock_picking
msgid "Picking List"
msgstr "Guía"
#. module: sale_journal
#: model:ir.actions.act_window,name:sale_journal.action_definition_journal_invoice_type
#: model:ir.model,name:sale_journal.model_sale_journal_invoice_type
#: model:ir.ui.menu,name:sale_journal.menu_definition_journal_invoice_type
msgid "Invoice Types"
msgstr ""
#. module: sale_journal
#: selection:sale_journal.invoice.type,invoicing_method:0
msgid "Non grouped"
msgstr ""
#. module: sale_journal
#: selection:sale_journal.invoice.type,invoicing_method:0
msgid "Grouped"
msgstr ""
#. module: sale_journal
#: model:ir.actions.act_window,help:sale_journal.action_definition_journal_invoice_type
msgid ""
"Invoice types are used for partners, sales orders and delivery orders. You "
"can create a specific invoicing journal to group your invoicing according to "
"your customer's needs: daily, each Wednesday, monthly, etc."
msgstr ""
"Los tipos de facturas son utilizados por las Empresas, Pedidos de Venta y "
"Órdenes de Entrega. Puede crear un diario de facturación específico para "
"agrupar su facturación en función de las necesidades de sus clientes: "
"diaria, cada miércoles, mensual, etc."
#. module: sale_journal
#: help:sale.order,invoice_type_id:0
msgid "Generate invoice based on the selected option."
msgstr ""
#. module: sale_journal
#: view:sale.order:0
#: field:sale.order,invoice_type_id:0
#: view:sale_journal.invoice.type:0
#: field:sale_journal.invoice.type,name:0
#: view:stock.picking:0
#: field:stock.picking,invoice_type_id:0
#: view:stock.picking.in:0
#: field:stock.picking.in,invoice_type_id:0
#: view:stock.picking.out:0
#: field:stock.picking.out,invoice_type_id:0
msgid "Invoice Type"
msgstr ""
#. module: sale_journal
#: field:sale_journal.invoice.type,active:0
msgid "Active"
msgstr ""
#. module: sale_journal
#: model:ir.model,name:sale_journal.model_res_partner
msgid "Partner"
msgstr ""
#. module: sale_journal
#: model:ir.model,name:sale_journal.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: sale_journal
#: model:ir.model,name:sale_journal.model_stock_picking_out
msgid "Delivery Orders"
msgstr ""

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2011-02-01 22:09+0000\n"
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
"PO-Revision-Date: 2013-12-09 16:03+0000\n"
"Last-Translator: krnkris <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: 2013-09-12 06:13+0000\n"
"X-Generator: Launchpad (build 16761)\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: sale_margin
#: field:sale.order.line,purchase_price:0
@ -35,7 +35,7 @@ msgstr "Árrés"
#. module: sale_margin
#: model:ir.model,name:sale_margin.model_sale_order_line
msgid "Sales Order Line"
msgstr "Vevői megrendelés sor"
msgstr "Vevői megrendelési tétel sor"
#. module: sale_margin
#: help:sale.order,margin:0

View File

@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2011-02-01 22:23+0000\n"
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
"PO-Revision-Date: 2013-12-09 16:06+0000\n"
"Last-Translator: krnkris <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: 2013-09-12 06:14+0000\n"
"X-Generator: Launchpad (build 16761)\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: sale_mrp
#: model:ir.model,name:sale_mrp.model_mrp_production
msgid "Manufacturing Order"
msgstr "Gyártási utasítás"
msgstr "Gyártási rendelés"
#. module: sale_mrp
#: help:mrp.production,sale_name:0
@ -34,7 +34,7 @@ msgstr "A vevői megrendelés vevő hivatkozására utal."
#. module: sale_mrp
#: field:mrp.production,sale_ref:0
msgid "Sale Reference"
msgstr "Értékesítési referencia"
msgstr "Vevői megrendelési referencia"
#. module: sale_mrp
#: field:mrp.production,sale_name:0

View File

@ -0,0 +1,43 @@
# Thai translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-12-12 11:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Thai <th@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-12-13 05:52+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: sale_mrp
#: model:ir.model,name:sale_mrp.model_mrp_production
msgid "Manufacturing Order"
msgstr ""
#. module: sale_mrp
#: help:mrp.production,sale_name:0
msgid "Indicate the name of sales order."
msgstr ""
#. module: sale_mrp
#: help:mrp.production,sale_ref:0
msgid "Indicate the Customer Reference from sales order."
msgstr ""
#. module: sale_mrp
#: field:mrp.production,sale_ref:0
msgid "Sale Reference"
msgstr ""
#. module: sale_mrp
#: field:mrp.production,sale_name:0
msgid "Sale Name"
msgstr ""

View File

@ -0,0 +1,58 @@
# Spanish (Peru) translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-12-09 18:32+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Peru) <es_PE@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: sale_order_dates
#: view:sale.order:0
msgid "Dates"
msgstr ""
#. module: sale_order_dates
#: field:sale.order,commitment_date:0
msgid "Commitment Date"
msgstr "Fecha Prometida"
#. module: sale_order_dates
#: field:sale.order,effective_date:0
msgid "Effective Date"
msgstr ""
#. module: sale_order_dates
#: help:sale.order,effective_date:0
msgid "Date on which picking is created."
msgstr "Fecha en que la Guía fue creada."
#. module: sale_order_dates
#: help:sale.order,requested_date:0
msgid "Date requested by the customer for the sale."
msgstr ""
#. module: sale_order_dates
#: field:sale.order,requested_date:0
msgid "Requested Date"
msgstr ""
#. module: sale_order_dates
#: model:ir.model,name:sale_order_dates.model_sale_order
msgid "Sales Order"
msgstr ""
#. module: sale_order_dates
#: help:sale.order,commitment_date:0
msgid "Committed date for delivery."
msgstr ""

View File

@ -0,0 +1,609 @@
# Spanish (Peru) translation for openobject-addons
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-12-09 18:14+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Peru) <es_PE@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: sale_stock
#: help:sale.config.settings,group_invoice_deli_orders:0
msgid ""
"To allow your salesman to make invoices for Delivery Orders using the menu "
"'Deliveries to Invoice'."
msgstr ""
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_deliveryorder0
msgid "Delivery Order"
msgstr ""
#. module: sale_stock
#: model:ir.actions.act_window,name:sale_stock.outgoing_picking_list_to_invoice
#: model:ir.ui.menu,name:sale_stock.menu_action_picking_list_to_invoice
msgid "Deliveries to Invoice"
msgstr "Entregas a facturar"
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:570
#, python-format
msgid "Picking Information ! : "
msgstr "Información de la Guía! "
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_packinglist0
msgid "Pick List"
msgstr "Guía"
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:565
#, python-format
msgid ""
"You selected a quantity of %d Units.\n"
"But it's not compatible with the selected packaging.\n"
"Here is a proposition of quantities according to the packaging:\n"
"EAN: %s Quantity: %s Type of ul: %s"
msgstr ""
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_packinglist0
msgid "Document of the move to the output or to the customer."
msgstr ""
#. module: sale_stock
#: field:sale.config.settings,group_multiple_shops:0
msgid "Manage multiple shops"
msgstr ""
#. module: sale_stock
#: model:process.transition.action,name:sale_stock.process_transition_action_validate0
msgid "Validate"
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:209
#, python-format
msgid ""
"You must first cancel all delivery order(s) attached to this sales order."
msgstr ""
#. module: sale_stock
#: model:process.transition,name:sale_stock.process_transition_saleprocurement0
msgid "Create Procurement Order"
msgstr ""
#. module: sale_stock
#: field:stock.picking.out,sale_id:0
msgid "Sale Order"
msgstr ""
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_saleorderprocurement0
msgid ""
"For every sales order line, a procurement order is created to supply the "
"sold product."
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:615
#, python-format
msgid "Error!"
msgstr ""
#. module: sale_stock
#: field:sale.order,picking_policy:0
msgid "Shipping Policy"
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:616
#, python-format
msgid ""
"You cannot make an advance on a sales order that is "
"defined as 'Automatic Invoice after delivery'."
msgstr ""
#. module: sale_stock
#: model:ir.ui.menu,name:sale_stock.menu_action_shop_form
msgid "Shop"
msgstr ""
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_saleorderprocurement0
msgid "Drives procurement orders for every sales order line."
msgstr ""
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_stock_move
msgid "Stock Move"
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:163
#, python-format
msgid "Invalid Action!"
msgstr ""
#. module: sale_stock
#: field:sale.config.settings,module_project_timesheet:0
msgid "Project Timesheet"
msgstr ""
#. module: sale_stock
#: field:sale.config.settings,group_sale_delivery_address:0
msgid "Allow a different address for delivery and invoicing "
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:572
#: code:addons/sale_stock/sale_stock.py:623
#, python-format
msgid "Configuration Error!"
msgstr ""
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_saleprocurement0
msgid "Procurement Order"
msgstr ""
#. module: sale_stock
#: selection:sale.config.settings,default_order_policy:0
msgid "Invoice based on deliveries"
msgstr "Facturar desde entregas"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_order
#: field:stock.picking,sale_id:0
msgid "Sales Order"
msgstr ""
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_stock_picking_out
msgid "Delivery Orders"
msgstr ""
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_order_line
#: field:stock.move,sale_line_id:0
msgid "Sales Order Line"
msgstr ""
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_packing0
msgid ""
"The Pick List form is created as soon as the sales order is confirmed, in "
"the same time as the procurement order. It represents the assignment of "
"parts to the sales order. There is 1 pick list by sales order line which "
"evolves with the availability of parts."
msgstr ""
"El Guía se crea tan pronto como se confirma el pedido de venta, a la vez que "
"la orden de abastecimiento. Representa la asignación de los componentes del "
"pedido de venta. Hay una Guía por línea del pedido de venta que evoluciona "
"según la disponibilidad de los componentes."
#. module: sale_stock
#: help:res.company,security_lead:0
msgid ""
"This is the days added to what you promise to customers for security purpose"
msgstr ""
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_stock_picking
msgid "Picking List"
msgstr "Guía"
#. module: sale_stock
#: field:sale.shop,warehouse_id:0
msgid "Warehouse"
msgstr ""
#. module: sale_stock
#: model:process.transition.action,name:sale_stock.process_transition_action_forceassignation0
msgid "Force Assignation"
msgstr ""
#. module: sale_stock
#: field:sale.config.settings,default_order_policy:0
msgid "The default invoicing method is"
msgstr ""
#. module: sale_stock
#: field:sale.order.line,delay:0
msgid "Delivery Lead Time"
msgstr ""
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_deliveryorder0
msgid "Document of the move to the customer."
msgstr ""
#. module: sale_stock
#: view:sale.order:0
msgid "View Delivery Order"
msgstr ""
#. module: sale_stock
#: field:sale.order.line,move_ids:0
msgid "Inventory Moves"
msgstr ""
#. module: sale_stock
#: view:sale.config.settings:0
msgid "Default Options"
msgstr ""
#. module: sale_stock
#: field:sale.config.settings,module_project_mrp:0
msgid "Project MRP"
msgstr ""
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_invoiceafterdelivery0
msgid ""
"The invoice is created automatically if the shipping policy is 'Invoice from "
"pick' or 'Invoice on order after delivery'."
msgstr ""
#. module: sale_stock
#: field:sale.order.line,procurement_id:0
msgid "Procurement"
msgstr ""
#. module: sale_stock
#: view:sale.report:0
#: field:sale.report,shipped:0
#: field:sale.report,shipped_qty_1:0
msgid "Shipped"
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:265
#, python-format
msgid "invalid mode for test_state"
msgstr ""
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_saleprocurement0
msgid ""
"A procurement order is automatically created as soon as a sales order is "
"confirmed or as the invoice is paid. It drives the purchasing and the "
"production of products regarding to the rules and to the sales order's "
"parameters. "
msgstr ""
#. module: sale_stock
#: help:sale.config.settings,group_mrp_properties:0
msgid "Allows you to tag sales order lines with properties."
msgstr ""
#. module: sale_stock
#: field:sale.config.settings,group_invoice_deli_orders:0
msgid "Generate invoices after and based on delivery orders"
msgstr ""
#. module: sale_stock
#: field:sale.config.settings,module_delivery:0
msgid "Allow adding shipping costs"
msgstr ""
#. module: sale_stock
#: view:sale.order:0
msgid "days"
msgstr ""
#. module: sale_stock
#: field:sale.order.line,product_packaging:0
msgid "Packaging"
msgstr ""
#. module: sale_stock
#: help:sale.order,incoterm:0
msgid ""
"International Commercial Terms are a series of predefined commercial terms "
"used in international transactions."
msgstr ""
#. module: sale_stock
#: help:sale.config.settings,module_delivery:0
msgid ""
"Allows you to add delivery methods in sales orders and delivery orders.\n"
" You can define your own carrier and delivery grids for "
"prices.\n"
" This installs the module delivery."
msgstr ""
#. module: sale_stock
#: field:sale.config.settings,default_picking_policy:0
msgid "Deliver all at once when all products are available."
msgstr ""
#. module: sale_stock
#: model:res.groups,name:sale_stock.group_invoice_deli_orders
msgid "Enable Invoicing Delivery orders"
msgstr ""
#. module: sale_stock
#: field:res.company,security_lead:0
msgid "Security Days"
msgstr ""
#. module: sale_stock
#: model:process.transition,name:sale_stock.process_transition_saleorderprocurement0
msgid "Procurement of sold material"
msgstr ""
#. module: sale_stock
#: help:sale.order,picking_policy:0
msgid ""
"Pick 'Deliver each product when available' if you allow partial delivery."
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:208
#, python-format
msgid "Cannot cancel sales order!"
msgstr ""
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_shop
msgid "Sales Shop"
msgstr "Tiendas"
#. module: sale_stock
#: help:sale.order,shipped:0
msgid ""
"It indicates that the sales order has been delivered. This field is updated "
"only after the scheduler(s) have been launched."
msgstr ""
#. module: sale_stock
#: field:sale.order.line,property_ids:0
msgid "Properties"
msgstr ""
#. module: sale_stock
#: field:sale.config.settings,group_mrp_properties:0
msgid "Product properties on order lines"
msgstr ""
#. module: sale_stock
#: help:sale.config.settings,default_order_policy:0
msgid ""
"You can generate invoices based on sales orders or based on shippings."
msgstr ""
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_report
msgid "Sales Orders Statistics"
msgstr ""
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_res_company
msgid "Companies"
msgstr ""
#. module: sale_stock
#: help:sale.config.settings,task_work:0
msgid ""
"Lets you transfer the entries under tasks defined for Project Management to\n"
" the Timesheet line entries for particular date and "
"particular user with the effect of creating, editing and deleting either "
"ways\n"
" and to automatically creates project tasks from procurement "
"lines.\n"
" This installs the modules project_timesheet and project_mrp."
msgstr ""
#. module: sale_stock
#: help:sale.config.settings,group_sale_delivery_address:0
msgid ""
"Allows you to specify different delivery and invoice addresses on a sales "
"order."
msgstr ""
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_saleprocurement0
msgid ""
"One Procurement order for each sales order line and for each of the "
"components."
msgstr ""
#. module: sale_stock
#: model:process.transition.action,name:sale_stock.process_transition_action_assign0
msgid "Assign"
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:618
#, python-format
msgid "Not enough stock ! : "
msgstr ""
#. module: sale_stock
#: help:sale.order.line,delay:0
msgid ""
"Number of days between the order confirmation and the shipping of the "
"products to the customer"
msgstr ""
#. module: sale_stock
#: help:sale.config.settings,default_picking_policy:0
msgid ""
"Sales order by default will be configured to deliver all products at once "
"instead of delivering each product when it is available. This may have an "
"impact on the shipping price."
msgstr ""
#. module: sale_stock
#: selection:sale.config.settings,default_order_policy:0
msgid "Invoice based on sales orders"
msgstr ""
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_invoiceafterdelivery0
msgid "Invoice"
msgstr ""
#. module: sale_stock
#: model:process.transition.action,name:sale_stock.process_transition_action_cancel1
#: model:process.transition.action,name:sale_stock.process_transition_action_cancel2
msgid "Cancel"
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:163
#, python-format
msgid ""
"In order to delete a confirmed sales order, you must cancel it.\n"
"To do so, you must first cancel related picking for delivery orders."
msgstr ""
"Para borrar un pedido de venta confirmado, debe cancelarlo.\n"
"Para hacerlo, debe cancelar primero las guías relacionadas para sus órdenes "
"de entrega."
#. module: sale_stock
#: field:sale.order.line,number_packages:0
msgid "Number Packages"
msgstr ""
#. module: sale_stock
#: field:sale.order,shipped:0
msgid "Delivered"
msgstr ""
#. module: sale_stock
#: model:process.transition,name:sale_stock.process_transition_invoiceafterdelivery0
msgid "Create Invoice"
msgstr ""
#. module: sale_stock
#: field:sale.config.settings,task_work:0
msgid "Prepare invoices based on task's activities"
msgstr ""
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:523
#, python-format
msgid "You must first cancel stock moves attached to this sales order line."
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:561
#, python-format
msgid "(n/a)"
msgstr ""
#. module: sale_stock
#: field:sale.order,incoterm:0
msgid "Incoterm"
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:522
#, python-format
msgid "Cannot cancel sales order line!"
msgstr ""
#. module: sale_stock
#: model:process.transition.action,name:sale_stock.process_transition_action_cancelassignation0
msgid "Cancel Assignation"
msgstr ""
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_invoiceafterdelivery0
msgid "Based on the shipped or on the ordered quantities."
msgstr ""
#. module: sale_stock
#: selection:sale.order,picking_policy:0
msgid "Deliver all products at once"
msgstr ""
#. module: sale_stock
#: field:sale.order,picking_ids:0
msgid "Related Picking"
msgstr "Guía relacionada"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_config_settings
msgid "sale.config.settings"
msgstr ""
#. module: sale_stock
#: help:sale.order,picking_ids:0
msgid ""
"This is a list of delivery orders that has been generated for this sales "
"order."
msgstr ""
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_saleorderprocurement0
msgid "Sales Order Requisition"
msgstr ""
#. module: sale_stock
#: model:process.transition,name:sale_stock.process_transition_deliver0
msgid "Create Delivery Order"
msgstr ""
#. module: sale_stock
#: view:sale.order:0
msgid "Ignore Exception"
msgstr ""
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:614
#, python-format
msgid ""
"You plan to sell %.2f %s but you only have %.2f %s available !\n"
"The real stock is %.2f %s. (without reservations)"
msgstr ""
#. module: sale_stock
#: view:sale.order:0
msgid "Recreate Delivery Order"
msgstr ""
#. module: sale_stock
#: help:sale.config.settings,group_multiple_shops:0
msgid "This allows to configure and use multiple shops."
msgstr ""
#. module: sale_stock
#: field:sale.order,picked_rate:0
msgid "Picked"
msgstr ""
#. module: sale_stock
#: selection:sale.order,picking_policy:0
msgid "Deliver each product when available"
msgstr ""
#. module: sale_stock
#: model:process.transition,name:sale_stock.process_transition_packing0
msgid "Create Pick List"
msgstr "Crear Guía"
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_deliver0
msgid ""
"Depending on the configuration of the location Output, the move between the "
"output area and the customer is done through the Delivery Order manually or "
"automatically."
msgstr ""

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
"PO-Revision-Date: 2013-01-10 12:41+0000\n"
"PO-Revision-Date: 2013-12-09 19:30+0000\n"
"Last-Translator: krnkris <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: 2013-09-12 06:36+0000\n"
"X-Generator: Launchpad (build 16761)\n"
"X-Launchpad-Export-Date: 2013-12-11 05:32+0000\n"
"X-Generator: Launchpad (build 16869)\n"
#. module: sale_stock
#: help:sale.config.settings,group_invoice_deli_orders:0
@ -94,7 +94,7 @@ msgstr "Beszerzési megbízás létrehozása"
#. module: sale_stock
#: field:stock.picking.out,sale_id:0
msgid "Sale Order"
msgstr "Rendelés"
msgstr "Vevői megrendelés"
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_saleorderprocurement0
@ -102,7 +102,7 @@ msgid ""
"For every sales order line, a procurement order is created to supply the "
"sold product."
msgstr ""
"Minden értékesítési megbízási sorhoz létrejön egy beszerzési megbízás is az "
"Minden vásárlói megrendelés tételhez, létrehoz egy beszerzési megbízás is az "
"eladott termék előteremtésére."
#. module: sale_stock
@ -123,8 +123,8 @@ msgid ""
"You cannot make an advance on a sales order that is "
"defined as 'Automatic Invoice after delivery'."
msgstr ""
"Nem végezhet előrelépést egy megrendelésen ami úgy van meghatározva, hogy "
"'Szállítás után automatikus számlázás'."
"Nem végezhet díjbekérést egy olyan vásárlói megrendelésen ami úgy van "
"meghatározva, hogy 'Szállítás után automatikus számlázás'."
#. module: sale_stock
#: model:ir.ui.menu,name:sale_stock.menu_action_shop_form
@ -134,7 +134,8 @@ msgstr "Üzlet"
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_saleorderprocurement0
msgid "Drives procurement orders for every sales order line."
msgstr "Beszerzési megbízást generál minden értékesítési megbízási sorhoz."
msgstr ""
"Beszerzési megbízást generál minden vásárlói megrendelési tétel sorhoz."
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_stock_move
@ -150,12 +151,12 @@ msgstr "Érvénytelen lépés!"
#. module: sale_stock
#: field:sale.config.settings,module_project_timesheet:0
msgid "Project Timesheet"
msgstr "Projekt munkaidő-kimutatása"
msgstr "Projekt időbeosztás-kimutatása"
#. module: sale_stock
#: field:sale.config.settings,group_sale_delivery_address:0
msgid "Allow a different address for delivery and invoicing "
msgstr "Engedélyezze akülönböző címeket a szállításhoz és a számlázáshoz "
msgstr "Engedélyezze a szállításhoz és a számlázáshoz a különböző címeket "
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:572
@ -178,7 +179,7 @@ msgstr "Számla a szállítások alapján"
#: model:ir.model,name:sale_stock.model_sale_order
#: field:stock.picking,sale_id:0
msgid "Sales Order"
msgstr "Értékesítési megbízás"
msgstr "Vevői megrendelés"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_stock_picking_out
@ -189,7 +190,7 @@ msgstr "Kiszállítások kézbesítési bizonylatai"
#: model:ir.model,name:sale_stock.model_sale_order_line
#: field:stock.move,sale_line_id:0
msgid "Sales Order Line"
msgstr "Értékesítési megbízási sor"
msgstr "Vevői megrendelési tétel sor"
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_packing0
@ -199,21 +200,22 @@ msgid ""
"parts to the sales order. There is 1 pick list by sales order line which "
"evolves with the availability of parts."
msgstr ""
"The Pick List form is created as soon as the sales order is confirmed, in "
"the same time as the procurement order. It represents the assignment of "
"parts to the sales order. There is 1 pick list by sales order line which "
"evolves with the availability of parts."
"A kiválogatási lista adatlapját a vevői megrendelés visszaigazolásakor "
"azonnal létrehozza, ugyanakkor amikor a beszerzési megbízást. Ez képviseli a "
"vevői megrendelés tételeit. Itt a vevői megrendelés tételekként 1 "
"kiválogatási lista van, ami mindjárt megmutatja a tételek hozzáférhetőségét "
"is."
#. module: sale_stock
#: help:res.company,security_lead:0
msgid ""
"This is the days added to what you promise to customers for security purpose"
msgstr "A vevőknek ígért, biztonsági okokból hozzáadott napok száma."
msgstr "A vevőknek megígért, biztonsági okokból hozzáadott, napok száma."
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_stock_picking
msgid "Picking List"
msgstr "Kiszedési lista"
msgstr "Kiválogatási lista"
#. module: sale_stock
#: field:sale.shop,warehouse_id:0
@ -238,7 +240,7 @@ msgstr "Kiszállítás átfutási idő"
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_deliveryorder0
msgid "Document of the move to the customer."
msgstr "Dokumentum a vevőnek történő mozgásról."
msgstr "Dokumentum a vevőhöz történő mozgatásról."
#. module: sale_stock
#: view:sale.order:0
@ -248,12 +250,12 @@ msgstr "Kiszállítási kézbesítési bizonylatok áttekintése"
#. module: sale_stock
#: field:sale.order.line,move_ids:0
msgid "Inventory Moves"
msgstr "Leltármozgás"
msgstr "Leltárkészlet mozgás"
#. module: sale_stock
#: view:sale.config.settings:0
msgid "Default Options"
msgstr "Alapértelmezett lehetőség"
msgstr "Alapértelmezett lehetőségek"
#. module: sale_stock
#: field:sale.config.settings,module_project_mrp:0
@ -266,8 +268,8 @@ msgid ""
"The invoice is created automatically if the shipping policy is 'Invoice from "
"pick' or 'Invoice on order after delivery'."
msgstr ""
"A számla automatikusan létrejön, ha a kiszállítási szabály: számlázás "
"kiszedésből vagy számlázás kiszállítás után."
"A számla automatikusan létrejön, ha a kiszállítási szabály: 'számlázás "
"kiszedésből' vagy 'számlázás kiszállítás után'."
#. module: sale_stock
#: field:sale.order.line,procurement_id:0
@ -285,7 +287,7 @@ msgstr "Kiszállított"
#: code:addons/sale_stock/sale_stock.py:265
#, python-format
msgid "invalid mode for test_state"
msgstr "érvénytelen mód a tesztállapotban"
msgstr "érvénytelen mód a teszt_állapotban"
#. module: sale_stock
#: model:process.transition,note:sale_stock.process_transition_saleprocurement0
@ -296,21 +298,23 @@ msgid ""
"parameters. "
msgstr ""
"A rendszer automatikusan egy beszerzési megbízást hoz létre, amint "
"megerősítettük az értékesítési megbízást, vagy a számlát kifizették. A "
"rendszer az értékesítési megbízásokon keresztül irányítja a szállítói "
"megrendeléseket és a termékek gyártását is a beállított szabályoknak és az "
"értékesítési megbízás paramétereinek megfelelően. "
"megerősítettük a vevői megrendelést, vagy a számlát kifizették. A rendszer "
"az értékesítési megbízásokon keresztül irányítja a szállítói megrendeléseket "
"és a termékek gyártását is a beállított szabályoknak és a vevői megrendelés "
"paramétereinek megfelelően. "
#. module: sale_stock
#: help:sale.config.settings,group_mrp_properties:0
msgid "Allows you to tag sales order lines with properties."
msgstr "Lehetővé teszi a megrendelési sorok tulajdonságokal való kijelölését"
msgstr ""
"Lehetővé teszi a vásárlói megrendelési tételek tulajdonságokkal való "
"címkézését"
#. module: sale_stock
#: field:sale.config.settings,group_invoice_deli_orders:0
msgid "Generate invoices after and based on delivery orders"
msgstr ""
"Számla generálása később és a kiszállítási kézbesítési bizonylatok alapján"
"Számla generálása a kiszállítási kézbesítési bizonylatok alapján és után"
#. module: sale_stock
#: field:sale.config.settings,module_delivery:0
@ -346,14 +350,14 @@ msgid ""
msgstr ""
"Lehetővé teszi szállítási mód hozzáadását a megrendelésekhez és a "
"kiszállítási kézbesítési bizonylatokhoz.\n"
" Meghatározhatja a saját szállítóját és szállítási hálózatát "
"külön árárt.\n"
" Ez a delivery modult telepíti."
" Meghatározhatja a saját szállítóját és szállítási hálózat "
"külön árát.\n"
" Ez a delivery (szállítás) modult telepíti."
#. module: sale_stock
#: field:sale.config.settings,default_picking_policy:0
msgid "Deliver all at once when all products are available."
msgstr "Egyszerre történő szállítás, ha az összes termék rendelkezésre áll."
msgstr "Egyszerre szállítsa, ha az összes termék rendelkezésre áll."
#. module: sale_stock
#: model:res.groups,name:sale_stock.group_invoice_deli_orders
@ -375,7 +379,7 @@ msgstr "Az eladott anyagok beszerzése"
msgid ""
"Pick 'Deliver each product when available' if you allow partial delivery."
msgstr ""
"Válasszon ki 'Szállítson ki egyesével terméket, amint az elérhető' ha rés "
"Válasszon ki 'Szállítson ki egyesével terméket, amint az elérhető' ha rész "
"szállítmányt akar megengedni."
#. module: sale_stock
@ -395,7 +399,7 @@ msgid ""
"It indicates that the sales order has been delivered. This field is updated "
"only after the scheduler(s) have been launched."
msgstr ""
"Jelzi, hogy az értékesítési megbízás kiszállításra került. Ez a mező csak "
"Jelzi, hogy a vásárlói megrendelés kiszállításra került. Ez a mező csak "
"akkor frissül, ha az ütemező(k) elindult(ak)."
#. module: sale_stock
@ -406,19 +410,18 @@ msgstr "Tulajdonságok"
#. module: sale_stock
#: field:sale.config.settings,group_mrp_properties:0
msgid "Product properties on order lines"
msgstr "Termék tulajdonságok a megrendelés sorain"
msgstr "Termék tulajdonságok a megrendelés tétel sorain"
#. module: sale_stock
#: help:sale.config.settings,default_order_policy:0
msgid ""
"You can generate invoices based on sales orders or based on shippings."
msgstr ""
"Létrehozhat számlát értékesítési megbízások vagy kiszállítások alapján."
msgstr "Létrehozhat számlát vásárlói megrendelés vagy kiszállítások alapján."
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_report
msgid "Sales Orders Statistics"
msgstr "Értékesítési megbízási statisztikák"
msgstr "Vevői megrendelési statisztikák"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_res_company
@ -441,8 +444,8 @@ msgstr ""
" kiválasztott felhasználó és kiválasztott dátum időkimutatás "
"sor tételeibe, ennek értelmében bármilyen módon létrehozhat, szerkeszthet "
"és törölhet \n"
" és automatikusan létrehoz terv feladatokat a beszerzés "
"soraiból.\n"
" és automatikusan létrehozhat terv feladatokat a beszerzés "
"tétel soraiból.\n"
" Ez a project_timesheet és project_mrp modult telepíti."
#. module: sale_stock
@ -452,7 +455,7 @@ msgid ""
"order."
msgstr ""
"Lehetővé teszi különböző szállítási és számlázási cím meghatározását a "
"megrendelésekhez."
"vásárlói megrendelésekhez."
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_saleprocurement0
@ -460,8 +463,8 @@ msgid ""
"One Procurement order for each sales order line and for each of the "
"components."
msgstr ""
"Egy beszerzési megbízás minden egyes értékesítési megbízási sorhoz és minden "
"egyes alkotóelemhez."
"Egy beszerzési megbízás minden egyes vásárlói megrendelés tétel sorhoz és "
"minden egyes alkotóelemhez."
#. module: sale_stock
#: model:process.transition.action,name:sale_stock.process_transition_action_assign0
@ -490,14 +493,14 @@ msgid ""
"instead of delivering each product when it is available. This may have an "
"impact on the shipping price."
msgstr ""
"A megrendelések alapértelmezetten az összes termék egyszerre történő "
"kiszállítására van beállítva, nem pedig az egyes termékek elérhetőségétől "
"függően. Ez befolyással lehet a szállítási árra."
"A vásárlói megrendelések alapértelmezetten az összes termék egyszerre "
"történő kiszállítására van beállítva, nem pedig az egyes termékek "
"elérhetőségétől függően. Ez befolyással lehet a szállítási árra."
#. module: sale_stock
#: selection:sale.config.settings,default_order_policy:0
msgid "Invoice based on sales orders"
msgstr "Megrendeléseken alapuló számla"
msgstr "Vásárlói megrendeléseken alapuló számla"
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_invoiceafterdelivery0
@ -517,7 +520,8 @@ msgid ""
"In order to delete a confirmed sales order, you must cancel it.\n"
"To do so, you must first cancel related picking for delivery orders."
msgstr ""
"Egy visszaigazolt megrendelés törléséhez, először vissza kell azt vonni.\n"
"Egy visszaigazolt vásárlói megrendelés törléséhez, először vissza kell azt "
"vonni.\n"
"Ehhez, először az ide tartozó megrendelési kiválogatási listákat kell "
"törölni."
@ -534,7 +538,7 @@ msgstr "Kiszállított"
#. module: sale_stock
#: model:process.transition,name:sale_stock.process_transition_invoiceafterdelivery0
msgid "Create Invoice"
msgstr "Számla készítése"
msgstr "Számla létrehozás"
#. module: sale_stock
#: field:sale.config.settings,task_work:0
@ -544,14 +548,14 @@ msgstr "Számlák készítése a feladat tevékenységek alapján"
#. module: sale_stock
#: model:ir.model,name:sale_stock.model_sale_advance_payment_inv
msgid "Sales Advance Payment Invoice"
msgstr "Értékesítési Fizetési számla"
msgstr "Vevői díjbekérő előlegszámla"
#. module: sale_stock
#: code:addons/sale_stock/sale_stock.py:523
#, python-format
msgid "You must first cancel stock moves attached to this sales order line."
msgstr ""
"Először érvénytelenítenie kell az ehhez az értékesítési megbízási sorhoz "
"Először érvénytelenítenie kell az ehhez a vásárlói megrendelési tétel sorhoz "
"tartozó készletmozgásokat."
#. module: sale_stock
@ -569,12 +573,12 @@ msgstr "Nemzetközi Kereskedelmi Feltételek"
#: code:addons/sale_stock/sale_stock.py:522
#, python-format
msgid "Cannot cancel sales order line!"
msgstr "A megrendelés sorát nem tudja visszavonni!"
msgstr "A vásárlói megrendelés tétel sorát nem tudja visszavonni!"
#. module: sale_stock
#: model:process.transition.action,name:sale_stock.process_transition_action_cancelassignation0
msgid "Cancel Assignation"
msgstr "Számla sztornó"
msgstr "Hozzárendelés megszüntetése"
#. module: sale_stock
#: model:process.node,note:sale_stock.process_node_invoiceafterdelivery0
@ -608,7 +612,7 @@ msgstr ""
#. module: sale_stock
#: model:process.node,name:sale_stock.process_node_saleorderprocurement0
msgid "Sales Order Requisition"
msgstr "Értékesítési megbízás igénylés"
msgstr "Vásárlói megrendelés igény"
#. module: sale_stock
#: model:process.transition,name:sale_stock.process_transition_deliver0

View File

@ -53,7 +53,7 @@
<!-- Add menu: Billing - Deliveries to invoice -->
<record id="outgoing_picking_list_to_invoice" model="ir.actions.act_window">
<field name="name">Deliveries to Invoice</field>
<field name="res_model">stock.picking</field>
<field name="res_model">stock.picking.out</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar</field>

4781
addons/stock/i18n/es_PE.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -2106,7 +2106,7 @@ class stock_move(osv.osv):
})
new_moves.append(self.browse(cr, uid, [new_id])[0])
if pickid:
self.signal_button_confirm(cr, uid, [pickid])
self.pool.get('stock.picking').signal_button_confirm(cr, uid, [pickid])
if new_moves:
new_moves += self.create_chained_picking(cr, uid, new_moves, context)
return new_moves

View File

@ -1044,7 +1044,7 @@
<button name="action_process" states="assigned" string="Receive" type="object" class="oe_highlight"/>
</xpath>
<xpath expr="//field[@name='partner_id']" position="replace">
<field name="partner_id" on_change="onchange_partner_in(partner_id)" string="Supplier" domain="[('supplier','=',True)]" />
<field name="partner_id" on_change="onchange_partner_in(partner_id)" string="Supplier" domain="[('supplier','=',True)]" context="{'default_supplier':1,'default_customer':0}"/>
</xpath>
<xpath expr="//field[@name='move_lines']" position="replace">
<field name="move_lines" context="{'address_in_id': partner_id, 'picking_type': 'in', 'form_view_ref':'view_move_picking_form', 'tree_view_ref':'view_move_picking_tree'}" options='{"reload_on_button": true}'/>

View File

@ -21,7 +21,7 @@
</record>
<act_window name="Create Invoice"
<act_window name="Create Draft Invoices"
res_model="stock.invoice.onshipping"
src_model="stock.picking.out"
key2="client_action_multi"

View File

@ -43,9 +43,9 @@ class survey_analysis(report_rml):
<pageGraphics>
<fill color="black"/>
<stroke color="black"/>
<setFont name="DejaVu Sans" size="8"/>
<setFont name="DejaVuSans" size="8"/>
<drawString x="1.3cm" y="28.3cm"> """+to_xml(rml_obj.formatLang(time.strftime("%Y-%m-%d %H:%M:%S"),date_time=True))+"""</drawString>
<setFont name="DejaVu Sans Bold" size="10"/>
<setFont name="DejaVuSans-Bold" size="10"/>
<drawString x="9.8cm" y="28.3cm">"""+ to_xml(company.name) +"""</drawString>
<stroke color="#000000"/>
<lines>1.3cm 28.1cm 20cm 28.1cm</lines>

View File

@ -10,7 +10,7 @@ OpenERP Web LinkedIn module.
This module provides the Integration of the LinkedIn with OpenERP.
""",
'data': ['web_linkedin_view.xml'],
'depends' : ['crm'],
'depends' : ['web','crm'],
'js': ['static/src/js/*.js'],
'css': ['static/src/css/*.css'],
'qweb': ['static/src/xml/*.xml'],

View File

@ -24,6 +24,7 @@ import urllib2
from urlparse import urlparse, urlunparse
import openerp
import openerp.addons.web
from openerp.osv import fields, osv
class Binary(openerp.http.Controller):
@ -88,4 +89,4 @@ class web_linkedin_fields(osv.Model):
'linkedin_url': fields.char(string="LinkedIn url", size=100, store=True),
'linkedin_public_url': fields.function(_get_url, type='text', string="LinkedIn url",
help="This url is set automatically when you join the partner with a LinkedIn account."),
}
}