From cd3e60aef10a74fd04580b6e5903ee319f160604 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 31 May 2011 13:23:39 +0200 Subject: [PATCH 01/63] [ADD] editability status to ListView options (hence all sub-objects of the list view) bzr revid: xmo@openerp.com-20110531112339-701lpf42p8h19mfj --- addons/base/static/src/js/list.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 2fd4aff2e1c..a64cb0c0021 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -14,7 +14,9 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi // sorted it can not be reordered anymore 'sortable': true, // whether the view rows can be reordered (via vertical drag & drop) - 'reorderable': true + 'reorderable': true, + // editability status of list rows + 'editable': null }, /** * Core class for list-type displays. @@ -39,6 +41,7 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi * @param {null|String} [options.addable="New"] should the new-record button be displayed, and what should its label be. Use ``null`` to hide the button. * @param {Boolean} [options.sortable=true] is it possible to sort the table by clicking on column headers * @param {Boolean} [options.reorderable=true] is it possible to reorder list rows + * @param {null|"bottom"|"top"} [options.editable=null] can rows be edited, and do new rows appear at the top or the bottom of the list * * @borrows openerp.base.ActionExecutor#execute_action as #execute_action */ @@ -270,6 +273,21 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi this.groups.apoptosis().render( $.proxy(this, 'compute_aggregates'))); }, + /** + * Sets editability status for the list, based on defaults, view + * architecture and the provided flag, if any. + * + * @param {Boolean} [force] forces the list to editability. Sets new row edition status to "bottom". + */ + set_editable: function (force) { + // If ``force``, set editability to bottom + // else if editability flag in view arch, use that + // otherwise rely on view default + this.options.editable = ( + (force && "bottom") + || this.fields_view.arch.attrs.editable + || this.defaults.editable); + }, /** * Event handler for a search, asks for the computation/folding of domains * and contexts (and group-by), then reloads the view's content. @@ -296,6 +314,8 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi if (_.isEmpty(results.group_by) && !results.context['group_by_no_leaf']) { results.group_by = null; } + self.set_editable(results.context['set_editable']); + self.reload_view(!!results.group_by).then( $.proxy(self, 'reload_content')); }); From 0d21e3b07444a6bad123b97e81994a946fcee4e0 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 1 Jun 2011 14:49:54 +0200 Subject: [PATCH 02/63] [ADD] display editable rows when selecting row in editable mode bzr revid: xmo@openerp.com-20110601124954-vog8ceoohczxgmqe --- addons/base/static/src/js/form.js | 6 ++- addons/base/static/src/js/list.js | 57 +++++++++++++++++++++++++---- addons/base/static/src/xml/base.xml | 3 ++ 3 files changed, 58 insertions(+), 8 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 98c8cd75267..3b55b86a471 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -8,6 +8,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV * view should be displayed (if there is one active). */ searchable: false, + template: "FormView", /** * @constructs * @param {openerp.base.Session} session the current openerp session @@ -42,7 +43,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV var frame = new openerp.base.form.WidgetFrame(this, this.fields_view.arch); - this.$element.html(QWeb.render("FormView", { 'frame': frame, 'view': this })); + this.$element.html(QWeb.render(this.template, { 'frame': frame, 'view': this })); _.each(this.widgets, function(w) { w.start(); }); @@ -449,6 +450,9 @@ openerp.base.form.Widget = openerp.base.Controller.extend({ } }, update_dom: function() { + if (this.attrs.name === 'someval') { + console.log(this.invisible); + } this.$element.toggle(!this.invisible); }, render: function() { diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index a64cb0c0021..e7922df67eb 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -532,8 +532,9 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List * @constructs * @param {Object} opts display options, identical to those of :js:class:`openerp.base.ListView` */ - init: function (opts) { + init: function (group, opts) { var self = this; + this.group = group; this.options = opts.options; this.columns = opts.columns; @@ -563,11 +564,18 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List }) .delegate('tr', 'click', function (e) { e.stopPropagation(); - $(self).trigger( - 'row_link', - [self.row_position(e.currentTarget), - self.row_id(e.currentTarget), - self.dataset]); + var index = self.row_position(e.currentTarget); + self.dataset.index = index; + if (self.options.editable) { + self.render_row_as_form( + index, e.currentTarget); + } else { + $(self).trigger( + 'row_link', + [index, + self.rows[index].data.id.value, + self.dataset]); + } }); }, render: function () { @@ -577,6 +585,41 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List this.$current = this.$_element.clone(true); this.$current.empty().append($(QWeb.render('ListView.rows', this))); }, + get_fields_view: function () { + // deep copy of view + var view = $.extend(true, {}, this.group.view.fields_view); + _(view.arch.children).each(function (widget) { + widget.attrs.nolabel = true; + if (widget.tag === 'button') { + delete widget.attrs.string; + } + }); + view.arch.attrs.col = 2 * view.arch.children.length; + return view; + }, + render_row_as_form: function (row_num, row) { + var $new_row = $('', { + id: _.uniqueId('oe-editable-row-'), + 'class': $(row).attr('class'), + onclick: function (e) {e.stopPropagation();} + }).replaceAll(row); + var editable_row_form = new openerp.base.FormView( + null, this.group.view.session, $new_row.attr('id'), + this.dataset, false); + editable_row_form.template = 'ListView.row.form'; + editable_row_form.on_loaded({fields_view: this.get_fields_view()}); + editable_row_form.on_record_loaded.add({ + position: 'last', + unique: true, + callback: function () { + editable_row_form.$element.find('td') + // remove tr, tbody, table + .unwrap().unwrap().unwrap() + .removeAttr('width'); + } + }); + editable_row_form.do_show(); + }, /** * Gets the ids of all currently selected records, if any * @returns {Object} object with the keys ``ids`` and ``records``, holding respectively the ids of all selected records and the records themselves. @@ -817,7 +860,7 @@ openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Gr }, render_dataset: function (dataset) { var rows = [], - list = new openerp.base.ListView.List({ + list = new openerp.base.ListView.List(this, { options: this.options, columns: this.columns, dataset: dataset, diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index b8412aa1b19..cbd3853a08f 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -253,6 +253,9 @@ + + +

From 6aa240ca1915289bbbafd4707e930228cbd1bf23 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Wed, 1 Jun 2011 18:34:55 +0200 Subject: [PATCH 03/63] [IMP] ir_translation only display installed lang, 10% speedup in translation loading bzr revid: al@openerp.com-20110601163455-2o732ssum24kwshu --- openerp/addons/base/ir/ir_translation.py | 14 +++++--------- openerp/tools/translate.py | 1 - 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index eb900363669..85b3e8fc8a7 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -44,15 +44,11 @@ class ir_translation(osv.osv): _log_access = False def _get_language(self, cr, uid, context): - lang_obj = self.pool.get('res.lang') - lang_ids = lang_obj.search(cr, uid, [('translatable', '=', True)], - context=context) - langs = lang_obj.browse(cr, uid, lang_ids, context=context) - res = [(lang.code, lang.name) for lang in langs] - for lang_dict in tools.scan_languages(): - if lang_dict not in res: - res.append(lang_dict) - return res + lang_model = self.pool.get('res.lang') + lang_ids = lang_model.search(cr, uid, [('translatable', '=', True)], context=context) + lang_data = lang_model.read(cr, uid, lang_ids, ['code','name']) + l = [(d['code'],d['name']) for d in lang_data] + return l _columns = { 'name': fields.char('Field Name', size=128, required=True), diff --git a/openerp/tools/translate.py b/openerp/tools/translate.py index 5761ba87cc0..c9f69512264 100644 --- a/openerp/tools/translate.py +++ b/openerp/tools/translate.py @@ -864,7 +864,6 @@ def trans_load_data(cr, fileobj, fileformat, lang, lang_name=None, verbose=True, pool = pooler.get_pool(db_name) lang_obj = pool.get('res.lang') trans_obj = pool.get('ir.translation') - model_data_obj = pool.get('ir.model.data') iso_lang = misc.get_iso_codes(lang) try: uid = 1 From 3895bcb954798c818b47e56bf6600a1a9d9b86dd Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 3 Jun 2011 11:36:06 +0200 Subject: [PATCH 04/63] [MOVE] editability code for listviews in a separate files: customizations of Form View require load-time dependencies on form.js, but form.js already depends on ListView (in order to create m2m widgets and sub-widgets), so we need to execute that part after both openep.base.list and openerp.base.form have loaded bzr revid: xmo@openerp.com-20110603093606-gw00iidxfakjmvt3 --- addons/base/static/src/base.html | 1 + addons/base/static/src/js/base.js | 1 + addons/base/static/src/js/list-editable.js | 66 +++++++++++++++ addons/base/static/src/js/list.js | 97 +++++++--------------- 4 files changed, 97 insertions(+), 68 deletions(-) create mode 100644 addons/base/static/src/js/list-editable.js diff --git a/addons/base/static/src/base.html b/addons/base/static/src/base.html index 467bccb92ff..71a6a2aabf6 100644 --- a/addons/base/static/src/base.html +++ b/addons/base/static/src/base.html @@ -28,6 +28,7 @@ + diff --git a/addons/base/static/src/js/base.js b/addons/base/static/src/js/base.js index 6316715df89..2cab4460e5c 100644 --- a/addons/base/static/src/js/base.js +++ b/addons/base/static/src/js/base.js @@ -132,6 +132,7 @@ openerp.base = function(instance) { openerp.base.tree(instance); openerp.base.m2o(instance); openerp.base.form(instance); + openerp.base.list.editable(instance); }; // vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js new file mode 100644 index 00000000000..2ff9e71e98b --- /dev/null +++ b/addons/base/static/src/js/list-editable.js @@ -0,0 +1,66 @@ +/** + * @namespace handles editability case for lists, because it depends on form and forms already depends on lists it had to be split out + */ +openerp.base.list.editable = function (openerp) { + // editability status of list rows + openerp.base.ListView.prototype.defaults.editable = null; + + var old_actual_search = openerp.base.ListView.prototype.do_actual_search; + _.extend(openerp.base.ListView.prototype, { + /** + * Sets editability status for the list, based on defaults, view + * architecture and the provided flag, if any. + * + * @param {Boolean} [force] forces the list to editability. Sets new row edition status to "bottom". + */ + set_editable: function (force) { + // If ``force``, set editability to bottom + // else if editability flag in view arch, use that + // otherwise rely on view default + this.options.editable = ( + (force && "bottom") + || this.fields_view.arch.attrs.editable + || this.defaults.editable); + }, + /** + * Replace do_actual_search to handle editability process + */ + do_actual_search: function (results) { + this.set_editable(results.context['set_editable']); + old_actual_search.call(this, results); + } + }); + + var old_list_row_clicked = openerp.base.ListView.List.prototype.row_clicked; + _.extend(openerp.base.ListView.List.prototype, { + row_clicked: function (event, index) { + if (!this.options.editable) { + return old_list_row_clicked.call(this, event, index); + } + this.render_row_as_form(index, event.currentTarget); + }, + render_row_as_form: function (row_num, row) { + var $new_row = $('', { + id: _.uniqueId('oe-editable-row-'), + 'class': $(row).attr('class'), + onclick: function (e) {e.stopPropagation();} + }).replaceAll(row); + var editable_row_form = new openerp.base.FormView( + null, this.group.view.session, $new_row.attr('id'), + this.dataset, false); + editable_row_form.template = 'ListView.row.form'; + editable_row_form.on_loaded({fields_view: this.get_fields_view()}); + editable_row_form.on_record_loaded.add({ + position: 'last', + unique: true, + callback: function () { + editable_row_form.$element.find('td') + // remove tr, tbody, table + .unwrap().unwrap().unwrap() + .removeAttr('width'); + } + }); + editable_row_form.do_show(); + } + }); +}; diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index e7922df67eb..cd4bcde8008 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -14,9 +14,7 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi // sorted it can not be reordered anymore 'sortable': true, // whether the view rows can be reordered (via vertical drag & drop) - 'reorderable': true, - // editability status of list rows - 'editable': null + 'reorderable': true }, /** * Core class for list-type displays. @@ -41,7 +39,6 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi * @param {null|String} [options.addable="New"] should the new-record button be displayed, and what should its label be. Use ``null`` to hide the button. * @param {Boolean} [options.sortable=true] is it possible to sort the table by clicking on column headers * @param {Boolean} [options.reorderable=true] is it possible to reorder list rows - * @param {null|"bottom"|"top"} [options.editable=null] can rows be edited, and do new rows appear at the top or the bottom of the list * * @borrows openerp.base.ActionExecutor#execute_action as #execute_action */ @@ -273,21 +270,6 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi this.groups.apoptosis().render( $.proxy(this, 'compute_aggregates'))); }, - /** - * Sets editability status for the list, based on defaults, view - * architecture and the provided flag, if any. - * - * @param {Boolean} [force] forces the list to editability. Sets new row edition status to "bottom". - */ - set_editable: function (force) { - // If ``force``, set editability to bottom - // else if editability flag in view arch, use that - // otherwise rely on view default - this.options.editable = ( - (force && "bottom") - || this.fields_view.arch.attrs.editable - || this.defaults.editable); - }, /** * Event handler for a search, asks for the computation/folding of domains * and contexts (and group-by), then reloads the view's content. @@ -298,27 +280,32 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi * @returns {$.Deferred} fold request evaluation promise */ do_search: function (domains, contexts, groupbys) { - var self = this; return this.rpc('/base/session/eval_domain_and_context', { domains: domains, contexts: contexts, group_by_seq: groupbys - }, function (results) { - self.dataset.context = results.context; - self.dataset.domain = results.domain; - self.groups.datagroup = new openerp.base.DataGroup( - self.session, self.model, - results.domain, results.context, - results.group_by); + }, $.proxy(this, 'do_actual_search')); + }, + /** + * Handler for the result of eval_domain_and_context, actually perform the + * searching + * + * @param {Object} results results of evaluating domain and process for a search + */ + do_actual_search: function (results) { + this.dataset.context = results.context; + this.dataset.domain = results.domain; + this.groups.datagroup = new openerp.base.DataGroup( + this.session, this.model, + results.domain, results.context, + results.group_by); - if (_.isEmpty(results.group_by) && !results.context['group_by_no_leaf']) { - results.group_by = null; - } - self.set_editable(results.context['set_editable']); + if (_.isEmpty(results.group_by) && !results.context['group_by_no_leaf']) { + results.group_by = null; + } - self.reload_view(!!results.group_by).then( - $.proxy(self, 'reload_content')); - }); + this.reload_view(!!results.group_by).then( + $.proxy(this, 'reload_content')); }, /** * Handles the signal to delete a line from the DOM @@ -566,18 +553,16 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List e.stopPropagation(); var index = self.row_position(e.currentTarget); self.dataset.index = index; - if (self.options.editable) { - self.render_row_as_form( - index, e.currentTarget); - } else { - $(self).trigger( - 'row_link', - [index, - self.rows[index].data.id.value, - self.dataset]); - } + self.row_clicked(e, index); }); }, + row_clicked: function (event, index) { + $(this).trigger( + 'row_link', + [index, + this.rows[index].data.id.value, + this.dataset]); + }, render: function () { if (this.$current) { this.$current.remove(); @@ -597,29 +582,6 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List view.arch.attrs.col = 2 * view.arch.children.length; return view; }, - render_row_as_form: function (row_num, row) { - var $new_row = $('', { - id: _.uniqueId('oe-editable-row-'), - 'class': $(row).attr('class'), - onclick: function (e) {e.stopPropagation();} - }).replaceAll(row); - var editable_row_form = new openerp.base.FormView( - null, this.group.view.session, $new_row.attr('id'), - this.dataset, false); - editable_row_form.template = 'ListView.row.form'; - editable_row_form.on_loaded({fields_view: this.get_fields_view()}); - editable_row_form.on_record_loaded.add({ - position: 'last', - unique: true, - callback: function () { - editable_row_form.$element.find('td') - // remove tr, tbody, table - .unwrap().unwrap().unwrap() - .removeAttr('width'); - } - }); - editable_row_form.do_show(); - }, /** * Gets the ids of all currently selected records, if any * @returns {Object} object with the keys ``ids`` and ``records``, holding respectively the ids of all selected records and the records themselves. @@ -679,7 +641,6 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List }); } // drag and drop - // editable? }); openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Groups# */{ /** From 3990af373cca7b702262911623d4a9dcfef7a881 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 3 Jun 2011 11:38:17 +0200 Subject: [PATCH 05/63] [IMP] add ability to clone-and-extend registries bzr revid: xmo@openerp.com-20110603093817-om68h34w9s8qhxpv --- addons/base/static/src/js/chrome.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index bc7bec93d59..cb4c8070b2b 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -149,6 +149,16 @@ openerp.base.Registry = Class.extend( /** @lends openerp.base.Registry# */ { add: function (key, object_path) { this.map[key] = object_path; return this; + }, + /** + * Creates and returns a copy of the current mapping, with the provided + * mapping argument added in (replacing existing keys if needed) + * + * @param {Object} [mapping={}] a mapping of keys to object-paths + */ + clone: function (mapping) { + return new openerp.base.Registry( + _.extend({}, this.map, mapping || {})); } }); From a2ba109315b2d2c5ed2ff8668658c54a30bb20c6 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 3 Jun 2011 11:43:02 +0200 Subject: [PATCH 06/63] [IMP] make form widgets registry pluggable, have form go get its root Frame widget in the registry instead of hardcoding the relevant class bzr revid: xmo@openerp.com-20110603094302-hh09kzswb5kcfpye --- addons/base/static/src/js/form.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 3b55b86a471..04fe95ee37f 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -15,6 +15,8 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV * @param {String} element_id this view's root element id * @param {openerp.base.DataSet} dataset the dataset this view will work with * @param {String} view_id the identifier of the OpenERP view object + * + * @property {openerp.base.Registry} registry=openerp.base.form.widgets widgets registry for this form view instance */ init: function(view_manager, session, element_id, dataset, view_id) { this._super(session, element_id); @@ -31,6 +33,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.show_invalid = true; this.touched = false; this.flags = this.view_manager.action.flags || {}; + this.registry = openerp.base.form.widgets; }, start: function() { //this.log('Starting FormView '+this.model+this.view_id) @@ -41,7 +44,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV var self = this; this.fields_view = data.fields_view; - var frame = new openerp.base.form.WidgetFrame(this, this.fields_view.arch); + var frame = new (this.registry.get_object('frame'))(this, this.fields_view.arch); this.$element.html(QWeb.render(this.template, { 'frame': frame, 'view': this })); _.each(this.widgets, function(w) { @@ -506,9 +509,9 @@ openerp.base.form.WidgetFrame = openerp.base.form.Widget.extend({ handle_node: function(node) { var type = this.view.fields_view.fields[node.attrs.name] || {}; var widget_type = node.attrs.widget || type.type || node.tag; - var widget = new (openerp.base.form.widgets.get_object(widget_type)) (this.view, node); + var widget = new (this.view.registry.get_object(widget_type)) (this.view, node); if (node.tag == 'field' && node.attrs.nolabel != '1') { - var label = new (openerp.base.form.widgets.get_object('label')) (this.view, node); + var label = new (this.view.registry.get_object('label')) (this.view, node); label["for"] = widget; this.add_widget(label); } @@ -1370,6 +1373,7 @@ openerp.base.form.FieldBinaryImage = openerp.base.form.FieldBinary.extend({ * Registry of form widgets, called by :js:`openerp.base.FormView` */ openerp.base.form.widgets = new openerp.base.Registry({ + 'frame' : 'openerp.base.form.WidgetFrame', 'group' : 'openerp.base.form.WidgetFrame', 'notebook' : 'openerp.base.form.WidgetNotebook', 'separator' : 'openerp.base.form.WidgetSeparator', From 6037c0a65041b023f08cbd4474fd7d41a1e7c048 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 3 Jun 2011 12:31:00 +0200 Subject: [PATCH 07/63] [ADD] basic overriding of WidgetFrame template: remove and display levels bzr revid: xmo@openerp.com-20110603103100-c0di95c1z5rd1ogh --- addons/base/static/src/js/form.js | 4 ++-- addons/base/static/src/js/list-editable.js | 17 ++++++++++++----- addons/base/static/src/xml/base.xml | 15 +++++++++++++++ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 04fe95ee37f..dd837960e26 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -424,6 +424,7 @@ openerp.base.form.compute_domain = function(expr, fields) { }; openerp.base.form.Widget = openerp.base.Controller.extend({ + template: 'Widget', init: function(view, node) { this.view = view; this.node = node; @@ -437,7 +438,6 @@ openerp.base.form.Widget = openerp.base.Controller.extend({ this.view.widgets[this.element_id] = this; this.children = node.children; this.colspan = parseInt(node.attrs.colspan || 1); - this.template = "Widget"; this.string = this.string || node.attrs.string; this.help = this.help || node.attrs.help; @@ -465,9 +465,9 @@ openerp.base.form.Widget = openerp.base.Controller.extend({ }); openerp.base.form.WidgetFrame = openerp.base.form.Widget.extend({ + template: 'WidgetFrame', init: function(view, node) { this._super(view, node); - this.template = "WidgetFrame"; this.columns = node.attrs.col || 4; this.x = 0; this.y = 0; diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index 2ff9e71e98b..dd57ae2b69a 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -45,22 +45,29 @@ openerp.base.list.editable = function (openerp) { 'class': $(row).attr('class'), onclick: function (e) {e.stopPropagation();} }).replaceAll(row); - var editable_row_form = new openerp.base.FormView( + var editable_row_form = _.extend(new openerp.base.FormView( null, this.group.view.session, $new_row.attr('id'), - this.dataset, false); - editable_row_form.template = 'ListView.row.form'; + this.dataset, false), { + template: 'ListView.row.form', + registry: openerp.base.list.form.widgets + }); editable_row_form.on_loaded({fields_view: this.get_fields_view()}); editable_row_form.on_record_loaded.add({ position: 'last', unique: true, callback: function () { editable_row_form.$element.find('td') - // remove tr, tbody, table - .unwrap().unwrap().unwrap() .removeAttr('width'); } }); editable_row_form.do_show(); } }); + openerp.base.list = {form: {}}; + openerp.base.list.form.WidgetFrame = openerp.base.form.WidgetFrame.extend({ + template: 'ListView.row.frame' + }); + openerp.base.list.form.widgets = openerp.base.form.widgets.clone({ + 'frame': 'openerp.base.list.form.WidgetFrame' + }); }; diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index cbd3853a08f..d40ed614176 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -790,4 +790,19 @@ + + + + $(document.createElement('t')) + .append(this.contents()) + .attr({ + 't-foreach': this.attr('t-foreach'), + 't-as': this.attr('t-as') + }) + .replaceAll(this) + .before($(document.createElement('td'))) + .after($(document.createElement('td'))) + .unwrap(); + + From 63484a8570e832af16a865eb882369726bfc5cd6 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 3 Jun 2011 13:06:39 +0200 Subject: [PATCH 08/63] [FIX] style of listview editable row buttons, remove borders (to match non-editable rows) bzr revid: xmo@openerp.com-20110603110639-9j17krhnsuf5q1bg --- addons/base/static/src/css/base.css | 1 + addons/base/static/src/js/form.js | 3 --- addons/base/static/src/xml/base.xml | 5 +++++ 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index d9042e7e251..ffe23ad16a3 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -543,6 +543,7 @@ background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%, padding: 0; border: none; background: none; + width: 100%; } .openerp .oe-listview .oe-field-cell button:active { opacity: 0.5; diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index dd837960e26..d225a9cb47a 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -453,9 +453,6 @@ openerp.base.form.Widget = openerp.base.Controller.extend({ } }, update_dom: function() { - if (this.attrs.name === 'someval') { - console.log(this.invisible); - } this.$element.toggle(!this.invisible); }, render: function() { diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index d40ed614176..c63a7429d6e 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -800,6 +800,11 @@ 't-as': this.attr('t-as') }) .replaceAll(this) + .find('td') + .attr('t-att-class', function (index, value) { + return "(" + value + ") + ' oe-field-cell'"; + }) + .end() .before($(document.createElement('td'))) .after($(document.createElement('td'))) .unwrap(); From 8c9d79e1325da5251915224d4d37fed27099204d Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 3 Jun 2011 13:10:44 +0200 Subject: [PATCH 09/63] [IMP] move addition of oe-field-cell on cells of editable rows to post-processing rather than template alteration bzr revid: xmo@openerp.com-20110603111044-hcrqubshpnc6mzux --- addons/base/static/src/js/list-editable.js | 1 + addons/base/static/src/xml/base.xml | 5 ----- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index dd57ae2b69a..5bf6021f341 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -57,6 +57,7 @@ openerp.base.list.editable = function (openerp) { unique: true, callback: function () { editable_row_form.$element.find('td') + .addClass('oe-field-cell') .removeAttr('width'); } }); diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index c63a7429d6e..d40ed614176 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -800,11 +800,6 @@ 't-as': this.attr('t-as') }) .replaceAll(this) - .find('td') - .attr('t-att-class', function (index, value) { - return "(" + value + ") + ' oe-field-cell'"; - }) - .end() .before($(document.createElement('td'))) .after($(document.createElement('td'))) .unwrap(); From 47d696ef4e350a69ad5156f57dd5c9b0c40ba409 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 3 Jun 2011 13:57:57 +0200 Subject: [PATCH 10/63] [IMP] awful hack to hide the value but not the cell itself in editable row cells when it is invisible from an attrs evaluation rather than from @invisible bzr revid: xmo@openerp.com-20110603115757-4z67r08g1sfogfgw --- addons/base/static/src/js/list-editable.js | 25 +++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index 5bf6021f341..8c66dd71dd5 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -68,7 +68,30 @@ openerp.base.list.editable = function (openerp) { openerp.base.list.form.WidgetFrame = openerp.base.form.WidgetFrame.extend({ template: 'ListView.row.frame' }); - openerp.base.list.form.widgets = openerp.base.form.widgets.clone({ + var form_widgets = openerp.base.form.widgets; + openerp.base.list.form.widgets = form_widgets.clone({ 'frame': 'openerp.base.list.form.WidgetFrame' }); + // All form widgets inherit a problematic behavior from + // openerp.base.form.WidgetFrame: the cell itself is removed when invisible + // whether it's @invisible or @attrs[invisible]. In list view, only the + // former should completely remove the cell. We need to override update_dom + // on all widgets since we can't just hit on widget itself (I think) + var list_form_widgets = openerp.base.list.form.widgets; + _(list_form_widgets.map).each(function (widget_path, key) { + if (key === 'frame') { return; } + var new_path = 'openerp.base.list.form.' + key; + + openerp.base.list.form[key] = (form_widgets.get_object(key)).extend({ + update_dom: function () { + this.$element.children().css('visibility', ''); + if (this.invisible && this.node.attrs.invisible !== '1') { + this.$element.children().css('visibility', 'hidden'); + } else { + this._super(); + } + } + }); + list_form_widgets.add(key, new_path); + }); }; From af71f903dc40f07d97641ece8b55854e1a253c73 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 3 Jun 2011 14:24:43 +0200 Subject: [PATCH 11/63] [ADD] basic (and crummy) saving of editable rows TODO: * Switch back to read row after saving * Edit next row if [return] * How do things interact with onchanges? * Handle validation errors bzr revid: xmo@openerp.com-20110603122443-fvmfouuybh69b48g --- addons/base/static/src/js/list-editable.js | 47 ++++++++++++++++++---- addons/base/static/src/xml/base.xml | 4 +- 2 files changed, 42 insertions(+), 9 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index 8c66dd71dd5..d005d58022d 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -40,28 +40,59 @@ openerp.base.list.editable = function (openerp) { this.render_row_as_form(index, event.currentTarget); }, render_row_as_form: function (row_num, row) { + var self = this; var $new_row = $('', { id: _.uniqueId('oe-editable-row-'), 'class': $(row).attr('class'), onclick: function (e) {e.stopPropagation();} - }).replaceAll(row); - var editable_row_form = _.extend(new openerp.base.FormView( + }).replaceAll(row) + .keyup(function (e) { + if (e.which !== 13) { + return; + } + self.save_row(row_num, true); + }) + .delegate('button.oe-list-save', 'click', function () { + self.save_row(row_num); + }); + this.edition_form = _.extend(new openerp.base.FormView( null, this.group.view.session, $new_row.attr('id'), this.dataset, false), { template: 'ListView.row.form', registry: openerp.base.list.form.widgets }); - editable_row_form.on_loaded({fields_view: this.get_fields_view()}); - editable_row_form.on_record_loaded.add({ + this.edition_form.on_loaded({fields_view: this.get_fields_view()}); + this.edition_form.on_record_loaded.add({ position: 'last', unique: true, callback: function () { - editable_row_form.$element.find('td') - .addClass('oe-field-cell') - .removeAttr('width'); + self.edition_form.$element + .find('td') + .addClass('oe-field-cell') + .removeAttr('width') + .end() + .find('td:first').removeClass('oe-field-cell').end() + .find('td:last').removeClass('oe-field-cell').end(); + } + }); + this.edition_form.do_show(); + }, + /** + * Saves the current row, and triggers the edition of its following + * sibling if asked. + * + * @param {Number} row_num the row to save + * @param {Boolean} [edit_next=false] should the next row become editable + */ + save_row: function (row_num, edit_next) { + var self = this; + this.edition_form.do_save(function () { + // nuke form + // re-render current row + if (edit_next) { + // self.row_clicked({currentTarget: current_row.nextSibling}, row_num + 1) } }); - editable_row_form.do_show(); } }); openerp.base.list = {form: {}}; diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index d40ed614176..d1633bdb150 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -800,7 +800,9 @@ 't-as': this.attr('t-as') }) .replaceAll(this) - .before($(document.createElement('td'))) + .before($(document.createElement('td')).append( + $(document.createElement('button')).attr({ + 'class': 'oe-list-save', 'type': 'button'}).text('Save'))) .after($(document.createElement('td'))) .unwrap(); From 9250a5a3f6142908292333800a84ed9fbd603787 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 3 Jun 2011 15:24:38 +0200 Subject: [PATCH 12/63] [IMP] re-render record to readonly after saving it bzr revid: xmo@openerp.com-20110603132438-uhkzql3lsy6h9ptn --- addons/base/static/src/js/list-editable.js | 21 +++++-- addons/base/static/src/js/list.js | 66 ++++++++++++++++++---- 2 files changed, 71 insertions(+), 16 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index d005d58022d..0ece61d1f99 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -87,11 +87,22 @@ openerp.base.list.editable = function (openerp) { save_row: function (row_num, edit_next) { var self = this; this.edition_form.do_save(function () { - // nuke form - // re-render current row - if (edit_next) { - // self.row_clicked({currentTarget: current_row.nextSibling}, row_num + 1) - } + self.dataset.read_index( + _.filter(_.pluck(self.columns, 'name'), _.identity), + function (record) { + var form_record = self.transform_record(record); + self.rows.splice(row_num, 1, form_record); + self.reload_record(row_num); + self.edition_form.stop(); + delete self.edition_form; + if (edit_next && self.rows.length > row_num + 1) { + self.dataset.index += 1; + self.row_clicked({ + currentTarget: self.$current.children().eq(row_num + 1) + }, row_num + 1); + } + } + ); }); } }); diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index cd4bcde8008..03c8eba97fb 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -639,6 +639,59 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List }); return record; }); + }, + /** + * Transforms a record from what is returned by a dataset read (a simple + * mapping of ``$fieldname: $value``) to the format expected by list rows + * and form views: + * + * data: { + * $fieldname: { + * value: $value + * } + * } + * + * This format allows for the insertion of a bunch of metadata (names, + * colors, etc...) + * + * @param {Object} record original record, in dataset format + * @returns {Object} record displayable in a form or list view + */ + transform_record: function (record) { + // TODO: colors handling + var form_data = {}, + form_record = {data: form_data}; + + _(record).each(function (value, key) { + form_data[key] = {value: value}; + }); + + return form_record; + }, + /** + * Reloads the record at index ``row_index`` in the list's rows. + * + * This does not re-fetch the record, it only re-renders it, replacing the + * current rendering. + * + * @param {Number} record_index index of the record to reload + */ + reload_record: function (record_index) { + this.$current.children().eq(record_index) + .replaceWith(this.render_record(record_index)); + }, + /** + * Renders a list record to HTML + * + * @param {Number} record_index index of the record to render in ``this.rows`` + * @returns {String} QWeb rendering of the selected record + */ + render_record: function (record_index) { + return QWeb.render('ListView.row', { + columns: this.columns, + options: this.options, + row: this.rows[record_index] + }); } // drag and drop }); @@ -834,17 +887,8 @@ openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Gr _.filter(_.pluck(this.columns, 'name'), _.identity), 0, false, function (records) { - var form_records = _(records).map(function (record) { - // TODO: colors handling - var form_data = {}, - form_record = {data: form_data}; - - _(record).each(function (value, key) { - form_data[key] = {value: value}; - }); - - return form_record; - }); + var form_records = _(records).map( + $.proxy(list, 'transform_record')); rows.splice(0, rows.length); rows.push.apply(rows, form_records); From aaa459a29daf862fcb6343786bd576ec74798dd0 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 3 Jun 2011 16:16:38 +0200 Subject: [PATCH 13/63] [ADD] edition cancelling bzr revid: xmo@openerp.com-20110603141638-giwlzwrp795bq78h --- addons/base/static/src/js/list-editable.js | 32 ++++++++++++++++++---- addons/base/static/src/js/list.js | 3 +- addons/base/static/src/xml/base.xml | 6 ++-- 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index 0ece61d1f99..ee2af7d258b 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -2,6 +2,9 @@ * @namespace handles editability case for lists, because it depends on form and forms already depends on lists it had to be split out */ openerp.base.list.editable = function (openerp) { + var KEY_RETURN = 13, + KEY_ESCAPE = 27; + // editability status of list rows openerp.base.ListView.prototype.defaults.editable = null; @@ -47,13 +50,22 @@ openerp.base.list.editable = function (openerp) { onclick: function (e) {e.stopPropagation();} }).replaceAll(row) .keyup(function (e) { - if (e.which !== 13) { - return; + switch (e.which) { + case KEY_RETURN: + self.save_row(row_num, true); + break; + case KEY_ESCAPE: + self.cancel_edition(row_num); + break; + default: + return; } - self.save_row(row_num, true); }) - .delegate('button.oe-list-save', 'click', function () { + .delegate('button.oe-edit-row-save', 'click', function () { self.save_row(row_num); + }) + .delegate('button.oe-edit-row-cancel', 'click', function () { + self.cancel_edition(row_num); }); this.edition_form = _.extend(new openerp.base.FormView( null, this.group.view.session, $new_row.attr('id'), @@ -96,7 +108,7 @@ openerp.base.list.editable = function (openerp) { self.edition_form.stop(); delete self.edition_form; if (edit_next && self.rows.length > row_num + 1) { - self.dataset.index += 1; + self.dataset.index++; self.row_clicked({ currentTarget: self.$current.children().eq(row_num + 1) }, row_num + 1); @@ -104,6 +116,16 @@ openerp.base.list.editable = function (openerp) { } ); }); + }, + /** + * Cancels the edition of the row at index ``row_num``. + * + * @param {Number} row_num index of the row being edited + */ + cancel_edition: function (row_num) { + this.reload_record(row_num); + this.edition_form.stop(); + delete this.edition_form; } }); openerp.base.list = {form: {}}; diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 03c8eba97fb..c627330fd70 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -690,7 +690,8 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List return QWeb.render('ListView.row', { columns: this.columns, options: this.options, - row: this.rows[record_index] + row: this.rows[record_index], + row_parity: (record_index % 2 === 0) ? 'even' : 'odd' }); } // drag and drop diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index d1633bdb150..f1c1d3df4cf 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -802,8 +802,10 @@ .replaceAll(this) .before($(document.createElement('td')).append( $(document.createElement('button')).attr({ - 'class': 'oe-list-save', 'type': 'button'}).text('Save'))) - .after($(document.createElement('td'))) + 'class': 'oe-edit-row-save', 'type': 'button'}).text('Save'))) + .after($(document.createElement('td')).append( + $(document.createElement('button')).attr({ + 'class': 'oe-edit-row-cancel', 'type': 'button'}).text('Cancel'))) .unwrap(); From 7ba2688e39c9c929a1306353764c38f7b0c343b0 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 3 Jun 2011 16:37:23 +0200 Subject: [PATCH 14/63] [IMP] reload of rows after action: only reload the row, not the whole tree Also improve DataSet slightly: have read_index and read_ids return their RPC promises bzr revid: xmo@openerp.com-20110603143723-go25vripams72bqb --- addons/base/static/src/js/data.js | 6 +-- addons/base/static/src/js/list-editable.js | 24 ++++------ addons/base/static/src/js/list.js | 52 +++++++++++++--------- 3 files changed, 42 insertions(+), 40 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 7582e99b662..b7739a3da27 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -259,7 +259,7 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. */ read_ids: function (ids, fields, callback) { var self = this; - this.rpc('/base/dataset/get', { + return this.rpc('/base/dataset/get', { model: this.model, ids: ids, fields: fields @@ -279,10 +279,10 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. */ read_index: function (fields, callback) { if (_.isEmpty(this.ids)) { - callback([]); + return $.Deferred().reject().promise(); } else { fields = fields || false; - this.read_ids([this.ids[this.index]], fields, function(records) { + return this.read_ids([this.ids[this.index]], fields, function(records) { callback(records[0]); }); } diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index ee2af7d258b..d51fa695de9 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -99,22 +99,16 @@ openerp.base.list.editable = function (openerp) { save_row: function (row_num, edit_next) { var self = this; this.edition_form.do_save(function () { - self.dataset.read_index( - _.filter(_.pluck(self.columns, 'name'), _.identity), - function (record) { - var form_record = self.transform_record(record); - self.rows.splice(row_num, 1, form_record); - self.reload_record(row_num); - self.edition_form.stop(); - delete self.edition_form; - if (edit_next && self.rows.length > row_num + 1) { - self.dataset.index++; - self.row_clicked({ - currentTarget: self.$current.children().eq(row_num + 1) - }, row_num + 1); - } + self.reload_record(row_num, true).then(function () { + self.edition_form.stop(); + delete self.edition_form; + if (edit_next && self.rows.length > row_num + 1) { + self.dataset.index++; + self.row_clicked({ + currentTarget: self.$current.children().eq(row_num + 1) + }, row_num + 1); } - ); + }); }); }, /** diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index c627330fd70..8d19635968a 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -545,9 +545,13 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List e.stopPropagation(); var $target = $(e.currentTarget), field = $target.closest('td').data('field'), - record_id = self.row_id($target.closest('tr')); + $row = $target.closest('tr'), + record_id = self.row_id($row), + index = self.row_position($row); - $(self).trigger('action', [field, record_id]); + $(self).trigger('action', [field, record_id, function () { + self.reload_record(index, true); + }]); }) .delegate('tr', 'click', function (e) { e.stopPropagation(); @@ -671,14 +675,32 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List /** * Reloads the record at index ``row_index`` in the list's rows. * - * This does not re-fetch the record, it only re-renders it, replacing the - * current rendering. + * By default, simply re-renders the record. If the ``fetch`` parameter is + * provided and ``true``, will first fetch the record anew. * * @param {Number} record_index index of the record to reload + * @param {Boolean} fetch fetches the record from remote before reloading it */ - reload_record: function (record_index) { - this.$current.children().eq(record_index) - .replaceWith(this.render_record(record_index)); + reload_record: function (record_index, fetch) { + var self = this; + var read_p = null; + if (fetch) { + // save index to restore it later, if already set + var old_index = this.dataset.index; + this.dataset.index = record_index; + read_p = this.dataset.read_index( + _.filter(_.pluck(this.columns, 'name'), _.identity), + function (record) { + var form_record = self.transform_record(record); + self.rows.splice(record_index, 1, form_record); + self.dataset.index = old_index; + } + ) + } + + return $.when(read_p).then(function () { + self.$current.children().eq(record_index) + .replaceWith(self.render_record(record_index)); }) }, /** * Renders a list record to HTML @@ -848,21 +870,7 @@ openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Gr // can have selections spanning multiple links var selection = self.get_selection(); $this.trigger(e, [selection.ids, selection.records]); - }).bind('action', function (e, name, id, callback) { - if (!callback) { - callback = function () { - var $prev = child.$current.prev(); - if (!$prev.is('tbody')) { - // ungrouped - $(self.elements[0]).replaceWith(self.render()); - } else { - // ghetto reload child (and its siblings) - $prev.children().last().click(); - } - }; - } - $this.trigger(e, [name, id, callback]); - }).bind('deleted row_link', function (e) { + }).bind('action deleted row_link', function (e) { // additional positional parameters are provided to trigger as an // Array, following the event type or event object, but are // provided to the .bind event handler as *args. From 8d35fb9a7357c8f555fc8942ee11073be8c047ed Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 6 Jun 2011 10:46:22 +0200 Subject: [PATCH 15/63] [FIX] send current search context to listview load (fields_view_get) so @invisible can be computed correctly bzr revid: xmo@openerp.com-20110606084622-iwq5tn3lpegabibe --- addons/base/static/src/js/list.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 8d19635968a..7bcfc26c61b 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -257,7 +257,8 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi return this.rpc('/base/listview/load', { model: this.model, view_id: this.view_id, - toolbar: !!this.flags.sidebar + toolbar: !!this.flags.sidebar, + context: this.dataset.context }, function (field_view_get) { self.on_loaded(field_view_get, grouped); }); From 69132745e0e7232666c5ee62cb3ade51d4260c36 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 6 Jun 2011 11:52:54 +0200 Subject: [PATCH 16/63] [FIX] remove fields_view_get preprocessing of set_editable/@editable, done in JS bzr revid: xmo@openerp.com-20110606095254-h7r8v42y8q42sjj4 --- addons/base/controllers/main.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 70feda44bc0..dcb5ae9e4bd 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -571,20 +571,6 @@ class ListView(View): fields_view = self.fields_view_get(req, model, view_id, 'tree', toolbar=toolbar) return {'fields_view': fields_view} - def fields_view_get(self, request, model, view_id, view_type="tree", - transform=True, toolbar=False, submenu=False): - """ Sets @editable on the view's arch if it isn't already set and - ``set_editable`` is present in the request context - """ - view = super(ListView, self).fields_view_get( - request, model, view_id, view_type, transform, toolbar, submenu) - - view_attributes = view['arch']['attrs'] - if request.context.get('set_editable')\ - and 'editable' not in view_attributes: - view_attributes['editable'] = 'bottom' - return view - def process_colors(self, view, row, context): colors = view['arch']['attrs'].get('colors') From efbde798bc2fbfe4ab659c08801551e7bece7c1a Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 6 Jun 2011 11:59:18 +0200 Subject: [PATCH 17/63] [FIX] handling of editable list views via @editable, add basis for adding records in editable list mode bzr revid: xmo@openerp.com-20110606095918-9kcm3x1m8bncl092 --- addons/base/static/src/js/list-editable.js | 42 ++++++++++++++++++++-- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index d51fa695de9..c0a9d846496 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -9,6 +9,8 @@ openerp.base.list.editable = function (openerp) { openerp.base.ListView.prototype.defaults.editable = null; var old_actual_search = openerp.base.ListView.prototype.do_actual_search; + var old_add_record = openerp.base.ListView.prototype.do_add_record; + var old_on_loaded = openerp.base.ListView.prototype.on_loaded; _.extend(openerp.base.ListView.prototype, { /** * Sets editability status for the list, based on defaults, view @@ -18,11 +20,11 @@ openerp.base.list.editable = function (openerp) { */ set_editable: function (force) { // If ``force``, set editability to bottom - // else if editability flag in view arch, use that // otherwise rely on view default + // view' @editable is handled separately as we have not yet + // fetched and processed the view at this point. this.options.editable = ( (force && "bottom") - || this.fields_view.arch.attrs.editable || this.defaults.editable); }, /** @@ -31,6 +33,29 @@ openerp.base.list.editable = function (openerp) { do_actual_search: function (results) { this.set_editable(results.context['set_editable']); old_actual_search.call(this, results); + }, + /** + * Replace do_add_record to handle editability (and adding new record + * as an editable row at the top or bottom of the list) + */ + do_add_record: function () { + if (this.options.editable) { + this.groups.new_record(); + } else { + old_add_record.call(this); + } + }, + on_loaded: function (data, grouped) { + // tree/@editable takes priority on everything else if present. + this.options.editable = data.fields_view.arch.editable || this.options.editable; + return old_on_loaded.call(this, data, grouped); + } + }); + + _.extend(openerp.base.ListView.Groups.prototype, { + new_record: function () { + // TODO: handle multiple children + this.children[null].new_record(); } }); @@ -48,7 +73,7 @@ openerp.base.list.editable = function (openerp) { id: _.uniqueId('oe-editable-row-'), 'class': $(row).attr('class'), onclick: function (e) {e.stopPropagation();} - }).replaceAll(row) + }) .keyup(function (e) { switch (e.which) { case KEY_RETURN: @@ -67,6 +92,13 @@ openerp.base.list.editable = function (openerp) { .delegate('button.oe-edit-row-cancel', 'click', function () { self.cancel_edition(row_num); }); + if (row) { + $new_row.replaceAll(row); + } else if (this.options.editable === 'top') { + this.$current.prepend($new_row); + } else if (this.options.editable) { + this.$current.append($new_row); + } this.edition_form = _.extend(new openerp.base.FormView( null, this.group.view.session, $new_row.attr('id'), this.dataset, false), { @@ -120,6 +152,10 @@ openerp.base.list.editable = function (openerp) { this.reload_record(row_num); this.edition_form.stop(); delete this.edition_form; + }, + new_record: function () { + this.dataset.index = null; + this.render_row_as_form(-1, null); } }); openerp.base.list = {form: {}}; From 0c673bb2483fd3d25efdd78b440caf490c7d5bc6 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 6 Jun 2011 13:42:04 +0200 Subject: [PATCH 18/63] [IMP] make edition indexing work based on the current dataset bzr revid: xmo@openerp.com-20110606114204-sjnil5xuhef0l2la --- addons/base/static/src/js/list-editable.js | 43 +++++++++++----------- addons/base/static/src/js/list.js | 14 +++---- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index c0a9d846496..44b3d68398d 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -61,13 +61,13 @@ openerp.base.list.editable = function (openerp) { var old_list_row_clicked = openerp.base.ListView.List.prototype.row_clicked; _.extend(openerp.base.ListView.List.prototype, { - row_clicked: function (event, index) { + row_clicked: function (event) { if (!this.options.editable) { - return old_list_row_clicked.call(this, event, index); + return old_list_row_clicked.call(this, event); } - this.render_row_as_form(index, event.currentTarget); + this.render_row_as_form(event.currentTarget); }, - render_row_as_form: function (row_num, row) { + render_row_as_form: function (row) { var self = this; var $new_row = $('', { id: _.uniqueId('oe-editable-row-'), @@ -77,20 +77,20 @@ openerp.base.list.editable = function (openerp) { .keyup(function (e) { switch (e.which) { case KEY_RETURN: - self.save_row(row_num, true); + self.save_row(true); break; case KEY_ESCAPE: - self.cancel_edition(row_num); + self.cancel_edition(); break; default: return; } }) .delegate('button.oe-edit-row-save', 'click', function () { - self.save_row(row_num); + self.save_row(); }) .delegate('button.oe-edit-row-cancel', 'click', function () { - self.cancel_edition(row_num); + self.cancel_edition(); }); if (row) { $new_row.replaceAll(row); @@ -125,37 +125,38 @@ openerp.base.list.editable = function (openerp) { * Saves the current row, and triggers the edition of its following * sibling if asked. * - * @param {Number} row_num the row to save * @param {Boolean} [edit_next=false] should the next row become editable */ - save_row: function (row_num, edit_next) { + save_row: function (edit_next) { var self = this; this.edition_form.do_save(function () { - self.reload_record(row_num, true).then(function () { + self.reload_record(self.dataset.index, true).then(function () { self.edition_form.stop(); delete self.edition_form; - if (edit_next && self.rows.length > row_num + 1) { - self.dataset.index++; + if (edit_next) { + self.dataset.next(); self.row_clicked({ - currentTarget: self.$current.children().eq(row_num + 1) - }, row_num + 1); + currentTarget: self.$current.children().eq( + self.dataset.index) + }); } }); }); }, /** - * Cancels the edition of the row at index ``row_num``. - * - * @param {Number} row_num index of the row being edited + * Cancels the edition of the row for the current dataset index */ - cancel_edition: function (row_num) { - this.reload_record(row_num); + cancel_edition: function () { + if (this.dataset.index !== null) { + this.reload_record(this.dataset.index); + } this.edition_form.stop(); + this.edition_form.$element.remove(); delete this.edition_form; }, new_record: function () { this.dataset.index = null; - this.render_row_as_form(-1, null); + this.render_row_as_form(); } }); openerp.base.list = {form: {}}; diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 6081c8c0eb8..678b7f9f5a7 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -83,8 +83,8 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi 'action': function (e, action_name, id, callback) { self.do_action(action_name, id, callback); }, - 'row_link': function (e, index, id, dataset) { - self.do_activate_record(index, id, dataset); + 'row_link': function (e, id, dataset) { + self.do_activate_record(dataset.index, id, dataset); } }); }, @@ -565,16 +565,14 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List }) .delegate('tr', 'click', function (e) { e.stopPropagation(); - var index = self.row_position(e.currentTarget); - self.dataset.index = index; - self.row_clicked(e, index); + self.dataset.index = self.row_position(e.currentTarget); + self.row_clicked(e); }); }, - row_clicked: function (event, index) { + row_clicked: function () { $(this).trigger( 'row_link', - [index, - this.rows[index].data.id.value, + [this.rows[this.dataset.index].data.id.value, this.dataset]); }, render: function () { From b6232f60fd30a80590d2b8c261421e0cb01f4bc3 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 13:43:06 +0200 Subject: [PATCH 19/63] [imp] added db selection bzr revid: nicolas.vanhoren@openerp.com-20110606114306-3lby8yl1mlfxmn0j --- addons/base/controllers/main.py | 7 +++++++ addons/base/static/src/css/base.css | 3 ++- addons/base/static/src/js/chrome.js | 24 +++++++++++++++--------- addons/base/static/src/xml/base.xml | 11 ++++++++++- 4 files changed, 34 insertions(+), 11 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index fc846f22838..86e0af09429 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -98,6 +98,13 @@ class Session(openerpweb.Controller): "session_id": req.session_id, "uid": req.session._uid, } + + @openerpweb.jsonrequest + def get_databases_list(self, req): + proxy = req.session.proxy("db") + dbs = proxy.list() + + return {"db_list": dbs} @openerpweb.jsonrequest def modules(self, req): diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 7cdf9af0286..fff41c0f557 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -90,7 +90,8 @@ body.openerp { padding: 3px; text-align: right; } -.openerp .login .oe_box2 td input { +.openerp .login .oe_box2 td input, +.openerp .login .oe_box2 td select { width: 100%; } .openerp .login .oe_login_right_pane { diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index 2acb66c7ada..6fa95266ba9 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -778,26 +778,29 @@ openerp.base.Login = openerp.base.Controller.extend({ this._super(session, element_id); }, start: function() { - this.$element.html(QWeb.render("Login", {})); - this.$element.find("form").submit(this.on_submit); + var self = this; + this.rpc("/base/session/get_databases_list", {}, function(result) { + self.db_list = result.db_list; + self.display(); + }, function() { + self.display(); + }); }, + display: function() { + this.$element.html(QWeb.render("Login", this)); + this.$element.find("form").submit(this.on_submit); + }, on_login_invalid: function() { - this.$element - .removeClass("login_valid") - .addClass("login_invalid"); this.$element.closest(".openerp").addClass("login-mode"); }, on_login_valid: function() { - this.$element - .removeClass("login_invalid") - .addClass("login_valid"); this.$element.closest(".openerp").removeClass("login-mode"); }, on_submit: function(ev) { ev.preventDefault(); var self = this; var $e = this.$element; - var db = $e.find("form input[name=db]").val(); + var db = $e.find("form [name=db]").val(); var login = $e.find("form input[name=login]").val(); var password = $e.find("form input[name=password]").val(); //$e.hide(); @@ -806,12 +809,15 @@ openerp.base.Login = openerp.base.Controller.extend({ if(self.session.session_is_valid()) { self.on_login_valid(); } else { + self.$element.addClass("login_invalid"); self.on_login_invalid(); } }); }, do_ask_login: function(continuation) { this.on_login_invalid(); + this.$element + .removeClass("login_invalid"); this.on_login_valid.add({ position: "last", unique: true, diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index ca0a0ff7205..afbd4f81d91 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -61,7 +61,16 @@ From f9a4afe8892e3783e278dd4691af46b7b4c9f773 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 6 Jun 2011 14:32:29 +0200 Subject: [PATCH 20/63] [FIX] editable is an attribute on tree view bzr revid: xmo@openerp.com-20110606123229-2agzw9djd99ojczi --- addons/base/static/src/js/list-editable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index 44b3d68398d..6f862c52e2c 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -47,7 +47,7 @@ openerp.base.list.editable = function (openerp) { }, on_loaded: function (data, grouped) { // tree/@editable takes priority on everything else if present. - this.options.editable = data.fields_view.arch.editable || this.options.editable; + this.options.editable = data.fields_view.arch.attrs.editable || this.options.editable; return old_on_loaded.call(this, data, grouped); } }); From 8ec4ee1ad21df771a0a0eaaf57b9af85b31d6019 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 6 Jun 2011 15:11:08 +0200 Subject: [PATCH 21/63] [IMP] Add flags to prepend records on save, and signal whether the record was updated or created in save callback bzr revid: xmo@openerp.com-20110606131108-3aoi1326xj88cwtt --- addons/base/static/src/js/form.js | 40 +++++++++++++++++++++++++------ 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index b2d3e60b321..24ae0983f79 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -226,7 +226,15 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV self.on_record_loaded(result.result); }); }, - do_save: function(success) { + /** + * Triggers saving the form's record. Chooses between creating a new + * record or saving an existing one depending on whether the record + * already has an id property. + * + * @param {Function} success callback on save success + * @param {Boolean} [prepend_on_create=false] if ``do_save`` creates a new record, should that record be inserted at the start of the dataset (by default, records are added at the end) + */ + do_save: function(success, prepend_on_create) { var self = this; if (!this.ready) { return false; @@ -249,7 +257,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV this.log("About to save", values); if (!this.datarecord.id) { this.dataset.create(values, function(r) { - self.on_created(r, success); + self.on_created(r, success, prepend_on_create); }); } else { this.dataset.write(this.datarecord.id, values, function(r) { @@ -287,19 +295,37 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV } } }, - on_created: function(r, success) { + /** + * Updates the form' dataset to contain the new record: + * + * * Adds the newly created record to the current dataset (at the end by + * default) + * * Selects that record (sets the dataset's index to point to the new + * record's id). + * * Updates the pager and sidebar displays + * + * @param {Object} r + * @param {Function} success callback to execute after having updated the dataset + * @param {Boolean} [prepend_on_create=false] adds the newly created record at the beginning of the dataset instead of the end + */ + on_created: function(r, success, prepend_on_create) { if (!r.result) { this.notification.warn("Record not created", "Problem while creating record."); } else { - this.datarecord.id = arguments[0].result; - this.dataset.ids.push(this.datarecord.id); - this.dataset.index = this.dataset.ids.length - 1; + this.datarecord.id = r.result; + if (!prepend_on_create) { + this.dataset.ids.push(this.datarecord.id); + this.dataset.index = this.dataset.ids.length - 1; + } else { + this.dataset.ids.unshift(this.datarecord.id); + this.dataset.index = 0; + } this.dataset.count++; this.do_update_pager(); this.do_update_sidebar(); this.notification.notify("Record created", "The record has been created with id #" + this.datarecord.id); if (success) { - success(r); + success(_.extend(r, {created: true})); } } }, From 587131e3ee418e0463ca34b9209832171fd98837 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 6 Jun 2011 15:16:30 +0200 Subject: [PATCH 22/63] [FIX] saving of newly created records * Refresh correct record in @editable=top * Follow up with new record after creation (instead of editing semi-random one) bzr revid: xmo@openerp.com-20110606131630-vq2bwtrozm8jybpo --- addons/base/static/src/js/list-editable.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index 6f862c52e2c..ae9d9c400b3 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -129,19 +129,23 @@ openerp.base.list.editable = function (openerp) { */ save_row: function (edit_next) { var self = this; - this.edition_form.do_save(function () { + this.edition_form.do_save(function (result) { self.reload_record(self.dataset.index, true).then(function () { self.edition_form.stop(); delete self.edition_form; - if (edit_next) { - self.dataset.next(); - self.row_clicked({ - currentTarget: self.$current.children().eq( - self.dataset.index) - }); + if (!edit_next) { + return; } + if (result.created) { + self.new_record(); + return; + } + self.dataset.next(); + self.render_row_as_form( + self.$current.children().eq( + self.dataset.index)); }); - }); + }, this.options.editable === 'top'); }, /** * Cancels the edition of the row for the current dataset index From ea92194cc6c105722c1cf93612b2e10d4ca94047 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 6 Jun 2011 15:43:36 +0200 Subject: [PATCH 23/63] =?UTF-8?q?[FIX]=20ensure=20only=20one=20row=20at=20?= =?UTF-8?q?a=20time=20is=20edited,=20integrate=20dataset=20index=20in=20ro?= =?UTF-8?q?w=20markup=20to=20create=20a=20more=20solid=20mapping=20between?= =?UTF-8?q?=20records=20and=20table=20rows=20in=20ListView.List=20(than=20?= =?UTF-8?q?checking=20the=20number=20of=20ancestors,=20which=20=E2=80=94?= =?UTF-8?q?=20it=20turns=20out=20=E2=80=94=20is=20a=20bit=20brittle=20when?= =?UTF-8?q?=20adding=20new=20rows=20at=20the=20front=20of=20the=20table?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bzr revid: xmo@openerp.com-20110606134336-mmk00344x7gicd0z --- addons/base/static/src/js/list-editable.js | 44 +++++++++++++++++----- addons/base/static/src/js/list.js | 7 ++-- addons/base/static/src/xml/base.xml | 3 +- 3 files changed, 40 insertions(+), 14 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index ae9d9c400b3..c500b307d27 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -65,9 +65,28 @@ openerp.base.list.editable = function (openerp) { if (!this.options.editable) { return old_list_row_clicked.call(this, event); } - this.render_row_as_form(event.currentTarget); + this.edit_record(); + }, + /** + * Checks if a record is being edited, and if so cancels it + */ + cancel_pending_edition: function () { + if (!this.edition) { + return; + } + + if (this.edition_index !== null) { + this.reload_record(this.edition_index); + } + this.edition_form.stop(); + this.edition_form.$element.remove(); + delete this.edition_form; + delete this.edition_index; + delete this.edition; }, render_row_as_form: function (row) { + this.cancel_pending_edition(); + var self = this; var $new_row = $('', { id: _.uniqueId('oe-editable-row-'), @@ -99,6 +118,8 @@ openerp.base.list.editable = function (openerp) { } else if (this.options.editable) { this.$current.append($new_row); } + this.edition = true; + this.edition_index = this.dataset.index; this.edition_form = _.extend(new openerp.base.FormView( null, this.group.view.session, $new_row.attr('id'), this.dataset, false), { @@ -133,6 +154,8 @@ openerp.base.list.editable = function (openerp) { self.reload_record(self.dataset.index, true).then(function () { self.edition_form.stop(); delete self.edition_form; + delete self.edition_index; + delete self.edition; if (!edit_next) { return; } @@ -141,9 +164,6 @@ openerp.base.list.editable = function (openerp) { return; } self.dataset.next(); - self.render_row_as_form( - self.$current.children().eq( - self.dataset.index)); }); }, this.options.editable === 'top'); }, @@ -151,12 +171,16 @@ openerp.base.list.editable = function (openerp) { * Cancels the edition of the row for the current dataset index */ cancel_edition: function () { - if (this.dataset.index !== null) { - this.reload_record(this.dataset.index); - } - this.edition_form.stop(); - this.edition_form.$element.remove(); - delete this.edition_form; + this.cancel_pending_edition(); + }, + /** + * Edits record currently selected via dataset + */ + edit_record: function () { + this.render_row_as_form( + this.$current.children( + _.sprintf('[data-index=%d]', + this.dataset.index))); }, new_record: function () { this.dataset.index = null; diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 678b7f9f5a7..30a83eaa8bd 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -607,7 +607,7 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List this.$current.find('th.oe-record-selector input:checked') .closest('tr').each(function () { var record = {}; - _(rows[$(this).prevAll().length].data).each(function (obj, key) { + _(rows[$(this).data('index')].data).each(function (obj, key) { record[key] = obj.value; }); result.ids.push(record.id); @@ -622,7 +622,7 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List * @returns {Number} the position of the row in this.rows */ row_position: function (row) { - return $(row).prevAll().length; + return $(row).data('index'); }, /** * Returns the identifier of the object displayed in the provided table @@ -721,7 +721,8 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List columns: this.columns, options: this.options, row: this.rows[record_index], - row_parity: (record_index % 2 === 0) ? 'even' : 'odd' + row_parity: (record_index % 2 === 0) ? 'even' : 'odd', + row_index: record_index }); } // drag and drop diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 03b33c117da..fe502231f17 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -288,7 +288,8 @@ - + - + - +
- + + + + + +
From 26bd0653c42327ffe764d7797b4aefbd6d189ab6 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 6 Jun 2011 16:01:54 +0200 Subject: [PATCH 24/63] [IMP] add empty padding columns to editable rows when group_by active bzr revid: xmo@openerp.com-20110606140154-39f2ivk5csfkc5x9 --- addons/base/static/src/js/list-editable.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index c500b307d27..c0ad2e7379d 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -131,13 +131,18 @@ openerp.base.list.editable = function (openerp) { position: 'last', unique: true, callback: function () { - self.edition_form.$element - .find('td') - .addClass('oe-field-cell') - .removeAttr('width') - .end() - .find('td:first').removeClass('oe-field-cell').end() - .find('td:last').removeClass('oe-field-cell').end(); + var $e = self.edition_form.$element; + $e.find('td') + .addClass('oe-field-cell') + .removeAttr('width') + .end() + .find('td:first').removeClass('oe-field-cell').end() + .find('td:last').removeClass('oe-field-cell').end(); + _(self.columns).each(function (column) { + if (column.meta) { + $e.prepend(''); + } + }); } }); this.edition_form.do_show(); From f0bce0a0456b7a0bc1174a05b5d1abd055e55553 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 6 Jun 2011 16:13:09 +0200 Subject: [PATCH 25/63] [FIX] small warnings bzr revid: xmo@openerp.com-20110606141309-fum7jw44nqljdk38 --- addons/base/static/src/js/views.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 4c259babd8f..ecd16d77d94 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -9,7 +9,7 @@ openerp.base.ActionManager = openerp.base.Controller.extend({ init: function(session, element_id) { this._super(session, element_id); this.viewmanager = null; - this.dialog_stack = [] + this.dialog_stack = []; // Temporary linking view_manager to session. // Will use controller_parent to find it when implementation will be done. session.action_manager = this; @@ -33,8 +33,7 @@ openerp.base.ActionManager = openerp.base.Controller.extend({ case 'ir.actions.act_window': if (action.target == 'new') { var element_id = _.uniqueId("act_window_dialog"); - var dialog = $('
'); - dialog.dialog({ + $('
', {id: element_id}).dialog({ title: action.name, modal: true, width: '50%', @@ -347,7 +346,7 @@ openerp.base.Sidebar = openerp.base.BaseWidget.extend({ var action = self.sections[index[0]].elements[index[1]]; action.flags = { new_window : true - } + }; self.session.action_manager.do_action(action); e.stopPropagation(); e.preventDefault(); From a4e8b8e017bff48e1450faf1c9b1b9f4090f5725 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 18:50:43 +0200 Subject: [PATCH 26/63] [deep-cleaning] first step of rewriting m2o bzr revid: nicolas.vanhoren@openerp.com-20110606165043-dae2xm6d48vq4z7m --- addons/base/controllers/main.py | 4 +- addons/base/static/src/base.html | 1 - addons/base/static/src/js/base.js | 1 - addons/base/static/src/js/data.js | 5 ++- addons/base/static/src/js/form.js | 67 +++++++++++++++++------------ addons/base/static/src/js/m2o.js | 12 ++++++ addons/base/static/src/xml/base.xml | 15 +++---- 7 files changed, 63 insertions(+), 42 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 36ea829a2f9..528c7de670d 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -447,9 +447,9 @@ class DataSet(openerpweb.Controller): return {'result': r} @openerpweb.jsonrequest - def name_search(self, req, model, search_str, domain=[], context={}): + def name_search(self, req, model, search_str, domain=[], context={}, limit=None): m = req.session.model(model) - r = m.name_search(search_str+'%', domain, '=ilike', context) + r = m.name_search(search_str+'%', domain, '=ilike', context, limit) return {'result': r} class DataGroup(openerpweb.Controller): diff --git a/addons/base/static/src/base.html b/addons/base/static/src/base.html index 467bccb92ff..69b38eec4b3 100644 --- a/addons/base/static/src/base.html +++ b/addons/base/static/src/base.html @@ -30,7 +30,6 @@ - diff --git a/addons/base/static/src/js/base.js b/addons/base/static/src/js/base.js index 6316715df89..659b3690d07 100644 --- a/addons/base/static/src/js/base.js +++ b/addons/base/static/src/js/base.js @@ -130,7 +130,6 @@ openerp.base = function(instance) { openerp.base.search(instance); openerp.base.list(instance); openerp.base.tree(instance); - openerp.base.m2o(instance); openerp.base.form(instance); }; diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 6c0a3a354a4..f1e40b09d36 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -325,13 +325,14 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. args: args }, callback); }, - name_search: function (search_str, callback) { + name_search: function (search_str, limit, callback) { search_str = search_str || ''; return this.rpc('/base/dataset/name_search', { model: this.model, search_str: search_str, domain: this.domain || [], - context: this.context + context: this.context, + limit: limit || null }, callback); }, exec_workflow: function (id, signal, callback) { diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index b49aadd7a2d..2bdf6e758c9 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -951,46 +951,59 @@ openerp.base.form.FieldSelection = openerp.base.form.Field.extend({ } }); -openerp.base.form.FieldMany2OneDatasSet = openerp.base.DataSetStatic.extend({ - start: function() { - }, - write: function (id, data, callback) { - this._super(id, data, callback); - } -}); - openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); this.template = "FieldMany2One"; this.is_field_m2o = true; + this.limit = 7; }, start: function() { - this.$element = $('#' + this.element_id); - this.dataset = new openerp.base.form.FieldMany2OneDatasSet(this.session, this.field.relation); - var views = [ [false,"list"], [false,"form"] ]; - new openerp.base.m2o(this.$element, this.field.relation, this.dataset, this.session) - this.$element.find('input').change(this.on_ui_change); + this._super(); + var self = this; + this.$input = this.$element.find("input"); + this.$drop_down = this.$element.find("span"); + this.$menu_btn = this.$element.find("button"); + this.$drop_down.button({ + icons: {primary: "ui-icon-triangle-1-s"}, text: false + }); + + this.$input.autocomplete({ + source: function(req, resp) { self.get_search_result(req, resp); } + }); + }, + get_search_result: function(request, response) { + var search_val = request.term; + var self = this; + + var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []); + + dataset.name_search(search_val, this.limit + 1, function(data){ + var result = data.result; + var values = []; + + $.each(result, function(i, val){ + values.push({ + value: val[1], + id: val[0] + }); + }); + var overflow = false; + if (values.length > this.limit) { + values = values.slice(0, this.limit); + overflow = true; + } + response(values); + }); }, set_value: function(value) { - this._super.apply(this, arguments); - var show_value = ''; - if (value != null && value !== false) { - show_value = value[1]; - this.value = value[0]; + if (value != false) { + this.data_id = value; } - this.$element.find('input').val(show_value); - this.$element.find('input').attr('m2o_id', this.value); }, - get_value: function() { - var val = this.$element.find('input').attr('m2o_id') || this.value - return val; + return ""; }, - - on_ui_change: function() { - this.touched = this.view.touched = true; - } }); openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ diff --git a/addons/base/static/src/js/m2o.js b/addons/base/static/src/js/m2o.js index fcb991dcc15..dea7e7c3b2e 100644 --- a/addons/base/static/src/js/m2o.js +++ b/addons/base/static/src/js/m2o.js @@ -1,4 +1,16 @@ openerp.base.m2o = function(openerp){ + +/* + + + + */ openerp.base.m2o = openerp.base.Controller.extend({ init: function(element_id, model, dataset, session){ diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index afbd4f81d91..08970eadace 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -498,15 +498,12 @@ -
- - - +
+ + + Open
From 3d5af3fa7308b13209d5ad94dcc74d21df99c599 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 7 Jun 2011 10:57:17 +0200 Subject: [PATCH 27/63] [IMP] hide [new] button when editable list grouped: we don't know where to put the new record, so let's remove the ability to create one as long as it's not a requested feature bzr revid: xmo@openerp.com-20110607085717-qstun0iymupoyw35 --- addons/base/static/src/js/list.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 30a83eaa8bd..550221847b2 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -134,7 +134,9 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi this.$element.html(QWeb.render("ListView", this)); // Head hook - this.$element.find('#oe-list-add').click(this.do_add_record); + this.$element.find('#oe-list-add') + .click(this.do_add_record) + .toggle(!(grouped && this.options.editable)); this.$element.find('#oe-list-delete') .hide() .click(this.do_delete_selected); From 8a7a64bcd1e8e96bb7b1604d2f74e3145315246e Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 7 Jun 2011 12:30:24 +0200 Subject: [PATCH 28/63] [IMP] make events passed through from children (lists and groups) to self by ListView.Groups pluggable bzr revid: xmo@openerp.com-20110607103024-6m5b1g52l6cfrfi6 --- addons/base/static/src/js/list.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 550221847b2..41ff6e9ec14 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -730,6 +730,7 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List // drag and drop }); openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Groups# */{ + passtrough_events: 'action deleted row_link', /** * Grouped display for the ListView. Handles basic DOM events and interacts * with the :js:class:`~openerp.base.DataGroup` bound to it. @@ -881,7 +882,7 @@ openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Gr // can have selections spanning multiple links var selection = self.get_selection(); $this.trigger(e, [selection.ids, selection.records]); - }).bind('action deleted row_link', function (e) { + }).bind(this.passtrough_events, function (e) { // additional positional parameters are provided to trigger as an // Array, following the event type or event object, but are // provided to the .bind event handler as *args. From 08f6d5d9eecc2e82cb46d591f7dd992a2d66eba6 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 7 Jun 2011 12:55:57 +0200 Subject: [PATCH 29/63] [IMP] switching to form view selecting the correct record while in edition mode with a record being edited bzr revid: xmo@openerp.com-20110607105557-izu1cm5udiqkktsg --- addons/base/static/src/js/list-editable.js | 42 ++++++++++++++++++---- addons/base/static/src/js/list.js | 2 +- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index c0ad2e7379d..ec9f21f61b7 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -8,10 +8,35 @@ openerp.base.list.editable = function (openerp) { // editability status of list rows openerp.base.ListView.prototype.defaults.editable = null; - var old_actual_search = openerp.base.ListView.prototype.do_actual_search; - var old_add_record = openerp.base.ListView.prototype.do_add_record; - var old_on_loaded = openerp.base.ListView.prototype.on_loaded; - _.extend(openerp.base.ListView.prototype, { + var old_init = openerp.base.ListView.prototype.init, + old_actual_search = openerp.base.ListView.prototype.do_actual_search, + old_add_record = openerp.base.ListView.prototype.do_add_record, + old_on_loaded = openerp.base.ListView.prototype.on_loaded; + // TODO: not sure second @lends on existing item is correct, to check + _.extend(openerp.base.ListView.prototype, /** @lends openerp.base.ListView# */{ + init: function () { + var self = this; + old_init.apply(this, arguments); + $(this.groups).bind({ + 'edit': function (e, id, dataset) { + self.do_edit(dataset.index, id, dataset); + } + }) + }, + /** + * Handles the activation of a record in editable mode (making a record + * editable), called *after* the record has become editable. + * + * The default behavior is to setup the listview's dataset to match + * whatever dataset was provided by the editing List + * + * @param {Number} index index of the record in the dataset + * @param {Object} id identifier of the record being edited + * @param {openerp.base.DataSet} dataset dataset in which the record is available + */ + do_edit: function (index, id, dataset) { + _.extend(this.dataset, dataset); + }, /** * Sets editability status for the list, based on defaults, view * architecture and the provided flag, if any. @@ -52,7 +77,8 @@ openerp.base.list.editable = function (openerp) { } }); - _.extend(openerp.base.ListView.Groups.prototype, { + _.extend(openerp.base.ListView.Groups.prototype, /** @lends openerp.base.ListView.Groups# */{ + passtrough_events: openerp.base.ListView.Groups.prototype.passtrough_events + " edit", new_record: function () { // TODO: handle multiple children this.children[null].new_record(); @@ -60,7 +86,7 @@ openerp.base.list.editable = function (openerp) { }); var old_list_row_clicked = openerp.base.ListView.List.prototype.row_clicked; - _.extend(openerp.base.ListView.List.prototype, { + _.extend(openerp.base.ListView.List.prototype, /** @lends openerp.base.ListView.List */{ row_clicked: function (event) { if (!this.options.editable) { return old_list_row_clicked.call(this, event); @@ -169,6 +195,7 @@ openerp.base.list.editable = function (openerp) { return; } self.dataset.next(); + self.edit_record(); }); }, this.options.editable === 'top'); }, @@ -186,6 +213,9 @@ openerp.base.list.editable = function (openerp) { this.$current.children( _.sprintf('[data-index=%d]', this.dataset.index))); + $(this).trigger( + 'edit', + [this.rows[this.dataset.index].data.id.value, this.dataset]); }, new_record: function () { this.dataset.index = null; diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 41ff6e9ec14..dea3feb3970 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -392,7 +392,7 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi * * @param {Number} index index of the record in the dataset * @param {Object} id identifier of the activated record - * @param {openobject.base.DataSet} dataset dataset in which the record is available (may not be the listview's dataset in case of nested groups) + * @param {openerp.base.DataSet} dataset dataset in which the record is available (may not be the listview's dataset in case of nested groups) */ do_activate_record: function (index, id, dataset) { var self = this; From 9ef70d841ff5f9c65c91ae2e1c1fb0ae0f223f50 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 7 Jun 2011 13:05:29 +0200 Subject: [PATCH 30/63] [IMP] right-align integer and float columns bzr revid: xmo@openerp.com-20110607110529-yqwoig3kb4c0ewps --- addons/base/static/src/css/base.css | 4 ++++ addons/base/static/src/xml/base.xml | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index b801fb69f09..d41d792b1bf 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -27,6 +27,10 @@ body.openerp { overflow-y: scroll; } +.openerp .oe-number { + text-align: right !important; +} + /* STATES */ .openerp .on_logged { display: none; diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index fe502231f17..cbb405886f3 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -299,8 +299,10 @@ +
+ t-att-class="'oe-field-cell' + (align ? ' oe-number' : '')" + t-att-data-field="column.id"> From 16fcca94a3d55772d15465a5b48f2ebb5012e07a Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 7 Jun 2011 13:36:29 +0200 Subject: [PATCH 31/63] [IMP] move list-wise aggregation results in the corresponding table columns, move labels to popover titles bzr revid: xmo@openerp.com-20110607113629-0jexwkti3bsiebxb --- addons/base/static/src/js/list.js | 21 ++++++++++++--------- addons/base/static/src/xml/base.xml | 8 +++++--- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index dea3feb3970..235b3bc814b 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -201,10 +201,11 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi return column.invisible !== '1'; }); - this.aggregate_columns = _(this.columns).chain() - .filter(function (column) { - return column['sum'] || column['avg'];}) + this.aggregate_columns = _(this.visible_columns) .map(function (column) { + if (!(column['sum'] || column['avg'])) { + return {}; + } var func = column['sum'] ? 'sum' : 'avg'; return { field: column.id, @@ -212,7 +213,7 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi 'function': func, label: column[func] }; - }).value(); + }); }, /** * Used to handle a click on a table row, if no other handler caught the @@ -493,12 +494,14 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi return aggregator; }, display_aggregates: function (aggregation) { - var $footer = this.$element.find('.oe-list-footer').empty(); + var $footer_cells = this.$element.find('.oe-list-footer'); _(this.aggregate_columns).each(function (column) { - $(_.sprintf( - "%s: %.2f", - column.label, aggregation[column.field])) - .appendTo($footer); + if (!column['function']) { + return; + } + var pattern = (column.type == 'integer') ? '%d' : '%.2f'; + $footer_cells.filter(_.sprintf('[data-field=%s]', column.field)) + .text(_.sprintf(pattern, aggregation[column.field])); }); } // TODO: implement reorder (drag and drop rows) diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index cbb405886f3..56cc6295f76 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -272,11 +272,13 @@
+
From e4ddec2cb1ae626384bbe1a98891a5ad1a466279 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 7 Jun 2011 16:02:48 +0200 Subject: [PATCH 32/63] [IMP] disable [new|add] and [delete] list-level buttons instead of removing them entirely from view bzr revid: xmo@openerp.com-20110607140248-4zu9m1q28vh7h6yq --- addons/base/static/src/js/list.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 235b3bc814b..64282c51a43 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -136,9 +136,9 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi // Head hook this.$element.find('#oe-list-add') .click(this.do_add_record) - .toggle(!(grouped && this.options.editable)); + .attr('disabled', grouped && this.options.editable); this.$element.find('#oe-list-delete') - .hide() + .attr('disabled', true) .click(this.do_delete_selected); this.$element.find('thead').delegate('th[data-id]', 'click', function (e) { e.stopPropagation(); @@ -360,7 +360,7 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi */ do_select: function (ids, records) { this.$element.find('#oe-list-delete') - .toggle(!!ids.length); + .attr('disabled', !ids.length); if (!records.length) { this.compute_aggregates(); From dc47f5a0c319243665678e14c4b5047b880be7c6 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 7 Jun 2011 16:13:58 +0200 Subject: [PATCH 33/63] [IMP] swap [save] and [cancel] buttons in editable list view bzr revid: xmo@openerp.com-20110607141358-9o6litpyk74njgp3 --- addons/base/static/src/xml/base.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 56cc6295f76..c65356a3477 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -872,10 +872,10 @@ 't-as': this.attr('t-as') }) .replaceAll(this) - .before($(document.createElement('td')).append( + .after($(document.createElement('td')).append( $(document.createElement('button')).attr({ 'class': 'oe-edit-row-save', 'type': 'button'}).text('Save'))) - .after($(document.createElement('td')).append( + .before($(document.createElement('td')).append( $(document.createElement('button')).attr({ 'class': 'oe-edit-row-cancel', 'type': 'button'}).text('Cancel'))) .unwrap(); From dd4a3b80479bbe974a71a4d269abe237b52e31c6 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 7 Jun 2011 16:42:15 +0200 Subject: [PATCH 34/63] [IMP] mandate that @group_operator and listwise aggregation functions be coherent on a listview field, so we can aggregate groups correctly bzr revid: xmo@openerp.com-20110607144215-g6beueaoo3tu350r --- addons/base/static/src/js/list.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 64282c51a43..60aa252cedb 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -203,15 +203,20 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi this.aggregate_columns = _(this.visible_columns) .map(function (column) { - if (!(column['sum'] || column['avg'])) { + if (column.type !== 'integer' && column.type !== 'float') { return {}; } - var func = column['sum'] ? 'sum' : 'avg'; + var aggregation_func = column['group_operator'] || 'sum'; + + if (!column[aggregation_func]) { + return {}; + } + return { field: column.id, type: column.type, - 'function': func, - label: column[func] + 'function': aggregation_func, + label: column[aggregation_func] }; }); }, From 6b67b72ccd0cd4b335dddcc2ea63cd416063ee64 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 8 Jun 2011 10:54:07 +0200 Subject: [PATCH 35/63] [imp] added remember db & user to login bzr revid: nicolas.vanhoren@openerp.com-20110608085407-np8f3ww3sw6rhw33 --- addons/base/static/src/js/chrome.js | 8 ++++++-- addons/base/static/src/xml/base.xml | 10 ++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index 6fa95266ba9..cdc8ff3bf40 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -776,6 +776,8 @@ openerp.base.Database = openerp.base.Controller.extend({ openerp.base.Login = openerp.base.Controller.extend({ init: function(session, element_id) { this._super(session, element_id); + this.selected_db = this.session.get_cookie('last_db_login_success') || null; + this.selected_login = this.session.get_cookie('last_login_login_success') || null; }, start: function() { var self = this; @@ -786,10 +788,10 @@ openerp.base.Login = openerp.base.Controller.extend({ self.display(); }); }, - display: function() { + display: function() { this.$element.html(QWeb.render("Login", this)); this.$element.find("form").submit(this.on_submit); - }, + }, on_login_invalid: function() { this.$element.closest(".openerp").addClass("login-mode"); }, @@ -807,6 +809,8 @@ openerp.base.Login = openerp.base.Controller.extend({ // Should hide then call callback this.session.session_login(db, login, password, function() { if(self.session.session_is_valid()) { + self.session.set_cookie('last_db_login_success', db); + self.session.set_cookie('last_login_login_success', login); self.on_login_valid(); } else { self.$element.addClass("login_invalid"); diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index afbd4f81d91..a723366ae12 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -67,7 +67,12 @@ @@ -75,7 +80,8 @@ - + From 8d2123f6e5e48cc30600a1f67ca6f12a3c159a48 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 8 Jun 2011 11:44:26 +0200 Subject: [PATCH 36/63] [imp] added remember password bzr revid: nicolas.vanhoren@openerp.com-20110608094426-nl8wdk7ywecrolzn --- addons/base/static/src/css/base.css | 6 ++++++ addons/base/static/src/js/chrome.js | 29 +++++++++++++++++++++++++---- addons/base/static/src/xml/base.xml | 23 ++++++++++++++++++----- 3 files changed, 49 insertions(+), 9 deletions(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index fff41c0f557..68cb3737025 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -94,6 +94,12 @@ body.openerp { .openerp .login .oe_box2 td select { width: 100%; } +.openerp .login .oe_box2 td.oe_remember { + text-align:left; +} +.openerp .login .oe_box2 td.oe_remember input { + width: inherit; +} .openerp .login .oe_login_right_pane { padding:70px 35px 5px 10px; min-width: 200px; diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index cdc8ff3bf40..0c446c48e0b 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -776,8 +776,17 @@ openerp.base.Database = openerp.base.Controller.extend({ openerp.base.Login = openerp.base.Controller.extend({ init: function(session, element_id) { this._super(session, element_id); - this.selected_db = this.session.get_cookie('last_db_login_success') || null; - this.selected_login = this.session.get_cookie('last_login_login_success') || null; + this.has_local_storage = typeof(localStorage) != 'undefined'; + this.selected_db = null; + this.selected_login = null; + this.selected_password = null; + this.remember = false; + if (this.has_local_storage && localStorage.getItem('remember_creditentials') === 'true') { + this.remember = true; + this.selected_db = localStorage.getItem('last_db_login_success'); + this.selected_login = localStorage.getItem('last_login_login_success'); + this.selected_password = localStorage.getItem('last_password_login_success'); + } }, start: function() { var self = this; @@ -805,12 +814,24 @@ openerp.base.Login = openerp.base.Controller.extend({ var db = $e.find("form [name=db]").val(); var login = $e.find("form input[name=login]").val(); var password = $e.find("form input[name=password]").val(); + var remember = $e.find("form input[name=remember]").attr('checked'); //$e.hide(); // Should hide then call callback this.session.session_login(db, login, password, function() { if(self.session.session_is_valid()) { - self.session.set_cookie('last_db_login_success', db); - self.session.set_cookie('last_login_login_success', login); + if (self.has_local_storage) { + if(remember) { + localStorage.setItem('remember_creditentials', 'true'); + localStorage.setItem('last_db_login_success', db); + localStorage.setItem('last_login_login_success', login); + localStorage.setItem('last_password_login_success', password); + } else { + localStorage.setItem('remember_creditentials', ''); + localStorage.setItem('last_db_login_success', ''); + localStorage.setItem('last_login_login_success', ''); + localStorage.setItem('last_password_login_success', ''); + } + } self.on_login_valid(); } else { self.$element.addClass("login_invalid"); diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index a723366ae12..44dcc3d9830 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -60,7 +60,7 @@ - - - + + + + + - From 154addd6bb1d1f3a31fbee7f5e3f4ad47c6b8481 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Fri, 10 Jun 2011 04:37:35 +0000 Subject: [PATCH 37/63] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20110607043551-4rpi9kkxnhsqxd0n bzr revid: launchpad_translations_on_behalf_of_openerp-20110608043635-x9rtk2xkh75xlvq5 bzr revid: launchpad_translations_on_behalf_of_openerp-20110609043554-qetee7pedmsdwjm8 bzr revid: launchpad_translations_on_behalf_of_openerp-20110610043735-3d5rff99pe1zho3w --- addons/account/i18n/es_CL.po | 45 +- addons/account/i18n/vi.po | 646 +++-- addons/base_crypt/i18n/es_CL.po | 72 + addons/base_crypt/i18n/fi.po | 71 + addons/base_crypt/i18n/nb.po | 72 + addons/base_crypt/i18n/pt.po | 71 + addons/base_synchro/i18n/fi.po | 289 ++ addons/crm/i18n/tr.po | 89 +- addons/crm_helpdesk/i18n/gl.po | 714 +++++ addons/crm_partner_assign/i18n/gl.po | 720 +++++ addons/hr_evaluation/i18n/gl.po | 933 +++++++ addons/hr_payroll/i18n/es_EC.po | 164 +- addons/html_view/i18n/fi.po | 67 + addons/l10n_cn/i18n/tr.po | 55 + addons/l10n_ec/i18n/tr.po | 54 + addons/l10n_es/i18n/tr.po | 39 + addons/l10n_gr/i18n/tr.po | 41 + addons/l10n_gt/i18n/tr.po | 39 + addons/l10n_in/i18n/tr.po | 53 + addons/l10n_mx/i18n/tr.po | 48 + addons/l10n_pl/i18n/tr.po | 60 + addons/l10n_th/i18n/tr.po | 53 + addons/l10n_ve/i18n/tr.po | 62 + addons/marketing/i18n/tr.po | 10 +- addons/mrp/i18n/gl.po | 2550 ++++++++++++++++++ addons/product_visible_discount/i18n/fi.po | 81 + addons/project_issue/i18n/nb.po | 961 +++++++ addons/project_messages/i18n/fi.po | 138 + addons/project_planning/i18n/gl.po | 619 +++++ addons/project_retro_planning/i18n/fi.po | 47 + addons/purchase_analytic_plans/i18n/fi.po | 54 + addons/purchase_analytic_plans/i18n/tr.po | 21 +- addons/purchase_double_validation/i18n/tr.po | 88 + addons/purchase_requisition/i18n/tr.po | 436 +++ addons/report_designer/i18n/tr.po | 22 +- addons/sale/i18n/tr.po | 42 +- addons/sale_analytic_plans/i18n/fi.po | 44 + addons/sale_journal/i18n/fi.po | 162 ++ addons/sale_layout/i18n/fi.po | 292 ++ addons/sale_margin/i18n/fi.po | 410 +++ addons/sale_mrp/i18n/fi.po | 66 + addons/sale_order_dates/i18n/fi.po | 72 + addons/stock_no_autopicking/i18n/fi.po | 70 + addons/stock_planning/i18n/gl.po | 1792 ++++++++++++ addons/warning/i18n/fi.po | 235 ++ addons/web_livechat/i18n/fi.po | 39 + addons/web_uservoice/i18n/fi.po | 29 + addons/wiki_sale_faq/i18n/fi.po | 70 + addons/wiki_sale_faq/i18n/tr.po | 81 + 49 files changed, 12466 insertions(+), 422 deletions(-) create mode 100644 addons/base_crypt/i18n/es_CL.po create mode 100644 addons/base_crypt/i18n/fi.po create mode 100644 addons/base_crypt/i18n/nb.po create mode 100644 addons/base_crypt/i18n/pt.po create mode 100644 addons/base_synchro/i18n/fi.po create mode 100644 addons/crm_helpdesk/i18n/gl.po create mode 100644 addons/crm_partner_assign/i18n/gl.po create mode 100644 addons/hr_evaluation/i18n/gl.po create mode 100644 addons/html_view/i18n/fi.po create mode 100644 addons/l10n_cn/i18n/tr.po create mode 100644 addons/l10n_ec/i18n/tr.po create mode 100644 addons/l10n_es/i18n/tr.po create mode 100644 addons/l10n_gr/i18n/tr.po create mode 100644 addons/l10n_gt/i18n/tr.po create mode 100644 addons/l10n_in/i18n/tr.po create mode 100644 addons/l10n_mx/i18n/tr.po create mode 100644 addons/l10n_pl/i18n/tr.po create mode 100644 addons/l10n_th/i18n/tr.po create mode 100644 addons/l10n_ve/i18n/tr.po create mode 100644 addons/mrp/i18n/gl.po create mode 100644 addons/product_visible_discount/i18n/fi.po create mode 100644 addons/project_issue/i18n/nb.po create mode 100644 addons/project_messages/i18n/fi.po create mode 100644 addons/project_planning/i18n/gl.po create mode 100644 addons/project_retro_planning/i18n/fi.po create mode 100644 addons/purchase_analytic_plans/i18n/fi.po create mode 100644 addons/purchase_double_validation/i18n/tr.po create mode 100644 addons/purchase_requisition/i18n/tr.po create mode 100644 addons/sale_analytic_plans/i18n/fi.po create mode 100644 addons/sale_journal/i18n/fi.po create mode 100644 addons/sale_layout/i18n/fi.po create mode 100644 addons/sale_margin/i18n/fi.po create mode 100644 addons/sale_mrp/i18n/fi.po create mode 100644 addons/sale_order_dates/i18n/fi.po create mode 100644 addons/stock_no_autopicking/i18n/fi.po create mode 100644 addons/stock_planning/i18n/gl.po create mode 100644 addons/warning/i18n/fi.po create mode 100644 addons/web_livechat/i18n/fi.po create mode 100644 addons/web_uservoice/i18n/fi.po create mode 100644 addons/wiki_sale_faq/i18n/fi.po create mode 100644 addons/wiki_sale_faq/i18n/tr.po diff --git a/addons/account/i18n/es_CL.po b/addons/account/i18n/es_CL.po index 6ce752d5ce0..5a93cd3609a 100644 --- a/addons/account/i18n/es_CL.po +++ b/addons/account/i18n/es_CL.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-05-11 04:07+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2011-06-06 18:06+0000\n" +"Last-Translator: Hector Rojas (doingIT.cl) \n" "Language-Team: Spanish (Chile) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-12 04:35+0000\n" +"X-Launchpad-Export-Date: 2011-06-07 04:35+0000\n" "X-Generator: Launchpad (build 12959)\n" #. module: account @@ -44,7 +44,7 @@ msgstr "" #. module: account #: view:account.move.reconcile:0 msgid "Journal Entry Reconcile" -msgstr "" +msgstr "Conciliar asiento contable" #. module: account #: field:account.installer.modules,account_voucher:0 @@ -63,7 +63,7 @@ msgstr "" #: field:account.invoice,residual:0 #: field:report.invoice.created,residual:0 msgid "Residual" -msgstr "" +msgstr "Pendiente" #. module: account #: code:addons/account/invoice.py:793 @@ -89,7 +89,7 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_report_aged_receivable msgid "Aged Receivable Till Today" -msgstr "" +msgstr "A cobrar vencidos hasta hoy" #. module: account #: field:account.partner.ledger,reconcil:0 @@ -124,11 +124,14 @@ msgid "" "If you unreconciliate transactions, you must also verify all the actions " "that are linked to those transactions because they will not be disabled" msgstr "" +"Si rompe la conciliación de transacciones, también debe verificar todas la " +"acciones que están relacionadas con esas transacciones porque no serán " +"deshabilitadas." #. module: account #: report:account.tax.code.entries:0 msgid "Accounting Entries-" -msgstr "" +msgstr "Asientos contables -" #. module: account #: code:addons/account/account.py:1305 @@ -140,7 +143,7 @@ msgstr "" #: report:account.invoice:0 #: field:account.invoice.line,origin:0 msgid "Origin" -msgstr "" +msgstr "Origen" #. module: account #: view:account.account:0 @@ -150,7 +153,7 @@ msgstr "" #: view:account.move.line.reconcile:0 #: view:account.move.line.reconcile.writeoff:0 msgid "Reconcile" -msgstr "" +msgstr "Conciliar" #. module: account #: field:account.bank.statement.line,ref:0 @@ -178,7 +181,7 @@ msgstr "" #: code:addons/account/invoice.py:1436 #, python-format msgid "Warning!" -msgstr "" +msgstr "¡Advertencia!" #. module: account #: field:account.fiscal.position.account,account_src_id:0 @@ -199,7 +202,7 @@ msgstr "" #. module: account #: selection:account.account.type,sign:0 msgid "Negative" -msgstr "" +msgstr "Negativo" #. module: account #: code:addons/account/wizard/account_move_journal.py:95 @@ -224,7 +227,7 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_tax msgid "account.tax" -msgstr "" +msgstr "account.tax" #. module: account #: code:addons/account/account.py:915 @@ -317,7 +320,7 @@ msgstr "" #. module: account #: field:account.journal.column,field:0 msgid "Field Name" -msgstr "" +msgstr "Nombre del Campo" #. module: account #: help:account.installer,charts:0 @@ -351,7 +354,7 @@ msgstr "" #: view:account.installer:0 #: view:account.installer.modules:0 msgid "Configure" -msgstr "" +msgstr "Configurar" #. module: account #: selection:account.entries.report,month:0 @@ -360,7 +363,7 @@ msgstr "" #: selection:report.account.sales,month:0 #: selection:report.account_type.sales,month:0 msgid "June" -msgstr "" +msgstr "Junio" #. module: account #: model:ir.actions.act_window,help:account.action_account_moves_bank @@ -373,18 +376,18 @@ msgstr "" #. module: account #: model:ir.model,name:account.model_account_tax_template msgid "account.tax.template" -msgstr "" +msgstr "account.tax.template" #. module: account #: model:ir.model,name:account.model_account_bank_accounts_wizard msgid "account.bank.accounts.wizard" -msgstr "" +msgstr "account.bank.accounts.wizard" #. module: account #: field:account.move.line,date_created:0 #: field:account.move.reconcile,create_date:0 msgid "Creation date" -msgstr "" +msgstr "Fecha de creación" #. module: account #: selection:account.journal,type:0 @@ -416,17 +419,17 @@ msgstr "" #. module: account #: field:account.journal,default_debit_account_id:0 msgid "Default Debit Account" -msgstr "" +msgstr "Cuenta debito por defecto" #. module: account #: view:account.move:0 msgid "Total Credit" -msgstr "" +msgstr "Total crédito" #. module: account #: selection:account.account.type,sign:0 msgid "Positive" -msgstr "" +msgstr "Positivo" #. module: account #: view:account.move.line.unreconcile.select:0 diff --git a/addons/account/i18n/vi.po b/addons/account/i18n/vi.po index f1c1a881d02..54d763a6b69 100644 --- a/addons/account/i18n/vi.po +++ b/addons/account/i18n/vi.po @@ -8,13 +8,13 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-05-04 19:28+0000\n" +"PO-Revision-Date: 2011-06-06 09:30+0000\n" "Last-Translator: Phong Nguyen-Thanh \n" "Language-Team: Vietnamese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-05 04:39+0000\n" +"X-Launchpad-Export-Date: 2011-06-07 04:35+0000\n" "X-Generator: Launchpad (build 12959)\n" #. module: account @@ -34,7 +34,7 @@ msgid "No End of year journal defined for the fiscal year" msgstr "Chưa xác định thời điểm kết thúc năm tài chính" #. module: account -#: code:addons/account/account.py:506 +#: code:addons/account/account.py:516 #, python-format msgid "" "You cannot remove/deactivate an account which is set as a property to any " @@ -47,6 +47,8 @@ msgstr "" #: view:account.move.reconcile:0 msgid "Journal Entry Reconcile" msgstr "" +"Thuế GTGT này không có vẻ là chính xác. Bạn cần phải có một cái gì đó nhập " +"như% s này" #. module: account #: field:account.installer.modules,account_voucher:0 @@ -68,10 +70,10 @@ msgid "Residual" msgstr "Còn lại" #. module: account -#: code:addons/account/invoice.py:785 +#: code:addons/account/invoice.py:793 #, python-format msgid "Please define sequence on invoice journal" -msgstr "" +msgstr "làm ơn định nghĩa cấu hình đường đi và tần suất của hóa đơn" #. module: account #: constraint:account.period:0 @@ -137,7 +139,7 @@ msgid "Accounting Entries-" msgstr "Các bút toán Kế toán-" #. module: account -#: code:addons/account/account.py:1291 +#: code:addons/account/account.py:1305 #, python-format msgid "You can not delete posted movement: \"%s\"!" msgstr "Bạn không thể xóa bút toán \"%s\" mà đã được ghi nhận trước đó!" @@ -179,9 +181,11 @@ msgid "" "If the active field is set to False, it will allow you to hide the payment " "term without removing it." msgstr "" +"Nếu lĩnh vực hoạt động được thiết lập để sai, nó sẽ cho phép bạn ẩn các hạn " +"thanh toán mà không cần loại bỏ nó." #. module: account -#: code:addons/account/invoice.py:1421 +#: code:addons/account/invoice.py:1436 #, python-format msgid "Warning!" msgstr "Cảnh báo!" @@ -236,7 +240,7 @@ msgid "account.tax" msgstr "account.tax" #. module: account -#: code:addons/account/account.py:901 +#: code:addons/account/account.py:915 #, python-format msgid "" "No period defined for this date: %s !\n" @@ -270,7 +274,7 @@ msgstr "" "on invoices" #. module: account -#: code:addons/account/invoice.py:1210 +#: code:addons/account/invoice.py:1224 #, python-format msgid "Invoice '%s' is paid partially: %s%s of %s%s (%s%s remaining)" msgstr "" @@ -287,7 +291,7 @@ msgid "Belgian Reports" msgstr "Báo cáo của Bỉ" #. module: account -#: code:addons/account/account_move_line.py:1176 +#: code:addons/account/account_move_line.py:1182 #, python-format msgid "You can not add/modify entries in a closed journal." msgstr "You can not add/modify entries in a closed journal." @@ -325,7 +329,7 @@ msgid "St." msgstr "St." #. module: account -#: code:addons/account/invoice.py:529 +#: code:addons/account/invoice.py:532 #, python-format msgid "Invoice line account company does not match with invoice company." msgstr "Invoice line account company does not match with invoice company." @@ -585,7 +589,7 @@ msgid "Not reconciled transactions" msgstr "Các giao dịch chưa đối soát" #. module: account -#: code:addons/account/account_cash_statement.py:348 +#: code:addons/account/account_cash_statement.py:349 #, python-format msgid "CashBox Balance is not matching with Calculated Balance !" msgstr "CashBox Balance is not matching with Calculated Balance !" @@ -661,7 +665,7 @@ msgstr "Sổ nhật ký tập trung" #. module: account #: sql_constraint:account.sequence.fiscalyear:0 msgid "Main Sequence must be different from current !" -msgstr "" +msgstr "trình tự chính phải khác với các hiện tại" #. module: account #: field:account.invoice.tax,tax_amount:0 @@ -669,7 +673,7 @@ msgid "Tax Code Amount" msgstr "Tax Code Amount" #. module: account -#: code:addons/account/account.py:2779 +#: code:addons/account/account.py:2823 #: code:addons/account/installer.py:434 #, python-format msgid "SAJ" @@ -702,8 +706,8 @@ msgid "Journal Period" msgstr "Chu kỳ của Sổ nhật ký" #. module: account -#: code:addons/account/account_move_line.py:732 -#: code:addons/account/account_move_line.py:776 +#: code:addons/account/account_move_line.py:723 +#: code:addons/account/account_move_line.py:767 #, python-format msgid "To reconcile the entries company should be the same for all entries" msgstr "To reconcile the entries company should be the same for all entries" @@ -764,7 +768,7 @@ msgid "Analytic Entries by line" msgstr "Analytic Entries by line" #. module: account -#: code:addons/account/wizard/account_change_currency.py:39 +#: code:addons/account/wizard/account_change_currency.py:38 #, python-format msgid "You can only change currency for Draft Invoice !" msgstr "Bạn chỉ có thể thay đổi loại tiền cho Hóa đơn Nháp" @@ -868,7 +872,7 @@ msgid "Next Partner to reconcile" msgstr "Đối tác tiếp theo cho đối soát" #. module: account -#: code:addons/account/account_move_line.py:1191 +#: code:addons/account/account_move_line.py:1197 #, python-format msgid "" "You can not do this modification on a confirmed entry ! Please note that you " @@ -995,11 +999,11 @@ msgid "Code" msgstr "Mã" #. module: account -#: code:addons/account/account.py:2083 +#: code:addons/account/account.py:2097 #: code:addons/account/account_bank_statement.py:350 -#: code:addons/account/account_move_line.py:170 +#: code:addons/account/account_move_line.py:169 #: code:addons/account/invoice.py:73 -#: code:addons/account/invoice.py:670 +#: code:addons/account/invoice.py:678 #: code:addons/account/wizard/account_use_model.py:81 #, python-format msgid "No Analytic Journal !" @@ -1080,7 +1084,6 @@ msgstr "Profit & Loss (Expense Accounts)" #. module: account #: report:account.analytic.account.journal:0 -#: report:account.move.voucher:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 msgid "-" @@ -1094,7 +1097,7 @@ msgstr "Quản lý" #. module: account #: view:account.subscription.generate:0 msgid "Generate Entries before:" -msgstr "" +msgstr "Tạo ra các mục trước:" #. module: account #: selection:account.bank.accounts.wizard,account_type:0 @@ -1130,6 +1133,10 @@ msgid "" "purchase orders or receipts. This way, you can control the invoice from your " "supplier according to what you purchased or received." msgstr "" +"Với hóa đơn cung cấp bạn có thể nhập và quản lý hoá đơn do nhà cung cấp của " +"bạn. OpenERP cũng có thể tạo ra hóa đơn dự thảo tự động từ các đơn đặt hàng " +"mua hàng hoặc biên lai. Bằng cách này, bạn có thể kiểm soát các hóa đơn từ " +"nhà cung cấp của bạn theo những gì bạn mua hay nhận được." #. module: account #: view:account.invoice.cancel:0 @@ -1166,6 +1173,7 @@ msgstr "Số lượng giao dịch" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 #: report:account.third_party_ledger_other:0 @@ -1173,7 +1181,7 @@ msgid "Entry Label" msgstr "Entry Label" #. module: account -#: code:addons/account/account.py:976 +#: code:addons/account/account.py:990 #, python-format msgid "You can not modify/delete a journal with entries for this period !" msgstr "You can not modify/delete a journal with entries for this period !" @@ -1311,7 +1319,6 @@ msgid "Journal Items Analysis" msgstr "Journal Items Analysis" #. module: account -#: model:ir.actions.act_window,name:account.action_partner_all #: model:ir.ui.menu,name:account.next_id_22 msgid "Partners" msgstr "Các đối tác" @@ -1338,10 +1345,10 @@ msgstr "Khoản phải thu" #. module: account #: model:ir.actions.report.xml,name:account.account_central_journal msgid "Central Journal" -msgstr "" +msgstr "quy trình trung tâm" #. module: account -#: code:addons/account/account_move_line.py:1271 +#: code:addons/account/account_move_line.py:1277 #, python-format msgid "You can not use this general account in this journal !" msgstr "You can not use this general account in this journal !" @@ -1410,6 +1417,10 @@ msgid "" "entry per accounting document: invoice, refund, supplier payment, bank " "statements, etc." msgstr "" +"Một mục tạp chí bao gồm các hạng mục một số tạp chí, mỗi trong số đó là cả " +"một thẻ ghi nợ hoặc giao dịch tín dụng. OpenERP tự động tạo ra một mục tạp " +"chí mỗi kế toán tài liệu: hóa đơn, hoàn thuế, thanh toán nhà cung cấp, báo " +"cáo ngân hàng, etc" #. module: account #: view:account.entries.report:0 @@ -1435,7 +1446,7 @@ msgstr "" "Example: at 14 net days 2 percents, remaining amount at 30 days end of month." #. module: account -#: code:addons/account/invoice.py:815 +#: code:addons/account/invoice.py:823 #, python-format msgid "" "Cannot create the invoice !\n" @@ -1475,7 +1486,7 @@ msgstr "Template for Fiscal Position" #. module: account #: model:account.tax.code,name:account.account_tax_code_0 msgid "Tax Code Test" -msgstr "" +msgstr "mã thuế kiểm tra" #. module: account #: field:account.automatic.reconcile,reconciled:0 @@ -1523,6 +1534,7 @@ msgstr "Search Bank Statements" msgid "" "Wrong credit or debit value in model (Credit + Debit Must Be greater \"0\")!" msgstr "" +"báo có và váo nợ sai giá (báo có và báo nợ bắt buộc bắt đầu từ \"0\")" #. module: account #: view:account.chart.template:0 @@ -1552,6 +1564,12 @@ msgid "" "the Payment column of a line, you can press F1 to open the reconciliation " "form." msgstr "" +"Một thông cáo của ngân hàng là một bản tóm tắt của tất cả các giao dịch tài " +"chính xảy ra trong một thời gian nhất định trên tài khoản tiền gửi, thẻ tín " +"dụng hoặc loại nào khác của tài khoản tài chính. Sự cân bằng sẽ bắt đầu được " +"đề xuất tự động và số dư đóng cửa là để được tìm thấy trên báo cáo của bạn. " +"Khi bạn đang ở trong cột Thanh toán của một dòng, bạn có thể nhấn F1 để mở " +"hình thức hoà giải." #. module: account #: report:account.analytic.account.cost_ledger:0 @@ -1597,7 +1615,6 @@ msgid "Separated Journal Sequences" msgstr "Separated Journal Sequences" #. module: account -#: field:account.bank.statement,user_id:0 #: view:account.invoice:0 msgid "Responsible" msgstr "Chịu trách nhiệm" @@ -1669,7 +1686,7 @@ msgid "Error! You cannot define overlapping fiscal years" msgstr "Lỗi! Bạn không thể định nghĩa các năm tài chính chồng nhau" #. module: account -#: code:addons/account/account_move_line.py:808 +#: code:addons/account/account_move_line.py:799 #, python-format msgid "The account is not defined to be reconciled !" msgstr "Tài khoản không được định nghĩa để đối soát !" @@ -1684,7 +1701,7 @@ msgstr "Các giá trị" msgid "" "If the active field is set to False, it will allow you to hide the journal " "period without removing it." -msgstr "" +msgstr "nếu thiết lập này bị sai. bạn có thể ẩn nó thay vì xóa nó." #. module: account #: view:res.partner:0 @@ -1702,7 +1719,7 @@ msgid "Receivables & Payables" msgstr "Khoản phải thu & Khoản phải trả" #. module: account -#: code:addons/account/account_move_line.py:815 +#: code:addons/account/account_move_line.py:806 #, python-format msgid "You have to provide an account for the write off entry !" msgstr "You have to provide an account for the write off entry !" @@ -1738,7 +1755,7 @@ msgid "Customer Ref:" msgstr "Tham chiếu khách hàng:" #. module: account -#: code:addons/account/account_cash_statement.py:328 +#: code:addons/account/account_cash_statement.py:329 #, python-format msgid "User %s does not have rights to access %s journal !" msgstr "User %s does not have rights to access %s journal !" @@ -1759,7 +1776,7 @@ msgid "Tax Declaration: Credit Notes" msgstr "Tax Declaration: Credit Notes" #. module: account -#: code:addons/account/account.py:499 +#: code:addons/account/account.py:509 #, python-format msgid "You cannot deactivate an account that contains account moves." msgstr "You cannot deactivate an account that contains account moves." @@ -1772,10 +1789,10 @@ msgstr "Credit amount" #. module: account #: constraint:account.move.line:0 msgid "You can not create move line on closed account." -msgstr "" +msgstr "bạn không thể xóa hay di chuyển dòng này vì tài khoản đã đóng." #. module: account -#: code:addons/account/account.py:519 +#: code:addons/account/account.py:529 #, python-format msgid "" "You cannot change the type of account from 'Closed' to any other type which " @@ -1792,7 +1809,7 @@ msgstr "Reserve And Profit/Loss Account" #. module: account #: sql_constraint:account.move.line:0 msgid "Wrong credit or debit value in accounting entry !" -msgstr "" +msgstr "báo nợ hay báo có bị sai trong tài khoản kế toán." #. module: account #: view:account.invoice.report:0 @@ -1958,7 +1975,7 @@ msgstr "Tài khoản không đánh thuế" msgid "" "If the active field is set to False, it will allow you to hide the tax " "without removing it." -msgstr "" +msgstr "nếu thiết lập này bị sai. bạn sẽ ẩn nó thay vì xóa nó." #. module: account #: help:account.bank.statement,name:0 @@ -2039,8 +2056,6 @@ msgid "" "Invalid period ! Some periods overlap or the date period is not in the scope " "of the fiscal year. " msgstr "" -"Invalid period ! Some periods overlap or the date period is not in the scope " -"of the fiscal year. " #. module: account #: selection:account.invoice,state:0 @@ -2057,12 +2072,12 @@ msgid " Journal" msgstr " Sổ nhật ký" #. module: account -#: code:addons/account/account.py:1319 +#: code:addons/account/account.py:1333 #, python-format msgid "" "There is no default default debit account defined \n" "on journal \"%s\"" -msgstr "" +msgstr "đây là số tài khoản mặc định được định nghĩa trên quy trìnhl \"%s\"" #. module: account #: help:account.account,type:0 @@ -2093,6 +2108,9 @@ msgid "" "certified Chart of Accounts exists for your specified country, a generic one " "can be installed and will be selected by default." msgstr "" +"Các biểu đồ mặc định của tài khoản là lựa chọn phù hợp với nước bạn. Nếu " +"không có biểu đồ xác nhận tài khoản kế toán tồn tại cho đất nước chỉ định " +"của bạn, một chung có thể được cài đặt và sẽ được lựa chọn theo mặc định" #. module: account #: view:account.account.type:0 @@ -2114,7 +2132,7 @@ msgid "Description" msgstr "Mô tả" #. module: account -#: code:addons/account/account.py:2844 +#: code:addons/account/account.py:2888 #: code:addons/account/installer.py:498 #, python-format msgid "ECNJ" @@ -2134,7 +2152,7 @@ msgid "Income Account" msgstr "Tài khoản thu nhập" #. module: account -#: code:addons/account/invoice.py:352 +#: code:addons/account/invoice.py:351 #, python-format msgid "There is no Accounting Journal of type Sale/Purchase defined!" msgstr "There is no Accounting Journal of type Sale/Purchase defined!" @@ -2145,6 +2163,7 @@ msgid "Accounting Properties" msgstr "Accounting Properties" #. module: account +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.print.journal,sort_selection:0 msgid "Entries Sorted By" @@ -2173,6 +2192,7 @@ msgstr "Product Template" #: field:account.fiscalyear,name:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.journal.period,fiscalyear_id:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -2282,14 +2302,14 @@ msgid "Account Tax Code" msgstr "Mã số thuế" #. module: account -#: code:addons/account/invoice.py:545 +#: code:addons/account/invoice.py:552 #, python-format msgid "" "Can't find any account journal of %s type for this company.\n" "\n" "You can create one in the menu: \n" "Configuration\\Financial Accounting\\Accounts\\Journals." -msgstr "" +msgstr "không thể tìm trấy tài khoản nào trong quy trình %s của công ty này." #. module: account #: field:account.invoice.tax,base_code_id:0 @@ -2320,12 +2340,6 @@ msgid "" "useful because it enables you to preview at any time the tax that you owe at " "the start and end of the month or quarter." msgstr "" -"This menu prints a VAT declaration based on invoices or payments. Select one " -"or several periods of the fiscal year. The information required for a tax " -"declaration is automatically generated by OpenERP from invoices (or " -"payments, in some countries). This data is updated in real time. That’s very " -"useful because it enables you to preview at any time the tax that you owe at " -"the start and end of the month or quarter." #. module: account #: selection:account.move.line,centralisation:0 @@ -2358,7 +2372,7 @@ msgid "Account Model Entries" msgstr "Account Model Entries" #. module: account -#: code:addons/account/account.py:2796 +#: code:addons/account/account.py:2840 #: code:addons/account/installer.py:454 #, python-format msgid "EXJ" @@ -2412,6 +2426,7 @@ msgstr "" msgid "" "This report gives you an overview of the situation of a specific journal" msgstr "" +"Báo cáo này cung cấp cho bạn một tổng quan về tình hình cụ thể của quy trình" #. module: account #: constraint:product.category:0 @@ -2448,7 +2463,7 @@ msgid "Accounts" msgstr "Các tài khoản" #. module: account -#: code:addons/account/invoice.py:351 +#: code:addons/account/invoice.py:350 #, python-format msgid "Configuration Error!" msgstr "Lỗi cấu hình!" @@ -2460,13 +2475,12 @@ msgid "Average Price" msgstr "Giá trung bình" #. module: account -#: report:account.move.voucher:0 #: report:account.overdue:0 msgid "Date:" msgstr "Ngày:" #. module: account -#: code:addons/account/account.py:640 +#: code:addons/account/account.py:654 #, python-format msgid "" "You cannot modify company of this journal as its related record exist in " @@ -2504,6 +2518,7 @@ msgstr "Chiết khấu.(%)" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.overdue:0 #: report:account.third_party_ledger:0 @@ -2564,6 +2579,8 @@ msgid "" "Automatically generate entries based on what has been entered in the system " "before a specific date." msgstr "" +"Tự động tạo các mục dựa trên những gì đã được nhập vào hệ thống trước khi " +"một ngày cụ thể" #. module: account #: view:account.aged.trial.balance:0 @@ -2617,16 +2634,16 @@ msgid "This wizard will create recurring accounting entries" msgstr "This wizard will create recurring accounting entries" #. module: account -#: code:addons/account/account.py:1181 +#: code:addons/account/account.py:1195 #, python-format msgid "No sequence defined on the journal !" msgstr "No sequence defined on the journal !" #. module: account -#: code:addons/account/account.py:2083 +#: code:addons/account/account.py:2097 #: code:addons/account/account_bank_statement.py:350 -#: code:addons/account/account_move_line.py:170 -#: code:addons/account/invoice.py:670 +#: code:addons/account/account_move_line.py:169 +#: code:addons/account/invoice.py:678 #: code:addons/account/wizard/account_use_model.py:81 #, python-format msgid "You have to define an analytic journal on the '%s' journal!" @@ -2730,6 +2747,8 @@ msgstr "" msgid "" "used in statement reconciliation domain, but shouldn't be used elswhere." msgstr "" +"được sử dụng trong lĩnh vực hòa giải tuyên bố, nhưng không nên được sử dụng " +"ở nơi khác." #. module: account #: field:account.invoice.tax,base_amount:0 @@ -2794,7 +2813,7 @@ msgid "Analytic Entries" msgstr "Analytic Entries" #. module: account -#: code:addons/account/account.py:822 +#: code:addons/account/account.py:836 #, python-format msgid "" "No fiscal year defined for this date !\n" @@ -2926,7 +2945,7 @@ msgid "BNK%s" msgstr "BNK%s" #. module: account -#: code:addons/account/account.py:2906 +#: code:addons/account/account.py:2950 #: code:addons/account/installer.py:296 #, python-format msgid "BNK" @@ -3046,6 +3065,7 @@ msgstr "Keep empty to use the expense account" #: field:account.common.report,journal_ids:0 #: report:account.general.journal:0 #: field:account.general.journal,journal_ids:0 +#: report:account.general.ledger_landscape:0 #: view:account.journal.period:0 #: report:account.partner.balance:0 #: field:account.partner.balance,journal_ids:0 @@ -3106,7 +3126,7 @@ msgid "Starting Balance" msgstr "Số dư ban đầu" #. module: account -#: code:addons/account/invoice.py:1284 +#: code:addons/account/invoice.py:1298 #, python-format msgid "No Partner Defined !" msgstr "Không có đối tác được định nghĩa" @@ -3150,29 +3170,28 @@ msgstr "Sổ nhật ký:" #: view:account.invoice.report:0 #: selection:account.invoice.report,state:0 #: selection:account.journal.period,state:0 -#: report:account.move.voucher:0 #: view:account.subscription:0 #: selection:account.subscription,state:0 #: selection:report.invoice.created,state:0 msgid "Draft" -msgstr "Dự thảo" +msgstr "Nháp" #. module: account #: model:ir.actions.act_window,name:account.action_account_configuration_installer msgid "Accounting Chart Configuration" -msgstr "Cấu hình Hệ thống tài khoản kế toán" +msgstr "Cấu hình Hệ thống Tài khoản kế toán" #. module: account #: field:account.tax.code,notprintable:0 #: field:account.tax.code.template,notprintable:0 msgid "Not Printable in Invoice" -msgstr "Not Printable in Invoice" +msgstr "Hóa đơn không thể in" #. module: account #: report:account.vat.declaration:0 #: field:account.vat.declaration,chart_tax_id:0 msgid "Chart of Tax" -msgstr "Hệ thống tài khoản thuế" +msgstr "Hệ thống Thuế" #. module: account #: view:account.journal:0 @@ -3204,7 +3223,7 @@ msgstr "" "won't be able to modify their accounting fields anymore." #. module: account -#: code:addons/account/invoice.py:370 +#: code:addons/account/invoice.py:373 #, python-format msgid "Cannot delete invoice(s) that are already opened or paid !" msgstr "Không thể xóa các hóa đơn đang mở hoặc đã thanh toán !" @@ -3267,7 +3286,7 @@ msgstr "" "or 'Done' state!" #. module: account -#: code:addons/account/account.py:522 +#: code:addons/account/account.py:532 #, python-format msgid "" "You cannot change the type of account from '%s' to '%s' type as it contains " @@ -3278,8 +3297,9 @@ msgstr "" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 msgid "Counterpart" -msgstr "" +msgstr "phẩn tự tăng" #. module: account #: view:account.journal:0 @@ -3342,7 +3362,7 @@ msgstr "Hoạch đồ Kế toán" #. module: account #: view:account.tax.chart:0 msgid "(If you do not select period it will take all open periods)" -msgstr "(If you do not select period it will take all open periods)" +msgstr "" #. module: account #: field:account.journal,centralisation:0 @@ -3381,6 +3401,7 @@ msgstr "" #: field:account.entries.report,date:0 #: selection:account.general.journal,filter:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.invoice.report,date:0 #: report:account.journal.period.print:0 #: view:account.move:0 @@ -3424,22 +3445,25 @@ msgid "Chart of Accounts Template" msgstr "Hoạch đồ Kế toán Mẫu" #. module: account -#: code:addons/account/account.py:2095 +#: code:addons/account/account.py:2109 #, python-format msgid "" "Maturity date of entry line generated by model line '%s' of model '%s' is " "based on partner payment term!\n" "Please define partner on it!" msgstr "" +"Ngày đáo hạn của các dòng nhập được tạo ra bởi '% s' mô hình dòng của '% s' " +"mô hình dựa trên thời hạn thanh toán đối tác!\n" +"Hãy xác định đối tác trên nó" #. module: account -#: code:addons/account/account_move_line.py:810 +#: code:addons/account/account_move_line.py:801 #, python-format msgid "Some entries are already reconciled !" msgstr "Một số bút toán đã được đối soát !" #. module: account -#: code:addons/account/account.py:1204 +#: code:addons/account/account.py:1218 #, python-format msgid "" "You cannot validate a Journal Entry unless all journal items are in same " @@ -3534,6 +3558,8 @@ msgstr "Tài khoản phải thu" msgid "" "You cannot create entries on different periods/journals in the same move" msgstr "" +"Bạn không thể tạo mục vào chu kỳ/sổ nhật ký khác nhau trong cùng một di " +"chuyển" #. module: account #: model:process.node,name:account.process_node_supplierpaymentorder0 @@ -3561,10 +3587,10 @@ msgstr "Đơn giá" #. module: account #: model:ir.actions.act_window,name:account.action_account_tree1 msgid "Analytic Items" -msgstr "" +msgstr "phân tích mặt hàng" #. module: account -#: code:addons/account/account_move_line.py:1128 +#: code:addons/account/account_move_line.py:1134 #, python-format msgid "Unable to change tax !" msgstr "Không thể thay đổi thuế !" @@ -3575,14 +3601,14 @@ msgid "#Entries" msgstr "Số bút toán" #. module: account -#: code:addons/account/invoice.py:1422 +#: code:addons/account/invoice.py:1437 #, python-format msgid "" "You selected an Unit of Measure which is not compatible with the product." -msgstr "" +msgstr "Bạn chọn một Đơn vị đo lường mà không tương thích với sản phẩm" #. module: account -#: code:addons/account/invoice.py:473 +#: code:addons/account/invoice.py:476 #, python-format msgid "" "The Payment Term of Supplier does not have Payment Term Lines(Computation) " @@ -3680,6 +3706,10 @@ msgid "" "debit/credit accounts, of type 'situation' and with a centralized " "counterpart." msgstr "" +"Các thực hành tốt nhất ở đây là sử dụng một tạp chí dành riêng để chứa các " +"mục mở của tất cả năm tài chính. Lưu ý rằng bạn nên xác định nó với mặc định " +"ghi nợ tài khoản tín dụng /, trong 'tình trạng' loại và với một đối tác tập " +"trung." #. module: account #: view:account.installer:0 @@ -3714,6 +3744,8 @@ msgstr "Validate" #: sql_constraint:account.model.line:0 msgid "Wrong credit or debit value in model (Credit Or Debit Must Be \"0\")!" msgstr "" +"Sai tín dụng hoặc giá trị ghi nợ trong mô hình (tín dụng hay nợ phải trở " +"thành \"0 \")!" #. module: account #: model:ir.actions.act_window,help:account.action_account_invoice_report_all @@ -3801,6 +3833,8 @@ msgid "" "If the active field is set to False, it will allow you to hide the account " "without removing it." msgstr "" +"Nếu lĩnh vực hoạt động được thiết lập để sai, nó sẽ cho phép bạn ẩn các tài " +"khoản mà không cần loại bỏ nó." #. module: account #: view:account.tax.template:0 @@ -3853,6 +3887,8 @@ msgid "" "This account will be used to value outgoing stock for the current product " "category using sale price" msgstr "" +"Tài khoản này sẽ được sử dụng để chứng khoán đi giá trị cho các loại sản " +"phẩm hiện tại bằng cách sử dụng giá bán" #. module: account #: selection:account.automatic.reconcile,power:0 @@ -3885,7 +3921,7 @@ msgid "Acc.Type" msgstr "Loại tài khoản" #. module: account -#: code:addons/account/invoice.py:714 +#: code:addons/account/invoice.py:722 #, python-format msgid "Global taxes defined, but are not in invoice lines !" msgstr "Global taxes defined, but are not in invoice lines !" @@ -3949,10 +3985,11 @@ msgstr "" "created in 'Posted' state." #. module: account -#: code:addons/account/account_analytic_line.py:91 +#: code:addons/account/account_analytic_line.py:90 #, python-format msgid "There is no expense account defined for this product: \"%s\" (id:%d)" msgstr "" +"Không có tài khoản chi phí quy định cho sản phẩm này: \"% s \" (id:% d)" #. module: account #: view:res.partner:0 @@ -4012,7 +4049,7 @@ msgstr "Check if you want to display Accounts with 0 balance too." #. module: account #: view:account.tax:0 msgid "Compute Code" -msgstr "" +msgstr "mã tự động tính" #. module: account #: view:account.account.template:0 @@ -4126,7 +4163,7 @@ msgid "Credit Notes" msgstr "Credit Notes" #. module: account -#: code:addons/account/account.py:2067 +#: code:addons/account/account.py:2081 #: code:addons/account/wizard/account_use_model.py:69 #, python-format msgid "Unable to find a valid period !" @@ -4168,6 +4205,8 @@ msgid "" "This will automatically configure your chart of accounts, bank accounts, " "taxes and journals according to the selected template" msgstr "" +"Điều này sẽ tự động cấu hình biểu đồ của bạn các tài khoản, tài khoản ngân " +"hàng, thuế và các tạp chí theo mẫu được lựa chọn" #. module: account #: field:account.tax,price_include:0 @@ -4197,11 +4236,11 @@ msgid "Change" msgstr "Thay đổi" #. module: account -#: code:addons/account/account.py:1290 -#: code:addons/account/account.py:1318 -#: code:addons/account/account.py:1325 -#: code:addons/account/account_move_line.py:1055 -#: code:addons/account/invoice.py:896 +#: code:addons/account/account.py:1304 +#: code:addons/account/account.py:1332 +#: code:addons/account/account.py:1339 +#: code:addons/account/account_move_line.py:1061 +#: code:addons/account/invoice.py:904 #: code:addons/account/wizard/account_automatic_reconcile.py:152 #: code:addons/account/wizard/account_fiscalyear_close.py:78 #: code:addons/account/wizard/account_fiscalyear_close.py:81 @@ -4305,13 +4344,16 @@ msgid "You must define an analytic journal of type '%s' !" msgstr "You must define an analytic journal of type '%s' !" #. module: account -#: code:addons/account/account.py:1397 +#: code:addons/account/account.py:1411 #, python-format msgid "" "Couldn't create move with currency different from the secondary currency of " "the account \"%s - %s\". Clear the secondary currency field of the account " "definition if you want to accept all currencies." msgstr "" +"Không thể tạo ra di chuyển với tiền tệ khác nhau từ các loại tiền tệ thứ cấp " +"của tài khoản \"% s -% s\". Rõ ràng lĩnh vực tiền tệ thứ cấp của định nghĩa " +"tài khoản nếu bạn muốn chấp nhận tất cả các loại tiền tệ." #. module: account #: field:account.invoice.refund,date:0 @@ -4373,7 +4415,7 @@ msgid "Invoices" msgstr "Các hóa đơn" #. module: account -#: code:addons/account/invoice.py:804 +#: code:addons/account/invoice.py:812 #, python-format msgid "" "Please verify the price of the invoice !\n" @@ -4487,25 +4529,24 @@ msgid "Third Party (Country)" msgstr "Third Party (Country)" #. module: account -#: code:addons/account/account.py:938 -#: code:addons/account/account.py:940 -#: code:addons/account/account.py:1181 -#: code:addons/account/account.py:1393 -#: code:addons/account/account.py:1397 -#: code:addons/account/account_cash_statement.py:249 -#: code:addons/account/account_move_line.py:780 -#: code:addons/account/account_move_line.py:803 -#: code:addons/account/account_move_line.py:805 -#: code:addons/account/account_move_line.py:808 -#: code:addons/account/account_move_line.py:810 -#: code:addons/account/account_move_line.py:1117 +#: code:addons/account/account.py:952 +#: code:addons/account/account.py:954 +#: code:addons/account/account.py:1195 +#: code:addons/account/account.py:1407 +#: code:addons/account/account.py:1411 +#: code:addons/account/account_cash_statement.py:250 +#: code:addons/account/account_move_line.py:771 +#: code:addons/account/account_move_line.py:794 +#: code:addons/account/account_move_line.py:796 +#: code:addons/account/account_move_line.py:799 +#: code:addons/account/account_move_line.py:801 +#: code:addons/account/account_move_line.py:1123 #: code:addons/account/report/common_report_header.py:92 -#: code:addons/account/wizard/account_change_currency.py:39 -#: code:addons/account/wizard/account_change_currency.py:60 -#: code:addons/account/wizard/account_change_currency.py:65 -#: code:addons/account/wizard/account_change_currency.py:71 +#: code:addons/account/wizard/account_change_currency.py:38 +#: code:addons/account/wizard/account_change_currency.py:59 +#: code:addons/account/wizard/account_change_currency.py:64 +#: code:addons/account/wizard/account_change_currency.py:70 #: code:addons/account/wizard/account_move_bank_reconcile.py:49 -#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40 #: code:addons/account/wizard/account_report_common.py:120 #: code:addons/account/wizard/account_report_common.py:126 #, python-format @@ -4519,7 +4560,7 @@ msgstr "Lỗi" #: field:account.analytic.cost.ledger.journal.report,date2:0 #: field:account.analytic.inverted.balance,date2:0 msgid "End of period" -msgstr "Cuối chu kỳ" +msgstr "Kết thúc chu kỳ" #. module: account #: view:res.partner:0 @@ -4527,7 +4568,7 @@ msgid "Bank Details" msgstr "Chi tiết ngân hàng" #. module: account -#: code:addons/account/invoice.py:720 +#: code:addons/account/invoice.py:728 #, python-format msgid "Taxes missing !" msgstr "Taxes missing !" @@ -4584,7 +4625,7 @@ msgid "Check Date not in the Period" msgstr "Kiểm tra Ngày có nằm trong Chu kỳ" #. module: account -#: code:addons/account/account.py:1210 +#: code:addons/account/account.py:1224 #, python-format msgid "" "You can not modify a posted entry of this journal !\n" @@ -4606,7 +4647,7 @@ msgid "Child Tax Accounts" msgstr "Child Tax Accounts" #. module: account -#: code:addons/account/account.py:940 +#: code:addons/account/account.py:954 #, python-format msgid "Start period should be smaller then End period" msgstr "Chu kỳ bắt đầu phải nhỏ hơn chu kỳ kết thúc" @@ -4636,6 +4677,7 @@ msgstr "Analytic Balance -" #: report:account.general.journal:0 #: field:account.general.journal,target_move:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.move.journal,target_move:0 #: report:account.partner.balance:0 @@ -4666,7 +4708,7 @@ msgstr "Thanh toán" #. module: account #: view:account.tax:0 msgid "Reverse Compute Code" -msgstr "" +msgstr "Tính mã Ngược" #. module: account #: field:account.subscription.line,move_id:0 @@ -4695,6 +4737,7 @@ msgstr "Tên cột" msgid "" "This report gives you an overview of the situation of your general journals" msgstr "" +"Báo cáo này cung cấp cho bạn một tổng quan về tình hình chung của bạn" #. module: account #: field:account.entries.report,year:0 @@ -4718,7 +4761,7 @@ msgid "Line 1:" msgstr "Dòng 1:" #. module: account -#: code:addons/account/account.py:1167 +#: code:addons/account/account.py:1181 #, python-format msgid "Integrity Error !" msgstr "Lỗi toàn vẹn !" @@ -4832,7 +4875,7 @@ msgstr "Giá trị" #: code:addons/account/wizard/account_fiscalyear_close.py:41 #, python-format msgid "End of Fiscal Year Entry" -msgstr "" +msgstr "cuối năm tài chính" #. module: account #: model:process.transition,name:account.process_transition_customerinvoice0 @@ -4866,7 +4909,7 @@ msgid "" msgstr "" #. module: account -#: code:addons/account/account.py:2067 +#: code:addons/account/account.py:2081 #: code:addons/account/wizard/account_use_model.py:69 #, python-format msgid "No period found !" @@ -4940,7 +4983,7 @@ msgstr "" "Ngày = 22, Ngày trong Tháng =- 1, sau đó đúng hạn là 28/02" #. module: account -#: code:addons/account/account.py:2896 +#: code:addons/account/account.py:2940 #: code:addons/account/installer.py:283 #: code:addons/account/installer.py:295 #, python-format @@ -4968,7 +5011,7 @@ msgid "Start of period" msgstr "Bắt đầu chu kỳ" #. module: account -#: code:addons/account/account_move_line.py:1193 +#: code:addons/account/account_move_line.py:1199 #, python-format msgid "" "You can not do this modification on a reconciled entry ! Please note that " @@ -5026,12 +5069,12 @@ msgstr "End of Year Entries Journal" #. module: account #: code:addons/account/account_bank_statement.py:331 -#: code:addons/account/invoice.py:405 -#: code:addons/account/invoice.py:505 -#: code:addons/account/invoice.py:520 -#: code:addons/account/invoice.py:528 -#: code:addons/account/invoice.py:545 -#: code:addons/account/invoice.py:1347 +#: code:addons/account/invoice.py:408 +#: code:addons/account/invoice.py:508 +#: code:addons/account/invoice.py:523 +#: code:addons/account/invoice.py:531 +#: code:addons/account/invoice.py:552 +#: code:addons/account/invoice.py:1361 #: code:addons/account/wizard/account_move_journal.py:63 #, python-format msgid "Configuration Error !" @@ -5113,12 +5156,14 @@ msgid "Sort By" msgstr "Sắp xếp theo" #. module: account -#: code:addons/account/account.py:1326 +#: code:addons/account/account.py:1340 #, python-format msgid "" "There is no default default credit account defined \n" "on journal \"%s\"" msgstr "" +"Không có mặc định tài khoản mặc định tín dụng quy định\n" +"trên tạp chí \"% s \"" #. module: account #: field:account.entries.report,amount_currency:0 @@ -5206,6 +5251,10 @@ msgid "" "impossible any new entry record. Close a fiscal year when you need to " "finalize your end of year results definitive " msgstr "" +"Nếu không có mục nhập bổ sung phải được ghi trên một năm tài chính, bạn có " +"thể đóng nó từ đây. Nó sẽ đóng tất cả các thời kỳ mở cửa trong năm nay sẽ " +"làm cho không thể ghi lại bất kỳ mục nhập mới. Gần một năm tài chính khi bạn " +"cần phải hoàn thiện cuối cùng của bạn kết quả năm dứt khoát " #. module: account #: field:account.central.journal,amount_currency:0 @@ -5241,7 +5290,7 @@ msgstr "Có hiệu lực đến" #. module: account #: view:board.board:0 msgid "Aged Receivables" -msgstr "" +msgstr "Tuổi từ khoản phải thu" #. module: account #: model:ir.actions.act_window,name:account.action_account_automatic_reconcile @@ -5266,7 +5315,7 @@ msgid "Generate Opening Entries" msgstr "Generate Opening Entries" #. module: account -#: code:addons/account/account_move_line.py:738 +#: code:addons/account/account_move_line.py:729 #, python-format msgid "Already Reconciled!" msgstr "Đã được đối soát!" @@ -5304,7 +5353,7 @@ msgstr "Tài khoản con" #. module: account #: view:account.move.line.reconcile:0 -#: code:addons/account/account_move_line.py:830 +#: code:addons/account/account_move_line.py:821 #, python-format msgid "Write-Off" msgstr "Miễn bỏ" @@ -5415,6 +5464,9 @@ msgid "" "OpenERP allows you to define the tax structure and manage it from this menu. " "You can define both numeric and alphanumeric tax codes." msgstr "" +"Việc xác định mã số thuế phụ thuộc vào việc kê khai thuế của các nước bạn. " +"OpenERP cho phép bạn xác định cấu trúc thuế và quản lý nó từ trình đơn này. " +"Bạn có thể xác định cả hai mã số thuế số và chữ số." #. module: account #: help:account.partner.reconcile.process,progress:0 @@ -5451,7 +5503,7 @@ msgid "# of Lines" msgstr "Số dòng" #. module: account -#: code:addons/account/wizard/account_change_currency.py:60 +#: code:addons/account/wizard/account_change_currency.py:59 #, python-format msgid "New currency is not confirured properly !" msgstr "Loại tiền mới chưa được cấu hình đúng !" @@ -5476,14 +5528,14 @@ msgid "Filter by" msgstr "Lọc theo" #. module: account -#: code:addons/account/account_move_line.py:1131 -#: code:addons/account/account_move_line.py:1214 +#: code:addons/account/account_move_line.py:1137 +#: code:addons/account/account_move_line.py:1220 #, python-format msgid "You can not use an inactive account!" msgstr "Bạn không thể sử dụng một tài khoản không hoạt động!" #. module: account -#: code:addons/account/account_move_line.py:803 +#: code:addons/account/account_move_line.py:794 #, python-format msgid "Entries are not of the same account or already reconciled ! " msgstr "Entries are not of the same account or already reconciled ! " @@ -5504,7 +5556,7 @@ msgstr "Account General Journal" #: code:addons/account/report/common_report_header.py:100 #, python-format msgid "No Filter" -msgstr "" +msgstr "không có ô trống" #. module: account #: field:account.payment.term.line,days:0 @@ -5518,7 +5570,7 @@ msgstr "7" #. module: account #: code:addons/account/account_bank_statement.py:391 -#: code:addons/account/invoice.py:370 +#: code:addons/account/invoice.py:373 #, python-format msgid "Invalid action !" msgstr "Hành động không hợp lệ !" @@ -5527,7 +5579,7 @@ msgstr "Hành động không hợp lệ !" #: code:addons/account/wizard/account_move_journal.py:102 #, python-format msgid "Period: %s" -msgstr "" +msgstr "thời gian: %s" #. module: account #: model:ir.model,name:account.model_account_fiscal_position_tax_template @@ -5635,6 +5687,11 @@ msgid "" "line of the expense account. OpenERP will propose to you automatically the " "Tax related to this account and the counterpart \"Account Payable\"." msgstr "" +"Quan điểm này có thể được sử dụng bởi các kế toán để nhanh chóng ghi lại các " +"mục trong OpenERP. Nếu bạn muốn ghi lại một hóa đơn nhà cung cấp, bắt đầu " +"bằng cách ghi các dòng của các tài khoản chi phí. OpenERP sẽ đề xuất để bạn " +"tự động các thuế liên quan đến tài khoản này và đối tác \"Tài khoản phải " +"trả\"." #. module: account #: field:account.entries.report,date_created:0 @@ -5710,7 +5767,7 @@ msgstr "Cấu hình Báo cáo" #. module: account #: constraint:account.move.line:0 msgid "Company must be same for its related account and period." -msgstr "" +msgstr "Công ty phải cùng cho tài khoản thời gian liên quan và của nó." #. module: account #: field:account.tax,type:0 @@ -5735,7 +5792,7 @@ msgid "Companies" msgstr "Các công ty" #. module: account -#: code:addons/account/account.py:532 +#: code:addons/account/account.py:546 #, python-format msgid "" "You cannot modify Company of account as its related record exist in Entry " @@ -6015,9 +6072,9 @@ msgid "Optional create" msgstr "Optional create" #. module: account -#: code:addons/account/invoice.py:406 -#: code:addons/account/invoice.py:506 -#: code:addons/account/invoice.py:1348 +#: code:addons/account/invoice.py:409 +#: code:addons/account/invoice.py:509 +#: code:addons/account/invoice.py:1362 #, python-format msgid "Can not find account chart for this company, Please Create account." msgstr "Can not find account chart for this company, Please Create account." @@ -6054,7 +6111,7 @@ msgstr "Tập trung" #. module: account #: view:wizard.multi.charts.accounts:0 msgid "Generate Your Accounting Chart from a Chart Template" -msgstr "" +msgstr "Tạo Sơ đồ kế toán của bạn từ một biểu đồ" #. module: account #: view:account.account:0 @@ -6127,7 +6184,7 @@ msgstr "Đã được đối soát" #: report:account.invoice:0 #: field:account.invoice.tax,base:0 msgid "Base" -msgstr "Cơ sở" +msgstr "Gốc" #. module: account #: field:account.model,name:0 @@ -6168,8 +6225,8 @@ msgid "Analytic Entries Statistics" msgstr "Analytic Entries Statistics" #. module: account -#: code:addons/account/account_analytic_line.py:143 -#: code:addons/account/account_move_line.py:905 +#: code:addons/account/account_analytic_line.py:141 +#: code:addons/account/account_move_line.py:897 #, python-format msgid "Entries: " msgstr "Các bút toán: " @@ -6177,10 +6234,10 @@ msgstr "Các bút toán: " #. module: account #: view:account.use.model:0 msgid "Create manual recurring entries in a chosen journal." -msgstr "" +msgstr "Tạo các mục hướng dẫn định kỳ trên quy trình lựa chọn" #. module: account -#: code:addons/account/account.py:1393 +#: code:addons/account/account.py:1407 #, python-format msgid "Couldn't create move between different companies" msgstr "Couldn't create move between different companies" @@ -6196,6 +6253,13 @@ msgid "" "account. From this view, you can create and manage the account types you " "need for your company." msgstr "" +"Một loại tài khoản được sử dụng để xác định một tài khoản được sử dụng trong " +"từng tạp chí. Phương pháp hoãn của một loại tài khoản xác định quy trình " +"đóng hàng năm. Các báo cáo như Bảng cân đối và báo cáo lãi lỗ, và sử dụng " +"các loại (lãi / lỗ hay bảng cân đối). Ví dụ, các loại tài khoản có thể được " +"liên kết đến một tài khoản tài khoản tài sản, chi phí, hoặc tài khoản phải " +"nộp. Từ quan điểm này, bạn có thể tạo và quản lý các loại tài khoản bạn cần " +"cho công ty của bạn." #. module: account #: model:ir.actions.act_window,help:account.action_account_bank_reconcile_tree @@ -6221,7 +6285,7 @@ msgid "Total debit" msgstr "Tổng nợ" #. module: account -#: code:addons/account/account_move_line.py:781 +#: code:addons/account/account_move_line.py:772 #, python-format msgid "Entry \"%s\" is not valid !" msgstr "Bút toán \"%s\" không hợp lệ !" @@ -6290,30 +6354,31 @@ msgid " valuation: percent" msgstr " định giá: phần trăm" #. module: account -#: code:addons/account/account.py:499 -#: code:addons/account/account.py:501 -#: code:addons/account/account.py:822 -#: code:addons/account/account.py:901 -#: code:addons/account/account.py:976 -#: code:addons/account/account.py:1204 -#: code:addons/account/account.py:1210 -#: code:addons/account/account.py:2095 -#: code:addons/account/account.py:2333 -#: code:addons/account/account_analytic_line.py:90 -#: code:addons/account/account_analytic_line.py:99 +#: code:addons/account/account.py:509 +#: code:addons/account/account.py:511 +#: code:addons/account/account.py:836 +#: code:addons/account/account.py:915 +#: code:addons/account/account.py:990 +#: code:addons/account/account.py:1218 +#: code:addons/account/account.py:1224 +#: code:addons/account/account.py:2109 +#: code:addons/account/account.py:2357 +#: code:addons/account/account_analytic_line.py:89 +#: code:addons/account/account_analytic_line.py:98 #: code:addons/account/account_bank_statement.py:292 #: code:addons/account/account_bank_statement.py:305 #: code:addons/account/account_bank_statement.py:345 -#: code:addons/account/account_cash_statement.py:328 -#: code:addons/account/account_cash_statement.py:348 -#: code:addons/account/account_move_line.py:1176 -#: code:addons/account/account_move_line.py:1191 -#: code:addons/account/account_move_line.py:1193 -#: code:addons/account/invoice.py:785 -#: code:addons/account/invoice.py:815 -#: code:addons/account/invoice.py:1008 +#: code:addons/account/account_cash_statement.py:329 +#: code:addons/account/account_cash_statement.py:349 +#: code:addons/account/account_move_line.py:1182 +#: code:addons/account/account_move_line.py:1197 +#: code:addons/account/account_move_line.py:1199 +#: code:addons/account/invoice.py:793 +#: code:addons/account/invoice.py:823 +#: code:addons/account/invoice.py:1014 #: code:addons/account/wizard/account_invoice_refund.py:100 #: code:addons/account/wizard/account_invoice_refund.py:102 +#: code:addons/account/wizard/account_open_closed_fiscalyear.py:40 #: code:addons/account/wizard/account_use_model.py:44 #, python-format msgid "Error !" @@ -6350,6 +6415,10 @@ msgid "" "reconcile in a series of accounts. It finds entries for each partner where " "the amounts correspond." msgstr "" +"Đối với hoá đơn được coi là thanh toán, ghi hoá đơn phải được đối chiếu với " +"các đối tác, thường là các khoản thanh toán. Với các chức năng tự động hoà " +"giải, OpenERP làm cho tìm kiếm của riêng mình cho các mục để hòa giải trong " +"một loạt các tài khoản. Nó tìm thấy mục cho từng đối tác mà số tiền tương ứng" #. module: account #: view:account.move:0 @@ -6378,6 +6447,8 @@ msgid "" "This report is an analysis done by a partner. It is a PDF report containing " "one line per partner representing the cumulative credit balance" msgstr "" +"Báo cáo này là một phân tích được thực hiện bởi một đối tác. Đây là một báo " +"cáo PDF có chứa một dòng cho mỗi đối tác đại diện cho số dư tích lũy" #. module: account #: code:addons/account/wizard/account_validate_account_move.py:61 @@ -6416,7 +6487,7 @@ msgstr "Tất cả bút toán" #: constraint:product.template:0 msgid "" "Error: The default UOM and the purchase UOM must be in the same category." -msgstr "" +msgstr "Lỗi: UOM mặc định và UOM mua phải được trong cùng thể loại." #. module: account #: view:account.journal.select:0 @@ -6424,7 +6495,7 @@ msgid "Journal Select" msgstr "Journal Select" #. module: account -#: code:addons/account/wizard/account_change_currency.py:65 +#: code:addons/account/wizard/account_change_currency.py:64 #, python-format msgid "Currnt currency is not confirured properly !" msgstr "Loại tiền hiện tại không được cấu hình đúng !" @@ -6441,9 +6512,11 @@ msgstr "Taxes Fiscal Position" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: view:account.report.general.ledger:0 #: model:ir.actions.act_window,name:account.action_account_general_ledger_menu #: model:ir.actions.report.xml,name:account.account_general_ledger +#: model:ir.actions.report.xml,name:account.account_general_ledger_landscape #: model:ir.ui.menu,name:account.menu_general_ledger msgid "General Ledger" msgstr "Sổ cái" @@ -6461,6 +6534,9 @@ msgid "" "allowing you to quickly check the balance of each of your accounts in a " "single report" msgstr "" +"Báo cáo này cho phép bạn in hay tạo ra một pdf cân bằng thử nghiệm của bạn " +"cho phép bạn nhanh chóng kiểm tra số dư của từng tài khoản của bạn trong một " +"báo cáo duy nhất." #. module: account #: help:account.move,to_check:0 @@ -6501,7 +6577,7 @@ msgid "Total:" msgstr "Tổng cộng:" #. module: account -#: code:addons/account/account.py:2050 +#: code:addons/account/account.py:2064 #, python-format msgid "" "You can specify year, month and date in the name of the model using the " @@ -6539,7 +6615,7 @@ msgid "Child Codes" msgstr "Child Codes" #. module: account -#: code:addons/account/invoice.py:473 +#: code:addons/account/invoice.py:476 #: code:addons/account/wizard/account_invoice_refund.py:137 #, python-format msgid "Data Insufficient !" @@ -6642,6 +6718,10 @@ msgid "" "an agreement with a customer or a supplier. With Define Recurring Entries, " "you can create such entries to automate the postings in the system." msgstr "" +"Một mục định kỳ là một mục linh tinh xảy ra trên một cơ sở thường xuyên từ " +"một ngày cụ thể, tức là tương ứng với chữ ký của hợp đồng hoặc thỏa thuận " +"với một khách hàng hay nhà cung cấp. Với Xác định định kỳ mục, bạn có thể " +"tạo mục này để tự động hoá các thông tin đăng trong hệ thống" #. module: account #: field:account.entries.report,product_uom_id:0 @@ -6658,6 +6738,11 @@ msgid "" "basis. You can enter the coins that are in your cash box, and then post " "entries when money comes in or goes out of the cash box." msgstr "" +"Một tính tiền cho phép bạn quản lý các mục tiền mặt trong các tạp chí tiền " +"mặt của bạn. Tính năng này cung cấp một cách dễ dàng để theo dõi các khoản " +"thanh toán tiền mặt trên cơ sở hàng ngày. Bạn có thể nhập các đồng tiền có " +"trong hộp bằng tiền mặt của bạn, và sau đó đăng nhập khi tiền đến trong hoặc " +"đi ra khỏi hộp bằng tiền mặt." #. module: account #: selection:account.automatic.reconcile,power:0 @@ -6713,7 +6798,7 @@ msgid "Lines" msgstr "Lines" #. module: account -#: code:addons/account/invoice.py:521 +#: code:addons/account/invoice.py:524 #, python-format msgid "" "Can not find account chart for this company in invoice line account, Please " @@ -6741,7 +6826,7 @@ msgstr "Are you sure you want to open this invoice ?" #: code:addons/account/account_move_line.py:963 #, python-format msgid "Accounting Entries" -msgstr "" +msgstr "kế toán Entries" #. module: account #: field:account.account.template,parent_id:0 @@ -6812,6 +6897,9 @@ msgid "" "You can search for individual account entries through useful information. To " "search for account entries, open a journal, then select a record line." msgstr "" +"Bạn có thể tìm kiếm các mục tài khoản cá nhân thông qua các thông tin hữu " +"ích. Để tìm kiếm các mục tài khoản, mở một tạp chí, sau đó chọn một dòng ghi " +"lại." #. module: account #: report:account.invoice:0 @@ -6910,10 +6998,10 @@ msgstr "" "to create specific taxes in a custom domain." #. module: account -#: code:addons/account/account.py:938 +#: code:addons/account/account.py:952 #, python-format msgid "You should have chosen periods that belongs to the same company" -msgstr "You should have chosen periods that belongs to the same company" +msgstr "" #. module: account #: field:account.fiscalyear.close,report_name:0 @@ -7024,7 +7112,7 @@ msgid "Sign on Reports" msgstr "Sign on Reports" #. module: account -#: code:addons/account/account_cash_statement.py:249 +#: code:addons/account/account_cash_statement.py:250 #, python-format msgid "You can not have two open register for the same journal" msgstr "You can not have two open register for the same journal" @@ -7037,7 +7125,7 @@ msgstr " ngày trong tháng= -1" #. module: account #: constraint:res.partner:0 msgid "Error ! You can not create recursive associated members." -msgstr "" +msgstr "Lỗi! Bạn không thể tạo ra các thành viên đệ quy có liên quan." #. module: account #: help:account.journal,type:0 @@ -7059,7 +7147,6 @@ msgstr "" #. module: account #: report:account.invoice:0 #: view:account.invoice:0 -#: report:account.move.voucher:0 msgid "PRO-FORMA" msgstr "PRO-FORMA" @@ -7091,6 +7178,7 @@ msgstr "Thông tin tùy chọn" #. module: account #: view:account.analytic.line:0 +#: field:account.bank.statement,user_id:0 #: view:account.journal:0 #: field:account.journal,user_id:0 #: view:analytic.entries.report:0 @@ -7118,13 +7206,13 @@ msgstr "" "the limit date for the payment of this line." #. module: account -#: code:addons/account/account_move_line.py:1271 +#: code:addons/account/account_move_line.py:1277 #, python-format msgid "Bad account !" msgstr "Tài khoản không đúng !" #. module: account -#: code:addons/account/account.py:2777 +#: code:addons/account/account.py:2821 #: code:addons/account/installer.py:432 #, python-format msgid "Sales Journal" @@ -7134,7 +7222,7 @@ msgstr "Sổ nhật ký Bán hàng" #: code:addons/account/wizard/account_move_journal.py:104 #, python-format msgid "Open Journal Items !" -msgstr "" +msgstr "mở quy trình của một mặt hàng" #. module: account #: model:ir.model,name:account.model_account_invoice_tax @@ -7142,7 +7230,7 @@ msgid "Invoice Tax" msgstr "Thuế Hóa đơn" #. module: account -#: code:addons/account/account_move_line.py:1246 +#: code:addons/account/account_move_line.py:1252 #, python-format msgid "No piece number !" msgstr "No piece number !" @@ -7299,6 +7387,11 @@ msgid "" "in which they will appear. Then you can create a new journal and link your " "view to it." msgstr "" +"Tại đây bạn có thể tùy chỉnh một xem tạp chí hiện có hoặc tạo ra một cái " +"nhìn mới. Tạp chí xác định xem cách bạn có thể ghi các mục trong tạp chí của " +"bạn. Chọn các trường bạn muốn xuất hiện trên tạp chí và xác định trình tự, " +"trong đó họ sẽ xuất hiện. Sau đó, bạn có thể tạo ra một tạp chí mới và liên " +"kết của bạn để xem nó." #. module: account #: view:account.payment.term.line:0 @@ -7384,17 +7477,17 @@ msgid "Fixed" msgstr "Đã sửa" #. module: account -#: code:addons/account/account.py:506 -#: code:addons/account/account.py:519 -#: code:addons/account/account.py:522 +#: code:addons/account/account.py:516 +#: code:addons/account/account.py:529 #: code:addons/account/account.py:532 -#: code:addons/account/account.py:640 -#: code:addons/account/account.py:927 -#: code:addons/account/account_move_line.py:732 -#: code:addons/account/account_move_line.py:776 -#: code:addons/account/invoice.py:714 -#: code:addons/account/invoice.py:717 -#: code:addons/account/invoice.py:720 +#: code:addons/account/account.py:546 +#: code:addons/account/account.py:654 +#: code:addons/account/account.py:941 +#: code:addons/account/account_move_line.py:723 +#: code:addons/account/account_move_line.py:767 +#: code:addons/account/invoice.py:722 +#: code:addons/account/invoice.py:725 +#: code:addons/account/invoice.py:728 #, python-format msgid "Warning !" msgstr "Cảnh báo !" @@ -7426,6 +7519,7 @@ msgstr "Số tiền (bằng chữ) :" #: view:account.entries.report:0 #: field:account.entries.report,partner_id:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: view:account.invoice:0 #: field:account.invoice,partner_id:0 #: field:account.invoice.line,partner_id:0 @@ -7456,7 +7550,7 @@ msgid "Can not %s draft/proforma/cancel invoice." msgstr "Can not %s draft/proforma/cancel invoice." #. module: account -#: code:addons/account/invoice.py:787 +#: code:addons/account/invoice.py:795 #, python-format msgid "No Invoice Lines !" msgstr "No Invoice Lines !" @@ -7507,7 +7601,7 @@ msgid "Deferral Method" msgstr "Phương pháp hoãn lại" #. module: account -#: code:addons/account/invoice.py:359 +#: code:addons/account/invoice.py:360 #, python-format msgid "Invoice '%s' is paid." msgstr "Hóa đơn '%s' đã được trả." @@ -7520,7 +7614,7 @@ msgstr "Bút toán Tự động" #. module: account #: constraint:account.tax.code.template:0 msgid "Error ! You can not create recursive Tax Codes." -msgstr "" +msgstr "Lỗi! Bạn không thể tạo mã số thuế đệ quy." #. module: account #: view:account.invoice.line:0 @@ -7572,7 +7666,7 @@ msgid "Associated Partner" msgstr "Đối tác Liên quan" #. module: account -#: code:addons/account/invoice.py:1284 +#: code:addons/account/invoice.py:1298 #, python-format msgid "You must first select a partner !" msgstr "You must first select a partner !" @@ -7607,11 +7701,14 @@ msgid "" "will see the taxes with codes related to your legal statement according to " "your country." msgstr "" +"Các biểu đồ các loại thuế được sử dụng để tạo ra các báo cáo thuế định kỳ " +"của bạn. Bạn sẽ thấy các loại thuế với mã số liên quan tới tuyên bố pháp lý " +"của mình theo quy định của nước bạn." #. module: account #: view:account.installer.modules:0 msgid "Add extra Accounting functionalities to the ones already installed." -msgstr "" +msgstr "Thêm Kế toán thêm chức năng cho những người đã được cài đặt." #. module: account #: report:account.analytic.account.cost_ledger:0 @@ -7637,7 +7734,7 @@ msgid "Choose Fiscal Year" msgstr "Chọn năm tài chính" #. module: account -#: code:addons/account/account.py:2841 +#: code:addons/account/account.py:2885 #: code:addons/account/installer.py:495 #, python-format msgid "Purchase Refund Journal" @@ -7674,6 +7771,7 @@ msgstr "Quản lý Kế toán và Tài chính" #: view:account.entries.report:0 #: field:account.entries.report,period_id:0 #: view:account.fiscalyear:0 +#: report:account.general.ledger_landscape:0 #: view:account.invoice:0 #: view:account.invoice.report:0 #: field:account.journal.period,period_id:0 @@ -7748,6 +7846,10 @@ msgid "" "can easily generate refunds and reconcile them directly from the invoice " "form." msgstr "" +"Với khách hàng Hoàn lại tiền bạn có thể quản lý các ghi chú tín dụng cho " +"khách hàng của bạn. Hoàn là một tài liệu mà các khoản tín dụng hoá đơn hoàn " +"toàn hoặc một phần. Bạn có thể dễ dàng tạo ra hoàn và đối chiếu trực tiếp từ " +"các mẫu hoá đơn" #. module: account #: model:ir.actions.act_window,help:account.action_account_vat_declaration @@ -7759,12 +7861,6 @@ msgid "" "useful because it enables you to preview at any time the tax that you owe at " "the start and end of the month or quarter." msgstr "" -"This menu print a VAT declaration based on invoices or payments. You can " -"select one or several periods of the fiscal year. Information required for a " -"tax declaration is automatically generated by OpenERP from invoices (or " -"payments, in some countries). This data is updated in real time. That’s very " -"useful because it enables you to preview at any time the tax that you owe at " -"the start and end of the month or quarter." #. module: account #: report:account.invoice:0 @@ -7797,6 +7893,8 @@ msgid "" "added, Loss: Amount will be duducted), which is calculated from Profilt & " "Loss Report" msgstr "" +"Tài khoản này dùng để chuyển lợi nhuận / lỗ (lợi nhuận: Số tiền sẽ được thêm " +"vào, Mất: Số tiền sẽ được duducted), được tính từ Profilt & Loss Báo cáo" #. module: account #: help:account.move.line,blocked:0 @@ -7846,7 +7944,7 @@ msgid "Account Types" msgstr "Loại tài khoản" #. module: account -#: code:addons/account/invoice.py:897 +#: code:addons/account/invoice.py:905 #, python-format msgid "Cannot create invoice move on centralised journal" msgstr "Cannot create invoice move on centralised journal" @@ -7896,6 +7994,7 @@ msgstr "Sổ nhật ký Hoàn tiền" #: report:account.account.balance:0 #: report:account.central.journal:0 #: report:account.general.journal:0 +#: report:account.general.ledger_landscape:0 #: report:account.partner.balance:0 msgid "Filter By" msgstr "Lọc bởi" @@ -7908,6 +8007,10 @@ msgid "" "sales orders or deliveries. You should only confirm them before sending them " "to your customers." msgstr "" +"Với hóa đơn khách hàng bạn có thể tạo và quản lý hoá đơn bán hàng cấp cho " +"khách hàng của bạn. OpenERP cũng có thể tạo ra các hoá đơn bán hàng dự thảo " +"tự động từ các đơn đặt hàng hoặc giao hàng. Bạn chỉ nên xác nhận chúng trước " +"khi gửi cho khách hàng của bạn." #. module: account #: view:account.entries.report:0 @@ -7934,7 +8037,7 @@ msgid "Payment Term Line" msgstr "Payment Term Line" #. module: account -#: code:addons/account/account.py:2794 +#: code:addons/account/account.py:2838 #: code:addons/account/installer.py:452 #, python-format msgid "Purchase Journal" @@ -7980,6 +8083,8 @@ msgstr "Các nhà cung cấp" msgid "" "You cannot create more than one move per period on centralized journal" msgstr "" +"Bạn không thể tạo ra nhiều hơn một khoảng thời gian di chuyển mỗi ngày tập " +"trung" #. module: account #: view:account.journal:0 @@ -7997,6 +8102,8 @@ msgid "" "The residual amount on a receivable or payable of a journal entry expressed " "in the company currency." msgstr "" +"Số tiền còn dư trên phải thu hoặc phải trả của một mục tạp chí thể hiện bằng " +"tiền của công ty" #. module: account #: view:account.payment.term.line:0 @@ -8101,10 +8208,11 @@ msgid "" "The amount of the voucher must be the same amount as the one on the " "statement line" msgstr "" +"Số tiền của chứng từ phải được cùng một số tiền như trên các dòng lệnh" #. module: account -#: code:addons/account/account_move_line.py:1131 -#: code:addons/account/account_move_line.py:1214 +#: code:addons/account/account_move_line.py:1137 +#: code:addons/account/account_move_line.py:1220 #, python-format msgid "Bad account!" msgstr "Tài khoản không hợp lệ!" @@ -8115,10 +8223,10 @@ msgid "Keep empty for all open fiscal years" msgstr "Keep empty for all open fiscal years" #. module: account -#: code:addons/account/account_move_line.py:1056 +#: code:addons/account/account_move_line.py:1062 #, python-format msgid "The account move (%s) for centralisation has been confirmed!" -msgstr "" +msgstr "Việc di chuyển tài khoản (% s) để tập trung đã được khẳng định!" #. module: account #: help:account.move.line,amount_currency:0 @@ -8138,6 +8246,7 @@ msgstr "" #: field:account.entries.report,currency_id:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.invoice,currency_id:0 #: field:account.invoice.report,currency_id:0 #: field:account.journal,currency:0 @@ -8179,6 +8288,13 @@ msgid "" "would be referred to as FY 2011. You are not obliged to follow the actual " "calendar year." msgstr "" +"Xác định năm tài chính của công ty theo nhu cầu của bạn. Một năm tài chính " +"là một khoảng thời gian cuối cùng mà một công ty tài khoản được tạo thành " +"(thường là 12 tháng). Năm tài chính thường được gọi theo ngày, trong đó nó " +"kết thúc. Ví dụ, nếu năm tài chính của công ty kết thúc ngày 30 tháng 11 năm " +"2011, sau đó tất cả mọi thứ từ 01 tháng mười hai năm 2010 và ngày 30 Tháng " +"11 năm 2011 sẽ được gọi là năm tài chính 2011. Bạn không có trách nhiệm làm " +"theo năm dương lịch thực tế." #. module: account #: model:ir.actions.act_window,name:account.act_account_acount_move_line_reconcile_open @@ -8327,14 +8443,14 @@ msgid "Period from" msgstr "Chu kỳ từ" #. module: account -#: code:addons/account/account.py:2817 +#: code:addons/account/account.py:2861 #: code:addons/account/installer.py:476 #, python-format msgid "Sales Refund Journal" msgstr "Sales Refund Journal" #. module: account -#: code:addons/account/account.py:927 +#: code:addons/account/account.py:941 #, python-format msgid "" "You cannot modify company of this period as its related record exist in " @@ -8348,7 +8464,7 @@ msgstr "" #: view:account.move.line:0 #: view:account.payment.term:0 msgid "Information" -msgstr "Information" +msgstr "Thông tin" #. module: account #: model:process.node,note:account.process_node_bankstatement0 @@ -8358,7 +8474,7 @@ msgstr "Registered payment" #. module: account #: view:account.fiscalyear.close.state:0 msgid "Close states of Fiscal year and periods" -msgstr "Close states of Fiscal year and periods" +msgstr "" #. module: account #: view:account.analytic.line:0 @@ -8385,7 +8501,7 @@ msgid "Purchase Tax(%)" msgstr "Thuế mua hàng(%)" #. module: account -#: code:addons/account/invoice.py:787 +#: code:addons/account/invoice.py:795 #, python-format msgid "Please create some invoice lines." msgstr "Please create some invoice lines." @@ -8401,7 +8517,7 @@ msgid "Configure Your Accounting Application" msgstr "Cấu hình Ứng dụng Kế toán của bạn" #. module: account -#: code:addons/account/account.py:2820 +#: code:addons/account/account.py:2864 #: code:addons/account/installer.py:479 #, python-format msgid "SCNJ" @@ -8445,6 +8561,7 @@ msgstr "Followups Management" #: report:account.central.journal:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 @@ -8454,7 +8571,7 @@ msgid "Start Period" msgstr "Bắt đầu chu kỳ" #. module: account -#: code:addons/account/account.py:2333 +#: code:addons/account/account.py:2357 #, python-format msgid "Cannot locate parent code for template account!" msgstr "Cannot locate parent code for template account!" @@ -8492,7 +8609,7 @@ msgstr "" "Accountant validates the accounting entries coming from the invoice. " #. module: account -#: code:addons/account/invoice.py:1008 +#: code:addons/account/invoice.py:1014 #, python-format msgid "" "You cannot cancel the Invoice which is Partially Paid! You need to " @@ -8519,10 +8636,10 @@ msgstr "Document: Customer account statement" #. module: account #: constraint:account.move.line:0 msgid "You can not create move line on view account." -msgstr "" +msgstr "Bạn không thể tạo ra các dòng di chuyển vào tài khoản xem." #. module: account -#: code:addons/account/wizard/account_change_currency.py:71 +#: code:addons/account/wizard/account_change_currency.py:70 #, python-format msgid "Current currency is not confirured properly !" msgstr "Current currency is not confirured properly !" @@ -8535,6 +8652,10 @@ msgid "" "partially. You can easily generate refunds and reconcile them directly from " "the invoice form." msgstr "" +"Với Nhà cung cấp hoàn phí bạn có thể quản lý tín dụng các ghi chú mà bạn " +"nhận được từ nhà cung cấp của bạn. Hoàn là một tài liệu mà các khoản tín " +"dụng hoá đơn hoàn toàn hoặc một phần. Bạn có thể dễ dàng tạo ra hoàn và đối " +"chiếu trực tiếp từ các mẫu hoá đơn." #. module: account #: view:account.account.template:0 @@ -8571,6 +8692,7 @@ msgstr "Để trống để sử dụng tài khoản thu nhập" #: field:account.entries.report,balance:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.move.line,balance:0 #: report:account.partner.balance:0 #: selection:account.payment.term.line,value:0 @@ -8589,6 +8711,7 @@ msgstr "Manually or automatically entered in the system" #. module: account #: report:account.account.balance:0 +#: report:account.general.ledger_landscape:0 msgid "Display Account" msgstr "Hiển thị tài khoản" @@ -8688,6 +8811,12 @@ msgid "" "closed or left open depending on your company's activities over a specific " "period." msgstr "" +"Tại đây bạn có thể định nghĩa một khoảng thời gian tài chính, một khoảng " +"thời gian trong năm tài chính của công ty. Kỳ kế toán thông thường là một " +"tháng hoặc quý. Nó thường tương ứng với các giai đoạn của việc kê khai thuế. " +"Tạo và quản lý thời gian từ đây và quyết định có một khoảng thời gian cần " +"được đóng hoặc mở lại tùy thuộc vào các hoạt động của công ty bạn trong " +"khoảng thời gian cụ thể." #. module: account #: report:account.move.voucher:0 @@ -8710,6 +8839,7 @@ msgstr "Manual entry" #. module: account #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.move.line,move_id:0 #: field:analytic.entries.report,move_id:0 @@ -8717,7 +8847,7 @@ msgid "Move" msgstr "Move" #. module: account -#: code:addons/account/account_move_line.py:1128 +#: code:addons/account/account_move_line.py:1134 #, python-format msgid "You can not change the tax, you should remove and recreate lines !" msgstr "You can not change the tax, you should remove and recreate lines !" @@ -8751,6 +8881,8 @@ msgid "" "You have to define the bank account\n" "in the journal definition for reconciliation." msgstr "" +"Bạn phải xác định các tài khoản ngân hàng\n" +"trong định nghĩa tạp chí cho hoà giải." #. module: account #: view:account.move.line.reconcile:0 @@ -8814,6 +8946,7 @@ msgstr "Account Analytic Balance" #: report:account.central.journal:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 #: report:account.third_party_ledger:0 @@ -8857,7 +8990,7 @@ msgid "Account Subscription" msgstr "Account Subscription" #. module: account -#: code:addons/account/invoice.py:717 +#: code:addons/account/invoice.py:725 #, python-format msgid "" "Tax base different !\n" @@ -8886,6 +9019,7 @@ msgstr "Entry Subscription" #: report:account.general.journal:0 #: field:account.general.journal,date_from:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,date_start:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -8914,7 +9048,7 @@ msgid "Unreconciled" msgstr "Chưa được đối soát" #. module: account -#: code:addons/account/invoice.py:804 +#: code:addons/account/invoice.py:812 #, python-format msgid "Bad total !" msgstr "Tổng không hợp lệ !" @@ -8935,13 +9069,6 @@ msgid "" "open period. Close a period when you do not want to record new entries and " "want to lock this period for tax related calculation." msgstr "" -"A period is a fiscal period of time during which accounting entries should " -"be recorded for accounting related activities. Monthly period is the norm " -"but depending on your countries or company needs, you could also have " -"quarterly periods. Closing a period will make it impossible to record new " -"accounting entries, all new entries should then be made on the following " -"open period. Close a period when you do not want to record new entries and " -"want to lock this period for tax related calculation." #. module: account #: view:account.analytic.account:0 @@ -8979,13 +9106,13 @@ msgid "Active" msgstr "Đang hoạt động" #. module: account -#: code:addons/account/invoice.py:354 +#: code:addons/account/invoice.py:353 #, python-format msgid "Unknown Error" msgstr "Lỗi chưa biết" #. module: account -#: code:addons/account/account.py:1167 +#: code:addons/account/account.py:1181 #, python-format msgid "" "You cannot validate a non-balanced entry !\n" @@ -9033,10 +9160,10 @@ msgstr "Validate Account Move" #: field:account.entries.report,credit:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.model.line,credit:0 #: field:account.move.line,credit:0 -#: report:account.move.voucher:0 #: report:account.partner.balance:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 @@ -9081,6 +9208,9 @@ msgid "" "payment term!\n" "Please define partner on it!" msgstr "" +"Ngày đáo hạn của các dòng nhập được tạo ra bởi '% s' mô hình dựa trên dòng " +"thời hạn thanh toán đối tác!\n" +"Hãy xác định đối tác trên nó!" #. module: account #: field:account.cashbox.line,number:0 @@ -9126,7 +9256,7 @@ msgstr "Tổng quát" #: model:ir.ui.menu,name:account.next_id_23 #, python-format msgid "Periods" -msgstr "Periods" +msgstr "Các chu kỳ" #. module: account #: field:account.invoice.report,currency_rate:0 @@ -9232,6 +9362,8 @@ msgid "" "This report allows you to print or generate a pdf of your general ledger " "with details of all your account journals" msgstr "" +"Báo cáo này cho phép bạn in hay tạo ra một pdf của sổ cái của bạn với các " +"chi tiết của tất cả các tạp chí tài khoản của bạn" #. module: account #: selection:account.account,type:0 @@ -9281,7 +9413,6 @@ msgstr "Chọn chu kỳ" #: view:account.move:0 #: selection:account.move,state:0 #: view:account.move.line:0 -#: report:account.move.voucher:0 msgid "Posted" msgstr "Posted" @@ -9300,6 +9431,7 @@ msgstr "Posted" #: report:account.general.journal:0 #: field:account.general.journal,date_to:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: field:account.installer,date_stop:0 #: report:account.journal.period.print:0 #: report:account.partner.balance:0 @@ -9353,10 +9485,11 @@ msgid "This is a model for recurring accounting entries" msgstr "This is a model for recurring accounting entries" #. module: account -#: code:addons/account/account_analytic_line.py:100 +#: code:addons/account/account_analytic_line.py:99 #, python-format msgid "There is no income account defined for this product: \"%s\" (id:%d)" msgstr "" +"Không có tài khoản thu nhập được xác định cho sản phẩm này: \"% s \" (id:% d)" #. module: account #: report:account.general.ledger:0 @@ -9396,7 +9529,7 @@ msgstr "Tổng" #: code:addons/account/wizard/account_move_journal.py:97 #, python-format msgid "Journal: All" -msgstr "" +msgstr "Journal: Tẩt cả" #. module: account #: field:account.account,company_id:0 @@ -9457,7 +9590,7 @@ msgstr "" #. module: account #: view:account.fiscalyear:0 msgid "Create Monthly Periods" -msgstr "Create Monthly Periods" +msgstr "Tạo các chu kỳ theo tháng" #. module: account #: field:account.tax.code.template,sign:0 @@ -9507,8 +9640,8 @@ msgid "End period" msgstr "Chu kỳ kết thúc" #. module: account -#: code:addons/account/account_move_line.py:738 -#: code:addons/account/account_move_line.py:815 +#: code:addons/account/account_move_line.py:729 +#: code:addons/account/account_move_line.py:806 #: code:addons/account/wizard/account_invoice_state.py:44 #: code:addons/account/wizard/account_invoice_state.py:68 #: code:addons/account/wizard/account_report_balance_sheet.py:70 @@ -9526,6 +9659,8 @@ msgid "" "This account will be used to value outgoing stock for the current product " "category using cost price" msgstr "" +"Tài khoản này sẽ được sử dụng để chứng khoán đi giá trị cho các loại sản " +"phẩm hiện tại bằng cách sử dụng giá" #. module: account #: report:account.move.voucher:0 @@ -9574,10 +9709,10 @@ msgstr "Hóa đơn nhà cung cấp" #: field:account.entries.report,debit:0 #: report:account.general.journal:0 #: report:account.general.ledger:0 +#: report:account.general.ledger_landscape:0 #: report:account.journal.period.print:0 #: field:account.model.line,debit:0 #: field:account.move.line,debit:0 -#: report:account.move.voucher:0 #: report:account.partner.balance:0 #: report:account.tax.code.entries:0 #: report:account.third_party_ledger:0 @@ -9595,7 +9730,7 @@ msgstr "Invoice Lines" #. module: account #: constraint:account.account.template:0 msgid "Error ! You can not create recursive account templates." -msgstr "" +msgstr "Lỗi! Bạn không thể tạo tài khoản đệ quy mẫu." #. module: account #: constraint:account.account.template:0 @@ -9611,7 +9746,7 @@ msgid "Recurring" msgstr "Recurring" #. module: account -#: code:addons/account/account_move_line.py:805 +#: code:addons/account/account_move_line.py:796 #, python-format msgid "Entry is already reconciled" msgstr "Entry is already reconciled" @@ -9632,7 +9767,7 @@ msgid "Range" msgstr "Range" #. module: account -#: code:addons/account/account_move_line.py:1246 +#: code:addons/account/account_move_line.py:1252 #, python-format msgid "" "Can not create an automatic sequence for this piece !\n" @@ -9738,6 +9873,12 @@ msgid "" "may keep several types of specialized journals such as a cash journal, " "purchase journal, sales journal..." msgstr "" +"Tạo và quản lý tạp chí của công ty bạn từ trình đơn này. Một tạp chí được sử " +"dụng để ghi lại các giao dịch của tất cả các số liệu kế toán liên quan đến " +"việc kinh doanh hằng ngày của công ty của bạn sử dụng hệ thống sổ sách kế " +"toán kép. Tuỳ theo tính chất của các hoạt động của nó và số lượng giao dịch " +"hàng ngày, một công ty có thể giữ một số loại tạp chí chuyên ngành như một " +"tạp chí tiền mặt, tạp chí mua, tạp chí bán hàng ..." #. module: account #: model:ir.model,name:account.model_account_analytic_chart @@ -9767,7 +9908,7 @@ msgid "Accounts Mapping" msgstr "Accounts Mapping" #. module: account -#: code:addons/account/invoice.py:346 +#: code:addons/account/invoice.py:345 #, python-format msgid "Invoice '%s' is waiting for validation." msgstr "Hóa đơn '%s' đang chờ kiểm tra." @@ -9792,7 +9933,7 @@ msgid "The income or expense account related to the selected product." msgstr "The income or expense account related to the selected product." #. module: account -#: code:addons/account/account_move_line.py:1117 +#: code:addons/account/account_move_line.py:1123 #, python-format msgid "The date of your Journal Entry is not in the defined period!" msgstr "The date of your Journal Entry is not in the defined period!" @@ -9912,6 +10053,8 @@ msgid "" "If the active field is set to False, it will allow you to hide the analytic " "journal without removing it." msgstr "" +"Nếu lĩnh vực hoạt động được thiết lập để sai, nó sẽ cho phép bạn ẩn các tạp " +"chí phân tích mà không cần loại bỏ nó." #. module: account #: field:account.analytic.line,ref:0 @@ -9997,7 +10140,7 @@ msgid "You must enter a period length that cannot be 0 or below !" msgstr "You must enter a period length that cannot be 0 or below !" #. module: account -#: code:addons/account/account.py:501 +#: code:addons/account/account.py:511 #, python-format msgid "You cannot remove an account which has account entries!. " msgstr "You cannot remove an account which has account entries!. " @@ -10013,6 +10156,13 @@ msgid "" "certain amount of information. They have to be certified by an external " "auditor annually." msgstr "" +"Tạo và quản lý các tài khoản mà bạn cần để ghi lại các mục nhật ký. Một tài " +"khoản là một phần của một sổ cái cho phép các công ty của bạn để đăng ký tất " +"cả các loại giao dịch thẻ ghi nợ và tín dụng. Các công ty hiện nay các tài " +"khoản hàng năm của họ trong hai phần chính: bảng cân đối và báo cáo thu nhập " +"(lợi nhuận và tài khoản thua lỗ). Các tài khoản hàng năm của một công ty " +"luật pháp yêu cầu tiết lộ một số tiền nhất định của thông tin. Họ phải có " +"xác nhận của kiểm toán viên bên ngoài hàng năm." #. module: account #: help:account.move.line,amount_residual_currency:0 @@ -10020,6 +10170,8 @@ msgid "" "The residual amount on a receivable or payable of a journal entry expressed " "in its currency (maybe different of the company currency)." msgstr "" +"Số tiền còn dư trên phải thu hoặc phải trả của một mục tạp chí thể hiện bằng " +"đồng tiền của mình (có thể khác nhau của các loại tiền tệ của công ty)." #~ msgid "Asset" #~ msgstr "Tài sản" diff --git a/addons/base_crypt/i18n/es_CL.po b/addons/base_crypt/i18n/es_CL.po new file mode 100644 index 00000000000..2892c5fe0ba --- /dev/null +++ b/addons/base_crypt/i18n/es_CL.po @@ -0,0 +1,72 @@ +# Spanish (Chile) translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-06 18:09+0000\n" +"Last-Translator: doingit.cl \n" +"Language-Team: Spanish (Chile) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-07 04:35+0000\n" +"X-Generator: Launchpad (build 12959)\n" + +#. module: base_crypt +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "" + +#. module: base_crypt +#: model:ir.model,name:base_crypt.model_res_users +msgid "res.users" +msgstr "res.users" + +#. module: base_crypt +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "" +"La compañía seleccionada no está autorizada como compañía para este usuario" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Please specify the password !" +msgstr "" + +#. module: base_crypt +#: model:ir.module.module,shortdesc:base_crypt.module_meta_information +msgid "Base - Password Encryption" +msgstr "" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Error" +msgstr "Error!" + +#. module: base_crypt +#: model:ir.module.module,description:base_crypt.module_meta_information +msgid "" +"This module replaces the cleartext password in the database with a password " +"hash,\n" +"preventing anyone from reading the original password.\n" +"For your existing user base, the removal of the cleartext passwords occurs " +"the first time\n" +"a user logs into the database, after installing base_crypt.\n" +"After installing this module it won't be possible to recover a forgotten " +"password for your\n" +"users, the only solution is for an admin to set a new password.\n" +"\n" +"Note: installing this module does not mean you can ignore basic security " +"measures,\n" +"as the password is still transmitted unencrypted on the network (by the " +"client),\n" +"unless you are using a secure protocol such as XML-RPCS.\n" +" " +msgstr "" diff --git a/addons/base_crypt/i18n/fi.po b/addons/base_crypt/i18n/fi.po new file mode 100644 index 00000000000..57b350a204f --- /dev/null +++ b/addons/base_crypt/i18n/fi.po @@ -0,0 +1,71 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-08 10:57+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: base_crypt +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Kahdella eri käyttäjällä ei voi olla samaa käyttäjätunnusta!" + +#. module: base_crypt +#: model:ir.model,name:base_crypt.model_res_users +msgid "res.users" +msgstr "" + +#. module: base_crypt +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "Valittu yritys ei ole sallittu tälle käyttäjälle" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Please specify the password !" +msgstr "Määrittele salasana !" + +#. module: base_crypt +#: model:ir.module.module,shortdesc:base_crypt.module_meta_information +msgid "Base - Password Encryption" +msgstr "Base - Salasanan kryptaus" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Error" +msgstr "Virhe" + +#. module: base_crypt +#: model:ir.module.module,description:base_crypt.module_meta_information +msgid "" +"This module replaces the cleartext password in the database with a password " +"hash,\n" +"preventing anyone from reading the original password.\n" +"For your existing user base, the removal of the cleartext passwords occurs " +"the first time\n" +"a user logs into the database, after installing base_crypt.\n" +"After installing this module it won't be possible to recover a forgotten " +"password for your\n" +"users, the only solution is for an admin to set a new password.\n" +"\n" +"Note: installing this module does not mean you can ignore basic security " +"measures,\n" +"as the password is still transmitted unencrypted on the network (by the " +"client),\n" +"unless you are using a secure protocol such as XML-RPCS.\n" +" " +msgstr "" diff --git a/addons/base_crypt/i18n/nb.po b/addons/base_crypt/i18n/nb.po new file mode 100644 index 00000000000..ce85f3b3625 --- /dev/null +++ b/addons/base_crypt/i18n/nb.po @@ -0,0 +1,72 @@ +# Norwegian Bokmal translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-09 11:12+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: base_crypt +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Du kan ikke ha to brukere med samme login !" + +#. module: base_crypt +#: model:ir.model,name:base_crypt.model_res_users +msgid "res.users" +msgstr "res.users" + +#. module: base_crypt +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "" +"Det valgte firmaet er ikke i listen over tillatte firmaer for denne brukeren" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Please specify the password !" +msgstr "Vennligst angi passordet !" + +#. module: base_crypt +#: model:ir.module.module,shortdesc:base_crypt.module_meta_information +msgid "Base - Password Encryption" +msgstr "Basis - Passord kryptering" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Error" +msgstr "Feil" + +#. module: base_crypt +#: model:ir.module.module,description:base_crypt.module_meta_information +msgid "" +"This module replaces the cleartext password in the database with a password " +"hash,\n" +"preventing anyone from reading the original password.\n" +"For your existing user base, the removal of the cleartext passwords occurs " +"the first time\n" +"a user logs into the database, after installing base_crypt.\n" +"After installing this module it won't be possible to recover a forgotten " +"password for your\n" +"users, the only solution is for an admin to set a new password.\n" +"\n" +"Note: installing this module does not mean you can ignore basic security " +"measures,\n" +"as the password is still transmitted unencrypted on the network (by the " +"client),\n" +"unless you are using a secure protocol such as XML-RPCS.\n" +" " +msgstr "" diff --git a/addons/base_crypt/i18n/pt.po b/addons/base_crypt/i18n/pt.po new file mode 100644 index 00000000000..258d3f44ab0 --- /dev/null +++ b/addons/base_crypt/i18n/pt.po @@ -0,0 +1,71 @@ +# Portuguese translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-06 22:16+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-07 04:35+0000\n" +"X-Generator: Launchpad (build 12959)\n" + +#. module: base_crypt +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Não pode ter dois utilizadores com o mesmo nome de utilizador!" + +#. module: base_crypt +#: model:ir.model,name:base_crypt.model_res_users +msgid "res.users" +msgstr "res.users" + +#. module: base_crypt +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "A companhia escolhida não está entre permitidas para este utilizador" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Please specify the password !" +msgstr "Por favor escolha uma password!" + +#. module: base_crypt +#: model:ir.module.module,shortdesc:base_crypt.module_meta_information +msgid "Base - Password Encryption" +msgstr "" + +#. module: base_crypt +#: code:addons/base_crypt/crypt.py:132 +#, python-format +msgid "Error" +msgstr "Erro" + +#. module: base_crypt +#: model:ir.module.module,description:base_crypt.module_meta_information +msgid "" +"This module replaces the cleartext password in the database with a password " +"hash,\n" +"preventing anyone from reading the original password.\n" +"For your existing user base, the removal of the cleartext passwords occurs " +"the first time\n" +"a user logs into the database, after installing base_crypt.\n" +"After installing this module it won't be possible to recover a forgotten " +"password for your\n" +"users, the only solution is for an admin to set a new password.\n" +"\n" +"Note: installing this module does not mean you can ignore basic security " +"measures,\n" +"as the password is still transmitted unencrypted on the network (by the " +"client),\n" +"unless you are using a secure protocol such as XML-RPCS.\n" +" " +msgstr "" diff --git a/addons/base_synchro/i18n/fi.po b/addons/base_synchro/i18n/fi.po new file mode 100644 index 00000000000..3d6f0a35015 --- /dev/null +++ b/addons/base_synchro/i18n/fi.po @@ -0,0 +1,289 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:14+0000\n" +"PO-Revision-Date: 2011-06-09 10:01+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: base_synchro +#: model:ir.actions.act_window,name:base_synchro.action_view_base_synchro +msgid "Base Synchronization" +msgstr "Pohjatietojen synkronointi" + +#. module: base_synchro +#: field:base.synchro.server,server_db:0 +msgid "Server Database" +msgstr "Palvelintietokanta" + +#. module: base_synchro +#: view:base.synchro.server:0 +#: model:ir.model,name:base_synchro.model_base_synchro_server +msgid "Synchronized server" +msgstr "Synkronoitu palvelin" + +#. module: base_synchro +#: field:base.synchro.obj.avoid,name:0 +msgid "Field Name" +msgstr "Kentän nimi" + +#. module: base_synchro +#: field:base.synchro.obj,synchronize_date:0 +msgid "Latest Synchronization" +msgstr "Viimeisin synkronointi" + +#. module: base_synchro +#: field:base.synchro,user_id:0 +msgid "Send Result To" +msgstr "Lähetä tulos" + +#. module: base_synchro +#: model:ir.model,name:base_synchro.model_base_synchro_obj_avoid +msgid "Fields to not synchronize" +msgstr "Kentät, joita ei synkronoida" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "_Close" +msgstr "" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "Transfer Data To Server" +msgstr "Siirrä tiedot palvelimelle" + +#. module: base_synchro +#: model:ir.model,name:base_synchro.model_base_synchro_obj +msgid "Register Class" +msgstr "Rekisteröi luokka" + +#. module: base_synchro +#: view:base.synchro.obj:0 +#: model:ir.actions.act_window,name:base_synchro.action_transfer_tree +#: model:ir.ui.menu,name:base_synchro.transfer_menu_id +msgid "Synchronized objects" +msgstr "Synkronoidut objektit" + +#. module: base_synchro +#: field:base.synchro.server,obj_ids:0 +msgid "Models" +msgstr "Mallit" + +#. module: base_synchro +#: field:base.synchro.obj.avoid,obj_id:0 +#: view:base.synchro.obj.line:0 +#: field:base.synchro.obj.line,obj_id:0 +msgid "Object" +msgstr "Objekti" + +#. module: base_synchro +#: field:base.synchro.server,login:0 +msgid "User Name" +msgstr "Käyttäjänimi" + +#. module: base_synchro +#: view:base.synchro.obj:0 +#: view:base.synchro.obj.line:0 +msgid "Group By" +msgstr "Ryhmittelyn peruste" + +#. module: base_synchro +#: selection:base.synchro.obj,action:0 +msgid "Upload" +msgstr "Lähetä palvelimelle" + +#. module: base_synchro +#: view:base.synchro.obj:0 +msgid "Latest synchronization" +msgstr "Viimeisin synkronointi" + +#. module: base_synchro +#: model:ir.module.module,description:base_synchro.module_meta_information +msgid "Synchronization with all objects." +msgstr "Synkronoi kaikki objektit" + +#. module: base_synchro +#: view:base.synchro.obj.line:0 +#: field:base.synchro.obj.line,name:0 +msgid "Date" +msgstr "Päivämäärä" + +#. module: base_synchro +#: field:base.synchro.server,password:0 +msgid "Password" +msgstr "Salasana" + +#. module: base_synchro +#: field:base.synchro.obj,avoid_ids:0 +msgid "Fields Not Sync." +msgstr "Ei synkronoidut kentät" + +#. module: base_synchro +#: selection:base.synchro.obj,action:0 +msgid "Both" +msgstr "Molemmat" + +#. module: base_synchro +#: field:base.synchro.obj,name:0 +msgid "Name" +msgstr "Nimi" + +#. module: base_synchro +#: view:base.synchro.obj:0 +msgid "Fields" +msgstr "Kentät" + +#. module: base_synchro +#: view:base.synchro.obj.line:0 +msgid "Transfered Ids Details" +msgstr "Siirrettyjen tunnusten yksityiskohdat" + +#. module: base_synchro +#: field:base.synchro.obj,action:0 +msgid "Synchronisation direction" +msgstr "Synkronoinnin suunta" + +#. module: base_synchro +#: field:base.synchro.obj,server_id:0 +msgid "Server" +msgstr "Palvelin" + +#. module: base_synchro +#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_obj_line_tree +#: model:ir.model,name:base_synchro.model_base_synchro_obj_line +#: model:ir.ui.menu,name:base_synchro.menu_action_base_synchro_obj_line_tree +msgid "Synchronized instances" +msgstr "Synkronoidut instanssit" + +#. module: base_synchro +#: field:base.synchro.obj,active:0 +msgid "Active" +msgstr "Aktiivinen" + +#. module: base_synchro +#: view:base.synchro.obj:0 +#: field:base.synchro.obj,model_id:0 +msgid "Object to synchronize" +msgstr "Synkronoitava objekti" + +#. module: base_synchro +#: model:ir.module.module,shortdesc:base_synchro.module_meta_information +msgid "Base Synchro" +msgstr "Perustietojen synkronointi" + +#. module: base_synchro +#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_server_tree +#: model:ir.ui.menu,name:base_synchro.synchro_server_tree_menu_id +msgid "Servers to be synchronized" +msgstr "Synkronoitavat palvelimet" + +#. module: base_synchro +#: view:base.synchro.obj:0 +msgid "Transfer Details" +msgstr "Siirron tiedot" + +#. module: base_synchro +#: field:base.synchro.obj.line,remote_id:0 +msgid "Remote Id" +msgstr "Etätunniste" + +#. module: base_synchro +#: field:base.synchro.obj,line_id:0 +msgid "Ids Affected" +msgstr "kohde id:t" + +#. module: base_synchro +#: model:ir.ui.menu,name:base_synchro.next_id_63 +msgid "History" +msgstr "Historia" + +#. module: base_synchro +#: model:ir.ui.menu,name:base_synchro.next_id_62 +#: model:ir.ui.menu,name:base_synchro.synch_config +msgid "Synchronization" +msgstr "Synkronointi" + +#. module: base_synchro +#: field:base.synchro.obj,domain:0 +msgid "Domain" +msgstr "Toimialue" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "_Synchronize" +msgstr "" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "OK" +msgstr "" + +#. module: base_synchro +#: field:base.synchro.server,name:0 +msgid "Server name" +msgstr "Palvelimen nimi" + +#. module: base_synchro +#: field:base.synchro.obj,sequence:0 +msgid "Sequence" +msgstr "Sekvenssi" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "" +"The synchronisation has been started.You will receive a request when it's " +"done." +msgstr "Synkronointi on aloitettu. Saat pyynnön kun se on valmis." + +#. module: base_synchro +#: field:base.synchro.server,server_port:0 +msgid "Server Port" +msgstr "Palvelimen portti" + +#. module: base_synchro +#: model:ir.ui.menu,name:base_synchro.menu_action_view_base_synchro +msgid "Synchronize objects" +msgstr "Synkronoi objektit" + +#. module: base_synchro +#: view:base.synchro:0 +msgid "Synchronization Complited!" +msgstr "Synkronointi valmis!" + +#. module: base_synchro +#: model:ir.model,name:base_synchro.model_base_synchro +msgid "base.synchro" +msgstr "" + +#. module: base_synchro +#: field:base.synchro.obj.line,local_id:0 +msgid "Local Id" +msgstr "Paikallinen id" + +#. module: base_synchro +#: model:ir.actions.act_window,name:base_synchro.actions_regclass_tree +#: model:ir.actions.act_window,name:base_synchro.actions_transfer_line_form +msgid "Filters" +msgstr "Suotimet" + +#. module: base_synchro +#: selection:base.synchro.obj,action:0 +msgid "Download" +msgstr "Lataa" + +#. module: base_synchro +#: field:base.synchro,server_url:0 +#: field:base.synchro.server,server_url:0 +msgid "Server URL" +msgstr "Palvelimen URL" diff --git a/addons/crm/i18n/tr.po b/addons/crm/i18n/tr.po index 3c5749423c3..a766f2b8102 100644 --- a/addons/crm/i18n/tr.po +++ b/addons/crm/i18n/tr.po @@ -7,19 +7,19 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2011-06-02 18:41+0000\n" +"PO-Revision-Date: 2011-06-09 17:52+0000\n" "Last-Translator: Ayhan KIZILTAN \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: 2011-06-03 04:39+0000\n" -"X-Generator: Launchpad (build 12959)\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: crm #: view:crm.lead.report:0 msgid "# Leads" -msgstr "Aday Sayısı" +msgstr "Aday #" #. module: crm #: view:crm.lead:0 @@ -316,6 +316,8 @@ msgid "" "communication history) will be merged with existing Opportunity of Selected " "partner." msgstr "" +"Varolan Fırsatla Birleştirmeyi seçerseniz, aday ayrıntıları (iletişim " +"geçmişi) Seçilen paydaşın varolan carolan fırsatıyla birleştirilecektir." #. module: crm #: selection:crm.meeting,class:0 @@ -450,6 +452,11 @@ msgid "" "customer. You can also import a .CSV file with a list of calls to be done by " "your sales team." msgstr "" +"Giden Çağrılar satış takımınız tarafından bütün çağrıları listeler. Bir " +"satış elemanı çağrı bilgisini form görünümünde kayıteder. Bir müşteriyle " +"kuracağınız her iletişimin izlenebilmesi için paydaş formunda saklanacaktır. " +"Satış takımınız tarafından yapılacak çağrı listesini de .CSV dosyası olarak " +"içeaktarabilirsiniz." #. module: crm #: model:ir.model,name:crm.model_crm_lead2opportunity_action @@ -640,6 +647,8 @@ msgid "" "Thick this box if you want that on escalation, the responsible of this sale " "team automatically becomes responsible of the lead/opportunity escaladed" msgstr "" +"Yükseltmek istiyorsanız bu kutuyu tıklayın, bu satış takımının sorumlusu " +"otomatikman yükseltilen aday/fırsatın sorumlusu olur." #. module: crm #: help:crm.installer,outlook:0 @@ -662,6 +671,8 @@ msgid "" "Default state of mind for period preceeding the 'Max Interval' computation. " "This is the starting state of mind by default if the partner has no event." msgstr "" +"'Ençok Aralık' hesaplamasından önce gelen dönemin varsayılan ruh durumudur. " +"Eğer paydaşın hiç bir etkinliği yoksa bu başlangıç ruh durumudur." #. module: crm #: selection:crm.meeting,end_type:0 @@ -1670,7 +1681,7 @@ msgstr "İstisnai Kural" #. module: crm #: help:base.action.rule,act_mail_to_partner:0 msgid "Check this if you want the rule to send an email to the partner." -msgstr "" +msgstr "Eğer paydaşa bir eposta göndermek isterseniz bunu işaretleyin." #. module: crm #: model:ir.actions.act_window,name:crm.crm_phonecall_categ_action @@ -1685,7 +1696,7 @@ msgstr "Kişileri Davet Et" #. module: crm #: constraint:crm.case.section:0 msgid "Error ! You cannot create recursive Sales team." -msgstr "" +msgstr "Hata ! Yinelenen Satış takımı oluşturamazsınız." #. module: crm #: view:crm.meeting:0 @@ -1856,7 +1867,7 @@ msgstr "Grupla..." #. module: crm #: help:crm.lead,partner_id:0 msgid "Optional linked partner, usually after conversion of the lead" -msgstr "" +msgstr "Seçmeli bağlantılı paydaş, genellikle paydaşın dönüşümden sonraki" #. module: crm #: view:crm.meeting:0 @@ -1912,6 +1923,8 @@ msgid "" "This percentage depicts the default/average probability of the Case for this " "stage to be a success" msgstr "" +"Bu yüzde, bu aşamadaki durumun varsayılan/ortalama başarılı olma olasılığını " +"anlatır." #. module: crm #: view:crm.phonecall.report:0 @@ -2320,6 +2333,7 @@ msgstr "Reddet" #: help:crm.lead,optin:0 msgid "If opt-in is checked, this contact has accepted to receive emails." msgstr "" +"Eğer opt-in (onaylı) işaretliyse, bu ilgili eposta almayı kabul etmiştir." #. module: crm #: view:crm.meeting:0 @@ -2435,7 +2449,7 @@ msgstr "'%s' fırsat aşaması '%s' olarak değiştirilmiştir." #: code:addons/crm/crm_lead.py:282 #, python-format msgid "Changed Stage to: %s" -msgstr "" +msgstr "Aşamayı şuna Değiştir: %s" #. module: crm #: selection:crm.segmentation.line,operator:0 @@ -2474,11 +2488,13 @@ msgid "" "Helps you manage wiki pages for Frequently Asked Questions on Sales " "Application." msgstr "" +"Satış Uygulamasındaki Sık Sorulan Sorular wiki sayfalarını yönetmenizi " +"sağlar." #. module: crm #: help:crm.installer,crm_fundraising:0 msgid "This may help associations in their fundraising process and tracking." -msgstr "" +msgstr "Derneklerin bağış toplama işlemlerini ve izlenmesini sağlar." #. module: crm #: field:crm.lead2opportunity.partner,action:0 @@ -2696,6 +2712,8 @@ msgid "" "The computation is made on all events that occured during this interval, the " "past X periods." msgstr "" +"Bu aralık içerisinde, geçmiş X süresi, meydana gelen bütün etkinliklerin " +"hesabı yapılır." #. module: crm #: view:board.board:0 @@ -2747,7 +2765,7 @@ msgstr "Adaydan Fırsata" #. module: crm #: model:ir.model,name:crm.model_calendar_attendee msgid "Attendee information" -msgstr "" +msgstr "Katılımcı Bilgisi" #. module: crm #: view:crm.segmentation:0 @@ -2774,7 +2792,7 @@ msgstr "Paydaşa Telefon Çağrısı" msgid "" "The name of the future partner that will be created while converting the " "into opportunity" -msgstr "" +msgstr "Fırsata dönüştürülürken oluşturulan müstakbel paydaşın adı" #. module: crm #: field:crm.opportunity2phonecall,user_id:0 @@ -2824,7 +2842,7 @@ msgstr "Bu hadaya bir paydaş zaten tanımlanmış" #: field:crm.lead.report,nbr:0 #: field:crm.phonecall.report,nbr:0 msgid "# of Cases" -msgstr "" +msgstr "Durum #" #. module: crm #: help:crm.meeting,section_id:0 @@ -2937,7 +2955,7 @@ msgstr "İç Not Ekle" #: code:addons/crm/crm_lead.py:304 #, python-format msgid "The stage of lead '%s' has been changed to '%s'." -msgstr "" +msgstr "'%s' Adayın aşaması '%s' olarak değiştirilmiştir." #. module: crm #: selection:crm.meeting,byday:0 @@ -2954,7 +2972,7 @@ msgstr "Mesajlar" #. module: crm #: help:crm.case.stage,on_change:0 msgid "Change Probability on next and previous stages." -msgstr "" +msgstr "Sonraki ve önceki aşamaların Olabilirliğini değiştir." #. module: crm #: code:addons/crm/crm.py:455 @@ -2991,7 +3009,7 @@ msgstr "Not Gövdesi" #. module: crm #: view:board.board:0 msgid "My Planned Revenues by Stage" -msgstr "" +msgstr "Aşamaya göre Planlanan Gelirlerim" #. module: crm #: field:crm.lead.report,date_closed:0 @@ -3025,6 +3043,8 @@ msgid "" "If the partner has not purchased (or bought) during a period, decrease the " "state of mind by this factor. It's a multiplication" msgstr "" +"Eğer bir paydaş bir süre hiç satınalma yapmamışsa, ruh durumunu bu katsayı " +"ile azaltın. Bu bir çarpım işlemidir" #. module: crm #: model:ir.actions.act_window,help:crm.action_report_crm_phonecall @@ -3080,7 +3100,7 @@ msgstr "Planlama/Çağrı Kütüğü" #. module: crm #: field:crm.installer,fetchmail:0 msgid "Fetch Emails" -msgstr "" +msgstr "Çekme Epostalar" #. module: crm #: selection:crm.meeting,state:0 @@ -3093,6 +3113,8 @@ msgid "" "These addresses will receive a copy of this email. To modify the permanent " "CC list, edit the global CC field of this case" msgstr "" +"Bu adresler bu e-postanın bir kopyasını alacaklardır. Kalıcı CC listesini " +"değiştirmek için, bu durumun toplu CC alanını düzenleyiniz." #. module: crm #: view:crm.meeting:0 @@ -3112,7 +3134,7 @@ msgstr "Bölüm" #. module: crm #: view:crm.lead:0 msgid "Total of Planned Revenue" -msgstr "" +msgstr "Toplam Planlanan Gelir" #. module: crm #: code:addons/crm/crm.py:375 @@ -3121,6 +3143,7 @@ msgid "" "You can not escalate, You are already at the top level regarding your sales-" "team category." msgstr "" +"Yükseltemezsiniz, satış-takımı kategorisine göre zaten en üzt seviyedesiniz." #. module: crm #: selection:crm.segmentation.line,operator:0 @@ -3194,7 +3217,7 @@ msgstr "" #. module: crm #: field:crm.meeting,exdate:0 msgid "Exception Date/Times" -msgstr "" +msgstr "İtiraz Tarihi/Süresi" #. module: crm #: selection:crm.meeting,class:0 @@ -3274,7 +3297,7 @@ msgstr " Ay-1 " #. module: crm #: help:crm.installer,sale_crm:0 msgid "This module relates sale from opportunity cases in the CRM." -msgstr "" +msgstr "Bu modül MİY de fırsat durumundan yapılan satışla ilgilidir." #. module: crm #: selection:crm.meeting,rrule_type:0 @@ -3369,7 +3392,7 @@ msgstr "Fırsata Telefonçağrısı" #. module: crm #: help:crm.case.section,allow_unlink:0 msgid "Allows to delete non draft cases" -msgstr "" +msgstr "Taslak olmayan durumların silinmesini sağlar" #. module: crm #: view:crm.lead:0 @@ -3532,7 +3555,7 @@ msgstr "Toplantı Kategorileri" #: view:crm.lead2partner:0 #: view:crm.phonecall2partner:0 msgid "You may have to verify that this partner does not exist already." -msgstr "" +msgstr "Bu paydaşın halihazırda olmadığını doğrulamalızınız." #. module: crm #: field:crm.lead.report,delay_open:0 @@ -3622,7 +3645,7 @@ msgstr "Hata ! Yinelen profiller oluşturamazsınız." #: code:addons/crm/crm_lead.py:232 #, python-format msgid "The case '%s' has been closed." -msgstr "" +msgstr "'%s' Durumu kapatılmıştır." #. module: crm #: field:crm.lead,partner_address_id:0 @@ -3634,12 +3657,12 @@ msgstr "Cari İletişimi" #. module: crm #: field:crm.meeting,recurrent_id:0 msgid "Recurrent ID date" -msgstr "" +msgstr "Yinelenen Kimlik tarihi" #. module: crm #: sql_constraint:res.users:0 msgid "You can not have two users with the same login !" -msgstr "" +msgstr "Aynı kullanıcı adı ile iki kullanıcı oluşturamazsınız !" #. module: crm #: code:addons/crm/wizard/crm_merge_opportunities.py:100 @@ -3670,7 +3693,7 @@ msgstr "Eylem Kuralları" #. module: crm #: field:crm.meeting,rrule_type:0 msgid "Recurrency" -msgstr "" +msgstr "Yineleme" #. module: crm #: field:crm.meeting,phonecall_id:0 @@ -3749,13 +3772,13 @@ msgstr "Mayıs" #. module: crm #: model:crm.case.categ,name:crm.categ_oppor2 msgid "Interest in Accessories" -msgstr "" +msgstr "Aksesuarlara ilgi duyuyor" #. module: crm #: code:addons/crm/crm_lead.py:211 #, python-format msgid "The opportunity '%s' has been opened." -msgstr "" +msgstr "'%s' Fırsatı açılmıştır." #. module: crm #: field:crm.lead.report,email:0 @@ -3770,7 +3793,7 @@ msgstr "Cadde" #. module: crm #: view:crm.lead.report:0 msgid "Opportunities by User and Team" -msgstr "" +msgstr "Kullanıcıya ve Takıma göre Fırsatlar" #. module: crm #: field:crm.case.section,working_hours:0 @@ -3839,12 +3862,12 @@ msgstr "Kampanya Adı" #. module: crm #: model:ir.model,name:crm.model_crm_phonecall_report msgid "Phone calls by user and section" -msgstr "" +msgstr "Kullanıcıya ve bölüme göre telefon çağrıları" #. module: crm #: selection:crm.lead2opportunity.action,name:0 msgid "Merge with existing Opportunity" -msgstr "" +msgstr "Geçerli Fırsatla birleştir" #. module: crm #: field:crm.meeting,select1:0 @@ -3860,7 +3883,7 @@ msgstr "Görüşme" #. module: crm #: view:crm.lead:0 msgid "Exp.Closing" -msgstr "" +msgstr "Bek. Kapanış" #. module: crm #: field:crm.case.stage,sequence:0 @@ -3881,7 +3904,7 @@ msgstr "TAMAM" #. module: crm #: field:crm.segmentation.line,expr_name:0 msgid "Control Variable" -msgstr "" +msgstr "Kontrol Değişkeni" #. module: crm #: selection:crm.meeting,byday:0 @@ -3892,7 +3915,7 @@ msgstr "Saniye" #: model:crm.case.stage,name:crm.stage_lead3 #: model:crm.case.stage,name:crm.stage_opportunity3 msgid "Proposition" -msgstr "" +msgstr "Önerme" #. module: crm #: field:res.partner,phonecall_ids:0 diff --git a/addons/crm_helpdesk/i18n/gl.po b/addons/crm_helpdesk/i18n/gl.po new file mode 100644 index 00000000000..104dd6a38a5 --- /dev/null +++ b/addons/crm_helpdesk/i18n/gl.po @@ -0,0 +1,714 @@ +# Galician translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-08 16:33+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,delay_close:0 +msgid "Delay to Close" +msgstr "Atraso para pechar" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,nbr:0 +msgid "# of Cases" +msgstr "Nº de casos" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: view:crm.helpdesk.report:0 +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Today" +msgstr "Hoxe" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "March" +msgstr "Marzo" + +#. module: crm_helpdesk +#: field:crm.helpdesk,company_id:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,company_id:0 +msgid "Company" +msgstr "Compañía" + +#. module: crm_helpdesk +#: field:crm.helpdesk,email_cc:0 +msgid "Watchers Emails" +msgstr "Destinatarios de correos electrónicos (CC)" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Highest" +msgstr "A máis alta" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,day:0 +msgid "Day" +msgstr "Día" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Add Internal Note" +msgstr "Engadir nota interna" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Notes" +msgstr "Notas" + +#. module: crm_helpdesk +#: field:crm.helpdesk,message_ids:0 +msgid "Messages" +msgstr "Mensaxes" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,state:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Cancelled" +msgstr "Anulado" + +#. module: crm_helpdesk +#: field:crm.helpdesk,partner_address_id:0 +msgid "Partner Contact" +msgstr "Contacto" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_report_crm_helpdesks_tree +msgid "Helpdesk Analysis" +msgstr "Análise Helpdesk" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,date_closed:0 +msgid "Close Date" +msgstr "Data de peche" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid " Month " +msgstr " Mes " + +#. module: crm_helpdesk +#: field:crm.helpdesk,ref:0 +msgid "Reference" +msgstr "Referencia" + +#. module: crm_helpdesk +#: field:crm.helpdesk,date_action_next:0 +msgid "Next Action" +msgstr "Seguinte acción" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Helpdesk Supports" +msgstr "Asistencia técnica" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Extra Info" +msgstr "Información adicional" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,partner_id:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,partner_id:0 +msgid "Partner" +msgstr "Socio" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Estimates" +msgstr "Estimacións" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,section_id:0 +msgid "Section" +msgstr "Sección" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,priority:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,priority:0 +msgid "Priority" +msgstr "Prioridade" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Send New Email" +msgstr "Enviar novo email" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Won" +msgstr "Ganado" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,delay_expected:0 +msgid "Overpassed Deadline" +msgstr "Data límite excedida" + +#. module: crm_helpdesk +#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report +msgid "Helpdesk report after Sales Services" +msgstr "Informe Helpdesk despois do servizo de vendas" + +#. module: crm_helpdesk +#: field:crm.helpdesk,email_from:0 +msgid "Email" +msgstr "E-mail" + +#. module: crm_helpdesk +#: field:crm.helpdesk,canal_id:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,canal_id:0 +msgid "Channel" +msgstr "Canle" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Lowest" +msgstr "A máis baixa" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "# Mails" +msgstr "Nº de emails" + +#. module: crm_helpdesk +#: field:crm.helpdesk,create_date:0 +#: field:crm.helpdesk.report,create_date:0 +msgid "Creation Date" +msgstr "Data de creación" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Reset to Draft" +msgstr "Cambiar a modo Borrador" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: selection:crm.helpdesk,state:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Pending" +msgstr "Pendente" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,date_deadline:0 +#: field:crm.helpdesk.report,date_deadline:0 +msgid "Deadline" +msgstr "Data límite" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "July" +msgstr "Xullo" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action +msgid "Helpdesk Categories" +msgstr "Categorías Helpdesk" + +#. module: crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act +msgid "Categories" +msgstr "Categorías" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "History Information" +msgstr "Información histórica" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Dates" +msgstr "Datas" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid " Month-1 " +msgstr " Mes-1 " + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "#Helpdesk" +msgstr "nº Helpdesk" + +#. module: crm_helpdesk +#: help:crm.helpdesk,email_cc:0 +msgid "" +"These email addresses will be added to the CC field of all inbound and " +"outbound emails for this record before being sent. Separate multiple email " +"addresses with a comma" +msgstr "" +"Estes enderezos de correo engadiranse ó campo CC para tódolos correos " +"entrantes e saíntes deste rexistro antes de ser enviados. Separe os " +"diferentes enderezos de correo cunha coma." + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "References" +msgstr "Referencias" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "September" +msgstr "Setembro" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Communication" +msgstr "Comunicación" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,month:0 +msgid "Month" +msgstr "Mes" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Escalate" +msgstr "Escalar" + +#. module: crm_helpdesk +#: field:crm.helpdesk,write_date:0 +msgid "Update Date" +msgstr "Data de actualización" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Query" +msgstr "Consulta" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Salesman" +msgstr "Vendedor" + +#. module: crm_helpdesk +#: field:crm.helpdesk,ref2:0 +msgid "Reference 2" +msgstr "Referencia 2" + +#. module: crm_helpdesk +#: field:crm.helpdesk,categ_id:0 +#: field:crm.helpdesk.report,categ_id:0 +msgid "Category" +msgstr "Categoría" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid " Year " +msgstr " Ano " + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Helpdesk Support" +msgstr "Asistencia técnica" + +#. module: crm_helpdesk +#: field:crm.helpdesk,planned_cost:0 +#: field:crm.helpdesk.report,planned_cost:0 +msgid "Planned Costs" +msgstr "Custos planeados" + +#. module: crm_helpdesk +#: model:ir.module.module,description:crm_helpdesk.module_meta_information +msgid "Helpdesk Management" +msgstr "Gestión do Helpdesk" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Search Helpdesk" +msgstr "Buscar Helpdesk" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,state:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Draft" +msgstr "Proxecto" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Low" +msgstr "Baixo" + +#. module: crm_helpdesk +#: field:crm.helpdesk,date_closed:0 +#: selection:crm.helpdesk,state:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Closed" +msgstr "Pechado" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "7 Days" +msgstr "7 días" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Communication & History" +msgstr "Comunicación e historial" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "August" +msgstr "Agosto" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "Normal" +msgstr "Normal" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Global CC" +msgstr "CC global" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "June" +msgstr "Xuño" + +#. module: crm_helpdesk +#: field:crm.helpdesk,planned_revenue:0 +msgid "Planned Revenue" +msgstr "Ingresos previstos" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,user_id:0 +msgid "User" +msgstr "Usuario" + +#. module: crm_helpdesk +#: field:crm.helpdesk,active:0 +msgid "Active" +msgstr "Activo" + +#. module: crm_helpdesk +#: model:ir.module.module,shortdesc:crm_helpdesk.module_meta_information +msgid "CRM Helpdesk" +msgstr "CRM Helpdesk" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Extended Filters..." +msgstr "Filtros extendidos..." + +#. module: crm_helpdesk +#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111 +msgid "Helpdesk Requests" +msgstr "Solicitudes Helpdesk" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Search" +msgstr "Buscar" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "October" +msgstr "Outubro" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "January" +msgstr "Xaneiro" + +#. module: crm_helpdesk +#: help:crm.helpdesk,email_from:0 +msgid "These people will receive email." +msgstr "Estas persoas recibirán un e-mail." + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,date:0 +msgid "Date" +msgstr "Data" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "November" +msgstr "Novembro" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "History" +msgstr "Historial" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Attachments" +msgstr "Anexos" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Misc" +msgstr "Varios" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,state:0 +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,state:0 +msgid "State" +msgstr "Estado" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "General" +msgstr "Xeral" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Send Reminder" +msgstr "Enviar recordatorio" + +#. module: crm_helpdesk +#: help:crm.helpdesk,section_id:0 +msgid "" +"Sales team to which Case belongs to. Define " +"Responsible user and Email account for mail gateway." +msgstr "" +"Equipo de vendas ó cal pertence o caso. Defina un usuario responsable e o " +"seu email para o mail gateway" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Done" +msgstr "Feito" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "December" +msgstr "Decembro" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Cancel" +msgstr "Anular" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Close" +msgstr "Pechar" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: selection:crm.helpdesk,state:0 +#: selection:crm.helpdesk.report,state:0 +msgid "Open" +msgstr "Abrir" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Helpdesk Support Tree" +msgstr "Árbore de soporte técnico" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Categorization" +msgstr "Categorización" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_config_helpdesk +msgid "Helpdesk" +msgstr "Asistencia técnica" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,user_id:0 +msgid "Responsible" +msgstr "Responsable" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Current" +msgstr "Actual" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Details" +msgstr "Detalles" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +msgid "Reply" +msgstr "Resposta" + +#. module: crm_helpdesk +#: field:crm.helpdesk,description:0 +msgid "Description" +msgstr "Descrición" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "May" +msgstr "Maio" + +#. module: crm_helpdesk +#: field:crm.helpdesk,probability:0 +msgid "Probability (%)" +msgstr "Probabilidade (%)" + +#. module: crm_helpdesk +#: field:crm.helpdesk.report,email:0 +msgid "# Emails" +msgstr "Nº de emails" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,help:crm_helpdesk.action_report_crm_helpdesk +msgid "" +"Have a general overview of all support requests by sorting them with " +"specific criteria such as the processing time, number of requests answered, " +"emails sent and costs." +msgstr "" +"Teña unha visión xeral de tódalas peticións de soporte ordeándoas por " +"criterios específicos como o tempo de proceso, número de peticións " +"respondidas, correos electrónicos enviados e custos." + +#. module: crm_helpdesk +#: help:crm.helpdesk,canal_id:0 +msgid "" +"The channels represent the different communication modes available with the " +"customer." +msgstr "" +"As canles representan os diferentes modos de comunicación dispoñibles co " +"cliente" + +#. module: crm_helpdesk +#: help:crm.helpdesk,state:0 +msgid "" +"The state is set to 'Draft', when a case is created. " +" \n" +"If the case is in progress the state is set to 'Open'. " +" \n" +"When the case is over, the state is set to 'Done'. " +" \n" +"If the case needs to be reviewed then the state is set to 'Pending'." +msgstr "" +"O estado configúrase como \"Borrador\", cando se crea un caso. Se o caso " +"está en curso, o estado configúrase como \"Aberto\". Cando se pecha o caso, " +"o estado configúrase como \"Realizado\". Se cómpre revisar o caso, o estado " +"configúrase como \"Pendente\"." + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "February" +msgstr "Febreiro" + +#. module: crm_helpdesk +#: field:crm.helpdesk,name:0 +msgid "Name" +msgstr "Nome" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "Lost" +msgstr "Perdido" + +#. module: crm_helpdesk +#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main +msgid "Helpdesk and Support" +msgstr "Asistencia técnica" + +#. module: crm_helpdesk +#: selection:crm.helpdesk.report,month:0 +msgid "April" +msgstr "Abril" + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +msgid "My Case(s)" +msgstr "O(s) meu(s) caso(s)" + +#. module: crm_helpdesk +#: field:crm.helpdesk,id:0 +msgid "ID" +msgstr "ID" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,help:crm_helpdesk.crm_helpdesk_categ_action +msgid "" +"Create and manage helpdesk categories to better manage and classify your " +"support requests." +msgstr "" +"Crear e xestionar as categorías da asistencia técnica para mellorar a " +"xestión e a clasificación das súas peticións de axuda" + +#. module: crm_helpdesk +#: selection:crm.helpdesk,priority:0 +#: selection:crm.helpdesk.report,priority:0 +msgid "High" +msgstr "Alto" + +#. module: crm_helpdesk +#: view:crm.helpdesk:0 +#: field:crm.helpdesk,section_id:0 +#: view:crm.helpdesk.report:0 +msgid "Sales Team" +msgstr "Equipo de vendas" + +#. module: crm_helpdesk +#: field:crm.helpdesk,date_action_last:0 +msgid "Last Action" +msgstr "Última acción" + +#. module: crm_helpdesk +#: model:ir.actions.act_window,help:crm_helpdesk.crm_case_helpdesk_act111 +msgid "" +"Helpdesk and Support allow you to track your interventions. Select a " +"customer, add notes and categorize interventions with partners if necessary. " +"You can also assign a priority level. Use the OpenERP Issues system to " +"manage your support activities. Issues can be connected to the email " +"gateway: new emails may create issues, each of them automatically gets the " +"history of the conversation with the customer." +msgstr "" +"Asistencia técnica permítelle realizar o seguimento das súas intervencións. " +"Seleccione un cliente, engada notas e clasifique as intervencións con " +"terceiros se é necesario. Pode asignar un nivel de prioridade. Utilice o " +"sistema de incidencias de OpenERP para xestionar as súas actividades de " +"asistencia. Pódense conectar Incidencias coa pasarela de correo: os correos " +"novos poderán crear incidencias, cada unha das cales se encherá " +"automaticamente co historial de conversación co cliente." + +#. module: crm_helpdesk +#: view:crm.helpdesk.report:0 +#: field:crm.helpdesk.report,name:0 +msgid "Year" +msgstr "Ano" + +#. module: crm_helpdesk +#: field:crm.helpdesk,duration:0 +msgid "Duration" +msgstr "Duración" diff --git a/addons/crm_partner_assign/i18n/gl.po b/addons/crm_partner_assign/i18n/gl.po new file mode 100644 index 00000000000..9ab4ec4d059 --- /dev/null +++ b/addons/crm_partner_assign/i18n/gl.po @@ -0,0 +1,720 @@ +# Galician translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-09 08:26+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,name:0 +msgid "Send to" +msgstr "Enviar a" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,delay_close:0 +msgid "Delay to Close" +msgstr "Atraso para pechar" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,planned_revenue:0 +msgid "Planned Revenue" +msgstr "Ingresos previstos" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,nbr:0 +msgid "# of Cases" +msgstr "Nº de casos" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: crm_partner_assign +#: view:crm.lead:0 +#: view:crm.lead.forward.to.partner:0 +msgid "Forward" +msgstr "Reenviar" + +#. module: crm_partner_assign +#: help:crm.lead.forward.to.partner,reply_to:0 +msgid "Reply-to of the Sales team defined on this case" +msgstr "\"Responder a\" do equipo de vendas definido neste caso" + +#. module: crm_partner_assign +#: view:res.partner:0 +msgid "Geo Localize" +msgstr "Xeolocalizar" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "March" +msgstr "Marzo" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,type:0 +msgid "Lead" +msgstr "Posible cliente" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Delay to close" +msgstr "Demora peche" + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,history:0 +msgid "Whole Story" +msgstr "Historial completo" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,company_id:0 +msgid "Company" +msgstr "Compañía" + +#. module: crm_partner_assign +#: code:addons/crm_partner_assign/partner_geo_assign.py:41 +#, python-format +msgid "" +"Could not contact geolocation servers, please make sure you have a working " +"internet connection (%s)" +msgstr "" +"Non se pode conectar cos servidores de xeolocalización, por favor asegúrese " +"de ter conexión a internet (%s)" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,partner_date:0 +msgid "Partner Date" +msgstr "Data empresa" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,priority:0 +msgid "Highest" +msgstr "A máis alta" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,day:0 +msgid "Day" +msgstr "Día" + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,history:0 +msgid "Latest email" +msgstr "Último email" + +#. module: crm_partner_assign +#: field:crm.lead,partner_latitude:0 +#: field:res.partner,partner_latitude:0 +msgid "Geo Latitude" +msgstr "Xeolatitude" + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,state:0 +#: selection:crm.lead.report.assign,state:0 +msgid "Cancelled" +msgstr "Anulado" + +#. module: crm_partner_assign +#: view:crm.lead:0 +msgid "Geo Assignation" +msgstr "Xeoasignación" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,date_closed:0 +msgid "Close Date" +msgstr "Data de peche" + +#. module: crm_partner_assign +#: help:res.partner,partner_weight:0 +msgid "" +"Gives the probability to assign a lead to this partner. (0 means no " +"assignation.)" +msgstr "" +"Indica a probabilidade de asignar unha iniciativa a esta empresa. (0 " +"significa ningunha asignación)" + +#. module: crm_partner_assign +#: model:ir.module.module,description:crm_partner_assign.module_meta_information +msgid "" +"\n" +"This is the module used by OpenERP SA to redirect customers to his " +"partners,\n" +"based on geolocalization.\n" +" " +msgstr "" +"\n" +"Este é o módulo utilizado por OpenERP SA para redirixir clientes ós seus " +"partners ou asesores, baseándose na xeolocalización.\n" +" " + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,state:0 +#: selection:crm.lead.report.assign,state:0 +msgid "Pending" +msgstr "Pendente" + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,name:0 +#: field:crm.lead.forward.to.partner,partner_id:0 +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,partner_assigned_id:0 +#: model:ir.model,name:crm_partner_assign.model_res_partner +msgid "Partner" +msgstr "Socio" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,probability:0 +msgid "Avg Probability" +msgstr "Probabilidade media" + +#. module: crm_partner_assign +#: view:res.partner:0 +msgid "Previous" +msgstr "Previo" + +#. module: crm_partner_assign +#: code:addons/crm_partner_assign/partner_geo_assign.py:40 +#, python-format +msgid "Network error" +msgstr "Erro de rede" + +#. module: crm_partner_assign +#: help:crm.lead.forward.to.partner,email_cc:0 +msgid "" +"These addresses will receive a copy of this email. To modify the permanent " +"CC list, edit the global CC field of this case" +msgstr "" +"Estes enderezos recibirán unha copia deste correo electrónico. Para " +"modificar a lista CC permanente, edite o campo CC global deste caso." + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,email_from:0 +msgid "From" +msgstr "Desde" + +#. module: crm_partner_assign +#: model:ir.actions.act_window,name:crm_partner_assign.res_partner_grade_action +#: model:ir.ui.menu,name:crm_partner_assign.menu_res_partner_grade_action +#: field:res.partner,grade_id:0 +#: view:res.partner.grade:0 +msgid "Partner Grade" +msgstr "Nivel empresa" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Section" +msgstr "Sección" + +#. module: crm_partner_assign +#: view:res.partner:0 +msgid "Next" +msgstr "Seguinte" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,priority:0 +msgid "Priority" +msgstr "Prioridade" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,state:0 +msgid "State" +msgstr "Estado" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,delay_expected:0 +msgid "Overpassed Deadline" +msgstr "Data límite excedida" + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,html:0 +msgid "HTML formatting?" +msgstr "Formato HTML?" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,type:0 +msgid "Type" +msgstr "Tipo" + +#. module: crm_partner_assign +#: help:crm.lead,partner_assigned_id:0 +msgid "Partner this case has been forwarded/assigned to." +msgstr "Empresa á que se reenviou/asignou este caso" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,priority:0 +msgid "Lowest" +msgstr "A máis baixa" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Leads Analysis" +msgstr "Análise de posibles clientes" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,creation_date:0 +msgid "Creation Date" +msgstr "Data de creación" + +#. module: crm_partner_assign +#: help:crm.lead.forward.to.partner,html:0 +msgid "Select this if you want to send email with HTML formatting." +msgstr "Seleccione esta opción se desexa enviar e-mails con formato HTML" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "7 Days" +msgstr "7 días" + +#. module: crm_partner_assign +#: view:crm.lead:0 +msgid "Partner Assignation" +msgstr "Asignación empresa" + +#. module: crm_partner_assign +#: help:crm.lead.report.assign,type:0 +msgid "Type is used to separate Leads and Opportunities" +msgstr "Utilízase Tipo para separar iniciativas e oportunidades" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "July" +msgstr "Xullo" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,stage_id:0 +msgid "Stage" +msgstr "Fase" + +#. module: crm_partner_assign +#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:271 +#, python-format +msgid "Fwd" +msgstr "Reenvío" + +#. module: crm_partner_assign +#: view:res.partner:0 +msgid "Geo Localization" +msgstr "Xeolocalización" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Opportunities Assignment Analysis" +msgstr "Análise de asignación de oportunidades" + +#. module: crm_partner_assign +#: view:res.partner:0 +msgid "Cancel" +msgstr "Anular" + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,history:0 +msgid "Send history" +msgstr "Enviar historial" + +#. module: crm_partner_assign +#: view:crm.lead.forward.to.partner:0 +msgid "Contact" +msgstr "Contactar" + +#. module: crm_partner_assign +#: view:res.partner:0 +msgid "Close" +msgstr "Pechar" + +#. module: crm_partner_assign +#: model:ir.actions.act_window,name:crm_partner_assign.action_report_crm_opportunity_assign +#: model:ir.ui.menu,name:crm_partner_assign.menu_report_crm_opportunities_assign_tree +msgid "Opp. Assignment Analysis" +msgstr "Análise de asignación de op." + +#. module: crm_partner_assign +#: help:crm.lead.report.assign,delay_close:0 +msgid "Number of Days to close the case" +msgstr "Número de días para pechar o caso" + +#. module: crm_partner_assign +#: field:res.partner,partner_weight:0 +msgid "Weight" +msgstr "Peso" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Delay to open" +msgstr "Atraso de apertura" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,grade_id:0 +msgid "Grade" +msgstr "Grao" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "December" +msgstr "Decembro" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,month:0 +msgid "Month" +msgstr "Mes" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,opening_date:0 +msgid "Opening Date" +msgstr "Data de apertura" + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,subject:0 +msgid "Subject" +msgstr "Asunto" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Salesman" +msgstr "Vendedor" + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,reply_to:0 +msgid "Reply To" +msgstr "Responder a" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,categ_id:0 +msgid "Category" +msgstr "Categoría" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "#Opportunities" +msgstr "Nº oportunidades" + +#. module: crm_partner_assign +#: model:ir.module.module,shortdesc:crm_partner_assign.module_meta_information +msgid "Partner Geo-Localisation" +msgstr "Xeolocalización da empresa" + +#. module: crm_partner_assign +#: constraint:res.partner:0 +msgid "Error ! You can not create recursive associated members." +msgstr "Erro! Non pode crear membros asociados recorrentes." + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,state:0 +#: selection:crm.lead.report.assign,state:0 +msgid "Draft" +msgstr "Proxecto" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,priority:0 +msgid "Low" +msgstr "Baixo" + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,state:0 +#: view:crm.lead.report.assign:0 +#: selection:crm.lead.report.assign,state:0 +msgid "Closed" +msgstr "Pechado" + +#. module: crm_partner_assign +#: view:res.partner:0 +#: field:res.partner,opportunity_assigned_ids:0 +msgid "Assigned Opportunities" +msgstr "Oportunidades asignadas" + +#. module: crm_partner_assign +#: field:crm.lead,date_assign:0 +msgid "Assignation Date" +msgstr "Data de asignación" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,probability_max:0 +msgid "Max Probability" +msgstr "Probabilidade máx." + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "August" +msgstr "Agosto" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,priority:0 +msgid "Normal" +msgstr "Normal" + +#. module: crm_partner_assign +#: view:res.partner:0 +msgid "Escalate" +msgstr "Escalar" + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,attachment_ids:0 +msgid "unknown" +msgstr "descoñecido" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "June" +msgstr "Xuño" + +#. module: crm_partner_assign +#: help:crm.lead.report.assign,delay_open:0 +msgid "Number of Days to open the case" +msgstr "Número de días para abrir o caso" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,delay_open:0 +msgid "Delay to Open" +msgstr "Atraso de apertura" + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,name:0 +#: field:crm.lead.forward.to.partner,user_id:0 +#: field:crm.lead.report.assign,user_id:0 +msgid "User" +msgstr "Usuario" + +#. module: crm_partner_assign +#: field:res.partner.grade,active:0 +msgid "Active" +msgstr "Activo" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "November" +msgstr "Novembro" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Extended Filters..." +msgstr "Filtros extendidos..." + +#. module: crm_partner_assign +#: field:crm.lead,partner_longitude:0 +#: field:res.partner,partner_longitude:0 +msgid "Geo Longitude" +msgstr "Lonxitude Xeo" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Lead Assign" +msgstr "Asignar posible cliente" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "October" +msgstr "Outubro" + +#. module: crm_partner_assign +#: view:crm.lead:0 +msgid "Assignation" +msgstr "Asignación" + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,email_cc:0 +msgid "CC" +msgstr "CC" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "January" +msgstr "Xaneiro" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Planned Revenues" +msgstr "Beneficio previsto" + +#. module: crm_partner_assign +#: model:ir.model,name:crm_partner_assign.model_res_partner_grade +msgid "res.partner.grade" +msgstr "res.empresa.nivel" + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,state:0 +msgid "Unchanged" +msgstr "Sen cambios" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "September" +msgstr "Setembro" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Last 30 Days" +msgstr "Últimos 30 días" + +#. module: crm_partner_assign +#: field:res.partner.grade,name:0 +msgid "Grade Name" +msgstr "Nome de nivel" + +#. module: crm_partner_assign +#: help:crm.lead,date_assign:0 +msgid "Last date this case was forwarded/assigned to a partner" +msgstr "Última data na que este caso foi reenviado/asignado a unha empresa" + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,state:0 +#: selection:crm.lead.report.assign,state:0 +#: view:res.partner:0 +msgid "Open" +msgstr "Abrir" + +#. module: crm_partner_assign +#: field:res.partner,date_localization:0 +msgid "Geo Localization Date" +msgstr "Data xeolocalización" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +msgid "Current" +msgstr "Actual" + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,email_to:0 +msgid "To" +msgstr "Para" + +#. module: crm_partner_assign +#: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner +msgid "Send new email" +msgstr "Enviar novo e-mail" + +#. module: crm_partner_assign +#: view:crm.lead.forward.to.partner:0 +#: model:ir.actions.act_window,name:crm_partner_assign.crm_lead_forward_to_partner_act +msgid "Forward to Partner" +msgstr "Reenviar a empresa" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "May" +msgstr "Maio" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,probable_revenue:0 +msgid "Probable Revenue" +msgstr "Ingreso estimado" + +#. module: crm_partner_assign +#: field:crm.lead,partner_assigned_id:0 +msgid "Assigned Partner" +msgstr "Empresa asignada" + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,address_id:0 +msgid "Address" +msgstr "Enderezo" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,type:0 +msgid "Opportunity" +msgstr "Oportunidade" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,partner_id:0 +msgid "Customer" +msgstr "Cliente" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "February" +msgstr "Febreiro" + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,name:0 +msgid "Email Address" +msgstr "Enderezo de correo electrónico" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,country_id:0 +msgid "Country" +msgstr "País" + +#. module: crm_partner_assign +#: view:res.partner:0 +msgid "Convert to Opportunity" +msgstr "Convertir en oportunidade" + +#. module: crm_partner_assign +#: view:crm.lead:0 +msgid "Geo Assign" +msgstr "Xeo asignar" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,month:0 +msgid "April" +msgstr "Abril" + +#. module: crm_partner_assign +#: model:ir.model,name:crm_partner_assign.model_crm_lead +msgid "crm.lead" +msgstr "crm.iniciativa" + +#. module: crm_partner_assign +#: model:ir.model,name:crm_partner_assign.model_crm_lead_report_assign +msgid "CRM Lead Report" +msgstr "Informe de iniciativas CRM" + +#. module: crm_partner_assign +#: selection:crm.lead.forward.to.partner,history:0 +msgid "Case Information" +msgstr "Información do caso" + +#. module: crm_partner_assign +#: field:res.partner.grade,sequence:0 +msgid "Sequence" +msgstr "Secuencia" + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,body:0 +msgid "Message Body" +msgstr "Corpo da mensaxe" + +#. module: crm_partner_assign +#: selection:crm.lead.report.assign,priority:0 +msgid "High" +msgstr "Alto" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,section_id:0 +msgid "Sales Team" +msgstr "Equipo de vendas" + +#. module: crm_partner_assign +#: field:crm.lead.report.assign,create_date:0 +msgid "Create Date" +msgstr "Crear data" + +#. module: crm_partner_assign +#: field:crm.lead.forward.to.partner,state:0 +msgid "Set New State To" +msgstr "Establecer novo estado a" + +#. module: crm_partner_assign +#: view:crm.lead.report.assign:0 +#: field:crm.lead.report.assign,name:0 +msgid "Year" +msgstr "Ano" diff --git a/addons/hr_evaluation/i18n/gl.po b/addons/hr_evaluation/i18n/gl.po new file mode 100644 index 00000000000..c38030c6c8f --- /dev/null +++ b/addons/hr_evaluation/i18n/gl.po @@ -0,0 +1,933 @@ +# Galician translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-09 09:12+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,state:0 +#: selection:hr_evaluation.evaluation,state:0 +msgid "Plan In Progress" +msgstr "Plan en proceso" + +#. module: hr_evaluation +#: field:hr_evaluation.plan.phase,wait:0 +msgid "Wait Previous Phases" +msgstr "Esperar fases anteriores" + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +#: view:hr.evaluation.report:0 +#: view:hr_evaluation.plan:0 +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: hr_evaluation +#: field:hr.evaluation.interview,request_id:0 +#: field:hr.evaluation.report,request_id:0 +msgid "Request_id" +msgstr "id_solicitude" + +#. module: hr_evaluation +#: field:hr.evaluation.report,progress_bar:0 +#: field:hr_evaluation.evaluation,progress:0 +msgid "Progress" +msgstr "Progreso" + +#. module: hr_evaluation +#: view:board.board:0 +#: model:ir.actions.act_window,name:hr_evaluation.act_hr_evaluation_tree +msgid "My Evaluation Remaining" +msgstr "A miña avaliación restante" + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid "Legend" +msgstr "Lenda" + +#. module: hr_evaluation +#: code:addons/hr_evaluation/hr_evaluation.py:311 +#, python-format +msgid "You cannot start evaluation without Evaluation." +msgstr "Non se pode iniciar a avaliación sen \"Avaliación\"." + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "March" +msgstr "Marzo" + +#. module: hr_evaluation +#: field:hr.evaluation.report,delay_date:0 +msgid "Delay to Start" +msgstr "Atraso ó inicio" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +#: field:hr_evaluation.evaluation,rating:0 +msgid "Appreciation" +msgstr "Apreciación" + +#. module: hr_evaluation +#: code:addons/hr_evaluation/hr_evaluation.py:242 +#: code:addons/hr_evaluation/hr_evaluation.py:311 +#, python-format +msgid "Warning !" +msgstr "Aviso!" + +#. module: hr_evaluation +#: view:hr_evaluation.plan:0 +#: field:hr_evaluation.plan,company_id:0 +#: field:hr_evaluation.plan.phase,company_id:0 +msgid "Company" +msgstr "Compañía" + +#. module: hr_evaluation +#: model:ir.actions.act_window,name:hr_evaluation.act_hr_employee_2_hr__evaluation_interview +msgid "Evaluation Interviews" +msgstr "Entrevistas de avaliación" + +#. module: hr_evaluation +#: field:hr_evaluation.plan.phase,survey_id:0 +msgid "Appraisal Form" +msgstr "Formulario de avaliación" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +#: field:hr.evaluation.report,day:0 +msgid "Day" +msgstr "Día" + +#. module: hr_evaluation +#: field:hr.evaluation.interview,evaluation_id:0 +msgid "Evaluation Form" +msgstr "Formulario de avaliación" + +#. module: hr_evaluation +#: help:hr_evaluation.plan.phase,send_anonymous_employee:0 +msgid "Send an anonymous summary to the employee" +msgstr "Enviar resumo anónimo ó empregado." + +#. module: hr_evaluation +#: help:hr_evaluation.plan,month_first:0 +msgid "" +"This number of months will be used to schedule the first evaluation date of " +"the employee when selecting an evaluation plan. " +msgstr "" +"Este número de meses úsase para programar a data da primeira avaliación do " +"empregado cando seleccione un plan de avaliación. " + +#. module: hr_evaluation +#: view:hr.employee:0 +msgid "Notes" +msgstr "Notas" + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +msgid "Interview Request" +msgstr "Solicitar entrevista" + +#. module: hr_evaluation +#: constraint:hr.employee:0 +msgid "" +"Error ! You cannot select a department for which the employee is the manager." +msgstr "" +"Erro! Non pode seleccionar un departamento para o cal o empregado sexa o " +"director." + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid "Mail Body" +msgstr "Corpo do correo" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +#: model:ir.actions.act_window,name:hr_evaluation.action_evaluation_report_all +#: model:ir.ui.menu,name:hr_evaluation.menu_evaluation_report_all +msgid "Evaluations Analysis" +msgstr "Análise das avaliacións" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,state:0 +#: selection:hr_evaluation.evaluation,state:0 +msgid "Cancelled" +msgstr "Anulado" + +#. module: hr_evaluation +#: model:ir.model,name:hr_evaluation.model_hr_evaluation_reminder +msgid "Sends Reminders to employess to fill the evaluations" +msgstr "Envía recordatorios ós empregados para encher as avaliacións" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,rating:0 +#: selection:hr_evaluation.evaluation,rating:0 +msgid "Did not meet expectations" +msgstr "Non cumpre as expectativas" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Appraisal" +msgstr "Avaliación" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "July" +msgstr "Xullo" + +#. module: hr_evaluation +#: field:hr_evaluation.plan,month_next:0 +msgid "Periodicity of Evaluations (months)" +msgstr "Prioridade da avaliación (meses)" + +#. module: hr_evaluation +#: code:addons/hr_evaluation/hr_evaluation.py:242 +#, python-format +msgid "" +"You cannot change state, because some appraisal in waiting answer or draft " +"state" +msgstr "" +"Non pode cambiar o estado porque algunha avaliación está a esperar resposta " +"ou está en borrador" + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,date_close:0 +msgid "Ending Date" +msgstr "Data de finalización" + +#. module: hr_evaluation +#: field:hr_evaluation.plan,month_first:0 +msgid "First Evaluation in (months)" +msgstr "Primeira avaliación en (meses)" + +#. module: hr_evaluation +#: code:addons/hr_evaluation/hr_evaluation.py:81 +#, python-format +msgid "" +"\n" +"Date: %(date)s\n" +"\n" +"Dear %(employee_name)s,\n" +"\n" +"I am doing an evaluation regarding %(eval_name)s.\n" +"\n" +"Kindly submit your response.\n" +"\n" +"\n" +"Thanks,\n" +"--\n" +"%(user_signature)s\n" +"\n" +" " +msgstr "" +"\n" +"Data: %(date)sEstimado %(employee_name)s: Estou a facer unha avaliación " +"acerca de %(eval_name)s. Por favor envíe a súa resposta. Grazas--" +"%(user_signature)s\n" +"\n" +" " + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid "Send to Employees" +msgstr "Enviar a empregados" + +#. module: hr_evaluation +#: field:hr.evaluation.report,deadline:0 +msgid "Deadline" +msgstr "Data límite" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +msgid " Month " +msgstr " Mes " + +#. module: hr_evaluation +#: help:hr_evaluation.plan,month_next:0 +msgid "" +"The number of month that depicts the delay between each evaluation of this " +"plan (after the first one)." +msgstr "" +"O número de meses que representa o tempo transcorrido entre cada avaliación " +"deste plan (despois da primeira)." + +#. module: hr_evaluation +#: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr_config +msgid "Periodic Evaluations" +msgstr "Avaliacións periódicas" + +#. module: hr_evaluation +#: view:hr.evaluation.reminder:0 +msgid "Send evaluation reminder" +msgstr "Enviar recordatorio de avaliación" + +#. module: hr_evaluation +#: model:ir.module.module,description:hr_evaluation.module_meta_information +msgid "" +"\n" +" Ability to create employees evaluation.\n" +" An evaluation can be created by employee for subordinates,\n" +" juniors as well as his manager.The evaluation is done under a " +"plan\n" +" in which various surveys can be created and it can be defined " +"which\n" +" level of employee hierarchy fills what and final review and " +"evaluation\n" +" is done by the manager.Every evaluation filled by the employees " +"can be viewed\n" +" in the form of.Implements a dashboard for My Current Evaluations\n" +" " +msgstr "" +"\n" +" Permite crear a avaliación dos empregados. Pode crear unha " +"avaliación por empregado para os subordinados así como para o seu " +"responsable. A avaliación realízase mediante un plan onde se poden crear " +"diversas enquisas e definir que se debe encher en cada nivel da xerarquía " +"dos empreados, e o responsable realiza a última revisión e avaliación. " +"Pódese ver cada avaliación enchida polos empregados nun taboleiro de \"As " +"miñas avaliacións actuais\".\n" +" " + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid "(date)s: Current Date" +msgstr "(date)s. Data actual" + +#. module: hr_evaluation +#: code:addons/hr_evaluation/hr_evaluation.py:80 +#, python-format +msgid "Regarding " +msgstr "Referente a " + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +#: view:hr.evaluation.report:0 +#: field:hr.evaluation.report,state:0 +#: view:hr_evaluation.evaluation:0 +#: field:hr_evaluation.evaluation,state:0 +msgid "State" +msgstr "Estado" + +#. module: hr_evaluation +#: model:ir.model,name:hr_evaluation.model_hr_evaluation_plan_phase +msgid "Evaluation Plan Phase" +msgstr "Fase do plan de avaliación" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +#: field:hr.evaluation.report,employee_id:0 +#: view:hr_evaluation.evaluation:0 +#: field:hr_evaluation.evaluation,employee_id:0 +#: model:ir.model,name:hr_evaluation.model_hr_employee +msgid "Employee" +msgstr "Empregado" + +#. module: hr_evaluation +#: field:hr.evaluation.report,overpass_delay:0 +msgid "Overpassed Deadline" +msgstr "Data límite excedida" + +#. module: hr_evaluation +#: field:hr_evaluation.plan.phase,mail_body:0 +msgid "Email" +msgstr "E-mail" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,rating:0 +#: selection:hr_evaluation.evaluation,rating:0 +msgid "Exceeds expectations" +msgstr "Supera as expectativas" + +#. module: hr_evaluation +#: help:hr_evaluation.plan.phase,mail_feature:0 +msgid "" +"Check this box if you want to send mail to employees coming under this phase" +msgstr "" +"Marque esta casa se quere enviar correos ós empregados obxecto desta fase." + +#. module: hr_evaluation +#: help:hr_evaluation.plan.phase,send_answer_manager:0 +msgid "Send all answers to the manager" +msgstr "Enviar tódalas respostas ó responsable." + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +msgid " Month-1 " +msgstr " Mes-1 " + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Public Notes" +msgstr "Notas públicas" + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,date:0 +msgid "Evaluation Deadline" +msgstr "Data límite de avaliación" + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +#: view:hr_evaluation.evaluation:0 +msgid "Print Interview" +msgstr "Imprimir entrevista" + +#. module: hr_evaluation +#: field:hr.evaluation.report,closed:0 +msgid "closed" +msgstr "pechado" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,rating:0 +#: selection:hr_evaluation.evaluation,rating:0 +msgid "Meet expectations" +msgstr "Cumpre as expectativas" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +#: field:hr.evaluation.report,nbr:0 +msgid "# of Requests" +msgstr "Nº de peticións" + +#. module: hr_evaluation +#: model:ir.actions.act_window,name:hr_evaluation.open_view_hr_evaluation_tree +#: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr +#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_hr_evaluation_tree +msgid "Evaluations" +msgstr "Avaliacións" + +#. module: hr_evaluation +#: model:ir.actions.act_window,help:hr_evaluation.open_view_hr_evaluation_tree +msgid "" +"Each employee may be assigned an evaluation plan. Such a plan defines the " +"frequency and the way you manage your periodic personnel evaluation. You " +"will be able to define steps and attach interviews to each step. OpenERP " +"manages all kind of evaluations: bottom-up, top-down, self-evaluation and " +"final evaluation by the manager." +msgstr "" +"Pódeselle asignar un plan de avaliación a cada empregado. Este plan define a " +"frecuencia e o xeito de xestionar a avaliación periódica do persoal. Poderá " +"definir os pasos e achegar entrevistas en cada paso. OpenERP xestiona todo " +"tipo de avaliacións: de abaixo a arriba, de arriba a abaixo, autoavaliación " +"e a avaliación final por parte do xerente." + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid "Action to Perform" +msgstr "Acción a realizar" + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,note_action:0 +msgid "Action Plan" +msgstr "Plan de acción" + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid "(eval_name)s:Evaluation Name" +msgstr "(eval_name)s: Nome da avaliación" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Ending Summary" +msgstr "Resumo final" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,rating:0 +#: selection:hr_evaluation.evaluation,rating:0 +msgid "Significantly exceeds expectations" +msgstr "Supera dabondo as expectativas" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "In progress" +msgstr "En curso" + +#. module: hr_evaluation +#: field:hr_evaluation.plan.phase,send_answer_employee:0 +#: field:hr_evaluation.plan.phase,send_answer_manager:0 +msgid "All Answers" +msgstr "Tódalas respostas" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "September" +msgstr "Setembro" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "December" +msgstr "Decembro" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +#: field:hr.evaluation.report,month:0 +msgid "Month" +msgstr "Mes" + +#. module: hr_evaluation +#: model:ir.module.module,shortdesc:hr_evaluation.module_meta_information +msgid "Human Resources Evaluation" +msgstr "Avaliación de recursos humanos" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Group by..." +msgstr "Agrupar por..." + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid "Mail Settings" +msgstr "Configuración de correo" + +#. module: hr_evaluation +#: field:hr.evaluation.interview,user_to_review_id:0 +msgid "Employee to Interview" +msgstr "Empregado a entrevistar" + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +#: view:hr_evaluation.evaluation:0 +msgid "Interview Question" +msgstr "Pregunta de entrevista" + +#. module: hr_evaluation +#: field:survey.request,is_evaluation:0 +msgid "Is Evaluation?" +msgstr "É avaliación?" + +#. module: hr_evaluation +#: model:ir.model,name:hr_evaluation.model_survey_request +msgid "survey.request" +msgstr "solicitude.enquisa" + +#. module: hr_evaluation +#: help:hr_evaluation.plan.phase,wait:0 +msgid "" +"Check this box if you want to wait that all preceding phases are finished " +"before launching this phase." +msgstr "" +"Antes de comezar esta fase, marque esta casa se quere esperar a que tódalas " +"fases previas se rematen." + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Evaluation Data" +msgstr "Datos avaliación" + +#. module: hr_evaluation +#: help:hr_evaluation.evaluation,note_action:0 +msgid "" +"If the evaluation does not meet the expectations, you can proposean action " +"plan" +msgstr "" +"Se a avaliación non cumpre as expectativas, pode propoñer un plan de acción" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,state:0 +#: selection:hr_evaluation.evaluation,state:0 +msgid "Draft" +msgstr "Proxecto" + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,note_summary:0 +msgid "Evaluation Summary" +msgstr "Resumo de avaliación" + +#. module: hr_evaluation +#: field:hr_evaluation.plan.phase,send_anonymous_employee:0 +#: field:hr_evaluation.plan.phase,send_anonymous_manager:0 +msgid "Anonymous Summary" +msgstr "Resumo anónimo" + +#. module: hr_evaluation +#: view:hr.employee:0 +#: view:hr_evaluation.evaluation:0 +msgid "Evaluation" +msgstr "Avaliación" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "7 Days" +msgstr "7 días" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +msgid " Year " +msgstr " Ano " + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "August" +msgstr "Agosto" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Start Evaluation" +msgstr "Comezar avaliación" + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +msgid "To Do" +msgstr "Para ejecutar" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "June" +msgstr "Xuño" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,rating:0 +#: selection:hr_evaluation.evaluation,rating:0 +msgid "Significantly bellow expectations" +msgstr "Moi por debaixo das expectativas" + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid " (employee_name)s: Partner name" +msgstr " (employee_name)s: Nome empresa" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +#: field:hr.evaluation.report,plan_id:0 +#: view:hr_evaluation.evaluation:0 +#: field:hr_evaluation.evaluation,plan_id:0 +msgid "Plan" +msgstr "Plan" + +#. module: hr_evaluation +#: field:hr_evaluation.plan,active:0 +msgid "Active" +msgstr "Activo" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "November" +msgstr "Novembro" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +msgid "Extended Filters..." +msgstr "Filtros extendidos..." + +#. module: hr_evaluation +#: constraint:hr.employee:0 +msgid "Error ! You cannot create recursive Hierarchy of Employees." +msgstr "Erro! Non pode crear unha xerarquía recorrente de empregados." + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "October" +msgstr "Outubro" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "January" +msgstr "Xaneiro" + +#. module: hr_evaluation +#: view:hr.evaluation.reminder:0 +msgid "Send Mail" +msgstr "Enviar correo" + +#. module: hr_evaluation +#: help:hr_evaluation.plan.phase,send_anonymous_manager:0 +msgid "Send an anonymous summary to the manager" +msgstr "Enviar resumo anónimo ó responsable." + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +#: view:hr_evaluation.evaluation:0 +msgid "Interview Evaluation" +msgstr "Entrevista de avaliación" + +#. module: hr_evaluation +#: model:ir.actions.act_window,name:hr_evaluation.open_view_hr_evaluation_plan_tree +#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_hr_evaluation_plan_tree +msgid "Evaluation Plans" +msgstr "Plans de avaliación" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Date" +msgstr "Data" + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +msgid "Survey" +msgstr "Enquisa" + +#. module: hr_evaluation +#: help:hr_evaluation.evaluation,rating:0 +msgid "This is the appreciation on that summarize the evaluation" +msgstr "Esta é a apreciación resumo da avaliación" + +#. module: hr_evaluation +#: field:hr_evaluation.plan.phase,action:0 +msgid "Action" +msgstr "Acción" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +#: selection:hr.evaluation.report,state:0 +msgid "Final Validation" +msgstr "Validación final" + +#. module: hr_evaluation +#: selection:hr_evaluation.evaluation,state:0 +msgid "Waiting Appreciation" +msgstr "Esperando apreciación" + +#. module: hr_evaluation +#: field:hr_evaluation.plan.phase,mail_feature:0 +msgid "Send mail for this phase" +msgstr "Enviar correo para esta fase" + +#. module: hr_evaluation +#: field:hr.evaluation.report,rating:0 +msgid "Overall Rating" +msgstr "Valoración xeral" + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +#: view:hr_evaluation.evaluation:0 +msgid "Late" +msgstr "Atrasado" + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +#: view:hr_evaluation.evaluation:0 +msgid "Interviewer" +msgstr "Entrevistador" + +#. module: hr_evaluation +#: model:ir.model,name:hr_evaluation.model_hr_evaluation_report +msgid "Evaluations Statistics" +msgstr "Estatísticas de avaliacións" + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +msgid "Deadline Date" +msgstr "Data límite" + +#. module: hr_evaluation +#: selection:hr_evaluation.plan.phase,action:0 +msgid "Top-Down Appraisal Requests" +msgstr "Petición de avaliación de arriba a abaixo" + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid "General" +msgstr "Xeral" + +#. module: hr_evaluation +#: help:hr_evaluation.plan.phase,send_answer_employee:0 +msgid "Send all answers to the employee" +msgstr "Enviar tódalas respostas ó empregado." + +#. module: hr_evaluation +#: field:hr.employee,evaluation_date:0 +msgid "Next Evaluation Date" +msgstr "Seguinte data de avaliación" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +#: selection:hr.evaluation.report,state:0 +#: view:hr_evaluation.evaluation:0 +#: selection:hr_evaluation.evaluation,state:0 +msgid "Done" +msgstr "Feito" + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid "Evaluation Plan Phases" +msgstr "Fases plan de avaliación" + +#. module: hr_evaluation +#: view:hr.evaluation.reminder:0 +#: view:hr_evaluation.evaluation:0 +msgid "Cancel" +msgstr "Anular" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +msgid "In Progress" +msgstr "En curso" + +#. module: hr_evaluation +#: model:ir.actions.act_window,help:hr_evaluation.action_hr_evaluation_interview_tree +msgid "" +"Interview Requests are generated automatically by OpenERP according to an " +"employee's evaluation plan. Each user receives automatic emails and requests " +"to evaluate their colleagues periodically." +msgstr "" +"OpenERP xera peticións de entrevista automaticamente de acordo co plan de " +"avaliación de cada traballador. Cada usuario recibe correos electrónicos " +"automáticos e peticións de avaliación dos seus compañeiros periodicamente." + +#. module: hr_evaluation +#: view:hr_evaluation.plan:0 +#: field:hr_evaluation.plan,phase_ids:0 +msgid "Evaluation Phases" +msgstr "Fases de avaliación" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Current" +msgstr "Actual" + +#. module: hr_evaluation +#: model:ir.model,name:hr_evaluation.model_hr_evaluation_interview +msgid "Evaluation Interview" +msgstr "Entrevista de avaliación" + +#. module: hr_evaluation +#: field:hr.evaluation.reminder,evaluation_id:0 +msgid "Interview" +msgstr "Entrevista" + +#. module: hr_evaluation +#: view:hr.evaluation.reminder:0 +#: model:ir.ui.menu,name:hr_evaluation.menu_eval_send_mail +msgid "Evaluation Reminders" +msgstr "Recordatorios de avaliación" + +#. module: hr_evaluation +#: selection:hr_evaluation.plan.phase,action:0 +msgid "Self Appraisal Requests" +msgstr "Petición de autoavaliación" + +#. module: hr_evaluation +#: field:hr_evaluation.plan.phase,email_subject:0 +msgid "char" +msgstr "car." + +#. module: hr_evaluation +#: field:hr_evaluation.evaluation,survey_request_ids:0 +msgid "Appraisal Forms" +msgstr "Formularios de avaliación" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "May" +msgstr "Maio" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Internal Notes" +msgstr "Notas internas" + +#. module: hr_evaluation +#: view:hr_evaluation.evaluation:0 +msgid "Validate Evaluation" +msgstr "Validar avaliación" + +#. module: hr_evaluation +#: selection:hr_evaluation.plan.phase,action:0 +msgid "Final Interview" +msgstr "Entrevista final" + +#. module: hr_evaluation +#: field:hr_evaluation.plan.phase,name:0 +msgid "Phase" +msgstr "Fase" + +#. module: hr_evaluation +#: selection:hr_evaluation.plan.phase,action:0 +msgid "Bottom-Up Appraisal Requests" +msgstr "Petición de avaliación de abaixo a arriba" + +#. module: hr_evaluation +#: view:hr.evaluation.interview:0 +#: view:hr_evaluation.evaluation:0 +msgid "Search Evaluation" +msgstr "Buscar avaliación" + +#. module: hr_evaluation +#: field:hr.employee,evaluation_plan_id:0 +#: view:hr_evaluation.plan:0 +#: field:hr_evaluation.plan,name:0 +#: field:hr_evaluation.plan.phase,plan_id:0 +#: model:ir.model,name:hr_evaluation.model_hr_evaluation_plan +msgid "Evaluation Plan" +msgstr "Plan de avaliación" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "February" +msgstr "Febreiro" + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid "Send to Managers" +msgstr "Enviar a responsables" + +#. module: hr_evaluation +#: model:ir.actions.act_window,name:hr_evaluation.action_hr_evaluation_send_mail +msgid "Evaluation Send Mail" +msgstr "Enviar correo avaliación" + +#. module: hr_evaluation +#: selection:hr.evaluation.report,month:0 +msgid "April" +msgstr "Abril" + +#. module: hr_evaluation +#: model:ir.model,name:hr_evaluation.model_hr_evaluation_evaluation +msgid "Employee Evaluation" +msgstr "Avaliación empregado" + +#. module: hr_evaluation +#: view:hr_evaluation.plan:0 +msgid "Search Evaluation Plan" +msgstr "Buscar plan de avaliación" + +#. module: hr_evaluation +#: view:hr_evaluation.plan:0 +msgid "(months)" +msgstr "(meses)" + +#. module: hr_evaluation +#: field:hr_evaluation.plan.phase,sequence:0 +msgid "Sequence" +msgstr "Secuencia" + +#. module: hr_evaluation +#: view:hr_evaluation.plan.phase:0 +msgid "(user_signature)s: User name" +msgstr "(sinatura_usuario)s: Nome usuario" + +#. module: hr_evaluation +#: model:ir.actions.act_window,name:hr_evaluation.action_hr_evaluation_interview_tree +#: model:ir.ui.menu,name:hr_evaluation.menu_open_hr_evaluation_interview_requests +msgid "Interview Requests" +msgstr "Petición de entrevista" + +#. module: hr_evaluation +#: field:hr.evaluation.report,create_date:0 +msgid "Create Date" +msgstr "Crear data" + +#. module: hr_evaluation +#: view:hr.evaluation.report:0 +#: field:hr.evaluation.report,year:0 +msgid "Year" +msgstr "Ano" + +#. module: hr_evaluation +#: help:hr.employee,evaluation_date:0 +msgid "" +"The date of the next evaluation is computed by the evaluation plan's dates " +"(first evaluation + periodicity)." +msgstr "" +"A data da seguinte avaliación calcúlase polas datas de planificación da " +"avaliación (primeira avaliación + periodicidade)." diff --git a/addons/hr_payroll/i18n/es_EC.po b/addons/hr_payroll/i18n/es_EC.po index 8a03fcc2b19..1d9a9e11576 100644 --- a/addons/hr_payroll/i18n/es_EC.po +++ b/addons/hr_payroll/i18n/es_EC.po @@ -8,15 +8,15 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2011-06-03 17:05+0000\n" +"PO-Revision-Date: 2011-06-08 02:26+0000\n" "Last-Translator: Christopher Ormaza - (Ecuadorenlinea.net) " "\n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-06-04 04:53+0000\n" -"X-Generator: Launchpad (build 12959)\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: hr_payroll #: report:employees.salary:0 @@ -61,7 +61,7 @@ msgstr "Departamento" #. module: hr_payroll #: report:employees.salary:0 msgid "Deductions:" -msgstr "" +msgstr "Deducciones:" #. module: hr_payroll #: field:company.contribution,gratuity:0 @@ -383,7 +383,7 @@ msgstr "Total:" #. module: hr_payroll #: view:hr.payslip:0 msgid "Posted" -msgstr "" +msgstr "Asentado" #. module: hr_payroll #: model:ir.module.module,description:hr_payroll.module_meta_information @@ -399,31 +399,41 @@ msgid "" " * Integrated with Holiday Management\n" " " msgstr "" +"Sistema de nóminas genérico\n" +" * Detalles de empleado\n" +" * Contratos de empleado\n" +" * Contratos basados en pasaportes\n" +" * Complementos/deducciones\n" +" * Permite configurar salario base/bruto/neto\n" +" * Nómina de empleado\n" +" * Registro mensual de nóminas\n" +" * Integrado con la gestión de vacaciones\n" +" " #. module: hr_payroll #: model:ir.model,name:hr_payroll.model_hr_holidays_status msgid "Leave Type" -msgstr "" +msgstr "Tipo de ausencia" #. module: hr_payroll #: report:hr.payroll.register.sheet:0 msgid "Date :" -msgstr "" +msgstr "Fecha:" #. module: hr_payroll #: field:hr.payslip.line,total:0 msgid "Sub Total" -msgstr "" +msgstr "Sub Total" #. module: hr_payroll #: report:payslip.pdf:0 msgid "Payments -" -msgstr "" +msgstr "Pagos -" #. module: hr_payroll #: field:hr.contract,visa_no:0 msgid "Visa No" -msgstr "" +msgstr "Número de Visa" #. module: hr_payroll #: field:company.contribution.line,from_val:0 @@ -431,68 +441,68 @@ msgstr "" #: field:hr.payslip.line.line,from_val:0 #: report:year.salary:0 msgid "From" -msgstr "" +msgstr "De" #. module: hr_payroll #: field:hr.payroll.advice.line,bysal:0 #: report:payroll.advice:0 msgid "By Salary" -msgstr "" +msgstr "Por salario" #. module: hr_payroll #: field:hr.payroll.employees.detail,date_to:0 #: field:hr.payroll.year.salary,date_to:0 #: report:salary.structure:0 msgid "End Date" -msgstr "" +msgstr "Fecha Final" #. module: hr_payroll #: model:ir.actions.report.xml,name:hr_payroll.salary_payslip msgid "Employee PaySlip" -msgstr "" +msgstr "Rol de Pagos de Empleado" #. module: hr_payroll #: field:hr.payslip,leaves:0 msgid "Leave Deductions" -msgstr "" +msgstr "Deducciones por Ausencia" #. module: hr_payroll #: report:hr.payroll.register.sheet:0 #: report:payroll.advice:0 msgid "Authorised Signature" -msgstr "" +msgstr "Firma autorizada" #. module: hr_payroll #: selection:hr.payslip.line,amount_type:0 msgid "Function Value" -msgstr "" +msgstr "Valor de función" #. module: hr_payroll #: model:ir.model,name:hr_payroll.model_hr_contibution_register_line msgid "Contribution Register Line" -msgstr "" +msgstr "Línea de registro de contribución" #. module: hr_payroll #: report:salary.structure:0 msgid "Notes:" -msgstr "" +msgstr "Notas:" #. module: hr_payroll #: field:hr.payroll.advice,state:0 #: field:hr.payroll.register,state:0 #: field:hr.payslip,state:0 msgid "State" -msgstr "" +msgstr "Estado" #. module: hr_payroll #: view:hr.payroll.advice:0 msgid "Paymeny Lines" -msgstr "" +msgstr "Líneas de Pago" #. module: hr_payroll #: report:payslip.pdf:0 msgid "Other Lines" -msgstr "" +msgstr "Otras Líneas" #. module: hr_payroll #: view:company.contribution:0 @@ -501,13 +511,13 @@ msgstr "" #: view:hr.payslip:0 #: view:hr.payslip.line:0 msgid "Function Arguments" -msgstr "" +msgstr "Argumentos de la función" #. module: hr_payroll #: model:ir.actions.act_window,name:hr_payroll.action_hr_company_contribution_tree #: model:ir.ui.menu,name:hr_payroll.menu_hr_company_contribution_tree msgid "Company Contributions" -msgstr "" +msgstr "Contribuciones de la compañía" #. module: hr_payroll #: field:hr.contibution.register.line,employee_id:0 @@ -517,17 +527,17 @@ msgstr "" #: field:hr.payslip.line,employee_id:0 #: model:ir.model,name:hr_payroll.model_hr_employee msgid "Employee" -msgstr "" +msgstr "Empleado(a)" #. module: hr_payroll #: field:hr.payslip.line,base:0 msgid "Formula" -msgstr "" +msgstr "Fórmula" #. module: hr_payroll #: model:ir.model,name:hr_payroll.model_hr_payroll_advice_line msgid "Bank Advice Lines" -msgstr "" +msgstr "Líneas de notificación bancaria" #. module: hr_payroll #: view:company.contribution:0 @@ -536,46 +546,46 @@ msgstr "" #: field:hr.payslip.line,type:0 #: report:salary.structure:0 msgid "Type" -msgstr "" +msgstr "Tipo" #. module: hr_payroll #: report:payslip.pdf:0 msgid "Email" -msgstr "" +msgstr "Correo electrónico" #. module: hr_payroll #: report:hr.payroll.register.sheet:0 msgid "#" -msgstr "" +msgstr "Nº" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:469 #: code:addons/hr_payroll/hr_payroll.py:1225 #, python-format msgid "Error !" -msgstr "" +msgstr "¡Error!" #. module: hr_payroll #: view:hr.payroll.register:0 #: view:hr.payslip:0 msgid "Verify Sheet" -msgstr "" +msgstr "Comprobar Hoja" #. module: hr_payroll #: help:hr.contract,working_days_per_week:0 msgid "No of Working days / week for an employee" -msgstr "" +msgstr "Número de días/semanas trabajados por un empleado." #. module: hr_payroll #: selection:hr.payroll.register,state:0 #: selection:hr.payslip,state:0 msgid "New Slip" -msgstr "" +msgstr "Nuevo Justificante" #. module: hr_payroll #: field:hr.payslip,basic:0 msgid "Net Basic" -msgstr "" +msgstr "Base neta" #. module: hr_payroll #: field:hr.contract,gross:0 @@ -584,46 +594,46 @@ msgstr "" #: field:hr.payslip,grows:0 #: report:salary.structure:0 msgid "Gross Salary" -msgstr "" +msgstr "Salario bruto" #. module: hr_payroll #: report:payslip.pdf:0 msgid "Total Earnings" -msgstr "" +msgstr "Ingresos totales" #. module: hr_payroll #: model:ir.actions.act_window,name:hr_payroll.action_hr_payroll_employees_detail #: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_employees_detail msgid "Employee Salary Statement" -msgstr "" +msgstr "Declaración salario del empleado" #. module: hr_payroll #: selection:hr.allounce.deduction.categoty,type:0 #: selection:hr.payslip.line,type:0 msgid "Other Payment" -msgstr "" +msgstr "Otros pagos" #. module: hr_payroll #: field:hr.employee,advantages_net:0 #: report:payslip.pdf:0 #: report:salary.structure:0 msgid "Deductions" -msgstr "" +msgstr "Deducciones" #. module: hr_payroll #: report:payroll.advice:0 msgid "C/D" -msgstr "" +msgstr "C/D" #. module: hr_payroll #: field:hr.contract,permit_no:0 msgid "Work Permit No" -msgstr "" +msgstr "Nº Permiso de Trabajo" #. module: hr_payroll #: field:hr.payroll.advice,line_ids:0 msgid "Employee Salary" -msgstr "" +msgstr "Salario del Empleado" #. module: hr_payroll #: field:hr.payroll.advice,chaque_nos:0 @@ -633,7 +643,7 @@ msgstr "" #. module: hr_payroll #: field:hr.contibution.register,monthly_total_by_emp:0 msgid "Total By Employee" -msgstr "" +msgstr "Total por empleado" #. module: hr_payroll #: view:company.contribution:0 @@ -642,7 +652,7 @@ msgstr "" #: selection:hr.payslip.line,amount_type:0 #: selection:hr.payslip.line.line,amount_type:0 msgid "Fixed Amount" -msgstr "" +msgstr "Importe fijo" #. module: hr_payroll #: field:company.contribution.line,to_val:0 @@ -650,7 +660,7 @@ msgstr "" #: field:hr.payslip.line.line,to_val:0 #: report:year.salary:0 msgid "To" -msgstr "" +msgstr "Para" #. module: hr_payroll #: code:addons/hr_payroll/hr_payroll.py:180 @@ -662,33 +672,33 @@ msgstr "" #: code:addons/hr_payroll/hr_payroll.py:1410 #, python-format msgid "Variable Error !" -msgstr "" +msgstr "¡Error de variable!" #. module: hr_payroll #: model:ir.model,name:hr_payroll.model_hr_payroll_employees_detail msgid "hr.payroll.employees.detail" -msgstr "" +msgstr "hr.payroll.employees.detail" #. module: hr_payroll #: view:hr.payroll.register:0 #: view:hr.payslip:0 msgid "Pay Salary" -msgstr "" +msgstr "Pagar Nómina" #. module: hr_payroll #: field:hr.payroll.advice.line,name:0 msgid "Bank Account A/C" -msgstr "" +msgstr "Cuenta bancaria" #. module: hr_payroll #: view:hr.contibution.register:0 msgid "Contribution Lines" -msgstr "" +msgstr "Líneas de contribución" #. module: hr_payroll #: report:hr.payroll.register.sheet:0 msgid "For the month of" -msgstr "" +msgstr "Para el mes de" #. module: hr_payroll #: view:hr.allounce.deduction.categoty:0 @@ -698,7 +708,7 @@ msgstr "" #: field:hr.payslip,deduction:0 #: selection:hr.payslip.line,type:0 msgid "Deduction" -msgstr "" +msgstr "Deducción" #. module: hr_payroll #: model:ir.model,name:hr_payroll.model_hr_payroll_advice @@ -709,28 +719,30 @@ msgstr "" #: view:hr.payroll.register:0 #: view:hr.payslip:0 msgid "Payslip" -msgstr "" +msgstr "Nómina" #. module: hr_payroll #: constraint:hr.contract:0 msgid "Error! contract start-date must be lower then contract end-date." msgstr "" +"¡Error! La fecha de inicio de contrato debe ser anterior a la fecha de " +"finalización." #. module: hr_payroll #: selection:hr.allounce.deduction.categoty,type:0 #: selection:hr.payslip.line,type:0 msgid "Loan Installment" -msgstr "" +msgstr "Entrega anticipo" #. module: hr_payroll #: view:hr.payroll.register:0 msgid "Complete HR Checking" -msgstr "" +msgstr "Comprobación RH completa" #. module: hr_payroll #: report:payroll.advice:0 msgid "Yours Sincerely" -msgstr "" +msgstr "Atentamente" #. module: hr_payroll #: report:payroll.advice:0 @@ -740,22 +752,22 @@ msgstr "" #. module: hr_payroll #: report:payslip.pdf:0 msgid "Net Amount" -msgstr "" +msgstr "Importe neto" #. module: hr_payroll #: report:salary.structure:0 msgid "Salary Structure:" -msgstr "" +msgstr "Estructura salarial:" #. module: hr_payroll #: model:ir.actions.report.xml,name:hr_payroll.year_employees_detail msgid "Employees Salary Detail" -msgstr "" +msgstr "Detalle del salario del empleado" #. module: hr_payroll #: model:ir.model,name:hr_payroll.model_hr_payslip_line_line msgid "Function Line" -msgstr "" +msgstr "Línea de función" #. module: hr_payroll #: view:hr.payroll.advice:0 @@ -763,49 +775,49 @@ msgstr "" #: selection:hr.payroll.register,state:0 #: selection:hr.payslip,state:0 msgid "Confirm Sheet" -msgstr "" +msgstr "Hoja de confirmación" #. module: hr_payroll #: report:employees.salary:0 msgid "Others:" -msgstr "" +msgstr "Otros:" #. module: hr_payroll #: view:company.contribution:0 #: selection:company.contribution,amount_type:0 msgid "Function Calculation" -msgstr "" +msgstr "Función de cálculo" #. module: hr_payroll #: field:hr.payslip,worked_days:0 #: report:payslip.pdf:0 msgid "Worked Day" -msgstr "" +msgstr "Días trabajados" #. module: hr_payroll #: field:hr.contibution.register,monthly_total_by_comp:0 msgid "Total By Company" -msgstr "" +msgstr "Total por compañía" #. module: hr_payroll #: field:hr.payroll.advice.line,flag:0 msgid "D/C" -msgstr "" +msgstr "D/C" #. module: hr_payroll #: view:hr.passport:0 msgid "Country & Address" -msgstr "" +msgstr "País y Dirección" #. module: hr_payroll #: report:employees.salary:0 msgid "Employee Code" -msgstr "" +msgstr "Código de empleado" #. module: hr_payroll #: report:payslip.pdf:0 msgid "Basic Salary – Leaves" -msgstr "" +msgstr "Salario base - Ausencias" #. module: hr_payroll #: field:company.contribution,amount_type:0 @@ -814,13 +826,13 @@ msgstr "" #: field:hr.payslip.line.line,amount_type:0 #: report:salary.structure:0 msgid "Amount Type" -msgstr "" +msgstr "Tipo de importe" #. module: hr_payroll #: view:company.contribution:0 #: field:hr.payslip.line,category_id:0 msgid "Category" -msgstr "" +msgstr "Categoría" #. module: hr_payroll #: view:company.contribution:0 @@ -828,22 +840,22 @@ msgstr "" #: field:hr.payslip.line,company_contrib:0 #: model:ir.model,name:hr_payroll.model_company_contribution msgid "Company Contribution" -msgstr "" +msgstr "Contribución compañía" #. module: hr_payroll #: field:company.contribution,category_id:0 msgid "Heads" -msgstr "" +msgstr "Cabeceras" #. module: hr_payroll #: model:ir.actions.report.xml,name:hr_payroll.year_payroll_register msgid "Print Statement" -msgstr "" +msgstr "Imprimir declaración" #. module: hr_payroll #: view:hr.payslip:0 msgid "Draft" -msgstr "" +msgstr "Borrador" #. module: hr_payroll #: report:payslip.pdf:0 diff --git a/addons/html_view/i18n/fi.po b/addons/html_view/i18n/fi.po new file mode 100644 index 00000000000..53f7526fc21 --- /dev/null +++ b/addons/html_view/i18n/fi.po @@ -0,0 +1,67 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-08 10:26+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: html_view +#: field:html.view,name:0 +msgid "Name" +msgstr "Nimi" + +#. module: html_view +#: field:html.view,comp_id:0 +msgid "Company" +msgstr "Yritys" + +#. module: html_view +#: model:ir.actions.act_window,name:html_view.action_html_view_form +#: model:ir.ui.menu,name:html_view.html_form +msgid "Html Test" +msgstr "HTML testi" + +#. module: html_view +#: view:html.view:0 +msgid "Html Example" +msgstr "HTML malli" + +#. module: html_view +#: model:ir.module.module,shortdesc:html_view.module_meta_information +msgid "Html View" +msgstr "HTML näkymä" + +#. module: html_view +#: field:html.view,bank_ids:0 +msgid "Banks" +msgstr "Pankit" + +#. module: html_view +#: model:ir.module.module,description:html_view.module_meta_information +msgid "" +"\n" +" This is the test module which shows html tag supports in normal xml form " +"view.\n" +" " +msgstr "" +"\n" +" Tämä on testimoduuli joka näyttää html tagi joita tuetaan normaalissa " +"xml näkymässä\n" +" " + +#. module: html_view +#: model:ir.model,name:html_view.model_html_view +msgid "html.view" +msgstr "" diff --git a/addons/l10n_cn/i18n/tr.po b/addons/l10n_cn/i18n/tr.po new file mode 100644 index 00000000000..a53ecd45663 --- /dev/null +++ b/addons/l10n_cn/i18n/tr.po @@ -0,0 +1,55 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-07 05:27+0000\n" +"PO-Revision-Date: 2011-06-08 10:15+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: l10n_cn +#: model:ir.module.module,shortdesc:l10n_cn.module_meta_information +msgid "中国会计科目表" +msgstr "中国会计科目表" + +#. module: l10n_cn +#: model:ir.module.module,description:l10n_cn.module_meta_information +msgid "" +"\n" +" 添加中文省份数据\n" +" 科目类型\\会计科目表模板\\增值税\\辅助核算类别\\管理会计凭证簿\\财务会计凭证簿\n" +" " +msgstr "" +"\n" +" 添加中文省份数据\n" +" 科目类型\\会计科目表模板\\增值税\\辅助核算类别\\管理会计凭证簿\\财务会计凭证簿\n" +" " + +#. module: l10n_cn +#: model:ir.actions.todo,note:l10n_cn.config_call_account_template_cn_chart +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Bir Tablo Şablonundan bir Hesap Tablosu oluşturun. Firma adını girmeniz, " +"hesaplarınızın ve banka hesaplarınızın kodlarının oluşturulması için rakam " +"sayısını, yevmiyeleri oluşturmak için para birimini girmeniz istenecektir. " +"Böylece sade bir hesap planı oluşturumuş olur.\n" +"\t Bu sihirbaz, Mali Yönetim/Yapılandırma/Mali Muhasebe/Mali Hesaplar/Tablo " +"Şablonundan Hesap planı Oluşturma menüsünden çalıştırılan sihirbaz ile " +"aynıdır." diff --git a/addons/l10n_ec/i18n/tr.po b/addons/l10n_ec/i18n/tr.po new file mode 100644 index 00000000000..c561f10beea --- /dev/null +++ b/addons/l10n_ec/i18n/tr.po @@ -0,0 +1,54 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-07 06:01+0000\n" +"PO-Revision-Date: 2011-06-08 10:16+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: l10n_ec +#: model:ir.module.module,shortdesc:l10n_ec.module_meta_information +msgid "Ecuador - Accounting Chart" +msgstr "Ekvator - Hesap Planları" + +#. module: l10n_ec +#: model:ir.module.module,description:l10n_ec.module_meta_information +msgid "" +"\n" +" This is the base module to manage the accounting chart for Ecuador in " +"OpenERP.\n" +" " +msgstr "" +"\n" +" Ekvator için hesap tablolarını yönetmek için temel OpenERP modülü.\n" +" " + +#. module: l10n_ec +#: model:ir.actions.todo,note:l10n_ec.config_call_account_template_ec +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Bir Tablo Şablonundan bir Hesap Tablosu oluşturun. Firma adını girmeniz, " +"hesaplarınızın ve banka hesaplarınızın kodlarının oluşturulması için rakam " +"sayısını, yevmiyeleri oluşturmak için para birimini girmeniz istenecektir. " +"Böylece sade bir hesap planı oluşturumuş olur.\n" +"\t Bu sihirbaz, Mali Yönetim/Yapılandırma/Mali Muhasebe/Mali Hesaplar/Tablo " +"Şablonundan Hesap planı Oluşturma menüsünden çalıştırılan sihirbaz ile " +"aynıdır." diff --git a/addons/l10n_es/i18n/tr.po b/addons/l10n_es/i18n/tr.po new file mode 100644 index 00000000000..9a8c2277421 --- /dev/null +++ b/addons/l10n_es/i18n/tr.po @@ -0,0 +1,39 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-08 10:18+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: l10n_es +#: model:ir.module.module,shortdesc:l10n_es.module_meta_information +msgid "Spanish Charts of Accounts (PGCE 2008)" +msgstr "İspanya Hesap tabloları (PGCE 2008)" + +#. module: l10n_es +#: model:ir.module.module,description:l10n_es.module_meta_information +msgid "" +"Spanish Charts of Accounts (PGCE 2008)\n" +"\n" +"* Defines the following chart of account templates:\n" +" * Spanish General Chart of Accounts 2008.\n" +" * Spanish General Chart of Accounts 2008 for small and medium " +"companies.\n" +"* Defines templates for sale and purchase VAT.\n" +"* Defines tax code templates.\n" +"\n" +"Note: You should install the l10n_ES_account_balance_report module\n" +"for yearly account reporting (balance, profit & losses).\n" +msgstr "" diff --git a/addons/l10n_gr/i18n/tr.po b/addons/l10n_gr/i18n/tr.po new file mode 100644 index 00000000000..c5cdf9c74b5 --- /dev/null +++ b/addons/l10n_gr/i18n/tr.po @@ -0,0 +1,41 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-08 10:19+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: l10n_gr +#: model:ir.module.module,description:l10n_gr.module_meta_information +msgid "This is the base module to manage the accounting chart for Greece." +msgstr "" +"Yunanistan için hesap tablolarını yönetmek için temel OpenERP modülü." + +#. module: l10n_gr +#: model:ir.module.module,shortdesc:l10n_gr.module_meta_information +msgid "Greece - minimal" +msgstr "" + +#. module: l10n_gr +#: model:ir.actions.todo,note:l10n_gr.config_call_account_template_gr +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" diff --git a/addons/l10n_gt/i18n/tr.po b/addons/l10n_gt/i18n/tr.po new file mode 100644 index 00000000000..d8824301f55 --- /dev/null +++ b/addons/l10n_gt/i18n/tr.po @@ -0,0 +1,39 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-08 10:21+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: l10n_gt +#: model:ir.module.module,shortdesc:l10n_gt.module_meta_information +msgid "Guatemala - Plan contable general" +msgstr "Guetemala - Genel Hesap planı" + +#. module: l10n_gt +#: model:ir.actions.todo,note:l10n_gt.config_call_account_template_gt_minimal +msgid "" +"Generar la nomenclatura contable a partir de un modelo. Deberá seleccionar " +"una compañía, el modelo a utilizar, el número de digitos a usar en la " +"nomenclatura, la moneda para crear los diarios." +msgstr "" + +#. module: l10n_gt +#: model:ir.module.module,description:l10n_gt.module_meta_information +msgid "" +"Agrega una nomenclatura contable para Guatemala. También icluye impuestos y " +"la moneda del Quetzal. -- Adds accounting chart for Guatemala. It also " +"includes taxes and the Quetzal currency" +msgstr "" diff --git a/addons/l10n_in/i18n/tr.po b/addons/l10n_in/i18n/tr.po new file mode 100644 index 00000000000..60b900e9335 --- /dev/null +++ b/addons/l10n_in/i18n/tr.po @@ -0,0 +1,53 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-08 10:21+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: l10n_in +#: model:ir.module.module,description:l10n_in.module_meta_information +msgid "" +"\n" +" Indian Accounting : chart of Account\n" +" " +msgstr "" +"\n" +" Hindistan Muhasebesi: Hesap planı\n" +" " + +#. module: l10n_in +#: model:ir.module.module,shortdesc:l10n_in.module_meta_information +msgid "Indian Chart of Account" +msgstr "Hindistan hesap planı" + +#. module: l10n_in +#: model:ir.actions.todo,note:l10n_in.config_call_account_template_in_minimal +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Bir Tablo Şablonundan bir Hesap Tablosu oluşturun. Firma adını girmeniz, " +"hesaplarınızın ve banka hesaplarınızın kodlarının oluşturulması için rakam " +"sayısını, yevmiyeleri oluşturmak için para birimini girmeniz istenecektir. " +"Böylece sade bir hesap planı oluşturumuş olur.\n" +"\t Bu sihirbaz, Mali Yönetim/Yapılandırma/Mali Muhasebe/Mali Hesaplar/Tablo " +"Şablonundan Hesap planı Oluşturma menüsünden çalıştırılan sihirbaz ile " +"aynıdır." diff --git a/addons/l10n_mx/i18n/tr.po b/addons/l10n_mx/i18n/tr.po new file mode 100644 index 00000000000..e16ab74fb34 --- /dev/null +++ b/addons/l10n_mx/i18n/tr.po @@ -0,0 +1,48 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-07 06:07+0000\n" +"PO-Revision-Date: 2011-06-08 10:22+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: l10n_mx +#: model:ir.module.module,description:l10n_mx.module_meta_information +msgid "" +"This is the module to manage the accounting chart for Mexico in Open ERP." +msgstr "Meksika için hesap tablolarını yönetmek için temel OpenERP modülü." + +#. module: l10n_mx +#: model:ir.actions.todo,note:l10n_mx.config_call_account_template_mx_chart +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Bir Tablo Şablonundan bir Hesap Tablosu oluşturun. Firma adını girmeniz, " +"hesaplarınızın ve banka hesaplarınızın kodlarının oluşturulması için rakam " +"sayısını, yevmiyeleri oluşturmak için para birimini girmeniz istenecektir. " +"Böylece sade bir hesap planı oluşturumuş olur.\n" +"\t Bu sihirbaz, Mali Yönetim/Yapılandırma/Mali Muhasebe/Mali Hesaplar/Tablo " +"Şablonundan Hesap planı Oluşturma menüsünden çalıştırılan sihirbaz ile " +"aynıdır." + +#. module: l10n_mx +#: model:ir.module.module,shortdesc:l10n_mx.module_meta_information +msgid "Mexico - Chart of Account" +msgstr "Meksika - Hesap planı" diff --git a/addons/l10n_pl/i18n/tr.po b/addons/l10n_pl/i18n/tr.po new file mode 100644 index 00000000000..9ab8c30573f --- /dev/null +++ b/addons/l10n_pl/i18n/tr.po @@ -0,0 +1,60 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-07 06:14+0000\n" +"PO-Revision-Date: 2011-06-08 10:23+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: l10n_pl +#: model:ir.module.module,description:l10n_pl.module_meta_information +msgid "" +"\n" +" This is the module to manage the accounting chart and taxes for Poland " +"in Open ERP.\n" +" \n" +" To jest moduł do tworzenia wzorcowego planu kont i podstawowych " +"ustawień do podatków\n" +" VAT 0%, 7% i 22%. Moduł ustawia też konta do kupna i sprzedaży towarów " +"zakładając,\n" +" że wszystkie towary są w obrocie hurtowym.\n" +" " +msgstr "" +"\n" +" Polonya için hesap tablolarını yönetmek için temel OpenERP modülü.\n" +" " + +#. module: l10n_pl +#: model:ir.module.module,shortdesc:l10n_pl.module_meta_information +msgid "Poland - Chart of Accounts" +msgstr "Polonya - Hesap planı" + +#. module: l10n_pl +#: model:ir.actions.todo,note:l10n_pl.config_call_account_template_pl_chart +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"\tThis is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Bir Tablo Şablonundan bir Hesap Tablosu oluşturun. Firma adını girmeniz, " +"hesaplarınızın ve banka hesaplarınızın kodlarının oluşturulması için rakam " +"sayısını, yevmiyeleri oluşturmak için para birimini girmeniz istenecektir. " +"Böylece sade bir hesap planı oluşturumuş olur.\n" +"\t Bu sihirbaz, Mali Yönetim/Yapılandırma/Mali Muhasebe/Mali Hesaplar/Tablo " +"Şablonundan Hesap planı Oluşturma menüsünden çalıştırılan sihirbaz ile " +"aynıdır." diff --git a/addons/l10n_th/i18n/tr.po b/addons/l10n_th/i18n/tr.po new file mode 100644 index 00000000000..fb1db0612bf --- /dev/null +++ b/addons/l10n_th/i18n/tr.po @@ -0,0 +1,53 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-07 06:19+0000\n" +"PO-Revision-Date: 2011-06-08 10:23+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: l10n_th +#: model:ir.actions.todo,note:l10n_th.config_call_account_template_th +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"This is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template." +msgstr "" +"Bir Tablo Şablonundan bir Hesap Tablosu oluşturun. Firma adını girmeniz, " +"hesaplarınızın ve banka hesaplarınızın kodlarının oluşturulması için rakam " +"sayısını, yevmiyeleri oluşturmak için para birimini girmeniz istenecektir. " +"Böylece sade bir hesap planı oluşturumuş olur.\n" +"\t Bu sihirbaz, Mali Yönetim/Yapılandırma/Mali Muhasebe/Mali Hesaplar/Tablo " +"Şablonundan Hesap planı Oluşturma menüsünden çalıştırılan sihirbaz ile " +"aynıdır." + +#. module: l10n_th +#: model:ir.module.module,shortdesc:l10n_th.module_meta_information +msgid "Thailand - Thai Chart of Accounts" +msgstr "Tayland - Genel hesap planı" + +#. module: l10n_th +#: model:ir.module.module,description:l10n_th.module_meta_information +msgid "" +"\n" +"Chart of accounts for Thailand.\n" +" " +msgstr "" +"\n" +"Tayland için hesap tablolarını yönetmek için temel OpenERP modülü.\n" +" " diff --git a/addons/l10n_ve/i18n/tr.po b/addons/l10n_ve/i18n/tr.po new file mode 100644 index 00000000000..0e5f9ddf28c --- /dev/null +++ b/addons/l10n_ve/i18n/tr.po @@ -0,0 +1,62 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-07 06:21+0000\n" +"PO-Revision-Date: 2011-06-08 10:23+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: l10n_ve +#: model:ir.actions.todo,note:l10n_ve.config_call_account_template_ve_chart +msgid "" +"Generate Chart of Accounts from a Chart Template. You will be asked to pass " +"the name of the company, the chart template to follow, the no. of digits to " +"generate the code for your accounts and Bank account, currency to create " +"Journals. Thus,the pure copy of chart Template is generated.\n" +"This is the same wizard that runs from Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template.\n" +"Genere el Plan de cuentas de una Plantilla de Carta. Le pedirán pasar el " +"nombre de la compania, la plantilla de carta para seguir, el no. de digitos " +"para generar el codigo para sus cuentas y cuenta Bancaria, dinero para crear " +"Diarios. Asi, la copia pura de la carta la Plantilla es generada.\n" +"Esto es el mismo wizard que corre de la Financial " +"Management/Configuration/Financial Accounting/Financial Accounts/Generate " +"Chart of Accounts from a Chart Template.\n" +" " +msgstr "" +"Bir Tablo Şablonundan bir Hesap Tablosu oluşturun. Firma adını girmeniz, " +"hesaplarınızın ve banka hesaplarınızın kodlarının oluşturulması için rakam " +"sayısını, yevmiyeleri oluşturmak için para birimini girmeniz istenecektir. " +"Böylece sade bir hesap planı oluşturumuş olur.\n" +"\t Bu sihirbaz, Mali Yönetim/Yapılandırma/Mali Muhasebe/Mali Hesaplar/Tablo " +"Şablonundan Hesap planı Oluşturma menüsünden çalıştırılan sihirbaz ile " +"aynıdır.\n" +" " + +#. module: l10n_ve +#: model:ir.module.module,description:l10n_ve.module_meta_information +msgid "" +"\n" +"This is the module to manage the accounting chart for Venezuela in Open " +"ERP.\n" +"Este módulo es para manejar un catálogo de cuentas ejemplo para Venezuela.\n" +msgstr "" +"\n" +"Venezuella için hesap tablolarını yönetmek için temel OpenERP modülü.\n" + +#. module: l10n_ve +#: model:ir.module.module,shortdesc:l10n_ve.module_meta_information +msgid "Venezuela -Chart of Account" +msgstr "Venezuella - Hesap Planı" diff --git a/addons/marketing/i18n/tr.po b/addons/marketing/i18n/tr.po index 378a54d28a5..8c77edf63be 100644 --- a/addons/marketing/i18n/tr.po +++ b/addons/marketing/i18n/tr.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2011-06-02 13:17+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2011-06-09 18:18+0000\n" +"Last-Translator: Ayhan KIZILTAN \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-06-03 04:40+0000\n" -"X-Generator: Launchpad (build 12959)\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: marketing #: model:ir.module.module,description:marketing.module_meta_information @@ -97,7 +97,7 @@ msgstr "Pazarlama Uygulaması Yapılandırma" #. module: marketing #: model:ir.actions.act_window,name:marketing.action_marketing_installer msgid "Marketing Modules Installation" -msgstr "" +msgstr "Pazarlama Modülleri Kurulumu" #. module: marketing #: field:marketing.installer,marketing_campaign:0 diff --git a/addons/mrp/i18n/gl.po b/addons/mrp/i18n/gl.po new file mode 100644 index 00000000000..5799fdeae1c --- /dev/null +++ b/addons/mrp/i18n/gl.po @@ -0,0 +1,2550 @@ +# Galician translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-09 15:28+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:36+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: mrp +#: field:mrp.production,move_created_ids:0 +#: field:mrp.production,move_created_ids2:0 +msgid "Moves Created" +msgstr "Movementos creados" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_production_action +msgid "" +"Manufacturing Orders are usually proposed automatically by OpenERP based on " +"the bill of materials and the procurement rules, but you can also create " +"manufacturing orders manually. OpenERP will handle the consumption of the " +"raw materials (stock decrease) and the production of the finished products " +"(stock increase) when the order is processed." +msgstr "" +"OpenERP adoita propoñer automaticamente as ordes de fabricación segundo a " +"lista de materiais e as regras de abastecemento, pero vostede tamén pode " +"crear ordes de fabricación manualmente. OpenERP controlará o consumo das " +"materias primas (diminución de stock) e a produción dos produtos terminados " +"(aumento de stock) cando se procese a orde." + +#. module: mrp +#: help:mrp.production,location_src_id:0 +msgid "Location where the system will look for components." +msgstr "Lugar onde o sistema buscará os compoñentes." + +#. module: mrp +#: field:mrp.production,workcenter_lines:0 +msgid "Work Centers Utilisation" +msgstr "Utilización do centro de produción" + +#. module: mrp +#: view:mrp.routing.workcenter:0 +msgid "Routing Work Centers" +msgstr "Ruta de centros de produción" + +#. module: mrp +#: model:ir.module.module,shortdesc:mrp.module_meta_information +msgid "Manufacturing Resource Planning" +msgstr "Planificación de recursos de fabricación (MRP)" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "No. Of Cycles" +msgstr "Nº de ciclos" + +#. module: mrp +#: field:mrp.routing.workcenter,cycle_nbr:0 +msgid "Number of Cycles" +msgstr "Número de ciclos" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_minimumstockprocure0 +msgid "" +"The 'Minimum stock rule' allows the system to create procurement orders " +"automatically as soon as the minimum stock is reached." +msgstr "" +"A 'regra de stock mínimo' permite ó sistema crear ordes de abastecemento " +"automaticamente cando se acade o stock mínimo" + +#. module: mrp +#: field:mrp.production,picking_id:0 +#: field:mrp.production.order,picking_id:0 +msgid "Picking list" +msgstr "Albará" + +#. module: mrp +#: code:addons/mrp/report/price.py:121 +#, python-format +msgid "Hourly Cost" +msgstr "Custo horario" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#, python-format +msgid "Cost Price per Uom" +msgstr "Prezo de custo pour Udm" + +#. module: mrp +#: view:mrp.production:0 +msgid "Scrap Products" +msgstr "Produtos de refugallo" + +#. module: mrp +#: view:mrp.production.order:0 +#: field:mrp.production.order,day:0 +msgid "Day" +msgstr "Día" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_routing_action +#: model:ir.ui.menu,name:mrp.menu_mrp_routing_action +msgid "Routings" +msgstr "Procesos produtivos" + +#. module: mrp +#: field:mrp.workcenter,product_id:0 +msgid "Work Center Product" +msgstr "Produto do centro de produción" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Search Bill Of Material" +msgstr "Buscar lista de materiais" + +#. module: mrp +#: model:process.node,note:mrp.process_node_stockproduct1 +msgid "For stockable products and consumables" +msgstr "Para produtos almacenables e consumibles" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_stockproduction0 +msgid "To Produce" +msgstr "A producir" + +#. module: mrp +#: help:mrp.routing.workcenter,cycle_nbr:0 +msgid "" +"Number of iterations this work center has to do in the specified operation " +"of the routing." +msgstr "" +"Número de repeticións que debe realizar este centro de produción na " +"operación indicada da ruta." + +#. module: mrp +#: view:mrp.bom:0 +#: field:mrp.bom,code:0 +#: view:mrp.production:0 +#: field:mrp.production,name:0 +msgid "Reference" +msgstr "Referencia" + +#. module: mrp +#: view:mrp.production:0 +msgid "Finished Products" +msgstr "Produtos rematados" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_servicerfq0 +#: model:process.transition,name:mrp.process_transition_stockrfq0 +msgid "To Buy" +msgstr "Mercar" + +#. module: mrp +#: view:mrp.production.order:0 +msgid "Raw Material Location" +msgstr "Situación das materias primas" + +#. module: mrp +#: help:mrp.installer,mrp_operations:0 +msgid "" +"Enhances production orders with readiness states as well as the start date " +"and end date of execution of the order." +msgstr "" +"Mellora as ordes de produción cos estados de preparación, así como a data de " +"inicio e final da execución da orde." + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_purchaseprocure0 +msgid "The system launches automatically a RFQ to the preferred supplier." +msgstr "" +"O sistema crea automaticamente unha petición de presuposto ó provedor " +"preferido." + +#. module: mrp +#: view:mrp.production:0 +msgid "Products to Finish" +msgstr "Produtos a rematar" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "Set / Pack" +msgstr "Conxunto / Paquete" + +#. module: mrp +#: field:mrp.installer,mrp_subproduct:0 +msgid "MRP Subproducts" +msgstr "Subprodutos MRP" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,state:0 +#: view:mrp.production.order:0 +#: field:mrp.production.order,state:0 +msgid "State" +msgstr "Estado" + +#. module: mrp +#: field:mrp.workcenter,costs_hour:0 +msgid "Cost per hour" +msgstr "Custo por hora" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockproduction0 +msgid "" +"In case the Supply method of the product is Produce, the system creates a " +"production order." +msgstr "" +"En caso de que o método de subministración do produto sexa Producir, o " +"sistema crea unha orde de produción." + +#. module: mrp +#: view:mrp.production:0 +msgid "UOM" +msgstr "UdM" + +#. module: mrp +#: field:change.production.qty,product_qty:0 +#: field:mrp.bom,product_qty:0 +#: field:mrp.production,product_qty:0 +#: view:mrp.production.order:0 +#: field:mrp.production.order,product_qty:0 +#: field:mrp.production.product.line,product_qty:0 +msgid "Product Qty" +msgstr "Cantidade produto" + +#. module: mrp +#: help:mrp.workcenter,product_id:0 +msgid "" +"Fill this product to track easily your production costs in the analytic " +"accounting." +msgstr "" +"Introduza este produto para realizar de xeito doado un seguimento dos seus " +"custos de produción na contabilidade analítica." + +#. module: mrp +#: model:process.node,note:mrp.process_node_purchaseprocure0 +msgid "For purchased material" +msgstr "Para material mercado" + +#. module: mrp +#: field:mrp.bom.revision,indice:0 +msgid "Revision" +msgstr "Revisión" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.next_id_77 +msgid "Reporting" +msgstr "Informe" + +#. module: mrp +#: field:mrp.workcenter,costs_cycle_account_id:0 +msgid "Cycle Account" +msgstr "Conta ciclo" + +#. module: mrp +#: code:addons/mrp/report/price.py:121 +#, python-format +msgid "Work Cost" +msgstr "Custo do traballo" + +#. module: mrp +#: report:bom.structure:0 +msgid "[" +msgstr "[" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_procureserviceproduct0 +msgid "Procurement of services" +msgstr "Abastecemento de servizos" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Capacity Information" +msgstr "Información de capacidade" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Destination Location" +msgstr "Lugar destino" + +#. module: mrp +#: view:mrp.installer:0 +msgid "title" +msgstr "título" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_bom +msgid "Master Data" +msgstr "Datos principais" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockmts0 +msgid "" +"The system waits for the products to be available in the stock. These " +"products are typically procured manually or through a minimum stock rule." +msgstr "" +"O sistema agarda a que os produtos estean dispoñibles no stock. Estes " +"produtos adoitan ser adquiridos de xeito manual ou a través dunha regra de " +"stock mínimo." + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Partner Ref" +msgstr "Ref. empresa" + +#. module: mrp +#: selection:mrp.workcenter.load,measure_unit:0 +msgid "Amount in hours" +msgstr "Cantidade en horas" + +#. module: mrp +#: field:mrp.production,product_lines:0 +msgid "Scheduled goods" +msgstr "Bens planificados" + +#. module: mrp +#: selection:mrp.bom,type:0 +msgid "Sets / Phantom" +msgstr "Conxuntos / Pantasma" + +#. module: mrp +#: help:mrp.bom,position:0 +msgid "Reference to a position in an external plan." +msgstr "Referencia a un lugar nun plan externo" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "August" +msgstr "Agosto" + +#. module: mrp +#: constraint:stock.move:0 +msgid "You try to assign a lot which is not from the same product" +msgstr "Tenta asignar un lote que non pertence ó mesmo produto." + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production_order +msgid "Production Order Report" +msgstr "Informe de orde de produción" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "June" +msgstr "Xuño" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_product_produce +msgid "Product Produce" +msgstr "Producir produto" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "October" +msgstr "Outubro" + +#. module: mrp +#: code:addons/mrp/report/price.py:177 +#, python-format +msgid "Components Cost of " +msgstr "Custo dos compoñentes de " + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_procurestockableproduct0 +msgid "Procurement of stockable Product" +msgstr "Abastecemento de produto almacenable" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Default UOM" +msgstr "UdM por defecto" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#: report:bom.structure:0 +#: field:mrp.product_price,number:0 +#: report:mrp.production.order:0 +#, python-format +msgid "Quantity" +msgstr "Cantidade" + +#. module: mrp +#: field:mrp.production.workcenter.line,hour:0 +msgid "Nbr of hours" +msgstr "Nº de horas" + +#. module: mrp +#: view:mrp.production:0 +msgid "Confirm Production" +msgstr "Confirmar produción" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockproduct0 +msgid "" +"The system creates an order (production or purchased) depending on the sold " +"quantity and the products parameters." +msgstr "" +"O sistema crea unha orde (de produción ou de compra) en función da cantidade " +"vendida e dos parámetros dos produtos." + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicemts0 +msgid "" +"This is used in case of a service without any impact in the system, a " +"training session for instance." +msgstr "" +"Utilízase isto en caso dun servizo sen ningún tipo de impacto no sistema, " +"unha sesión de formación, por exemplo." + +#. module: mrp +#: field:mrp.installer,mrp_repair:0 +msgid "Repairs" +msgstr "Reparacións" + +#. module: mrp +#: field:mrp.installer,stock_location:0 +msgid "Advanced Routes" +msgstr "Rutas avanzadas" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_search_mrp +msgid "Working Time" +msgstr "Horario de traballo" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_report_in_out_picking_tree +msgid "Weekly Stock Value Variation" +msgstr "Variación do valor do stock semanal" + +#. module: mrp +#: help:mrp.installer,mrp_repair:0 +msgid "" +"Enables warranty and repair management (and their impact on stocks and " +"invoicing)." +msgstr "" +"Activa a garantía e a xestión das reparacións (e o seu impacto sobre os " +"stocks e a facturación)" + +#. module: mrp +#: field:mrp.production,date_planned_date:0 +#: report:mrp.production.order:0 +#: field:mrp.production.order,date_planned:0 +msgid "Scheduled Date" +msgstr "Data planificada" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Bill Of Material" +msgstr "Lista de Material" + +#. module: mrp +#: help:mrp.routing,location_id:0 +msgid "" +"Keep empty if you produce at the location where the finished products are " +"needed.Set a location if you produce at a fixed location. This can be a " +"partner location if you subcontract the manufacturing operations." +msgstr "" +"Deixar baleiro se se produce no mesmo lugar onde os produtos acabados son " +"necesarios. Indique un lugar, se se produce nun lugar fixo. Pode ser un " +"lugar doutra empresa se subcontrata as operacións de fabricación." + +#. module: mrp +#: view:board.board:0 +msgid "Stock Value Variation" +msgstr "Variación do valor de stock" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action2 +msgid "Bill of Materials Structure" +msgstr "Estrutura lista de materiais" + +#. module: mrp +#: model:process.node,note:mrp.process_node_serviceproduct0 +msgid "Product type is service" +msgstr "Produto de tipo servizo" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_property_group_action +msgid "" +"Define specific property groups that can be assigned to the properties of " +"your bill of materials." +msgstr "" +"Definir os grupos específicos de propiedade que se poden asignar ás " +"propiedades da súa lista de materiais." + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_bom0 +msgid "Manufacturing decomposition" +msgstr "Descomposición fabricación" + +#. module: mrp +#: model:process.node,note:mrp.process_node_serviceproduct1 +msgid "For Services." +msgstr "Para servizos" + +#. module: mrp +#: field:mrp.bom.revision,date:0 +msgid "Modification Date" +msgstr "Data de modificación" + +#. module: mrp +#: help:mrp.workcenter,costs_cycle_account_id:0 +#: help:mrp.workcenter,costs_hour_account_id:0 +msgid "" +"Complete this only if you want automatic analytic accounting entries on " +"production orders." +msgstr "" +"Énchao só se desexa crear entradas automáticas de contabilidade analítica " +"segundo as ordes de produción." + +#. module: mrp +#: field:mrp.production.workcenter.line,cycle:0 +msgid "Nbr of cycles" +msgstr "Nº de ciclos" + +#. module: mrp +#: model:process.node,note:mrp.process_node_orderrfq0 +#: model:process.node,note:mrp.process_node_rfq0 +msgid "Request for Quotation." +msgstr "Solicitude de orzamento." + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_billofmaterialrouting0 +msgid "" +"The Bill of Material is linked to a routing, i.e. the succession of work " +"centers." +msgstr "" +"A lista de materiais está vinculada a unha ruta, esto é, a sucesión de " +"centros de produción." + +#. module: mrp +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "Erro: Código EAN non válido" + +#. module: mrp +#: view:mrp.routing:0 +#: field:mrp.routing,location_id:0 +msgid "Production Location" +msgstr "Lugar de produción" + +#. module: mrp +#: view:mrp.production:0 +msgid "Change Qty" +msgstr "Cambiar Ctd." + +#. module: mrp +#: view:mrp.production:0 +msgid "Force Reservation" +msgstr "Forzar reservas" + +#. module: mrp +#: field:mrp.bom.revision,author_id:0 +msgid "Author" +msgstr "Autor" + +#. module: mrp +#: field:report.mrp.inout,value:0 +msgid "Stock value" +msgstr "Valor do stock" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_product_bom_structure +msgid "Product BoM Structure" +msgstr "Estrutura LdM do produto" + +#. module: mrp +#: view:mrp.production:0 +msgid "Search Production" +msgstr "Buscar produción" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#, python-format +msgid "Supplier Price per Uom" +msgstr "Prezo provedor por UdM" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "March" +msgstr "Marzo" + +#. module: mrp +#: field:mrp.bom,child_complete_ids:0 +msgid "BoM Hierarchy" +msgstr "Estrutura LdM" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.act_mrp_product_produce +#: view:mrp.product.produce:0 +#: view:mrp.production:0 +msgid "Produce" +msgstr "Producir" + +#. module: mrp +#: help:mrp.workcenter,costs_cycle:0 +msgid "Specify Cost of Work Center per cycle." +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +#: view:mrp.production.order:0 +#: selection:mrp.production.order,state:0 +msgid "Picking Exception" +msgstr "Excepción albará" + +#. module: mrp +#: field:mrp.bom,bom_lines:0 +msgid "BoM Lines" +msgstr "Liñas das listas de materiais" + +#. module: mrp +#: field:mrp.workcenter,time_start:0 +msgid "Time before prod." +msgstr "Tempo antes produción" + +#. module: mrp +#: help:mrp.routing,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the routing " +"without removing it." +msgstr "Se se desmarca o campo activo, permite ocultar a ruta sen eliminala." + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_billofmaterialrouting0 +msgid "Material Routing" +msgstr "Ruta do material" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,move_lines2:0 +#: report:mrp.production.order:0 +#: field:mrp.production.order,consumed_products:0 +msgid "Consumed Products" +msgstr "Produtos consumidos" + +#. module: mrp +#: constraint:mrp.bom:0 +msgid "Error ! You can not create recursive BoM." +msgstr "Erro! Non pode crear Listas de Material recorrentes." + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_mrp_workcenter_load_wizard +#: model:ir.model,name:mrp.model_mrp_workcenter_load +#: model:ir.model,name:mrp.model_report_workcenter_load +msgid "Work Center Load" +msgstr "Carga centro de produción" + +#. module: mrp +#: code:addons/mrp/procurement.py:45 +#, python-format +msgid "No BoM defined for this product !" +msgstr "Non se definiu LdM para este produto!" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action2 +#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action2 +msgid "Bill of Material Components" +msgstr "Compoñentes da lista de materiais" + +#. module: mrp +#: field:mrp.production.order,nbr:0 +msgid "# of Lines" +msgstr "Nº de liñas" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_planning +msgid "Planning" +msgstr "Planificación" + +#. module: mrp +#: view:mrp.production:0 +msgid "Ready" +msgstr "Preparado" + +#. module: mrp +#: help:mrp.production,routing_id:0 +msgid "" +"The list of operations (list of work centers) to produce the finished " +"product. The routing is mainly used to compute work center costs during " +"operations and to plan future loads on work centers based on production " +"plannification." +msgstr "" +"Lista das operacións (lista dos centros de traballo) para producir os " +"produtos acabados. Utilízase a ruta principalmente para calcular os custos " +"do centro de traballo durante as operacións e planificar a carga no futuro " +"nos centros de traballo baseada na planificación da produción." + +#. module: mrp +#: help:mrp.workcenter,time_cycle:0 +msgid "Time in hours for doing one cycle." +msgstr "Tempo en horas para realizar un ciclo." + +#. module: mrp +#: report:bom.structure:0 +msgid "BOM Ref" +msgstr "Ref LdM" + +#. module: mrp +#: view:mrp.production:0 +#: selection:mrp.production,state:0 +#: view:mrp.production.order:0 +#: selection:mrp.production.order,state:0 +msgid "In Production" +msgstr "En produción" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_property +msgid "Master Bill of Materials" +msgstr "Lista mestra de materiais" + +#. module: mrp +#: help:mrp.bom,product_uos:0 +msgid "" +"Product UOS (Unit of Sale) is the unit of measurement for the invoicing and " +"promotion of stock." +msgstr "" +"UdV do produto (Unidade de Venda) é a unidade de medida para a facturación e " +"a promoción de existencias." + +#. module: mrp +#: view:mrp.product_price:0 +#: view:mrp.workcenter.load:0 +msgid "Print" +msgstr "Imprimir" + +#. module: mrp +#: view:mrp.bom:0 +#: view:mrp.workcenter:0 +msgid "Type" +msgstr "Tipo" + +#. module: mrp +#: code:addons/mrp/report/price.py:150 +#: code:addons/mrp/report/price.py:201 +#, python-format +msgid "Total Cost of " +msgstr "Custo total de " + +#. module: mrp +#: model:process.node,note:mrp.process_node_minimumstockrule0 +msgid "Linked to the 'Minimum stock rule' supplying method." +msgstr "Vinculado ó método de abastecemento 'Regra de stock mínimo'." + +#. module: mrp +#: selection:mrp.workcenter.load,time_unit:0 +msgid "Per month" +msgstr "Por mes" + +#. module: mrp +#: code:addons/mrp/mrp.py:595 +#: code:addons/mrp/wizard/change_production_qty.py:77 +#: code:addons/mrp/wizard/change_production_qty.py:82 +#, python-format +msgid "Couldn't find bill of material for product" +msgstr "Non se puido atopar a lista de materiais para o produto" + +#. module: mrp +#: report:bom.structure:0 +msgid "Product Name" +msgstr "Nome produto" + +#. module: mrp +#: code:addons/mrp/mrp.py:495 +#, python-format +msgid "Invalid action !" +msgstr "Acción non válida!" + +#. module: mrp +#: help:mrp.bom,product_efficiency:0 +msgid "A factor of 0.9 means a loss of 10% within the production process." +msgstr "Un factor de 0,9 indica unha perda do 10% no proceso de produción." + +#. module: mrp +#: view:mrp.installer:0 +msgid "" +"Add more functionalities to the core Manufacturing Application with the " +"following addons." +msgstr "" +"Engada máis funcionalidades no núcleo da aplicación de fabricación cos " +"seguintes módulos." + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Printing date" +msgstr "Data de impresión" + +#. module: mrp +#: model:process.node,name:mrp.process_node_orderrfq0 +#: model:process.node,name:mrp.process_node_rfq0 +msgid "RFQ" +msgstr "Petición orzamento" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_producttostockrules0 +msgid "Procurement rule" +msgstr "Regra de abastecemento" + +#. module: mrp +#: help:mrp.workcenter,costs_hour:0 +msgid "Specify Cost of Work center per hour." +msgstr "Especificar os custos do centro de traballo por hora." + +#. module: mrp +#: view:mrp.production:0 +msgid "Partial" +msgstr "Parcial" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "September" +msgstr "Setembro" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "WorkCenter" +msgstr "Centro de produción" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_procureserviceproduct0 +msgid "" +"Depending on the chosen method to 'supply' the service, the procurement " +"order creates a RFQ for a subcontracting purchase order or waits until the " +"service is done (= the delivery of the products)." +msgstr "" +"Dependendo do método elixido para \"subministrar\" o servizo, a orde de " +"abastecemento crea unha solicitude de orzamento para un pedido de compra " +"(subcontratación) ou agarda ata que se realice o servizo (= a entrega dos " +"produtos)." + +#. module: mrp +#: selection:mrp.production,priority:0 +#: selection:mrp.production.order,priority:0 +msgid "Urgent" +msgstr "Urxente" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_routing_workcenter +msgid "Work Center Usage" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production +msgid "Manufacturing Order" +msgstr "Orde de fabricación" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_productionprocureproducts0 +msgid "Procurement of raw material" +msgstr "Abastecemento de materias primas" + +#. module: mrp +#: help:mrp.routing.workcenter,hour_nbr:0 +msgid "" +"Time in hours for this work center to achieve the operation of the specified " +"routing." +msgstr "" +"Tempo en horas para este centro de produción para realizar a operación da " +"ruta indicada." + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,cycle_total:0 +msgid "Total Cycles" +msgstr "Ciclos totais" + +#. module: mrp +#: selection:mrp.production,state:0 +#: view:mrp.production.order:0 +#: selection:mrp.production.order,state:0 +msgid "Ready to Produce" +msgstr "Listo para producir" + +#. module: mrp +#: field:mrp.bom.revision,name:0 +msgid "Modification name" +msgstr "Nome da modificación" + +#. module: mrp +#: view:mrp.bom:0 +#: view:mrp.production:0 +#: field:mrp.production.order,date:0 +msgid "Date" +msgstr "Data" + +#. module: mrp +#: field:mrp.bom,type:0 +msgid "BoM Type" +msgstr "Tipo de lista de materiais" + +#. module: mrp +#: view:mrp.production.order:0 +msgid "Extended Filters..." +msgstr "Filtros extendidos..." + +#. module: mrp +#: code:addons/mrp/procurement.py:47 +#, python-format +msgid "" +"Procurement '%s' has an exception: 'No BoM defined for this product !'" +msgstr "" +"Abastecemento '%s' ten unha excepción: 'O produto non ten LdM definida!'" + +#. module: mrp +#: view:mrp.production.order:0 +#: view:mrp.property:0 +msgid "Search" +msgstr "Buscar" + +#. module: mrp +#: field:report.workcenter.load,cycle:0 +msgid "Nbr of cycle" +msgstr "Nº de ciclo" + +#. module: mrp +#: model:ir.model,name:mrp.model_res_company +msgid "Companies" +msgstr "Compañías" + +#. module: mrp +#: model:process.node,name:mrp.process_node_minimumstockrule0 +#: model:process.node,name:mrp.process_node_productminimumstockrule0 +msgid "Minimum Stock" +msgstr "Stock mínimo" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menus_dash_mrp +msgid "Dashboard" +msgstr "Panel de control" + +#. module: mrp +#: view:board.board:0 +msgid "Work Center Future Load" +msgstr "Carga futura do centro de produción" + +#. module: mrp +#: model:process.node,name:mrp.process_node_stockproduct0 +#: model:process.node,name:mrp.process_node_stockproduct1 +#: model:process.process,name:mrp.process_process_stockableproductprocess0 +msgid "Stockable Product" +msgstr "Produto almacenable" + +#. module: mrp +#: code:addons/mrp/report/price.py:121 +#, python-format +msgid "Work Center name" +msgstr "Nome do centro de produción" + +#. module: mrp +#: field:mrp.routing,code:0 +msgid "Code" +msgstr "Código" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "No. Of Hours" +msgstr "Nº de horas" + +#. module: mrp +#: field:mrp.installer,mrp_jit:0 +msgid "Just In Time Scheduling" +msgstr "Planificación 'Just in Time'" + +#. module: mrp +#: view:mrp.property:0 +#: view:mrp.property.group:0 +msgid "Property Group" +msgstr "Grupo de propiedade" + +#. module: mrp +#: view:mrp.production:0 +msgid "Qty" +msgstr "Ctd." + +#. module: mrp +#: model:process.node,note:mrp.process_node_production0 +msgid "Manufacturing Plan." +msgstr "Plan de produción" + +#. module: mrp +#: view:mrp.routing:0 +#: view:mrp.workcenter:0 +msgid "Inactive" +msgstr "Inactivo" + +#. module: mrp +#: help:mrp.installer,mrp_subproduct:0 +msgid "" +"Enables multiple product output from a single production order: without " +"this, a production order can have only one output product." +msgstr "" +"Activa a saída de múltiples produtos dunha soa orde de produción: sen isto, " +"unha orde de produción só pode ter un produto de saída." + +#. module: mrp +#: view:change.production.qty:0 +#: view:mrp.product.produce:0 +#: view:mrp.product_price:0 +#: view:mrp.production:0 +#: view:mrp.workcenter.load:0 +msgid "Cancel" +msgstr "Anular" + +#. module: mrp +#: view:mrp.production:0 +msgid "Split in production lots" +msgstr "Dividir en lotes de produción" + +#. module: mrp +#: help:mrp.workcenter,capacity_per_cycle:0 +msgid "" +"Number of operations this Work Center can do in parallel. If this Work " +"Center represents a team of 5 workers, the capacity per cycle is 5." +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicerfq0 +msgid "" +"If the service has a 'Buy' supply method, this creates a RFQ, a " +"subcontracting demand for instance." +msgstr "" +"Se o servizo ten un método de subministración 'Mercar', créase unha " +"solicitude de orzamento, por exemplo, unha petición de subcontratación." + +#. module: mrp +#: field:mrp.production,move_prod_id:0 +msgid "Move product" +msgstr "Mover produto" + +#. module: mrp +#: view:mrp.production:0 +msgid "Late" +msgstr "Atrasado" + +#. module: mrp +#: model:process.node,name:mrp.process_node_servicemts0 +msgid "Make to stock" +msgstr "Obter para stock" + +#. module: mrp +#: help:mrp.routing.workcenter,sequence:0 +msgid "" +"Gives the sequence order when displaying a list of routing work centers." +msgstr "" +"Proporciona a orde de secuencias cando se amosa unha lista de encamiñamento " +"dos centros de traballo." + +#. module: mrp +#: report:bom.structure:0 +msgid "BOM Name" +msgstr "Nome LdM" + +#. module: mrp +#: view:mrp.production:0 +msgid "Start Production" +msgstr "Comezar produción" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.open_board_manufacturing +#: model:ir.ui.menu,name:mrp.menu_board_manufacturing +msgid "Production Dashboard" +msgstr "Taboleiro de produción" + +#. module: mrp +#: view:mrp.production:0 +msgid "Source Loc." +msgstr "Lugar orixe" + +#. module: mrp +#: field:mrp.bom,position:0 +msgid "Internal Reference" +msgstr "Referencia interna" + +#. module: mrp +#: help:mrp.installer,stock_location:0 +msgid "" +"Manages product routes and paths within and between locations (e.g. " +"warehouses)." +msgstr "" +"Xestiona as rutas e camiños dos produtos dentro e entre os lugares (por " +"exemplo, almacéns)." + +#. module: mrp +#: model:process.node,note:mrp.process_node_billofmaterial0 +msgid "Product's structure" +msgstr "Estrutura de produto" + +#. module: mrp +#: field:mrp.bom,name:0 +#: report:mrp.production.order:0 +#: field:mrp.production.product.line,name:0 +#: field:mrp.routing,name:0 +#: field:mrp.routing.workcenter,name:0 +msgid "Name" +msgstr "Nome" + +#. module: mrp +#: view:mrp.installer:0 +msgid "MRP Application Configuration" +msgstr "Configuración aplicación MRP" + +#. module: mrp +#: help:mrp.installer,mrp_jit:0 +msgid "" +"Enables Just In Time computation of procurement orders.\n" +"\n" +"While it's more resource intensive than the default setup, the JIT computer " +"avoids having to wait for the procurement scheduler to run or having to run " +"the procurement scheduler manually." +msgstr "" +"Permite o cálculo das ordes de abastecemento xusto a tempo (Just In Time). " +"Aínda que consume máis recursos que a configuración predeterminada, o " +"cálculo JIT evita ter que agardar a que se execute o planificador de " +"abastecementos ou ter que executar o planificador de abastecementos de xeito " +"manual." + +#. module: mrp +#: field:mrp.product.produce,mode:0 +msgid "Mode" +msgstr "Modo" + +#. module: mrp +#: report:bom.structure:0 +msgid "]" +msgstr "]" + +#. module: mrp +#: field:mrp.workcenter.load,measure_unit:0 +msgid "Amount measuring unit" +msgstr "Importe unidade de medida" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_production_action_planning +msgid "" +"Manufacturing Orders describe the operations that need to be carried out and " +"the raw materials usage for each production stage. You use specifications " +"(bills of materials or BoM) to work out the raw material requirements and " +"the manufacturing orders needed for the finished products. Once the bills of " +"materials have been defined, OpenERP is capable of automatically deciding on " +"the manufacturing route depending on the needs of the company." +msgstr "" +"As ordes de fabricación describen as operacións que se deben realizar e as " +"materias primas necesarias para cada etapa de fabricación. Utilice as " +"especificacións (as listas de materiais ou LdM) para obter as necesidades de " +"materias primas e as ordes de fabricación necesarias para os produtos " +"finais. Cando se definan as listas de materiais, OpenERP é capaz de decidir " +"automaticamente a ruta de fabricación en función das necesidades da compañía." + +#. module: mrp +#: constraint:mrp.production:0 +msgid "Order quantity cannot be negative or zero !" +msgstr "A cantidade do pedido non pode ser negativa ou cero!" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action3 +msgid "Manufacturing Orders in Progress" +msgstr "Ordes de produción en curso" + +#. module: mrp +#: model:ir.module.module,description:mrp.module_meta_information +msgid "" +"\n" +" This is the base module to manage the manufacturing process in OpenERP.\n" +"\n" +" Features:\n" +" * Make to Stock / Make to Order (by line)\n" +" * Multi-level BoMs, no limit\n" +" * Multi-level routing, no limit\n" +" * Routing and work center integrated with analytic accounting\n" +" * Scheduler computation periodically / Just In Time module\n" +" * Multi-pos, multi-warehouse\n" +" * Different reordering policies\n" +" * Cost method by product: standard price, average price\n" +" * Easy analysis of troubles or needs\n" +" * Very flexible\n" +" * Allows to browse Bill of Materials in complete structure\n" +" that include child and phantom BoMs\n" +" It supports complete integration and planification of stockable goods,\n" +" consumable of services. Services are completely integrated with the " +"rest\n" +" of the software. For instance, you can set up a sub-contracting service\n" +" in a BoM to automatically purchase on order the assembly of your " +"production.\n" +"\n" +" Reports provided by this module:\n" +" * Bill of Material structure and components\n" +" * Load forecast on Work Centers\n" +" * Print a production order\n" +" * Stock forecasts\n" +" Dashboard provided by this module::\n" +" * List of next production orders\n" +" * List of deliveries (out picking)\n" +" * Graph of work center load\n" +" * List of procurement in exception\n" +" " +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action4 +msgid "Manufacturing Orders Waiting Products" +msgstr "Ordes de produción en espera de produtos" + +#. module: mrp +#: view:mrp.bom:0 +#: view:mrp.production:0 +#: view:mrp.production.order:0 +#: view:mrp.property:0 +#: view:mrp.routing:0 +#: view:mrp.workcenter:0 +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: mrp +#: code:addons/mrp/report/price.py:121 +#, python-format +msgid "Cycles Cost" +msgstr "Custo ciclos" + +#. module: mrp +#: selection:mrp.workcenter.load,measure_unit:0 +msgid "Amount in cycles" +msgstr "Valor en ciclos" + +#. module: mrp +#: field:mrp.production,location_dest_id:0 +#: view:mrp.production.order:0 +#: field:mrp.production.order,location_dest_id:0 +msgid "Finished Products Location" +msgstr "Lugar produtos rematados" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_pm_resources_config +msgid "Resources" +msgstr "Recursos" + +#. module: mrp +#: field:mrp.workcenter,costs_journal_id:0 +msgid "Analytic Journal" +msgstr "Diario analítico" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_workcenter_action +#: model:ir.ui.menu,name:mrp.menu_view_resource_search_mrp +#: field:mrp.routing,workcenter_lines:0 +msgid "Work Centers" +msgstr "Centros de produción" + +#. module: mrp +#: selection:mrp.workcenter.load,time_unit:0 +msgid "Per week" +msgstr "Por semana" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_routing_action +msgid "" +"Routings allow you to create and manage the manufacturing operations that " +"should be followed within your work centers in order to produce a product. " +"They are attached to bills of materials that will define the required raw " +"materials." +msgstr "" +"As rutas permítenlle crear e xestionar as operacións de fabricación a " +"realizar nos seus centros de produción para fabricar un produto. Están " +"relacionadas coas listas de materiais que definirán as materias primas " +"necesarias." + +#. module: mrp +#: field:report.workcenter.load,hour:0 +msgid "Nbr of hour" +msgstr "Nº de horas" + +#. module: mrp +#: view:mrp.routing:0 +msgid "Work Center Operations" +msgstr "Operacións do centro de produción" + +#. module: mrp +#: view:mrp.routing:0 +msgid "Notes" +msgstr "Notas" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_bom +#: view:mrp.bom:0 +#: field:mrp.production,bom_id:0 +#: field:mrp.production.order,bom_id:0 +#: model:process.node,name:mrp.process_node_billofmaterial0 +msgid "Bill of Material" +msgstr "Lista de material" + +#. module: mrp +#: view:mrp.workcenter.load:0 +msgid "Select time unit" +msgstr "Seleccionar unidade de tempo" + +#. module: mrp +#: view:report.workcenter.load:0 +msgid "Work Center load" +msgstr "Carga centro de produción" + +#. module: mrp +#: help:mrp.production,location_dest_id:0 +msgid "Location where the system will stock the finished products." +msgstr "Lugar onde almacenará o sistema os produtos rematados" + +#. module: mrp +#: help:mrp.production,picking_id:0 +msgid "" +"This is the internal picking list that brings the finished product to the " +"production plan" +msgstr "" +"Este é o albará interno que trae o produto rematado ó plan de produción." + +#. module: mrp +#: field:stock.change.standard.price,change_parent_price:0 +msgid "Change Parent Price" +msgstr "Cambiar prezo pai" + +#. module: mrp +#: model:ir.model,name:mrp.model_stock_move +msgid "Stock Move" +msgstr "Movemento de stock" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_producttostockrules0 +msgid "" +"The Minimum Stock Rule is an automatic procurement rule based on a mini and " +"maxi quantity. It's available in the Inventory management menu and " +"configured by product." +msgstr "" +"A regra de stock mínimo é unha regra de abastecemento automático baseado " +"nunha cantidade mínima e máxima. Está dispoñible no menú de xestión de " +"inventario e pódese configurar por produto." + +#. module: mrp +#: selection:mrp.workcenter.load,time_unit:0 +msgid "Day by day" +msgstr "Día por día" + +#. module: mrp +#: view:mrp.bom:0 +msgid "Revisions" +msgstr "Revisións" + +#. module: mrp +#: view:mrp.installer:0 +msgid "Configure Your Manufacturing Resource Planning Application" +msgstr "" +"Configure a súa aplicación de planificación de recursos de fabricación (MRP)" + +#. module: mrp +#: field:mrp.production,priority:0 +#: field:mrp.production.order,priority:0 +msgid "Priority" +msgstr "Prioridade" + +#. module: mrp +#: model:ir.model,name:mrp.model_stock_picking +msgid "Picking List" +msgstr "Albará" + +#. module: mrp +#: view:mrp.production.order:0 +msgid "Month -1" +msgstr "Mes -1" + +#. module: mrp +#: code:addons/mrp/mrp.py:924 +#, python-format +msgid "Manufacturing order '%s' is scheduled for the %s." +msgstr "Orde de produción '%s' planificada para o '%s'" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Production Order N° :" +msgstr "Nº orde produción:" + +#. module: mrp +#: code:addons/mrp/mrp.py:640 +#, python-format +msgid "Manufacturing order '%s' is ready to produce." +msgstr "A orde de fabricación '%s' está preparada para producir." + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production_product_line +msgid "Production Scheduled Product" +msgstr "Fabricación planificada produto" + +#. module: mrp +#: help:res.company,manufacturing_lead:0 +msgid "Security days for each manufacturing operation." +msgstr "Días de seguridade para cada operación de fabricación." + +#. module: mrp +#: model:process.node,name:mrp.process_node_mts0 +#: model:process.transition,name:mrp.process_transition_servicemts0 +#: model:process.transition,name:mrp.process_transition_stockmts0 +msgid "Make to Stock" +msgstr "Fabricar para stock" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "July" +msgstr "Xullo" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_bom_form_action +msgid "" +"Master Bills of Materials allow you to create and manage the list of " +"necessary raw materials used to make a finished product. OpenERP will use " +"these BoMs to automatically propose manufacturing orders according to " +"product needs. You can either create a bill of materials to define specific " +"production steps or define a single multi-level bill of materials." +msgstr "" +"As listas mestras de materiais permítenlle crear e xestionar a lista das " +"materias primas necesarias utilizadas para fabricar un produto rematado. " +"OpenERP utilizará estas LdMs para propoñer automaticamente as ordes de " +"fabricación en función das necesidades de produto. Pode crear unha lista de " +"materiais para definir os pasos de produción ou definir unha única lista de " +"materiais multi-nivel." + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_stockrfq0 +msgid "" +"In case the Supply method of the product is Buy, the system creates a " +"purchase order." +msgstr "" +"Se se merca o método de subministración do produto, o sistema crea un pedido " +"de compra." + +#. module: mrp +#: model:ir.model,name:mrp.model_procurement_order +msgid "Procurement" +msgstr "Abastecemento" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_view_mrp_product_price_wizard +#: view:mrp.product_price:0 +msgid "Product Cost Structure" +msgstr "Estrutura dos custos do produto" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#, python-format +msgid "Components suppliers" +msgstr "Provedores de compoñentes" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_installer +msgid "mrp.installer" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Production Work Centers" +msgstr "" + +#. module: mrp +#: view:mrp.production.order:0 +#: field:mrp.production.order,month:0 +msgid "Month" +msgstr "" + +#. module: mrp +#: code:addons/mrp/wizard/change_production_qty.py:62 +#, python-format +msgid "Active Id is not found" +msgstr "" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Search for mrp workcenter" +msgstr "" + +#. module: mrp +#: view:mrp.bom:0 +msgid "BoM Structure" +msgstr "" + +#. module: mrp +#: field:mrp.production,date_start:0 +#: field:mrp.production.order,date_start:0 +msgid "Start Date" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_hour_account_id:0 +msgid "Hour Account" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Destination Loc." +msgstr "" + +#. module: mrp +#: field:mrp.production.order,product_id2:0 +msgid "Product Consumed" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Pending" +msgstr "" + +#. module: mrp +#: field:mrp.bom,active:0 +#: field:mrp.routing,active:0 +msgid "Active" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_procureproducts0 +msgid "Procure Products" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_report_workcenter_load_tree +#: view:report.workcenter.load:0 +msgid "Work Center Loads" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_property_action +#: model:ir.ui.menu,name:mrp.menu_mrp_property_action +#: view:mrp.bom:0 +#: field:mrp.bom,property_ids:0 +#: view:mrp.property:0 +#: view:procurement.order:0 +#: field:procurement.order,property_ids:0 +msgid "Properties" +msgstr "" + +#. module: mrp +#: help:mrp.production,origin:0 +msgid "" +"Reference of the document that generated this production order request." +msgstr "" + +#. module: mrp +#: sql_constraint:mrp.bom:0 +msgid "" +"All product quantities must be greater than 0.\n" +"You should install the mrp_subproduct module if you want to manage extra " +"products on BoMs !" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Extra Information" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_change_production_qty +msgid "Change Quantity of Products" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_productionorder0 +msgid "Drives the procurement orders for raw material." +msgstr "" + +#. module: mrp +#: view:mrp.production.order:0 +msgid "Current" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_general_account_id:0 +msgid "General Account" +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "SO Number" +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +#: view:mrp.production.order:0 +#: selection:mrp.production.order,state:0 +msgid "Done" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_stock_change_standard_price +msgid "Change Standard Price" +msgstr "" + +#. module: mrp +#: field:mrp.production,origin:0 +#: report:mrp.production.order:0 +#: field:mrp.production.order,origin:0 +msgid "Source Document" +msgstr "" + +#. module: mrp +#: selection:mrp.production,priority:0 +#: selection:mrp.production.order,priority:0 +msgid "Not urgent" +msgstr "" + +#. module: mrp +#: help:stock.change.standard.price,change_parent_price:0 +msgid "" +"This will change the price of parent products also according to the BoM " +"structure specified for the product." +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action2 +msgid "Manufacturing Orders To Start" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:495 +#, python-format +msgid "Cannot delete Production Order(s) which are in %s State!" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_workcenter +#: field:mrp.production.workcenter.line,workcenter_id:0 +#: field:mrp.routing.workcenter,workcenter_id:0 +#: view:mrp.workcenter:0 +#: field:report.workcenter.load,workcenter_id:0 +msgid "Work Center" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,capacity_per_cycle:0 +msgid "Capacity per Cycle" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_product_product +#: view:mrp.bom:0 +#: field:mrp.bom,product_id:0 +#: view:mrp.production:0 +#: field:mrp.production,product_id:0 +#: report:mrp.production.order:0 +#: view:mrp.production.order:0 +#: field:mrp.production.order,product_id:0 +#: field:mrp.production.product.line,product_id:0 +msgid "Product" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,hour_total:0 +msgid "Total Hours" +msgstr "" + +#. module: mrp +#: field:mrp.production,location_src_id:0 +#: field:mrp.production.order,location_src_id:0 +msgid "Raw Materials Location" +msgstr "" + +#. module: mrp +#: view:mrp.product_price:0 +msgid "Print Cost Structure of Product." +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_uos:0 +#: field:mrp.production.product.line,product_uos:0 +msgid "Product UOS" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_workcenter_action +msgid "" +"Work Centers allow you to create and manage manufacturing units consisting " +"of one or more persons and/or machines that can be considered as a unit for " +"capacity and planning forecasting." +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Consume Products" +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_uom:0 +#: field:mrp.production,product_uom:0 +#: field:mrp.production.order,product_uom:0 +#: field:mrp.production.product.line,product_uom:0 +msgid "Product UOM" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_stock0 +#: model:process.transition,name:mrp.process_transition_servicemto0 +#: model:process.transition,name:mrp.process_transition_stockproduct0 +msgid "Make to Order" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_report_mrp_production_order +#: model:ir.ui.menu,name:mrp.menu_report_mrp_production_orders_tree +msgid "Production Analysis" +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:349 +#, python-format +msgid "Copy" +msgstr "" + +#. module: mrp +#: view:mrp.production.lot.line:0 +msgid "Production Products" +msgstr "" + +#. module: mrp +#: field:mrp.production,date_finished:0 +#: field:mrp.production.order,date_finished:0 +msgid "End Date" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,resource_id:0 +msgid "Resource" +msgstr "" + +#. module: mrp +#: help:mrp.bom,date_start:0 +#: help:mrp.bom,date_stop:0 +msgid "Validity of this BoM or component. Keep empty if it's always valid." +msgstr "" + +#. module: mrp +#: field:mrp.production,product_uos:0 +msgid "Product UoS" +msgstr "" + +#. module: mrp +#: view:mrp.production.order:0 +msgid "#Line Orders" +msgstr "" + +#. module: mrp +#: selection:mrp.production,priority:0 +#: selection:mrp.production.order,priority:0 +msgid "Very Urgent" +msgstr "" + +#. module: mrp +#: help:mrp.bom,routing_id:0 +msgid "" +"The list of operations (list of work centers) to produce the finished " +"product. The routing is mainly used to compute work center costs during " +"operations and to plan future loads on work centers based on production " +"planning." +msgstr "" + +#. module: mrp +#: view:change.production.qty:0 +msgid "Approve" +msgstr "" + +#. module: mrp +#: view:mrp.property.group:0 +msgid "Properties categories" +msgstr "" + +#. module: mrp +#: help:mrp.production.workcenter.line,sequence:0 +msgid "Gives the sequence order when displaying a list of work orders." +msgstr "" + +#. module: mrp +#: report:mrp.production.order:0 +msgid "Source Location" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: view:mrp.production.product.line:0 +msgid "Scheduled Products" +msgstr "" + +#. module: mrp +#: view:mrp.production.lot.line:0 +msgid "Production Products Consommation" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_production_action +#: model:ir.actions.act_window,name:mrp.mrp_production_action_planning +#: model:ir.ui.menu,name:mrp.menu_mrp_production_action +#: model:ir.ui.menu,name:mrp.menu_mrp_production_order_action +#: view:mrp.production:0 +msgid "Manufacturing Orders" +msgstr "" + +#. module: mrp +#: help:mrp.product.produce,mode:0 +msgid "" +"'Consume only' mode will only consume the products with the quantity " +"selected.\n" +"'Consume & Produce' mode will consume as well as produce the products with " +"the quantity selected and it will finish the production order when total " +"ordered quantities are produced." +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: report:mrp.production.order:0 +msgid "Work Orders" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,costs_cycle:0 +msgid "Cost per cycle" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_serviceproduct0 +#: model:process.node,name:mrp.process_node_serviceproduct1 +msgid "Service" +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +#: selection:mrp.production.order,state:0 +msgid "Cancelled" +msgstr "" + +#. module: mrp +#: view:mrp.production.order:0 +msgid "BOM" +msgstr "" + +#. module: mrp +#: help:mrp.bom,product_uom:0 +msgid "" +"UoM (Unit of Measure) is the unit of measurement for the inventory control" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_bom0 +msgid "" +"The Bill of Material is the product's decomposition. The components (that " +"are products themselves) can also have their own Bill of Material (multi-" +"level)." +msgstr "" + +#. module: mrp +#: field:mrp.bom,company_id:0 +#: field:mrp.production,company_id:0 +#: view:mrp.production.order:0 +#: field:mrp.production.order,company_id:0 +#: field:mrp.routing,company_id:0 +#: field:mrp.routing.workcenter,company_id:0 +#: view:mrp.workcenter:0 +msgid "Company" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,time_cycle:0 +msgid "Time for 1 cycle (hour)" +msgstr "" + +#. module: mrp +#: model:ir.actions.report.xml,name:mrp.report_mrp_production_report +#: field:mrp.production.product.line,production_id:0 +#: field:mrp.production.workcenter.line,production_id:0 +#: model:process.node,name:mrp.process_node_production0 +#: model:process.node,name:mrp.process_node_productionorder0 +msgid "Production Order" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_productminimumstockrule0 +msgid "Automatic procurement rule" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Compute Data" +msgstr "" + +#. module: mrp +#: field:mrp.production,product_uos_qty:0 +msgid "Product UoS Qty" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:130 +#: view:mrp.bom:0 +#, python-format +msgid "Components" +msgstr "" + +#. module: mrp +#: report:bom.structure:0 +#: model:ir.actions.report.xml,name:mrp.report_bom_structure +msgid "BOM Structure" +msgstr "" + +#. module: mrp +#: field:mrp.bom,date_stop:0 +msgid "Valid Until" +msgstr "" + +#. module: mrp +#: field:mrp.bom,date_start:0 +msgid "Valid From" +msgstr "" + +#. module: mrp +#: selection:mrp.bom,type:0 +msgid "Normal BoM" +msgstr "" + +#. module: mrp +#: field:res.company,manufacturing_lead:0 +msgid "Manufacturing Lead Time" +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_uos_qty:0 +#: field:mrp.production.product.line,product_uos_qty:0 +msgid "Product UOS Qty" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.action_report_in_out_picking_tree +msgid "" +"Weekly Stock Value Variation enables you to track the stock value evolution " +"linked to manufacturing activities, receptions of products and delivery " +"orders." +msgstr "" + +#. module: mrp +#: view:mrp.product.produce:0 +msgid "Confirm" +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_efficiency:0 +msgid "Manufacturing Efficiency" +msgstr "" + +#. module: mrp +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "" + +#. module: mrp +#: help:mrp.bom,active:0 +msgid "" +"If the active field is set to False, it will allow you to hide the bills of " +"material without removing it." +msgstr "" + +#. module: mrp +#: field:mrp.bom,product_rounding:0 +msgid "Product Rounding" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_production_workcenter_line +#: field:mrp.production.workcenter.line,name:0 +msgid "Work Order" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.action_report_mrp_production_order +msgid "" +"This reporting allows you to analyse your manufacturing activities and " +"performance." +msgstr "" + +#. module: mrp +#: selection:mrp.product.produce,mode:0 +msgid "Consume Only" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Recreate Picking" +msgstr "" + +#. module: mrp +#: help:mrp.bom,type:0 +msgid "" +"If a sub-product is used in several products, it can be useful to create its " +"own BoM. Though if you don't want separated production orders for this sub-" +"product, select Set/Phantom as BoM type. If a Phantom BoM is used for a root " +"product, it will be sold and shipped as a set of components, instead of " +"being produced." +msgstr "" + +#. module: mrp +#: field:mrp.bom,method:0 +msgid "Method" +msgstr "" + +#. module: mrp +#: help:mrp.production,state:0 +msgid "" +"When the production order is created the state is set to 'Draft'.\n" +" If the order is confirmed the state is set to 'Waiting Goods'.\n" +" If any exceptions are there, the state is set to 'Picking Exception'. " +" \n" +"If the stock is available then the state is set to 'Ready to Produce'.\n" +" When the production gets started then the state is set to 'In Production'.\n" +" When the production is over, the state is set to 'Done'." +msgstr "" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "On Order" +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_configuration +#: view:res.company:0 +msgid "Configuration" +msgstr "" + +#. module: mrp +#: field:mrp.workcenter,time_stop:0 +msgid "Time after prod." +msgstr "" + +#. module: mrp +#: field:mrp.workcenter.load,time_unit:0 +msgid "Type of period" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Total Qty" +msgstr "" + +#. module: mrp +#: field:mrp.routing.workcenter,hour_nbr:0 +msgid "Number of Hours" +msgstr "" + +#. module: mrp +#: view:mrp.workcenter:0 +msgid "Costing Information" +msgstr "" + +#. module: mrp +#: model:process.node,name:mrp.process_node_purchaseprocure0 +msgid "Procurement Orders" +msgstr "" + +#. module: mrp +#: help:mrp.bom,product_rounding:0 +msgid "Rounding applied on the product quantity." +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_stock0 +msgid "Assignment from Production or Purchase Order." +msgstr "" + +#. module: mrp +#: field:mrp.routing.workcenter,routing_id:0 +msgid "Parent Routing" +msgstr "" + +#. module: mrp +#: view:mrp.installer:0 +msgid "Configure" +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,time_start:0 +msgid "Time in hours for the setup." +msgstr "" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "December" +msgstr "" + +#. module: mrp +#: field:mrp.installer,config_logo:0 +msgid "Image" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,bom_id:0 +#: field:procurement.order,bom_id:0 +msgid "BoM" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_report_mrp_inout +#: view:report.mrp.inout:0 +msgid "Stock value variation" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_mts0 +#: model:process.node,note:mrp.process_node_servicemts0 +msgid "Assignment from stock." +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +#: view:mrp.production.order:0 +#: selection:mrp.production.order,state:0 +msgid "Waiting Goods" +msgstr "" + +#. module: mrp +#: field:mrp.bom.revision,last_indice:0 +msgid "last indice" +msgstr "" + +#. module: mrp +#: field:mrp.bom,revision_ids:0 +#: view:mrp.bom.revision:0 +msgid "BoM Revisions" +msgstr "" + +#. module: mrp +#: selection:mrp.production,state:0 +#: selection:mrp.production.order,state:0 +msgid "Draft" +msgstr "" + +#. module: mrp +#: field:report.mrp.inout,date:0 +#: field:report.workcenter.load,name:0 +msgid "Week" +msgstr "" + +#. module: mrp +#: field:mrp.installer,progress:0 +msgid "Configuration Progress" +msgstr "" + +#. module: mrp +#: selection:mrp.production,priority:0 +#: selection:mrp.production.order,priority:0 +msgid "Normal" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_routing0 +msgid "Manufacturing Steps." +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:136 +#: model:ir.actions.report.xml,name:mrp.report_cost_structure +#, python-format +msgid "Cost Structure" +msgstr "" + +#. module: mrp +#: selection:mrp.product.produce,mode:0 +msgid "Consume & Produce" +msgstr "" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "November" +msgstr "" + +#. module: mrp +#: field:mrp.bom,bom_id:0 +msgid "Parent BoM" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_bom_form_action2 +msgid "" +"Bills of materials components are components and sub-products used to create " +"master bills of materials. Use this menu to search in which BoM a specific " +"component is used." +msgstr "" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "January" +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_stockproduct0 +msgid "Product type is Stockable or Consumable." +msgstr "" + +#. module: mrp +#: code:addons/mrp/mrp.py:595 +#: code:addons/mrp/wizard/change_production_qty.py:77 +#: code:addons/mrp/wizard/change_production_qty.py:82 +#, python-format +msgid "Error" +msgstr "" + +#. module: mrp +#: field:mrp.product.produce,product_qty:0 +msgid "Select Quantity" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.act_product_product_2_mrp_bom +#: model:ir.actions.act_window,name:mrp.mrp_bom_form_action +#: model:ir.ui.menu,name:mrp.menu_mrp_bom_form_action +#: field:product.product,bom_ids:0 +msgid "Bill of Materials" +msgstr "" + +#. module: mrp +#: help:mrp.routing.workcenter,routing_id:0 +msgid "" +"Routing indicates all the Work Centers used, for how long and/or cycles.If " +"Routing is indicated then,the third tab of a production order (Work Centers) " +"will be automatically pre-completed." +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_bom_revision +msgid "Bill of Material Revision" +msgstr "" + +#. module: mrp +#: view:mrp.routing.workcenter:0 +#: view:mrp.workcenter:0 +msgid "General Information" +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +msgid "Productions" +msgstr "" + +#. module: mrp +#: code:addons/mrp/report/price.py:194 +#, python-format +msgid "Work Cost of " +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,note:0 +msgid "" +"Description of the Work Center. Explain here what's a cycle according to " +"this Work Center." +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_routing +#: view:mrp.bom:0 +#: field:mrp.bom,routing_id:0 +#: view:mrp.production:0 +#: field:mrp.production,routing_id:0 +#: field:mrp.production.order,routing_id:0 +#: view:mrp.routing:0 +#: model:process.node,name:mrp.process_node_routing0 +msgid "Routing" +msgstr "" + +#. module: mrp +#: field:mrp.installer,mrp_operations:0 +msgid "Manufacturing Operations" +msgstr "" + +#. module: mrp +#: field:mrp.production,date_planned:0 +msgid "Scheduled date" +msgstr "" + +#. module: mrp +#: constraint:stock.move:0 +msgid "You must assign a production lot for this product" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.mrp_property_action +msgid "" +"The Properties in OpenERP are used to select the right bill of materials for " +"manufacturing a product when you have different ways of building the same " +"product. You can assign several properties to each Bill of Materials. When a " +"sales person creates a sales order, he can relate it to several properties " +"and OpenERP will automatically select the BoM to use according the the needs." +msgstr "" + +#. module: mrp +#: view:mrp.production.order:0 +#: field:stock.move,production_id:0 +msgid "Production" +msgstr "" + +#. module: mrp +#: view:board.board:0 +msgid "Procurements in Exception" +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_minimumstockprocure0 +msgid "'Minimum stock rule' material" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_mrp_product_price +msgid "Product Price" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.action_mrp_installer +msgid "MRP Applications Configuration" +msgstr "" + +#. module: mrp +#: model:ir.model,name:mrp.model_stock_move_split +msgid "Split in Production lots" +msgstr "" + +#. module: mrp +#: view:change.production.qty:0 +msgid "Change Quantity" +msgstr "" + +#. module: mrp +#: view:change.production.qty:0 +#: model:ir.actions.act_window,name:mrp.action_change_production_qty +msgid "Change Product Qty" +msgstr "" + +#. module: mrp +#: view:mrp.bom.revision:0 +#: field:mrp.bom.revision,description:0 +#: view:mrp.property:0 +#: view:mrp.property.group:0 +#: field:mrp.routing,note:0 +#: view:mrp.routing.workcenter:0 +#: field:mrp.routing.workcenter,note:0 +#: view:mrp.workcenter:0 +#: field:mrp.workcenter,note:0 +msgid "Description" +msgstr "" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "May" +msgstr "" + +#. module: mrp +#: view:board.board:0 +msgid "Manufacturing board" +msgstr "" + +#. module: mrp +#: field:mrp.production,date_planned_end:0 +msgid "Scheduled End Date" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,help:mrp.action_report_workcenter_load_tree +msgid "" +"Work Center Loads gives you a projection of work center loads over a " +"specified period. It is expressed in number of hours and machine related " +"cycles." +msgstr "" + +#. module: mrp +#: model:process.node,note:mrp.process_node_procureproducts0 +msgid "The way to procurement depends on the product type." +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_mrp_manufacturing +msgid "Manufacturing" +msgstr "" + +#. module: mrp +#: view:board.board:0 +msgid "Next Production Orders" +msgstr "" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "February" +msgstr "" + +#. module: mrp +#: model:ir.actions.act_window,name:mrp.mrp_property_group_action +#: model:ir.ui.menu,name:mrp.menu_mrp_property_group_action +msgid "Property Groups" +msgstr "" + +#. module: mrp +#: selection:mrp.production.order,month:0 +msgid "April" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_procurestockableproduct0 +msgid "" +"Depending on the chosen method to supply the stockable products, the " +"procurement order creates a RFQ, a production order, ... " +msgstr "" + +#. module: mrp +#: help:mrp.workcenter,time_stop:0 +msgid "Time in hours for the cleaning." +msgstr "" + +#. module: mrp +#: model:process.transition,name:mrp.process_transition_purchaseprocure0 +msgid "Automatic RFQ" +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_servicemto0 +msgid "" +"If the service has a 'Produce' supply method, this creates a task in the " +"project management module of OpenERP." +msgstr "" + +#. module: mrp +#: model:process.transition,note:mrp.process_transition_productionprocureproducts0 +msgid "" +"In order to supply raw material (to be purchased or produced), the " +"production order creates as much procurement orders as components listed in " +"the BOM, through a run of the schedulers (MRP)." +msgstr "" + +#. module: mrp +#: help:mrp.product_price,number:0 +msgid "" +"Specify quantity of products to produce or buy. Report of Cost structure " +"will be displayed base on this quantity." +msgstr "" + +#. module: mrp +#: selection:mrp.bom,method:0 +msgid "On Stock" +msgstr "" + +#. module: mrp +#: field:mrp.bom,sequence:0 +#: report:mrp.production.order:0 +#: field:mrp.production.workcenter.line,sequence:0 +#: field:mrp.routing.workcenter,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: mrp +#: model:ir.ui.menu,name:mrp.menu_view_resource_calendar_leaves_search_mrp +msgid "Resource Leaves" +msgstr "" + +#. module: mrp +#: help:mrp.bom,sequence:0 +msgid "Gives the sequence order when displaying a list of bills of material." +msgstr "" + +#. module: mrp +#: view:mrp.production:0 +#: field:mrp.production,move_lines:0 +#: report:mrp.production.order:0 +#: field:mrp.production.order,products_to_consume:0 +msgid "Products to Consume" +msgstr "" + +#. module: mrp +#: view:mrp.production.order:0 +#: field:mrp.production.order,year:0 +msgid "Year" +msgstr "" + +#~ msgid "Specify Cost of Work center per cycle." +#~ msgstr "Especificar custos do centro de traballo por ciclo." + +#~ msgid "Workcenter Usage" +#~ msgstr "Uso centro de produción" + +#~ msgid "" +#~ "Number of operations this work center can do in parallel. If this work " +#~ "center represents a team of 5 workers, the capacity per cycle is 5." +#~ msgstr "" +#~ "O número de operacións deste centro de traballo pódese facer en paralelo. Se " +#~ "este centro de traballo representa un equipo de 5 traballadores, a " +#~ "capacidade por ciclo é de 5." + +#~ msgid "" +#~ "\n" +#~ " This is the base module to manage the manufacturing process in OpenERP.\n" +#~ "\n" +#~ " Features:\n" +#~ " * Make to Stock / Make to Order (by line)\n" +#~ " * Multi-level BoMs, no limit\n" +#~ " * Multi-level routing, no limit\n" +#~ " * Routing and work center integrated with analytic accounting\n" +#~ " * Scheduler computation periodically / Just In Time module\n" +#~ " * Multi-pos, multi-warehouse\n" +#~ " * Different reordering policies\n" +#~ " * Cost method by product: standard price, average price\n" +#~ " * Easy analysis of troubles or needs\n" +#~ " * Very flexible\n" +#~ " * Allows to browse Bill of Materials in complete structure\n" +#~ " that include child and phantom BoMs\n" +#~ " It supports complete integration and planification of stockable goods,\n" +#~ " consumable of services. Services are completely integrated with the " +#~ "rest\n" +#~ " of the software. For instance, you can set up a sub-contracting service\n" +#~ " in a BoM to automatically purchase on order the assembly of your " +#~ "production.\n" +#~ "\n" +#~ " Reports provided by this module:\n" +#~ " * Bill of Material structure and components\n" +#~ " * Load forecast on workcenters\n" +#~ " * Print a production order\n" +#~ " * Stock forecasts\n" +#~ " Dashboard provided by this module::\n" +#~ " * List of next production orders\n" +#~ " * List of deliveries (out picking)\n" +#~ " * Graph of work center load\n" +#~ " * List of procurement in exception\n" +#~ " " +#~ msgstr "" +#~ "\n" +#~ " Este é o módulo base para xestionar os procesos de fabricación en " +#~ "OpenERP. Características:*Obter para stock / Obter baixo pedido (por " +#~ "liña)*BoMs multi-niveis, sen límite*Lugares multi-nivel, sen límite*Lugares " +#~ "e centros de traballo integrados coa contabilidade analítica*Execución " +#~ "periódica do cálculo da planificación / Módulo 'Just In Time'*Multi-pv, " +#~ "multi-almacén*Diferentes políticas de pedido*Método de custo por produto: " +#~ "prezo estándar, prezo medio*Análise doada de problemas ou necesidades*Moi " +#~ "flexible*Permite inspeccionar a estrutura completa das Facturas de Materiais " +#~ "que inclúen BoMs fillas e pantasmas Soporta a integración e planificación de " +#~ "mercancías almacenables, e o consumo de servizos. Os servizos intégranse " +#~ "completamente co resto da aplicación. Por exemplo, pódese establecer un " +#~ "servizo de subcontratación nunha BoM para encargar automaticamente a montaxe " +#~ "da súa produción. Os informes que facilita este módulo:*Compoñentes e " +#~ "estrutura da BoMs*Previsión de carga dos centros de traballo*Previsión de " +#~ "almacénTaboleiros proporcionados neste módulo:*Lista de ordes de produción " +#~ "próximas*Lista de entregas*Gráfico de carga do centro de traballo*Lista de " +#~ "ordes de fabricación con excepcións\n" +#~ " " diff --git a/addons/product_visible_discount/i18n/fi.po b/addons/product_visible_discount/i18n/fi.po new file mode 100644 index 00000000000..5e067054acc --- /dev/null +++ b/addons/product_visible_discount/i18n/fi.po @@ -0,0 +1,81 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-09 10:44+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: product_visible_discount +#: code:addons/product_visible_discount/product_visible_discount.py:147 +#, python-format +msgid "No Purchase Pricelist Found !" +msgstr "Ostohintalistaa ei löytynyt!" + +#. module: product_visible_discount +#: code:addons/product_visible_discount/product_visible_discount.py:155 +#, python-format +msgid "No Sale Pricelist Found " +msgstr "Myyntihintalisaa ei löytynyt " + +#. module: product_visible_discount +#: model:ir.module.module,description:product_visible_discount.module_meta_information +msgid "" +"\n" +" This module lets you calculate discounts on Sale Order lines and Invoice " +"lines base on the partner's pricelist.\n" +" To this end, a new check box named \"Visible Discount\" is added to the " +"pricelist form.\n" +" Example:\n" +" For the product PC1 and the partner \"Asustek\": if listprice=450, " +"and the price calculated using Asustek's pricelist is 225\n" +" If the check box is checked, we will have on the sale order line: " +"Unit price=450, Discount=50,00, Net price=225\n" +" If the check box is unchecked, we will have on Sale Order and " +"Invoice lines: Unit price=225, Discount=0,00, Net price=225\n" +" " +msgstr "" + +#. module: product_visible_discount +#: model:ir.module.module,shortdesc:product_visible_discount.module_meta_information +#: field:product.pricelist,visible_discount:0 +msgid "Visible Discount" +msgstr "Näkyvä alennus" + +#. module: product_visible_discount +#: model:ir.model,name:product_visible_discount.model_account_invoice_line +msgid "Invoice Line" +msgstr "Laskun rivi" + +#. module: product_visible_discount +#: code:addons/product_visible_discount/product_visible_discount.py:155 +#, python-format +msgid "You must first define a pricelist for Customer !" +msgstr "Sinun täytyy ensin määritellä asiakkaan hinnasto!" + +#. module: product_visible_discount +#: model:ir.model,name:product_visible_discount.model_product_pricelist +msgid "Pricelist" +msgstr "Hinnasto" + +#. module: product_visible_discount +#: code:addons/product_visible_discount/product_visible_discount.py:147 +#, python-format +msgid "You must first define a pricelist for Supplier !" +msgstr "Sinun täytyy ensin määritellä toimittajan hinnasto!" + +#. module: product_visible_discount +#: model:ir.model,name:product_visible_discount.model_sale_order_line +msgid "Sales Order Line" +msgstr "Myyntitilausrivi" diff --git a/addons/project_issue/i18n/nb.po b/addons/project_issue/i18n/nb.po new file mode 100644 index 00000000000..bb294245223 --- /dev/null +++ b/addons/project_issue/i18n/nb.po @@ -0,0 +1,961 @@ +# Norwegian Bokmal translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-09 11:14+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Norwegian Bokmal \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: project_issue +#: field:project.issue.report,delay_open:0 +msgid "Avg. Delay to Open" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: view:project.issue.report:0 +msgid "Group By..." +msgstr "Grupper etter..." + +#. module: project_issue +#: field:project.issue,working_hours_open:0 +msgid "Working Hours to Open the Issue" +msgstr "" + +#. module: project_issue +#: constraint:project.project:0 +msgid "Error! project start-date must be lower then project end-date." +msgstr "" + +#. module: project_issue +#: field:project.issue,date_open:0 +msgid "Opened" +msgstr "Åpnet" + +#. module: project_issue +#: field:project.issue.report,opening_date:0 +msgid "Date of Opening" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "March" +msgstr "Mars" + +#. module: project_issue +#: field:project.issue,progress:0 +msgid "Progress (%)" +msgstr "Fremskritt (%)" + +#. module: project_issue +#: field:project.issue,company_id:0 +#: view:project.issue.report:0 +#: field:project.issue.report,company_id:0 +msgid "Company" +msgstr "Firma" + +#. module: project_issue +#: field:project.issue,email_cc:0 +msgid "Watchers Emails" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Close Working hours" +msgstr "" + +#. module: project_issue +#: model:ir.model,name:project_issue.model_project_issue_version +msgid "project.issue.version" +msgstr "project.issue.version" + +#. module: project_issue +#: field:project.issue,day_open:0 +msgid "Days to Open" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:360 +#, python-format +msgid "" +"You cannot escalate this issue.\n" +"The relevant Project has not configured the Escalation Project!" +msgstr "" + +#. module: project_issue +#: constraint:project.project:0 +msgid "Error! You cannot assign escalation to the same project!" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Date Closed" +msgstr "Dato lukket" + +#. module: project_issue +#: view:project.issue.report:0 +#: field:project.issue.report,day:0 +msgid "Day" +msgstr "Dag" + +#. module: project_issue +#: view:project.issue:0 +msgid "Add Internal Note" +msgstr "Legg til internt notat" + +#. module: project_issue +#: field:project.issue,task_id:0 +#: view:project.issue.report:0 +#: field:project.issue.report,task_id:0 +msgid "Task" +msgstr "Oppgave" + +#. module: project_issue +#: view:board.board:0 +msgid "Issues By Stage" +msgstr "" + +#. module: project_issue +#: field:project.issue,partner_mobile:0 +msgid "Mobile" +msgstr "Mobil" + +#. module: project_issue +#: field:project.issue,message_ids:0 +msgid "Messages" +msgstr "Meldinger" + +#. module: project_issue +#: model:ir.model,name:project_issue.model_project_project +#: view:project.issue:0 +#: field:project.issue,project_id:0 +#: view:project.issue.report:0 +#: field:project.issue.report,project_id:0 +msgid "Project" +msgstr "Prosjekt" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_view_my_open_project_issue_tree +msgid "My Open Project issues" +msgstr "Mine åpne prosjektoppgaver" + +#. module: project_issue +#: selection:project.issue,state:0 +#: selection:project.issue.report,state:0 +msgid "Cancelled" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:360 +#, python-format +msgid "Warning !" +msgstr "Advarsel !" + +#. module: project_issue +#: field:project.issue.report,date_closed:0 +msgid "Date of Closing" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Issue Tracker Search" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,working_hours_open:0 +msgid "Avg. Working Hours to Open" +msgstr "" + +#. module: project_issue +#: field:project.issue,date_action_next:0 +msgid "Next Action" +msgstr "" + +#. module: project_issue +#: help:project.project,project_escalation_id:0 +msgid "" +"If any issue is escalated from the current Project, it will be listed under " +"the project selected here." +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Extra Info" +msgstr "Ekstra informasjon" + +#. module: project_issue +#: model:ir.actions.act_window,help:project_issue.action_project_issue_report +msgid "" +"This report on the project issues allows you to analyse the quality of your " +"support or after-sales services. You can track the issues per age. You can " +"analyse the time required to open or close an issue, the number of email to " +"exchange and the time spent on average by issues." +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: field:project.issue,partner_id:0 +#: view:project.issue.report:0 +#: field:project.issue.report,partner_id:0 +msgid "Partner" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:473 +#, python-format +msgid " (copy)" +msgstr " (kopi)" + +#. module: project_issue +#: view:project.issue:0 +msgid "Previous" +msgstr "Forrige" + +#. module: project_issue +#: view:project.issue:0 +msgid "Statistics" +msgstr "Statistikk" + +#. module: project_issue +#: view:project.issue:0 +msgid "Convert To Task" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_project_issue_report +#: model:ir.ui.menu,name:project_issue.menu_project_issue_report_tree +#: view:project.issue.report:0 +msgid "Issues Analysis" +msgstr "" + +#. module: project_issue +#: field:project.issue.version,name:0 +msgid "Version Number" +msgstr "Versjonsnummer" + +#. module: project_issue +#: view:project.issue:0 +msgid "Next" +msgstr "Neste" + +#. module: project_issue +#: view:project.issue:0 +#: field:project.issue,priority:0 +#: view:project.issue.report:0 +#: field:project.issue.report,priority:0 +msgid "Priority" +msgstr "Prioritet" + +#. module: project_issue +#: view:project.issue:0 +msgid "Send New Email" +msgstr "Send ny e-post" + +#. module: project_issue +#: view:project.issue:0 +#: field:project.issue,version_id:0 +#: view:project.issue.report:0 +#: field:project.issue.report,version_id:0 +msgid "Version" +msgstr "Versjon" + +#. module: project_issue +#: model:ir.module.module,shortdesc:project_issue.module_meta_information +msgid "Issue Management in Project Management" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "Pending Issues" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Open Working Hours" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.project_issue_categ_action +msgid "Issue Categories" +msgstr "" + +#. module: project_issue +#: field:project.issue,email_from:0 +msgid "Email" +msgstr "E-post" + +#. module: project_issue +#: field:project.issue,canal_id:0 +#: field:project.issue.report,canal_id:0 +msgid "Channel" +msgstr "Kanal" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Lowest" +msgstr "Laveste" + +#. module: project_issue +#: field:project.issue,create_date:0 +#: field:project.issue.report,creation_date:0 +msgid "Creation Date" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.project_issue_version_action +#: model:ir.ui.menu,name:project_issue.menu_project_issue_version_act +msgid "Versions" +msgstr "Versjoner" + +#. module: project_issue +#: field:project.issue,partner_phone:0 +msgid "Phone" +msgstr "Telefon" + +#. module: project_issue +#: view:project.issue:0 +msgid "Reset to Draft" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Today" +msgstr "I dag" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.open_board_project_issue +#: model:ir.ui.menu,name:project_issue.menu_deshboard_project_issue +msgid "Project Issue Dashboard" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: view:project.issue.report:0 +msgid "Done" +msgstr "Fullført" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "July" +msgstr "Juli" + +#. module: project_issue +#: model:ir.ui.menu,name:project_issue.menu_project_issue_category_act +msgid "Categories" +msgstr "Kategorier" + +#. module: project_issue +#: view:project.issue:0 +#: view:project.issue.report:0 +#: field:project.issue.report,type_id:0 +msgid "Stage" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "History Information" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_view_current_project_issue_tree +#: model:ir.actions.act_window,name:project_issue.action_view_pending_project_issue_tree +msgid "Project issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Communication & History" +msgstr "Kommunikasjon & Historikk" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "My Open Project Issue" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_view_my_project_issue_tree +msgid "My Project Issues" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Contact" +msgstr "Kontakt" + +#. module: project_issue +#: view:board.board:0 +msgid "My Board" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "My Issues" +msgstr "" + +#. module: project_issue +#: help:project.issue,canal_id:0 +msgid "" +"The channels represent the different communication modes available with the " +"customer. With each commercial opportunity, you can indicate the canall " +"which is this opportunity source." +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,help:project_issue.project_issue_version_action +msgid "" +"You can use the issues tracker in OpenERP to handle bugs in the software " +"development project, to handle claims in after-sales services, etc. Define " +"here the different versions of your products on which you can work on issues." +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:283 +#, python-format +msgid "Tasks" +msgstr "Oppgaver" + +#. module: project_issue +#: field:project.issue.report,nbr:0 +msgid "# of Issues" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "September" +msgstr "September" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "December" +msgstr "Desember" + +#. module: project_issue +#: view:project.issue:0 +msgid "Issue Tracker Tree" +msgstr "" + +#. module: project_issue +#: help:project.issue,assigned_to:0 +msgid "This is the current user to whom the related task have been assigned" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: view:project.issue.report:0 +#: field:project.issue.report,month:0 +msgid "Month" +msgstr "Måned" + +#. module: project_issue +#: model:ir.model,name:project_issue.model_project_issue_report +msgid "project.issue.report" +msgstr "project.issue.report" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:362 +#: view:project.issue:0 +#, python-format +msgid "Escalate" +msgstr "Eskaler" + +#. module: project_issue +#: model:crm.case.categ,name:project_issue.feature_request_categ +msgid "Feature Requests" +msgstr "" + +#. module: project_issue +#: field:project.issue,write_date:0 +msgid "Update Date" +msgstr "" + +#. module: project_issue +#: model:ir.module.module,description:project_issue.module_meta_information +msgid "" +"\n" +" This module provide Issues/Bugs Management in Project\n" +" " +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: field:project.issue,categ_id:0 +#: view:project.issue.report:0 +#: field:project.issue.report,categ_id:0 +msgid "Category" +msgstr "Kategori" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "#Number of Project Issues" +msgstr "" + +#. module: project_issue +#: help:project.issue,email_cc:0 +msgid "" +"These email addresses will be added to the CC field of all inbound and " +"outbound emails for this record before being sent. Separate multiple email " +"addresses with a comma" +msgstr "" + +#. module: project_issue +#: selection:project.issue,state:0 +#: selection:project.issue.report,state:0 +msgid "Draft" +msgstr "Utkast" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Low" +msgstr "Lav" + +#. module: project_issue +#: field:project.issue,date_closed:0 +#: selection:project.issue,state:0 +#: selection:project.issue.report,state:0 +msgid "Closed" +msgstr "Lukket" + +#. module: project_issue +#: field:project.issue.report,delay_close:0 +msgid "Avg. Delay to Close" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: selection:project.issue,state:0 +#: view:project.issue.report:0 +#: selection:project.issue.report,state:0 +msgid "Pending" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Status" +msgstr "Status" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "#Project Issues" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "Current Issues" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "August" +msgstr "August" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Normal" +msgstr "Normal" + +#. module: project_issue +#: view:project.issue:0 +msgid "Global CC" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: selection:project.issue,state:0 +msgid "To Do" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "June" +msgstr "Juni" + +#. module: project_issue +#: field:project.issue,day_close:0 +msgid "Days to Close" +msgstr "" + +#. module: project_issue +#: field:project.issue,active:0 +#: field:project.issue.version,active:0 +msgid "Active" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "November" +msgstr "November" + +#. module: project_issue +#: view:project.issue:0 +#: view:project.issue.report:0 +msgid "Extended Filters..." +msgstr "Utvidede filter..." + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Search" +msgstr "Søk" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "October" +msgstr "Oktober" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "January" +msgstr "Januar" + +#. module: project_issue +#: view:project.issue:0 +msgid "Feature Tracker Tree" +msgstr "" + +#. module: project_issue +#: model:crm.case.categ,name:project_issue.bug_categ +msgid "Bugs" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "Issues By State" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: field:project.issue,date:0 +msgid "Date" +msgstr "Dato" + +#. module: project_issue +#: field:project.issue,partner_address_id:0 +msgid "Partner Contact" +msgstr "" + +#. module: project_issue +#: field:project.issue,type_id:0 +msgid "Resolution" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "History" +msgstr "" + +#. module: project_issue +#: field:project.issue,assigned_to:0 +#: view:project.issue.report:0 +#: field:project.issue.report,assigned_to:0 +msgid "Assigned to" +msgstr "Tildelt til" + +#. module: project_issue +#: field:project.project,reply_to:0 +msgid "Reply-To Email Address" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "Highest" +msgstr "Høyeste" + +#. module: project_issue +#: view:project.issue:0 +msgid "Attachments" +msgstr "Vedlegg" + +#. module: project_issue +#: view:project.issue:0 +msgid "Issue Tracker Form" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: field:project.issue,state:0 +#: view:project.issue.report:0 +#: field:project.issue.report,state:0 +msgid "State" +msgstr "Status" + +#. module: project_issue +#: view:project.issue:0 +msgid "General" +msgstr "Generelt" + +#. module: project_issue +#: view:project.issue.version:0 +msgid "Issue Version" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Communication" +msgstr "Kommunikasjon" + +#. module: project_issue +#: view:project.issue:0 +msgid "Cancel" +msgstr "Avbryt" + +#. module: project_issue +#: view:project.issue:0 +msgid "Close" +msgstr "Lukk" + +#. module: project_issue +#: view:project.issue:0 +#: selection:project.issue.report,state:0 +msgid "Open" +msgstr "Åpen" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.act_project_project_2_project_issue_all +#: model:ir.actions.act_window,name:project_issue.project_issue_categ_act0 +#: model:ir.ui.menu,name:project_issue.menu_project_issue_track +#: view:project.issue:0 +msgid "Issues" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_stage +#: model:ir.actions.act_window,name:project_issue.action_project_issue_graph_state +#: model:ir.model,name:project_issue.model_project_issue +#: model:ir.ui.menu,name:project_issue.menu_project_confi +#: view:project.issue.report:0 +msgid "Project Issue" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: field:project.issue,user_id:0 +#: view:project.issue.report:0 +#: field:project.issue.report,user_id:0 +msgid "Responsible" +msgstr "Ansvarlig" + +#. module: project_issue +#: help:project.issue,progress:0 +msgid "Computed as: Time Spent / Total Time." +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: view:project.issue.report:0 +msgid "Current" +msgstr "" + +#. module: project_issue +#: model:ir.actions.act_window,help:project_issue.project_issue_categ_act0 +msgid "" +"Issues such as system bugs, customer complaints, and material breakdowns are " +"collected here. You can define the stages assigned when solving the project " +"issue (analysis, development, done). With the mailgateway module, issues can " +"be integrated through an email address (example: support@mycompany.com)" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Details" +msgstr "Detaljer" + +#. module: project_issue +#: help:project.issue,email_from:0 +msgid "These people will receive email." +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Reply" +msgstr "Svar" + +#. module: project_issue +#: field:project.issue,name:0 +msgid "Issue" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Feature Tracker Search" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +#: field:project.issue,description:0 +msgid "Description" +msgstr "Beskrivelse" + +#. module: project_issue +#: field:project.issue,section_id:0 +msgid "Sales Team" +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "May" +msgstr "Mai" + +#. module: project_issue +#: model:ir.actions.act_window,name:project_issue.action_project_issue_report +#: model:ir.ui.menu,name:project_issue.menu_project_issue_report_tree +msgid "Issue Analysis" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Sale Team " +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +#: field:project.issue.report,email:0 +msgid "# Emails" +msgstr "" + +#. module: project_issue +#: field:project.issue,partner_name:0 +msgid "Employee's Name" +msgstr "" + +#. module: project_issue +#: help:project.issue,state:0 +msgid "" +"The state is set to 'Draft', when a case is created. " +" \n" +"If the case is in progress the state is set to 'Open'. " +" \n" +"When the case is over, the state is set to 'Done'. " +" \n" +"If the case needs to be reviewed then the state is set to 'Pending'." +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "February" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:61 +#, python-format +msgid "Issue '%s' has been opened." +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "Feature description" +msgstr "" + +#. module: project_issue +#: field:project.project,project_escalation_id:0 +msgid "Project Escalation" +msgstr "" + +#. module: project_issue +#: help:project.issue,section_id:0 +msgid "" +"Sales team to which Case belongs to. Define " +"Responsible user and Email account for mail gateway." +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +msgid "Month-1" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:76 +#, python-format +msgid "Issue '%s' has been closed." +msgstr "" + +#. module: project_issue +#: selection:project.issue.report,month:0 +msgid "April" +msgstr "" + +#. module: project_issue +#: view:project.issue:0 +msgid "References" +msgstr "" + +#. module: project_issue +#: field:project.issue,working_hours_close:0 +msgid "Working Hours to Close the Issue" +msgstr "" + +#. module: project_issue +#: field:project.issue,id:0 +msgid "ID" +msgstr "" + +#. module: project_issue +#: code:addons/project_issue/project_issue.py:377 +#, python-format +msgid "No Title" +msgstr "" + +#. module: project_issue +#: help:project.issue.report,delay_close:0 +#: help:project.issue.report,delay_open:0 +msgid "Number of Days to close the project issue" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +#: field:project.issue.report,section_id:0 +msgid "Sale Team" +msgstr "" + +#. module: project_issue +#: field:project.issue.report,working_hours_close:0 +msgid "Avg. Working Hours to Close" +msgstr "" + +#. module: project_issue +#: selection:project.issue,priority:0 +#: selection:project.issue.report,priority:0 +msgid "High" +msgstr "" + +#. module: project_issue +#: field:project.issue,date_deadline:0 +msgid "Deadline" +msgstr "" + +#. module: project_issue +#: field:project.issue,date_action_last:0 +msgid "Last Action" +msgstr "" + +#. module: project_issue +#: view:project.issue.report:0 +#: field:project.issue.report,name:0 +msgid "Year" +msgstr "" + +#. module: project_issue +#: field:project.issue,duration:0 +msgid "Duration" +msgstr "" + +#. module: project_issue +#: view:board.board:0 +msgid "My Open Issues by Creation Date" +msgstr "" + +#~ msgid "Maintenance" +#~ msgstr "Velikehold" diff --git a/addons/project_messages/i18n/fi.po b/addons/project_messages/i18n/fi.po new file mode 100644 index 00000000000..b527eee221a --- /dev/null +++ b/addons/project_messages/i18n/fi.po @@ -0,0 +1,138 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-09 05:56+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: project_messages +#: field:project.messages,to_id:0 +msgid "To" +msgstr "Vastaanottaja" + +#. module: project_messages +#: model:ir.model,name:project_messages.model_project_messages +msgid "project.messages" +msgstr "" + +#. module: project_messages +#: field:project.messages,from_id:0 +msgid "From" +msgstr "Lähettäjä" + +#. module: project_messages +#: model:ir.actions.act_window,name:project_messages.messages_form +#: model:ir.ui.menu,name:project_messages.menu_messages_form +msgid "Communication Messages" +msgstr "" + +#. module: project_messages +#: view:project.messages:0 +msgid "Group By..." +msgstr "Ryhmittely.." + +#. module: project_messages +#: field:project.messages,create_date:0 +msgid "Creation Date" +msgstr "Luontipäivämäärä" + +#. module: project_messages +#: view:project.messages:0 +msgid "Today" +msgstr "Tänään" + +#. module: project_messages +#: help:project.messages,to_id:0 +msgid "Keep this empty to broadcast the message." +msgstr "Jätä tämä tyhjäksi niin viesti jaetaan kaikille" + +#. module: project_messages +#: model:ir.actions.act_window,name:project_messages.act_project_messages +#: model:ir.actions.act_window,name:project_messages.action_view_project_editable_messages_tree +#: view:project.messages:0 +#: view:project.project:0 +#: field:project.project,message_ids:0 +msgid "Messages" +msgstr "Viestit" + +#. module: project_messages +#: model:ir.model,name:project_messages.model_project_project +#: view:project.messages:0 +#: field:project.messages,project_id:0 +msgid "Project" +msgstr "Projekti" + +#. module: project_messages +#: model:ir.actions.act_window,help:project_messages.messages_form +msgid "" +"An in-project messaging system allows for an efficient and trackable " +"communication between project members. The messages are stored in the system " +"and can be used for post analysis." +msgstr "" +"Projektin sisäinen viestintäjärjestelmä mahdollistaa tehokkaan ja " +"seurattavan kommunikaation projektiryhmän jäsenten välillä. Viestit " +"tallennetaan järjestelmään ja niitä voidaan käyttää " +"jälkikäiteisarvioinneissa." + +#. module: project_messages +#: model:ir.module.module,description:project_messages.module_meta_information +msgid "" +"\n" +" This module provides the functionality to send messages within a " +"project.\n" +" A user can send messages individually to other user. He can even " +"broadcast\n" +" it to all the users.\n" +" " +msgstr "" + +#. module: project_messages +#: view:project.messages:0 +msgid "Message To" +msgstr "Viestin vastaanottaja" + +#. module: project_messages +#: constraint:project.project:0 +msgid "Error! You cannot assign escalation to the same project!" +msgstr "Virhe! Et voi määritellä eskalointia samalle projektille!" + +#. module: project_messages +#: view:project.messages:0 +#: field:project.messages,message:0 +#: view:project.project:0 +msgid "Message" +msgstr "Viesti" + +#. module: project_messages +#: view:project.messages:0 +msgid "Message From" +msgstr "Viestin lähettäjä" + +#. module: project_messages +#: model:ir.actions.act_window,name:project_messages.messages_form +#: model:ir.ui.menu,name:project_messages.menu_messages_form +#: view:project.messages:0 +msgid "Project Messages" +msgstr "Projektin viestit" + +#. module: project_messages +#: constraint:project.project:0 +msgid "Error! project start-date must be lower then project end-date." +msgstr "Virhe: projektin alkupäivä tulee olla aikaisempi kuin loppupäivä." + +#. module: project_messages +#: model:ir.module.module,shortdesc:project_messages.module_meta_information +msgid "In-Project Messaging System" +msgstr "Projektin sisäinen viestintäjärjestelmä" diff --git a/addons/project_planning/i18n/gl.po b/addons/project_planning/i18n/gl.po new file mode 100644 index 00000000000..a8cc0e0d3d3 --- /dev/null +++ b/addons/project_planning/i18n/gl.po @@ -0,0 +1,619 @@ +# Galician translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-08 15:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: project_planning +#: constraint:account.analytic.account:0 +msgid "" +"Error! The currency has to be the same as the currency of the selected " +"company" +msgstr "Erro! A divisa ten que ser a mesma cá da compañía seleccionada" + +#. module: project_planning +#: help:report_account_analytic.planning.account,tasks:0 +#: help:report_account_analytic.planning.user,tasks:0 +msgid "" +"This value is given by the sum of work remaining to do on the task for this " +"planning, expressed in days." +msgstr "" +"Este valor ven dado pola suma de traballo que queda por facer na tarefa " +"desta planificación, expresado en días." + +#. module: project_planning +#: model:ir.actions.act_window,name:project_planning.action_account_analytic_planning_stat_form +#: model:ir.ui.menu,name:project_planning.menu_board_planning +#: model:ir.ui.menu,name:project_planning.menu_report_account_analytic_planning_stat +msgid "Planning Statistics" +msgstr "Estatísticas de planificación" + +#. module: project_planning +#: model:ir.model,name:project_planning.model_report_account_analytic_planning_line +#: view:report_account_analytic.planning.line:0 +msgid "Planning Line" +msgstr "Liña de planificación" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Total Unallocated Time" +msgstr "Tempo non asignado total" + +#. module: project_planning +#: field:report_account_analytic.planning,name:0 +msgid "Planning Name" +msgstr "Nome da planificación" + +#. module: project_planning +#: constraint:project.task:0 +msgid "Error ! You cannot create recursive tasks." +msgstr "Erro! Non pode crear tarefas recorrentes." + +#. module: project_planning +#: view:board.board:0 +msgid "My Project's planning" +msgstr "As miñas planificacións de proxectos" + +#. module: project_planning +#: field:report_account_analytic.planning.account,timesheet:0 +#: report:report_account_analytic.planning.print:0 +#: field:report_account_analytic.planning.stat,sum_amount_real:0 +#: field:report_account_analytic.planning.user,timesheet:0 +msgid "Timesheet" +msgstr "Parte de tempos" + +#. module: project_planning +#: model:ir.module.module,shortdesc:project_planning.module_meta_information +msgid "Planning Management Module" +msgstr "Módulo para a xestión da planificación" + +#. module: project_planning +#: model:ir.actions.act_window,help:project_planning.action_account_analytic_planning_form +msgid "" +"With its global system to schedule all resources of a company (people and " +"material), OpenERP allows you to encode and then automatically compute tasks " +"and phases scheduling, track resource allocation and availability." +msgstr "" +"Co seu sistema global para planificar tódolos recursos dunha compañía " +"(persoas e materiais), OpenERP permítelle codificar e calcular " +"automaticamente a planificación das tarefas e fases, e controlar a " +"asignación e dispoñibilidade de recursos." + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "Total planned tasks" +msgstr "Total de tarefas planificadas" + +#. module: project_planning +#: field:report_account_analytic.planning.stat,account_id:0 +msgid "Account" +msgstr "Conta" + +#. module: project_planning +#: model:ir.model,name:project_planning.model_project_task +msgid "Task" +msgstr "Tarefa" + +#. module: project_planning +#: view:account.analytic.account:0 +#: view:report_account_analytic.planning:0 +#: view:report_account_analytic.planning.line:0 +msgid "Notes" +msgstr "Notas" + +#. module: project_planning +#: field:account.analytic.account,planning_ids:0 +#: model:ir.actions.act_window,name:project_planning.action_account_analytic_planning_form +#: model:ir.ui.menu,name:project_planning.menu_report_account_analytic_planning +msgid "Plannings" +msgstr "Planificacións" + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "Project" +msgstr "Proxecto" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Start Task" +msgstr "Iniciar tarefa" + +#. module: project_planning +#: selection:report_account_analytic.planning,state:0 +msgid "Cancelled" +msgstr "Anulado" + +#. module: project_planning +#: view:account.analytic.account:0 +#: view:report_account_analytic.planning:0 +#: view:report_account_analytic.planning.line:0 +msgid "Total Planned (in Days)" +msgstr "Planificación total (en días)" + +#. module: project_planning +#: constraint:report_account_analytic.planning:0 +msgid "" +"Invalid planning ! Planning dates can't overlap for the same responsible. " +msgstr "" +"Planificación non válida! As datas da planificación non se poden superpoñer " +"para o mesmo responsable. " + +#. module: project_planning +#: field:report_account_analytic.planning,planning_account:0 +msgid "Planning By Account" +msgstr "Planificación por conta" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Current Plannings" +msgstr "Planificacións actuais" + +#. module: project_planning +#: model:ir.model,name:project_planning.model_account_analytic_account +msgid "Analytic Account" +msgstr "Conta analítica" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Reset to Draft" +msgstr "Cambiar a modo Borrador" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Extra Info" +msgstr "Información adicional" + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "To :" +msgstr "A:" + +#. module: project_planning +#: help:report_account_analytic.planning.account,timesheet:0 +#: help:report_account_analytic.planning.user,timesheet:0 +msgid "" +"This value is given by the sum of all work encoded in the timesheet(s) " +"between the 'Date From' and 'Date To' of the planning." +msgstr "" +"Este valor ven dado pola suma de tódolos traballos codificados na(s) " +"folla(s) de servizos entre a 'Data desde' e a 'Data ata' da planificación." + +#. module: project_planning +#: constraint:account.analytic.account:0 +msgid "Error! You can not create recursive analytic accounts." +msgstr "Erro! Non pode crear contas analíticas recorrentes." + +#. module: project_planning +#: field:report_account_analytic.planning.account,plan_open:0 +#: field:report_account_analytic.planning.user,plan_open:0 +msgid "Time Allocation without Tasks" +msgstr "Tempo de asignación sen tarefas" + +#. module: project_planning +#: view:account.analytic.account:0 +#: view:report_account_analytic.planning:0 +msgid "Planning Lines" +msgstr "Liñas planificadas" + +#. module: project_planning +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "Erro! Non pode crear compañías recorrentes." + +#. module: project_planning +#: field:report_account_analytic.planning.account,account_id:0 +#: field:report_account_analytic.planning.line,account_id:0 +msgid "Analytic account" +msgstr "Conta analítica" + +#. module: project_planning +#: help:report_account_analytic.planning.account,plan_open:0 +msgid "" +"This value is given by the sum of time allocation with the checkbox " +"'Assigned in Taks' set to FALSE, expressed in days." +msgstr "" +"Este valor ven dado pola suma da asignación de tempo coa opción 'Asignado en " +"tarefas' desmarcada, expresado en días." + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Miscelleanous" +msgstr "Varios" + +#. module: project_planning +#: help:res.company,planning_time_mode_id:0 +msgid "This will set the unit of measure used in plannings." +msgstr "Isto establecerá a unidade de medida utilizada nas planificacións." + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "HR Planning" +msgstr "Planificación RRHH" + +#. module: project_planning +#: field:report_account_analytic.planning.account,tasks:0 +#: field:report_account_analytic.planning.user,tasks:0 +msgid "Remaining Tasks" +msgstr "Tarefas pendentes" + +#. module: project_planning +#: view:account.analytic.account:0 +#: model:ir.actions.report.xml,name:project_planning.report_planning +#: model:ir.model,name:project_planning.model_report_account_analytic_planning +#: model:ir.ui.menu,name:project_planning.next_id_85 +#: field:project.task,planning_line_id:0 +#: view:report_account_analytic.planning:0 +#: field:report_account_analytic.planning.account,planning_id:0 +#: field:report_account_analytic.planning.line,planning_id:0 +#: field:report_account_analytic.planning.stat,planning_id:0 +#: field:report_account_analytic.planning.user,planning_id:0 +msgid "Planning" +msgstr "Planificación" + +#. module: project_planning +#: field:report_account_analytic.planning,total_planned:0 +msgid "Total Planned" +msgstr "Total planificado" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Time Encoding" +msgstr "Codificación de tempo" + +#. module: project_planning +#: field:report_account_analytic.planning.user,free:0 +msgid "Unallocated Time" +msgstr "Tempo non asignado" + +#. module: project_planning +#: help:report_account_analytic.planning.user,plan_open:0 +msgid "" +"This value is given by the sum of time allocation without task(s) linked, " +"expressed in days." +msgstr "" +"Este valor ven dado pola suma da asignación de tempo sen tarefa(s) " +"vinculada(s), expresado en días." + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Delegate" +msgstr "Delegar" + +#. module: project_planning +#: help:report_account_analytic.planning.user,free:0 +msgid "" +"Computed as Business Days - (Time Allocation of Tasks + Time Allocation " +"without Tasks + Holiday Leaves)" +msgstr "" +"Calculado como días laborables - (Tempo de asignación das tarefas + Tempo de " +"asignación sen tarefas + Ausencias de vacacións)" + +#. module: project_planning +#: help:report_account_analytic.planning,business_days:0 +msgid "" +"Set here the number of working days within this planning for one person full " +"time" +msgstr "" +"Indique aquí o número de días de traballo dentro desta planificación para " +"unha persoa a tempo completo." + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "[" +msgstr "[" + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "From :" +msgstr "Desde:" + +#. module: project_planning +#: field:report_account_analytic.planning,planning_user_ids:0 +msgid "Planning By User" +msgstr "Planificación por usuario" + +#. module: project_planning +#: model:ir.actions.act_window,name:project_planning.act_task_of_lines +#: view:report_account_analytic.planning:0 +#: field:report_account_analytic.planning.stat,sum_amount_tasks:0 +msgid "Tasks" +msgstr "Tarefas" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Planning By Account (in Days)" +msgstr "Planificación por conta (en días)" + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "Time without tasks" +msgstr "Tempo sen tarefas" + +#. module: project_planning +#: field:report_account_analytic.planning,date_from:0 +msgid "Start Date" +msgstr "Data de comezo" + +#. module: project_planning +#: field:report_account_analytic.planning,total_free:0 +msgid "Total Free" +msgstr "Total libre" + +#. module: project_planning +#: help:report_account_analytic.planning.account,plan_tasks:0 +msgid "" +"This value is given by the sum of time allocation with the checkbox " +"'Assigned in Taks' set to TRUE expressed in days." +msgstr "" +"Este valor ven dado pola suma da asignación de tempo coa opción \"Asignado " +"en tarefas\" marcada expresado en días." + +#. module: project_planning +#: field:report_account_analytic.planning,stat_ids:0 +msgid "Planning analysis" +msgstr "Análise planificación" + +#. module: project_planning +#: field:report_account_analytic.planning.line,amount_unit:0 +msgid "Qty UoM" +msgstr "Ctde UdM" + +#. module: project_planning +#: field:report_account_analytic.planning.line,note:0 +msgid "Note" +msgstr "Nota" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +#: selection:report_account_analytic.planning,state:0 +msgid "Draft" +msgstr "Proxecto" + +#. module: project_planning +#: model:ir.model,name:project_planning.model_report_account_analytic_planning_account +#: view:report_account_analytic.planning:0 +msgid "Planning by Account" +msgstr "Planificación por conta" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Pending" +msgstr "Pendente" + +#. module: project_planning +#: field:report_account_analytic.planning.stat,sum_amount:0 +msgid "Planned Days" +msgstr "Días planificados" + +#. module: project_planning +#: field:report_account_analytic.planning,state:0 +msgid "Status" +msgstr "Estado" + +#. module: project_planning +#: help:report_account_analytic.planning.user,holiday:0 +msgid "" +"This value is given by the total of validated leaves into the 'Date From' " +"and 'Date To' of the planning." +msgstr "" +"Este valor ven dado polo total das ausencias validadas entre a 'Data desde' " +"e a 'Data ata' da planificación." + +#. module: project_planning +#: field:report_account_analytic.planning.line,user_id:0 +#: report:report_account_analytic.planning.print:0 +#: field:report_account_analytic.planning.stat,user_id:0 +#: field:report_account_analytic.planning.user,user_id:0 +msgid "User" +msgstr "Usuario" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Total Remaining Tasks" +msgstr "Total de tarefas pendentes" + +#. module: project_planning +#: model:ir.module.module,description:project_planning.module_meta_information +msgid "" +"\n" +"This module helps you to manage your plannings.\n" +"\n" +"This module is based on the analytic accounting and is totally integrated " +"with\n" +"* the timesheets encoding\n" +"* the holidays management\n" +"* the project management\n" +"\n" +"So that, each department manager can know if someone in his team has still " +"unallocated time for a given planning (taking in consideration the validated " +"leaves) or if he still needs to encode tasks.\n" +"\n" +"At the end of the month, the planning manager can also check if the encoded " +"timesheets are respecting the planned time on each analytic account.\n" +msgstr "" +"\n" +"Este módulo permítelle xestionar as súas planificacións. Este módulo basease " +"na contabilidade analítica e está totalmente integrado * coa codificación de " +"follas de servizos* coa xestión das vacacións/festas* coa xestión de " +"proxectos. Deste xeito, cada responsable de departamento pode saber se " +"alguén no seu equipo aínda ten tempo non asignado para unha certa " +"planificación (tendo en conta as vacacións validadas) ou se aínda o necesita " +"para codificar tarefas. A fin de mes, o responsable de planificación tamén " +"pode comprobar se as follas de servizos codificadas están a respectar o " +"tempo planificado en cada conta analítica.\n" + +#. module: project_planning +#: model:ir.model,name:project_planning.model_res_company +msgid "Companies" +msgstr "Compañías" + +#. module: project_planning +#: field:report_account_analytic.planning.line,amount_in_base_uom:0 +msgid "Quantity in base uom" +msgstr "Cantidade na UdM base" + +#. module: project_planning +#: field:report_account_analytic.planning.user,plan_tasks:0 +msgid "Time Planned on Tasks" +msgstr "Tempo planificado en tarefas" + +#. module: project_planning +#: field:report_account_analytic.planning.line,amount:0 +msgid "Quantity" +msgstr "Cantidade" + +#. module: project_planning +#: field:report_account_analytic.planning,code:0 +msgid "Code" +msgstr "Código" + +#. module: project_planning +#: view:account.analytic.account:0 +#: field:report_account_analytic.planning,line_ids:0 +msgid "Planning lines" +msgstr "Liñas de planificación" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +#: selection:report_account_analytic.planning,state:0 +msgid "Done" +msgstr "Feito" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Cancel" +msgstr "Anular" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Planning By User (in Days)" +msgstr "Planificación polo usuario (en días)" + +#. module: project_planning +#: view:report_account_analytic.planning.stat:0 +msgid "Planning statistics" +msgstr "Estatísticas de planificación" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +#: selection:report_account_analytic.planning,state:0 +msgid "Open" +msgstr "Abrir" + +#. module: project_planning +#: model:ir.model,name:project_planning.model_report_account_analytic_planning_user +#: view:report_account_analytic.planning:0 +msgid "Planning by User" +msgstr "Planificación polo usuario" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Information" +msgstr "Información" + +#. module: project_planning +#: field:report_account_analytic.planning,business_days:0 +msgid "Business Days" +msgstr "Días laborables" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Reactivate" +msgstr "Reactivar" + +#. module: project_planning +#: field:report_account_analytic.planning,user_id:0 +msgid "Responsible" +msgstr "Responsable" + +#. module: project_planning +#: model:ir.model,name:project_planning.model_report_account_analytic_planning_stat +msgid "Planning stat" +msgstr "Estat. planificación" + +#. module: project_planning +#: field:report_account_analytic.planning.account,plan_tasks:0 +msgid "Time Allocation of Tasks" +msgstr "Tempo de asignación de tarefas" + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "Summary by user" +msgstr "Resumo por usuario" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Total Time Allocation without Tasks" +msgstr "Tempo total de asignación sen tarefas" + +#. module: project_planning +#: field:report_account_analytic.planning.user,holiday:0 +msgid "Leaves" +msgstr "Permisos" + +#. module: project_planning +#: view:report_account_analytic.planning:0 +msgid "Total Time Allocation of Tasks" +msgstr "Tempo total de asignación de tarefas" + +#. module: project_planning +#: field:report_account_analytic.planning,date_to:0 +msgid "End Date" +msgstr "Data de remate" + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "Remaining tasks" +msgstr "Tarefas pendentes" + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "Summary by project" +msgstr "Resumo por proxecto" + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "Responsible :" +msgstr "Responsable:" + +#. module: project_planning +#: report:report_account_analytic.planning.print:0 +msgid "]" +msgstr "]" + +#. module: project_planning +#: field:res.company,planning_time_mode_id:0 +msgid "Planning Time Unit" +msgstr "Unidade de tempo de planificación" + +#. module: project_planning +#: field:report_account_analytic.planning.line,task_ids:0 +msgid "Planning Tasks" +msgstr "Planificación de tarefas" + +#. module: project_planning +#: field:report_account_analytic.planning.stat,manager_id:0 +msgid "Manager" +msgstr "Xestor" + +#. module: project_planning +#: help:report_account_analytic.planning.user,plan_tasks:0 +msgid "" +"This value is given by the sum of time allocation with task(s) linked, " +"expressed in days." +msgstr "" +"Este valor ven dado pola suma da asignación de tempo coa(s) tarefa(s) " +"vinculada(s), expresado en días." diff --git a/addons/project_retro_planning/i18n/fi.po b/addons/project_retro_planning/i18n/fi.po new file mode 100644 index 00000000000..b62a8edb284 --- /dev/null +++ b/addons/project_retro_planning/i18n/fi.po @@ -0,0 +1,47 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-09 10:46+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: project_retro_planning +#: model:ir.model,name:project_retro_planning.model_project_project +msgid "Project" +msgstr "Projekti" + +#. module: project_retro_planning +#: model:ir.module.module,shortdesc:project_retro_planning.module_meta_information +msgid "Project Retro planning" +msgstr "Projektien 'retro' suunnittelu" + +#. module: project_retro_planning +#: model:ir.module.module,description:project_retro_planning.module_meta_information +msgid "" +"\n" +" - If end date of project is changed\n" +" then the deadline date and start date for all the tasks will " +"change accordingly " +msgstr "" + +#. module: project_retro_planning +#: constraint:project.project:0 +msgid "Error! project start-date must be lower then project end-date." +msgstr "Virhe: projektin alkupäivä tulee olla aikaisempi kuin loppupäivä." + +#. module: project_retro_planning +#: constraint:project.project:0 +msgid "Error! You cannot assign escalation to the same project!" +msgstr "Virhe! Et voi asettaa eskalointia samalle projektille!" diff --git a/addons/purchase_analytic_plans/i18n/fi.po b/addons/purchase_analytic_plans/i18n/fi.po new file mode 100644 index 00000000000..9e99d25b5cc --- /dev/null +++ b/addons/purchase_analytic_plans/i18n/fi.po @@ -0,0 +1,54 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-03 16:58+0000\n" +"PO-Revision-Date: 2011-06-09 05:54+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:36+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: purchase_analytic_plans +#: model:ir.model,name:purchase_analytic_plans.model_purchase_order_line +msgid "Purchase Order Line" +msgstr "Ostotilauksen rivi" + +#. module: purchase_analytic_plans +#: sql_constraint:purchase.order:0 +msgid "Order Reference must be unique !" +msgstr "Tilauksen viite tulee olla yksilöllinen!" + +#. module: purchase_analytic_plans +#: field:purchase.order.line,analytics_id:0 +msgid "Analytic Distribution" +msgstr "Analyyttinen jakelu" + +#. module: purchase_analytic_plans +#: model:ir.model,name:purchase_analytic_plans.model_purchase_order +msgid "Purchase Order" +msgstr "Ostotilaus" + +#. module: purchase_analytic_plans +#: model:ir.module.module,shortdesc:purchase_analytic_plans.module_meta_information +msgid "Purchase Analytic Distribution Management" +msgstr "Analyyttisen hankinnan jakelun hallinta" + +#. module: purchase_analytic_plans +#: model:ir.module.module,description:purchase_analytic_plans.module_meta_information +msgid "" +"\n" +" The base module to manage analytic distribution and purchase orders.\n" +" " +msgstr "" +"\n" +" Perusmoduuli analyyttisen jakelun ja ostotilausten hallintaan\n" +" " diff --git a/addons/purchase_analytic_plans/i18n/tr.po b/addons/purchase_analytic_plans/i18n/tr.po index 3d970102c4a..c7b86928048 100644 --- a/addons/purchase_analytic_plans/i18n/tr.po +++ b/addons/purchase_analytic_plans/i18n/tr.po @@ -7,39 +7,39 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-03 16:58+0000\n" -"PO-Revision-Date: 2010-08-03 08:11+0000\n" -"Last-Translator: SerdarGULER \n" +"PO-Revision-Date: 2011-06-09 18:23+0000\n" +"Last-Translator: Ayhan KIZILTAN \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: 2011-04-29 04:45+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-10 04:36+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: purchase_analytic_plans #: model:ir.model,name:purchase_analytic_plans.model_purchase_order_line msgid "Purchase Order Line" -msgstr "" +msgstr "Satınalma Sipariş Kalemi" #. module: purchase_analytic_plans #: sql_constraint:purchase.order:0 msgid "Order Reference must be unique !" -msgstr "" +msgstr "Sipariş Referansı eşsiz olmalı !" #. module: purchase_analytic_plans #: field:purchase.order.line,analytics_id:0 msgid "Analytic Distribution" -msgstr "Analitic Dağılım" +msgstr "Analitik Dağılım" #. module: purchase_analytic_plans #: model:ir.model,name:purchase_analytic_plans.model_purchase_order msgid "Purchase Order" -msgstr "" +msgstr "Satınalma Siparişi" #. module: purchase_analytic_plans #: model:ir.module.module,shortdesc:purchase_analytic_plans.module_meta_information msgid "Purchase Analytic Distribution Management" -msgstr "Analitic Dağılım Yönetimini Satın Al" +msgstr "Satınalma Analitik Dağılımı Yönetimi" #. module: purchase_analytic_plans #: model:ir.module.module,description:purchase_analytic_plans.module_meta_information @@ -48,6 +48,9 @@ msgid "" " The base module to manage analytic distribution and purchase orders.\n" " " msgstr "" +"\n" +" Analitik dağılım ve satınalma siparişlerini yönetmek için temel modül.\n" +" " #~ msgid "Invalid XML for View Architecture!" #~ msgstr "Görüntüleme mimarisi için Geçersiz XML" diff --git a/addons/purchase_double_validation/i18n/tr.po b/addons/purchase_double_validation/i18n/tr.po new file mode 100644 index 00000000000..7b6e2f860c0 --- /dev/null +++ b/addons/purchase_double_validation/i18n/tr.po @@ -0,0 +1,88 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-09 18:32+0000\n" +"Last-Translator: Ayhan KIZILTAN \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: purchase_double_validation +#: view:purchase.double.validation.installer:0 +msgid "Purchase Application Configuration" +msgstr "Satınalma Uygulaması Yapılandırması" + +#. module: purchase_double_validation +#: field:purchase.double.validation.installer,progress:0 +msgid "Configuration Progress" +msgstr "Yapılandırma Gelişimi" + +#. module: purchase_double_validation +#: view:purchase.double.validation.installer:0 +msgid "Define minimum amount after which puchase is needed to be validated." +msgstr "Onaylanması gereken en az satınalma miktarını tanımla." + +#. module: purchase_double_validation +#: view:purchase.double.validation.installer:0 +msgid "title" +msgstr "unvan" + +#. module: purchase_double_validation +#: model:ir.module.module,shortdesc:purchase_double_validation.module_meta_information +msgid "purchase_double_validation" +msgstr "satınalma_çifte_onaylama" + +#. module: purchase_double_validation +#: field:purchase.double.validation.installer,config_logo:0 +msgid "Image" +msgstr "Resim" + +#. module: purchase_double_validation +#: model:ir.module.module,description:purchase_double_validation.module_meta_information +msgid "" +"\n" +"\tThis module modifies the purchase workflow in order to validate purchases " +"that exceeds minimum amount set by configuration wizard\n" +" " +msgstr "" +"\n" +"\t[sekme]Bu modül, yapılandırma sihirbazınca ayarlanan enaz miktarın " +"aşıldığı satınalmanın onaylanması için satınalma işakışının değiştirilmesini " +"sağlar\n" +" " + +#. module: purchase_double_validation +#: model:ir.actions.act_window,name:purchase_double_validation.action_config_purchase_limit_amount +#: view:purchase.double.validation.installer:0 +msgid "Configure Limit Amount for Purchase" +msgstr "Satınalmalar için Sınır Miktarlarını Yapılandır" + +#. module: purchase_double_validation +#: view:purchase.double.validation.installer:0 +msgid "res_config_contents" +msgstr "res_config_contents" + +#. module: purchase_double_validation +#: help:purchase.double.validation.installer,limit_amount:0 +msgid "Maximum amount after which validation of purchase is required." +msgstr "Onaylanan satınalma için gerekli ençok miktar." + +#. module: purchase_double_validation +#: model:ir.model,name:purchase_double_validation.model_purchase_double_validation_installer +msgid "purchase.double.validation.installer" +msgstr "satınalma.çifte.onaylama.kurucu" + +#. module: purchase_double_validation +#: field:purchase.double.validation.installer,limit_amount:0 +msgid "Maximum Purchase Amount" +msgstr "Ençok Satınalma Miktarı" diff --git a/addons/purchase_requisition/i18n/tr.po b/addons/purchase_requisition/i18n/tr.po new file mode 100644 index 00000000000..4317b09d26a --- /dev/null +++ b/addons/purchase_requisition/i18n/tr.po @@ -0,0 +1,436 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:15+0000\n" +"PO-Revision-Date: 2011-06-09 18:58+0000\n" +"Last-Translator: Ayhan KIZILTAN \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +#: selection:purchase.requisition,state:0 +msgid "In Progress" +msgstr "Sürüyor" + +#. module: purchase_requisition +#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:44 +#, python-format +msgid "No Product in Tender" +msgstr "İhalede Ürün yok" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Confirm" +msgstr "Onayla" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +#: field:purchase.requisition,user_id:0 +msgid "Responsible" +msgstr "Sorumlu" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Group By..." +msgstr "Gruplandır..." + +#. module: purchase_requisition +#: view:purchase.requisition:0 +#: field:purchase.requisition,state:0 +msgid "State" +msgstr "Durum" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +#: selection:purchase.requisition,state:0 +msgid "Draft" +msgstr "Taslak" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Supplier" +msgstr "Tedarikçi" + +#. module: purchase_requisition +#: field:purchase.requisition,exclusive:0 +msgid "Requisition Type" +msgstr "İstek Türü" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Product Detail" +msgstr "Ürün Ayrıntısı" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +#: field:purchase.requisition,date_start:0 +msgid "Requisition Date" +msgstr "İstek Tarihi" + +#. module: purchase_requisition +#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition_partner +#: model:ir.actions.report.xml,name:purchase_requisition.report_purchase_requisition +#: model:ir.model,name:purchase_requisition.model_purchase_requisition +#: field:product.product,purchase_requisition:0 +#: field:purchase.order,requisition_id:0 +#: view:purchase.requisition:0 +#: field:purchase.requisition.line,requisition_id:0 +#: view:purchase.requisition.partner:0 +msgid "Purchase Requisition" +msgstr "Satınalma İsteği" + +#. module: purchase_requisition +#: model:ir.model,name:purchase_requisition.model_purchase_requisition_line +msgid "Purchase Requisition Line" +msgstr "Satınalma İsteği Kalemi" + +#. module: purchase_requisition +#: model:ir.model,name:purchase_requisition.model_product_product +#: field:purchase.requisition.line,product_id:0 +msgid "Product" +msgstr "Ürün" + +#. module: purchase_requisition +#: sql_constraint:purchase.order:0 +msgid "Order Reference must be unique !" +msgstr "Sipariş Referansı eşsiz olmalı !" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +#: field:purchase.requisition,description:0 +msgid "Description" +msgstr "Açıklama" + +#. module: purchase_requisition +#: help:product.product,purchase_requisition:0 +msgid "" +"Check this box so that requisitions generates purchase requisitions instead " +"of directly requests for quotations." +msgstr "" +"İsteklerin doğrudan istekler ve tekliflerden oluşması yerine isteklerin " +"satınalma istekleri oluşturması için burayı işaretleyin." + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Type" +msgstr "Tür" + +#. module: purchase_requisition +#: field:purchase.requisition,company_id:0 +#: field:purchase.requisition.line,company_id:0 +msgid "Company" +msgstr "Firma" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Request a Quotation" +msgstr "Teklif İste" + +#. module: purchase_requisition +#: selection:purchase.requisition,exclusive:0 +msgid "Multiple Requisitions" +msgstr "Çoklu İstek" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Approved by Supplier" +msgstr "Tedarikçi tarafından onaylandı" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Reset to Draft" +msgstr "Taslağa Geri Dönüştür" + +#. module: purchase_requisition +#: model:ir.module.module,description:purchase_requisition.module_meta_information +msgid "" +"\n" +" This module allows you to manage your Purchase Requisition.\n" +" When a purchase order is created, you now have the opportunity to save " +"the related requisition.\n" +" This new object will regroup and will allow you to easily keep track and " +"order all your purchase orders.\n" +msgstr "" +"\n" +" Bu modül Satınalma İsteğinizi yönetmenizi sağlar.\n" +" Bir satınalma siparişi oluşturulduğunda, ilişkili istekleri saklama " +"fırsatınız olur.\n" +" Bu yeni nesne tüm satınalma siparişlerinizi kolayca izlemenizi ve " +"sıralandırmanızı sağlar ve yeniden gruplandırır.\n" + +#. module: purchase_requisition +#: field:purchase.requisition.partner,partner_address_id:0 +msgid "Address" +msgstr "Adres" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Order Reference" +msgstr "Sipariş Referansı" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Start Date" +msgstr "Başlangıç Tarihi" + +#. module: purchase_requisition +#: model:ir.actions.act_window,help:purchase_requisition.action_purchase_requisition +msgid "" +"A purchase requisition is the step before a request for quotation. In a " +"purchase requisition (or purchase tender), you can record the products you " +"need to buy and trigger the creation of RfQs to suppliers. After the " +"negotiation, once you have reviewed all the supplier's offers, you can " +"validate some and cancel others." +msgstr "" +"Bir satınalma isteği, teklif isteğinden önce gelen adımdır. Bir satınalma " +"isteğinde (ya da satınalma ihalesinde), satınalmayı istediğiniz ürünleri " +"kaydedebilir ve tedarikçilere RfQs (Satınalma İstekleri) oluşturulmasını " +"tetikleyebilirsiniz." + +#. module: purchase_requisition +#: field:purchase.requisition.line,product_qty:0 +msgid "Quantity" +msgstr "Miktar" + +#. module: purchase_requisition +#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition +#: model:ir.ui.menu,name:purchase_requisition.menu_purchase_requisition_pro_mgt +msgid "Purchase Requisitions" +msgstr "Satınalma İstekleri" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "End Date" +msgstr "Bitiş Tarihi" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +#: field:purchase.requisition,name:0 +msgid "Requisition Reference" +msgstr "İstek Referansı" + +#. module: purchase_requisition +#: field:purchase.requisition,line_ids:0 +msgid "Products to Purchase" +msgstr "Satınalınacak Ürün" + +#. module: purchase_requisition +#: field:purchase.requisition,date_end:0 +msgid "Requisition Deadline" +msgstr "İstek Bitiş Tarihi" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Search Purchase Requisition" +msgstr "Satınalma İsteği Ara" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Notes" +msgstr "Notlar" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Date Ordered" +msgstr "Sipariş edilen Tarih" + +#. module: purchase_requisition +#: help:purchase.requisition,exclusive:0 +msgid "" +"Purchase Requisition (exclusive): On the confirmation of a purchase order, " +"it cancels the remaining purchase order.\n" +"Purchase Requisition(Multiple): It allows to have multiple purchase " +"orders.On confirmation of a purchase order it does not cancel the remaining " +"orders" +msgstr "" +"Satınalma İsteği (özel): Bir satınalma siparişin onaylanmasıyla kalan " +"siparişleri iptal eder.\n" +"Satınalma İsteği (çoklu): Çoklu satınalma siparişlerine izin verir. Bir " +"satınalma siparişin onaylanmasıyla kalan siparişleri iptal etmez." + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Cancel Purchase Order" +msgstr "Satınalma Siparişi İptali" + +#. module: purchase_requisition +#: model:ir.model,name:purchase_requisition.model_purchase_order +#: view:purchase.requisition:0 +msgid "Purchase Order" +msgstr "Satınalma Siparişi" + +#. module: purchase_requisition +#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:44 +#, python-format +msgid "Error!" +msgstr "Hata!" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +#: field:purchase.requisition.line,product_uom_id:0 +msgid "Product UoM" +msgstr "Ürün Ölçü Birimi" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Products" +msgstr "Ürünler" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Order Date" +msgstr "Sipariş Tarihi" + +#. module: purchase_requisition +#: selection:purchase.requisition,state:0 +msgid "Cancelled" +msgstr "Vazgeçildi" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "[" +msgstr "[" + +#. module: purchase_requisition +#: model:ir.model,name:purchase_requisition.model_purchase_requisition_partner +msgid "Purchase Requisition Partner" +msgstr "Satınalma İsteği Paydaşı" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "]" +msgstr "]" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Quotation Detail" +msgstr "Teklif Ayrıntısı" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Purchase for Requisitions" +msgstr "Satınalma için İstek" + +#. module: purchase_requisition +#: model:ir.actions.act_window,name:purchase_requisition.act_res_partner_2_purchase_order +msgid "Purchase orders" +msgstr "Satınlma Siparişleri" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +#: view:purchase.requisition:0 +#: field:purchase.requisition,origin:0 +msgid "Origin" +msgstr "Köken" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Reference" +msgstr "Referans" + +#. module: purchase_requisition +#: model:ir.model,name:purchase_requisition.model_procurement_order +msgid "Procurement" +msgstr "Tedarik" + +#. module: purchase_requisition +#: field:purchase.requisition,warehouse_id:0 +msgid "Warehouse" +msgstr "Depo" + +#. module: purchase_requisition +#: field:procurement.order,requisition_id:0 +msgid "Latest Requisition" +msgstr "Enson İstek" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Quotations" +msgstr "Teklifler" + +#. module: purchase_requisition +#: report:purchase.requisition:0 +msgid "Qty" +msgstr "Mik" + +#. module: purchase_requisition +#: selection:purchase.requisition,exclusive:0 +msgid "Purchase Requisition (exclusive)" +msgstr "Satınlma İsteği (özel)" + +#. module: purchase_requisition +#: view:purchase.requisition.partner:0 +msgid "Create Quotation" +msgstr "Teklif Oluşturma" + +#. module: purchase_requisition +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "Hata: Geçersiz ean kodu" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +#: selection:purchase.requisition,state:0 +msgid "Done" +msgstr "Bitti" + +#. module: purchase_requisition +#: view:purchase.requisition.partner:0 +msgid "_Cancel" +msgstr "_Vazgeç" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Confirm Purchase Order" +msgstr "Satınalma Siparişi Onayla" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Cancel" +msgstr "Vazgeç" + +#. module: purchase_requisition +#: field:purchase.requisition.partner,partner_id:0 +msgid "Partner" +msgstr "Paydaş" + +#. module: purchase_requisition +#: model:ir.module.module,shortdesc:purchase_requisition.module_meta_information +msgid "Purchase - Purchase Requisition" +msgstr "Satınalma - Satınalma İsteği" + +#. module: purchase_requisition +#: view:purchase.requisition:0 +msgid "Unassigned" +msgstr "Atanmamış" + +#. module: purchase_requisition +#: view:purchase.order:0 +msgid "Requisition" +msgstr "İstek" + +#. module: purchase_requisition +#: field:purchase.requisition,purchase_ids:0 +msgid "Purchase Orders" +msgstr "Satınalma Siparişleri" + +#. module: purchase_requisition +#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:90 +#, python-format +msgid "" +"You have already one %s purchase order for this partner, you must cancel " +"this purchase order to create a new quotation." +msgstr "" +"Bu paydaş için zaten bir %s siparişiniz var, yeni bir teklif oluşturmak için " +"bu siparişi iptal edin." diff --git a/addons/report_designer/i18n/tr.po b/addons/report_designer/i18n/tr.po index f5a4724b28a..6c9cbdf5925 100644 --- a/addons/report_designer/i18n/tr.po +++ b/addons/report_designer/i18n/tr.po @@ -8,20 +8,20 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2011-01-11 11:15+0000\n" -"PO-Revision-Date: 2011-05-30 05:49+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2011-06-09 19:02+0000\n" +"Last-Translator: Ayhan KIZILTAN \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-05-31 04:47+0000\n" -"X-Generator: Launchpad (build 12959)\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: report_designer #: model:ir.actions.act_window,name:report_designer.action_report_designer_installer #: view:report_designer.installer:0 msgid "Reporting Tools Configuration" -msgstr "Raporlama Araçları Ayarları" +msgstr "Raporlama Araçları Yapılandırması" #. module: report_designer #: field:report_designer.installer,base_report_creator:0 @@ -31,22 +31,22 @@ msgstr "Sorgu Oluşturucu" #. module: report_designer #: view:report_designer.installer:0 msgid "Configure" -msgstr "Ayarlar" +msgstr "Yapılandır" #. module: report_designer #: view:report_designer.installer:0 msgid "title" -msgstr "başlık" +msgstr "unvan" #. module: report_designer #: model:ir.model,name:report_designer.model_report_designer_installer msgid "report_designer.installer" -msgstr "Rapor_tasarımcısı.kurulum" +msgstr "rapor_tasarımcı.kurulum" #. module: report_designer #: field:report_designer.installer,config_logo:0 msgid "Image" -msgstr "Görüntü" +msgstr "Resim" #. module: report_designer #: field:report_designer.installer,base_report_designer:0 @@ -98,10 +98,10 @@ msgid "" "Installer for reporting tools selection\n" " " msgstr "" -"Seçilen raporlama aracı için yükleyici\n" +"Raporlama araçları seçimi için yükleyici\n" " " #. module: report_designer #: field:report_designer.installer,progress:0 msgid "Configuration Progress" -msgstr "Yapılandırma Gidişatı" +msgstr "Yapılandırma Gelişimi" diff --git a/addons/sale/i18n/tr.po b/addons/sale/i18n/tr.po index 03c3b458489..3f2a8de372c 100644 --- a/addons/sale/i18n/tr.po +++ b/addons/sale/i18n/tr.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev_rc3\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:16+0000\n" -"PO-Revision-Date: 2011-01-14 23:11+0000\n" -"Last-Translator: Oktay Altunergil \n" +"PO-Revision-Date: 2011-06-09 19:05+0000\n" +"Last-Translator: Ayhan KIZILTAN \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: 2011-04-29 05:16+0000\n" -"X-Generator: Launchpad (build 12758)\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" #. module: sale #: view:board.board:0 @@ -25,7 +25,7 @@ msgstr "Satış elemanına göre son 90 gündeki satışlar" #. module: sale #: help:sale.installer,delivery:0 msgid "Allows you to compute delivery costs on your quotations." -msgstr "Teklifinizdeki teslimat maliyetini hesaplamanızı sağlar." +msgstr "Teklifinizdeki teslimat maliyetlerini hesaplamanızı sağlar." #. module: sale #: help:sale.order,picking_policy:0 @@ -33,7 +33,7 @@ msgid "" "If you don't have enough stock available to deliver all at once, do you " "accept partial shipments or not?" msgstr "" -"Tek seferde teslimat için yeterli stok yoksa parçalı gönderim yapılmasını " +"Tek seferde teslimat için yeterli stok yoksa parçalı teslimat yapılmasını " "kabul eder misiniz ?" #. module: sale @@ -62,13 +62,13 @@ msgstr "Siparişi İptal Et" #. module: sale #: view:sale.config.picking_policy:0 msgid "Configure Sales Order Logistics" -msgstr "Satış siparişi lojistiğini yapılandır" +msgstr "Satış Siparişi Lojistiğini Yapılandır" #. module: sale #: code:addons/sale/sale.py:603 #, python-format msgid "The quotation '%s' has been converted to a sales order." -msgstr "'%s' teklifi satış siparişine çevrildi." +msgstr "'%s' Teklifi satış siparişine çevrildi." #. module: sale #: selection:sale.order,order_policy:0 @@ -347,7 +347,7 @@ msgstr "Yapılandır" #. module: sale #: constraint:stock.move:0 msgid "You try to assign a lot which is not from the same product" -msgstr "" +msgstr "Aynı üründen olmayan bir parti atamaya çalışıyorsunuz" #. module: sale #: code:addons/sale/sale.py:620 @@ -469,6 +469,8 @@ msgid "" "Select a product of type service which is called 'Advance Product'. You may " "have to create it and set it as a default value on this field." msgstr "" +"'Ön Ürün' olarak adlandırılmış servis türüne bir ürün seçin. Bir tane " +"oluştun ve bu alan için varsayılan olarak ayarlayın." #. module: sale #: report:sale.order:0 @@ -522,7 +524,7 @@ msgstr "Onaylanma Tarihi" #. module: sale #: field:sale.order.line,address_allotment_id:0 msgid "Allotment Partner" -msgstr "" +msgstr "Tahsisli Paydaş" #. module: sale #: sql_constraint:sale.order:0 @@ -1097,7 +1099,7 @@ msgstr "Sipariş Tarihi" #. module: sale #: model:process.node,note:sale.process_node_packinglist0 msgid "Document of the move to the output or to the customer." -msgstr "" +msgstr "Çıkışa ya da müşteriyeyapılan hareket belgesi." #. module: sale #: model:process.transition.action,name:sale.process_transition_action_validate0 @@ -1248,7 +1250,7 @@ msgstr "Kullanılan ölçü birimi" #. module: sale #: model:ir.model,name:sale.model_sale_order_line_make_invoice msgid "Sale OrderLine Make_invoice" -msgstr "" +msgstr "Satış SiparişSatırı Fatura_Kes" #. module: sale #: help:sale.config.picking_policy,step:0 @@ -1336,7 +1338,7 @@ msgstr "Bitti" #. module: sale #: model:ir.model,name:sale.model_sale_installer msgid "sale.installer" -msgstr "" +msgstr "satış.kurucu" #. module: sale #: model:process.node,name:sale.process_node_invoice0 @@ -1377,7 +1379,7 @@ msgstr "Paketleme Kuralı" #. module: sale #: model:process.node,note:sale.process_node_deliveryorder0 msgid "Document of the move to the customer." -msgstr "" +msgstr "Müşteriye işlenen hareket belgesi" #. module: sale #: help:sale.order,amount_untaxed:0 @@ -1706,7 +1708,7 @@ msgstr "Onayla" #. module: sale #: constraint:res.company:0 msgid "Error! You can not create recursive companies." -msgstr "" +msgstr "Hata! Yinelemeli şirketler oluşturamazsınız." #. module: sale #: view:board.board:0 @@ -1923,12 +1925,12 @@ msgstr "Direk Teslimat" #. module: sale #: field:sale.installer,sale_journal:0 msgid "Invoicing journals" -msgstr "" +msgstr "Faturalama Yevmiyeleri" #. module: sale #: field:sale.advance.payment.inv,product_id:0 msgid "Advance Product" -msgstr "" +msgstr "Gelişmiş Ürün" #. module: sale #: view:sale.report:0 @@ -1995,7 +1997,7 @@ msgstr "Ata" #. module: sale #: field:sale.report,date:0 msgid "Date Order" -msgstr "" +msgstr "Sipariş Tarihi" #. module: sale #: model:process.node,note:sale.process_node_order0 @@ -2048,7 +2050,7 @@ msgstr "Bu ürün için üretim planı yapmalısınız" #. module: sale #: field:sale.order.line,sequence:0 msgid "Layout Sequence" -msgstr "" +msgstr "Yerleşim Sırası" #. module: sale #: model:ir.actions.act_window,help:sale.action_shop_form @@ -2093,7 +2095,7 @@ msgstr "Müşteri" #. module: sale #: model:product.template,name:sale.advance_product_0_product_template msgid "Advance" -msgstr "" +msgstr "Gelişmiş" #. module: sale #: selection:sale.report,month:0 diff --git a/addons/sale_analytic_plans/i18n/fi.po b/addons/sale_analytic_plans/i18n/fi.po new file mode 100644 index 00000000000..7780b9fd7f4 --- /dev/null +++ b/addons/sale_analytic_plans/i18n/fi.po @@ -0,0 +1,44 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-03 16:58+0000\n" +"PO-Revision-Date: 2011-06-09 05:23+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: sale_analytic_plans +#: field:sale.order.line,analytics_id:0 +msgid "Analytic Distribution" +msgstr "Analyyttinen jakelu" + +#. module: sale_analytic_plans +#: model:ir.module.module,shortdesc:sale_analytic_plans.module_meta_information +msgid "Sales Analytic Distribution Management" +msgstr "Myynnin analyyttisen jakelun hallinta" + +#. module: sale_analytic_plans +#: model:ir.module.module,description:sale_analytic_plans.module_meta_information +msgid "" +"\n" +" The base module to manage analytic distribution and sales orders.\n" +" " +msgstr "" +"\n" +" Perusmoduuli jolla hallitaan analyyttistä jakelua ja myyntitilauksia\n" +" " + +#. module: sale_analytic_plans +#: model:ir.model,name:sale_analytic_plans.model_sale_order_line +msgid "Sales Order Line" +msgstr "Myyntitilausrivi" diff --git a/addons/sale_journal/i18n/fi.po b/addons/sale_journal/i18n/fi.po new file mode 100644 index 00000000000..e188449bf4f --- /dev/null +++ b/addons/sale_journal/i18n/fi.po @@ -0,0 +1,162 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:16+0000\n" +"PO-Revision-Date: 2011-06-09 05:37+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: sale_journal +#: field:sale_journal.invoice.type,note:0 +msgid "Note" +msgstr "Huomautus" + +#. module: sale_journal +#: help:res.partner,property_invoice_type:0 +msgid "The type of journal used for sales and picking." +msgstr "Myynnin ja keräilyn seurannan tyyppi" + +#. module: sale_journal +#: sql_constraint:sale.order:0 +msgid "Order Reference must be unique !" +msgstr "Tilauksen viite tulee olla yksilöllinen!" + +#. module: sale_journal +#: view:res.partner:0 +msgid "Invoicing" +msgstr "Laskutus" + +#. module: sale_journal +#: view:res.partner:0 +msgid "Sales & Purchases" +msgstr "Myynnit & Ostot" + +#. 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 "" +"Jos aktiivisen kentän arvoksi asetetaan False (epätosi), se sallii " +"laskutyypin piilottamisen ilman sen poistamista." + +#. module: sale_journal +#: view:sale_journal.invoice.type:0 +msgid "Notes" +msgstr "Huomautukset" + +#. module: sale_journal +#: field:res.partner,property_invoice_type:0 +msgid "Invoicing Method" +msgstr "Laskutustapa" + +#. module: sale_journal +#: model:ir.module.module,description:sale_journal.module_meta_information +msgid "" +"\n" +" The sales journal modules allows you to categorise your\n" +" sales and deliveries (picking lists) between different journals.\n" +" This module is very helpful for bigger companies that\n" +" works by departments.\n" +"\n" +" You can use journal for different purposes, some examples:\n" +" * isolate sales of different departments\n" +" * journals for deliveries by truck or by UPS\n" +"\n" +" Journals have a responsible and evolves between different status:\n" +" * draft, open, cancel, done.\n" +"\n" +" Batch operations can be processed on the different journals to\n" +" confirm all sales at once, to validate or invoice packing, ...\n" +"\n" +" It also supports batch invoicing methods that can be configured by\n" +" partners and sales orders, examples:\n" +" * daily invoicing,\n" +" * monthly invoicing, ...\n" +"\n" +" Some statistics by journals are provided.\n" +" " +msgstr "" + +#. module: sale_journal +#: selection:sale_journal.invoice.type,invoicing_method:0 +msgid "Non grouped" +msgstr "Ei ryhmitelty" + +#. module: sale_journal +#: selection:sale_journal.invoice.type,invoicing_method:0 +msgid "Grouped" +msgstr "Ryhmitelty" + +#. module: sale_journal +#: constraint:res.partner:0 +msgid "Error ! You can not create recursive associated members." +msgstr "Virhe! Rekursiivisesti rinnastettuja jäseniä ei voi luoda." + +#. 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 "" +"Laskutyyppejä käytetään yhteistyökumppaneihin, myyntitilauksiin ja " +"toimitusmääräimiin. Voit luoda erityyppisiä kokoomalaskuja laskujen " +"yhdistämiseksi asiakastarpeiden mukaisesti: päivittäinen, joka keskiviikko, " +"kuukausittain tms." + +#. module: sale_journal +#: field:sale_journal.invoice.type,invoicing_method:0 +msgid "Invoicing method" +msgstr "Laskutustapa" + +#. module: sale_journal +#: model:ir.model,name:sale_journal.model_sale_order +msgid "Sales Order" +msgstr "Myyntitilaus" + +#. module: sale_journal +#: field:sale.order,invoice_type_id:0 +#: view:sale_journal.invoice.type:0 +#: field:sale_journal.invoice.type,name:0 +#: field:stock.picking,invoice_type_id:0 +msgid "Invoice Type" +msgstr "Laskutyyppi" + +#. module: sale_journal +#: field:sale_journal.invoice.type,active:0 +msgid "Active" +msgstr "Aktiivinen" + +#. module: sale_journal +#: model:ir.model,name:sale_journal.model_res_partner +msgid "Partner" +msgstr "Kumppani" + +#. 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 "Laskutyypit" + +#. module: sale_journal +#: model:ir.model,name:sale_journal.model_stock_picking +msgid "Picking List" +msgstr "Keräilylista" + +#. module: sale_journal +#: model:ir.module.module,shortdesc:sale_journal.module_meta_information +msgid "Managing sales and deliveries by journal" +msgstr "Myyntien ja toimitusten hallinta yhteenvetoina" diff --git a/addons/sale_layout/i18n/fi.po b/addons/sale_layout/i18n/fi.po new file mode 100644 index 00000000000..abebab1528b --- /dev/null +++ b/addons/sale_layout/i18n/fi.po @@ -0,0 +1,292 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:16+0000\n" +"PO-Revision-Date: 2011-06-09 05:42+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Sub Total" +msgstr "Välisumma" + +#. module: sale_layout +#: model:ir.module.module,description:sale_layout.module_meta_information +msgid "" +"\n" +" This module provides features to improve the layout of the Sales Order.\n" +"\n" +" It gives you the possibility to\n" +" * order all the lines of a sales order\n" +" * add titles, comment lines, sub total lines\n" +" * draw horizontal lines and put page breaks\n" +"\n" +" " +msgstr "" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Title" +msgstr "Otsikko" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Disc. (%)" +msgstr "Ale. (%)" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Note" +msgstr "Huomautus" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Unit Price" +msgstr "Yksikköhinta" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Order N°" +msgstr "Tilaus no." + +#. module: sale_layout +#: field:sale.order,abstract_line_ids:0 +msgid "Order Lines" +msgstr "Tilausrivit" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Disc.(%)" +msgstr "Alennus (%)" + +#. module: sale_layout +#: field:sale.order.line,layout_type:0 +msgid "Layout Type" +msgstr "Asettelun tyyppi" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Seq." +msgstr "Sarja" + +#. module: sale_layout +#: view:sale.order:0 +msgid "UoM" +msgstr "Mittayksikkö" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Product" +msgstr "Tuote" + +#. module: sale_layout +#: sql_constraint:sale.order:0 +msgid "Order Reference must be unique !" +msgstr "Tilauksen viite tulee olla yksilöllinen!" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Description" +msgstr "Kuvaus" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Manual Description" +msgstr "Käsin syötetty kuvaus" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Our Salesman" +msgstr "Myyjämme" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Automatic Declaration" +msgstr "Automaattinen ilmoitus" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Invoice Lines" +msgstr "Laskurivit" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Quantity" +msgstr "Määrä" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Quotation N°" +msgstr "Tarjous no." + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "VAT" +msgstr "ALV" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Make Invoice" +msgstr "Luo lasku" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Properties" +msgstr "Ominaisuudet" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Invoice address :" +msgstr "Laskutusosoite:" + +#. module: sale_layout +#: model:ir.module.module,shortdesc:sale_layout.module_meta_information +msgid "Sale Order Layout" +msgstr "Myyntitilauksen asettelu" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Page Break" +msgstr "Sivunvaihto" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Notes" +msgstr "Huomautukset" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Date Ordered" +msgstr "Tilauspäivämäärä" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Shipping address :" +msgstr "Toimitusosoite:" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Taxes" +msgstr "Verot" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Net Total :" +msgstr "Yhteensä veroton" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Tel. :" +msgstr "Puh.:" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Total :" +msgstr "Yhteensä:" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Payment Terms" +msgstr "Maksuehdot" + +#. module: sale_layout +#: view:sale.order:0 +msgid "History" +msgstr "Historia" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Sale Order Lines" +msgstr "Myyntitilausrivit" + +#. module: sale_layout +#: selection:sale.order.line,layout_type:0 +msgid "Separator Line" +msgstr "Erotinrivi" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Your Reference" +msgstr "Viitteenne" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Quotation Date" +msgstr "Tarjouksen Päiväys" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "TVA :" +msgstr "ALV:" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Qty" +msgstr "Määrä" + +#. module: sale_layout +#: view:sale.order:0 +msgid "States" +msgstr "Tilat" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Sales order lines" +msgstr "Myyntitilauksen rivit" + +#. module: sale_layout +#: model:ir.actions.report.xml,name:sale_layout.sale_order_1 +msgid "Order with Layout" +msgstr "Tilaus asettelulla" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Extra Info" +msgstr "Lisätiedot" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Taxes :" +msgstr "Verot:" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Fax :" +msgstr "Faksi:" + +#. module: sale_layout +#: model:ir.model,name:sale_layout.model_sale_order +msgid "Sales Order" +msgstr "Myyntitilaus" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Order Line" +msgstr "Tilausrivi" + +#. module: sale_layout +#: report:sale.order.layout:0 +msgid "Price" +msgstr "Hinta" + +#. module: sale_layout +#: model:ir.model,name:sale_layout.model_sale_order_line +msgid "Sales Order Line" +msgstr "Myyntitilausrivi" + +#. module: sale_layout +#: view:sale.order:0 +msgid "Stock Moves" +msgstr "Varastosiirrot" diff --git a/addons/sale_margin/i18n/fi.po b/addons/sale_margin/i18n/fi.po new file mode 100644 index 00000000000..630903ae46b --- /dev/null +++ b/addons/sale_margin/i18n/fi.po @@ -0,0 +1,410 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:16+0000\n" +"PO-Revision-Date: 2011-06-09 05:46+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +msgid "Category" +msgstr "Kategoria" + +#. module: sale_margin +#: selection:report.account.invoice,type:0 +#: selection:report.account.invoice.category,type:0 +#: selection:report.account.invoice.partner,type:0 +#: selection:report.account.invoice.partner.product,type:0 +#: selection:report.account.invoice.product,type:0 +msgid "Customer Refund" +msgstr "Asiakashyvitys" + +#. module: sale_margin +#: selection:report.account.invoice,type:0 +#: selection:report.account.invoice.category,type:0 +#: selection:report.account.invoice.partner,type:0 +#: selection:report.account.invoice.partner.product,type:0 +#: selection:report.account.invoice.product,type:0 +msgid "Customer Invoice" +msgstr "Asiakaslasku" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "February" +msgstr "Helmikuu" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +msgid "Current" +msgstr "Nykyinen" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +msgid "Group By..." +msgstr "Ryhmittely.." + +#. module: sale_margin +#: field:report.account.invoice,state:0 +#: field:report.account.invoice.category,state:0 +#: field:report.account.invoice.partner,state:0 +#: field:report.account.invoice.partner.product,state:0 +#: field:report.account.invoice.product,state:0 +msgid "State" +msgstr "Tila" + +#. module: sale_margin +#: model:ir.module.module,description:sale_margin.module_meta_information +msgid "" +" \n" +" This module adds the 'Margin' on sales order,\n" +" which gives the profitability by calculating the difference between the " +"Unit Price and Cost Price\n" +" " +msgstr "" + +#. module: sale_margin +#: selection:report.account.invoice,state:0 +#: selection:report.account.invoice.category,state:0 +#: selection:report.account.invoice.partner,state:0 +#: selection:report.account.invoice.partner.product,state:0 +#: selection:report.account.invoice.product,state:0 +msgid "Draft" +msgstr "Luonnos" + +#. module: sale_margin +#: selection:report.account.invoice,state:0 +#: selection:report.account.invoice.category,state:0 +#: selection:report.account.invoice.partner,state:0 +#: selection:report.account.invoice.partner.product,state:0 +#: selection:report.account.invoice.product,state:0 +msgid "Paid" +msgstr "Maksettu" + +#. module: sale_margin +#: model:ir.model,name:sale_margin.model_stock_picking +msgid "Picking List" +msgstr "Keräilylista" + +#. module: sale_margin +#: help:sale.order,margin:0 +msgid "" +"It gives profitability by calculating the difference between the Unit Price " +"and Cost Price." +msgstr "" +"Antaa kannattavuuden laskemalla myyntihinnan ja hankintakustannusten välisen " +"eron." + +#. module: sale_margin +#: field:report.account.invoice,type:0 +#: field:report.account.invoice.category,type:0 +#: field:report.account.invoice.partner,type:0 +#: field:report.account.invoice.partner.product,type:0 +#: field:report.account.invoice.product,type:0 +#: wizard_field:stock.invoice_onshipping,init,type:0 +msgid "Type" +msgstr "Tyyppi" + +#. module: sale_margin +#: model:ir.model,name:sale_margin.model_report_account_invoice_product +msgid "Invoice Statistics" +msgstr "Laskutilastot" + +#. module: sale_margin +#: field:report.account.invoice.partner.product,product_id:0 +#: field:report.account.invoice.product,product_id:0 +msgid "Product" +msgstr "Tuote" + +#. module: sale_margin +#: sql_constraint:sale.order:0 +msgid "Order Reference must be unique !" +msgstr "Tilauksen viite tulee olla yksilöllinen!" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +msgid "Invoice by Partner" +msgstr "Lasku yhteistyökumppaneittain" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "August" +msgstr "Elokuu" + +#. module: sale_margin +#: selection:report.account.invoice,state:0 +#: selection:report.account.invoice.category,state:0 +#: selection:report.account.invoice.partner,state:0 +#: selection:report.account.invoice.partner.product,state:0 +#: selection:report.account.invoice.product,state:0 +msgid "Pro-forma" +msgstr "Proforma" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "May" +msgstr "Toukokuu" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "June" +msgstr "Kesäkuu" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +msgid "Date Invoiced" +msgstr "Laskun päiväys" + +#. module: sale_margin +#: model:ir.module.module,shortdesc:sale_margin.module_meta_information +msgid "Margins in Sales Order" +msgstr "Myyntitilauksen kate" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +msgid "Search Margin" +msgstr "Hae kate" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +msgid "This Year" +msgstr "Tänä vuonna" + +#. module: sale_margin +#: field:report.account.invoice.product,date:0 +msgid "Date" +msgstr "Päivämäärä" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "July" +msgstr "Heinäkuu" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +msgid "Extended Filters..." +msgstr "Laajennetut Suotimet..." + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_this_month_product +msgid "This Month" +msgstr "Tässä kuussa" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +#: field:report.account.invoice.product,day:0 +msgid "Day" +msgstr "Päivä" + +#. module: sale_margin +#: field:report.account.invoice.category,categ_id:0 +msgid "Categories" +msgstr "Luokat" + +#. module: sale_margin +#: field:account.invoice.line,cost_price:0 +#: field:report.account.invoice,cost_price:0 +#: field:report.account.invoice.category,cost_price:0 +#: field:report.account.invoice.partner,cost_price:0 +#: field:report.account.invoice.partner.product,cost_price:0 +#: field:report.account.invoice.product,cost_price:0 +#: field:sale.order.line,purchase_price:0 +msgid "Cost Price" +msgstr "Hankintahinta" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "October" +msgstr "Lokakuu" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "January" +msgstr "Tammikuu" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +#: field:report.account.invoice.product,year:0 +msgid "Year" +msgstr "Vuosi" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "September" +msgstr "Syyskuu" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "April" +msgstr "Huhtikuu" + +#. module: sale_margin +#: field:report.account.invoice,amount:0 +#: field:report.account.invoice.category,amount:0 +#: field:report.account.invoice.partner,amount:0 +#: field:report.account.invoice.partner.product,amount:0 +#: field:report.account.invoice.product,amount:0 +msgid "Amount" +msgstr "Määrä" + +#. module: sale_margin +#: selection:report.account.invoice,type:0 +#: selection:report.account.invoice.category,type:0 +#: selection:report.account.invoice.partner,type:0 +#: selection:report.account.invoice.partner.product,type:0 +#: selection:report.account.invoice.product,type:0 +msgid "Supplier Refund" +msgstr "Toimittajan hyvitys" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "March" +msgstr "Maaliskuu" + +#. module: sale_margin +#: field:report.account.invoice,margin:0 +#: field:report.account.invoice.category,margin:0 +#: field:report.account.invoice.partner,margin:0 +#: field:report.account.invoice.partner.product,margin:0 +#: field:report.account.invoice.product,margin:0 +#: field:sale.order,margin:0 +#: field:sale.order.line,margin:0 +msgid "Margin" +msgstr "Kate" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "November" +msgstr "Marraskuu" + +#. module: sale_margin +#: field:report.account.invoice,quantity:0 +#: field:report.account.invoice.category,quantity:0 +#: field:report.account.invoice.partner,quantity:0 +#: field:report.account.invoice.partner.product,quantity:0 +#: field:report.account.invoice.product,quantity:0 +msgid "Quantity" +msgstr "Määrä" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +msgid "Invoices by product" +msgstr "Laskut tuotteittain" + +#. module: sale_margin +#: selection:report.account.invoice,type:0 +#: selection:report.account.invoice.category,type:0 +#: selection:report.account.invoice.partner,type:0 +#: selection:report.account.invoice.partner.product,type:0 +#: selection:report.account.invoice.product,type:0 +msgid "Supplier Invoice" +msgstr "Toimittajan lasku" + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_invoices +#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_invoices +#: view:report.account.invoice:0 +#: view:stock.picking:0 +#: field:stock.picking,invoice_ids:0 +msgid "Invoices" +msgstr "Laskut" + +#. module: sale_margin +#: selection:report.account.invoice.product,month:0 +msgid "December" +msgstr "Joulukuu" + +#. module: sale_margin +#: model:ir.model,name:sale_margin.model_account_invoice_line +msgid "Invoice Line" +msgstr "Laskun rivi" + +#. module: sale_margin +#: field:report.account.invoice,name:0 +#: field:report.account.invoice.category,name:0 +#: field:report.account.invoice.partner,name:0 +#: field:report.account.invoice.partner.product,name:0 +#: field:report.account.invoice.product,name:0 +msgid "Month" +msgstr "Kuukausi" + +#. module: sale_margin +#: selection:report.account.invoice,state:0 +#: selection:report.account.invoice.category,state:0 +#: selection:report.account.invoice.partner,state:0 +#: selection:report.account.invoice.partner.product,state:0 +#: selection:report.account.invoice.product,state:0 +msgid "Canceled" +msgstr "Peruutettu" + +#. module: sale_margin +#: model:ir.actions.act_window,help:sale_margin.action_report_account_invoice_report +msgid "" +"This report gives you an overview of all the invoices generated by the " +"system. You can sort and group your results by specific selection criteria " +"to quickly find what you are looking for." +msgstr "" +"Tämä raportti antaa yleiskuvan kaikista järjestelmän luomista laskuista. " +"Voit lajitella ja ryhmitellä tulokset halutuilla kriteereillä löytäen " +"nopeasti halutut tiedot." + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_product +msgid "Invoice Report" +msgstr "Laskuraportti" + +#. module: sale_margin +#: view:report.account.invoice.product:0 +msgid "Done" +msgstr "Valmis" + +#. module: sale_margin +#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_product +msgid "Invoice" +msgstr "Lasku" + +#. module: sale_margin +#: view:stock.picking:0 +msgid "Customer Invoices" +msgstr "Asiakkaan laskut" + +#. module: sale_margin +#: field:report.account.invoice.partner,partner_id:0 +#: field:report.account.invoice.partner.product,partner_id:0 +msgid "Partner" +msgstr "Kumppani" + +#. module: sale_margin +#: model:ir.model,name:sale_margin.model_sale_order +msgid "Sales Order" +msgstr "Myyntitilaus" + +#. module: sale_margin +#: selection:report.account.invoice,state:0 +#: selection:report.account.invoice.category,state:0 +#: selection:report.account.invoice.partner,state:0 +#: selection:report.account.invoice.partner.product,state:0 +#: selection:report.account.invoice.product,state:0 +msgid "Open" +msgstr "Avoin" + +#. module: sale_margin +#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_report +msgid "Invoice Analysis" +msgstr "Laskuanalyysi" + +#. module: sale_margin +#: model:ir.model,name:sale_margin.model_sale_order_line +msgid "Sales Order Line" +msgstr "Myyntitilausrivi" diff --git a/addons/sale_mrp/i18n/fi.po b/addons/sale_mrp/i18n/fi.po new file mode 100644 index 00000000000..6be833d9b5e --- /dev/null +++ b/addons/sale_mrp/i18n/fi.po @@ -0,0 +1,66 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:16+0000\n" +"PO-Revision-Date: 2011-06-09 05:28+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: sale_mrp +#: help:mrp.production,sale_ref:0 +msgid "Indicate the Customer Reference from sales order." +msgstr "Määrittele asiakkaan viite myyntitilaukselta" + +#. module: sale_mrp +#: field:mrp.production,sale_ref:0 +msgid "Sales Reference" +msgstr "Myynnin viite" + +#. module: sale_mrp +#: model:ir.model,name:sale_mrp.model_mrp_production +msgid "Manufacturing Order" +msgstr "Valmistustilaus" + +#. module: sale_mrp +#: model:ir.module.module,description:sale_mrp.module_meta_information +msgid "" +"\n" +" This module provides facility to the user to install mrp and sales " +"modules\n" +" at a time. It is basically used when we want to keep track of " +"production\n" +" orders generated from sales order.\n" +" It adds sales name and sales Reference on production order\n" +" " +msgstr "" + +#. module: sale_mrp +#: field:mrp.production,sale_name:0 +msgid "Sales Name" +msgstr "Myynnin nimi" + +#. module: sale_mrp +#: model:ir.module.module,shortdesc:sale_mrp.module_meta_information +msgid "Sales and MRP Management" +msgstr "Myynnin ja MRP:n hallinta" + +#. module: sale_mrp +#: constraint:mrp.production:0 +msgid "Order quantity cannot be negative or zero !" +msgstr "Tilattu määrä ei voi olle negatiivinen tai nolla !" + +#. module: sale_mrp +#: help:mrp.production,sale_name:0 +msgid "Indicate the name of sales order." +msgstr "Määrittele myyntitilauksen nimi" diff --git a/addons/sale_order_dates/i18n/fi.po b/addons/sale_order_dates/i18n/fi.po new file mode 100644 index 00000000000..72a1ee7fde7 --- /dev/null +++ b/addons/sale_order_dates/i18n/fi.po @@ -0,0 +1,72 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:16+0000\n" +"PO-Revision-Date: 2011-06-09 05:26+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-10 04:37+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: sale_order_dates +#: sql_constraint:sale.order:0 +msgid "Order Reference must be unique !" +msgstr "Tilauksen viite tulee olla yksilöllinen!" + +#. module: sale_order_dates +#: help:sale.order,requested_date:0 +msgid "Date on which customer has requested for sales." +msgstr "Päiväys jonka asiakas on pyytänyt." + +#. module: sale_order_dates +#: field:sale.order,commitment_date:0 +msgid "Commitment Date" +msgstr "Luvattu päivä" + +#. module: sale_order_dates +#: field:sale.order,effective_date:0 +msgid "Effective Date" +msgstr "Toimeenpanopäivä" + +#. module: sale_order_dates +#: model:ir.module.module,shortdesc:sale_order_dates.module_meta_information +msgid "Sales Order Dates" +msgstr "Myyntitilauksen Päiväykset" + +#. module: sale_order_dates +#: help:sale.order,effective_date:0 +msgid "Date on which picking is created." +msgstr "Keräilypäivä" + +#. module: sale_order_dates +#: field:sale.order,requested_date:0 +msgid "Requested Date" +msgstr "Pyydetty päivä" + +#. module: sale_order_dates +#: model:ir.model,name:sale_order_dates.model_sale_order +msgid "Sales Order" +msgstr "Myyntitilaus" + +#. module: sale_order_dates +#: model:ir.module.module,description:sale_order_dates.module_meta_information +msgid "" +"\n" +"Add commitment, requested and effective dates on the sales order.\n" +msgstr "" +"\n" +"Lisää lupaus, pyydetty ja todellinen päivä myyntitilaukselle.\n" + +#. module: sale_order_dates +#: help:sale.order,commitment_date:0 +msgid "Date on which delivery of products is to be made." +msgstr "Tuotteiden toimituspäivä." diff --git a/addons/stock_no_autopicking/i18n/fi.po b/addons/stock_no_autopicking/i18n/fi.po new file mode 100644 index 00000000000..36344c33350 --- /dev/null +++ b/addons/stock_no_autopicking/i18n/fi.po @@ -0,0 +1,70 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-03 16:58+0000\n" +"PO-Revision-Date: 2011-06-08 10:36+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: stock_no_autopicking +#: model:ir.model,name:stock_no_autopicking.model_product_product +msgid "Product" +msgstr "Tuote" + +#. module: stock_no_autopicking +#: model:ir.module.module,description:stock_no_autopicking.module_meta_information +msgid "" +"\n" +" This module allows an intermediate picking process to provide raw " +"materials\n" +" to production orders.\n" +"\n" +" One example of usage of this module is to manage production made by " +"your\n" +" suppliers (sub-contracting). To achieve this, set the assembled product\n" +" which is sub-contracted to \"No Auto-Picking\" and put the location of " +"the\n" +" supplier in the routing of the assembly operation.\n" +" " +msgstr "" + +#. module: stock_no_autopicking +#: model:ir.model,name:stock_no_autopicking.model_mrp_production +msgid "Manufacturing Order" +msgstr "Valmistustilaus" + +#. module: stock_no_autopicking +#: field:product.product,auto_pick:0 +msgid "Auto Picking" +msgstr "Automaattikeräily" + +#. module: stock_no_autopicking +#: help:product.product,auto_pick:0 +msgid "Auto picking for raw materials of production orders." +msgstr "Automaatikeräily tuotannon raaka-ainetilauksille" + +#. module: stock_no_autopicking +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "Virhe: Väärä EAN-koodi" + +#. module: stock_no_autopicking +#: model:ir.module.module,shortdesc:stock_no_autopicking.module_meta_information +msgid "Stock No Auto-Picking" +msgstr "Ei automaattista varastokeräilyä" + +#. module: stock_no_autopicking +#: constraint:mrp.production:0 +msgid "Order quantity cannot be negative or zero !" +msgstr "Tilattu määrä ei voi olle negatiivinen tai nolla !" diff --git a/addons/stock_planning/i18n/gl.po b/addons/stock_planning/i18n/gl.po new file mode 100644 index 00000000000..e7bde8b441d --- /dev/null +++ b/addons/stock_planning/i18n/gl.po @@ -0,0 +1,1792 @@ +# Galician translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:16+0000\n" +"PO-Revision-Date: 2011-06-08 08:24+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Galician \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: stock_planning +#: code:addons/stock_planning/wizard/stock_planning_createlines.py:73 +#, python-format +msgid "" +"No forecasts for selected period or no products in selected category !" +msgstr "" +"Non hai previsións para o período seleccionado ou non hai produtos na " +"categoría seleccionada!" + +#. module: stock_planning +#: help:stock.planning,stock_only:0 +msgid "" +"Check to calculate stock location of selected warehouse only. If not " +"selected calculation is made for input, stock and output location of " +"warehouse." +msgstr "" +"Marque esta opción para calcular o stock só do lugar stock do almacén " +"seleccionado. Se non se marca, o cálculo se realiza para os lugares de " +"entrada, stock e saída do almacén." + +#. module: stock_planning +#: field:stock.planning,maximum_op:0 +msgid "Maximum Rule" +msgstr "Regra máximo" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period1_per_company:0 +msgid "This Copmany Period1" +msgstr "Esta compañía período1" + +#. module: stock_planning +#: view:stock.planning:0 +#: view:stock.sale.forecast:0 +msgid "Group By..." +msgstr "Agrupar por..." + +#. module: stock_planning +#: help:stock.sale.forecast,product_amt:0 +msgid "" +"Forecast value which will be converted to Product Quantity according to " +"prices." +msgstr "" +"Valor da previsión que se converterá en cantidade de produto en función dos " +"prezos." + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:621 +#: code:addons/stock_planning/stock_planning.py:663 +#, python-format +msgid "Incoming Left must be greater than 0 !" +msgstr "Entradas restantes debe ser maior que 0!" + +#. module: stock_planning +#: help:stock.planning,outgoing_before:0 +msgid "" +"Planned Out in periods before calculated. Between start date of current " +"period and one day before start of calculated period." +msgstr "" +"Saídas planificadas en períodos anteriores ó calculado. Entre a data de " +"inicio do período actual e un día antes do comezo do período calculado." + +#. module: stock_planning +#: code:addons/stock_planning/wizard/stock_planning_forecast.py:60 +#, python-format +msgid "No products in selected category !" +msgstr "Non hai produtos na categoría seleccionada!" + +#. module: stock_planning +#: help:stock.sale.forecast.createlines,warehouse_id:0 +msgid "" +"Warehouse which forecasts will concern. If during stock planning you will " +"need sales forecast for all warehouses choose any warehouse now." +msgstr "" +"Almacén ó que concernen as previsións. Se durante a planificación de stock " +"precisa previsións de vendas para tódolos almacéns escolla agora un almacén " +"calquera." + +#. module: stock_planning +#: field:stock.planning,outgoing_left:0 +msgid "Expected Out" +msgstr "Saídas previstas" + +#. module: stock_planning +#: view:stock.sale.forecast:0 +msgid " " +msgstr " " + +#. module: stock_planning +#: field:stock.planning,incoming_left:0 +msgid "Incoming Left" +msgstr "Entradas restantes" + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Requisition history" +msgstr "Historial demandas" + +#. module: stock_planning +#: view:stock.sale.forecast.createlines:0 +msgid "Create Forecasts Lines" +msgstr "Crear liñas de previsións" + +#. module: stock_planning +#: help:stock.planning,outgoing:0 +msgid "Quantity of all confirmed outgoing moves in calculated Period." +msgstr "Cantidades de tódalas saídas confirmadas no período calculado." + +#. module: stock_planning +#: view:stock.period.createlines:0 +msgid "Create Daily Periods" +msgstr "Crear períodos diarios" + +#. module: stock_planning +#: view:stock.planning:0 +#: field:stock.planning,company_id:0 +#: field:stock.planning.createlines,company_id:0 +#: view:stock.sale.forecast:0 +#: field:stock.sale.forecast,company_id:0 +#: field:stock.sale.forecast.createlines,company_id:0 +msgid "Company" +msgstr "Compañía" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:640 +#: code:addons/stock_planning/stock_planning.py:682 +#, python-format +msgid "" +"\n" +" Initial Stock: " +msgstr "" +"\n" +" Stock inicial: " + +#. module: stock_planning +#: help:stock.planning,warehouse_forecast:0 +msgid "" +"All sales forecasts for selected Warehouse of selected Product during " +"selected Period." +msgstr "" +"Tódalas previsións de vendas para o almacén seleccionado do produto " +"seleccionado durante o periodo seleccionado." + +#. module: stock_planning +#: model:ir.ui.menu,name:stock_planning.menu_stock_period_creatlines +msgid "Create Stock and Sales Periods" +msgstr "Crear períodos de stock e vendas" + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Minimum Stock Rule Indicators" +msgstr "Indicadores de regras de stock mínimo" + +#. module: stock_planning +#: help:stock.sale.forecast.createlines,period_id:0 +msgid "Period which forecasts will concern." +msgstr "Período ó que concernen as previsións." + +#. module: stock_planning +#: field:stock.planning,stock_only:0 +msgid "Stock Location Only" +msgstr "Só lugares de stock" + +#. module: stock_planning +#: help:stock.planning,already_out:0 +msgid "" +"Quantity which is already dispatched out of this warehouse in current period." +msgstr "Cantidades que xa se enviaron fóra deste almacén no período actual." + +#. module: stock_planning +#: help:stock.planning,procure_to_stock:0 +msgid "" +"Chect to make procurement to stock location of selected warehouse. If not " +"selected procurement will be made into input location of warehouse." +msgstr "" +"Marque esta opción para realizar os abastecementos no lugar de stock do " +"almacén seleccionado. Se non se marca, realizarase o abastecemento no lugar " +"de entrada do almacén." + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Current Period Situation" +msgstr "Situación do período actual" + +#. module: stock_planning +#: view:stock.period.createlines:0 +msgid "Create Monthly Periods" +msgstr "Crear períodos mensuais" + +#. module: stock_planning +#: help:stock.planning,supply_warehouse_id:0 +msgid "" +"Warehouse used as source in supply pick move created by 'Supply from Another " +"Warhouse'." +msgstr "" +"Almacén usado como orixe no movemento do subministro creado por " +"'Subministrar desde outro almacén'." + +#. module: stock_planning +#: model:ir.model,name:stock_planning.model_stock_period_createlines +msgid "stock.period.createlines" +msgstr "stock.período.crearliñas" + +#. module: stock_planning +#: field:stock.planning,outgoing_before:0 +msgid "Planned Out Before" +msgstr "Saídas planificadas antes" + +#. module: stock_planning +#: field:stock.planning.createlines,forecasted_products:0 +msgid "All Products with Forecast" +msgstr "Tódolos produtos con previsión" + +#. module: stock_planning +#: view:stock.sale.forecast:0 +msgid "Periods :" +msgstr "Períodos:" + +#. module: stock_planning +#: help:stock.planning,already_in:0 +msgid "" +"Quantity which is already picked up to this warehouse in current period." +msgstr "Cantidades que xa foron recollidas neste almacén no período actual." + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:644 +#: code:addons/stock_planning/stock_planning.py:686 +#, python-format +msgid " Confirmed In Before: " +msgstr " Entradas confirmadas antes: " + +#. module: stock_planning +#: view:stock.sale.forecast:0 +msgid "Stock and Sales Forecast" +msgstr "Previsións de stock e vendas" + +#. module: stock_planning +#: model:ir.model,name:stock_planning.model_stock_sale_forecast +msgid "stock.sale.forecast" +msgstr "stock.vendas.previsión" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_dept_id:0 +msgid "This Department" +msgstr "Este departamento" + +#. module: stock_planning +#: field:stock.planning,to_procure:0 +msgid "Planned In" +msgstr "Entradas planificadas" + +#. module: stock_planning +#: field:stock.planning,stock_simulation:0 +msgid "Stock Simulation" +msgstr "Simulación de stock" + +#. module: stock_planning +#: model:ir.model,name:stock_planning.model_stock_planning_createlines +msgid "stock.planning.createlines" +msgstr "stock.planificación.crearliñas" + +#. module: stock_planning +#: help:stock.planning,incoming_before:0 +msgid "" +"Confirmed incoming in periods before calculated (Including Already In). " +"Between start date of current period and one day before start of calculated " +"period." +msgstr "" +"Entradas confirmadas en períodos anteriores ó calculado (incluíndo as " +"entradas realizadas). Entre a data de inicio do período actual e un día " +"antes do comezo do período calculado." + +#. module: stock_planning +#: view:stock.sale.forecast:0 +msgid "Search Sales Forecast" +msgstr "Buscar previsións de vendas" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period5_per_user:0 +msgid "This User Period5" +msgstr "O período deste usuario5" + +#. module: stock_planning +#: help:stock.planning,history:0 +msgid "History of procurement or internal supply of this planning line." +msgstr "" +"Historial do abastecemento ou subministración interna desta liña de " +"planificación." + +#. module: stock_planning +#: help:stock.planning,company_forecast:0 +msgid "" +"All sales forecasts for whole company (for all Warehouses) of selected " +"Product during selected Period." +msgstr "" +"Tódalas previsións para a compañía enteira (para tódolos almacéns) do " +"produto seleccionado durante o período seleccionado." + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period1_per_user:0 +msgid "This User Period1" +msgstr "O período deste usuario1" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period3_per_user:0 +msgid "This User Period3" +msgstr "O período deste usuario3" + +#. module: stock_planning +#: model:ir.ui.menu,name:stock_planning.menu_stock_planning_main +#: view:stock.planning:0 +msgid "Stock Planning" +msgstr "Planificación de stock" + +#. module: stock_planning +#: field:stock.planning,minimum_op:0 +msgid "Minimum Rule" +msgstr "Regra de mínimos" + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Procure Incoming Left" +msgstr "Entradas abastecemento restante" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:646 +#: code:addons/stock_planning/stock_planning.py:688 +#, python-format +msgid " Incoming Left: " +msgstr " Entrada restante: " + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:719 +#, python-format +msgid "%s Pick List %s (%s, %s) %s %s \n" +msgstr "" + +#. module: stock_planning +#: view:stock.planning.createlines:0 +#: view:stock.sale.forecast.createlines:0 +msgid "Create" +msgstr "Crear" + +#. module: stock_planning +#: model:ir.actions.act_window,name:stock_planning.action_view_stock_planning_form +#: model:ir.module.module,shortdesc:stock_planning.module_meta_information +#: model:ir.ui.menu,name:stock_planning.menu_stock_planning +#: view:stock.planning:0 +msgid "Master Procurement Schedule" +msgstr "Plan mestre de abastecemento" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:636 +#: code:addons/stock_planning/stock_planning.py:678 +#, python-format +msgid " Creation Date: " +msgstr " Data de creación: " + +#. module: stock_planning +#: field:stock.planning,period_id:0 +#: field:stock.planning.createlines,period_id:0 +#: field:stock.sale.forecast,period_id:0 +#: field:stock.sale.forecast.createlines,period_id:0 +msgid "Period" +msgstr "Período" + +#. module: stock_planning +#: view:stock.period:0 +#: field:stock.period,state:0 +#: field:stock.planning,state:0 +#: field:stock.sale.forecast,state:0 +msgid "State" +msgstr "Estado" + +#. module: stock_planning +#: help:stock.sale.forecast.createlines,product_categ_id:0 +msgid "Product Category of products which created forecasts will concern." +msgstr "Categoría dos produtos cuxas previsións se crearán." + +#. module: stock_planning +#: model:ir.model,name:stock_planning.model_stock_period +msgid "stock period" +msgstr "período stock" + +#. module: stock_planning +#: model:ir.model,name:stock_planning.model_stock_sale_forecast_createlines +msgid "stock.sale.forecast.createlines" +msgstr "stock.venda.previsión.crearliñas" + +#. module: stock_planning +#: field:stock.planning,warehouse_id:0 +#: field:stock.planning.createlines,warehouse_id:0 +#: field:stock.sale.forecast,warehouse_id:0 +#: field:stock.sale.forecast.createlines,warehouse_id:0 +msgid "Warehouse" +msgstr "Almacén" + +#. module: stock_planning +#: help:stock.planning,stock_simulation:0 +msgid "" +"Stock simulation at the end of selected Period.\n" +" For current period it is: \n" +"Initial Stock - Already Out + Already In - Expected Out + Incoming Left.\n" +"For periods ahead it is: \n" +"Initial Stock - Planned Out Before + Incoming Before - Planned Out + Planned " +"In." +msgstr "" +"Simulación de stock ó final do período seleccionado. Para o período actual " +"é: Stock inicial – saídas + entradas – saídas previstas + entradas " +"esperadas. Para os seguintes períodos é: Stock inicial – saídas previstas " +"anteriores + entradas anteriores – saídas previstas + entradas previstas." + +#. module: stock_planning +#: help:stock.sale.forecast,analyze_company:0 +msgid "Check this box to see the sales for whole company." +msgstr "Seleccione esta casa para ver as vendas de toda a compañía." + +#. module: stock_planning +#: field:stock.sale.forecast,name:0 +msgid "Name" +msgstr "Nome" + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Search Stock Planning" +msgstr "Buscar planificación de stock" + +#. module: stock_planning +#: field:stock.planning,incoming_before:0 +msgid "Incoming Before" +msgstr "Entradas antes" + +#. module: stock_planning +#: field:stock.planning.createlines,product_categ_id:0 +#: field:stock.sale.forecast.createlines,product_categ_id:0 +msgid "Product Category" +msgstr "Categoría de Produto" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:621 +#: code:addons/stock_planning/stock_planning.py:663 +#: code:addons/stock_planning/stock_planning.py:665 +#: code:addons/stock_planning/stock_planning.py:667 +#: code:addons/stock_planning/wizard/stock_planning_createlines.py:73 +#: code:addons/stock_planning/wizard/stock_planning_forecast.py:60 +#, python-format +msgid "Error !" +msgstr "Erro!" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:626 +#, python-format +msgid "Manual planning for %s" +msgstr "" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_user_id:0 +msgid "This User" +msgstr "Este usuario" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:643 +#: code:addons/stock_planning/stock_planning.py:685 +#, python-format +msgid "" +"\n" +" Confirmed Out: " +msgstr "" +"\n" +" Saídas confirmadas: " + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Forecasts" +msgstr "Previsións" + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Supply from Another Warehouse" +msgstr "Abastecer desde outro almacen" + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Calculate Planning" +msgstr "Calcular planificación" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:636 +#, python-format +msgid "" +" Procurement created in MPS by user: %s Creation Date: %s " +" \n" +" For period: %s \n" +" according to state: \n" +" Warehouse Forecast: %s \n" +" Initial Stock: %s \n" +" Planned Out: %s Planned In: %s \n" +" Already Out: %s Already In: %s \n" +" Confirmed Out: %s Confirmed In: %s " +" \n" +" Planned Out Before: %s Confirmed In Before: %s " +" \n" +" Expected Out: %s Incoming Left: %s " +" \n" +" Stock Simulation: %s Minimum stock: %s" +msgstr "" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:140 +#, python-format +msgid "Invalid action !" +msgstr "Acción non válida!" + +#. module: stock_planning +#: help:stock.planning,stock_start:0 +msgid "Stock quantity one day before current period." +msgstr "Cantidade do stock un día antes do período actual." + +#. module: stock_planning +#: view:stock.period.createlines:0 +msgid "Create Weekly Periods" +msgstr "Crear períodos semanais" + +#. module: stock_planning +#: help:stock.planning,maximum_op:0 +msgid "Maximum quantity set in Minimum Stock Rules for this Warhouse" +msgstr "" +"Cantidade máxima establecida nas regras de stock mínimo para este almacén." + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:665 +#, python-format +msgid "You must specify a Source Warehouse !" +msgstr "Debe especificar un almacén de orixe!" + +#. module: stock_planning +#: view:stock.planning.createlines:0 +msgid "Creates planning lines for selected period and warehouse." +msgstr "Crea liñas de planificación para o período e almacén seleccionados." + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period4_per_user:0 +msgid "This User Period4" +msgstr "Este período de usuario4" + +#. module: stock_planning +#: view:stock.planning.createlines:0 +#: view:stock.sale.forecast.createlines:0 +msgid "Note: Doesn't duplicate existing lines created by you." +msgstr "Nota: Non duplica as liñas creadas por vostede." + +#. module: stock_planning +#: view:stock.period:0 +msgid "Stock and Sales Period" +msgstr "Período de stock e vendas" + +#. module: stock_planning +#: field:stock.planning,company_forecast:0 +msgid "Company Forecast" +msgstr "Previsión da compañía" + +#. module: stock_planning +#: help:stock.planning,product_uom:0 +#: help:stock.sale.forecast,product_uom:0 +msgid "" +"Unit of Measure used to show the quanities of stock calculation.You can use " +"units form default category or from second category (UoS category)." +msgstr "" +"Unidade de medida utilizada para amosar as cantidades calculadas de stock. " +"Pode utilizar as unidades da categoría por defecto ou as da segunda " +"categoría (categoría UdV)." + +#. module: stock_planning +#: view:stock.sale.forecast:0 +msgid "Per User :" +msgstr "Por usuario:" + +#. module: stock_planning +#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast +#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast_all +#: view:stock.sale.forecast:0 +msgid "Sales Forecasts" +msgstr "Previsións de vendas" + +#. module: stock_planning +#: field:stock.period,name:0 +#: field:stock.period.createlines,name:0 +msgid "Period Name" +msgstr "Nome do Período" + +#. module: stock_planning +#: field:stock.sale.forecast,user_id:0 +msgid "Created/Validated by" +msgstr "Creado/Validado por" + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Internal Supply" +msgstr "Subministración interna" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period4_per_company:0 +msgid "This Company Period4" +msgstr "O período desta compañía4" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period5_per_company:0 +msgid "This Company Period5" +msgstr "O período desta compañía5" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period2_per_company:0 +msgid "This Company Period2" +msgstr "O período desta compañía2" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period3_per_company:0 +msgid "This Company Period3" +msgstr "O período desta compañía3" + +#. module: stock_planning +#: field:stock.period,date_start:0 +#: field:stock.period.createlines,date_start:0 +msgid "Start Date" +msgstr "Data de comezo" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:642 +#: code:addons/stock_planning/stock_planning.py:684 +#, python-format +msgid "" +"\n" +" Already Out: " +msgstr "" +"\n" +" Saídas realizadas: " + +#. module: stock_planning +#: field:stock.planning,confirmed_forecasts_only:0 +msgid "Validated Forecasts" +msgstr "Previsións validadas" + +#. module: stock_planning +#: help:stock.planning.createlines,product_categ_id:0 +msgid "" +"Planning will be created for products from Product Category selected by this " +"field. This field is ignored when you check \"All Forecasted Product\" box." +msgstr "" +"Crearase a planificación para os produtos da categoría de produtos " +"seleccionada con este campo. Cando se marca a opción \"Tódalas previsións de " +"produtos\", ignórase este campo." + +#. module: stock_planning +#: field:stock.planning,planned_outgoing:0 +msgid "Planned Out" +msgstr "Saídas planificadas" + +#. module: stock_planning +#: view:stock.sale.forecast:0 +msgid "Per Department :" +msgstr "Por departamento:" + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Forecast" +msgstr "Previsión" + +#. module: stock_planning +#: selection:stock.period,state:0 +#: selection:stock.planning,state:0 +#: selection:stock.sale.forecast,state:0 +msgid "Draft" +msgstr "Proxecto" + +#. module: stock_planning +#: view:stock.period:0 +msgid "Closed" +msgstr "Pechado" + +#. module: stock_planning +#: view:stock.planning:0 +#: view:stock.sale.forecast:0 +msgid "Warehouse " +msgstr "Almacén " + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:646 +#: code:addons/stock_planning/stock_planning.py:688 +#, python-format +msgid "" +"\n" +" Expected Out: " +msgstr "" +"\n" +" Saídas previstas: " + +#. module: stock_planning +#: view:stock.period.createlines:0 +msgid "Create periods for Stock and Sales Planning" +msgstr "Crear períodos para planificación de stock e vendas" + +#. module: stock_planning +#: help:stock.planning,planned_outgoing:0 +msgid "" +"Enter planned outgoing quantity from selected Warehouse during the selected " +"Period of selected Product. To plan this value look at Confirmed Out or " +"Sales Forecasts. This value should be equal or greater than Confirmed Out." +msgstr "" +"Introduza a cantidade saínte planificada para o almacén seleccionado durante " +"o período seleccionado e para o produto seleccionado. Para planificar este " +"valor, pódese fixar nas saídas confirmadas ou nas previsións de vendas. Este " +"valor debería ser igual ou superior ás saídas confirmadas." + +#. module: stock_planning +#: model:ir.module.module,description:stock_planning.module_meta_information +msgid "" +"\n" +"This module is based on original OpenERP SA module stock_planning version " +"1.0 of the same name Master Procurement Schedule.\n" +"\n" +"Purpose of MPS is to allow create a manual procurement (requisition) apart " +"of MRP scheduler (which works automatically on minimum stock rules).\n" +"\n" +"Terms used in the module:\n" +"- Stock and Sales Period - is the time (between Start Date and End Date) for " +"which you plan Stock and Sales Forecast and make Procurement Planning. \n" +"- Stock and Sales Forecast - is the quantity of products you plan to sell in " +"the Period.\n" +"- Stock Planning - is the quantity of products you plan to purchase or " +"produce for the Period.\n" +"\n" +"Because we have another module sale_forecast which uses terms \"Sales " +"Forecast\" and \"Planning\" as amount values we will use terms \"Stock and " +"Sales Forecast\" and \"Stock Planning\" to emphasize that we use quantity " +"values. \n" +"\n" +"Activity with this module is divided to three steps:\n" +"- Creating Periods. Mandatory step.\n" +"- Creating Sale Forecasts and entering quantities to them. Optional step but " +"useful for further planning.\n" +"- Creating Planning lines, entering quantities to them and making " +"Procurement. Making procurement is the final step for the Period.\n" +"\n" +"Periods\n" +"=======\n" +"You have two menu items for Periods in \"Sales Management - Configuration\". " +"There are:\n" +"- \"Create Sales Periods\" - Which automates creating daily, weekly or " +"monthly periods.\n" +"- \"Stock and sales Periods\" - Which allows to create any type of periods, " +"change the dates and change the State of period.\n" +"\n" +"Creating periods is the first step you have to do to use modules features. " +"You can create custom periods using \"New\" button in \"Stock and Sales " +"Periods\" form or view but it is recommended to use automating tool.\n" +"\n" +"Remarks:\n" +"- These periods (officially Stock and Sales Periods) are separated of " +"Financial or other periods in the system.\n" +"- Periods are not assigned to companies (when you use multicompany feature " +"at all). Module suppose that you use the same periods across companies. If " +"you wish to use different periods for different companies define them as you " +"wish (they can overlap). Later on in this text will be indications how to " +"use such periods.\n" +"- When periods are created automatically their start and finish dates are " +"with start hour 00:00:00 and end hour 23:59:00. Fe. when you create daily " +"periods they will have start date 31.01.2010 00:00:00 and end date " +"31.01.2010 23:59:00. It works only in automatic creation of periods. When " +"you create periods manually you have to take care about hours because you " +"can have incorrect values form sales or stock. \n" +"- If you use overlapping periods for the same product, warehouse and company " +"results can be unpredictable.\n" +"- If current date doesn't belong to any period or you have holes between " +"periods results can be unpredictable.\n" +"\n" +"Sales Forecasts\n" +"===============\n" +"You have few menus for Sales forecast in \"Sales Management - Sales " +"Forecasts\".\n" +"- \"Create Sales Forecasts for Sales Periods\" - which automates creating " +"forecasts lines according to some parameters.\n" +"- \"Sales Forecasts\" - few menus for working with forecasts lists and " +"forms.\n" +"\n" +"Menu \"Create Sales Forecasts for Sales Periods\" creates Forecasts for " +"products from selected Category, for selected Period and for selected " +"Warehouse. It is an option \"Copy Last Forecast\" to copy forecast and other " +"settings of period before this one to created one.\n" +"\n" +"Remarks:\n" +"- This tool doesn't create lines, if relevant lines (for the same Product, " +"Period, Warehouse and validated or created by you) already exists. If you " +"wish to create another forecast, if relevant lines exists you have to do it " +"manually using menus described bellow.\n" +"- When created lines are validated by someone else you can use this tool to " +"create another lines for the same Period, Product and Warehouse. \n" +"- When you choose \"Copy Last Forecast\" created line takes quantity and " +"some settings from your (validated by you or created by you if not validated " +"yet) forecast which is for last period before period of created forecast. If " +"there are few your forecasts for period before this one (it is possible) " +"system takes one of them (no rule which of them).\n" +"\n" +"\n" +"Menus \"Sales Forecasts\"\n" +"On \"Sales Forecast\" form mainly you have to enter a forecast quantity in " +"\"Product Quantity\". Further calculation can work for draft forecasts. But " +"validation can save your data against any accidental changes. You can click " +"\"Validate\" button but it is not mandatory.\n" +"\n" +"Instead of forecast quantity you can enter amount of forecast sales in field " +"\"Product Amount\". System will count quantity from amount according to Sale " +"price of the Product.\n" +"\n" +"All values on the form are expressed in unit of measure selected on form. " +"You can select one of unit of measure from default category or from second " +"category. When you change unit of measure the quanities will be recalculated " +"according to new UoM: editable values (blue fields) immediately, non edited " +"fields after clicking of \"Calculate Planning\" button.\n" +"\n" +"To find proper value for Sale Forecast you can use \"Sales History\" table " +"for this product. You have to enter parameters to the top and left of this " +"table and system will count sale quantities according to these parameters. " +"So you can select fe. your department (at the top) then (to the left): last " +"period, period before last and period year ago.\n" +"\n" +"Remarks:\n" +"\n" +"\n" +"Procurement Planning\n" +"====================\n" +"Menu for Planning you can find in \"Warehouse - Stock Planning\".\n" +"- \"Create Stock Planning Lines\" - allows you to automate creating planning " +"lines according to some parameters.\n" +"- \"Master Procurement Scheduler\" - is the most important menu of the " +"module which allows to create procurement.\n" +"\n" +"As Sales forecast is phase of planning sales. The Procurement Planning " +"(Planning) is the phase of scheduling Purchasing or Producing. You can " +"create Procurement Planning quickly using tool from menu \"Create Stock " +"Planning Lines\", then you can review created planning and make procurement " +"using menu \"Master Procurement Schedule\".\n" +"\n" +"Menu \"Create Stock Planning Lines\" allows you to create quickly Planning " +"lines for products from selected Category, for selected Period, and for " +"selected Warehouse. When you check option \"All Products with Forecast\" " +"system creates lines for all products having forecast for selected Period " +"and Warehouse. Selected Category will be ignored in this case.\n" +"\n" +"Under menu \"Master Procurement Scheduler\" you can generally change the " +"values \"Planned Out\" and \"Planned In\" to observe the field \"Stock " +"Simulation\" and decide if this value would be accurate for end of the " +"Period. \n" +"\"Planned Out\" can be based on \"Warehouse Forecast\" which is the sum of " +"all forecasts for Period and Warehouse. But your planning can be based on " +"any other information you have. It is not necessary to have any forecast. \n" +"\"Planned In\" quantity is used to calculate field \"Incoming Left\" which " +"is the quantity to be procured to make stock as indicated in \"Stock " +"Simulation\" at the end of Period. You can compare \"Stock Simulation\" " +"quantity to minimum stock rules visible on the form. But you can plan " +"different quantity than in Minimum Stock Rules. Calculation is made for " +"whole Warehouse by default. But if you want to see values for Stock location " +"of calculated warehouse you can use check box \"Stock Location Only\".\n" +"\n" +"If after few tries you decide that you found correct quantities for " +"\"Planned Out\" and \"Planned In\" and you are satisfied with end of period " +"stock calculated in \"Stock Simulation\" you can click \"Procure Incoming " +"Left\" button to procure quantity of field \"Incoming Left\" into the " +"Warehouse. System creates appropriate Procurement Order. You can decide if " +"procurement will be made to Stock or Input location of calculated Warehouse. " +"\n" +"\n" +"If you don't want to Produce or Buy the product but just pick calculated " +"quantity from another warehouse you can click \"Supply from Another " +"Warehouse\" (instead of \"Procure Incoming Left\"). System creates pick list " +"with move from selected source Warehouse to calculated Warehouse (as " +"destination). You can also decide if this pick should be done from Stock or " +"Output location of source warehouse. Destination location (Stock or Input) " +"of destination warehouse will be used as set for \"Procure Incoming Left\". " +"\n" +"\n" +"To see proper quantities in fields \"Confirmed In\", \"Confirmed Out\", " +"\"Confirmed In Before\", \"Planned Out Before\" and \"Stock Simulation\" you " +"have to click button \"Calculate Planning\".\n" +"\n" +"All values on the form are expressed in unit of measure selected on form. " +"You can select one of unit of measure from default category or from second " +"category. When you change unit of measure the quanities will be recalculated " +"according to new UoM: editable values (blue fields) immediately, non edited " +"fields after clicking of \"Calculate Planning\" button.\n" +"\n" +"How Stock Simulation field is calculated:\n" +"Generally Stock Simulation shows the stock for end of the calculated period " +"according to some planned or confirmed stock moves. Calculation always " +"starts with quantity of real stock of beginning of current period. Then " +"calculation adds or subtracts quantities of calculated period or periods " +"before calculated.\n" +"When you are in the same period (current period is the same as calculated) " +"Stock Simulation is calculated as follows:\n" +"Stock Simulation = \n" +"\tStock of beginning of current Period\n" +"\t- Planned Out \n" +"\t+ Planned In\n" +"\n" +"When you calculate period next to current:\n" +"Stock Simulation = \n" +"\tStock of beginning of current Period\n" +"\t- Planned Out of current Period \n" +"\t+ Confirmed In of current Period (incl. Already In)\n" +"\t- Planned Out of calculated Period \n" +"\t+ Planned In of calculated Period .\n" +"\n" +"As you see calculated Period is taken the same way like in case above. But " +"calculation of current Period are made a little bit different. First you " +"should note that system takes for current Period only Confirmed In moves. It " +"means that you have to make planning and procurement for current Period " +"before this calculation (for Period next to current). \n" +"\n" +"When you calculate Period ahead:\n" +"Stock Simulation = \n" +"\tStock of beginning of current Period \n" +"\t- Sum of Planned Out of Periods before calculated \n" +"\t+ Sum of Confirmed In of Periods before calculated (incl. Already In) \n" +"\t- Planned Out of calculated Period \n" +"\t+ Planned In of calculated Period.\n" +"\n" +"Periods before calculated means periods starting from current till period " +"before calculated.\n" +"\n" +"Remarks:\n" +"- Remember to make planning for all periods before calculated because " +"omitting these quantities and procurements can cause wrong suggestions for " +"procurements few periods ahead.\n" +"- If you made planning few periods ahead and you find that real Confirmed " +"Out is bigger than Planned Out in some periods before you can repeat " +"Planning and make another procurement. You should do it in the same planning " +"line. If you create another planning line the suggestions can be wrong.\n" +"- When you wish to work with different periods for some part of products " +"define two kinds of periods (fe. Weekly and Monthly) and use them for " +"different products. Example: If you use always Weekly periods for Products " +"A, and Monthly periods for Products B your all calculations will work " +"correctly. You can also use different kind of periods for the same products " +"from different warehouse or companies. But you cannot use overlapping " +"periods for the same product, warehouse and company because results can be " +"unpredictable. The same apply to Forecasts lines.\n" +msgstr "" +"\n" +"Este módulo baséase na versión orixinal de OpenERP stock_planning SA módulo " +"1.0 do mesmo nome Programador de Compras Mestras. O propósito da MPS é " +"permitir crear un manual de contratación (solicitude), á parte do " +"programador MRP (que funciona automaticamente, baseándose en regras de " +"existencias mínimas). Os termos utilizados no módulo:- Stock e Período de " +"vendas – é o tempo (entre a Data de comezo e a Data de remate) para o que " +"planifica o Stock e a Previsión de Vendas e fai a Planificación das Compras.-" +" Stock e prognóstico de vendas – é a cantidade de produtos que planea vender " +"no Período.- Planificación de Stock – é a cantidade de produtos que planea " +"mercar ou producir para o Período. Porque temos outro módulo sale_forecast " +"que utiliza os termos \"Prognóstico de Vendas\" e \"Planificación\" como " +"valores de cantidade, utilizaremos termos \"Stock e Prognóstico de Vendas\" " +"e \"Planificación do Stock\" para salientar que usamos os valores de " +"cantidade. A actividade con este módulo divídese en tres pasos:- Creación de " +"Períodos. Paso obrigatorio.- Creación de Prognósticos de Venda e introdución " +"das súas cantidades. Un paso opcional pero útil para unha maior " +"planificación.- Creación de liñas de Planificación, introdución das súas " +"cantidades e facer Adquisicións. Facer compras é o paso final para o " +"Período. Períodos=========Ten dúas opcións de menú para Períodos en " +"\"Xestión de Vendas - Configuración\". Son as seguintes:- \"Crear os " +"Períodos de Vendas\" - Que automatiza a creación de períodos diarios, " +"semanais ou mensuais.- \"Stock e Períodos de vendas\" - Que permite crear " +"calquera tipo de períodos, o cambio das datas e o cambio do Estado do " +"período. Creación de períodos é o primeiro paso para utilizar as funcións " +"dos módulos. Pode crear períodos personalizados mediante o botón \"Novo\" no " +"formulario ou vista de \"Stock e Períodos de Vendas\", pero recoméndase " +"utilizar a ferramenta automática. Observacións:- Estes períodos (Stock " +"oficial e Períodos de Vendas) separan de Finanzas ou doutros períodos no " +"sistema.- Os Períodos non se asignan ás compañías (en ningún caso cando se " +"utiliza a función multicompañía). O módulo supón que utiliza os mesmos " +"períodos a través das compañías. Se desexa utilizar períodos diferentes para " +"diferentes compañías, defínaos ó seu gusto (pódense solapar). Máis adiante " +"neste texto indícase cómo utilizar eses períodos.- Cando os períodos se " +"crean automaticamente, as súas datas de comezo e final comezan coa hora " +"00:00:00 e 23:59:00 como hora final. Ex. Cando cree períodos diarios, terán " +"como data de inicio 01.31.2010 00:00:00 e como data de remate 01.31.2010 " +"23:59:00. Só funciona na creación automática dos períodos. Cando cree " +"períodos manualmente hai que ter coidado coas horas, xa que pode ter valores " +"incorrectos en vendas e stock.- Se utiliza períodos solapados para o mesmo " +"produto, almacén e compañía, se cadra os resultados non se poden predicir.- " +"Se a data actual non pertence a ningún período ou se ten baleiros entre os " +"períodos, se cadra os resultados non se poden predicir. Previsión de " +"vendas====================Ten menús poucas vendas previsto en \"Xestión de " +"Vendas - Prognósticos de Vendas\".- \"Creación de Prognósticos de Vendas " +"para os Períodos de Vendas\" - que automatiza a creación de liñas de " +"previsións de acordo con algúns parámetros.- \"As Previsións de Vendas\" - " +"algúns menús para traballar con listas das previsións e as formas. Menú " +"\"Crear Prognósticos de Vendas para Períodos de Vendas\" crea Prognósticos " +"para os produtos da Categoría seleccionada, para o Período e Almacén " +"seleccionado. É unha opción \"Copia do Último Prognóstico\" para copiar " +"previsións e outros axustes do período anterior a este para crear un. " +"Observacións:- Esta ferramenta non crea liñas, se as liñas oportunas (para o " +"mesmo Produto, Período e Almacén, e validado ou creado por vostede) xa " +"existen. Se desexa crear outro prognóstico, se as liñas pertinentes existen " +"ten que facelo manualmente usando os menús que se describen a continuación.- " +"Cando se crean as liñas, son validadas por outra persoa que pode utilizar " +"esta ferramenta para crear outras liñas para o mesmo Período, Produto e " +"Almacén.- Cando se elixe \"Copiar Último Prognóstico\" a liña creada ten a " +"cantidade e algúns axustes do seu (validado ou creadas por vostede, se aínda " +"non se validou) prognóstico que para o último período anterior ó período da " +"previsión creada. Se hai poucos prognósticos para o período anterior a este " +"(é posible) o sistema toma unha deles (non existe regra sobre cal). Menús " +"\"Previsión de Vendas \"No formulario \"Prognóstico de Vendas\" " +"principalmente ten que introducir unha cantidade prevista na \"Cantidade de " +"Produto\". Ademais do cálculo pode funcionar para as previsións borrador. " +"Porén, a validación pode gardar os seus datos contra calquera cambio " +"accidental. Pode facer clic no botón \"Validar\", pero non é obrigatorio. No " +"lugar da cantidade prevista pódese introducir a cantidade de previsión de " +"vendas no campo \"Cantidade de Produto\". O sistema contará a cantidade en " +"función do Prezo de Venda do Produto. Tódolos valores do formulario " +"exprésanse na unidade de medida seleccionada no formulario. Vostede pode " +"seleccionar un na unidade de medida da categoría por defecto ou de segunda " +"categoría. Cando se cambia a unidade de medida as cantidades volveranse a " +"calcular de acordo coa nova UoM: os valores editables (campos azuis) " +"inmediatamente, os campos non editables despois de facer clic no botón " +"\"Calcular Planificación\". Para atopar o valor axeitado para o Prognóstico " +"de Venda, pódese utilizar a táboa \"Historial de vendas\" para este produto. " +"Tes que introducir os parámetros na parte superior esquerda desta táboa e o " +"sistema contará as cantidades de venda de acordo con estes parámetros. Así " +"que vostede pode seleccionar, por exemplo do seu departamento (na parte " +"superior) e logo (á esquerda): o último período, o período anterior ó último " +"e o período de fai un ano. Observacións: Planificación das " +"compras====================Menú para a Planificación do que podes atopar en " +"\"Almacén - Planificación do Stock\".- \"Crear arquivo de Planificación " +"Lines\" - permítelle automatizar a creación de liñas de planificación de " +"acordo con algúns parámetros.- \"Programador Mestre de Adquisicións\" – é o " +"menú máis importante do módulo que permite a creación da contratación. Con " +"arranxo ás previsións de vendas, é a fase de planificación de vendas. A " +"Planificación de compras (planificación) é a fase de programación de compras " +"ou de produción. Vostede pode crear a planificación das compras rapidamente " +"coa ferramenta do menú \"Crear Liñas de Planificación de Stock\", entón pode " +"revisar a planificación creada e facer compras usando o menú \"Lista Mestre " +"de Adquisicións\". Menú \"Crear Liñas de Planificación de Stock\" permítelle " +"crear rapidamente as Liñas de Planificación de produtos da categoría " +"seleccionada, en determinados períodos, e para o almacén seleccionado. Ó " +"marcar a opción \"Tódolos produtos con Prognóstico\"o sistema crea as liñas " +"para tódolos produtos que ten previsto para o Período seleccionado e " +"Almacén. A Categoría seleccionada terase en conta neste caso. Debaixo do " +"menú \"Programador Mestre de Adquisicións\" polo xeral, pode cambiar os " +"valores \"Saídas planificadas\" e \"Entradas planificadas\" para observar o " +"campo \"Simulación de Stock\" e decidir se este valor é exacto para o final " +"do período. \"Planeado\" pódese basear no \"Prognóstico de Almacén\", que é " +"a suma de tódalas previsións para o período e Almacén. Pero a planificación " +"pódese basear en calquera outra información que vostede teña. Non cómpre ter " +"ningún prognóstico.\"Entradas planificadas\" utilízase a cantidade para " +"calcular o campo \"Entradas Restantes\" que é a cantidade que falta por " +"adquirir para acadar o stock, como se indica na \"Simulación de Stock\" ó " +"final do período. Vostede pode comparar a \"Simulación de Stock\" coas " +"normas de cantidade mínima de existencias visibles no formulario. Pero pode " +"planear unha cantidade diferente ó das Regras Mínimas de Stock. O cálculo " +"está feito para todo o almacén por defecto. Pero se vostede quere ver os " +"valores do lugar do stock do almacén calculado, pode utilizar a casa \"Só " +"lugar do Stock\". Se despois de varios intentos decide que as cantidades son " +"correctas para \"Saídas planificadas\" e \"Entradas planificadas\" e que " +"está satisfeito co final de existencias do período calculado na \"Simulación " +"do Stock\" pode facer clic en \"Adquirir Entradas Restantes\" para obter a " +"cantidade do campo \"Entradas Restantes\" no Almacén. O sistema crea a " +"correspondente Orde de Compras. Vostede pode decidir se a contratación se " +"fará para o stock ou para o lugar de entrada do Almacén calculado. Se non " +"queres Producir ou Comprar o produto, pero só debes elixir a cantidade " +"calculada, desde outro almacén pode facer clic en \"Subministración desde " +"Outro Almacén\" (en lugar de \"Adquirir Entradas Restantes\"). O sistema " +"crea a lista de selección desde o Almacén de orixe seleccionado ata o " +"Almacén calculado (como destino). Tamén pode decidir se se debe facer esta " +"selección de almacén ou o lugar de saída do almacén de orixe. O lugar de " +"destino (almacén ou entrada) do almacén de destino, utilizarase como " +"establecido para \"Adquirir Entradas Restantes\". Para ver as cantidades " +"axeitadas nos campos \"Entrada Confirmada\", \"Saída Confirmada\", \"Entrada " +"Confirmada Antes\", \"Saídas planificadas antes\" e \"Simulación de Stock\" " +"ten que facer clic no botón \"Calcular Planificación\".Tódolos valores no " +"formulario exprésanse na unidade de medida seleccionada no formulario. " +"Vostede pode seleccionar un da unidade de medida da categoría por defecto ou " +"dunha segunda categoría. Cando se cambia a unidade de medida as cantidades " +"volveranse a calcular de acordo con UoM: os valores editables inmediatamente " +"(campos azuis), os campos non editables despois de facer clic no botón " +"\"Calcular Planificación\".Cómo se calcula o campo Simulación do Stock: " +"Xeralmente a Simulación do Stock amosa o stock ó final período calculado de " +"acordo con algúns movementos de stock previsto ou confirmado. Iníciase o " +"cálculo sempre coa cantidade de stock real do inicio do período actual. " +"Calcúlase logo a suma ou resta das cantidades do período ou períodos antes " +"calculados. Cando está no mesmo período (período actual é o mesmo có " +"calculado) a Simulación do Stock calcúlase como sigue: Simulación de Stock = " +"\t Stock inicial do período actual\t - Saídas planificadas \t + Entradas " +"planificadas Cando se calcula o período seguinte ó actual: Simulación do " +"Stock = \t Stock inicial do período actual \t - Planificación de Saídas do " +"Período actual\t + Entradas Confirmadas no Período actual (incl. as Entradas " +"xa existentes)\t - Saídas planificadas do Período calculado \t + Entradas " +"planificadas no Período calculado.Como pode ver o período calculado tómase " +"da mesma forma que no caso anterior. Porén, o cálculo do período actual " +"faise de xeito un pouco diferente. En primeiro lugar debe ter en conta que o " +"sistema ten para o Período actual só Confirmados os movementos de entrada. " +"Isto significa que ten que facer a planificación e a compra para Período " +"actual antes deste cálculo (para o Próximo período ó actual). Cando se " +"calcula o período seguinte: Colección de simulación = \t Stock inicial do " +"Período actual \t - Suma de Planificación de saída dos períodos antes " +"calculados \t + Suma de Confirmados En períodos anteriores calculados (incl. " +"as entradas xa existentes) \t - Saídas Planificadas do Período calculado \t " +"+ Entradas Planificadas do Período calculado. Os períodos anteriores " +"calculados, significa que os períodos comezados no actual ata o período " +"antes calculado. Observacións:- Lembre facer a planificación para tódolos " +"períodos antes calculados, omitir estas cantidades e as adquisicións poden " +"causar suxestións erróneas para as compras dalgúns períodos posteriores. - " +"Se realizou a planificación duns poucos períodos posteriores e atopa que as " +"Saídas Confirmadas reais son maiores co previsto nalgúns períodos antes de " +"que se poida repetir a Planificación e realizar outra adquisición. Debe " +"facelo na mesma liña da planificación. Se se crea outra liña de " +"planificación de suxestións pode estar equivocada.- Cando desexa traballar " +"con diferentes períodos para unha parte dos produtos, defina dous tipos de " +"períodos (Ex. semanal e mensual) e utilíceos para os diferentes produtos. " +"Exemplo: se utiliza sempre os períodos semanais para os produtos A, e os " +"períodos mensuais dos produtos B tódolos seus cálculos funcionarán " +"correctamente. Tamén pode utilizar diferentes tipos de períodos para os " +"mesmos produtos de diferentes almacéns de diferentes compañías. Pero non se " +"poden utilizar períodos solapados para o mesmo produto dun almacén, e " +"compañía porque se cadra non se poden predicir os resultados. Aplícase o " +"mesmo ás liñas de Previsións.\n" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:140 +#, python-format +msgid "Cannot delete Validated Sale Forecasts !" +msgstr "Non se poden borrar as previsións de vendas validadas!" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:641 +#: code:addons/stock_planning/stock_planning.py:683 +#, python-format +msgid "" +"\n" +" Planned Out: " +msgstr "" +"\n" +" Saídas planificadas: " + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:667 +#, python-format +msgid "" +"You must specify a Source Warehouse different than calculated (destination) " +"Warehouse !" +msgstr "" +"Debe especificar un almacén de orixe diferente do almacén calculado (de " +"destino)!" + +#. module: stock_planning +#: model:ir.actions.act_window,name:stock_planning.action_stock_sale_forecast_createlines_form +#: model:ir.ui.menu,name:stock_planning.menu_stock_sale_forecast_createlines +msgid "Create Sales Forecasts" +msgstr "Crear previsións de vendas" + +#. module: stock_planning +#: view:stock.sale.forecast.createlines:0 +msgid "Creates forecast lines for selected warehouse and period." +msgstr "Crear liñas de previsión para o almacén e período seleccionados." + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:656 +#, python-format +msgid "%s Requisition (%s, %s) %s %s \n" +msgstr "" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:655 +#, python-format +msgid "Requisition (" +msgstr "Solicitude (" + +#. module: stock_planning +#: help:stock.planning,outgoing_left:0 +msgid "" +"Quantity expected to go out in selected period. As a difference between " +"Planned Out and Confirmed Out. For current period Already Out is also " +"calculated" +msgstr "" +"Cantidade prevista para saír no período seleccionado. Diferenza entre as " +"saídas previstas e as saídas confirmadas. Para o período actual tamén se " +"calculan as saídas realizadas." + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period4_id:0 +msgid "Period4" +msgstr "Período4" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:642 +#: code:addons/stock_planning/stock_planning.py:684 +#, python-format +msgid " Already In: " +msgstr " Entradas realizadas: " + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period2_id:0 +msgid "Period2" +msgstr "Período2" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period3_id:0 +msgid "Period3" +msgstr "Período3" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period1_id:0 +msgid "Period1" +msgstr "Período1" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:647 +#: code:addons/stock_planning/stock_planning.py:689 +#, python-format +msgid " Minimum stock: " +msgstr " Stock mínimo: " + +#. module: stock_planning +#: field:stock.planning,active_uom:0 +#: field:stock.sale.forecast,active_uom:0 +msgid "Active UoM" +msgstr "UdM activa" + +#. module: stock_planning +#: model:ir.actions.act_window,name:stock_planning.action_stock_planning_createlines_form +#: model:ir.ui.menu,name:stock_planning.menu_stock_planning_createlines +#: view:stock.planning.createlines:0 +msgid "Create Stock Planning Lines" +msgstr "Crear liñas de planificación do stock" + +#. module: stock_planning +#: view:stock.planning:0 +msgid "General Info" +msgstr "Información xeral" + +#. module: stock_planning +#: model:ir.actions.act_window,name:stock_planning.action_view_stock_sale_forecast_form +msgid "Sales Forecast" +msgstr "Previsión de vendas" + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Planning and Situation for Calculated Period" +msgstr "Planificación e situación para o período calculado" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period1_per_warehouse:0 +msgid "This Warehouse Period1" +msgstr "Período deste almacén1" + +#. module: stock_planning +#: field:stock.planning,warehouse_forecast:0 +msgid "Warehouse Forecast" +msgstr "Previsión almacén" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:643 +#: code:addons/stock_planning/stock_planning.py:685 +#, python-format +msgid " Confirmed In: " +msgstr " Entradas confirmadas: " + +#. module: stock_planning +#: view:stock.sale.forecast:0 +msgid "Sales history" +msgstr "Histórico de vendas" + +#. module: stock_planning +#: field:stock.planning,supply_warehouse_id:0 +msgid "Source Warehouse" +msgstr "Almacén orixe" + +#. module: stock_planning +#: help:stock.sale.forecast,product_qty:0 +msgid "Forecasted quantity." +msgstr "Cantidade prevista." + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Stock" +msgstr "Stock" + +#. module: stock_planning +#: field:stock.planning,stock_supply_location:0 +msgid "Stock Supply Location" +msgstr "Lugar de subministración do stock" + +#. module: stock_planning +#: help:stock.period.createlines,date_stop:0 +msgid "Ending date for planning period." +msgstr "Data de fin para o período planificado." + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period2_per_user:0 +msgid "This User Period2" +msgstr "O período deste usuario2" + +#. module: stock_planning +#: help:stock.planning.createlines,forecasted_products:0 +msgid "" +"Check this box to create planning for all products having any forecast for " +"selected Warehouse and Period. Product Category field will be ignored." +msgstr "" +"Para crear a planificación de tódolos produtos que teñan calquera previsión " +"no almacén e período seleccionado, marque esta opción. Ignorarase o campo " +"categoría de produto." + +#. module: stock_planning +#: field:stock.planning,already_in:0 +msgid "Already In" +msgstr "Entradas realizadas" + +#. module: stock_planning +#: field:stock.planning,product_uom_categ:0 +#: field:stock.planning,product_uos_categ:0 +#: field:stock.sale.forecast,product_uom_categ:0 +msgid "Product UoM Category" +msgstr "Categoría UdM produto" + +#. module: stock_planning +#: field:stock.planning,incoming:0 +msgid "Confirmed In" +msgstr "Entradas confirmadas" + +#. module: stock_planning +#: field:stock.planning,line_time:0 +msgid "Past/Future" +msgstr "Pasado/Futuro" + +#. module: stock_planning +#: field:stock.sale.forecast,product_uos_categ:0 +msgid "Product UoS Category" +msgstr "Categoría UdV produto" + +#. module: stock_planning +#: field:stock.sale.forecast,product_qty:0 +msgid "Product Quantity" +msgstr "Cantidad de produto" + +#. module: stock_planning +#: field:stock.sale.forecast.createlines,copy_forecast:0 +msgid "Copy Last Forecast" +msgstr "Copiar última previsión" + +#. module: stock_planning +#: help:stock.sale.forecast,product_id:0 +msgid "Shows which product this forecast concerns." +msgstr "Amosa a que produto atangue esta previsión" + +#. module: stock_planning +#: selection:stock.planning,state:0 +msgid "Done" +msgstr "Feito" + +#. module: stock_planning +#: field:stock.period.createlines,period_ids:0 +msgid "Periods" +msgstr "Períodos" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:638 +#: code:addons/stock_planning/stock_planning.py:680 +#, python-format +msgid " according to state:" +msgstr " segundo o estado:" + +#. module: stock_planning +#: view:stock.period.createlines:0 +msgid "Cancel" +msgstr "Anular" + +#. module: stock_planning +#: view:stock.period:0 +#: selection:stock.period,state:0 +#: view:stock.planning.createlines:0 +#: view:stock.sale.forecast.createlines:0 +msgid "Close" +msgstr "Pechar" + +#. module: stock_planning +#: view:stock.sale.forecast:0 +#: selection:stock.sale.forecast,state:0 +msgid "Validated" +msgstr "Validado" + +#. module: stock_planning +#: view:stock.period:0 +#: selection:stock.period,state:0 +msgid "Open" +msgstr "Aberto" + +#. module: stock_planning +#: help:stock.sale.forecast.createlines,copy_forecast:0 +msgid "Copy quantities from last Stock and Sale Forecast." +msgstr "Copiar cantidades desde o stock pasado e previsión de vendas" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period1_per_dept:0 +msgid "This Dept Period1" +msgstr "O período deste Dpto.1" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period3_per_dept:0 +msgid "This Dept Period3" +msgstr "O período deste Dpto.3" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period2_per_dept:0 +msgid "This Dept Period2" +msgstr "O período deste Dpto.2" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period5_per_dept:0 +msgid "This Dept Period5" +msgstr "O período deste Dpto.5" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period4_per_dept:0 +msgid "This Dept Period4" +msgstr "O período deste Dpto.4" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period2_per_warehouse:0 +msgid "This Warehouse Period2" +msgstr "O período deste almacén2" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period3_per_warehouse:0 +msgid "This Warehouse Period3" +msgstr "O período deste almacén3" + +#. module: stock_planning +#: field:stock.planning,outgoing:0 +msgid "Confirmed Out" +msgstr "Saídas confirmadas" + +#. module: stock_planning +#: field:stock.sale.forecast,create_uid:0 +msgid "Responsible" +msgstr "Responsable" + +#. module: stock_planning +#: view:stock.sale.forecast:0 +msgid "Default UOM" +msgstr "UdM por defecto" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period4_per_warehouse:0 +msgid "This Warehouse Period4" +msgstr "O período deste almacén4" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period5_per_warehouse:0 +msgid "This Warehouse Period5" +msgstr "O período deste almacén5" + +#. module: stock_planning +#: view:stock.period:0 +msgid "Current" +msgstr "Corrente" + +#. module: stock_planning +#: model:ir.model,name:stock_planning.model_stock_planning +msgid "stock.planning" +msgstr "stock.planificación" + +#. module: stock_planning +#: help:stock.sale.forecast,warehouse_id:0 +msgid "" +"Shows which warehouse this forecast concerns. If during stock planning you " +"will need sales forecast for all warehouses choose any warehouse now." +msgstr "" +"Amosa a que almacén concirne esta previsión. Se durante a planificación de " +"stock precisa previsións de vendas para tódolos almacéns, escolla agora un " +"almacén calquera." + +#. module: stock_planning +#: help:stock.planning.createlines,warehouse_id:0 +msgid "Warehouse which planning will concern." +msgstr "Almacén ó cal se referirá a planificación" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:647 +#: code:addons/stock_planning/stock_planning.py:689 +#, python-format +msgid "" +"\n" +" Stock Simulation: " +msgstr "" +"\n" +" Simulación de stock: " + +#. module: stock_planning +#: help:stock.planning,to_procure:0 +msgid "" +"Enter quantity which (by your plan) should come in. Change this value and " +"observe Stock simulation. This value should be equal or greater than " +"Confirmed In." +msgstr "" +"Introducir a cantidade que (polo seu plan) debe entrar. Cambie este valor e " +"observe a simulación do stock. Este valor debería ser igual ou superior ás " +"entradas confirmadas." + +#. module: stock_planning +#: help:stock.planning.createlines,period_id:0 +msgid "Period which planning will concern." +msgstr "Período ó cal atangue a planificación" + +#. module: stock_planning +#: field:stock.planning,already_out:0 +msgid "Already Out" +msgstr "Saídas realizadas" + +#. module: stock_planning +#: help:stock.planning,product_id:0 +msgid "Product which this planning is created for." +msgstr "Produto para o que foi creada esta planificación." + +#. module: stock_planning +#: view:stock.sale.forecast:0 +msgid "Per Warehouse :" +msgstr "Por almacén:" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:639 +#: code:addons/stock_planning/stock_planning.py:681 +#, python-format +msgid "" +"\n" +" Warehouse Forecast: " +msgstr "" +"\n" +" Previsión almacén: " + +#. module: stock_planning +#: field:stock.planning,history:0 +msgid "Procurement History" +msgstr "Histórico abastecementos" + +#. module: stock_planning +#: help:stock.period.createlines,date_start:0 +msgid "Starting date for planning period." +msgstr "Data inicial para o período planificado." + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:641 +#: code:addons/stock_planning/stock_planning.py:683 +#, python-format +msgid " Planned In: " +msgstr " Entradas planificadas: " + +#. module: stock_planning +#: field:stock.sale.forecast,analyze_company:0 +msgid "Per Company" +msgstr "Por compañía" + +#. module: stock_planning +#: help:stock.planning,incoming_left:0 +msgid "" +"Quantity left to Planned incoming quantity. This is calculated difference " +"between Planned In and Confirmed In. For current period Already In is also " +"calculated. This value is used to create procurement for lacking quantity." +msgstr "" +"Cantidade restante da cantidade entrante planificada. Calcúlase mediante a " +"diferenza entre as entradas planificadas e as confirmadas. Para o período " +"actual tamén se calculan as entradas realizadas. Este valor úsase para crear " +"abastecementos para a cantidade que falta." + +#. module: stock_planning +#: help:stock.planning,incoming:0 +msgid "Quantity of all confirmed incoming moves in calculated Period." +msgstr "Cantidades de tódalas entradas confirmadas no período calculado." + +#. module: stock_planning +#: field:stock.period,date_stop:0 +#: field:stock.period.createlines,date_stop:0 +msgid "End Date" +msgstr "Data de remate" + +#. module: stock_planning +#: help:stock.planning,stock_supply_location:0 +msgid "" +"Check to supply from Stock location of Supply Warehouse. If not checked " +"supply will be made from Output location of Supply Warehouse. Used in " +"'Supply from Another Warhouse' with Supply Warehouse." +msgstr "" +"Marque esta opción para subministrar desde o lugar do stock do almacén de " +"subministración. Se non se marca, realizarase a subministración desde o " +"lugar de saída do almacén de subministración. Utilizado en 'Subministrar " +"desde outro almacén' cun almacén de subministración." + +#. module: stock_planning +#: view:stock.planning:0 +msgid "No Requisition" +msgstr "Nº solicitude" + +#. module: stock_planning +#: help:stock.planning,minimum_op:0 +msgid "Minimum quantity set in Minimum Stock Rules for this Warhouse" +msgstr "" +"Cantidade mínima establecida nas regras de stock mínimo para este almacén." + +#. module: stock_planning +#: help:stock.sale.forecast,period_id:0 +msgid "Shows which period this forecast concerns." +msgstr "Amosa a que período atangue esta previsión." + +#. module: stock_planning +#: field:stock.planning,product_uom:0 +msgid "UoM" +msgstr "UoM" + +#. module: stock_planning +#: view:stock.planning:0 +msgid "Calculated Period Simulation" +msgstr "Simulación calculada do período" + +#. module: stock_planning +#: view:stock.planning:0 +#: field:stock.planning,product_id:0 +#: view:stock.sale.forecast:0 +#: field:stock.sale.forecast,product_id:0 +msgid "Product" +msgstr "Produto" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:638 +#: code:addons/stock_planning/stock_planning.py:680 +#, python-format +msgid "" +"\n" +"For period: " +msgstr "" +"\n" +"Por período: " + +#. module: stock_planning +#: field:stock.sale.forecast,product_uom:0 +msgid "Product UoM" +msgstr "UdM do produto" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:627 +#: code:addons/stock_planning/stock_planning.py:673 +#: code:addons/stock_planning/stock_planning.py:697 +#, python-format +msgid "MPS(%s) %s" +msgstr "" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:627 +#: code:addons/stock_planning/stock_planning.py:671 +#: code:addons/stock_planning/stock_planning.py:693 +#, python-format +msgid "MPS(" +msgstr "MPS(" + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:680 +#, python-format +msgid "" +"Pick created from MPS by user: %s Creation Date: %s " +" \n" +"For period: %s according to state: \n" +" Warehouse Forecast: %s \n" +" Initial Stock: %s \n" +" Planned Out: %s Planned In: %s \n" +" Already Out: %s Already In: %s \n" +" Confirmed Out: %s Confirmed In: %s \n" +" Planned Out Before: %s Confirmed In Before: %s " +" \n" +" Expected Out: %s Incoming Left: %s \n" +" Stock Simulation: %s Minimum stock: %s " +msgstr "" + +#. module: stock_planning +#: field:stock.planning,procure_to_stock:0 +msgid "Procure To Stock Location" +msgstr "Abastecemento ó lugar do stock" + +#. module: stock_planning +#: view:stock.sale.forecast:0 +msgid "Approve" +msgstr "Aprobar" + +#. module: stock_planning +#: help:stock.planning,period_id:0 +msgid "" +"Period for this planning. Requisition will be created for beginning of the " +"period." +msgstr "" +"Período para esta planificación. Crearase unha solicitude ó principio do " +"período." + +#. module: stock_planning +#: view:stock.sale.forecast:0 +msgid "Calculate Sales History" +msgstr "Calcular historial de vendas" + +#. module: stock_planning +#: field:stock.sale.forecast,product_amt:0 +msgid "Product Amount" +msgstr "Cantidade de produto" + +#. module: stock_planning +#: help:stock.planning,confirmed_forecasts_only:0 +msgid "" +"Check to take validated forecasts only. If not checked system takes " +"validated and draft forecasts." +msgstr "" +"Marcar para usar só as previsións validadas. Se non se marca, o sistema usa " +"as previsións validadas e o borrador." + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_period5_id:0 +msgid "Period5" +msgstr "Período5" + +#. module: stock_planning +#: model:ir.actions.act_window,name:stock_planning.action_stock_period_createlines_form +msgid "Stock and Sales Planning Periods" +msgstr "Períodos de planificación de stock e vendas" + +#. module: stock_planning +#: field:stock.sale.forecast,analyzed_warehouse_id:0 +msgid "This Warehouse" +msgstr "Este almacén" + +#. module: stock_planning +#: model:ir.actions.act_window,name:stock_planning.action_stock_period_form +#: model:ir.ui.menu,name:stock_planning.menu_stock_period +#: model:ir.ui.menu,name:stock_planning.menu_stock_period_main +#: view:stock.period:0 +#: view:stock.period.createlines:0 +msgid "Stock and Sales Periods" +msgstr "Períodos de stock e vendas" + +#. module: stock_planning +#: help:stock.sale.forecast,user_id:0 +msgid "Shows who created this forecast, or who validated." +msgstr "Amosa quen creou esta previsión, ou quen a validou." + +#. module: stock_planning +#: code:addons/stock_planning/stock_planning.py:644 +#: code:addons/stock_planning/stock_planning.py:686 +#, python-format +msgid "" +"\n" +" Planned Out Before: " +msgstr "" +"\n" +" Saídas planificadas antes: " + +#. module: stock_planning +#: field:stock.planning,stock_start:0 +msgid "Initial Stock" +msgstr "Stock inicial" + +#, python-format +#~ msgid "Pick List " +#~ msgstr "Lista de recollida " + +#, python-format +#~ msgid "Manual planning for " +#~ msgstr "Planificación manual para " + +#, python-format +#~ msgid "Procurement created in MPS by user: " +#~ msgstr "Abastecemento creado en MPS polo usuario: " + +#, python-format +#~ msgid "Pick created from MPS by user: " +#~ msgstr "Albará creado desde MPS polo usuario: " diff --git a/addons/warning/i18n/fi.po b/addons/warning/i18n/fi.po new file mode 100644 index 00000000000..7743bb21985 --- /dev/null +++ b/addons/warning/i18n/fi.po @@ -0,0 +1,235 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:16+0000\n" +"PO-Revision-Date: 2011-06-08 10:31+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: warning +#: model:ir.model,name:warning.model_purchase_order_line +#: field:product.product,purchase_line_warn:0 +msgid "Purchase Order Line" +msgstr "Ostotilauksen rivi" + +#. module: warning +#: field:product.product,sale_line_warn_msg:0 +msgid "Message for Sale Order Line" +msgstr "Vietsi myyntitilausriville" + +#. module: warning +#: field:product.product,purchase_line_warn_msg:0 +msgid "Message for Purchase Order Line" +msgstr "Viesti ostotilausriville" + +#. module: warning +#: constraint:res.partner:0 +msgid "Error ! You can not create recursive associated members." +msgstr "Virhe! Rekursiivisesti rinnastettuja jäseniä ei voi luoda." + +#. module: warning +#: model:ir.model,name:warning.model_stock_picking +msgid "Picking List" +msgstr "Keräilylista" + +#. module: warning +#: field:product.product,sale_line_warn:0 +msgid "Sale Order Line" +msgstr "Myyntitilausrivi" + +#. module: warning +#: view:product.product:0 +msgid "Warning when Purchasing this Product" +msgstr "Varoitus tätä tuotetta ostettaessa" + +#. module: warning +#: model:ir.model,name:warning.model_product_product +msgid "Product" +msgstr "Tuote" + +#. module: warning +#: sql_constraint:purchase.order:0 +#: sql_constraint:sale.order:0 +msgid "Order Reference must be unique !" +msgstr "Tilauksen viite tulee olla yksilöllinen!" + +#. module: warning +#: view:product.product:0 +#: view:res.partner:0 +msgid "Warnings" +msgstr "Varoitukset" + +#. module: warning +#: selection:product.product,purchase_line_warn:0 +#: selection:product.product,sale_line_warn:0 +#: selection:res.partner,invoice_warn:0 +#: selection:res.partner,picking_warn:0 +#: selection:res.partner,purchase_warn:0 +#: selection:res.partner,sale_warn:0 +msgid "Warning" +msgstr "Varoitus" + +#. module: warning +#: selection:product.product,purchase_line_warn:0 +#: selection:product.product,sale_line_warn:0 +#: selection:res.partner,invoice_warn:0 +#: selection:res.partner,picking_warn:0 +#: selection:res.partner,purchase_warn:0 +#: selection:res.partner,sale_warn:0 +msgid "Blocking Message" +msgstr "Estoviesti" + +#. module: warning +#: view:res.partner:0 +msgid "Warning on the Invoice" +msgstr "Varoitus laskulle" + +#. module: warning +#: selection:product.product,purchase_line_warn:0 +#: selection:product.product,sale_line_warn:0 +#: selection:res.partner,invoice_warn:0 +#: selection:res.partner,picking_warn:0 +#: selection:res.partner,purchase_warn:0 +#: selection:res.partner,sale_warn:0 +msgid "No Message" +msgstr "Ei viestiä" + +#. module: warning +#: model:ir.model,name:warning.model_account_invoice +#: field:res.partner,invoice_warn:0 +msgid "Invoice" +msgstr "Lasku" + +#. module: warning +#: model:ir.module.module,shortdesc:warning.module_meta_information +msgid "Module for Warnings form onchange Event" +msgstr "" + +#. module: warning +#: view:product.product:0 +msgid "Warning when Selling this Product" +msgstr "Varoitus myytäessä tätä tuotetta" + +#. module: warning +#: field:res.partner,sale_warn:0 +msgid "Sale Order" +msgstr "Myyntitilaus" + +#. module: warning +#: field:res.partner,picking_warn:0 +msgid "Stock Picking" +msgstr "Varatokeräily" + +#. module: warning +#: model:ir.model,name:warning.model_purchase_order +#: field:res.partner,purchase_warn:0 +msgid "Purchase Order" +msgstr "Ostotilaus" + +#. module: warning +#: field:res.partner,sale_warn_msg:0 +msgid "Message for Sale Order" +msgstr "Viesti myyntitilaukselle" + +#. module: warning +#: field:res.partner,purchase_warn_msg:0 +msgid "Message for Purchase Order" +msgstr "Viesti ostotilaukselle" + +#. module: warning +#: code:addons/warning/warning.py:32 +#: help:product.product,purchase_line_warn:0 +#: help:product.product,sale_line_warn:0 +#: help:res.partner,invoice_warn:0 +#: help:res.partner,picking_warn:0 +#: help:res.partner,purchase_warn:0 +#: help:res.partner,sale_warn:0 +#, python-format +msgid "" +"Selecting the \"Warning\" option will notify user with the message, " +"Selecting \"Blocking Message\" will throw an exception with the message and " +"block the flow. The Message has to be written in the next field." +msgstr "" + +#. module: warning +#: code:addons/warning/warning.py:67 +#: code:addons/warning/warning.py:96 +#: code:addons/warning/warning.py:132 +#: code:addons/warning/warning.py:163 +#: code:addons/warning/warning.py:213 +#: code:addons/warning/warning.py:246 +#, python-format +msgid "Alert for %s !" +msgstr "Varoita %s !" + +#. module: warning +#: field:res.partner,invoice_warn_msg:0 +msgid "Message for Invoice" +msgstr "Viesti laskulle" + +#. module: warning +#: model:ir.module.module,description:warning.module_meta_information +msgid "Module for Warnings form onchange Event." +msgstr "" + +#. module: warning +#: view:res.partner:0 +msgid "Warning on the Picking" +msgstr "Varoitus keräilyyn" + +#. module: warning +#: view:res.partner:0 +msgid "Warning on the Purchase Order" +msgstr "Varoitus ostotilaukselle" + +#. module: warning +#: code:addons/warning/warning.py:68 +#: code:addons/warning/warning.py:97 +#: code:addons/warning/warning.py:134 +#: code:addons/warning/warning.py:164 +#: code:addons/warning/warning.py:214 +#: code:addons/warning/warning.py:247 +#, python-format +msgid "Warning for %s" +msgstr "Varoitus %s" + +#. module: warning +#: view:res.partner:0 +msgid "Warning on the Sale Order" +msgstr "Varoitus ostotilaukselle" + +#. module: warning +#: constraint:product.product:0 +msgid "Error: Invalid ean code" +msgstr "Virhe: Väärä EAN-koodi" + +#. module: warning +#: field:res.partner,picking_warn_msg:0 +msgid "Message for Stock Picking" +msgstr "Varoitus varastokeräilylle" + +#. module: warning +#: model:ir.model,name:warning.model_res_partner +msgid "Partner" +msgstr "Kumppani" + +#. module: warning +#: model:ir.model,name:warning.model_sale_order +msgid "Sales Order" +msgstr "Myyntitilaus" + +#. module: warning +#: model:ir.model,name:warning.model_sale_order_line +msgid "Sales Order Line" +msgstr "Myyntitilauksen Rivi" diff --git a/addons/web_livechat/i18n/fi.po b/addons/web_livechat/i18n/fi.po new file mode 100644 index 00000000000..a50eb1041fd --- /dev/null +++ b/addons/web_livechat/i18n/fi.po @@ -0,0 +1,39 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:16+0000\n" +"PO-Revision-Date: 2011-06-08 10:30+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: web_livechat +#: sql_constraint:publisher_warranty.contract:0 +msgid "" +"Your publisher warranty contract is already subscribed in the system !" +msgstr "" + +#. module: web_livechat +#: model:ir.module.module,shortdesc:web_livechat.module_meta_information +msgid "Live Chat Support" +msgstr "Chatin tuki" + +#. module: web_livechat +#: model:ir.model,name:web_livechat.model_publisher_warranty_contract +msgid "publisher_warranty.contract" +msgstr "" + +#. module: web_livechat +#: model:ir.module.module,description:web_livechat.module_meta_information +msgid "Enable live chat support for whom have a maintenance contract" +msgstr "Aloita chatti tuki ylläpitosopimuksen toimittajan kanssa" diff --git a/addons/web_uservoice/i18n/fi.po b/addons/web_uservoice/i18n/fi.po new file mode 100644 index 00000000000..5aef806a5b1 --- /dev/null +++ b/addons/web_uservoice/i18n/fi.po @@ -0,0 +1,29 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-12 16:15+0000\n" +"PO-Revision-Date: 2011-06-08 10:29+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: web_uservoice +#: model:ir.module.module,shortdesc:web_uservoice.module_meta_information +msgid "Add uservoice button in header" +msgstr "Lisää käyttäjän ääni nappula alkuun" + +#. module: web_uservoice +#: code:addons/web_uservoice/web/editors.py:72 +#, python-format +msgid "feedback" +msgstr "palaute" diff --git a/addons/wiki_sale_faq/i18n/fi.po b/addons/wiki_sale_faq/i18n/fi.po new file mode 100644 index 00000000000..1e035715d29 --- /dev/null +++ b/addons/wiki_sale_faq/i18n/fi.po @@ -0,0 +1,70 @@ +# Finnish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:16+0000\n" +"PO-Revision-Date: 2011-06-08 10:28+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Finnish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-09 04:35+0000\n" +"X-Generator: Launchpad (build 13168)\n" + +#. module: wiki_sale_faq +#: model:ir.actions.act_window,name:wiki_sale_faq.action_document_form +#: model:ir.ui.menu,name:wiki_sale_faq.menu_document_files +#: model:ir.ui.menu,name:wiki_sale_faq.menu_sales +msgid "Documents" +msgstr "Asiakirjat" + +#. module: wiki_sale_faq +#: model:ir.actions.act_window,name:wiki_sale_faq.action_wiki_test +msgid "Wiki Pages" +msgstr "Wiki sivustot" + +#. module: wiki_sale_faq +#: model:ir.ui.menu,name:wiki_sale_faq.menu_action_wiki_wiki +msgid "FAQ" +msgstr "UKK" + +#. module: wiki_sale_faq +#: model:ir.module.module,description:wiki_sale_faq.module_meta_information +msgid "" +"This module provides a wiki FAQ Template\n" +" " +msgstr "" +"Tämä moduuli sisältää wiki UKK (faq) pohjan\n" +" " + +#. module: wiki_sale_faq +#: model:ir.actions.act_window,help:wiki_sale_faq.action_wiki_test +msgid "" +"Wiki pages allow you to share ideas and questions with coworkers. You can " +"create a new document that can be linked to one or several applications " +"(specifications of a project, FAQ for sales teams, etc.). Keywords can be " +"used to easily tag wiki pages. You should use this application with the " +"OpenERP web client interface." +msgstr "" + +#. module: wiki_sale_faq +#: model:ir.module.module,shortdesc:wiki_sale_faq.module_meta_information +msgid "Wiki -Sale - FAQ" +msgstr "Wiki -Myynti - UKK" + +#. module: wiki_sale_faq +#: model:ir.actions.act_window,help:wiki_sale_faq.action_document_form +msgid "" +"Documents give you access to all files attached to any record. It is a " +"repository of all documents such as emails, project-related attachments or " +"any other documents. From this view, you can search through the content of " +"the documents. OpenERP automatically assign meta data based on the record " +"like the related partner and indexes the content of .DOC, .ODT, .TXT, .SXW " +"and .PDF documents." +msgstr "" diff --git a/addons/wiki_sale_faq/i18n/tr.po b/addons/wiki_sale_faq/i18n/tr.po new file mode 100644 index 00000000000..3e36156a8b2 --- /dev/null +++ b/addons/wiki_sale_faq/i18n/tr.po @@ -0,0 +1,81 @@ +# Turkish translation for openobject-addons +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-addons\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-01-11 11:16+0000\n" +"PO-Revision-Date: 2011-06-07 20:16+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Turkish \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-06-08 04:36+0000\n" +"X-Generator: Launchpad (build 12959)\n" + +#. module: wiki_sale_faq +#: model:ir.actions.act_window,name:wiki_sale_faq.action_document_form +#: model:ir.ui.menu,name:wiki_sale_faq.menu_document_files +#: model:ir.ui.menu,name:wiki_sale_faq.menu_sales +msgid "Documents" +msgstr "Dökümanlar" + +#. module: wiki_sale_faq +#: model:ir.actions.act_window,name:wiki_sale_faq.action_wiki_test +msgid "Wiki Pages" +msgstr "Wiki Sayfaları" + +#. module: wiki_sale_faq +#: model:ir.ui.menu,name:wiki_sale_faq.menu_action_wiki_wiki +msgid "FAQ" +msgstr "SSS" + +#. module: wiki_sale_faq +#: model:ir.module.module,description:wiki_sale_faq.module_meta_information +msgid "" +"This module provides a wiki FAQ Template\n" +" " +msgstr "" +"Bu modül bir wiki Sıkça Sorulan Sorular Şablonu içerir\n" +" " + +#. module: wiki_sale_faq +#: model:ir.actions.act_window,help:wiki_sale_faq.action_wiki_test +msgid "" +"Wiki pages allow you to share ideas and questions with coworkers. You can " +"create a new document that can be linked to one or several applications " +"(specifications of a project, FAQ for sales teams, etc.). Keywords can be " +"used to easily tag wiki pages. You should use this application with the " +"OpenERP web client interface." +msgstr "" +"Wiki sayfaları çalışma arkadaşlarınızla sorular ve fikirler paylaşmanıza " +"yardım eder. Bir veya birden çok uygulamadan bağlantı verilebilecek yeni " +"dökümanlar oluşturabilirsiniz. (Bir projenin özellikleri, Satış temsilcileri " +"için SSS, vb. ) Wiki sayfalarını anahtar kelimelerle kolayca " +"etiketleyebilirsiniz. Bu uygulamayı OpenERP web istemci arayüzü ile " +"kullanmalısınız." + +#. module: wiki_sale_faq +#: model:ir.module.module,shortdesc:wiki_sale_faq.module_meta_information +msgid "Wiki -Sale - FAQ" +msgstr "Wiki - Satış - SSS" + +#. module: wiki_sale_faq +#: model:ir.actions.act_window,help:wiki_sale_faq.action_document_form +msgid "" +"Documents give you access to all files attached to any record. It is a " +"repository of all documents such as emails, project-related attachments or " +"any other documents. From this view, you can search through the content of " +"the documents. OpenERP automatically assign meta data based on the record " +"like the related partner and indexes the content of .DOC, .ODT, .TXT, .SXW " +"and .PDF documents." +msgstr "" +"Dökümanlar size herhangi bir kayda eklenmiş bütün dosyalara erişim verir. " +"Bütün dökümanları, mesela e-posta mesajları, proje-ilgili ekler vs gibi " +"kapsayan bir depolama kabıdır. Bu görüntüden dökümanın içeriğinde arama " +"yapabilirsiniz. OpenERP dökümanın meta-bilgilerini ilgili cari ve kaydedilen " +"dökümanların içeriklerinde (.DOC, .ODT, .TXT, .SXW ve PDF) oluşturur." From b0022af2c7c6e7fb3daee4d4266a4e76ecb5e2ba Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Wed, 8 Jun 2011 12:04:27 +0200 Subject: [PATCH 38/63] [IMP] account: good default value for some accounting reports bzr revid: qdp-launchpad@openerp.com-20110608100427-l3q2epim235cgg14 --- addons/account/report/account_balance.py | 4 ++-- addons/account/report/account_balance.rml | 2 +- addons/account/report/account_balance_sheet.py | 4 ++-- addons/account/report/account_balance_sheet.rml | 2 +- addons/account/report/account_balance_sheet_horizontal.rml | 2 +- addons/account/report/account_general_ledger.py | 4 ++-- addons/account/report/account_general_ledger_landscape.rml | 2 +- addons/account/report/account_profit_horizontal.rml | 2 +- addons/account/report/account_profit_loss.py | 4 ++-- addons/account/report/account_profit_loss.rml | 2 +- addons/account/wizard/account_report_balance_sheet.py | 2 +- addons/account/wizard/account_report_common_account.py | 6 +++--- addons/account/wizard/account_report_profit_loss.py | 2 +- 13 files changed, 19 insertions(+), 19 deletions(-) diff --git a/addons/account/report/account_balance.py b/addons/account/report/account_balance.py index 80508ede44b..c3117e60379 100644 --- a/addons/account/report/account_balance.py +++ b/addons/account/report/account_balance.py @@ -88,10 +88,10 @@ class account_balance(report_sxw.rml_parse, common_report_header): } self.sum_debit += account_rec['debit'] self.sum_credit += account_rec['credit'] - if disp_acc == 'bal_movement': + if disp_acc == 'movement': if not currency_obj.is_zero(self.cr, self.uid, currency, res['credit']) or not currency_obj.is_zero(self.cr, self.uid, currency, res['debit']) or not currency_obj.is_zero(self.cr, self.uid, currency, res['balance']): self.result_acc.append(res) - elif disp_acc == 'bal_solde': + elif disp_acc == 'not_zero': if not currency_obj.is_zero(self.cr, self.uid, currency, res['balance']): self.result_acc.append(res) else: diff --git a/addons/account/report/account_balance.rml b/addons/account/report/account_balance.rml index 7c9aa13da2e..3d971862bdc 100644 --- a/addons/account/report/account_balance.rml +++ b/addons/account/report/account_balance.rml @@ -233,7 +233,7 @@ - + diff --git a/addons/account/report/account_balance_sheet.py b/addons/account/report/account_balance_sheet.py index 79bcce882ae..eb8e5ee9967 100644 --- a/addons/account/report/account_balance_sheet.py +++ b/addons/account/report/account_balance_sheet.py @@ -143,10 +143,10 @@ class report_balancesheet_horizontal(report_sxw.rml_parse, common_report_header) self.result_sum_dr += account.balance if typ == 'asset' and account.type <> 'view' and (account.debit <> account.credit): self.result_sum_cr += account.balance - if data['form']['display_account'] == 'bal_movement': + if data['form']['display_account'] == 'movement': if not currency_pool.is_zero(self.cr, self.uid, currency, account.credit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.debit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.balance): accounts_temp.append(account_dict) - elif data['form']['display_account'] == 'bal_solde': + elif data['form']['display_account'] == 'not_zero': if not currency_pool.is_zero(self.cr, self.uid, currency, account.balance): accounts_temp.append(account_dict) else: diff --git a/addons/account/report/account_balance_sheet.rml b/addons/account/report/account_balance_sheet.rml index 7fa92e9bcd1..a078b9a6901 100644 --- a/addons/account/report/account_balance_sheet.rml +++ b/addons/account/report/account_balance_sheet.rml @@ -174,7 +174,7 @@ - + diff --git a/addons/account/report/account_balance_sheet_horizontal.rml b/addons/account/report/account_balance_sheet_horizontal.rml index 96d437d3f00..7e4f9f844a5 100644 --- a/addons/account/report/account_balance_sheet_horizontal.rml +++ b/addons/account/report/account_balance_sheet_horizontal.rml @@ -163,7 +163,7 @@ - + diff --git a/addons/account/report/account_general_ledger.py b/addons/account/report/account_general_ledger.py index a42f6bface8..294c7fa99cf 100644 --- a/addons/account/report/account_general_ledger.py +++ b/addons/account/report/account_general_ledger.py @@ -117,10 +117,10 @@ class general_ledger(report_sxw.rml_parse, common_report_header): num_entry = self.cr.fetchone()[0] or 0 sold_account = self._sum_balance_account(child_account) self.sold_accounts[child_account.id] = sold_account - if self.display_account == 'bal_movement': + if self.display_account == 'movement': if child_account.type != 'view' and num_entry <> 0: res.append(child_account) - elif self.display_account == 'bal_solde': + elif self.display_account == 'not_zero': if child_account.type != 'view' and num_entry <> 0: if not currency_obj.is_zero(self.cr, self.uid, currency, sold_account): res.append(child_account) diff --git a/addons/account/report/account_general_ledger_landscape.rml b/addons/account/report/account_general_ledger_landscape.rml index 22712af0f8c..ac100c3ecd0 100644 --- a/addons/account/report/account_general_ledger_landscape.rml +++ b/addons/account/report/account_general_ledger_landscape.rml @@ -395,7 +395,7 @@ [[', '.join([ lt or '' for lt in get_journal(data) ]) ]] - + diff --git a/addons/account/report/account_profit_loss.py b/addons/account/report/account_profit_loss.py index 740f7524975..5f5d561a572 100644 --- a/addons/account/report/account_profit_loss.py +++ b/addons/account/report/account_profit_loss.py @@ -113,10 +113,10 @@ class report_pl_account_horizontal(report_sxw.rml_parse, common_report_header): self.result_sum_dr += account.debit - account.credit if typ == 'income' and account.type <> 'view' and (account.debit <> account.credit): self.result_sum_cr += account.credit - account.debit - if data['form']['display_account'] == 'bal_movement': + if data['form']['display_account'] == 'movement': if not currency_pool.is_zero(self.cr, self.uid, currency, account.credit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.debit) or not currency_pool.is_zero(self.cr, self.uid, currency, account.balance): accounts_temp.append(account) - elif data['form']['display_account'] == 'bal_solde': + elif data['form']['display_account'] == 'not_zero': if not currency_pool.is_zero(self.cr, self.uid, currency, account.balance): accounts_temp.append(account) else: diff --git a/addons/account/report/account_profit_loss.rml b/addons/account/report/account_profit_loss.rml index ca6be309556..d83a39f6757 100644 --- a/addons/account/report/account_profit_loss.rml +++ b/addons/account/report/account_profit_loss.rml @@ -184,7 +184,7 @@ - + diff --git a/addons/account/wizard/account_report_balance_sheet.py b/addons/account/wizard/account_report_balance_sheet.py index 18d3622b16c..873ede3832c 100644 --- a/addons/account/wizard/account_report_balance_sheet.py +++ b/addons/account/wizard/account_report_balance_sheet.py @@ -48,7 +48,7 @@ class account_bs_report(osv.osv_memory): } _defaults={ - 'display_type': True, + 'display_type': False, 'journal_ids': [], 'reserve_account_id': _get_def_reserve_account, } diff --git a/addons/account/wizard/account_report_common_account.py b/addons/account/wizard/account_report_common_account.py index 0040d563bdd..4e0fe2d6c66 100644 --- a/addons/account/wizard/account_report_common_account.py +++ b/addons/account/wizard/account_report_common_account.py @@ -26,13 +26,13 @@ class account_common_account_report(osv.osv_memory): _description = 'Account Common Account Report' _inherit = "account.common.report" _columns = { - 'display_account': fields.selection([('bal_all','All'), ('bal_movement','With movements'), - ('bal_solde','With balance is not equal to 0'), + 'display_account': fields.selection([('all','All'), ('movement','With movements'), + ('not_zero','With balance is not equal to 0'), ],'Display Accounts', required=True), } _defaults = { - 'display_account': 'bal_all', + 'display_account': 'movement', } def pre_print_report(self, cr, uid, ids, data, context=None): diff --git a/addons/account/wizard/account_report_profit_loss.py b/addons/account/wizard/account_report_profit_loss.py index c526550e789..6372539c056 100644 --- a/addons/account/wizard/account_report_profit_loss.py +++ b/addons/account/wizard/account_report_profit_loss.py @@ -33,7 +33,7 @@ class account_pl_report(osv.osv_memory): } _defaults = { - 'display_type': True, + 'display_type': False, 'journal_ids': [], 'target_move': False } From d6f59ca25b3d5428bde62503d1c92dde023e6524 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 8 Jun 2011 14:15:45 +0200 Subject: [PATCH 39/63] [IMP] simplify list-wise aggregation computations, improve sub-grouping so sub-groups are created immediately rather than on render bzr revid: xmo@openerp.com-20110608121545-aq7xmog2plmddcxe --- addons/base/static/src/js/list.js | 122 ++++++++++++------------------ 1 file changed, 47 insertions(+), 75 deletions(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index 60aa252cedb..d1ae08bfb94 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -436,67 +436,38 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi * @param {Array} [records] */ compute_aggregates: function (records) { - if (_.isEmpty(this.aggregate_columns)) { - return; - } + var columns = _(this.aggregate_columns).filter(function (column) { + return column['function']; }); + + if (_.isEmpty(columns)) { return; } + if (_.isEmpty(records)) { records = this.groups.get_records(); } - var aggregator = this.build_aggregator(this.aggregate_columns); - this.display_aggregates( - _(records).reduce(aggregator, aggregator).value()); - }, - /** - * Creates a stateful callable aggregator object, which can be reduced over - * a collection of records in order to build the aggregations described - * by the parameter - * - * @param {Array} aggregation_descriptors - */ - build_aggregator: function (aggregation_descriptors) { - var values = {}; - var descriptors = {}; - _(aggregation_descriptors).each(function (descriptor) { - values[descriptor.field] = []; - descriptors[descriptor.field] = descriptor; + var count = 0, sums = {}; + _(columns).each(function (column) { sums[column.field] = 0; }); + _(records).each(function (record) { + count += 1; //(record.count || 1); + _(columns).each(function (column) { + sums[column.field] += record[column.field]; + }); }); - var aggregator = function (_i, record) { - _(values).each(function (collection, key) { - collection.push(record[key]); - }); + var aggregates = {}; + _(columns).each(function (column) { + var field = column.field; + switch (column['function']) { + case 'sum': + aggregates[field] = sums[field]; + break; + case 'avg': + aggregates[field] = sums[field] / count; + break; + } + }); - return aggregator; - }; - aggregator.value = function () { - var result = {}; - - _(values).each(function (collection, key) { - var value; - switch(descriptors[key]['function']) { - case 'avg': - value = (_(collection).chain() - .filter(function (item) { - return !_.isUndefined(item); }) - .reduce(function (total, item) { - return total + item; }, 0).value() - / collection.length); - break; - case 'sum': - value = (_(collection).chain() - .filter(function (item) { - return !_.isUndefined(item); }) - .reduce(function (total, item) { - return total + item; }, 0).value()); - break; - } - result[key] = value; - }); - - return result; - }; - return aggregator; + this.display_aggregates(aggregates); }, display_aggregates: function (aggregation) { var $footer_cells = this.$element.find('.oe-list-footer'); @@ -790,24 +761,11 @@ openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Gr } return red_letter_tboday; }, - open_group: function (e, group) { - var row = e.currentTarget; - - if (this.children[group.value]) { - this.children[group.value].apoptosis(); - delete this.children[group.value]; - } - var prospekt = this.children[group.value] = new openerp.base.ListView.Groups(this.view, { - options: this.options, - columns: this.columns - }); - this.bind_child_events(prospekt); - prospekt.datagroup = group; - prospekt.render().insertAfter( - this.point_insertion(row)); - $(row).find('span.ui-icon') - .removeClass('ui-icon-triangle-1-e') - .addClass('ui-icon-triangle-1-s'); + open: function (point_insertion) { + this.render().insertAfter(point_insertion); + }, + close: function () { + this.apoptosis(); }, /** * Prefixes ``$node`` with floated spaces in order to indent it relative @@ -827,18 +785,32 @@ openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Gr var self = this; var placeholder = this.make_fragment(); _(datagroups).each(function (group) { + if (self.children[group.value]) { + self.children[group.value].apoptosis(); + delete self.children[group.value]; + } + var child = self.children[group.value] = new openerp.base.ListView.Groups(self.view, { + options: self.options, + columns: self.columns + }); + self.bind_child_events(child); + child.datagroup = group; + var $row = $(''); if (group.openable) { $row.click(function (e) { if (!$row.data('open')) { - $row.data('open', true); - self.open_group(e, group); + $row.data('open', true) + .find('span.ui-icon') + .removeClass('ui-icon-triangle-1-e') + .addClass('ui-icon-triangle-1-s'); + child.open(self.point_insertion(e.currentTarget)); } else { $row.removeData('open') .find('span.ui-icon') .removeClass('ui-icon-triangle-1-s') .addClass('ui-icon-triangle-1-e'); - _(self.children).each(function (child) {child.apoptosis();}); + child.close(); } }); } From 04c0fc1931d37dfce0e71854d446a51f401e37ce Mon Sep 17 00:00:00 2001 From: "Yogesh (OpenERP)" Date: Wed, 8 Jun 2011 18:18:13 +0530 Subject: [PATCH 40/63] Remove unused code. lp bug: https://launchpad.net/bugs/792059 fixed bzr revid: ysa@tinyerp.com-20110608124813-62yj6d75yxy8o0p0 --- openerp/addons/base/res/partner/crm.py | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/openerp/addons/base/res/partner/crm.py b/openerp/addons/base/res/partner/crm.py index 22ae27bcaae..d7decade3ca 100644 --- a/openerp/addons/base/res/partner/crm.py +++ b/openerp/addons/base/res/partner/crm.py @@ -20,8 +20,8 @@ ############################################################################## import time -from osv import fields,osv - +from osv import osv +from osv import fields # # Sale/Purchase Canal, Media @@ -31,7 +31,7 @@ class res_partner_canal(osv.osv): _description = "Channels" _order = 'name' _columns = { - 'name': fields.char('Channel Name',size=64, required=True), + 'name': fields.char('Channel Name', size=64, required=True), 'active': fields.boolean('Active'), } _defaults = { @@ -39,16 +39,10 @@ class res_partner_canal(osv.osv): } res_partner_canal() -def _links_get(self, cr, uid, context={}): - obj = self.pool.get('res.request.link') - ids = obj.search(cr, uid, []) - res = obj.read(cr, uid, ids, ['object', 'name'], context) - return [(r['object'], r['name']) for r in res] - class res_partner_event(osv.osv): _name = "res.partner.event" _columns = { - 'name': fields.char('Events',size=64, required=True), + 'name': fields.char('Events', size=64, required=True), 'description': fields.text('Description'), 'partner_id': fields.many2one('res.partner', 'Partner', select=True), 'date': fields.datetime('Date', size=16), @@ -61,5 +55,4 @@ class res_partner_event(osv.osv): } res_partner_event() - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: From 80e26dce12293b3f31cbdc75c1bbc3599f1e2691 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 8 Jun 2011 14:55:31 +0200 Subject: [PATCH 41/63] [FIX] list-wise aggregation in case of groups bzr revid: xmo@openerp.com-20110608125531-qmsey70ec127asyt --- addons/base/static/src/js/list.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/addons/base/static/src/js/list.js b/addons/base/static/src/js/list.js index d1ae08bfb94..b4528de5afd 100644 --- a/addons/base/static/src/js/list.js +++ b/addons/base/static/src/js/list.js @@ -371,7 +371,9 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi this.compute_aggregates(); return; } - this.compute_aggregates(records); + this.compute_aggregates(_(records).map(function (record) { + return {count: 1, values: record}; + })); }, /** * Handles action button signals on a record @@ -448,9 +450,17 @@ openerp.base.ListView = openerp.base.View.extend( /** @lends openerp.base.ListVi var count = 0, sums = {}; _(columns).each(function (column) { sums[column.field] = 0; }); _(records).each(function (record) { - count += 1; //(record.count || 1); + count += record.count || 1; _(columns).each(function (column) { - sums[column.field] += record[column.field]; + var field = column.field; + switch (column['function']) { + case 'sum': + sums[field] += record.values[field]; + break; + case 'avg': + sums[field] += record.count * record.values[field]; + break; + } }); }); @@ -630,7 +640,7 @@ openerp.base.ListView.List = Class.extend( /** @lends openerp.base.ListView.List _(row.data).each(function (obj, key) { record[key] = obj.value; }); - return record; + return {count: 1, values: record}; }); }, /** @@ -941,6 +951,12 @@ openerp.base.ListView.Groups = Class.extend( /** @lends openerp.base.ListView.Gr return this; }, get_records: function () { + if (_(this.children).isEmpty()) { + return { + count: this.datagroup.length, + values: this.datagroup.aggregates + } + } return _(this.children).chain() .map(function (child) { return child.get_records(); From f824cd6aa3589838b0fe5bccd6455131c81845e8 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 8 Jun 2011 15:33:01 +0200 Subject: [PATCH 42/63] [FIX] recompute aggregates after saving a record bzr revid: xmo@openerp.com-20110608133301-l3cdm9r2254zs20u --- addons/base/static/src/js/list-editable.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index ec9f21f61b7..fd20a51c0ef 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -20,6 +20,12 @@ openerp.base.list.editable = function (openerp) { $(this.groups).bind({ 'edit': function (e, id, dataset) { self.do_edit(dataset.index, id, dataset); + }, + 'saved': function () { + if (self.groups.get_selection().length) { + return; + } + self.compute_aggregates(); } }) }, @@ -78,7 +84,7 @@ openerp.base.list.editable = function (openerp) { }); _.extend(openerp.base.ListView.Groups.prototype, /** @lends openerp.base.ListView.Groups# */{ - passtrough_events: openerp.base.ListView.Groups.prototype.passtrough_events + " edit", + passtrough_events: openerp.base.ListView.Groups.prototype.passtrough_events + " edit saved", new_record: function () { // TODO: handle multiple children this.children[null].new_record(); @@ -187,6 +193,8 @@ openerp.base.list.editable = function (openerp) { delete self.edition_form; delete self.edition_index; delete self.edition; + + $(self).trigger('saved', [self.dataset]); if (!edit_next) { return; } From a905ab7f178ee082642c4d7bf9908cdb3d69fd3d Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 8 Jun 2011 15:51:41 +0200 Subject: [PATCH 43/63] [IMP] don't wait for the bloody record to be fully loaded to fixup cell styles and add groupby columns (in case of grouping), it makes the list titles jittery which looks terrible. Instead, can fixup the row right after rendering, which makes the whole thing much stabler bzr revid: xmo@openerp.com-20110608135141-g6rz1g77ykyg2cja --- addons/base/static/src/js/list-editable.js | 35 ++++++++++------------ 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index fd20a51c0ef..9bbde25a74d 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -158,26 +158,23 @@ openerp.base.list.editable = function (openerp) { template: 'ListView.row.form', registry: openerp.base.list.form.widgets }); - this.edition_form.on_loaded({fields_view: this.get_fields_view()}); - this.edition_form.on_record_loaded.add({ - position: 'last', - unique: true, - callback: function () { - var $e = self.edition_form.$element; - $e.find('td') - .addClass('oe-field-cell') - .removeAttr('width') - .end() - .find('td:first').removeClass('oe-field-cell').end() - .find('td:last').removeClass('oe-field-cell').end(); - _(self.columns).each(function (column) { - if (column.meta) { - $e.prepend('', { id: _.uniqueId('oe-editable-row-'), 'class': $(row).attr('class'), - onclick: function (e) {e.stopPropagation();} + click: function (e) {e.stopPropagation();} }) .keyup(function (e) { switch (e.which) { From 70ece35196e77fdc66b876dd5b14ccd7c3e6f22a Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 8 Jun 2011 17:29:44 +0200 Subject: [PATCH 46/63] [imp] rewritten search & selection bzr revid: nicolas.vanhoren@openerp.com-20110608152944-6vw8dxrw6z0u5ll7 --- addons/base/static/src/js/form.js | 53 ++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 4051c06b27c..3f6cf2e6805 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -953,8 +953,8 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ init: function(view, node) { this._super(view, node); this.template = "FieldMany2One"; - this.is_field_m2o = true; this.limit = 7; + this.value = null; }, start: function() { this._super(); @@ -962,12 +962,36 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ this.$input = this.$element.find("input"); this.$drop_down = this.$element.find("span"); this.$menu_btn = this.$element.find("button"); + + this.$input.change(function() { + if (self.$input.val() === "") { + self.value = null; + } else { + self.value = undefined; + } + }); this.$drop_down.button({ icons: {primary: "ui-icon-triangle-1-s"}, text: false + }).click(function() { + if (self.$input.autocomplete( "widget" ).is( ":visible" )) { + self.$input.autocomplete("close"); + } else { + self.$input.autocomplete("search"); + } }); this.$input.autocomplete({ - source: function(req, resp) { self.get_search_result(req, resp); } + source: function(req, resp) { self.get_search_result(req, resp); }, + select: function( event, ui ) { + var item = ui.item; + if (item.id) { + self.value = [item.id, item.label]; + } else if (item.action) { + self.value = undefined; + item.action(); + return false; + } + } }); }, get_search_result: function(request, response) { @@ -976,32 +1000,31 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []); - dataset.name_search(search_val, this.limit + 1, function(data){ - var result = data.result; - var values = []; - - $.each(result, function(i, val){ - values.push({ - value: val[1], - id: val[0] - }); + dataset.name_search(search_val, this.limit + 1, function(data) { + var values = _.map(data.result, function(x) { + return {label: x[1], id:x[0]}; }); - var overflow = false; + if (values.length > this.limit) { values = values.slice(0, this.limit); - overflow = true; + values.push({label: " More...", action: function() {debugger;}}); } + values.push({label: " Create...", action: function() {debugger;}}); response(values); }); }, set_value: function(value) { if (value != false) { - this.data_id = value; + this.value = value; + this.$input.val(this.value[1]); } }, get_value: function() { - return ""; + return this.value !== undefined ? + (this.value !== null ? this.value[0] : null) : undefined; }, + + //TODO niv: add validation }); openerp.base.form.FieldOne2Many = openerp.base.form.Field.extend({ From f3b817665fb3a3c2d0e686459f6e5fc94a21f77d Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Wed, 8 Jun 2011 17:47:44 +0200 Subject: [PATCH 47/63] [fix] some fixes related to drop down button bzr revid: nicolas.vanhoren@openerp.com-20110608154744-ipbu5cf30p1dxoc1 --- addons/base/static/src/js/form.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 3f6cf2e6805..7cc76214960 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -973,10 +973,11 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ this.$drop_down.button({ icons: {primary: "ui-icon-triangle-1-s"}, text: false }).click(function() { - if (self.$input.autocomplete( "widget" ).is( ":visible" )) { + if (self.$input.autocomplete("widget").is(":visible")) { self.$input.autocomplete("close"); } else { self.$input.autocomplete("search"); + self.$input.focus(); } }); @@ -1007,9 +1008,9 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ if (values.length > this.limit) { values = values.slice(0, this.limit); - values.push({label: " More...", action: function() {debugger;}}); + values.push({label: "   More...", action: function() {debugger;}}); } - values.push({label: " Create...", action: function() {debugger;}}); + values.push({label: "   Create...", action: function() {debugger;}}); response(values); }); }, From 971276b5999410a06f4253792495286dbea1fa79 Mon Sep 17 00:00:00 2001 From: Vo Minh Thu Date: Thu, 9 Jun 2011 09:34:16 +0200 Subject: [PATCH 48/63] [ADD] openerp/netsvc: use cgitb to format the exception sent to the client, code/idea by chs. bzr revid: vmt@openerp.com-20110609073416-ml22a1vhtizl3z71 --- openerp/netsvc.py | 3 +- setup.py | 244 +++++++++++++++++++++++++++++++--------------- 2 files changed, 166 insertions(+), 81 deletions(-) mode change 100644 => 100755 setup.py diff --git a/openerp/netsvc.py b/openerp/netsvc.py index 9ce7f4a35d2..4d01d5295fe 100644 --- a/openerp/netsvc.py +++ b/openerp/netsvc.py @@ -24,6 +24,7 @@ # ############################################################################## +import cgitb import errno import logging import logging.handlers @@ -430,7 +431,7 @@ class OpenERPDispatcher: except Exception, e: self.log('exception', tools.exception_to_unicode(e)) tb = getattr(e, 'traceback', sys.exc_info()) - tb_s = "".join(traceback.format_exception(*tb)) + tb_s = cgitb.text(tb) if tools.config['debug_mode']: import pdb pdb.post_mortem(tb[2]) diff --git a/setup.py b/setup.py old mode 100644 new mode 100755 index 1255bf8b887..62fb0c9a532 --- a/setup.py +++ b/setup.py @@ -1,89 +1,173 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +# setup from TinERP +# taken from straw http://www.nongnu.org/straw/index.html +# taken from gnomolicious http://www.nongnu.org/gnomolicious/ +# adapted by Nicolas Évrard +# +# doc/migrate is not included since about 6.1-dev +# doc/tests is not included +# python25-compat/*py should be in the openerp (and imported appropriately) -import os -import re import sys -from setuptools import setup +import os +from os.path import join, isfile +import glob -name = 'openerp-web-proto' -version = '6.0.1' -description = "Web Client of OpenERP, the Enterprise Management Software" -long_description = "OpenERP Web is the web client of the OpenERP, a free enterprise management software" -author = "OpenERP S.A." -author_email = "info@openerp.com" -support_email = 'support@openerp.com' -url = "http://www.openerp.com/" -download_url = '' -license = "OEPL" +from setuptools import setup, find_packages -version_dash_incompatible = False -if 'bdist_rpm' in sys.argv: - version_dash_incompatible = True -try: +# Backports os.walk with followlinks from python 2.6. +# Needed to add all addons files to data_files for Windows packaging. +def walk_followlinks(top, topdown=True, onerror=None, followlinks=False): + from os.path import join, isdir, islink + from os import listdir, error + + try: + names = listdir(top) + except error, err: + if onerror is not None: + onerror(err) + return + + dirs, nondirs = [], [] + for name in names: + if isdir(join(top, name)): + dirs.append(name) + else: + nondirs.append(name) + + if topdown: + yield top, dirs, nondirs + for name in dirs: + path = join(top, name) + if followlinks or not islink(path): + for x in walk_followlinks(path, topdown, onerror, followlinks): + yield x + if not topdown: + yield top, dirs, nondirs + +if sys.version_info < (2, 6): + os.walk = walk_followlinks + +py2exe_keywords = {} +py2exe_data_files = [] +if os.name == 'nt': import py2exe - from py2exe_utils import opts - version_dash_incompatible = True -except ImportError: - opts = {} -if version_dash_incompatible: - version = version.split('-')[0] + py2exe_keywords['console'] = [ + { "script": "openerp-server", + "icon_resources": [(1, join("pixmaps","openerp-icon.ico"))], + }] + py2exe_keywords['options'] = { + "py2exe": { + "skip_archive": 1, + "optimize": 2, + "dist_dir": 'dist', + "packages": [ + "lxml", "lxml.builder", "lxml._elementpath", "lxml.etree", + "lxml.objectify", "decimal", "xml", "xml", "xml.dom", "xml.xpath", + "encodings", "dateutil", "pychart", "PIL", "pyparsing", + "pydot", "asyncore","asynchat", "reportlab", "vobject", + "HTMLParser", "select", "mako", "poplib", + "imaplib", "smtplib", "email", "yaml", "DAV", + "uuid", "commands", "openerp", # TODO is it necessary to include cgitb? + ], + "excludes" : ["Tkconstants","Tkinter","tcl"], + } + } + # TODO is it still necessary now that we don't use the library.zip file? + def data_files(): + '''For Windows, we consider all the addons as data files. + It seems also that package_data below isn't honored by py2exe.''' + files = [] + os.chdir('openerp') + for (dp, dn, names) in os.walk('addons'): + files.append((join('openerp',dp), map(lambda x: join('openerp', dp, x), names))) + os.chdir('..') + files.append(('openerp', [join('openerp', 'import_xml.rng'),])) -FILE_PATTERNS = \ - r'.+\.(py|cfg|po|pot|mo|txt|rst|gif|png|jpg|ico|mako|html|js|css|htc|swf)$' -def find_data_files(source, patterns=FILE_PATTERNS): - file_matcher = re.compile(patterns, re.I) - out = [] - for base, _, files in os.walk(source): - cur_files = [] - for f in files: - if file_matcher.match(f): - cur_files.append(os.path.join(base, f)) - if cur_files: - out.append( - (base, cur_files)) + # copy pytz/timzeone + # TODO check if we have to also copy dateutil's timezone data. + import pytz + # Make sure the layout of pytz hasn't changed + assert (pytz.__file__.endswith('__init__.pyc') or + pytz.__file__.endswith('__init__.py')), pytz.__file__ + pytz_dir = os.path.dirname(pytz.__file__) - return out + saved_dir = os.getcwd() + os.chdir(pytz_dir) + for dp, dn, names in os.walk('zoneinfo'): + files.append((join('pytz',dp), map(lambda x: join(pytz_dir, dp, x), names))) + os.chdir(saved_dir) -setup( - name=name, - version=version, - description=description, - long_description=long_description, - author=author, - author_email=author_email, - url=url, - download_url=download_url, - license=license, - install_requires=[ - "CherryPy >= 3.1.2", - "Babel >= 0.9.4", - "simplejson >= 2.0.9", - "python-dateutil >= 1.4.1", - "pytz", - ], - tests_require=[ - 'unittest2', - 'mock', - ], - test_suite = 'unittest2.collector', - zip_safe=False, - packages=[ - 'addons', - 'addons.base', - 'addons.base.controllers', - 'addons.base_calendar', - 'addons.base_hello', - 'openerpweb', - ], - classifiers=[ - 'Development Status :: 6 - Production/Stable', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Environment :: Web Environment', - 'Topic :: Office/Business :: Financial', - ], - scripts=['scripts/openerp-web'], - data_files=(find_data_files('addons') - + opts.pop('data_files', []) - ), - **opts + return files + py2exe_data_files = data_files() + +execfile(join('openerp', 'release.py')) + +setup(name = name, + version = version, + description = description, + long_description = long_desc, + url = url, + author = author, + author_email = author_email, + classifiers = filter(None, classifiers.split("\n")), + license = license, + data_files = [ + (join('man', 'man1'), ['man/openerp-server.1']), + (join('man', 'man5'), ['man/openerp_serverrc.5']), + ('doc', filter(isfile, glob.glob('doc/*'))), + ] + py2exe_data_files, + scripts = ['openerp-server'], + packages = find_packages(), + include_package_data = True, + package_data = { + '': ['*.yml', '*.xml', '*.po', '*.pot', '*.csv'], + }, + dependency_links = ['http://download.gna.org/pychart/'], + install_requires = [ + # We require the same version as caldav for lxml. + 'lxml==2.1.5', + 'mako', + 'python-dateutil', + 'psycopg2', + # TODO the pychart package we include in openerp corresponds to PyChart 1.37. + # It seems there is a single difference, which is a spurious print in generate_docs.py. + # It is probably safe to move to PyChart 1.39 (the latest one). + # (Let setup.py choose the latest one, and we should check we can remove pychart from + # our tree.) + 'pychart', + 'pydot', + 'pytz', + 'reportlab', + 'caldav', + 'pyyaml', + 'pywebdav', + 'feedparser', + ], + extras_require = { + 'SSL' : ['pyopenssl'], + }, + **py2exe_keywords ) + From 28c6b1c7d82236c1cb39917a8215d13243c1e8f2 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 9 Jun 2011 15:20:04 +0200 Subject: [PATCH 49/63] [imp] improvements of the m2o bzr revid: nicolas.vanhoren@openerp.com-20110609132004-vac8h7r2im3wdlq5 --- addons/base/controllers/main.py | 8 ++-- addons/base/static/src/js/data.js | 11 ++---- addons/base/static/src/js/form.js | 62 ++++++++++++++++++++---------- addons/base/static/src/js/views.js | 2 +- 4 files changed, 49 insertions(+), 34 deletions(-) diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 528c7de670d..a0373d258a3 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -430,9 +430,9 @@ class DataSet(openerpweb.Controller): return Model.unlink(ids) @openerpweb.jsonrequest - def call(self, req, model, method, ids, args): + def call(self, req, model, method, args): m = req.session.model(model) - r = getattr(m, method)(ids, *args) + r = getattr(m, method)(*args) return {'result': r} @openerpweb.jsonrequest @@ -447,9 +447,9 @@ class DataSet(openerpweb.Controller): return {'result': r} @openerpweb.jsonrequest - def name_search(self, req, model, search_str, domain=[], context={}, limit=None): + def name_search(self, req, model, search_str, domain=[], context={}, limit=False): m = req.session.model(model) - r = m.name_search(search_str+'%', domain, '=ilike', context, limit) + r = m.name_search(search_str, domain, 'ilike', context, limit) return {'result': r} class DataGroup(openerpweb.Controller): diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index f1e40b09d36..b40d12a614b 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -313,16 +313,11 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. // to implement in children this.notification.notify("Unlink", ids); }, - call: function (method, ids, args, callback) { - this.notification.notify( - "Calling", this.model + '#' + method + '(' + ids + ')'); - ids = ids || []; - args = args || []; + call: function (method, args, callback) { return this.rpc('/base/dataset/call', { model: this.model, method: method, - ids: ids, - args: args + args: args || [] }, callback); }, name_search: function (search_str, limit, callback) { @@ -332,7 +327,7 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. search_str: search_str, domain: this.domain || [], context: this.context, - limit: limit || null + limit: limit || false }, callback); }, exec_workflow: function (id, signal, callback) { diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 7cc76214960..a95ab76b1db 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -983,7 +983,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ this.$input.autocomplete({ source: function(req, resp) { self.get_search_result(req, resp); }, - select: function( event, ui ) { + select: function(event, ui) { var item = ui.item; if (item.id) { self.value = [item.id, item.label]; @@ -1006,11 +1006,25 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ return {label: x[1], id:x[0]}; }); - if (values.length > this.limit) { - values = values.slice(0, this.limit); - values.push({label: "   More...", action: function() {debugger;}}); + if (values.length > self.limit) { + values = values.slice(0, self.limit); + values.push({label: "   More...", action: function() { + dataset.name_search(search_val, false, function(data) { + var pop = new openerp.base.form.Many2XSelectPopup(null, self.view.session); + pop.select_element(self.field.relation, _.map(data.result, function(x) {return x[0]})); + pop.on_select_element.add(function(element_id) { + dataset.call("name_get", [element_id], function(data) { + self.value = data.result[0]; + self.$input.val(self.value[1]); + pop.stop(); + }); + }); + }); + }}); } - values.push({label: "   Create...", action: function() {debugger;}}); + values.push({label: "   Create...", action: function() { + + }}); response(values); }); }, @@ -1168,9 +1182,10 @@ openerp.base.form.Many2ManyListView = openerp.base.ListView.extend({ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({ identifier_prefix: "many2xselectpopup", template: "Many2XSelectPopup", - select_element: function(model, dataset) { + select_element: function(model, initial_ids, initial_view) { this.model = model; - this.dataset = dataset; + this.initial_ids = initial_ids; + this.initial_view = initial_view || "search"; jQuery(this.render()).dialog({title: '', modal: true, minWidth: 800}); @@ -1178,10 +1193,12 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({ }, start: function() { this._super(); - if (!this.dataset) { - this.dataset = new openerp.base.DataSetSearch(this.session, this.model); + this.dataset = new openerp.base.DataSetSearch(this.session, this.model); + if (this.initial_view == "search") { + this.setup_search_view(); + } else { // "form" + this.new_object(); } - this.setup_search_view(); }, setup_search_view: function() { var self = this; @@ -1191,8 +1208,12 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({ this.searchview = new openerp.base.SearchView(null, this.session, this.element_id + "_search", this.dataset, false, {}); this.searchview.on_search.add(function(domains, contexts, groupbys) { - self.view_list.do_search.call( - self, domains, contexts, groupbys); + if (self.initial_ids) { + self.view_list.do_search.call(self, [[["id", "in", self.initial_ids]]], contexts, groupbys); + self.initial_ids = undefined; + } else { + self.view_list.do_search.call(self, domains, contexts, groupbys); + } }); this.searchview.on_loaded.add_last(function () { var $buttons = self.searchview.$element.find(".oe_search-view-buttons"); @@ -1210,13 +1231,8 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({ {'deletable': false}); self.view_list.popup = self; self.view_list.do_show(); - self.view_list.start(); - var tmphack = {"loaded": false}; - self.view_list.on_loaded.add_last(function() { - if ( !tmphack.loaded ) { - self.searchview.do_search(); - tmphack.loaded = true; - }; + self.view_list.start().then(function() { + self.searchview.do_search(); }); }); this.searchview.start(); @@ -1225,8 +1241,12 @@ openerp.base.form.Many2XSelectPopup = openerp.base.BaseWidget.extend({ }, new_object: function() { var self = this; - this.searchview.hide(); - this.view_list.$element.hide(); + if (this.searchview) { + this.searchview.hide(); + } + if (this.view_list) { + this.view_list.$element.hide(); + } this.dataset.index = null; this.view_form = new openerp.base.FormView(null, this.session, this.element_id + "_view_form", this.dataset, false); diff --git a/addons/base/static/src/js/views.js b/addons/base/static/src/js/views.js index 4c259babd8f..499b1b86887 100644 --- a/addons/base/static/src/js/views.js +++ b/addons/base/static/src/js/views.js @@ -392,7 +392,7 @@ openerp.base.View = openerp.base.Controller.extend({ var context = _.extend({}, dataset.context, action_data.context || {}); switch(action_data.type) { case 'object': - return dataset.call(action_data.name, [record_id], [context], handler); + return dataset.call(action_data.name, [[record_id], context], handler); case 'action': return this.rpc('/base/action/load', { action_id: parseInt(action_data.name, 10) }, handler); default: From f9776c399a33a2cf220079743054bacfefbfb4eb Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 9 Jun 2011 19:08:51 +0200 Subject: [PATCH 50/63] [imp] m2o, added context menu, made most actions work correctly bzr revid: nicolas.vanhoren@openerp.com-20110609170851-bcr7ofczlgq0o5f8 --- .../jquery.contextmenu.r2.packed.js | 126 ++++++++++++++++++ addons/base/static/src/base.html | 1 + addons/base/static/src/js/form.js | 55 ++++++-- addons/base/static/src/xml/base.xml | 5 + 4 files changed, 176 insertions(+), 11 deletions(-) create mode 100644 addons/base/static/lib/jquery.contextmenu/jquery.contextmenu.r2.packed.js diff --git a/addons/base/static/lib/jquery.contextmenu/jquery.contextmenu.r2.packed.js b/addons/base/static/lib/jquery.contextmenu/jquery.contextmenu.r2.packed.js new file mode 100644 index 00000000000..cb456eed14c --- /dev/null +++ b/addons/base/static/lib/jquery.contextmenu/jquery.contextmenu.r2.packed.js @@ -0,0 +1,126 @@ +(function($) { + var menu,shadow,trigger,content,hash,currentTarget; + var defaults= { + menuStyle: { + listStyle:'none', + padding:'1px', + margin:'0px', + backgroundColor:'#fff', + border:'1px solid #999', + width:'100px' + }, + itemStyle: { + margin:'0px', + color:'#000', + display:'block', + cursor:'default', + padding:'3px', + border:'1px solid #fff', + backgroundColor:'transparent' + }, + itemHoverStyle: { + border:'1px solid #0a246a', + backgroundColor:'#b6bdd2' + }, + eventPosX:'pageX', + eventPosY:'pageY', + shadow:true, + onContextMenu:null, + onShowMenu:null + }; + $.fn.contextMenu= function(id,options) { + if(!menu) { + menu=$('
').hide().css({ + position:'absolute', + zIndex:'500' + }).appendTo('body').bind('click', function(e) { + e.stopPropagation() + }) + } + if(!shadow) { + shadow=$('
').css({ + backgroundColor:'#000', + position:'absolute', + opacity:0.2, + zIndex:499 + }).appendTo('body').hide() + } + hash=hash||[]; + hash.push({ + id:id, + menuStyle:$.extend({},defaults.menuStyle,options.menuStyle|| {}), + itemStyle:$.extend({},defaults.itemStyle,options.itemStyle|| {}), + itemHoverStyle:$.extend({},defaults.itemHoverStyle,options.itemHoverStyle|| {}), + bindings:options.bindings|| {}, + shadow:options.shadow||options.shadow===false?options.shadow:defaults.shadow, + onContextMenu:options.onContextMenu||defaults.onContextMenu, + onShowMenu:options.onShowMenu||defaults.onShowMenu, + eventPosX:options.eventPosX||defaults.eventPosX, + eventPosY:options.eventPosY||defaults.eventPosY + }); + var index=hash.length-1; + var callback = function(e) { + var bShowContext=(!!hash[index].onContextMenu)?hash[index].onContextMenu(e):true; + if(bShowContext) + display(index,this,e,options); + return false; + }; + $(this).bind('contextmenu', callback); + if(options.leftClickToo) { + $(this).click(callback); + } + return this + }; + function display(index,trigger,e,options) { + var cur=hash[index]; + content=$('#'+cur.id).find('ul:first').clone(true); + content.css(cur.menuStyle).find('li').css(cur.itemStyle).hover( function() { + $(this).css(cur.itemHoverStyle) + }, function() { + $(this).css(cur.itemStyle) + }).find('img').css({ + verticalAlign:'middle', + paddingRight:'2px' + }); + menu.html(content); + if(!!cur.onShowMenu) + menu=cur.onShowMenu(e,menu); + $.each(cur.bindings, function(id,func) { + $('#'+id,menu).bind('click', function(e) { + hide(); + func(trigger,currentTarget) + }) + }); + menu.css({ + 'left':e[cur.eventPosX], + 'top':e[cur.eventPosY] + }).show(); + if(cur.shadow) + shadow.css({ + width:menu.width(), + height:menu.height(), + left:e.pageX+2, + top:e.pageY+2 + }).show(); + $(document).one('click',hide) + } + + function hide() { + menu.hide(); + shadow.hide() + } + + $.contextMenu= { + defaults: function(userDefaults) { + $.each(userDefaults, function(i,val) { + if(typeof val=='object'&&defaults[i]) { + $.extend(defaults[i],val) + } else + defaults[i]=val + }) + } + } +})(jQuery); +$( function() { + $('div.contextMenu').hide() +}); \ No newline at end of file diff --git a/addons/base/static/src/base.html b/addons/base/static/src/base.html index 009eae2a239..2761638c6d0 100644 --- a/addons/base/static/src/base.html +++ b/addons/base/static/src/base.html @@ -19,6 +19,7 @@ + diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index 99fde5185c1..4ec0b25872f 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -985,13 +985,38 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ this.template = "FieldMany2One"; this.limit = 7; this.value = null; + this.cm_id = _.uniqueId('m2o_cm_'); }, start: function() { this._super(); var self = this; this.$input = this.$element.find("input"); this.$drop_down = this.$element.find("span"); - this.$menu_btn = this.$element.find("button"); + this.$menu_btn = this.$element.find("img"); + + var bindings = {}; + bindings[this.cm_id + "_search"] = function() { + self._search_create_popup("search"); + }; + bindings[this.cm_id + "_create"] = function() { + self._search_create_popup("form"); + }; + bindings[this.cm_id + "_open"] = function() { + if (!self.value) { + return; + } + self.session.action_manager.do_action({ + "res_model": self.field.relation, + "views":[[false,"form"]], + "res_id": self.value[0], + "type":"ir.actions.act_window", + "view_type":"form", + "view_mode":"form", + "target":"new" + }); + }; + var cmenu = this.$menu_btn.contextMenu(this.cm_id, {'leftClickToo': true, + bindings: bindings}); this.$input.change(function() { if (self.$input.val() === "") { @@ -1040,24 +1065,32 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ values = values.slice(0, self.limit); values.push({label: "   More...", action: function() { dataset.name_search(search_val, false, function(data) { - var pop = new openerp.base.form.Many2XSelectPopup(null, self.view.session); - pop.select_element(self.field.relation, _.map(data.result, function(x) {return x[0]})); - pop.on_select_element.add(function(element_id) { - dataset.call("name_get", [element_id], function(data) { - self.value = data.result[0]; - self.$input.val(self.value[1]); - pop.stop(); - }); - }); + self._search_create_popup("search", data.result); }); }}); } + values.push({label: '   Create "' + search_val + '"', action: function() { + self._search_create_popup("form"); + }}); values.push({label: "   Create...", action: function() { - + self._search_create_popup("form"); }}); response(values); }); }, + _search_create_popup: function(view, ids) { + var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []); + var self = this; + var pop = new openerp.base.form.Many2XSelectPopup(null, self.view.session); + pop.select_element(self.field.relation, ids ? _.map(ids, function(x) {return x[0]}) : undefined, view); + pop.on_select_element.add(function(element_id) { + dataset.call("name_get", [element_id], function(data) { + self.value = data.result[0]; + self.$input.val(self.value[1]); + pop.stop(); + }); + }); + }, set_value: function(value) { if (value != false) { this.value = value; diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index 5f258c6456b..7b45be97db5 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -531,6 +531,11 @@ tabindex="-1" title="Show All Items"> Open + From 38a6e52f24521aaa6bfc794eb11e81ac8a607cab Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Thu, 9 Jun 2011 19:36:44 +0200 Subject: [PATCH 51/63] [imp] design improvements bzr revid: nicolas.vanhoren@openerp.com-20110609173644-jb92t37j75c7xl87 --- addons/base/static/src/css/base.css | 60 +++------------------- addons/base/static/src/img/down-arrow.png | Bin 0 -> 263 bytes addons/base/static/src/js/form.js | 8 ++- addons/base/static/src/xml/base.xml | 8 +-- 4 files changed, 13 insertions(+), 63 deletions(-) create mode 100644 addons/base/static/src/img/down-arrow.png diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index d8ce605a78a..026770f3f23 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -1011,60 +1011,12 @@ background: linear-gradient(top, #ffffff 0%,#ebe9e9 100%); /* W3C */ border-color: #828282; } -/* Many2one Autosearch */ -.openerp .ui_combo { - height: 19px; - top: 6px; - width: 20px; - position: relative; - margin-left: -26px; +.openerp .oe-m2m-drop-down-button { + margin-left: -23px; } - -.openerp img.m2o_open { - vertical-align: middle; - cursor: pointer; +.openerp .oe-m2m-drop-down-button img, +.openerp .oe-m2m-cm-button img { + margin-bottom: -4px; } -/*----- End Many2one Autosearch ------- */ - -/* Many2one Contextmenu */ -.openerp div.m2o_contextmenu { - background-color: #444; - border: 1px solid #000; - white-space: nowrap; - position: absolute; - padding: 2px; - z-index: 100; + { } - -.openerp div.m2o_contextmenu a, -.openerp div.m2o_contextmenu span { - display: block; - text-align: left; - text-decoration: none; - white-space: nowrap; - padding: 2px; - color: #FFF; - cursor: pointer; -} - -.openerp div.m2o_contextmenu hr { - margin: 1px 0 !important; -} - -.openerp div.m2o_contextmenu td { - padding: 1px; -} - -.openerp div.m2o_contextmenu a:hover, -.openerp div.m2o_contextmenu span:hover { - color: #FFF; - background-color: #505050; - text-decoration: none; -} - -.openerp div.m2o_contextmenu a.disabled, -.openerp div.m2o_contextmenu span.disabled { - color: #C0C0C0; -} - -/*----- End Many2one Contextmenu ------- */ diff --git a/addons/base/static/src/img/down-arrow.png b/addons/base/static/src/img/down-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..b1288e52682c53e8392ba36d8307a128a34e3256 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPgg)Hcmky1J*UAaX=x-64!_l=ltB< z)VvY~=c3falGGH1^30M91$R&1fbd2>aiF3kPZ!4!i_>o>S@Sg*@Ho%ces{HTb>Zq& z;fHm2M86oPIJ
- - Open + + + +
- + @@ -191,35 +210,26 @@ - - - + Expenses - - - - + + [[ repeatIn(get_lines_another('expense'),'a' ) ]] + [[ setTag('tr','tr',{'style': 'Table'+str(min(3,a.level))}) ]] + + + + @@ -249,32 +259,26 @@ - + Incomes + - - - - + + [[ repeatIn(get_lines_another('income'),'a' ) ]] + [[ setTag('tr','tr',{'style': 'Table'+str(min(3,a.level))}) ]] + + + + From c73df94a6c87e88ff012843db5f17b4d67c42706 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Fri, 10 Jun 2011 18:16:29 +0200 Subject: [PATCH 63/63] [imp] added quick create bzr revid: nicolas.vanhoren@openerp.com-20110610161629-13jcm1obpahfrokx --- addons/base/static/src/js/data.js | 4 ++-- addons/base/static/src/js/form.js | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/addons/base/static/src/js/data.js b/addons/base/static/src/js/data.js index 01d0d3d4f85..57999513a54 100644 --- a/addons/base/static/src/js/data.js +++ b/addons/base/static/src/js/data.js @@ -313,12 +313,12 @@ openerp.base.DataSet = openerp.base.Controller.extend( /** @lends openerp.base. // to implement in children this.notification.notify("Unlink", ids); }, - call: function (method, args, callback) { + call: function (method, args, callback, error_callback) { return this.rpc('/base/dataset/call', { model: this.model, method: method, args: args || [] - }, callback); + }, callback, error_callback); }, name_search: function (search_str, limit, callback) { search_str = search_str || ''; diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js index fd776caa4d6..d2f23bdc262 100644 --- a/addons/base/static/src/js/form.js +++ b/addons/base/static/src/js/form.js @@ -1143,8 +1143,7 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ if (self.value === undefined) { values.push({label: '   Create "' + $('').text(search_val).html() + '"', action: function() { - self._change_int_value(null); - self._search_create_popup("form"); + self._quick_create(search_val); }}); } values.push({label: "   Create and Edit...", action: function() { @@ -1155,6 +1154,16 @@ openerp.base.form.FieldMany2One = openerp.base.form.Field.extend({ response(values); }); }, + _quick_create: function(name) { + var self = this; + var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []); + dataset.call("name_create", [name, {}], function(data) { + self._change_int_ext_value(data.result); + }, function(a, b) { + self._change_int_value(null); + self._search_create_popup("form"); + }); + }, // all search/create popup handling _search_create_popup: function(view, ids) { var dataset = new openerp.base.DataSetStatic(this.session, this.field.relation, []);
+ @@ -68,7 +68,8 @@
+ + + + + + +
+
[[ get_fiscalyear(data) or '' ]] [[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']][[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] [[ get_filter(data)=='No Filter' and get_filter(data) or removeParentNode('para') ]] [[ get_filter(data)=='Date' or removeParentNode('blockTable') ]]
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']][[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] [[ get_target_move(data) ]]
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']][[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] [[ get_target_move(data) ]]
- [[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']] + [[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] [[ get_filter(data)=='No Filter' and get_filter(data) or removeParentNode('para') ]] diff --git a/addons/account/report/account_profit_horizontal.rml b/addons/account/report/account_profit_horizontal.rml index ca444bb4eca..6c70bb47310 100644 --- a/addons/account/report/account_profit_horizontal.rml +++ b/addons/account/report/account_profit_horizontal.rml @@ -180,7 +180,7 @@
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']][[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] [[ get_target_move(data) ]]
[[ (data['form']['display_account']=='bal_all' and 'All') or (data['form']['display_account']=='bal_movement' and 'With movements') or 'With balance is not equal to 0']][[ (data['form']['display_account']=='all' and 'All') or (data['form']['display_account']=='movement' and 'With movements') or 'With balance is not equal to 0']] [[ get_target_move(data) ]]
'); - } - }); - } + $.when(this.edition_form.on_loaded({fields_view: this.get_fields_view()})).then(function () { + // put in $.when just in case FormView.on_loaded becomes asynchronous + $new_row.find('td') + .addClass('oe-field-cell') + .removeAttr('width') + .end() + .find('td:first').removeClass('oe-field-cell').end() + .find('td:last').removeClass('oe-field-cell').end(); + // pad in case of groupby + _(self.columns).each(function (column) { + if (column.meta) { + $new_row.prepend(''); + } + }); + + self.edition_form.do_show(); }); - this.edition_form.do_show(); }, /** * Saves the current row, and triggers the edition of its following From 28a37267e4c67811de7f951893fd3d3431bcbad4 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse Date: Wed, 8 Jun 2011 16:18:06 +0200 Subject: [PATCH 44/63] [IMP] ir_translation only display installed lang, context in read bzr revid: al@openerp.com-20110608141806-oeixkg763vgmv2we --- openerp/addons/base/ir/ir_translation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index 85b3e8fc8a7..a0019126c86 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -46,7 +46,7 @@ class ir_translation(osv.osv): def _get_language(self, cr, uid, context): lang_model = self.pool.get('res.lang') lang_ids = lang_model.search(cr, uid, [('translatable', '=', True)], context=context) - lang_data = lang_model.read(cr, uid, lang_ids, ['code','name']) + lang_data = lang_model.read(cr, uid, lang_ids, ['code','name'], context=context) l = [(d['code'],d['name']) for d in lang_data] return l From be26be0d7c04e6668d5a13f307793503a89e5212 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 8 Jun 2011 16:58:50 +0200 Subject: [PATCH 45/63] [FIX] property name for click even in jQuery is 'click', not 'onclick' and Firefox does *not* like the wrong one bzr revid: xmo@openerp.com-20110608145850-9fvq4celpj1v4ept --- addons/base/static/src/js/list-editable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/base/static/src/js/list-editable.js b/addons/base/static/src/js/list-editable.js index 9bbde25a74d..f7eb3e27bca 100644 --- a/addons/base/static/src/js/list-editable.js +++ b/addons/base/static/src/js/list-editable.js @@ -123,7 +123,7 @@ openerp.base.list.editable = function (openerp) { var $new_row = $('
Chart of Account Fiscal Year Filter By [[ get_filter(data)!='No Filter' and get_filter(data) ]]Display AccountDisplay Account Target Moves
Code - Expenses + Account Balance
- - [[ repeatIn(get_lines_another('expense'),'a' ) ]] [[ a.code ]][[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]] - - - - [[ '. '*(a.level-1) ]][[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a.name ]] - - - [[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]][[ formatLang(a.balance) ]] [[ company.currency_id.symbol ]] -
[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_code'}) ]][[ a.code ]][[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.level))+'_name'}) ]][[ a.name ]][[ (a.level <>2) or removeParentNode('td') ]][[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance) ]] [[company.currency_id.symbol ]][[ a.level == 2 or removeParentNode('td') ]][[ formatLang(a.balance) ]] [[company.currency_id.symbol ]]
Code - Incomes + Account Balance
- - [[ repeatIn(get_lines_another('income'),'a') ]] [[ a.code ]][[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]] - - - - [[ '. '*(a.level-1) ]][[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Bold_9'})) or removeParentNode('font') ]][[ a.name ]] - - - [[ a.level<4 and ( setTag('para','para',{'style':'terp_default_Right_9_Bold'})) or removeParentNode('font') ]][[ formatLang(a.balance) ]] [[ company.currency_id.symbol ]] -
[[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_code_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_code'}) ]][[ a.code ]][[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_name_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(4,a.level))+'_name'}) ]][[ a.name ]][[ (a.level <>2) or removeParentNode('td') ]][[ (a.type =='view' and a.level >= 3) and setTag('para','para',{'style': 'terp_level_3_balance_bold'}) or setTag('para','para',{'style': 'terp_level_'+str(min(3,a.level))+'_balance'}) ]][[ formatLang(a.balance) ]] [[company.currency_id.symbol ]][[ a.level == 2 or removeParentNode('td') ]][[ formatLang(a.balance) ]] [[company.currency_id.symbol ]]