first commit

This commit is contained in:
root
2026-03-14 09:42:12 +00:00
commit 0adbd20c2c
10991 changed files with 1646955 additions and 0 deletions

View 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.

View 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)

View 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>

View 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 "Отказ"

View 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"

View 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"

View 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"

View 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"

View 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"

View 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"

View 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 "انصراف"

View 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"

View 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"

View 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"

View 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"

View 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"

View 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 "ຍົກເລີກ"

View 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"

View 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"

View 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"

View 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"

View 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 ""

View 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 "Отменить"

View 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"

View 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"

View 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 ""

View 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 "取消"

View 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>

View 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>

View 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']

View 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.

View 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

View 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

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>