first commit
This commit is contained in:
2
modules/stock_forecast/__init__.py
Normal file
2
modules/stock_forecast/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
BIN
modules/stock_forecast/__pycache__/__init__.cpython-311.pyc
Normal file
BIN
modules/stock_forecast/__pycache__/__init__.cpython-311.pyc
Normal file
Binary file not shown.
BIN
modules/stock_forecast/__pycache__/forecast.cpython-311.pyc
Normal file
BIN
modules/stock_forecast/__pycache__/forecast.cpython-311.pyc
Normal file
Binary file not shown.
BIN
modules/stock_forecast/__pycache__/stock.cpython-311.pyc
Normal file
BIN
modules/stock_forecast/__pycache__/stock.cpython-311.pyc
Normal file
Binary file not shown.
554
modules/stock_forecast/forecast.py
Normal file
554
modules/stock_forecast/forecast.py
Normal file
@@ -0,0 +1,554 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
import datetime
|
||||
import itertools
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
from sql import Null
|
||||
from sql.aggregate import Sum
|
||||
from sql.conditionals import Coalesce
|
||||
from sql.operators import Equal
|
||||
|
||||
from trytond.i18n import gettext
|
||||
from trytond.model import (
|
||||
ChatMixin, Exclude, Index, ModelSQL, ModelView, Unique, Workflow, fields)
|
||||
from trytond.model.exceptions import AccessError
|
||||
from trytond.pool import Pool
|
||||
from trytond.pyson import Bool, Eval, If
|
||||
from trytond.sql.functions import DateRange
|
||||
from trytond.sql.operators import RangeOverlap
|
||||
from trytond.tools import grouped_slice, reduce_ids
|
||||
from trytond.transaction import Transaction
|
||||
from trytond.wizard import Button, StateTransition, StateView, Wizard
|
||||
|
||||
|
||||
class Forecast(Workflow, ModelSQL, ModelView, ChatMixin):
|
||||
__name__ = "stock.forecast"
|
||||
|
||||
_states = {
|
||||
'readonly': Eval('state') != 'draft',
|
||||
}
|
||||
|
||||
warehouse = fields.Many2One(
|
||||
'stock.location', 'Location', required=True,
|
||||
domain=[('type', '=', 'warehouse')], states={
|
||||
'readonly': (Eval('state') != 'draft') | Eval('lines', [0]),
|
||||
})
|
||||
destination = fields.Many2One(
|
||||
'stock.location', 'Destination', required=True,
|
||||
domain=[('type', 'in', ['customer', 'production'])], states=_states)
|
||||
from_date = fields.Date(
|
||||
"From Date", required=True,
|
||||
domain=[('from_date', '<=', Eval('to_date'))],
|
||||
states=_states)
|
||||
to_date = fields.Date(
|
||||
"To Date", required=True,
|
||||
domain=[('to_date', '>=', Eval('from_date'))],
|
||||
states=_states)
|
||||
lines = fields.One2Many(
|
||||
'stock.forecast.line', 'forecast', 'Lines', states=_states)
|
||||
company = fields.Many2One(
|
||||
'company.company', 'Company', required=True, states={
|
||||
'readonly': (Eval('state') != 'draft') | Eval('lines', [0]),
|
||||
})
|
||||
state = fields.Selection([
|
||||
('draft', "Draft"),
|
||||
('done', "Done"),
|
||||
('cancelled', "Cancelled"),
|
||||
], "State", readonly=True, sort=False)
|
||||
active = fields.Function(fields.Boolean('Active'),
|
||||
'get_active', searcher='search_active')
|
||||
|
||||
del _states
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
t = cls.__table__()
|
||||
cls._sql_constraints += [
|
||||
('dates_done_overlap',
|
||||
Exclude(t,
|
||||
(t.company, Equal),
|
||||
(t.warehouse, Equal),
|
||||
(t.destination, Equal),
|
||||
(DateRange(t.from_date, t.to_date, '[]'), RangeOverlap),
|
||||
where=t.state == 'done'),
|
||||
'stock_forecast.msg_forecast_done_dates_overlap'),
|
||||
]
|
||||
cls._sql_indexes.add(
|
||||
Index(
|
||||
t,
|
||||
(t.state, Index.Equality(cardinality='low')),
|
||||
(t.to_date, Index.Range())))
|
||||
cls.create_date.select = True
|
||||
cls._order.insert(0, ('from_date', 'DESC'))
|
||||
cls._order.insert(1, ('warehouse', 'ASC'))
|
||||
cls._transitions |= set((
|
||||
('draft', 'done'),
|
||||
('draft', 'cancelled'),
|
||||
('done', 'draft'),
|
||||
('cancelled', 'draft'),
|
||||
))
|
||||
cls._buttons.update({
|
||||
'cancel': {
|
||||
'invisible': Eval('state') != 'draft',
|
||||
'depends': ['state'],
|
||||
},
|
||||
'draft': {
|
||||
'invisible': Eval('state') == 'draft',
|
||||
'depends': ['state'],
|
||||
},
|
||||
'confirm': {
|
||||
'invisible': Eval('state') != 'draft',
|
||||
'depends': ['state'],
|
||||
},
|
||||
'complete': {
|
||||
'readonly': Eval('state') != 'draft',
|
||||
'depends': ['state'],
|
||||
},
|
||||
})
|
||||
cls._active_field = 'active'
|
||||
|
||||
@staticmethod
|
||||
def default_state():
|
||||
return 'draft'
|
||||
|
||||
@classmethod
|
||||
def default_warehouse(cls):
|
||||
pool = Pool()
|
||||
Location = pool.get('stock.location')
|
||||
return Location.get_default_warehouse()
|
||||
|
||||
@classmethod
|
||||
def default_destination(cls):
|
||||
Location = Pool().get('stock.location')
|
||||
locations = Location.search(cls.destination.domain)
|
||||
if len(locations) == 1:
|
||||
return locations[0].id
|
||||
|
||||
@staticmethod
|
||||
def default_company():
|
||||
return Transaction().context.get('company')
|
||||
|
||||
def get_active(self, name):
|
||||
pool = Pool()
|
||||
Date = pool.get('ir.date')
|
||||
return self.to_date >= Date.today()
|
||||
|
||||
@classmethod
|
||||
def search_active(cls, name, clause):
|
||||
pool = Pool()
|
||||
Date = pool.get('ir.date')
|
||||
|
||||
today = Date.today()
|
||||
operators = {
|
||||
'=': '>=',
|
||||
'!=': '<',
|
||||
}
|
||||
reverse = {
|
||||
'=': '!=',
|
||||
'!=': '=',
|
||||
}
|
||||
if clause[1] in operators:
|
||||
if clause[2]:
|
||||
return [('to_date', operators[clause[1]], today)]
|
||||
else:
|
||||
return [('to_date', operators[reverse[clause[1]]], today)]
|
||||
else:
|
||||
return []
|
||||
|
||||
def get_rec_name(self, name):
|
||||
pool = Pool()
|
||||
Lang = pool.get('ir.lang')
|
||||
|
||||
lang = Lang.get()
|
||||
from_date = lang.strftime(self.from_date)
|
||||
to_date = lang.strftime(self.to_date)
|
||||
return (
|
||||
f'{self.warehouse.rec_name} → {self.destination.rec_name} @ '
|
||||
f'[{from_date} - {to_date}]')
|
||||
|
||||
@classmethod
|
||||
def search_rec_name(cls, name, clause):
|
||||
operator = clause[1]
|
||||
if operator.startswith('!') or operator.startswith('not '):
|
||||
bool_op = 'AND'
|
||||
else:
|
||||
bool_op = 'OR'
|
||||
return [bool_op,
|
||||
('warehouse.rec_name', *clause[1:]),
|
||||
('destination.rec_name', *clause[1:]),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def check_modification(cls, mode, forecasts, values=None, external=False):
|
||||
super().check_modification(
|
||||
mode, forecasts, values=values, external=external)
|
||||
if mode == 'delete':
|
||||
for forecast in forecasts:
|
||||
if forecast.state not in {'cancelled', 'draft'}:
|
||||
raise AccessError(gettext(
|
||||
'stock_forecast.msg_forecast_delete_cancel',
|
||||
forecast=forecast.rec_name))
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('draft')
|
||||
def draft(cls, forecasts):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('done')
|
||||
def confirm(cls, forecasts):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('cancelled')
|
||||
def cancel(cls, forecasts):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
@ModelView.button_action('stock_forecast.wizard_forecast_complete')
|
||||
def complete(cls, forecasts):
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def create_moves(forecasts):
|
||||
'Create stock moves for the forecast ids'
|
||||
pool = Pool()
|
||||
Move = pool.get('stock.move')
|
||||
to_save = []
|
||||
for forecast in forecasts:
|
||||
if forecast.state == 'done':
|
||||
for line in forecast.lines:
|
||||
to_save.extend(line.get_moves())
|
||||
Move.save(to_save)
|
||||
|
||||
@staticmethod
|
||||
def delete_moves(forecasts):
|
||||
'Delete stock moves for the forecast ids'
|
||||
Line = Pool().get('stock.forecast.line')
|
||||
Line.delete_moves([l for f in forecasts for l in f.lines])
|
||||
|
||||
|
||||
class ForecastLine(ModelSQL, ModelView):
|
||||
__name__ = 'stock.forecast.line'
|
||||
_states = {
|
||||
'readonly': Eval('forecast_state') != 'draft',
|
||||
}
|
||||
|
||||
product = fields.Many2One('product.product', 'Product', required=True,
|
||||
domain=[
|
||||
('type', '=', 'goods'),
|
||||
('consumable', '=', False),
|
||||
],
|
||||
states=_states)
|
||||
product_uom_category = fields.Function(
|
||||
fields.Many2One(
|
||||
'product.uom.category', "Product UoM Category",
|
||||
help="The category of Unit of Measure for the product."),
|
||||
'on_change_with_product_uom_category')
|
||||
unit = fields.Many2One(
|
||||
'product.uom', "Unit", required=True,
|
||||
domain=[
|
||||
If(Eval('product_uom_category'),
|
||||
('category', '=', Eval('product_uom_category')),
|
||||
('category', '!=', -1)),
|
||||
],
|
||||
states=_states,
|
||||
depends={'product'})
|
||||
quantity = fields.Float(
|
||||
"Quantity", digits='unit', required=True,
|
||||
domain=[('quantity', '>=', 0)],
|
||||
states=_states)
|
||||
minimal_quantity = fields.Float(
|
||||
"Minimal Qty", digits='unit', required=True,
|
||||
domain=[('minimal_quantity', '<=', Eval('quantity'))],
|
||||
states=_states)
|
||||
moves = fields.One2Many('stock.move', 'origin', "Moves", readonly=True)
|
||||
forecast = fields.Many2One(
|
||||
'stock.forecast', 'Forecast', required=True, ondelete='CASCADE',
|
||||
states={
|
||||
'readonly': (Eval('forecast_state') != 'draft') & Eval('forecast'),
|
||||
})
|
||||
forecast_state = fields.Function(
|
||||
fields.Selection('get_forecast_states', 'Forecast State'),
|
||||
'on_change_with_forecast_state')
|
||||
quantity_executed = fields.Function(fields.Float(
|
||||
"Quantity Executed", digits='unit'), 'get_quantity_executed')
|
||||
|
||||
del _states
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls.__access__.add('forecast')
|
||||
t = cls.__table__()
|
||||
cls._sql_constraints += [
|
||||
('forecast_product_uniq', Unique(t, t.forecast, t.product),
|
||||
'stock_forecast.msg_forecast_line_product_unique'),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def __register__(cls, module_name):
|
||||
table_h = cls.__table_handler__(module_name)
|
||||
|
||||
# Migration from 6.8: rename uom to unit
|
||||
if (table_h.column_exist('uom')
|
||||
and not table_h.column_exist('unit')):
|
||||
table_h.column_rename('uom', 'unit')
|
||||
|
||||
super().__register__(module_name)
|
||||
|
||||
@staticmethod
|
||||
def default_minimal_quantity():
|
||||
return 1.0
|
||||
|
||||
@fields.depends('product')
|
||||
def on_change_product(self):
|
||||
if self.product:
|
||||
self.unit = self.product.default_uom
|
||||
|
||||
@fields.depends('product')
|
||||
def on_change_with_product_uom_category(self, name=None):
|
||||
return self.product.default_uom_category if self.product else None
|
||||
|
||||
@classmethod
|
||||
def get_forecast_states(cls):
|
||||
pool = Pool()
|
||||
Forecast = pool.get('stock.forecast')
|
||||
return Forecast.fields_get(['state'])['state']['selection']
|
||||
|
||||
@fields.depends('forecast', '_parent_forecast.state')
|
||||
def on_change_with_forecast_state(self, name=None):
|
||||
if self.forecast:
|
||||
return self.forecast.state
|
||||
|
||||
def get_rec_name(self, name):
|
||||
return self.product.rec_name
|
||||
|
||||
@classmethod
|
||||
def search_rec_name(cls, name, clause):
|
||||
return [('product.rec_name',) + tuple(clause[1:])]
|
||||
|
||||
@classmethod
|
||||
def get_quantity_executed(cls, lines, name):
|
||||
cursor = Transaction().connection.cursor()
|
||||
pool = Pool()
|
||||
Move = pool.get('stock.move')
|
||||
Location = pool.get('stock.location')
|
||||
Uom = pool.get('product.uom')
|
||||
Forecast = pool.get('stock.forecast')
|
||||
|
||||
move = Move.__table__()
|
||||
location_from = Location.__table__()
|
||||
location_to = Location.__table__()
|
||||
|
||||
result = dict((x.id, 0) for x in lines)
|
||||
|
||||
def key(line):
|
||||
return line.forecast.id
|
||||
lines.sort(key=key)
|
||||
for forecast_id, lines in itertools.groupby(lines, key):
|
||||
forecast = Forecast(forecast_id)
|
||||
product2line = dict((line.product.id, line) for line in lines)
|
||||
product_ids = product2line.keys()
|
||||
for sub_ids in grouped_slice(product_ids):
|
||||
red_sql = reduce_ids(move.product, sub_ids)
|
||||
cursor.execute(*move.join(location_from,
|
||||
condition=move.from_location == location_from.id
|
||||
).join(location_to,
|
||||
condition=move.to_location == location_to.id
|
||||
).select(move.product, Sum(move.internal_quantity),
|
||||
where=red_sql
|
||||
& (location_from.left >= forecast.warehouse.left)
|
||||
& (location_from.right <= forecast.warehouse.right)
|
||||
& (location_to.left >= forecast.destination.left)
|
||||
& (location_to.right <= forecast.destination.right)
|
||||
& (move.state != 'cancelled')
|
||||
& (Coalesce(move.effective_date, move.planned_date)
|
||||
>= forecast.from_date)
|
||||
& (Coalesce(move.effective_date, move.planned_date)
|
||||
<= forecast.to_date)
|
||||
& ((move.origin == Null)
|
||||
| ~move.origin.like('stock.forecast.line,%')),
|
||||
group_by=move.product))
|
||||
for product_id, quantity in cursor:
|
||||
line = product2line[product_id]
|
||||
result[line.id] = Uom.compute_qty(
|
||||
line.product.default_uom, quantity, line.unit)
|
||||
return result
|
||||
|
||||
@classmethod
|
||||
def copy(cls, lines, default=None):
|
||||
if default is None:
|
||||
default = {}
|
||||
else:
|
||||
default = default.copy()
|
||||
default.setdefault('moves', None)
|
||||
return super().copy(lines, default=default)
|
||||
|
||||
def get_moves(self):
|
||||
'Get stock moves for the forecast line'
|
||||
pool = Pool()
|
||||
Move = pool.get('stock.move')
|
||||
Date = pool.get('ir.date')
|
||||
|
||||
assert not self.moves
|
||||
|
||||
today = Date.today()
|
||||
from_date = self.forecast.from_date
|
||||
if from_date < today:
|
||||
from_date = today
|
||||
to_date = self.forecast.to_date
|
||||
if to_date < today:
|
||||
return []
|
||||
if self.quantity_executed >= self.quantity:
|
||||
return []
|
||||
|
||||
delta = to_date - from_date
|
||||
delta = delta.days + 1
|
||||
nb_packet = ((self.quantity - self.quantity_executed)
|
||||
// self.minimal_quantity)
|
||||
distribution = self.distribute(delta, nb_packet)
|
||||
|
||||
moves = []
|
||||
for day, qty in distribution.items():
|
||||
if qty == 0.0:
|
||||
continue
|
||||
move = Move()
|
||||
move.from_location = self.forecast.warehouse.storage_location
|
||||
move.to_location = self.forecast.destination
|
||||
move.product = self.product
|
||||
move.unit = self.unit
|
||||
move.quantity = qty * self.minimal_quantity
|
||||
move.planned_date = from_date + datetime.timedelta(day)
|
||||
move.company = self.forecast.company
|
||||
move.currency = self.forecast.company.currency
|
||||
move.unit_price = (
|
||||
0 if self.forecast.destination.type == 'customer' else None)
|
||||
move.origin = self
|
||||
moves.append(move)
|
||||
return moves
|
||||
|
||||
@classmethod
|
||||
def delete_moves(cls, lines):
|
||||
'Delete stock moves of the forecast line'
|
||||
Move = Pool().get('stock.move')
|
||||
Move.delete([m for l in lines for m in l.moves])
|
||||
|
||||
def distribute(self, delta, qty):
|
||||
'Distribute qty over delta'
|
||||
range_delta = list(range(delta))
|
||||
a = {}.fromkeys(range_delta, 0)
|
||||
while qty > 0:
|
||||
if qty > delta:
|
||||
for i in range_delta:
|
||||
a[i] += qty // delta
|
||||
qty = qty % delta
|
||||
elif delta // qty > 1:
|
||||
i = 0
|
||||
while i < qty:
|
||||
a[i * delta // qty + (delta // qty // 2)] += 1
|
||||
i += 1
|
||||
qty = 0
|
||||
else:
|
||||
for i in range_delta:
|
||||
a[i] += 1
|
||||
qty = delta - qty
|
||||
i = 0
|
||||
while i < qty:
|
||||
a[delta - ((i * delta // qty) + (delta // qty // 2)) - 1
|
||||
] -= 1
|
||||
i += 1
|
||||
qty = 0
|
||||
return a
|
||||
|
||||
|
||||
class ForecastCompleteAsk(ModelView):
|
||||
__name__ = 'stock.forecast.complete.ask'
|
||||
company = fields.Many2One('company.company', "Company", readonly=True)
|
||||
warehouse = fields.Many2One('stock.location', "Warehouse", readonly=True)
|
||||
destination = fields.Many2One(
|
||||
'stock.location', "Destination", readonly=True)
|
||||
from_date = fields.Date(
|
||||
"From Date", required=True,
|
||||
domain=[('from_date', '<', Eval('to_date'))],
|
||||
states={
|
||||
'readonly': Bool(Eval('products')),
|
||||
})
|
||||
to_date = fields.Date(
|
||||
"To Date", required=True,
|
||||
domain=[('to_date', '>', Eval('from_date'))],
|
||||
states={
|
||||
'readonly': Bool(Eval('products')),
|
||||
})
|
||||
products = fields.Many2Many(
|
||||
'product.product', None, None, "Products",
|
||||
domain=[
|
||||
('type', '=', 'goods'),
|
||||
('consumable', '=', False),
|
||||
],
|
||||
context={
|
||||
'company': Eval('company', -1),
|
||||
'locations': [Eval('warehouse', -1)],
|
||||
'stock_destinations': [Eval('destination', -1)],
|
||||
'stock_date_start': Eval('from_date', None),
|
||||
'stock_date_end': Eval('to_date', None),
|
||||
'with_childs': True,
|
||||
'stock_invert': True,
|
||||
},
|
||||
depends=[
|
||||
'company', 'warehouse', 'destination', 'from_date', 'to_date'])
|
||||
|
||||
|
||||
class ForecastComplete(Wizard):
|
||||
__name__ = 'stock.forecast.complete'
|
||||
start_state = 'ask'
|
||||
ask = StateView('stock.forecast.complete.ask',
|
||||
'stock_forecast.forecast_complete_ask_view_form', [
|
||||
Button("Cancel", 'end', 'tryton-cancel'),
|
||||
Button("Complete", 'complete', 'tryton-ok', default=True),
|
||||
])
|
||||
complete = StateTransition()
|
||||
|
||||
def default_ask(self, fields):
|
||||
"""
|
||||
Forecast dates shifted by one year.
|
||||
"""
|
||||
default = {}
|
||||
for field in ['company', 'warehouse', 'destination']:
|
||||
if field in fields:
|
||||
record = getattr(self.record, field)
|
||||
default[field] = record.id
|
||||
for field in ["to_date", "from_date"]:
|
||||
if field in fields:
|
||||
default[field] = (
|
||||
getattr(self.record, field) - relativedelta(years=1))
|
||||
return default
|
||||
|
||||
def transition_complete(self):
|
||||
pool = Pool()
|
||||
ForecastLine = pool.get('stock.forecast.line')
|
||||
|
||||
product2line = {l.product: l for l in self.record.lines}
|
||||
to_save = []
|
||||
# Ensure context is set
|
||||
self.ask.products = map(int, self.ask.products)
|
||||
for product in self.ask.products:
|
||||
line = product2line.get(product, ForecastLine())
|
||||
self._fill_line(line, product)
|
||||
to_save.append(line)
|
||||
ForecastLine.save(to_save)
|
||||
return 'end'
|
||||
|
||||
def _fill_line(self, line, product):
|
||||
quantity = max(product.quantity, 0)
|
||||
line.product = product
|
||||
line.quantity = quantity
|
||||
line.unit = product.default_uom
|
||||
line.forecast = self.record
|
||||
line.minimal_quantity = min(1, quantity)
|
||||
141
modules/stock_forecast/forecast.xml
Normal file
141
modules/stock_forecast/forecast.xml
Normal file
@@ -0,0 +1,141 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="res.group" id="group_stock_forecast">
|
||||
<field name="name">Stock Forecast</field>
|
||||
</record>
|
||||
<record model="res.user-res.group"
|
||||
id="user_admin_group_stock_forecast">
|
||||
<field name="user" ref="res.user_admin"/>
|
||||
<field name="group" ref="group_stock_forecast"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.action.wizard" id="wizard_forecast_complete">
|
||||
<field name="name">Complete Forecast</field>
|
||||
<field name="wiz_name">stock.forecast.complete</field>
|
||||
<field name="model">stock.forecast</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="forecast_view_form">
|
||||
<field name="model">stock.forecast</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">forecast_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="forecast_view_tree">
|
||||
<field name="model">stock.forecast</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">forecast_tree</field>
|
||||
</record>
|
||||
<record model="ir.action.act_window" id="act_forecast_form">
|
||||
<field name="name">Forecasts</field>
|
||||
<field name="res_model">stock.forecast</field>
|
||||
<field name="search_value"></field>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view"
|
||||
id="act_forecast_form_view1">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view" ref="forecast_view_tree"/>
|
||||
<field name="act_window" ref="act_forecast_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.view"
|
||||
id="act_forecast_form_view2">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view" ref="forecast_view_form"/>
|
||||
<field name="act_window" ref="act_forecast_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.domain" id="act_forecast_form_domain_draft">
|
||||
<field name="name">Draft</field>
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="domain" eval="[('state', '=', 'draft')]" pyson="1"/>
|
||||
<field name="act_window" ref="act_forecast_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.domain" id="act_forecast_form_domain_done">
|
||||
<field name="name">Done</field>
|
||||
<field name="sequence" eval="20"/>
|
||||
<field name="domain" eval="[('state', '=', 'done')]" pyson="1"/>
|
||||
<field name="act_window" ref="act_forecast_form"/>
|
||||
</record>
|
||||
<record model="ir.action.act_window.domain" id="act_forecast_form_domain_all">
|
||||
<field name="name">All</field>
|
||||
<field name="sequence" eval="9999"/>
|
||||
<field name="domain"></field>
|
||||
<field name="act_window" ref="act_forecast_form"/>
|
||||
</record>
|
||||
<menuitem
|
||||
parent="stock.menu_stock"
|
||||
action="act_forecast_form"
|
||||
sequence="50"
|
||||
id="menu_forecast_form"/>
|
||||
|
||||
<record model="ir.ui.view" id="forecast_line_view_form">
|
||||
<field name="model">stock.forecast.line</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">forecast_line_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="forecast_line_view_tree">
|
||||
<field name="model">stock.forecast.line</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">forecast_line_tree</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="forecast_complete_ask_view_form">
|
||||
<field name="model">stock.forecast.complete.ask</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">forecast_complete_ask_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule.group" id="rule_group_forecast_companies">
|
||||
<field name="name">User in companies</field>
|
||||
<field name="model">stock.forecast</field>
|
||||
<field name="global_p" eval="True"/>
|
||||
</record>
|
||||
<record model="ir.rule" id="rule_forecast_companies">
|
||||
<field name="domain"
|
||||
eval="[('company', 'in', Eval('companies', []))]"
|
||||
pyson="1"/>
|
||||
<field name="rule_group" ref="rule_group_forecast_companies"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.access" id="access_forecast">
|
||||
<field name="model">stock.forecast</field>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
<record model="ir.model.access" id="access_forecast_group_stock">
|
||||
<field name="model">stock.forecast</field>
|
||||
<field name="group" ref="group_stock_forecast"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="True"/>
|
||||
<field name="perm_create" eval="True"/>
|
||||
<field name="perm_delete" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.button" id="forecast_cancel_button">
|
||||
<field name="model">stock.forecast</field>
|
||||
<field name="name">cancel</field>
|
||||
<field name="string">Cancel</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.button" id="forecast_draft_button">
|
||||
<field name="model">stock.forecast</field>
|
||||
<field name="name">draft</field>
|
||||
<field name="string">Draft</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.button" id="forecast_confirm_button">
|
||||
<field name="model">stock.forecast</field>
|
||||
<field name="name">confirm</field>
|
||||
<field name="string">Confirm</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.button" id="forecast_complete_button">
|
||||
<field name="model">stock.forecast</field>
|
||||
<field name="name">complete</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
||||
214
modules/stock_forecast/locale/bg.po
Normal file
214
modules/stock_forecast/locale/bg.po
Normal file
@@ -0,0 +1,214 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Активен"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Фирма"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Местонахождение-цел"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "От дата"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Редове"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Състояние"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "До дата"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Местоположение"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Фирма"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Местонахождение-цел"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "От дата"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Продукти"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "До дата"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Прогноза"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Мин, к-во"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Движения"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Продукт"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Категория мер. ед. на продукт"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Количество"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "Изпълнено количество"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Приключено"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Проект"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Ред от прогноза за наличност"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Ред от прогноза за наличност"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Отказ"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Приключен"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Проект"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr "Добавяне на ред от прогноза въз основа на минали данни"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Изготвяне на прогноза"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr "Изпълнен"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Отказ"
|
||||
201
modules/stock_forecast/locale/ca.po
Normal file
201
modules/stock_forecast/locale/ca.po
Normal file
@@ -0,0 +1,201 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Actiu"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Destí"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Des de la data"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Línies"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Estat"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Fins a la data"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Ubicació"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Destí"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Des de la data"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Productes"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Fins a la data"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr "Magatzem"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Previsió"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr "Estat de la previsió"
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Quantitat mínima"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Moviments"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Producte"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Categoria UdM del producte"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Quantitat"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "Quantitats executades"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr "Unitat"
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr "La categoria de la unitat de mesura del producte."
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Previsions"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Previsió completa"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "Tot"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Finalitzada"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Esborrany"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr "Per eliminar la previsió \"%(forecast)s\" l'heu de cancel·lar."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
"Les dates de previsions fetes per a la mateixa empresa, magatzem i "
|
||||
"destinació no es poden solapar."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr "El producte ha de ser únic en la previsió d'existències."
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirma"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Esborrany"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr "Usuari a les empreses"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Previsions"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Previsió d'existències"
|
||||
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Previsió d'existències"
|
||||
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Pregunta completar previsió d'existències"
|
||||
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Línia de previsió d'existències"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Cancel·lada"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Finalitzada"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Esborrany"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr "Afegir línia de previsió sobre la base de dades anteriors."
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Previsió completa"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr "Completa"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
208
modules/stock_forecast/locale/cs.po
Normal file
208
modules/stock_forecast/locale/cs.po
Normal file
@@ -0,0 +1,208 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Cancel"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
205
modules/stock_forecast/locale/de.po
Normal file
205
modules/stock_forecast/locale/de.po
Normal file
@@ -0,0 +1,205 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Aktiv"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Unternehmen"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Bestimmungsort"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Von Datum"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Positionen"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Status"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Bis Datum"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Ort"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Unternehmen"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Bestimmungsort"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Von Datum"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Artikel"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Bis Datum"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr "Logistikstandort"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Absatzprognose"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr "Prognosestatus"
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Minimale Anzahl"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Warenbewegungen"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Artikel"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Maßeinheitenkategorie"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Menge"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "Menge ausgeführt"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr "Einheit"
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr "Die Kategorie der Maßeinheit des Artikels."
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Absatzprognosen"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Absatzprognose durchführen"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Erledigt"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Entwurf"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
"Damit die Absatzprognose \"%(forecast)s\" gelöscht werden kann, muss sie "
|
||||
"zuerst annulliert werden."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
"Die Datumsangaben von erledigten Prognosen für dasselbe Unternehmen, "
|
||||
"Logistikzentrum und Ziel dürfen sich nicht überschneiden."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr "Ein Artikel kann nur einmal pro Absatzprognose eingetragen werden."
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Annullieren"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Bestätigen"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Entwurf"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr "Benutzer in Unternehmen"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Absatzprognosen"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Lager Absatzprognose"
|
||||
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Lager Absatzprognose"
|
||||
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Lager Absatzprognose vervollständigen Frage"
|
||||
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Lager Absatzprognoseposition"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Annulliert"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Erledigt"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Entwurf"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
"Erstelle Absatzprognosepositionen basierend auf den Werten aus der "
|
||||
"Vergangenheit."
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Absatzprognose durchführen"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr "Durchführen"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
201
modules/stock_forecast/locale/es.po
Normal file
201
modules/stock_forecast/locale/es.po
Normal file
@@ -0,0 +1,201 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Activo"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Destino"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Desde la fecha"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Líneas"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Estado"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Hasta la fecha"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Ubicación"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Destino"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Desde la fecha"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Productos"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Hasta la fecha"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr "Almacén"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Previsión"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr "Estado de la previsión"
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Cantidad mínima"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Movimientos"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Producto"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Categoría UdM del producto"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Cantidad"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "Cantidades ejecutadas"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr "Unidad"
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr "La categoría de la unidad de medida del producto."
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Previsiones"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Previsión completa"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "Todo"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Finalizado"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Borrador"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr "Para eliminar la previsión \"%(forecast)s\" debe cancelarla."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
"Las fechas de las previsiones realizadas para una misma empresa, almacén y "
|
||||
"destino no pueden superponerse."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr "El producto debe ser único en la previsión de existencias."
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Borrador"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr "Usuario en las empresas"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Previsiones"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Previsión de existencias"
|
||||
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Previsión de existencias"
|
||||
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Pregunta completar previsión existencias"
|
||||
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Línea de previsión de existencias"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Cancelada"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Finalizada"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Borrador"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr "Añadir línea de previsión en base a datos anteriores."
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Previsión completa"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr "Completar"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
203
modules/stock_forecast/locale/es_419.po
Normal file
203
modules/stock_forecast/locale/es_419.po
Normal file
@@ -0,0 +1,203 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Categoría de UdM de producto"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "Cantidad ejecutada"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Cancelar"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
208
modules/stock_forecast/locale/et.po
Normal file
208
modules/stock_forecast/locale/et.po
Normal file
@@ -0,0 +1,208 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Aktiivne"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Ettevõte"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Sihtkoht"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Kuupäevast"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Read"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Olek"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Kuupäevani"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Asukoht"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Ettevõte"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Sihtkoht"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Kuupäevast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Tooted"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Luupäevani"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Prognoos"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr "Prognoosi olek"
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Vähim kogus"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Liikumised"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Toode"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Toote mõõtühiku kategooria"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Kogus"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Prognoosid"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Täielik prognoos"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "Kõik"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Tehtud"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Mustand"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Tühista"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Kinnita"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Mustand"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Prognoosid"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Laoprognoos"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Laoprognoos"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Lao prognoosi rida"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Lao prognoosi rida"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Tühista"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Tehtud"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Mustand"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Täielik prognoos"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr "Lõpetatud"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Tühista"
|
||||
207
modules/stock_forecast/locale/fa.po
Normal file
207
modules/stock_forecast/locale/fa.po
Normal file
@@ -0,0 +1,207 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "فعال"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "شرکت"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "مقصد"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "از تاریخ"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "سطرها"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "وضعیت"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "تا تاریخ"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "مکان"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "شرکت"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "مقصد"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "از تاریخ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "محصولات"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "تا تاریخ"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "پیش بینی"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr "وضعیت پیش بینی"
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "تعداد حداقل"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "جابجایی ها"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "محصول"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "دسته بندی واحد اندازه گیری محصول"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "مقدار/تعداد"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "مقدار حساب شده"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "پیش بینی ها"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "پیش بینی کامل"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "همه"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "انجام شد"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "پیشنویس"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr "برای حذف پیش بینی :\"%(forecast)s\" شما باید آن را لغو کنید."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr "محصول باید با پیش بینی منحصر به فرد باشد."
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "پیش بینی ها"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "پیش بینی موجودی"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "پیش بینی موجودی"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "سطر پیش بینی موجودی"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "سطر پیش بینی موجودی"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "انصراف"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "انجام شد"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "پیشنویس"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr "بر اساس داده های گذشته سطر پیش بینی را اضافه کنید."
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "پیش بینی کامل"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr "تکمیل"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "انصراف"
|
||||
208
modules/stock_forecast/locale/fi.po
Normal file
208
modules/stock_forecast/locale/fi.po
Normal file
@@ -0,0 +1,208 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Cancel"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
201
modules/stock_forecast/locale/fr.po
Normal file
201
modules/stock_forecast/locale/fr.po
Normal file
@@ -0,0 +1,201 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Actif"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Société"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Destination"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Date de début"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Lignes"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "État"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Date de fin"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Emplacement"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Société"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Destination"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Date de début"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Produits"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Date de fin"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr "Entrepôt"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Prévision"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr "État de prévision"
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Qté minimale"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Mouvements"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Produit"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Catégorie d'UDM du produit"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Quantité"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "Quantité exécutée"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr "Unité"
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr "La catégorie d'Unité De Mesure pour le produit."
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Prévisions"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Compléter la prévision"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "Toutes"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Traitées"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Brouillon"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr "Pour supprimer la prévision « %(forecast)s », vous devez l'annuler."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
"Les dates des prévisions traitées pour une même société, un même entrepôt et"
|
||||
" une même destination ne peuvent pas se chevaucher."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr "Le produit doit être unique par prévision."
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmer"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Brouillon"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr "Utilisateur dans les sociétés"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Prévisions"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock prévisionnel"
|
||||
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock prévisionnel"
|
||||
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Compléter la prévision de stock Demande"
|
||||
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Ligne de prévision de stock"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Annulée"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Traité"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Brouillon"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr "Ajouter la ligne des prévisions fondées sur des données historiques."
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Completer la prévision"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr "Compléter"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
208
modules/stock_forecast/locale/hu.po
Normal file
208
modules/stock_forecast/locale/hu.po
Normal file
@@ -0,0 +1,208 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Aktív"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Cég"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Cél"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Ettől"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Sorok"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Állapot"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Eddig"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Tárhely"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Cég"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Cél"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Ettől"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Termékek"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Eddig"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Előrejelzés"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Minimum mennyiség"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Készletmozgások"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Termék"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Mértékegység kategória"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Mennyiség"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "Mennyiség kész"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Előrejelzések"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "összes"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Kész"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "vázlat"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr "Egy variáció csak egyszer írható be ."
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Mégse"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Jóváhagyás"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "vázlat"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Előrejelzések"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "érvénytelen"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Kész"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "vázlat"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Mégse"
|
||||
203
modules/stock_forecast/locale/id.po
Normal file
203
modules/stock_forecast/locale/id.po
Normal file
@@ -0,0 +1,203 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Aktif"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Perusahaan"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Dari Tanggal"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Baris"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Status"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Ke Tanggal"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Lokasi"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Perusahaan"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Dari Tanggal"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Produk"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Ke Tanggal"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Perpindahan"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Produk"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Batal"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Konfirmasi"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Rancangan"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Prakiraan"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Prakiraan"
|
||||
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Batal"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Rancangan"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Batal"
|
||||
220
modules/stock_forecast/locale/it.po
Normal file
220
modules/stock_forecast/locale/it.po
Normal file
@@ -0,0 +1,220 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Attivo"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Azienda"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Data Inizio"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Righe"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Stato"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "a data"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Luogo"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Azienda"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Data Inizio"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Prodotto"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "a data"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Movimenti"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Prodotto"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Categotia UdM prodotto"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Quantità"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "Tutti"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Fatto"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Bozza"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Annulla"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Annullato"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Fatto"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Bozza"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Annulla"
|
||||
225
modules/stock_forecast/locale/lo.po
Normal file
225
modules/stock_forecast/locale/lo.po
Normal file
@@ -0,0 +1,225 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "ໃຊ້ຢູ່"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "ຫ້ອງການ/ສຳນັກງານ"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "ແຕ່ວັນທີ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "ຮ່ວງ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "ສະຖານະ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "ເຖິງວັນທີ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "ບ່ອນຢູ່"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "ຫ້ອງການ/ສຳນັກງານ"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "ແຕ່ວັນທີ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "ຜະລິດຕະພັນ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "ເຖິງວັນທີ"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "ຕັດບັນຊີສາງ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "ຜະລິດຕະພັນ"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "ຈຳນວນ"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "ທັງໝົດ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "ແລ້ວໆ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "ຮ່າງກຽມ"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "ຍົກເລີກ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "ແລ້ວໆ"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "ຮ່າງກຽມ"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "ຍົກເລີກ"
|
||||
209
modules/stock_forecast/locale/lt.po
Normal file
209
modules/stock_forecast/locale/lt.po
Normal file
@@ -0,0 +1,209 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Organizacija"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Organizacija"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Cancel"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
201
modules/stock_forecast/locale/nl.po
Normal file
201
modules/stock_forecast/locale/nl.po
Normal file
@@ -0,0 +1,201 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Actief"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Bedrijf"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Bestemming"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Vanaf datum"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Regels"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Status"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Tot datum"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Plaats"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Bedrijf"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Bestemming"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Vanaf datum"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Producten"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Tot datum"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr "Magazijn"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "prognose"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr "prognose status"
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Minimale hoeveelheid"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Mutaties"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Product"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Product maateenheid categorie"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Hoeveelheid"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "Uitgevoerde hoeveelheid (verbruikt?)"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr "Eenheid"
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr "De categorie van de maateenheid van het product."
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "voorspellingen"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Prognose voltooien"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Klaar"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Concept"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr "Om voorspelling \"%(forecast)s\"\" te verwijderen, moet u deze annuleren."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
"De datums van de reeds uitgevoerde prognoses voor hetzelfde bedrijf, "
|
||||
"magazijn en bestemming mogen niet overlappen."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr "Product moet uniek zijn op basis van prognose."
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Bevestigen"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Concept"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr "Gebruiker in het bedrijf"
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "prognose"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock prognose"
|
||||
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Voorraad prognose"
|
||||
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Voorraad prognose afronden vraag"
|
||||
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Voorraad prognose regel"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Geannuleerd"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Klaar"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Concept"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr "prognosesregel toevoegen op basis van gegevens uit het verleden."
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Prognose voltooien"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr "Voltooien"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
216
modules/stock_forecast/locale/pl.po
Normal file
216
modules/stock_forecast/locale/pl.po
Normal file
@@ -0,0 +1,216 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Aktywna"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Firma"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Cel"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Od dnia"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Wiersze"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Stan"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Do dnia"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Lokalizacja"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Firma"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Cel"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Od dnia"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Produkty"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Do dnia"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Minimalna ilość"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Ruchy"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Produkt"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Kategoria jm produktu"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Ilość"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Anuluj"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Wykonano"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
214
modules/stock_forecast/locale/pt.po
Normal file
214
modules/stock_forecast/locale/pt.po
Normal file
@@ -0,0 +1,214 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Ativo"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Destino"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "A Partir da Data"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Linhas"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Estado"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Até a Data"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Localização"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Empresa"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Destino"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "A Partir da Data"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Produtos"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Até a Data"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Previsão"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr "Estado da Previsão"
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Qtd Mínima"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Movimentações"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Produto"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Categoria da UDM do Produto"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Quantidade"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "Quantidade Executada"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr "O produto deve ser único por previsão"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Linha da Previsão de Estoque"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Linha da Previsão de Estoque"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Cancelado"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Feito"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Rascunho"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr "Adicionar linha de previsão com base em dados históricos."
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Completar a Previsão"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr "Completar"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
201
modules/stock_forecast/locale/ro.po
Normal file
201
modules/stock_forecast/locale/ro.po
Normal file
@@ -0,0 +1,201 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Societate"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Rânduri"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Societate"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Produs"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Produs"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
216
modules/stock_forecast/locale/ru.po
Normal file
216
modules/stock_forecast/locale/ru.po
Normal file
@@ -0,0 +1,216 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Действующий"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Организация"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Назначение"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Начальная дата"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Строки"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Состояние"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Конечная дата"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Местоположение"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Организация"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Назначение"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Начальная дата"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Продукция"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Конечная дата"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Прогноз"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Минимальное кол-во"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Перемещения"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Продукт"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Категория ед. измерения продукции"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Кол-во"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "Кол-во выполнено"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Выполнено"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr "Продукт должен быть уникальным в пределах прогноза."
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Строка прогноза по складу"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Строка прогноза по складу"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Отменить"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Выполнено"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Черновик"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr "Добавить строчку прогноза основанного на предыдущих данных."
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Завершить прогноз"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr "Завершить"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Отменить"
|
||||
215
modules/stock_forecast/locale/sl.po
Normal file
215
modules/stock_forecast/locale/sl.po
Normal file
@@ -0,0 +1,215 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "Aktivno"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr "Družba"
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Cilj"
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Od"
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr "Postavke"
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "Stanje"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Do"
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr "Lokacija"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr "Družba"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr "Cilj"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr "Od datuma"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr "Izdelki"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr "Do"
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Napoved"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr "Stanje napovedi"
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr "Minimalna količina"
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr "Promet"
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr "Izdelek"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr "Katerogija ME izdelka"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr "Količina"
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr "Izvedena količina"
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr "Izdelek mora biti edinstven po napovedih"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Postavka napovedi zaloge"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Postavka napovedi zaloge"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Preklic"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Zaključeno"
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "V pripravi"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr "Dodaj postavko napovedi na osnovi preteklih podatkov."
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Izpolnitev napovedi"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr "Zaključi"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Prekliči"
|
||||
208
modules/stock_forecast/locale/tr.po
Normal file
208
modules/stock_forecast/locale/tr.po
Normal file
@@ -0,0 +1,208 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "Cancel"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
199
modules/stock_forecast/locale/uk.po
Normal file
199
modules/stock_forecast/locale/uk.po
Normal file
@@ -0,0 +1,199 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
212
modules/stock_forecast/locale/zh_CN.po
Normal file
212
modules/stock_forecast/locale/zh_CN.po
Normal file
@@ -0,0 +1,212 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,active:"
|
||||
msgid "Active"
|
||||
msgstr "启用"
|
||||
|
||||
msgctxt "field:stock.forecast,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,lines:"
|
||||
msgid "Lines"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast,state:"
|
||||
msgid "State"
|
||||
msgstr "状态"
|
||||
|
||||
msgctxt "field:stock.forecast,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast,warehouse:"
|
||||
msgid "Location"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,company:"
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,destination:"
|
||||
msgid "Destination"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,from_date:"
|
||||
msgid "From Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,products:"
|
||||
msgid "Products"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,to_date:"
|
||||
msgid "To Date"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.complete.ask,warehouse:"
|
||||
msgid "Warehouse"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.forecast.line,forecast:"
|
||||
msgid "Forecast"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "field:stock.forecast.line,forecast_state:"
|
||||
msgid "Forecast State"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,minimal_quantity:"
|
||||
msgid "Minimal Qty"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,moves:"
|
||||
msgid "Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product:"
|
||||
msgid "Product"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,product_uom_category:"
|
||||
msgid "Product UoM Category"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity:"
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,quantity_executed:"
|
||||
msgid "Quantity Executed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.forecast.line,unit:"
|
||||
msgid "Unit"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "help:stock.forecast.line,product_uom_category:"
|
||||
msgid "The category of Unit of Measure for the product."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.action,name:act_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:ir.action,name:wizard_forecast_complete"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_all"
|
||||
msgid "All"
|
||||
msgstr "全部"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:ir.action.act_window.domain,name:act_forecast_form_domain_done"
|
||||
msgid "Done"
|
||||
msgstr "完成"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.action.act_window.domain,name:act_forecast_form_domain_draft"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
#, python-format
|
||||
msgctxt "model:ir.message,text:msg_forecast_delete_cancel"
|
||||
msgid "To delete forecast \"%(forecast)s\" you must cancel it."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_done_dates_overlap"
|
||||
msgid ""
|
||||
"The dates of done forecasts for the same company, warehouse and destination "
|
||||
"can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_forecast_line_product_unique"
|
||||
msgid "Product must be unique by forecast."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_cancel_button"
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_confirm_button"
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
msgctxt "model:ir.model.button,string:forecast_draft_button"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "model:ir.rule.group,name:rule_group_forecast_companies"
|
||||
msgid "User in companies"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.ui.menu,name:menu_forecast_form"
|
||||
msgid "Forecasts"
|
||||
msgstr "Forecasts"
|
||||
|
||||
msgctxt "model:res.group,name:group_stock_forecast"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast,string:"
|
||||
msgid "Stock Forecast"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.complete.ask,string:"
|
||||
msgid "Stock Forecast Complete Ask"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:stock.forecast.line,string:"
|
||||
msgid "Stock Forecast Line"
|
||||
msgstr "Stock Forecast"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Cancelled"
|
||||
msgstr "取消"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Done"
|
||||
msgstr "完成"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:stock.forecast,state:"
|
||||
msgid "Draft"
|
||||
msgstr "Draft"
|
||||
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Add forecast line based on past data."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:stock.forecast:"
|
||||
msgid "Complete Forecast"
|
||||
msgstr "Complete Forecast"
|
||||
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,complete:"
|
||||
msgid "Complete"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "wizard_button:stock.forecast.complete,ask,end:"
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
16
modules/stock_forecast/message.xml
Normal file
16
modules/stock_forecast/message.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data grouped="1">
|
||||
<record model="ir.message" id="msg_forecast_done_dates_overlap">
|
||||
<field name="text">The dates of done forecasts for the same company, warehouse and destination can not overlap.</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_forecast_delete_cancel">
|
||||
<field name="text">To delete forecast "%(forecast)s" you must cancel it.</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_forecast_line_product_unique">
|
||||
<field name="text">Product must be unique by forecast.</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
13
modules/stock_forecast/product.xml
Normal file
13
modules/stock_forecast/product.xml
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="product_view_list_forecast">
|
||||
<field name="model">product.product</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="priority" eval="20"/>
|
||||
<field name="name">product_list_forecast</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
12
modules/stock_forecast/stock.py
Normal file
12
modules/stock_forecast/stock.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
from trytond.pool import PoolMeta
|
||||
|
||||
|
||||
class Move(metaclass=PoolMeta):
|
||||
__name__ = 'stock.move'
|
||||
|
||||
@classmethod
|
||||
def _get_origin(cls):
|
||||
return super()._get_origin() + ['stock.forecast.line']
|
||||
2
modules/stock_forecast/tests/__init__.py
Normal file
2
modules/stock_forecast/tests/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
Binary file not shown.
Binary file not shown.
351
modules/stock_forecast/tests/test_module.py
Normal file
351
modules/stock_forecast/tests/test_module.py
Normal file
@@ -0,0 +1,351 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
import datetime
|
||||
from decimal import Decimal
|
||||
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from trytond.modules.company.tests import (
|
||||
CompanyTestMixin, create_company, set_company)
|
||||
from trytond.pool import Pool
|
||||
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
|
||||
from trytond.transaction import Transaction, inactive_records
|
||||
|
||||
|
||||
class StockForecastTestCase(CompanyTestMixin, ModuleTestCase):
|
||||
'Test StockForecast module'
|
||||
module = 'stock_forecast'
|
||||
|
||||
@with_transaction()
|
||||
def test_forecast_rec_name(self):
|
||||
pool = Pool()
|
||||
Forecast = pool.get('stock.forecast')
|
||||
Location = pool.get('stock.location')
|
||||
|
||||
customer, = Location.search([('code', '=', 'CUS')])
|
||||
warehouse, = Location.search([('code', '=', 'WH')])
|
||||
storage, = Location.search([('code', '=', 'STO')])
|
||||
company = create_company()
|
||||
with set_company(company):
|
||||
forecast = Forecast(
|
||||
warehouse=warehouse,
|
||||
destination=customer,
|
||||
from_date=datetime.date(2023, 1, 1),
|
||||
to_date=datetime.date(2023, 3, 31),
|
||||
)
|
||||
forecast.save()
|
||||
with inactive_records():
|
||||
forecasts = Forecast.search([('rec_name', '=', "Warehouse")])
|
||||
|
||||
self.assertEqual(
|
||||
forecast.rec_name,
|
||||
"[WH] Warehouse → [CUS] Customer @ [01/01/2023 - 03/31/2023]")
|
||||
self.assertEqual(forecasts, [forecast])
|
||||
|
||||
@with_transaction()
|
||||
def test_distribute(self):
|
||||
'Test distribute'
|
||||
pool = Pool()
|
||||
Line = pool.get('stock.forecast.line')
|
||||
line = Line()
|
||||
for values, result in (
|
||||
((1, 5), {0: 5}),
|
||||
((4, 8), {0: 2, 1: 2, 2: 2, 3: 2}),
|
||||
((2, 5), {0: 2, 1: 3}),
|
||||
((10, 4), {0: 0, 1: 1, 2: 0, 3: 1, 4: 0,
|
||||
5: 0, 6: 1, 7: 0, 8: 1, 9: 0}),
|
||||
):
|
||||
self.assertEqual(line.distribute(*values), result)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_moves_before(self):
|
||||
"Test create moves before start date"
|
||||
pool = Pool()
|
||||
Uom = pool.get('product.uom')
|
||||
Template = pool.get('product.template')
|
||||
Product = pool.get('product.product')
|
||||
Location = pool.get('stock.location')
|
||||
Forecast = pool.get('stock.forecast')
|
||||
Move = pool.get('stock.move')
|
||||
|
||||
unit, = Uom.search([('name', '=', 'Unit')])
|
||||
template, = Template.create([{
|
||||
'name': 'Test create_moves',
|
||||
'type': 'goods',
|
||||
'default_uom': unit.id,
|
||||
}])
|
||||
product, = Product.create([{
|
||||
'template': template.id,
|
||||
}])
|
||||
customer, = Location.search([('code', '=', 'CUS')])
|
||||
warehouse, = Location.search([('code', '=', 'WH')])
|
||||
storage, = Location.search([('code', '=', 'STO')])
|
||||
company = create_company()
|
||||
with set_company(company):
|
||||
today = datetime.date.today()
|
||||
|
||||
forecast, = Forecast.create([{
|
||||
'warehouse': warehouse.id,
|
||||
'destination': customer.id,
|
||||
'from_date': today + relativedelta(months=1, day=1),
|
||||
'to_date': today + relativedelta(months=1, day=20),
|
||||
'company': company.id,
|
||||
'lines': [
|
||||
('create', [{
|
||||
'product': product.id,
|
||||
'quantity': 10,
|
||||
'unit': unit.id,
|
||||
'minimal_quantity': 2,
|
||||
}],
|
||||
),
|
||||
],
|
||||
}])
|
||||
Forecast.confirm([forecast])
|
||||
|
||||
Forecast.create_moves([forecast])
|
||||
line, = forecast.lines
|
||||
self.assertEqual(line.quantity_executed, 0)
|
||||
self.assertEqual(len(line.moves), 5)
|
||||
self.assertEqual(sum(move.quantity for move in line.moves), 10)
|
||||
self.assertGreaterEqual(
|
||||
min(m.planned_date for m in line.moves), forecast.from_date)
|
||||
|
||||
Forecast.delete_moves([forecast])
|
||||
line, = forecast.lines
|
||||
self.assertEqual(len(line.moves), 0)
|
||||
|
||||
Move.create([{
|
||||
'from_location': storage.id,
|
||||
'to_location': customer.id,
|
||||
'product': product.id,
|
||||
'unit': unit.id,
|
||||
'quantity': 2,
|
||||
'planned_date': today + relativedelta(months=1, day=5),
|
||||
'company': company.id,
|
||||
'currency': company.currency.id,
|
||||
'unit_price': Decimal('1'),
|
||||
}])
|
||||
line, = forecast.lines
|
||||
self.assertEqual(line.quantity_executed, 2)
|
||||
|
||||
Forecast.create_moves([forecast])
|
||||
line, = forecast.lines
|
||||
self.assertEqual(line.quantity_executed, 2)
|
||||
self.assertEqual(len(line.moves), 4)
|
||||
self.assertEqual(sum(move.quantity for move in line.moves), 8)
|
||||
self.assertGreaterEqual(
|
||||
min(m.planned_date for m in line.moves), forecast.from_date)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_moves_during(self):
|
||||
"Test create moves during the period"
|
||||
pool = Pool()
|
||||
Uom = pool.get('product.uom')
|
||||
Template = pool.get('product.template')
|
||||
Product = pool.get('product.product')
|
||||
Location = pool.get('stock.location')
|
||||
Forecast = pool.get('stock.forecast')
|
||||
Move = pool.get('stock.move')
|
||||
|
||||
unit, = Uom.search([('name', '=', 'Unit')])
|
||||
template, = Template.create([{
|
||||
'name': 'Test create_moves',
|
||||
'type': 'goods',
|
||||
'default_uom': unit.id,
|
||||
}])
|
||||
product, = Product.create([{
|
||||
'template': template.id,
|
||||
}])
|
||||
customer, = Location.search([('code', '=', 'CUS')])
|
||||
warehouse, = Location.search([('code', '=', 'WH')])
|
||||
storage, = Location.search([('code', '=', 'STO')])
|
||||
company = create_company()
|
||||
with set_company(company):
|
||||
today = datetime.date.today()
|
||||
|
||||
forecast, = Forecast.create([{
|
||||
'warehouse': warehouse.id,
|
||||
'destination': customer.id,
|
||||
'from_date': today - relativedelta(days=20),
|
||||
'to_date': today + relativedelta(days=10),
|
||||
'company': company.id,
|
||||
'lines': [
|
||||
('create', [{
|
||||
'product': product.id,
|
||||
'quantity': 20,
|
||||
'unit': unit.id,
|
||||
'minimal_quantity': 2,
|
||||
}],
|
||||
),
|
||||
],
|
||||
}])
|
||||
Forecast.confirm([forecast])
|
||||
|
||||
Forecast.create_moves([forecast])
|
||||
line, = forecast.lines
|
||||
self.assertEqual(line.quantity_executed, 0)
|
||||
self.assertEqual(len(line.moves), 10)
|
||||
self.assertEqual(sum(move.quantity for move in line.moves), 20)
|
||||
self.assertGreaterEqual(
|
||||
min(m.planned_date for m in line.moves), today)
|
||||
|
||||
Forecast.delete_moves([forecast])
|
||||
line, = forecast.lines
|
||||
self.assertEqual(len(line.moves), 0)
|
||||
|
||||
Move.create([{
|
||||
'from_location': storage.id,
|
||||
'to_location': customer.id,
|
||||
'product': product.id,
|
||||
'unit': unit.id,
|
||||
'quantity': 10,
|
||||
'planned_date': today - relativedelta(days=5),
|
||||
'company': company.id,
|
||||
'currency': company.currency.id,
|
||||
'unit_price': Decimal('1'),
|
||||
}])
|
||||
line, = forecast.lines
|
||||
self.assertEqual(line.quantity_executed, 10)
|
||||
|
||||
Forecast.create_moves([forecast])
|
||||
line, = forecast.lines
|
||||
self.assertEqual(line.quantity_executed, 10)
|
||||
self.assertEqual(len(line.moves), 5)
|
||||
self.assertEqual(sum(move.quantity for move in line.moves), 10)
|
||||
self.assertGreaterEqual(
|
||||
min(m.planned_date for m in line.moves), today)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_moves_after(self):
|
||||
"Test create not moves after end date"
|
||||
pool = Pool()
|
||||
Uom = pool.get('product.uom')
|
||||
Template = pool.get('product.template')
|
||||
Product = pool.get('product.product')
|
||||
Location = pool.get('stock.location')
|
||||
Forecast = pool.get('stock.forecast')
|
||||
|
||||
unit, = Uom.search([('name', '=', 'Unit')])
|
||||
template, = Template.create([{
|
||||
'name': 'Test create_moves',
|
||||
'type': 'goods',
|
||||
'default_uom': unit.id,
|
||||
}])
|
||||
product, = Product.create([{
|
||||
'template': template.id,
|
||||
}])
|
||||
customer, = Location.search([('code', '=', 'CUS')])
|
||||
warehouse, = Location.search([('code', '=', 'WH')])
|
||||
storage, = Location.search([('code', '=', 'STO')])
|
||||
company = create_company()
|
||||
with set_company(company):
|
||||
today = datetime.date.today()
|
||||
|
||||
forecast, = Forecast.create([{
|
||||
'warehouse': warehouse.id,
|
||||
'destination': customer.id,
|
||||
'from_date': today - relativedelta(days=20),
|
||||
'to_date': today - relativedelta(days=10),
|
||||
'company': company.id,
|
||||
'lines': [
|
||||
('create', [{
|
||||
'product': product.id,
|
||||
'quantity': 20,
|
||||
'unit': unit.id,
|
||||
'minimal_quantity': 2,
|
||||
}],
|
||||
),
|
||||
],
|
||||
}])
|
||||
Forecast.confirm([forecast])
|
||||
|
||||
Forecast.create_moves([forecast])
|
||||
line, = forecast.lines
|
||||
self.assertEqual(len(line.moves), 0)
|
||||
|
||||
@with_transaction()
|
||||
def test_complete(self):
|
||||
'Test complete'
|
||||
pool = Pool()
|
||||
Uom = pool.get('product.uom')
|
||||
Template = pool.get('product.template')
|
||||
Product = pool.get('product.product')
|
||||
Location = pool.get('stock.location')
|
||||
Forecast = pool.get('stock.forecast')
|
||||
Move = pool.get('stock.move')
|
||||
ForecastComplete = pool.get('stock.forecast.complete', type='wizard')
|
||||
|
||||
unit, = Uom.search([('name', '=', 'Unit')])
|
||||
template, = Template.create([{
|
||||
'name': 'Test complete',
|
||||
'type': 'goods',
|
||||
'default_uom': unit.id,
|
||||
}])
|
||||
product, = Product.create([{
|
||||
'template': template.id,
|
||||
}])
|
||||
customer, = Location.search([('code', '=', 'CUS')])
|
||||
supplier, = Location.search([('code', '=', 'SUP')])
|
||||
warehouse, = Location.search([('code', '=', 'WH')])
|
||||
storage, = Location.search([('code', '=', 'STO')])
|
||||
company = create_company()
|
||||
with set_company(company):
|
||||
today = datetime.date.today()
|
||||
|
||||
moves = Move.create([{
|
||||
'from_location': supplier.id,
|
||||
'to_location': storage.id,
|
||||
'product': product.id,
|
||||
'unit': unit.id,
|
||||
'quantity': 10,
|
||||
'effective_date': (today
|
||||
+ relativedelta(months=-1, day=1)),
|
||||
'company': company.id,
|
||||
'currency': company.currency.id,
|
||||
'unit_price': Decimal('1'),
|
||||
}, {
|
||||
'from_location': storage.id,
|
||||
'to_location': customer.id,
|
||||
'product': product.id,
|
||||
'unit': unit.id,
|
||||
'quantity': 5,
|
||||
'effective_date': (today
|
||||
+ relativedelta(months=-1, day=15)),
|
||||
'company': company.id,
|
||||
'currency': company.currency.id,
|
||||
'unit_price': Decimal('1'),
|
||||
}])
|
||||
Move.do(moves)
|
||||
|
||||
forecast, = Forecast.create([{
|
||||
'warehouse': warehouse.id,
|
||||
'destination': customer.id,
|
||||
'from_date': today + relativedelta(months=1, day=1),
|
||||
'to_date': today + relativedelta(months=1, day=20),
|
||||
'company': company.id,
|
||||
}])
|
||||
|
||||
with Transaction().set_context(
|
||||
active_model=Forecast.__name__, active_id=forecast.id):
|
||||
session_id, _, _ = ForecastComplete.create()
|
||||
forecast_complete = ForecastComplete(session_id)
|
||||
forecast_complete.ask.company = company
|
||||
forecast_complete.ask.warehouse = warehouse
|
||||
forecast_complete.ask.destination = customer
|
||||
forecast_complete.ask.from_date = (
|
||||
today + relativedelta(months=-1, day=1))
|
||||
forecast_complete.ask.to_date = (
|
||||
today + relativedelta(months=-1, day=20))
|
||||
forecast_complete.ask.products = [product]
|
||||
forecast_complete.transition_complete()
|
||||
|
||||
self.assertEqual(len(forecast.lines), 1)
|
||||
forecast_line, = forecast.lines
|
||||
self.assertEqual(forecast_line.product, product)
|
||||
self.assertEqual(forecast_line.unit, unit)
|
||||
self.assertEqual(forecast_line.quantity, 5)
|
||||
self.assertEqual(forecast_line.minimal_quantity, 1)
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
21
modules/stock_forecast/tryton.cfg
Normal file
21
modules/stock_forecast/tryton.cfg
Normal file
@@ -0,0 +1,21 @@
|
||||
[tryton]
|
||||
version=7.8.1
|
||||
depends:
|
||||
company
|
||||
ir
|
||||
product
|
||||
res
|
||||
stock
|
||||
xml:
|
||||
product.xml
|
||||
forecast.xml
|
||||
message.xml
|
||||
|
||||
[register]
|
||||
model:
|
||||
stock.Move
|
||||
forecast.Forecast
|
||||
forecast.ForecastLine
|
||||
forecast.ForecastCompleteAsk
|
||||
wizard:
|
||||
forecast.ForecastComplete
|
||||
16
modules/stock_forecast/view/forecast_complete_ask_form.xml
Normal file
16
modules/stock_forecast/view/forecast_complete_ask_form.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<form>
|
||||
<label name="warehouse"/>
|
||||
<field name="warehouse"/>
|
||||
<label name="destination"/>
|
||||
<field name="destination"/>
|
||||
|
||||
<label name="from_date"/>
|
||||
<field name="from_date"/>
|
||||
<label name="to_date"/>
|
||||
<field name="to_date"/>
|
||||
|
||||
<field name="products" colspan="4" view_ids="stock_forecast.product_view_list_forecast"/>
|
||||
</form>
|
||||
26
modules/stock_forecast/view/forecast_form.xml
Normal file
26
modules/stock_forecast/view/forecast_form.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<form>
|
||||
<label name="warehouse"/>
|
||||
<field name="warehouse"/>
|
||||
<label name="destination"/>
|
||||
<field name="destination"/>
|
||||
<label name="from_date"/>
|
||||
<field name="from_date"/>
|
||||
<label name="to_date"/>
|
||||
<field name="to_date"/>
|
||||
<label name="company"/>
|
||||
<field name="company"/>
|
||||
<button string="Complete Forecast" name="complete"
|
||||
colspan="2"
|
||||
help="Add forecast line based on past data."/>
|
||||
<field name="lines" colspan="4"/>
|
||||
<label name="state"/>
|
||||
<field name="state"/>
|
||||
<group colspan="2" col="-1" id="buttons">
|
||||
<button name="draft" icon="tryton-clear"/>
|
||||
<button name="cancel" icon="tryton-cancel"/>
|
||||
<button name="confirm" icon="tryton-ok"/>
|
||||
</group>
|
||||
</form>
|
||||
19
modules/stock_forecast/view/forecast_line_form.xml
Normal file
19
modules/stock_forecast/view/forecast_line_form.xml
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<form col="4">
|
||||
<label name="forecast"/>
|
||||
<field name="forecast"/>
|
||||
<newline/>
|
||||
<label name="product"/>
|
||||
<field name="product"/>
|
||||
<label name="quantity"/>
|
||||
<field name="quantity"/>
|
||||
<label name="minimal_quantity"/>
|
||||
<field name="minimal_quantity"/>
|
||||
<label name="unit"/>
|
||||
<field name="unit"/>
|
||||
<label name="quantity_executed"/>
|
||||
<field name="quantity_executed"/>
|
||||
<field name="moves" colspan="4"/>
|
||||
</form>
|
||||
11
modules/stock_forecast/view/forecast_line_tree.xml
Normal file
11
modules/stock_forecast/view/forecast_line_tree.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tree editable="1">
|
||||
<field name="forecast" expand="2"/>
|
||||
<field name="product" expand="1"/>
|
||||
<field name="quantity"/>
|
||||
<field name="minimal_quantity"/>
|
||||
<field name="unit"/>
|
||||
<field name="quantity_executed"/>
|
||||
</tree>
|
||||
11
modules/stock_forecast/view/forecast_tree.xml
Normal file
11
modules/stock_forecast/view/forecast_tree.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tree>
|
||||
<field name="company" expand="1" optional="1"/>
|
||||
<field name="warehouse" expand="2" optional="1"/>
|
||||
<field name="destination" expand="2" optional="0"/>
|
||||
<field name="from_date"/>
|
||||
<field name="to_date"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
8
modules/stock_forecast/view/product_list_forecast.xml
Normal file
8
modules/stock_forecast/view/product_list_forecast.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tree>
|
||||
<field name="code" optional="0"/>
|
||||
<field name="name" expand="1"/>
|
||||
<field name="quantity" symbol="default_uom"/>
|
||||
</tree>
|
||||
Reference in New Issue
Block a user