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,11 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
__all__ = ['LotMixin']
def __getattr__(name):
if name == 'LotMixin':
from .stock import LotMixin
return LotMixin
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")

Binary file not shown.

Binary file not shown.

Binary file not shown.

18
modules/stock_lot/ir.xml Normal file
View File

@@ -0,0 +1,18 @@
<?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.sequence.type" id="sequence_type_stock_lot">
<field name="name">Stock Lot</field>
</record>
<record model="ir.sequence.type-res.group" id="sequence_type_stock_lot_group_admin">
<field name="sequence_type" ref="sequence_type_stock_lot"/>
<field name="group" ref="res.group_admin"/>
</record>
<record model="ir.sequence.type-res.group" id="sequence_type_stock_lot_group_product_admin">
<field name="sequence_type" ref="sequence_type_stock_lot"/>
<field name="group" ref="product.group_product_admin"/>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,477 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "Въведете партида"
#, fuzzy
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "Въведете партида"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "Въведете партида"
#, fuzzy
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "Въведете партида"
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Партида"
#, fuzzy
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Партида"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Планирано количество"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Номер"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Продукт"
#, fuzzy
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Количество"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Записано на"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Местоположение"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Партида"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Продукт"
#, fuzzy
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Количество"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Местоположение"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Планирано количество"
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Партида"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Продукт"
#, fuzzy
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Количество"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Партида"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Продукт"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Количество"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Количество"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Номер"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Продукт"
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Количество"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
#, fuzzy
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "Вътрешно количество"
#, fuzzy
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Местоположение"
#, fuzzy
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Партида"
#, fuzzy
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Период"
#, fuzzy
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Продукт"
#, fuzzy
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Вида местонахождение за което е необходима партидата"
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
#, fuzzy
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Вида местонахождение за което е необходима партидата"
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Планирано количество"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Вид наличност на партида"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
#, fuzzy
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "Наличност на партида"
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Наличност на партида"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Наличност на партида"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Планирано количество"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Местоположение"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Партида"
#, fuzzy
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Партиди"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,426 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "Seqüència de lot per defecte"
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "Seqüència de lot per defecte"
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "Lot obligatori"
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "Seqüència del lot"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "Lot obligatori"
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "Seqüència del lot"
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr "UdM per defecte"
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Quantitat prevista"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr "Té seqüència"
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Número"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Producte"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Quantitat"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr "Empresa"
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Data"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr "Document"
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr "Traçabilitat descendent"
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Des de la ubicació"
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Producte"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Quantitat"
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "A la ubicació"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr "Unitat"
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr "Traçabilitat ascendent"
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "A data"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "A data"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr "UdM per defecte"
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Quantitat prevista"
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Producte"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Quantitat"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr "Duplica número de lot"
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lots"
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Producte"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Quantitat"
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Quantitat restant"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr "Unitat"
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr "Té seqüència"
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Número"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr "Pare"
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Producte"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Quantitat"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr "Unitat"
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr "Precàlculs de lot"
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "Quantitat interna"
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Ubicació"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Període"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Producte"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "El tipus d'ubicació per la qual el lot és obligatori."
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr "La seqüència utilitzada per numerar automàticament els lots."
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "El tipus d'ubicació per la qual el lot és obligatori."
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr "La seqüència utilitzada per numerar automàticament els lots."
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr "La unitat de mesura per defecte."
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
"Permet calcular les quantitats previstes per a aquesta data.\n"
"* Un valor buit és un data infinita en el futur.\n"
"* Una data en el passat proporcionarà valors històrics."
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr "La unitat de mesura per defecte."
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr "El nombre de vegades que sha de duplicar el lot."
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Llista d'ubicacions d'existències"
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Arbre d'ubicacions d'existències"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr "Traçabilitat descendent"
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr "Traçabilitat ascendent"
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Afgeix lots"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr "No podeu canviar el producte d'un lot que te moviments d'existències."
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr "Per moure el producte \"%(product)s\" heu d'especificar-n'he el lot."
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
"La quantitat total \"%(lot_quantity)s\" dels lots ha de ser inferior o igual"
" a la quantitat \"%(move_quantity)s\" del moviment."
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr "Heu de seleccionar un lot en comptes d'un producte per \"%(product)s\"."
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr "Traçabilitat descendent"
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr "Traçabilitat ascendent"
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr "Duplica lot"
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Afegir lots"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr "Usuari a les empreses"
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "Lot"
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr "Configuració de les seqüències de lots per defecte"
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Lot"
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Traçabilitat lots"
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Context lotes per ubicació"
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Lots per ubicació"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr "Inici afegir lots en els moviments d'existències"
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr "Lot inici afegir lots en els moviments d'existències"
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr "Període d'existències precalculat per lot"
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Client"
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Perdut i trobat"
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Producció"
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Intern"
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Proveïdor"
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Client"
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Perdut i trobat"
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Producció"
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Intern"
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Proveïdor"
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lot"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lots"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr "Restant:"
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr "vegades"
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr "Afegeix"
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr "Cancel·la"

View File

@@ -0,0 +1,458 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr ""
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Production"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Production"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr ""
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr ""
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr ""
#, fuzzy
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr ""
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr ""
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Production"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Production"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lot"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lot"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lot"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lot"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lot"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lot"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Production"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lot"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,436 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "Standard Nummernkreis Charge"
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "Standard Nummernkreis Charge"
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "Charge erforderlich für Lagerort"
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "Nummernkreis Charge"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "Charge erforderlich für Lagerort"
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "Nummernkreis Charge"
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Charge"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Charge"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr "Standardmaßeinheit"
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Voraussichtliche Menge"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr "Hat Nummernkreis"
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Nummer"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Artikel"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Menge"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr "Unternehmen"
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Datum"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr "Dokument"
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr "Retrograde Rückverfolgung"
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Von Lagerort"
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Charge"
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Artikel"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Menge"
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Zu Lagerort"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr "Einheit"
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr "Progressive Rückverfolgung"
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "Ermittlungsdatum"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "Ermittlungsdatum"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr "Standardmaßeinheit"
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Voraussichtliche Menge"
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Charge"
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Artikel"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Menge"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Charge"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr "Chargennummer Duplizieren"
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Chargen"
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Artikel"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Menge"
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Verbleibende Menge"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr "Einheit"
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr "Hat Nummernkreis"
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Nummer"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr "Übergeordnet"
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Artikel"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Menge"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr "Einheit"
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr "Caches Charge"
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "Interne Menge"
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Ort"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Charge"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Lagerbuchungszeitraum"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Artikel"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Typ des Lagerorts, für den eine Chargen-Nummer erforderlich ist."
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
"Der Nummernkreis der zur automatischen Nummerierung der Chargen verwendet "
"wird."
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Typ des Lagerorts, für den eine Chargen-Nummer erforderlich ist."
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
"Der Nummernkreis der zur automatischen Nummerierung der Chargen verwendet "
"wird."
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr "Die Standardmaßeinheit."
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
"Den erwarteten Lagerbestand für dieses Datum ermitteln.\n"
"* Ein leerer Wert bedeutet ein unendliches Datum in der Zukunft.\n"
"* Ein Wert in der Vergangenheit berechnet historische Werte."
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr "Die Standardmaßeinheit."
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr "Wie oft die Charge dupliziert werden muss."
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Lagerbestand je Lagerort"
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Lagerbestand (Strukturansicht)"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Chargen"
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Chargen"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr "Retrograde Rückverfolgung"
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr "Progressive Rückverfolgung"
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Chargen"
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Chargen Hinzufügen"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
"Der Artikel einer Charge, für die es Warenbewegungen gibt, kann nicht "
"geändert werden."
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
"Damit der Artikel \"%(product)s\" umgelagert werden kann, muss eine Charge "
"angegeben werden."
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
"Die Gesamtmenge \"%(lot_quantity)s\" der Chargen muss kleiner oder gleich "
"der Menge \"%(move_quantity)s\" der Warenbewegung sein."
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
"Für \"%(product)s\" muss eine Charge ausgewählt werden anstatt einem "
"Artikel."
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr "Retrograde Rückverfolgung"
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr "Progressive Rückverfolgung"
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr "Charge Duplizieren"
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Chargen Hinzufügen"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr "Benutzer in Unternehmen"
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "Lager Charge"
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Chargen"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr "Artikel Einstellungen Charge Standardnummernkreis"
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Lager Charge"
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Lager Chargenverfolgung"
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Lager Chargen je Lagerort Kontext"
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Lager Chargen pro Lagerort"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr "Lager Warenbewegung Chargen hinzufügen Start"
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr "Lager Warenbewegung Charge hinzufügen Start Charge"
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr "Lagerbuchungszeitraum Cache Charge"
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Kunde"
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Inventurdifferenz"
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Produktion"
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Lager"
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Lieferant"
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Kunde"
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Inventurdifferenz"
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Produktion"
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Lager"
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Lieferant"
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Charge"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Chargen"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr "Verbleibend:"
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr "mal"
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr "Hinzufügen"
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr "Abbrechen"

View File

@@ -0,0 +1,428 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "Secuencia de lote por defecto"
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "Secuencia de lote por defecto"
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "Lote obligatorio"
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "Secuencia de lote"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "Lote obligatorio"
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "Secuencia de lote"
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lote"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lote"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr "UdM por defecto"
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Cantidad prevista"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr "Tiene secuencia"
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Número"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Producto"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Cantidad"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr "Empresa"
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Fecha"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr "Documento"
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr "Trazabilidad descendente"
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Desde ubicación"
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lote"
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Producto"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Cantidad"
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "A ubicación"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr "Unidad"
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr "Trazabilidad ascendente"
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "A la fecha"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "A la fecha"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr "UdM por defecto"
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Cantidad prevista"
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lote"
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Producto"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Cantidad"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lote"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr "Duplicar número de lote"
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lotes"
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Producto"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Cantidad"
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Cantidad restante"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr "Unidad"
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr "Tiene secuencia"
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Número"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr "Padre"
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Producto"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Cantidad"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr "Unidad"
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr "Lote precalculado"
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "Cantidad interna"
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Ubicación"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lote"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Periodo"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Producto"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "El tipo de ubicación en la que el lote es obligatorio."
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr "La secuencia usada para numerar automáticamente los lotes."
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "El tipo de ubicación en la que el lote es obligatorio."
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr "La secuencia usada para numerar automáticamente los lotes."
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr "La unidad de medida por defecto."
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
"Permite calcular las cantidades previstas para esta fecha.\n"
"* Un valor vacío es una fecha infinita en el futuro.\n"
"* Una fecha en el pasado proporcionará valores históricos."
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr "La unidad de medida por defecto."
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr "El número de veces que el lote debe ser duplicado."
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Lista de ubicaciones de existencias"
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Árbol de ubicaciones de existencias"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lotes"
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lotes"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr "Trazabilidad descendente"
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr "Trazabilidad ascendente"
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lotes"
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Añadir lotes"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
"No puede cambiar el producto de un lote que ya tiene movimientos de "
"existencias."
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr "Para mover el producto \"%(product)s\" debe especificar su lote."
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
"La cantidad total \"%(lot_quantity)s\" de los lotes debe ser menor o igual "
"que la cantidad \"%(move_quantity)s\" del movimiento."
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr "Debe seleccionar un lote en lugar de un producto en \"%(product)s\"."
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr "Trazabilidad descendente"
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr "Trazabilidad ascendente"
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr "Duplicar lote"
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Añadir lotes"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr "Usuario en las empresas"
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "Lote"
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lotes"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr "Configuración de las secuencias de lotes por defecto"
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Lote"
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Trazabilidad lotes"
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Contexto lotes por ubicación"
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Lotes por ubicación"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr "Inicio añadir lotes en movimientos de existencias"
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr "Lote inicio añadir lotes en movimientos de existencias"
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr "Periodo de existencias precalculado por lote"
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Cliente"
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Perdido y encontrado"
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Producción"
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Interno"
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Proveedor"
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Cliente"
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Perdido y encontrado"
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Producción"
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Interno"
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Proveedor"
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lote"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lotes"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr "Restante:"
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr "veces"
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr "Añadir"
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr "Cancelar"

View File

@@ -0,0 +1,432 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "Lote requerido"
#, fuzzy
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "Lote requerido"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "Lote requerido"
#, fuzzy
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "Lote requerido"
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr ""
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr ""
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr ""
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr ""
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr ""
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr ""
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr ""
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr ""
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr ""
#, fuzzy
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "El tipo de ubicación para la cual el lote es requerido"
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
#, fuzzy
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "El tipo de ubicación para la cual el lote es requerido"
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Lote de stock"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Tipo de lote de stock"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr ""
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr ""
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
#, fuzzy
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "Lote de stock"
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr ""
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Lote de stock"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Lote de stock"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Lote de stock"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Lote de stock"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr ""
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr ""
msgctxt "view:product.template:"
msgid "Lots"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,462 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "Partii nõutav"
#, fuzzy
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "Partii nõutav"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "Partii nõutav"
#, fuzzy
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "Partii nõutav"
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Partii"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Partii"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Prognoositav kogus"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Number"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Toode"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Kogus"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Kuupäeval"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Asukoht"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Partii"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Toode"
#, fuzzy
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Kogus"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Asukoht"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "Kuupäeval"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "Kuupäeval"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Prognoositav kogus"
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Partii"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Toode"
#, fuzzy
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Kogus"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Partii"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Partiid"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Toode"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Kogus"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Kogus"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Number"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Toode"
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Kogus"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "Sisemine kogus"
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Asukoht"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Partii"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Periood"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Toode"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Prognoositav kogus"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Partiitunnuse tüüp"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Partiid"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Partiid"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Partiid"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Partiid"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Partiid"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
#, fuzzy
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "Partii laos"
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Partiid"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Partii laos"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Partii laos"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Prognoositav kogus"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Asukoht"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Klient"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Kaotatud ja leitud"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Tootmine"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Laokoht"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Hankija"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Klient"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Kaotatud ja leitud"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Tootmine"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Laokoht"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Hankija"
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Partii"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Partiid"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,472 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "قطعه مورد نیاز"
#, fuzzy
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "قطعه مورد نیاز"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "قطعه مورد نیاز"
#, fuzzy
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "قطعه مورد نیاز"
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "قطعه"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "قطعه"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "مقدار پیش بینی شده"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "شماره"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "محصول"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "مقدار/تعداد"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "در تاریخ"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "مکان"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "قطعه"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "محصول"
#, fuzzy
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "مقدار/تعداد"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "مکان"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "در تاریخ"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "در تاریخ"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "مقدار پیش بینی شده"
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "قطعه"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "محصول"
#, fuzzy
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "مقدار/تعداد"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "قطعه"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "قطعه‌ها"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "محصول"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "مقدار/تعداد"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "مقدار/تعداد"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "شماره"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "محصول"
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "مقدار/تعداد"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr "مخازن قطعه"
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "مقدار داخلی"
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "مکان"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "قطعه"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "دوره زمانی"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "محصول"
#, fuzzy
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "نوع مکانی که نیازمند قطعه میباشد"
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
#, fuzzy
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "نوع مکانی که نیازمند قطعه میباشد"
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
"اجازه می دهد مقادیرموجودی مورد انتظار را برای این تاریخ محاسبه کنید.\n"
"* مقدار خالی یک تاریخ درآینده نامحدود است.\n"
"* یک تاریخ در گذشته ارزش های تاریخی را فراهم می کند."
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "مقدار پیش بینی شده"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "نوع قطعه موجود"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "قطعه‌ها"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "قطعه‌ها"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "قطعه‌ها"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "قطعه‌ها"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
"شما نمیتوانید محصول زیادی از یک جنس را تغییر دهید که جابجایی اجناس داشته "
"باشد."
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
"برای جابجایی محصول :\"%(product)s\" شما باید یک قطعه از جنس را ارائه کنید."
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
"شما باید یک مقدار جنس را به جای یک محصول برای \"%(product)s\" انتخاب کنید."
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "قطعه‌ها"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
#, fuzzy
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "قطعه موجود"
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "قطعه‌ها"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "قطعه موجود"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "قطعه موجود"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "مقدار پیش بینی شده"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "قطعه بواسطه مکان"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
#, fuzzy
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr "موجودی دوره انبار در هر قطعه"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "مشتری"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "گمشده ها و یافته ها"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "تهیه کننده"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "مخزن"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "تأمین کننده"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "مشتری"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "گمشده ها و یافته ها"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "تهیه کننده"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "مخزن"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "تأمین کننده"
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "قطعه"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "قطعه‌ها"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,456 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr ""
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Production"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Production"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr ""
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr ""
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr ""
#, fuzzy
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr ""
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr ""
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Production"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Production"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Production"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lots"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,429 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "Séquence de lot par défaut"
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "Séquence de lot par défaut"
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "Lot requis"
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "Séquence de lot"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "Lot requis"
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "Séquence de lot"
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr "UDM par défaut"
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Quantité prévisionnelle"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr "A une séquence"
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Numéro"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Produit"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Quantité"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr "Société"
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Date"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr "Document"
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr "Traces descendantes"
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Emplacement d'origine"
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Produit"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Quantité"
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Emplacement de destination"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr "Unité"
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr "Traces ascendantes"
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "À la date"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "À la date"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr "UDM par défaut"
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Quantité prévisionnelle"
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Produit"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Quantité"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr "Dupliquer le numéro de lot"
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lots"
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Produit"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Quantité"
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Quantité restante"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr "Unité"
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr "A une séquence"
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Numéro"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr "Parent"
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Produit"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Quantité"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr "Unité"
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr "Caches de lot"
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "Quantité interne"
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Emplacement"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Période"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Produit"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Le type d'emplacement pour lequel un lot est requis."
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr "La séquence utilisée pour numéroter automatiquement les lots."
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Le type d'emplacement pour lequel un lot est requis."
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr "La séquence utilisée pour numéroter automatiquement les lots."
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr "L'unité de mesure par défaut."
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
"Permet de calculer les quantités de stock attendues pour cette date.\n"
"* Une valeur vide est une date infinie dans le futur.\n"
"* Une date dans le passé fournira les valeurs historiques."
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr "L'unité de mesure par défaut."
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr "Le nombre de fois que le lot doit être dupliqué."
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Liste des emplacements des stocks"
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Arbre des emplacements des stocks"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr "Traces descendantes"
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr "Traces ascendantes"
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Ajouter des lots"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
"Vous ne pouvez pas changer le produit d'un lot qui a des mouvements de "
"stock."
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr "Pour déplacer le produit « %(product)s », vous devez fournir un lot."
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
"La quantité totale « %(lot_quantity)s » des lots doit être inférieure ou "
"égale à la quantité « %(move_quantity)s » du mouvement."
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
"Vous devez sélectionner un lot au lieu d'un produit pour « %(product)s »."
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr "Traces descendantes"
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr "Traces ascendantes"
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr "Dupliquer le lot"
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Ajouter des lots"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr "Utilisateur dans les sociétés"
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "Lot"
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr "Configuration produit Séquence de lots par défaut"
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Lot de stock"
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Trace de lot de stock"
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Contexte de lot de stock par emplacements"
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Lots de stock par emplacements"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr "Mouvement de stock Ajouter des lots Début"
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr "Mouvement de stock Ajouter des lots Démarrage lot"
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr "Cache de lot de période de stock"
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Client"
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Pertes et surplus"
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Production"
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Magasin"
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Fournisseur"
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Client"
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Pertes et surplus"
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Production"
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Magasin"
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Fournisseur"
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lot"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lots"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr "Restant :"
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr "fois"
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr "Ajouter"
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr "Annuler"

View File

@@ -0,0 +1,469 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "Charge szükséges a raktárhelyhez "
#, fuzzy
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "Charge szükséges a raktárhelyhez "
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "Charge szükséges a raktárhelyhez"
#, fuzzy
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "Charge szükséges a raktárhelyhez "
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Charge"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Charge"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Előrelátható mennyiség"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Szám"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Termék"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Mennyiség"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Utolsó módosítás dátuma"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Hely"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Charge"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Termék"
#, fuzzy
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Mennyiség"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Hely"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Előrelátható mennyiség"
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Charge"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Termék"
#, fuzzy
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Mennyiség"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Charge"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Termék"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Mennyiség"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Mennyiség"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Szám"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Termék"
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Mennyiség"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr "Caches Charge"
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "Belső mennyiség"
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Hely"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Charge"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Raktár időszak"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Termék"
#, fuzzy
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Raktárhely típusa, melyhez szükséges Charge szám"
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
#, fuzzy
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Raktárhely típusa, melyhez szükséges Charge szám"
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Előrelátható mennyiség"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Raktár Charge típus"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
#, fuzzy
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "Raktár Charge"
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Raktár Charge"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Raktár Charge"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Előrelátható mennyiség"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Hely"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
#, fuzzy
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr "Raktár Cache időszak Chargenként"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Charge"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Chargen"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,430 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Nomor"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Produk"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr "Perusahaan"
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Tanggal"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr "Dokumen"
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Lokasi"
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Produk"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Kuantitas"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Lokasi"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "Pada Tanggal"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "Pada Tanggal"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Produk"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr ""
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Produk"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Kuantitas"
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr ""
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Nomor"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr "Induk"
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Produk"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr ""
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Lokasi"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Periode"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Produk"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Lokasi"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Lokasi"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr ""
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr ""
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr ""
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Lokasi"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Lokasi"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Lokasi"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Lokasi"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Pelanggan"
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Produksi"
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Pemasok"
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Pelanggan"
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Produksi"
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Pemasok"
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr ""
msgctxt "view:product.template:"
msgid "Lots"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,451 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lotto"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lotto"
#, fuzzy
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr "UdM predefinita"
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Quantità prevista"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Numero"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Prodotto"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Quantità"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Utente scrittura"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Luogo"
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lotto"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Prodotto"
#, fuzzy
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Quantità"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Luogo"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr "UdM predefinita"
#, fuzzy
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Quantità prevista"
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lotto"
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Prodotto"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Quantità"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lotto"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lotti"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Prodotto"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Quantità"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Quantità"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Numero"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Prodotto"
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Quantità"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Luogo"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lotto"
#, fuzzy
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Periodo"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Prodotto"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Quantità prevista"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Quantità prevista"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lotti"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lotti"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lotti"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lot"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lot"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lotti"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Quantità prevista"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Quantità prevista"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Quantità prevista"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Luogo"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Cliente"
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Perso e ritrovato"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Production"
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Deposito"
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Fornitore"
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Cliente"
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Perso e ritrovato"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Production"
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Deposito"
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Fornitore"
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lotto"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lotti"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,470 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "ເລກທີ"
#, fuzzy
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "ຜະລິດຕະພັນ"
#, fuzzy
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "ຈຳນວນ"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "ວັນທີບັນທຶກ"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "ບ່ອນຢູ່"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "ຜະລິດຕະພັນ"
#, fuzzy
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "ຈຳນວນ"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "ບ່ອນຢູ່"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "ຈຳນວນພາຍໃນ"
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "ຜະລິດຕະພັນ"
#, fuzzy
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "ຈຳນວນ"
#, fuzzy
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "ຜະລິດຕະພັນ"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "ຈຳນວນ"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "ຈຳນວນ"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "ເລກທີ"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "ຜະລິດຕະພັນ"
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "ຈຳນວນ"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "ຈຳນວນພາຍໃນ"
#, fuzzy
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "ບ່ອນຢູ່"
#, fuzzy
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "ໄລຍະ"
#, fuzzy
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "ຜະລິດຕະພັນ"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "ບ່ອນຢູ່"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "ບ່ອນຢູ່"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "ບ່ອນຢູ່"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "ບ່ອນຢູ່"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "ບ່ອນຢູ່"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "ບ່ອນຢູ່"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "ລໍຮັບຈ່າຍ"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "ຜະລິດຕະພັນ"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "ຫ້ອງເກັບມ້ຽນຢາ"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "ຜູ້ສະໜອງ"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "ລໍຮັບຈ່າຍ"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "ຜະລິດຕະພັນ"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "ຫ້ອງເກັບມ້ຽນຢາ"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "ຜູ້ສະໜອງ"
#, fuzzy
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lots"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,459 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lo"
#, fuzzy
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lo"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Pakeitimo data"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Production"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lo"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Production"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lo"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lo"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lo"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr ""
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr ""
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr ""
#, fuzzy
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lo"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr ""
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr ""
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Production"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Production"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lo"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lo"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lo"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lo"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lo"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lo"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Production"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lo"
#, fuzzy
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lo"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,429 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "Standaard Batch Reeks"
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "Standaard Batch Reeks"
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "Batch Vereist"
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "Batch Reeks"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "Batch Vereist"
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "Batch Reeks"
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Batch"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Batch"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr "Standaard maateenheid"
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Verwachte hoeveelheid"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr "Heeft Reeks"
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Nummer"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Product"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Hoeveelheid"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr "Bedrijf"
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Datum"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr "Document"
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr "Neerwaartse tracering"
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Van locatie"
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Batch"
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Product"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Hoeveelheid"
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Naar locatie"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr "Eenheid"
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr "Opwaartse tracering"
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "Op datum"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "Op datum"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr "Standaard maateenheid"
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Verwachte hoeveelheid"
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Batch"
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Product"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Hoeveelheid"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Batch"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr "Dupliceer batchnummer"
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Batches"
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Product"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Hoeveelheid"
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Resterende hoeveelheid"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr "Eenheid"
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr "Heeft reeks"
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Nummer"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr "Bovenliggend"
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Product"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Hoeveelheid"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr "Eenheid"
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr "Batch Caches"
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "Interne hoeveelheid"
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Plaats"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Batch"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Periode"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Product"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Het soort locatie waarvoor een batch vereist is."
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr "De reeks die wordt gebruikt om batches automatisch te nummeren."
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Het soort locatie waarvoor een batch vereist is."
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr "De reeks die wordt gebruikt om batches automatisch te nummeren."
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr "De standaard maateenheid."
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
"Sta toe de verwachte voorraadhoeveelheden voor deze datum te berekenen.\n"
"* Een lege waarde is een oneindige datum in de toekomst.\n"
"* Een datum in het verleden levert historische waarden op."
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr "De standaard maateenheid."
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr "Het aantal keren dat de batch gedupliceerd moet worden."
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Lijst met hoeveelheden per voorraadlocatie"
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Voorraad locaties boom"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Batches"
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Batches"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr "Neerwaartse tracering"
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr "Opwaartse tracering"
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Batches"
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Batches toevoegen"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
"U kunt het product van een batch die voorraadbewegingen heeft niet wijzigen."
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr "Om product \"%(product)s\" te verplaatsen, moet u een batch opgeven."
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
"De totale hoeveelheid \"%(lot_quantity)s\" van de batches moet kleiner of "
"gelijk zijn aan de hoeveelheid \"%(move_quantity)s\" van de "
"voorraadbeweging."
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
"U moet een batch selecteren in plaats van een product voor \"%(product)s\"."
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr "Neerwaartse tracering"
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr "Opwaartse tracering"
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr "Dupliceer batch"
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Batches toevoegen"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr "Gebruiker in bedrijven"
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "Voorraad batch"
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Batches"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr "Product configuratie standaard batch reeks"
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Voorraad batch"
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Voorraad batch traceren"
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Voorraad batches per locatie context"
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Voorraad batches per locatie"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr "Voorraad boeking voeg batches toe start"
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr "Voorraad boeking voeg batches toe start batch"
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr "Voorraad periode batch cache"
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Klant"
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Voorraad verschil"
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Productie"
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Magazijn"
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Leverancier"
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Klant"
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Voorraad verschil"
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Productie"
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Magazijn"
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Leverancier"
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Batch"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Batches"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr "Overig:"
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr "keer"
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr "Toevoegen"
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr "Annuleer"

View File

@@ -0,0 +1,464 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Numer"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Produkt"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Ilość"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Na dzień"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Lokalizacja"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Produkt"
#, fuzzy
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Ilość"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Lokalizacja"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "Na dzień"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "Na dzień"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Ilość"
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Produkt"
#, fuzzy
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Ilość"
#, fuzzy
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Produkt"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Ilość"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Ilość"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Numer"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Produkt"
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Ilość"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr ""
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Lokalizacja"
#, fuzzy
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Okres"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Produkt"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Lista lokalizacji magazynowych"
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Struktura lokalizacji magazynowych"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Lista lokalizacji magazynowych"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Struktura lokalizacji magazynowych"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Lista lokalizacji magazynowych"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Lokalizacja"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lots"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,471 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "Lote Obrigatório"
#, fuzzy
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "Lote Obrigatório"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "Lote Obrigatório"
#, fuzzy
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "Lote Obrigatório"
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lote"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lote"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Quantidade prevista"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Número"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Produto"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Quantidade"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Na Data"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Localização"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lote"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Produto"
#, fuzzy
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Quantidade"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Localização"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "Na Data"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "Na Data"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Quantidade prevista"
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lote"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Produto"
#, fuzzy
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Quantidade"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lote"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Produto"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Quantidade"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Quantidade"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Número"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Produto"
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Quantidade"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr "Lotes pré-calculados"
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "Quantidade interna"
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Localização"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lote"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Período"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Produto"
#, fuzzy
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "O tipo de localização para a qual o lote é obrigatório"
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
#, fuzzy
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "O tipo de localização para a qual o lote é obrigatório"
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
"Permite o cálculo esperado das quantidades do estoque para esta data.\n"
"* Um valor vazio é uma data infinita no futuro.\n"
"* Uma data no passado mostrará valores históricos."
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Quantidade prevista"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Tipo do lote de estoque"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
#, fuzzy
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "Lote de estoque"
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Lote de estoque"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Lote de estoque"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Quantidade prevista"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Lote Localização"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
#, fuzzy
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr "Período de estoque pré-calculado por lote"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lote"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lotes"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,431 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Produs"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr ""
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr ""
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Produs"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr ""
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Produs"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Produs"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr ""
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Produs"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr ""
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr ""
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Perioadă"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Produs"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Locaţii Lista Cantităţi"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Arbore Cantitate Locaţii"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr ""
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr ""
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr ""
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Locaţii Lista Cantităţi"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Arbore Cantitate Locaţii"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Locaţii Lista Cantităţi"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Locaţii Lista Cantităţi"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr ""
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr ""
msgctxt "view:product.template:"
msgid "Lots"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,472 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Прогноз количества"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Номер"
#, fuzzy
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Товарно материальные ценности (ТМЦ)"
#, fuzzy
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Кол-во"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Дата изменения"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Местоположение"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Товарно материальные ценности (ТМЦ)"
#, fuzzy
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Кол-во"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Местоположение"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Прогноз количества"
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Товарно материальные ценности (ТМЦ)"
#, fuzzy
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Кол-во"
#, fuzzy
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Товарно материальные ценности (ТМЦ)"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Кол-во"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Кол-во"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Номер"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Товарно материальные ценности (ТМЦ)"
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Кол-во"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
#, fuzzy
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "Внутреннее количество"
#, fuzzy
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Местоположение"
#, fuzzy
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Период"
#, fuzzy
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Товарно материальные ценности (ТМЦ)"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Прогноз количества"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Прогноз количества"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Прогноз количества"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Прогноз количества"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Прогноз количества"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Местоположение"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Заказчик"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Утраченный и обретенный"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Производство"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Хранилище"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Поставщик"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Заказчик"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Утраченный и обретенный"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Производство"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Хранилище"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Поставщик"
#, fuzzy
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lots"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,471 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "Serija obvezna"
#, fuzzy
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "Serija obvezna"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "Serija obvezna"
#, fuzzy
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "Serija obvezna"
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Serija"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Serija"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Predvidena količina"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "Številka"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "Izdelek"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "Količina"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "Na dan"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Lokacija"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Serija"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Izdelek"
#, fuzzy
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "Količina"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Lokacija"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "Na dan"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "Na dan"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "Predvidena količina"
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Serija"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Izdelek"
#, fuzzy
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "Količina"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Serija"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Izdelek"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "Količina"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "Količina"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "Številka"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Izdelek"
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "Količina"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr "Predpomnjene serije"
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "Notranja količina"
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "Lokacija"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Serija"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "Obdobje"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "Izdelek"
#, fuzzy
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Vrsta lokacije, za katero je serija obvezna"
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
#, fuzzy
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "Vrsta lokacije, za katero je serija obvezna"
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
"Omogoča izračun predvidenih zalog na ta dan.\n"
"* Prazno polje pomeni neskončno v prihodnost.\n"
"* Pretekli datum daje zgodovino zaloge."
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Predvidena količina"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Tip serije"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
#, fuzzy
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "Serija"
#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Serija"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Serija"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Predvidena količina"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Serija po lokaciji"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
#, fuzzy
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr "Predpomnjena obdobja po serijah"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Serija"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Serije"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,456 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr ""
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "Production"
#, fuzzy
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "Production"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr ""
#, fuzzy
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr ""
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "Production"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr ""
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr ""
#, fuzzy
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "Lot"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr ""
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr ""
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "Production"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "Production"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "Lots"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "Lots"
#, fuzzy
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
#, fuzzy
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "Lots"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "Lots"
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "Production"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "Production"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "Customer"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "Lost and Found"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "Production"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "Storage"
#, fuzzy
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "Supplier"
#, fuzzy
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "Lot"
#, fuzzy
msgctxt "view:product.template:"
msgid "Lots"
msgstr "Lots"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,421 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr ""
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr ""
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr ""
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr ""
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr ""
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr ""
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr ""
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr ""
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr ""
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr ""
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr ""
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr ""
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr ""
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr ""
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr ""
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr ""
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr ""
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr ""
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr ""
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr ""
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr ""
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr ""
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr ""
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr ""
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr ""
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr ""
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr ""
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr ""
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr ""
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr ""
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr ""
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr ""
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr ""
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr ""
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr ""
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr ""
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr ""
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr ""
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr ""
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr ""
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr ""
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr ""
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr ""
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr ""
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr ""
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr ""
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr ""
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr ""
msgctxt "view:product.template:"
msgid "Lots"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr ""
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr ""
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr ""

View File

@@ -0,0 +1,436 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:product.configuration,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "默认批次序列"
msgctxt ""
"field:product.configuration.default_lot_sequence,default_lot_sequence:"
msgid "Default Lot Sequence"
msgstr "默认批次序列"
msgctxt "field:product.product,lot_required:"
msgid "Lot Required"
msgstr "需要批次"
msgctxt "field:product.product,lot_sequence:"
msgid "Lot Sequence"
msgstr "批次序列"
msgctxt "field:product.template,lot_required:"
msgid "Lot Required"
msgstr "需要批次"
msgctxt "field:product.template,lot_sequence:"
msgid "Lot Sequence"
msgstr "批次序列"
#, fuzzy
msgctxt "field:stock.inventory.count.quantity,lot:"
msgid "Lot"
msgstr "批次"
msgctxt "field:stock.inventory.line,lot:"
msgid "Lot"
msgstr "批次"
msgctxt "field:stock.lot,default_uom:"
msgid "Default UoM"
msgstr "默认计量单位"
msgctxt "field:stock.lot,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "预期数量"
msgctxt "field:stock.lot,has_sequence:"
msgid "Has Sequence"
msgstr "具有序列"
msgctxt "field:stock.lot,number:"
msgid "Number"
msgstr "批次号"
msgctxt "field:stock.lot,product:"
msgid "Product"
msgstr "产品"
msgctxt "field:stock.lot,quantity:"
msgid "Quantity"
msgstr "数量"
msgctxt "field:stock.lot.trace,company:"
msgid "Company"
msgstr "公司"
msgctxt "field:stock.lot.trace,date:"
msgid "Date"
msgstr "日期"
msgctxt "field:stock.lot.trace,document:"
msgid "Document"
msgstr "文档"
msgctxt "field:stock.lot.trace,downward_traces:"
msgid "Downward Traces"
msgstr "向下追踪"
#, fuzzy
msgctxt "field:stock.lot.trace,from_location:"
msgid "From Location"
msgstr "库位"
msgctxt "field:stock.lot.trace,lot:"
msgid "Lot"
msgstr "批次"
msgctxt "field:stock.lot.trace,product:"
msgid "Product"
msgstr "产品"
msgctxt "field:stock.lot.trace,quantity:"
msgid "Quantity"
msgstr "数量"
#, fuzzy
msgctxt "field:stock.lot.trace,to_location:"
msgid "To Location"
msgstr "库位"
msgctxt "field:stock.lot.trace,unit:"
msgid "Unit"
msgstr "单位"
msgctxt "field:stock.lot.trace,upward_traces:"
msgid "Upward Traces"
msgstr "向上追踪"
msgctxt "field:stock.lots_by_location.context,forecast_date:"
msgid "At Date"
msgstr "日期"
msgctxt "field:stock.lots_by_location.context,stock_date_end:"
msgid "At Date"
msgstr "日期"
msgctxt "field:stock.lots_by_locations,default_uom:"
msgid "Default UoM"
msgstr "默认计量单位"
msgctxt "field:stock.lots_by_locations,forecast_quantity:"
msgid "Forecast Quantity"
msgstr "预期数量"
msgctxt "field:stock.lots_by_locations,lot:"
msgid "Lot"
msgstr "批次"
msgctxt "field:stock.lots_by_locations,product:"
msgid "Product"
msgstr "产品"
msgctxt "field:stock.lots_by_locations,quantity:"
msgid "Quantity"
msgstr "数量"
msgctxt "field:stock.move,lot:"
msgid "Lot"
msgstr "批次"
msgctxt "field:stock.move.add.lots.start,duplicate_lot_number:"
msgid "Duplicate Lot Number"
msgstr "重复批次号"
msgctxt "field:stock.move.add.lots.start,lots:"
msgid "Lots"
msgstr "批次"
msgctxt "field:stock.move.add.lots.start,product:"
msgid "Product"
msgstr "产品"
msgctxt "field:stock.move.add.lots.start,quantity:"
msgid "Quantity"
msgstr "数量"
msgctxt "field:stock.move.add.lots.start,quantity_remaining:"
msgid "Quantity Remaining"
msgstr "剩余数量"
msgctxt "field:stock.move.add.lots.start,unit:"
msgid "Unit"
msgstr "单位"
msgctxt "field:stock.move.add.lots.start.lot,has_sequence:"
msgid "Has Sequence"
msgstr "具有序列"
msgctxt "field:stock.move.add.lots.start.lot,number:"
msgid "Number"
msgstr "批次号"
msgctxt "field:stock.move.add.lots.start.lot,parent:"
msgid "Parent"
msgstr "上级"
msgctxt "field:stock.move.add.lots.start.lot,product:"
msgid "Product"
msgstr "产品"
msgctxt "field:stock.move.add.lots.start.lot,quantity:"
msgid "Quantity"
msgstr "数量"
msgctxt "field:stock.move.add.lots.start.lot,quantity_unit:"
msgid "Unit"
msgstr "单位"
msgctxt "field:stock.period,lot_caches:"
msgid "Lot Caches"
msgstr "批次缓存"
msgctxt "field:stock.period.cache.lot,internal_quantity:"
msgid "Internal Quantity"
msgstr "内部数量"
msgctxt "field:stock.period.cache.lot,location:"
msgid "Location"
msgstr "库位"
msgctxt "field:stock.period.cache.lot,lot:"
msgid "Lot"
msgstr "批次"
msgctxt "field:stock.period.cache.lot,period:"
msgid "Period"
msgstr "周期"
msgctxt "field:stock.period.cache.lot,product:"
msgid "Product"
msgstr "产品"
msgctxt "help:product.product,lot_required:"
msgid "The type of location for which lot is required."
msgstr "批次需要的库位类型。"
msgctxt "help:product.product,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr "序列号,用于自动生成数字批次号。"
msgctxt "help:product.template,lot_required:"
msgid "The type of location for which lot is required."
msgstr "批次需要的库位类型。"
msgctxt "help:product.template,lot_sequence:"
msgid "The sequence used to automatically number lots."
msgstr "序列号,用于自动生成数字批次号。"
msgctxt "help:stock.lot,default_uom:"
msgid "The default Unit of Measure."
msgstr "默认计量单位。"
msgctxt "help:stock.lots_by_location.context,forecast_date:"
msgid ""
"Allow to compute expected stock quantities for this date.\n"
"* An empty value is an infinite date in the future.\n"
"* A date in the past will provide historical values."
msgstr ""
"允许计算当前日期对应的预期库存数量。\n"
"* 空值是未来的无限日期。\n"
"* 过去的日期将提供历史值。"
msgctxt "help:stock.lots_by_locations,default_uom:"
msgid "The default Unit of Measure."
msgstr "默认计量单位。"
msgctxt "help:stock.move.add.lots.start,duplicate_lot_number:"
msgid "The number of times the lot must be duplicated."
msgstr "批次需要复制的次数。"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_list"
msgid "Stock Locations List"
msgstr "库位明细数量"
#, fuzzy
msgctxt "model:ir.action,name:act_location_quantity_tree"
msgid "Stock Locations Tree"
msgstr "库位树数量"
msgctxt "model:ir.action,name:act_lot_form"
msgid "Lots"
msgstr "批次"
msgctxt "model:ir.action,name:act_lot_form_product_relate"
msgid "Lots"
msgstr "批次"
msgctxt "model:ir.action,name:act_lot_trace_downward_relate"
msgid "Downward Traces"
msgstr "向下追踪"
msgctxt "model:ir.action,name:act_lot_trace_upward_relate"
msgid "Upward Traces"
msgstr "向上追踪"
#, fuzzy
msgctxt "model:ir.action,name:act_lots_by_locations_relate"
msgid "Lots"
msgstr "批次"
msgctxt "model:ir.action,name:wizard_move_add_lots"
msgid "Add Lots"
msgstr "增加批次"
msgctxt "model:ir.message,text:msg_change_product"
msgid "You cannot change the product of a stock lot which has stock moves."
msgstr "如果一个库存批次包含库存移动,那么这个批次对应的产品无法更改。"
#, python-format
msgctxt "model:ir.message,text:msg_lot_required"
msgid "To move product \"%(product)s\" you must provide a stock lot."
msgstr "移动产品 \"%(product)s\" 之前须提供一个库存批次。"
#, python-format
msgctxt "model:ir.message,text:msg_move_add_lot_quantity"
msgid ""
"The total quantity \"%(lot_quantity)s\" of the lots must be less than or "
"equal to the quantity \"%(move_quantity)s\" of the move."
msgstr "批次的总数量 \"%(lot_quantity)s\" 必须小于或等于移动的数量 \"%(move_quantity)s\"。"
#, python-format
msgctxt "model:ir.message,text:msg_only_lot"
msgid "You must select a stock lot instead of a product for \"%(product)s\"."
msgstr "必须为 \"%(product)s\" 选择库存批次而不是产品。"
msgctxt "model:ir.model.button,string:lot_downward_traces_button"
msgid "Downward Traces"
msgstr "向下追踪"
msgctxt "model:ir.model.button,string:lot_upward_traces_button"
msgid "Upward Traces"
msgstr "向上追踪"
msgctxt ""
"model:ir.model.button,string:move_add_lots_start_duplicate_lot_button"
msgid "Duplicate Lot"
msgstr "重复批次"
msgctxt "model:ir.model.button,string:move_add_lots_wizard_button"
msgid "Add Lots"
msgstr "增加批次"
msgctxt "model:ir.rule.group,name:rule_group_lot_trace_companies"
msgid "User in companies"
msgstr "公司中的用户"
msgctxt "model:ir.sequence.type,name:sequence_type_stock_lot"
msgid "Stock Lot"
msgstr "库存批次"
msgctxt "model:ir.ui.menu,name:menu_lot_form"
msgid "Lots"
msgstr "批次"
#, fuzzy
msgctxt "model:product.configuration.default_lot_sequence,string:"
msgid "Product Configuration Default Lot Sequence"
msgstr "产品设置-默认批次序列"
#, fuzzy
msgctxt "model:stock.lot,string:"
msgid "Stock Lot"
msgstr "库存批次"
#, fuzzy
msgctxt "model:stock.lot.trace,string:"
msgid "Stock Lot Trace"
msgstr "库存批次"
#, fuzzy
msgctxt "model:stock.lots_by_location.context,string:"
msgid "Stock Lots By Location Context"
msgstr "库位明细数量"
#, fuzzy
msgctxt "model:stock.lots_by_locations,string:"
msgid "Stock Lots By Locations"
msgstr "按库位划分的批次"
msgctxt "model:stock.move.add.lots.start,string:"
msgid "Stock Move Add Lots Start"
msgstr ""
msgctxt "model:stock.move.add.lots.start.lot,string:"
msgid "Stock Move Add Lots Start Lot"
msgstr ""
#, fuzzy
msgctxt "model:stock.period.cache.lot,string:"
msgid "Stock Period Cache Lot"
msgstr "每个批次的库存期缓存"
msgctxt "selection:product.product,lot_required:"
msgid "Customer"
msgstr "客户"
msgctxt "selection:product.product,lot_required:"
msgid "Lost and Found"
msgstr "失物招领区"
msgctxt "selection:product.product,lot_required:"
msgid "Production"
msgstr "产品"
msgctxt "selection:product.product,lot_required:"
msgid "Storage"
msgstr "存储区"
msgctxt "selection:product.product,lot_required:"
msgid "Supplier"
msgstr "供应商"
msgctxt "selection:product.template,lot_required:"
msgid "Customer"
msgstr "客户"
msgctxt "selection:product.template,lot_required:"
msgid "Lost and Found"
msgstr "失物招领区"
msgctxt "selection:product.template,lot_required:"
msgid "Production"
msgstr "产品"
msgctxt "selection:product.template,lot_required:"
msgid "Storage"
msgstr "存储区"
msgctxt "selection:product.template,lot_required:"
msgid "Supplier"
msgstr "供应商"
msgctxt "selection:stock.inventory.count.search,search:"
msgid "Lot"
msgstr "批次"
msgctxt "view:product.template:"
msgid "Lots"
msgstr "批次"
msgctxt "view:stock.move.add.lots.start:"
msgid "Remaining:"
msgstr "剩余:"
msgctxt "view:stock.move.add.lots.start:"
msgid "times"
msgstr "次"
msgctxt "wizard_button:stock.move.add.lots,start,add:"
msgid "Add"
msgstr "增加"
msgctxt "wizard_button:stock.move.add.lots,start,end:"
msgid "Cancel"
msgstr "取消"

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. -->
<tryton>
<data grouped="1">
<record model="ir.message" id="msg_change_product">
<field name="text">You cannot change the product of a stock lot which has stock moves.</field>
</record>
<record model="ir.message" id="msg_lot_required">
<field name="text">To move product "%(product)s" you must provide a stock lot.</field>
</record>
<record model="ir.message" id="msg_only_lot">
<field name="text">You must select a stock lot instead of a product for "%(product)s".</field>
</record>
<record model="ir.message" id="msg_move_add_lot_quantity">
<field name="text">The total quantity "%(lot_quantity)s" of the lots must be less than or equal to the quantity "%(move_quantity)s" of the move.</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,83 @@
# 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.model import ModelSQL, ValueMixin, fields
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval, Id
class Configuration(metaclass=PoolMeta):
__name__ = 'product.configuration'
default_lot_sequence = fields.MultiValue(
fields.Many2One(
'ir.sequence', "Default Lot Sequence",
domain=[
('sequence_type', '=',
Id('stock_lot', 'sequence_type_stock_lot')),
('company', '=', None),
]))
class ConfigurationDefaultLotSequence(ModelSQL, ValueMixin):
__name__ = 'product.configuration.default_lot_sequence'
default_lot_sequence = fields.Many2One(
'ir.sequence', "Default Lot Sequence",
domain=[
('sequence_type', '=',
Id('stock_lot', 'sequence_type_stock_lot')),
('company', '=', None),
])
class Template(metaclass=PoolMeta):
__name__ = 'product.template'
lot_required = fields.MultiSelection([
('supplier', "Supplier"),
('customer', "Customer"),
('lost_found', "Lost and Found"),
('storage', "Storage"),
('production', "Production"),
], "Lot Required",
help='The type of location for which lot is required.',
states={
'invisible': ~Eval('type').in_(['goods', 'assets']),
})
lot_sequence = fields.Many2One(
'ir.sequence', "Lot Sequence",
domain=[
('sequence_type', '=', Id('stock_lot', 'sequence_type_stock_lot')),
('company', '=', None),
],
states={
'invisible': ~Eval('type').in_(['goods', 'assets']),
},
help="The sequence used to automatically number lots.")
@classmethod
def default_lot_sequence(cls, **pattern):
pool = Pool()
Configuration = pool.get('product.configuration')
sequence = Configuration(1).get_multivalue(
'default_lot_sequence', **pattern)
return sequence.id if sequence else None
class Product(metaclass=PoolMeta):
__name__ = 'product.product'
def lot_is_required(self, from_, to):
'Is product lot required for move with "from_" and "to" location ?'
return any(l.type in (self.lot_required or []) for l in [from_, to])
def create_lot(self):
pool = Pool()
Lot = pool.get('stock.lot')
if self.lot_sequence:
lot = Lot(product=self)
try:
lot.on_change_product()
except AttributeError:
pass
return lot

View File

@@ -0,0 +1,18 @@
<?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_configuration_view_form">
<field name="model">product.configuration</field>
<field name="inherit" ref="product.product_configuration_view_form"/>
<field name="name">product_configuration_form</field>
</record>
<record model="ir.ui.view" id="template_view_form">
<field name="model">product.template</field>
<field name="inherit" ref="product.template_view_form"/>
<field name="name">template_form</field>
</record>
</data>
</tryton>

928
modules/stock_lot/stock.py Normal file
View File

@@ -0,0 +1,928 @@
# 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 collections import defaultdict
from copy import copy
from sql import Cast, Column, Null
from sql.conditionals import Case
from sql.functions import CharLength
from sql.operators import Concat
from trytond.i18n import gettext
from trytond.model import (
DeactivableMixin, Index, Model, ModelSQL, ModelView, fields)
from trytond.model.exceptions import (
AccessError, RequiredValidationError, ValidationError)
from trytond.modules.stock import StockMixin
from trytond.modules.stock.exceptions import ShipmentCheckQuantityWarning
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Bool, Eval, If, Len
from trytond.tools import grouped_slice
from trytond.transaction import Transaction
from trytond.wizard import Button, StateTransition, StateView, Wizard
class LotMixin:
__slots__ = ()
number = fields.Char(
"Number", required=True,
states={
'required': ~Eval('has_sequence') | (Eval('id', -1) >= 0),
})
product = fields.Many2One('product.product', 'Product', required=True)
has_sequence = fields.Function(
fields.Boolean("Has Sequence"), 'on_change_with_has_sequence')
@classmethod
def __setup__(cls):
cls.number.search_unaccented = False
super().__setup__()
@fields.depends('product')
def on_change_with_has_sequence(self, name=None):
if self.product:
return bool(self.product.lot_sequence)
class Lot(DeactivableMixin, ModelSQL, ModelView, LotMixin, StockMixin):
__name__ = 'stock.lot'
_rec_name = 'number'
quantity = fields.Function(
fields.Float("Quantity", digits='default_uom'),
'get_quantity', searcher='search_quantity')
forecast_quantity = fields.Function(
fields.Float("Forecast Quantity", digits='default_uom'),
'get_quantity', searcher='search_quantity')
default_uom = fields.Function(
fields.Many2One(
'product.uom', "Default UoM",
help="The default Unit of Measure."),
'on_change_with_default_uom', searcher='search_default_uom')
@classmethod
def __setup__(cls):
super().__setup__()
cls._modify_no_move = [
('product', None, 'stock_lot.msg_change_product'),
]
cls._buttons.update({
'upward_traces': {},
'downward_traces': {},
})
@classmethod
def order_number(cls, tables):
table, _ = tables[None]
return [CharLength(table.number), table.number]
@classmethod
def get_quantity(cls, lots, name):
location_ids = Transaction().context.get('locations')
product_ids = list(set(l.product.id for l in lots))
quantities = {}
for product_ids in grouped_slice(product_ids):
quantities.update(cls._get_quantity(lots, name, location_ids,
grouping=('product', 'lot',),
grouping_filter=(list(product_ids),)))
return quantities
@classmethod
def search_quantity(cls, name, domain=None):
location_ids = Transaction().context.get('locations')
return cls._search_quantity(name, location_ids, domain,
grouping=('product', 'lot'))
@fields.depends('product')
def on_change_with_default_uom(self, name=None):
return self.product.default_uom if self.product else None
@classmethod
def search_default_uom(cls, name, clause):
nested = clause[0][len(name):]
return [('product.' + name + nested, *clause[1:])]
@classmethod
def copy(cls, lots, default=None):
default = default.copy() if default else {}
has_sequence = {l.id: l.has_sequence for l in lots}
default.setdefault(
'number', lambda o: None if has_sequence[o['id']] else o['number'])
return super().copy(lots, default=default)
@classmethod
def preprocess_values(cls, mode, values):
pool = Pool()
Product = pool.get('product.product')
values = super().preprocess_values(mode, values)
if mode == 'create' and not values.get('number'):
product_id = values.get('product')
if product_id is not None:
product = Product(product_id)
if product.lot_sequence:
values['number'] = product.lot_sequence.get()
return values
@classmethod
def check_modification(cls, mode, lots, values=None, external=False):
pool = Pool()
Move = pool.get('stock.move')
transaction = Transaction()
def find_moves(cls, state=None):
for sub_records in grouped_slice(lots):
domain = [
('lot', 'in', [r.id for r in sub_records])
]
if state:
domain.append(('state', '=', state))
moves = Move.search(domain, limit=1, order=[])
if moves:
return True
return False
super().check_modification(
mode, lots, values=values, external=external)
if mode == 'write':
if transaction.user and transaction.check_access:
for field, state, error in cls._modify_no_move:
if field in values:
if find_moves(state):
raise AccessError(gettext(error))
# No moves
break
@classmethod
@ModelView.button_action('stock_lot.act_lot_trace_upward_relate')
def upward_traces(cls, lots):
pass
@classmethod
@ModelView.button_action('stock_lot.act_lot_trace_downward_relate')
def downward_traces(cls, lots):
pass
class LotTrace(ModelSQL, ModelView):
__name__ = 'stock.lot.trace'
product = fields.Many2One(
'product.product', "Product",
context={
'company': Eval('company', -1),
},
depends=['company'])
lot = fields.Many2One('stock.lot', "Lot")
from_location = fields.Many2One('stock.location', "From Location")
to_location = fields.Many2One('stock.location', "To Location")
quantity = fields.Float("Quantity", digits='unit')
unit = fields.Many2One('product.uom', "Unit")
company = fields.Many2One('company.company', "Company")
date = fields.Date("Date")
document = fields.Reference("Document", 'get_documents')
upward_traces = fields.Function(
fields.Many2Many(
'stock.lot.trace', None, None, "Upward Traces"),
'get_upward_traces')
downward_traces = fields.Function(
fields.Many2Many(
'stock.lot.trace', None, None, "Downward Traces"),
'get_downward_traces')
@classmethod
def __setup__(cls):
super().__setup__()
cls._order.insert(0, ('date', None))
@classmethod
def table_query(cls):
from_item, tables = cls._joins()
query = from_item.select(
*cls._columns(tables),
where=cls._where(tables))
return query
@classmethod
def _joins(cls):
pool = Pool()
Move = pool.get('stock.move')
InventoryLine = pool.get('stock.inventory.line')
move = Move.__table__()
inventory_line = InventoryLine.__table__()
tables = {}
tables['move'] = move
tables['inventory_line'] = inventory_line
inventory_line_id = Move.origin.sql_id(move.origin, Move)
from_item = (move.join(inventory_line, type_='LEFT',
condition=(move.origin.like(InventoryLine.__name__ + '%')
& (inventory_line.id == inventory_line_id))))
return from_item, tables
@classmethod
def _where(cls, tables):
move = tables['move']
return (move.lot != Null) & (move.state == 'done')
@classmethod
def _columns(cls, tables):
move = tables['move']
return [
move.id.as_('id'),
move.product.as_('product'),
move.lot.as_('lot'),
move.from_location.as_('from_location'),
move.to_location.as_('to_location'),
move.quantity.as_('quantity'),
move.unit.as_('unit'),
move.company.as_('company'),
move.effective_date.as_('date'),
cls.get_document(tables).as_('document'),
]
def get_rec_name(self, name):
return self.document.rec_name if self.document else str(self.id)
@classmethod
def get_documents(cls):
pool = Pool()
Model = pool.get('ir.model')
Move = pool.get('stock.move')
return Move.get_shipment() + [
('stock.inventory', Model.get_name('stock.inventory'))]
@classmethod
def get_document(cls, tables):
move = tables['move']
inventory_line = tables['inventory_line']
sql_type = cls.document.sql_type().base
return Case(
((inventory_line.id != Null),
Concat('stock.inventory,',
Cast(inventory_line.inventory, sql_type))),
else_=move.shipment)
@classmethod
def _is_trace_move(cls, move):
return move.state == 'done' and move.lot
@classmethod
def _trace_move_order_key(cls, move):
return (move.effective_date, move.id)
def get_upward_traces(self, name):
return list(map(int, sorted(filter(
self._is_trace_move, self._get_upward_traces()),
key=self._trace_move_order_key)))
def _get_upward_traces(self):
pool = Pool()
Move = pool.get('stock.move')
return set(Move.search([
('lot', '=', self.lot.id),
('from_location', '=', self.to_location),
('effective_date', '>=', self.date),
]))
def get_downward_traces(self, name):
return list(map(int, sorted(filter(
self._is_trace_move, self._get_downward_traces()),
key=self._trace_move_order_key, reverse=True)))
def _get_downward_traces(self):
pool = Pool()
Move = pool.get('stock.move')
return set(Move.search([
('lot', '=', self.lot.id),
('to_location', '=', self.from_location),
('effective_date', '<=', self.date),
]))
class LotByLocationContext(ModelView):
__name__ = 'stock.lots_by_location.context'
forecast_date = fields.Date(
'At Date', help=('Allow to compute expected '
'stock quantities for this date.\n'
'* An empty value is an infinite date in the future.\n'
'* A date in the past will provide historical values.'))
stock_date_end = fields.Function(fields.Date('At Date'),
'on_change_with_stock_date_end')
@staticmethod
def default_forecast_date():
Date = Pool().get('ir.date')
return Date.today()
@fields.depends('forecast_date')
def on_change_with_stock_date_end(self, name=None):
if self.forecast_date is None:
return datetime.date.max
return self.forecast_date
class LotsByLocations(ModelSQL, ModelView):
__name__ = 'stock.lots_by_locations'
lot = fields.Many2One('stock.lot', "Lot")
product = fields.Many2One('product.product', "Product")
quantity = fields.Function(
fields.Float("Quantity", digits='default_uom'),
'get_lot', searcher='search_lot')
forecast_quantity = fields.Function(
fields.Float("Forecast Quantity", digits='default_uom'),
'get_lot', searcher='search_lot')
default_uom = fields.Function(
fields.Many2One(
'product.uom', "Default UoM",
help="The default Unit of Measure."),
'get_lot', searcher='search_lot')
@classmethod
def __setup__(cls):
super().__setup__()
cls._order.insert(0, ('lot', 'ASC'))
cls._order.insert(1, ('product', 'ASC'))
@classmethod
def table_query(cls):
pool = Pool()
Lot = pool.get('stock.lot')
lot = Lot.__table__()
columns = []
for fname, field in cls._fields.items():
if not hasattr(field, 'set'):
if (isinstance(field, fields.Many2One)
and field.get_target() == Lot):
column = Column(lot, 'id')
else:
column = Column(lot, fname)
columns.append(column.as_(fname))
return lot.select(*columns)
def get_rec_name(self, name):
return self.lot.rec_name
@classmethod
def search_rec_name(cls, name, clause):
return [('lot.rec_name',) + tuple(clause[1:])]
def get_lot(self, name):
value = getattr(self.lot, name)
if isinstance(value, Model):
value = value.id
return value
@classmethod
def search_lot(cls, name, clause):
nested = clause[0][len(name):]
return [('lot.' + name + nested, *clause[1:])]
class Location(metaclass=PoolMeta):
__name__ = 'stock.location'
@classmethod
def _get_quantity_grouping(cls):
pool = Pool()
Lot = pool.get('stock.lot')
context = Transaction().context
grouping, grouping_filter, key = super()._get_quantity_grouping()
if context.get('lot') is not None:
try:
lot, = Lot.search([('id', '=', context['lot'])])
except ValueError:
pass
else:
grouping = ('product', 'lot',)
grouping_filter = ([lot.product.id], [lot.id])
key = (lot.product.id, lot.id)
return grouping, grouping_filter, key
class Move(metaclass=PoolMeta):
__name__ = 'stock.move'
lot = fields.Many2One(
'stock.lot', "Lot", ondelete='RESTRICT',
domain=[
('product', '=', Eval('product', -1)),
],
states={
'readonly': Eval('state').in_(['cancelled', 'done']),
},
search_context={
'locations': If(Eval('from_location'),
[Eval('from_location', -1)], []),
'stock_date_end': (
If(Eval('effective_date'),
Eval('effective_date', None),
Eval('planned_date', None))),
})
@classmethod
def __setup__(cls):
super().__setup__()
cls._deny_modify_done_cancel.add('lot')
cls._buttons.update({
'add_lots_wizard': {
'invisible': ~Eval('state').in_(['draft', 'assigned']),
'readonly': Bool(Eval('lot')),
'depends': ['lot', 'state'],
},
})
@classmethod
@ModelView.button_action('stock_lot.wizard_move_add_lots')
def add_lots_wizard(cls, moves):
pass
def add_lot(self):
if not self.lot and self.product:
lot = self.product.create_lot()
if lot:
self.lot = lot
def check_lot(self):
"Check if lot is required"
if (self.internal_quantity
and not self.lot
and self.product.lot_is_required(
self.from_location, self.to_location)):
raise RequiredValidationError(
gettext('stock_lot.msg_lot_required',
product=self.product.rec_name))
@classmethod
@ModelView.button
def do(cls, moves):
super().do(moves)
for move in moves:
move.check_lot()
@classmethod
def assign_try(
cls, moves, with_childs=True, grouping=('product',), pblc=None):
if 'lot' not in grouping:
moves_with_lot, moves_without_lot = [], []
for move in moves:
if move.lot:
moves_with_lot.append(move)
else:
moves_without_lot.append(move)
success = super().assign_try(
moves_with_lot, with_childs=with_childs,
grouping=grouping + ('lot',), pblc=pblc)
success &= super().assign_try(
moves_without_lot, with_childs=with_childs,
grouping=grouping, pblc=pblc)
else:
success = super().assign_try(
moves, with_childs=with_childs, grouping=grouping, pblc=pblc)
return success
@fields.depends('product', 'lot')
def on_change_product(self):
try:
super().on_change_product()
except AttributeError:
pass
if self.lot and self.lot.product != self.product:
self.lot = None
class MoveAddLots(Wizard):
__name__ = 'stock.move.add.lots'
start = StateView('stock.move.add.lots.start',
'stock_lot.move_add_lots_start_view_form', [
Button("Cancel", 'end', 'tryton-cancel'),
Button("Add", 'add', 'tryton-ok', default=True),
])
add = StateTransition()
def default_start(self, fields):
default = {}
if 'product' in fields:
default['product'] = self.record.product.id
if 'quantity' in fields:
default['quantity'] = self.record.quantity
if 'unit' in fields:
default['unit'] = self.record.unit.id
return default
def transition_add(self):
pool = Pool()
Lang = pool.get('ir.lang')
Lot = pool.get('stock.lot')
lang = Lang.get()
quantity_remaining = self.start.on_change_with_quantity_remaining()
if quantity_remaining < 0:
digits = self.record.unit.digits
move_quantity = self.record.quantity
lot_quantity = self.record.quantity - quantity_remaining
raise ValidationError(gettext(
'stock_lot.msg_move_add_lot_quantity',
lot_quantity=lang.format_number(lot_quantity, digits),
move_quantity=lang.format_number(move_quantity, digits)))
lots = []
for line in self.start.lots:
lot = line.get_lot(self.record)
lots.append(lot)
Lot.save(lots)
if hasattr(self.model, 'split'):
move = self.record
for line, lot in zip(self.start.lots, lots):
splits = move.split(line.quantity, self.record.unit, count=1)
splits.remove(move)
move.lot = lot
move.save()
if splits:
move, = splits
else:
break
else:
if quantity_remaining:
self.record.quantity = quantity_remaining
self.record.save()
for i, (line, lot) in enumerate(zip(self.start.lots, lots)):
if not i and not quantity_remaining:
self.record.quantity = line.quantity
self.record.lot = lot
self.record.save()
else:
with Transaction().set_context(_stock_move_split=True):
self.model.copy([self.record], {
'quantity': line.quantity,
'lot': lot.id,
})
return 'end'
class MoveAddLotsStart(ModelView):
__name__ = 'stock.move.add.lots.start'
product = fields.Many2One('product.product', "Product", readonly=True)
quantity = fields.Float("Quantity", digits='unit', readonly=True)
unit = fields.Many2One('product.uom', "Unit", readonly=True)
quantity_remaining = fields.Function(
fields.Float("Quantity Remaining", digits='unit'),
'on_change_with_quantity_remaining')
lots = fields.One2Many(
'stock.move.add.lots.start.lot', 'parent', "Lots",
domain=[
('product', '=', Eval('product', -1)),
],
states={
'readonly': ~Eval('quantity_remaining', 0),
})
duplicate_lot_number = fields.Integer(
"Duplicate Lot Number",
states={
'invisible': Len(Eval('lots')) != 1,
},
help="The number of times the lot must be duplicated.")
@classmethod
def __setup__(cls):
super().__setup__()
cls._buttons.update(
duplicate_lot={
'invisible': Len(Eval('lots')) != 1,
'readonly': (~Eval('duplicate_lot_number')
| (Eval('duplicate_lot_number', 0) <= 0)),
'depends': ['lots', 'duplicate_lot_number'],
},
)
@fields.depends('quantity', 'lots', 'unit')
def on_change_with_quantity_remaining(self, name=None):
if self.quantity is not None:
quantity = self.quantity
if self.lots:
for lot in self.lots:
quantity -= getattr(lot, 'quantity', 0) or 0
if self.unit:
quantity = self.unit.round(quantity)
return quantity
@ModelView.button_change(
'lots', 'duplicate_lot_number',
methods=['on_change_with_quantity_remaining'])
def duplicate_lot(self):
lots = list(self.lots)
if self.lots:
template, = self.lots
for i in range(self.duplicate_lot_number):
lot = copy(template)
lot._id = None
lots.append(lot)
self.lots = lots
self.quantity_remaining = self.on_change_with_quantity_remaining()
class MoveAddLotsStartLot(ModelView, LotMixin):
__name__ = 'stock.move.add.lots.start.lot'
parent = fields.Many2One('stock.move.add.lots.start', "Parent")
quantity = fields.Float("Quantity", digits='quantity_unit', required=True)
quantity_unit = fields.Function(
fields.Many2One('product.uom', "Unit"), 'on_change_with_quantity_unit')
@fields.depends(
'parent', '_parent_parent.quantity_remaining')
def on_change_parent(self):
if (self.parent
and self.parent.quantity_remaining is not None):
self.quantity = self.parent.quantity_remaining
@fields.depends('parent', '_parent_parent.unit')
def on_change_with_quantity_unit(self, name=None):
if self.parent and self.parent.unit:
return self.parent.unit.id
@fields.depends('number', 'product', methods=['_set_lot_values'])
def on_change_number(self):
pool = Pool()
Lot = pool.get('stock.lot')
if self.number and self.product:
lots = Lot.search([
('number', '=', self.number),
('product', '=', self.product.id),
])
if len(lots) == 1:
lot, = lots
self._set_lot_values(lot)
def _set_lot_values(self, lot):
pass
def get_lot(self, move):
pool = Pool()
Lot = pool.get('stock.lot')
values = self._get_lot_values(move)
lots = Lot.search(
[(k, '=', v) for k, v in values.items()],
limit=1)
if lots:
lot, = lots
else:
lot = Lot()
for k, v in values.items():
setattr(lot, k, v)
return lot
def _get_lot_values(self, move):
return {
'number': self.number,
'product': move.product,
}
class ShipmentCheckQuantity:
"Check quantities per lot between source and target moves"
__slots__ = ()
def check_quantity(self):
pool = Pool()
Warning = pool.get('res.user.warning')
Lang = pool.get('ir.lang')
lang = Lang.get()
super().check_quantity()
products_with_lot = set()
source_qties = defaultdict(float)
for move in self._check_quantity_source_moves:
if move.lot:
products_with_lot.add(move.product)
source_qties[move.lot] += move.internal_quantity
target_qties = defaultdict(float)
for move in self._check_quantity_target_moves:
if move.lot:
target_qties[move.lot] += move.internal_quantity
diffs = {}
for lot, incoming_qty in target_qties.items():
if (lot not in source_qties
and lot.product not in products_with_lot):
continue
unit = lot.product.default_uom
incoming_qty = unit.round(incoming_qty)
inventory_qty = unit.round(source_qties.pop(lot, 0))
diff = inventory_qty - incoming_qty
if diff:
diffs[lot] = diff
if diffs:
warning_name = Warning.format(
'check_quantity_lot', [self])
if Warning.check(warning_name):
quantities = []
for lot, quantity in diffs.items():
quantity = lang.format_number_symbol(
quantity, lot.product.default_uom)
quantities.append(f"{lot.rec_name}: {quantity}")
raise ShipmentCheckQuantityWarning(warning_name,
gettext(
'stock.msg_shipment_check_quantity',
shipment=self.rec_name,
quantities=', '.join(quantities)))
class ShipmentIn(ShipmentCheckQuantity, metaclass=PoolMeta):
__name__ = 'stock.shipment.in'
def _get_inventory_move(self, incoming_move):
move = super()._get_inventory_move(incoming_move)
if move and incoming_move.lot:
move.lot = incoming_move.lot
return move
class ShipmentOut(ShipmentCheckQuantity, metaclass=PoolMeta):
__name__ = 'stock.shipment.out'
def _get_inventory_move(self, outgoing_move):
move = super()._get_inventory_move(outgoing_move)
if move and outgoing_move.lot:
move.lot = outgoing_move.lot
return move
def _sync_move_key(self, move):
return super()._sync_move_key(move) + (('lot', move.lot),)
class ShipmentOutReturn(ShipmentCheckQuantity, metaclass=PoolMeta):
__name__ = 'stock.shipment.out.return'
def _get_inventory_move(self, incoming_move):
move = super()._get_inventory_move(incoming_move)
if move and incoming_move.lot:
move.lot = incoming_move.lot
return move
class ShipmentInternal(ShipmentCheckQuantity, metaclass=PoolMeta):
__name__ = 'stock.shipment.internal'
def _sync_move_key(self, move):
return super()._sync_move_key(move) + (('lot', move.lot),)
class ShipmentDrop(ShipmentCheckQuantity, metaclass=PoolMeta):
__name__ = 'stock.shipment.drop'
def _sync_move_key(self, move):
return super()._sync_move_key(move) + (('lot', move.lot),)
class Period(metaclass=PoolMeta):
__name__ = 'stock.period'
lot_caches = fields.One2Many('stock.period.cache.lot', 'period',
'Lot Caches', readonly=True)
@classmethod
def groupings(cls):
return super().groupings() + [('product', 'lot')]
@classmethod
def get_cache(cls, grouping):
pool = Pool()
Cache = super().get_cache(grouping)
if grouping == ('product', 'lot'):
return pool.get('stock.period.cache.lot')
return Cache
class PeriodCacheLot(ModelSQL, ModelView):
"It is used to store cached computation of stock quantities per lot"
__name__ = 'stock.period.cache.lot'
period = fields.Many2One(
'stock.period', "Period",
required=True, readonly=True, ondelete='CASCADE')
location = fields.Many2One(
'stock.location', "Location",
required=True, readonly=True, ondelete='CASCADE')
product = fields.Many2One('product.product', 'Product', required=True,
readonly=True, ondelete='CASCADE')
lot = fields.Many2One('stock.lot', 'Lot', readonly=True,
ondelete='CASCADE')
internal_quantity = fields.Float('Internal Quantity', readonly=True)
@classmethod
def __setup__(cls):
super().__setup__()
t = cls.__table__()
cls._sql_indexes.update({
Index(
t,
(t.period, Index.Range()),
(t.product, Index.Range()),
(t.lot, Index.Range()),
include=[t.internal_quantity]),
Index(
t,
(t.location, Index.Range())),
})
class Inventory(metaclass=PoolMeta):
__name__ = 'stock.inventory'
@classmethod
def grouping(cls):
return super().grouping() + ('lot', )
class InventoryLine(metaclass=PoolMeta):
__name__ = 'stock.inventory.line'
lot = fields.Many2One('stock.lot', 'Lot',
domain=[
('product', '=', Eval('product', -1)),
],
states={
'readonly': Eval('inventory_state') != 'draft',
})
@classmethod
def __setup__(cls):
super().__setup__()
cls._order.insert(1, ('lot', 'ASC'))
def get_rec_name(self, name):
rec_name = super().get_rec_name(name)
if self.lot:
rec_name += ' - %s' % self.lot.rec_name
return rec_name
def get_move(self):
move = super().get_move()
if move:
move.lot = self.lot
return move
class InventoryCount(metaclass=PoolMeta):
__name__ = 'stock.inventory.count'
def default_quantity(self, fields):
pool = Pool()
Product = pool.get('product.product')
InventoryLine = pool.get('stock.inventory.line')
inventory = self.record
if isinstance(self.search.search, Product):
product = self.search.search
if product.lot_is_required(
inventory.location, inventory.location.lost_found_used):
raise RequiredValidationError(
gettext('stock_lot.msg_only_lot',
product=product.rec_name))
values = super().default_quantity(fields)
line = InventoryLine(values['line'])
values['lot'] = line.lot.id if line.lot else None
return values
def get_line_domain(self, inventory):
pool = Pool()
Lot = pool.get('stock.lot')
domain = super().get_line_domain(inventory)
if isinstance(self.search.search, Lot):
domain.append(('lot', '=', self.search.search.id))
return domain
def get_line(self):
pool = Pool()
Lot = pool.get('stock.lot')
line = super().get_line()
if isinstance(self.search.search, Lot):
lot = self.search.search
line.product = lot.product
line.lot = lot
return line
class InventoryCountSearch(metaclass=PoolMeta):
__name__ = 'stock.inventory.count.search'
@classmethod
def __setup__(cls):
super().__setup__()
cls.search.selection.append(('stock.lot', "Lot"))
class InventoryCountQuantity(ModelView):
__name__ = 'stock.inventory.count.quantity'
lot = fields.Many2One('stock.lot', "Lot", readonly=True,
states={
'invisible': ~Eval('lot', None),
})

395
modules/stock_lot/stock.xml Normal file
View File

@@ -0,0 +1,395 @@
<?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="lot_view_form">
<field name="model">stock.lot</field>
<field name="type">form</field>
<field name="name">lot_form</field>
</record>
<record model="ir.ui.view" id="lot_view_tree">
<field name="model">stock.lot</field>
<field name="type">tree</field>
<field name="name">lot_tree</field>
</record>
<record model="ir.ui.view" id="lot_view_list_stock_move">
<field name="model">stock.lot</field>
<field name="type">tree</field>
<field name="priority" eval="20"/>
<field name="name">lot_list_stock_move</field>
</record>
<record model="ir.action.act_window" id="act_lot_form">
<field name="name">Lots</field>
<field name="res_model">stock.lot</field>
</record>
<record model="ir.action.act_window.view" id="act_lot_form_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="lot_view_tree"/>
<field name="act_window" ref="act_lot_form"/>
</record>
<record model="ir.action.act_window.view" id="act_lot_form_view2">
<field name="sequence" eval="20"/>
<field name="view" ref="lot_view_form"/>
<field name="act_window" ref="act_lot_form"/>
</record>
<menuitem
parent="stock.menu_stock"
action="act_lot_form"
sequence="50"
id="menu_lot_form"/>
<record model="ir.action.act_window" id="act_lot_form_product_relate">
<field name="name">Lots</field>
<field name="res_model">stock.lot</field>
<field
name="domain"
eval="[If(Eval('active_ids', []) == [Eval('active_id')], (If(Eval('active_model') == 'product.template', 'product.template', 'product'), '=', Eval('active_id', -1)), (If(Eval('active_model') == 'product.template', 'product.template', 'product'), 'in', Eval('active_ids', [])))]"
pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_lot_form_product_relate_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="lot_view_tree"/>
<field name="act_window" ref="act_lot_form_product_relate"/>
</record>
<record model="ir.action.act_window.view" id="act_lot_form_product_relate_view2">
<field name="sequence" eval="20"/>
<field name="view" ref="lot_view_form"/>
<field name="act_window" ref="act_lot_form_product_relate"/>
</record>
<record model="ir.action.keyword" id="act_lot_form_product_relate_keyword1">
<field name="keyword">form_relate</field>
<field name="model">product.product,-1</field>
<field name="action" ref="act_lot_form_product_relate"/>
</record>
<record model="ir.action.keyword" id="act_lot_form_product_relate_keyword2">
<field name="keyword">form_relate</field>
<field name="model">product.template,-1</field>
<field name="action" ref="act_lot_form_product_relate"/>
</record>
<record model="ir.model.access" id="access_lot">
<field name="model">stock.lot</field>
<field name="perm_read" eval="False"/>
<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_lot_group_stock">
<field name="model">stock.lot</field>
<field name="group" ref="stock.group_stock"/>
<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="lot_upward_traces_button">
<field name="model">stock.lot</field>
<field name="name">upward_traces</field>
<field name="string">Upward Traces</field>
</record>
<record model="ir.model.button" id="lot_downward_traces_button">
<field name="model">stock.lot</field>
<field name="name">downward_traces</field>
<field name="string">Downward Traces</field>
</record>
<record model="ir.ui.view" id="lot_trace_view_tree_upward">
<field name="model">stock.lot.trace</field>
<field name="type">tree</field>
<field name="field_childs">upward_traces</field>
<field name="name">lot_trace_tree</field>
</record>
<record model="ir.ui.view" id="lot_trace_view_tree_downward">
<field name="model">stock.lot.trace</field>
<field name="type">tree</field>
<field name="field_childs">downward_traces</field>
<field name="name">lot_trace_tree</field>
</record>
<record model="ir.action.act_window" id="act_lot_trace_upward_relate">
<field name="name">Upward Traces</field>
<field name="res_model">stock.lot.trace</field>
<field
name="domain"
eval="[('lot', 'in', Eval('active_ids', []))]"
pyson="1"/>
<field
name="order"
eval="[('date', 'ASC'), ('id', 'ASC')]"
pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_lot_trace_upward_relate_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="lot_trace_view_tree_upward"/>
<field name="act_window" ref="act_lot_trace_upward_relate"/>
</record>
<record model="ir.action.keyword" id="act_lot_trace_upward_relate_keyword1">
<field name="keyword">form_relate</field>
<field name="model">stock.lot,-1</field>
<field name="action" ref="act_lot_trace_upward_relate"/>
</record>
<record model="ir.action.act_window" id="act_lot_trace_downward_relate">
<field name="name">Downward Traces</field>
<field name="res_model">stock.lot.trace</field>
<field
name="domain"
eval="[('lot', 'in', Eval('active_ids', []))]"
pyson="1"/>
<field
name="order"
eval="[('date', 'DESC'), ('id', 'DESC')]"
pyson="1"/>
</record>
<record model="ir.action.act_window.view" id="act_lot_trace_downward_relate_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="lot_trace_view_tree_downward"/>
<field name="act_window" ref="act_lot_trace_downward_relate"/>
</record>
<record model="ir.action.keyword" id="act_lot_trace_downward_relate_keyword1">
<field name="keyword">form_relate</field>
<field name="model">stock.lot,-1</field>
<field name="action" ref="act_lot_trace_downward_relate"/>
</record>
<record model="ir.rule.group" id="rule_group_lot_trace_companies">
<field name="name">User in companies</field>
<field name="model">stock.lot.trace</field>
<field name="global_p" eval="True"/>
</record>
<record model="ir.rule" id="rule_lot_trace_companies">
<field
name="domain"
eval="[('company', 'in', Eval('companies', []))]"
pyson="1"/>
<field name="rule_group" ref="rule_group_lot_trace_companies"/>
</record>
<record model="ir.model.access" id="access_lot_trace">
<field name="model">stock.lot.trace</field>
<field name="perm_read" eval="False"/>
<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_lot_trace_group_stock">
<field name="model">stock.lot.trace</field>
<field name="group" ref="stock.group_stock"/>
<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.ui.view" id="lots_by_location_context_view_form">
<field name="model">stock.lots_by_location.context</field>
<field name="type">form</field>
<field name="name">lot_by_location_context_form</field>
</record>
<record model="ir.ui.view" id="lots_by_locations_view_list">
<field name="model">stock.lots_by_locations</field>
<field name="type">tree</field>
<field name="name">lots_by_locations_list</field>
</record>
<record model="ir.model.access" id="access_lots_by_locations">
<field name="model">stock.lots_by_locations</field>
<field name="perm_read" eval="False"/>
<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_lots_by_locations_group_stock">
<field name="model">stock.lots_by_locations</field>
<field name="group" ref="stock.group_stock"/>
<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.action.act_window" id="act_lots_by_locations_relate">
<field name="name">Lots</field>
<field name="res_model">stock.lots_by_locations</field>
<field name="context" eval="{'locations': Eval('active_ids')}" pyson="1"/>
<field name="domain"
eval="['OR', ('quantity', '!=', 0.0), ('forecast_quantity', '!=', 0.0)]"
pyson="1"/>
<field name="context_model">stock.lots_by_location.context</field>
</record>
<record model="ir.action.act_window.view" id="act_lots_by_locations_relate_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="lots_by_locations_view_list"/>
<field name="act_window" ref="act_lots_by_locations_relate"/>
</record>
<record model="ir.action.keyword" id="act_lots_by_locations_relate_keyword1">
<field name="keyword">tree_open</field>
<field name="model">stock.location,-1</field>
<field name="action" ref="act_lots_by_locations_relate"/>
</record>
<record model="ir.action.keyword" id="act_lots_by_locations_relate_keyword2">
<field name="keyword">form_relate</field>
<field name="model">stock.location,-1</field>
<field name="action" ref="act_lots_by_locations_relate"/>
</record>
<record model="ir.action.act_window" id="act_location_quantity_tree">
<field name="name">Stock Locations Tree</field>
<field name="res_model">stock.location</field>
<field name="domain" eval="[('parent', '=', None)]" pyson="1"/>
<field
name="context"
eval="{'lot': Eval('active_id'), 'stock_skip_warehouse': False}"
pyson="1"/>
<field name="context_model">stock.lots_by_location.context</field>
</record>
<record model="ir.action.act_window.view" id="act_location_quantity_tree_view1">
<field name="sequence" eval="10"/>
<field name="view" ref="stock.location_quantity_view_tree"/>
<field name="act_window" ref="act_location_quantity_tree"/>
</record>
<record model="ir.action.keyword" id="act_location_quantity_tree_keyword1">
<field name="keyword">form_relate</field>
<field name="model">stock.lot,-1</field>
<field name="action" ref="act_location_quantity_tree"/>
</record>
<record model="ir.action.act_window" id="act_location_quantity_list">
<field name="name">Stock Locations List</field>
<field name="res_model">stock.location</field>
<field name="search_value" eval="['OR', ('quantity', '!=', 0), ('forecast_quantity', '!=', 0)]" pyson="1"/>
<field
name="context"
eval="{'lot': Eval('active_id'), 'with_childs': False, 'stock_skip_warehouse': False}"
pyson="1"/>
<field name="context_model">stock.lots_by_location.context</field>
</record>
<record model="ir.action.act_window.view" id="act_location_quantity_list_view">
<field name="sequence" eval="10"/>
<field name="view" ref="stock.location_quantity_view_list"/>
<field name="act_window" ref="act_location_quantity_list"/>
</record>
<record model="ir.action.keyword" id="act_location_quantity_list_keyword1">
<field name="keyword">form_relate</field>
<field name="model">stock.lot,-1</field>
<field name="action" ref="act_location_quantity_list"/>
</record>
<record model="ir.ui.view" id="move_view_form">
<field name="model">stock.move</field>
<field name="inherit" ref="stock.move_view_form"/>
<field name="name">move_form</field>
</record>
<record model="ir.ui.view" id="move_view_tree">
<field name="model">stock.move</field>
<field name="inherit" ref="stock.move_view_tree"/>
<field name="name">move_tree</field>
</record>
<record model="ir.ui.view" id="move_view_list_shipment_in">
<field name="model">stock.move</field>
<field name="inherit" ref="stock.move_view_list_shipment_in"/>
<field name="name">move_tree</field>
</record>
<record model="ir.ui.view" id="move_view_list_shipment">
<field name="model">stock.move</field>
<field name="inherit" ref="stock.move_view_list_shipment"/>
<field name="name">move_tree</field>
</record>
<record model="ir.model.button" id="move_add_lots_wizard_button">
<field name="model">stock.move</field>
<field name="name">add_lots_wizard</field>
<field name="string">Add Lots</field>
</record>
<record model="ir.action.wizard" id="wizard_move_add_lots">
<field name="name">Add Lots</field>
<field name="wiz_name">stock.move.add.lots</field>
<field name="model">stock.move</field>
</record>
<record model="ir.ui.view" id="move_add_lots_start_view_form">
<field name="model">stock.move.add.lots.start</field>
<field name="type">form</field>
<field name="name">stock_move_add_lots_start_form</field>
</record>
<record model="ir.ui.view" id="move_add_lots_start_lot_view_list">
<field name="model">stock.move.add.lots.start.lot</field>
<field name="type">tree</field>
<field name="name">stock_move_add_lots_start_lot_list</field>
</record>
<record model="ir.model.button" id="move_add_lots_start_duplicate_lot_button">
<field name="model">stock.move.add.lots.start</field>
<field name="name">duplicate_lot</field>
<field name="string">Duplicate Lot</field>
</record>
<record model="ir.ui.view" id="period_cache_lot_view_form">
<field name="model">stock.period.cache.lot</field>
<field name="type">form</field>
<field name="name">period_cache_lot_form</field>
</record>
<record model="ir.ui.view" id="period_cache_lot_view_list">
<field name="model">stock.period.cache.lot</field>
<field name="type">tree</field>
<field name="name">period_cache_lot_list</field>
</record>
<record model="ir.model.access" id="access_period_cache_lot">
<field name="model">stock.period.cache.lot</field>
<field name="perm_read" eval="False"/>
<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_period_cache_lot_stock">
<field name="model">stock.period.cache.lot</field>
<field name="group" ref="stock.group_stock"/>
<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_period_cache_lot_admin">
<field name="model">stock.period.cache.lot</field>
<field name="group" ref="stock.group_stock_admin"/>
<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.ui.view" id="inventory_line_view_form">
<field name="model">stock.inventory.line</field>
<field name="inherit" ref="stock.inventory_line_view_form"/>
<field name="name">inventory_line_form</field>
</record>
<record model="ir.ui.view" id="inventory_line_view_list">
<field name="model">stock.inventory.line</field>
<field name="inherit" ref="stock.inventory_line_view_list"/>
<field name="name">inventory_line_list</field>
</record>
<record model="ir.ui.view" id="inventory_count_quantity_view_form">
<field name="model">stock.inventory.count.quantity</field>
<field name="inherit" ref="stock.inventory_count_quantity_view_form"/>
<field name="name">inventory_count_quantity_form</field>
</record>
</data>
</tryton>

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,116 @@
=================================
Stock Lot Assign Request Scenario
=================================
Imports::
>>> import datetime as dt
>>> from decimal import Decimal
>>> from proteus import Model
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.tests.tools import activate_modules
>>> today = dt.date.today()
Activate modules::
>>> config = activate_modules('stock_lot', create_company)
>>> Inventory = Model.get('stock.inventory')
>>> Location = Model.get('stock.location')
>>> Lot = Model.get('stock.lot')
>>> Party = Model.get('party.party')
>>> ProductTemplate = Model.get('product.template')
>>> ProductUom = Model.get('product.uom')
>>> ShipmentOut = Model.get('stock.shipment.out')
Create customer::
>>> customer = Party(name='Customer')
>>> customer.save()
Create product::
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
>>> template = ProductTemplate()
>>> template.name = 'Product'
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.list_price = Decimal('20')
>>> template.save()
>>> product, = template.products
Create lot::
>>> lot = Lot()
>>> lot.number = 'LOT'
>>> lot.product = product
>>> lot.save()
Get stock locations::
>>> warehouse_loc, = Location.find([('code', '=', 'WH')])
>>> supplier_loc, = Location.find([('code', '=', 'SUP')])
>>> customer_loc, = Location.find([('code', '=', 'CUS')])
>>> output_loc, = Location.find([('code', '=', 'OUT')])
>>> storage_loc, = Location.find([('code', '=', 'STO')])
>>> zone1 = Location(name='Zone1')
>>> zone1.parent = storage_loc
>>> zone1.type = 'storage'
>>> zone1.save()
>>> zone2, = zone1.duplicate(default={'name': 'Zone2'})
Add product quantities on zones storage locations::
>>> inventory = Inventory()
>>> inventory.location = zone1
>>> inventory_line = inventory.lines.new(product=product)
>>> inventory_line.quantity = 100.0
>>> inventory_line.expected_quantity = 0.0
>>> inventory.click('confirm')
>>> inventory.state
'done'
>>> inventory = Inventory()
>>> inventory.location = zone2
>>> inventory_line = inventory.lines.new()
>>> inventory_line.product = product
>>> inventory_line.lot = lot
>>> inventory_line.quantity = 100.0
>>> inventory_line.expected_quantity = 0.0
>>> inventory.click('confirm')
>>> inventory.state
'done'
Create shipment out::
>>> shipment = ShipmentOut()
>>> shipment.planned_date = today
>>> shipment.customer = customer
>>> shipment.warehouse = warehouse_loc
>>> move = shipment.outgoing_moves.new()
>>> move.product = product
>>> move.unit = unit
>>> move.quantity = 10
>>> move.from_location = output_loc
>>> move.to_location = customer_loc
>>> move.company = shipment.company
>>> move.unit_price = Decimal('1')
>>> move.currency = shipment.company.currency
>>> shipment.click('wait')
Request specific lot in stock assignation::
>>> move, = shipment.inventory_moves
>>> move.lot = lot
>>> move.save()
Assign the shipment::
>>> shipment.click('assign_try')
>>> shipment.state
'assigned'
>>> move, = shipment.inventory_moves
>>> move.from_location.name
'Zone2'

View File

@@ -0,0 +1,74 @@
==================================
Stock Lot Inventory Count Scenario
==================================
Imports::
>>> from proteus import Model
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.tests.tools import activate_modules, assertEqual
Activate modules::
>>> config = activate_modules('stock_lot', create_company)
>>> config.skip_warning = True
>>> Inventory = Model.get('stock.inventory')
>>> Location = Model.get('stock.location')
>>> Lot = Model.get('stock.lot')
>>> ProductTemplate = Model.get('product.template')
>>> ProductUom = Model.get('product.uom')
Get stock location::
>>> storage_loc, = Location.find([('code', '=', 'STO')])
Create product and lot::
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
>>> template = ProductTemplate()
>>> template.name = 'Product'
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.lot_required = ['storage']
>>> template.save()
>>> product, = template.products
>>> lot = Lot(number="0001", product=product)
>>> lot.save()
Create an inventory::
>>> inventory = Inventory()
>>> inventory.location = storage_loc
>>> inventory.empty_quantity = 'keep'
>>> inventory.save()
Count inventory::
>>> count = inventory.click('do_count')
>>> count.form.search = product
>>> count.execute('quantity')
Traceback (most recent call last):
...
RequiredValidationError: ...
>>> count.form.search = lot
>>> count.execute('quantity')
>>> assertEqual(count.form.product, product)
>>> assertEqual(count.form.lot, lot)
>>> count.form.quantity
1.0
>>> count.form.total_quantity
1.0
>>> count.execute('add')
>>> count.execute('end')
Check inventory::
>>> line, = inventory.lines
>>> assertEqual(line.product, product)
>>> assertEqual(line.lot, lot)
>>> line.quantity
1.0

View File

@@ -0,0 +1,107 @@
===========================
Stock Lot Move Add Scenario
===========================
Imports::
>>> from decimal import Decimal
>>> from proteus import Model
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.modules.currency.tests.tools import get_currency
>>> from trytond.tests.tools import activate_modules, assertEqual
Activate modules::
>>> modules = ['stock_lot']
>>> if globals().get('stock_split', False):
... modules.append('stock_split')
>>> config = activate_modules(modules, create_company)
Create product::
>>> ProductUom = Model.get('product.uom')
>>> ProductTemplate = Model.get('product.template')
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
>>> template = ProductTemplate()
>>> template.name = 'Product'
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.list_price = Decimal('20')
>>> template.save()
>>> product, = template.products
Get stock locations::
>>> Location = Model.get('stock.location')
>>> storage_loc, = Location.find([('code', '=', 'STO')])
>>> customer_loc, = Location.find([('code', '=', 'CUS')])
Create a move::
>>> Move = Model.get('stock.move')
>>> move = Move()
>>> move.from_location = storage_loc
>>> move.to_location = customer_loc
>>> move.product = product
>>> move.quantity = 10
>>> move.unit_price = Decimal('20')
>>> move.currency = get_currency()
>>> move.save()
Create a lot::
>>> Lot = Model.get('stock.lot')
>>> lot2 = Lot(number='02', product=product)
>>> lot2.save()
Add few lots::
>>> add_lots = move.click('add_lots_wizard')
>>> assertEqual(add_lots.form.product, product)
>>> add_lots.form.quantity
10.0
>>> assertEqual(add_lots.form.unit, unit)
>>> add_lots.form.quantity_remaining
10.0
>>> lot = add_lots.form.lots.new()
>>> lot.quantity
10.0
>>> lot.number = '01'
>>> lot.quantity = 2
>>> lot = add_lots.form.lots.new()
>>> lot.quantity
8.0
>>> lot.number = '02'
>>> lot.quantity = 1
>>> add_lots.execute('add')
Check moves::
>>> move, = Move.find([('lot.number', '=', '01')])
>>> move.quantity
2.0
>>> move, = Move.find([('lot.number', '=', '02')])
>>> move.quantity
1.0
>>> assertEqual(move.lot, lot2)
>>> move, = Move.find([('lot', '=', None)])
>>> move.quantity
7.0
Add lot to remaining::
>>> add_lots = move.click('add_lots_wizard')
>>> lot = add_lots.form.lots.new()
>>> lot.number = '03'
>>> add_lots.execute('add')
>>> len(Move.find([]))
3
>>> move.lot.number
'03'
>>> move.quantity
7.0

View File

@@ -0,0 +1,65 @@
=========================
Stock Lot Number Scenario
=========================
Imports::
>>> from proteus import Model
>>> from trytond.tests.tools import activate_modules, assertEqual
Activate modules::
>>> config = activate_modules('stock_lot')
Create lot sequence::
>>> Sequence = Model.get('ir.sequence')
>>> SequenceType = Model.get('ir.sequence.type')
>>> sequence_type, = SequenceType.find(
... [('name', '=', "Stock Lot")], limit=1)
>>> sequence = Sequence(name="Lot", sequence_type=sequence_type)
>>> sequence.save()
Set default sequence::
>>> Configuration = Model.get('product.configuration')
>>> configuration = Configuration(1)
>>> configuration.default_lot_sequence = sequence
>>> configuration.save()
Create product::
>>> ProductUom = Model.get('product.uom')
>>> ProductTemplate = Model.get('product.template')
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
>>> template = ProductTemplate()
>>> assertEqual(template.lot_sequence, sequence)
>>> template.name = 'Product'
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.save()
>>> product, = template.products
Create lot without number::
>>> Lot = Model.get('stock.lot')
>>> lot = Lot(product=product)
>>> lot.save()
>>> lot.number
'1'
Copy set a new number::
>>> lot2, = lot.duplicate()
>>> lot2.number
'2'
Copy without sequence keep same number::
>>> template.lot_sequence = None
>>> template.save()
>>> lot3, = lot.duplicate()
>>> lot3.number
'1'

View File

@@ -0,0 +1,91 @@
==============================
Stock Lot Shipment In Scenario
==============================
Imports::
>>> from decimal import Decimal
>>> from proteus import Model
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.tests.tools import activate_modules, assertEqual
Activate modules::
>>> config = activate_modules('stock_lot', create_company)
>>> Location = Model.get('stock.location')
>>> Lot = Model.get('stock.lot')
>>> Party = Model.get('party.party')
>>> ProductTemplate = Model.get('product.template')
>>> ProductUom = Model.get('product.uom')
>>> ShipmentIn = Model.get('stock.shipment.in')
Create supplier::
>>> supplier = Party(name='Supplier')
>>> supplier.save()
Create product::
>>> unit, = ProductUom.find([('name', '=', "Unit")])
>>> template = ProductTemplate()
>>> template.name = "Product"
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.list_price = Decimal('20')
>>> template.save()
>>> product, = template.products
Get stock locations::
>>> supplier_loc, = Location.find([('code', '=', 'SUP')])
>>> input_loc, = Location.find([('code', '=', 'IN')])
>>> storage_loc, = Location.find([('code', '=', 'STO')])
Set 2 lots::
>>> lot1 = Lot(number="1", product=product)
>>> lot1.save()
>>> lot2 = Lot(number="2", product=product)
>>> lot2.save()
Create a shipment::
>>> shipment = ShipmentIn()
>>> shipment.supplier = supplier
>>> move = shipment.incoming_moves.new()
>>> move.product = product
>>> move.quantity = 10
>>> move.from_location = supplier_loc
>>> move.to_location = input_loc
>>> move.unit_price = Decimal('5')
>>> move.currency = shipment.company.currency
>>> shipment.save()
Receive the shipment with one lot::
>>> incoming_move, = shipment.incoming_moves
>>> incoming_move.lot = lot1
>>> shipment.click('receive')
>>> shipment.state
'received'
Change lot and try to finish::
>>> incoming_move, = shipment.inventory_moves
>>> assertEqual(incoming_move.lot, lot1)
>>> incoming_move.lot = lot2
>>> shipment.click('do')
Traceback (most recent call last):
...
ShipmentCheckQuantityWarning: ...
>>> incoming_move.reload()
>>> incoming_move.lot = lot1
>>> incoming_move.save()
Finish the shipment::
>>> shipment.click('do')
>>> shipment.state
'done'

View File

@@ -0,0 +1,153 @@
===============================
Stock Lot Shipment Out Scenario
===============================
Imports::
>>> import datetime as dt
>>> from decimal import Decimal
>>> from proteus import Model
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.modules.currency.tests.tools import get_currency
>>> from trytond.tests.tools import activate_modules, assertEqual
>>> today = dt.date.today()
Activate modules::
>>> config = activate_modules('stock_lot', create_company)
Create customer::
>>> Party = Model.get('party.party')
>>> customer = Party(name='Customer')
>>> customer.save()
Create product::
>>> ProductUom = Model.get('product.uom')
>>> ProductTemplate = Model.get('product.template')
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
>>> template = ProductTemplate()
>>> template.name = 'Product'
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.list_price = Decimal('20')
>>> template.lot_required = ['storage']
>>> template.save()
>>> product, = template.products
Get stock locations::
>>> Location = Model.get('stock.location')
>>> warehouse_loc, = Location.find([('code', '=', 'WH')])
>>> supplier_loc, = Location.find([('code', '=', 'SUP')])
>>> customer_loc, = Location.find([('code', '=', 'CUS')])
>>> output_loc, = Location.find([('code', '=', 'OUT')])
>>> storage_loc, = Location.find([('code', '=', 'STO')])
Create Shipment Out::
>>> ShipmentOut = Model.get('stock.shipment.out')
>>> shipment_out = ShipmentOut()
>>> shipment_out.planned_date = today
>>> shipment_out.customer = customer
>>> shipment_out.warehouse = warehouse_loc
>>> move = shipment_out.outgoing_moves.new()
>>> move.product = product
>>> move.unit = unit
>>> move.quantity = 10
>>> move.from_location = output_loc
>>> move.to_location = customer_loc
>>> move.unit_price = Decimal('1')
>>> move.currency = get_currency()
>>> shipment_out.save()
Set the shipment state to waiting::
>>> shipment_out.click('wait')
>>> len(shipment_out.outgoing_moves)
1
>>> len(shipment_out.inventory_moves)
1
Split inventory move::
>>> move, = shipment_out.inventory_moves
>>> move.quantity = 7
>>> move.save()
>>> with config.set_context(_stock_move_split=True):
... _ = move.duplicate(default=dict(quantity=3))
>>> shipment_out.reload()
Assign the shipment::
>>> shipment_out.click('assign_force')
>>> shipment_out.state
'assigned'
>>> len(shipment_out.outgoing_moves)
1
Check the inventory moves origin::
>>> outgoing_move, = shipment_out.outgoing_moves
>>> for move in shipment_out.inventory_moves:
... assertEqual(move.origin, outgoing_move)
Try to pick without lot::
>>> shipment_out.click('pick')
Traceback (most recent call last):
...
RequiredValidationError: ...
Set 2 lots::
>>> Lot = Model.get('stock.lot')
>>> for i, move in enumerate(shipment_out.inventory_moves, start=1):
... lot = Lot(number='%05i' % i, product=move.product)
... lot.save()
... move.lot = lot
>>> shipment_out.save()
Pick the shipment::
>>> shipment_out.click('pick')
>>> shipment_out.state
'picked'
>>> len(shipment_out.outgoing_moves)
3
>>> sorted([m.quantity for m in shipment_out.outgoing_moves])
[0.0, 3.0, 7.0]
>>> lot_quantities = {}
>>> for move in shipment_out.outgoing_moves:
... number = move.lot.number if move.lot else ''
... quantity = lot_quantities.setdefault(number, 0)
... lot_quantities[number] += move.quantity
>>> sorted(lot_quantities.items())
[('', 0.0), ('00001', 7.0), ('00002', 3.0)]
Check the inventory moves have an outgoing move origin with the same lot::
>>> for move in shipment_out.inventory_moves:
... assertEqual(move.lot, move.origin.lot)
Pack the shipment and return to pick::
>>> shipment_out.click('pack')
>>> shipment_out.state
'packed'
>>> len(shipment_out.outgoing_moves)
2
>>> shipment_out.click('pick')
>>> shipment_out.state
'picked'
>>> len(shipment_out.outgoing_moves)
2
Check the inventory moves still have an outgoing move origin with the same lot::
>>> for move in shipment_out.inventory_moves:
... assertEqual(move.lot, move.origin.lot)

View File

@@ -0,0 +1,133 @@
====================================
Stock Lot Shipment Internal Scenario
====================================
Imports::
>>> import datetime as dt
>>> from decimal import Decimal
>>> from proteus import Model
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.tests.tools import activate_modules, assertEqual, assertTrue
>>> today = dt.date.today()
>>> yesterday = today - dt.timedelta(days=1)
>>> tomorrow = today + dt.timedelta(days=1)
Activate modules::
>>> config = activate_modules('stock_lot', create_company)
>>> LeadTime = Model.get('stock.location.lead_time')
>>> Location = Model.get('stock.location')
>>> Lot = Model.get('stock.lot')
>>> ProductTemplate = Model.get('product.template')
>>> ProductUom = Model.get('product.uom')
>>> Shipment = Model.get('stock.shipment.internal')
Create product::
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
>>> template = ProductTemplate()
>>> template.name = "Product"
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.list_price = Decimal('20')
>>> template.save()
>>> product, = template.products
Get stock locations::
>>> warehouse1, = Location.find([('type', '=', 'warehouse')])
>>> warehouse2, = warehouse1.duplicate()
Add lead time between warehouses::
>>> lead_time = LeadTime()
>>> lead_time.warehouse_from = warehouse1
>>> lead_time.warehouse_to = warehouse2
>>> lead_time.lead_time = dt.timedelta(1)
>>> lead_time.save()
Create Internal Shipment with lead time::
>>> shipment = Shipment()
>>> shipment.planned_date = tomorrow
>>> shipment.from_location = warehouse1.storage_location
>>> shipment.to_location = warehouse2.storage_location
>>> assertTrue(shipment.transit_location)
>>> assertEqual(shipment.planned_start_date, today)
>>> move = shipment.moves.new()
>>> move.product = product
>>> move.quantity = 3
>>> move.from_location = shipment.from_location
>>> move.to_location = shipment.to_location
>>> shipment.save()
Set the shipment state to waiting::
>>> shipment.click('wait')
>>> shipment.state
'waiting'
>>> len(shipment.outgoing_moves)
1
>>> len(shipment.incoming_moves)
1
Split outgoing moves::
>>> move, = shipment.outgoing_moves
>>> move.quantity = 1
>>> move.save()
>>> with config.set_context(_stock_move_split=True):
... _ = move.duplicate(default=dict(quantity=2))
>>> shipment.reload()
Assign the shipment::
>>> shipment.click('assign_force')
>>> shipment.state
'assigned'
>>> len(shipment.incoming_moves)
1
Check the inventory moves origin::
>>> incoming_move, = shipment.incoming_moves
>>> for move in shipment.outgoing_moves:
... assertEqual(move.origin, incoming_move)
Set 2 lots::
>>> for i, move in enumerate(shipment.outgoing_moves, start=1):
... lot = Lot(number='%05i' % i, product=move.product)
... lot.save()
... move.lot = lot
>>> shipment.save()
Ship the shipment::
>>> shipment.effective_start_date = yesterday
>>> shipment.click('pack')
>>> shipment.click('ship')
>>> shipment.state
'shipped'
>>> len(shipment.incoming_moves)
3
>>> sorted([m.quantity for m in shipment.incoming_moves])
[0.0, 1.0, 2.0]
>>> lot_quantities = {}
>>> for move in shipment.incoming_moves:
... number = move.lot.number if move.lot else ''
... quantity = lot_quantities.setdefault(number, 0)
... lot_quantities[number] += move.quantity
>>> sorted(lot_quantities.items())
[('', 0.0), ('00001', 1.0), ('00002', 2.0)]
Check the outgoing moves have an incoming move origin with the same lot::
>>> for move in shipment.outgoing_moves:
... assertEqual(move.lot, move.origin.lot)

View File

@@ -0,0 +1,80 @@
========================
Stock Lot Trace Scenario
========================
Imports::
>>> from decimal import Decimal
>>> from proteus import Model
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.modules.currency.tests.tools import get_currency
>>> from trytond.tests.tools import activate_modules
Activate modules::
>>> config = activate_modules('stock_lot', create_company)
>>> Location = Model.get('stock.location')
>>> Lot = Model.get('stock.lot')
>>> LotTrace = Model.get('stock.lot.trace')
>>> Move = Model.get('stock.move')
>>> ProductTemplate = Model.get('product.template')
>>> UoM = Model.get('product.uom')
Create product::
>>> unit, = UoM.find([('name', '=', "Unit")])
>>> template = ProductTemplate(name="Product")
>>> template.type = 'goods'
>>> template.default_uom = unit
>>> template.save()
>>> product, = template.products
Create lot::
>>> lot = Lot(product=product, number="1")
>>> lot.save()
Get locations::
>>> supplier_loc, = Location.find([('code', '=', 'SUP')])
>>> storage_loc, = Location.find([('code', '=', 'STO')])
>>> customer_loc, = Location.find([('code', '=', 'CUS')])
Make some moves::
>>> move_in = Move(product=product, lot=lot)
>>> move_in.quantity = 10
>>> move_in.from_location = supplier_loc
>>> move_in.to_location = storage_loc
>>> move_in.currency = get_currency()
>>> move_in.unit_price = Decimal('0')
>>> move_in.click('do')
>>> move_in.state
'done'
>>> move_out = Move(product=product, lot=lot)
>>> move_out.quantity = 2
>>> move_out.from_location = storage_loc
>>> move_out.to_location = customer_loc
>>> move_out.currency = get_currency()
>>> move_out.unit_price = Decimal('0')
>>> move_out.click('do')
>>> move_out.state
'done'
Check lot traces::
>>> trace = LotTrace(move_in.id)
>>> trace.upward_traces == [LotTrace(move_out.id)]
True
>>> trace.downward_traces
[]
>>> trace = LotTrace(move_out.id)
>>> trace.upward_traces
[]
>>> trace.downward_traces == [LotTrace(move_in.id)]
True

View File

@@ -0,0 +1,313 @@
# 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 as dt
from decimal import Decimal
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
class StockLotTestCase(CompanyTestMixin, ModuleTestCase):
'Test Stock Lot module'
module = 'stock_lot'
extras = ['stock_split']
@with_transaction()
def test_products_by_location(self):
'Test products_by_location'
pool = Pool()
Uom = pool.get('product.uom')
Template = pool.get('product.template')
Product = pool.get('product.product')
Location = pool.get('stock.location')
Move = pool.get('stock.move')
Lot = pool.get('stock.lot')
kg, = Uom.search([('name', '=', 'Kilogram')])
g, = Uom.search([('name', '=', 'Gram')])
template, = Template.create([{
'name': 'Test products_by_location',
'type': 'goods',
'default_uom': kg.id,
}])
product, = Product.create([{
'template': template.id,
}])
supplier, = Location.search([('code', '=', 'SUP')])
customer, = Location.search([('code', '=', 'CUS')])
storage, = Location.search([('code', '=', 'STO')])
company = create_company()
currency = company.currency
with set_company(company):
lot1, lot2 = Lot.create([{
'number': '1',
'product': product.id,
}, {
'number': '2',
'product': product.id,
}])
moves = Move.create([{
'product': product.id,
'lot': lot1.id,
'unit': kg.id,
'quantity': 5,
'from_location': supplier.id,
'to_location': storage.id,
'company': company.id,
'unit_price': Decimal('1'),
'currency': currency.id,
}, {
'product': product.id,
'lot': lot2.id,
'unit': kg.id,
'quantity': 10,
'from_location': supplier.id,
'to_location': storage.id,
'company': company.id,
'unit_price': Decimal('1'),
'currency': currency.id,
}, {
'product': product.id,
'lot': lot2.id,
'unit': kg.id,
'quantity': 2,
'from_location': storage.id,
'to_location': customer.id,
'company': company.id,
'unit_price': Decimal('1'),
'currency': currency.id,
}, {
'product': product.id,
'lot': None,
'unit': kg.id,
'quantity': 3,
'from_location': supplier.id,
'to_location': storage.id,
'company': company.id,
'unit_price': Decimal('1'),
'currency': currency.id,
}])
Move.do(moves)
self.assertEqual(Product.products_by_location([storage.id],
grouping_filter=([product.id],)), {
(storage.id, product.id): 16,
})
self.assertEqual(Product.products_by_location([storage.id],
grouping=('product', 'lot',),
grouping_filter=([product.id],)), {
(storage.id, product.id, lot1.id): 5,
(storage.id, product.id, lot2.id): 8,
(storage.id, product.id, None): 3,
})
with Transaction().set_context(locations=[storage.id]):
lot1, lot2 = Lot.browse([lot1, lot2])
self.assertEqual(lot1.quantity, 5)
self.assertEqual(lot2.quantity, 8)
@with_transaction()
def test_period(self):
'Test period'
pool = Pool()
Uom = pool.get('product.uom')
Template = pool.get('product.template')
Product = pool.get('product.product')
Location = pool.get('stock.location')
Move = pool.get('stock.move')
Lot = pool.get('stock.lot')
Period = pool.get('stock.period')
unit, = Uom.search([('name', '=', 'Unit')])
template, = Template.create([{
'name': 'Test period',
'type': 'goods',
'default_uom': unit.id,
}])
product, = Product.create([{
'template': template.id,
}])
supplier, = Location.search([('code', '=', 'SUP')])
storage, = Location.search([('code', '=', 'STO')])
company = create_company()
currency = company.currency
with set_company(company):
lot1, lot2 = Lot.create([{
'number': '1',
'product': product.id,
}, {
'number': '2',
'product': product.id,
}])
today = dt.date.today()
moves = Move.create([{
'product': product.id,
'lot': lot1.id,
'unit': unit.id,
'quantity': 5,
'from_location': supplier.id,
'to_location': storage.id,
'planned_date': today - dt.timedelta(days=1),
'effective_date': today - dt.timedelta(days=1),
'company': company.id,
'unit_price': Decimal('1'),
'currency': currency.id,
}, {
'product': product.id,
'lot': lot2.id,
'unit': unit.id,
'quantity': 10,
'from_location': supplier.id,
'to_location': storage.id,
'planned_date': today - dt.timedelta(days=1),
'effective_date': today - dt.timedelta(days=1),
'company': company.id,
'unit_price': Decimal('1'),
'currency': currency.id,
}, {
'product': product.id,
'lot': None,
'unit': unit.id,
'quantity': 3,
'from_location': supplier.id,
'to_location': storage.id,
'planned_date': today - dt.timedelta(days=1),
'effective_date': today - dt.timedelta(days=1),
'company': company.id,
'unit_price': Decimal('1'),
'currency': currency.id,
}])
Move.do(moves)
period, = Period.create([{
'date': today - dt.timedelta(days=1),
'company': company.id,
}])
Period.close([period])
self.assertEqual(period.state, 'closed')
quantities = {
supplier: -18,
storage: 18,
}
for cache in period.caches:
self.assertEqual(cache.product, product)
self.assertEqual(cache.internal_quantity,
quantities[cache.location])
quantities = {
(supplier, lot1): -5,
(storage, lot1): 5,
(supplier, lot2): -10,
(storage, lot2): 10,
(supplier, None): -3,
(storage, None): 3,
}
for lot_cache in period.lot_caches:
self.assertEqual(lot_cache.product, product)
self.assertEqual(lot_cache.internal_quantity,
quantities[(lot_cache.location, lot_cache.lot)])
@with_transaction()
def test_assign_try_with_lot(self):
"Test Move assign_try with lot"
pool = Pool()
Template = pool.get('product.template')
Product = pool.get('product.product')
Uom = pool.get('product.uom')
Location = pool.get('stock.location')
Move = pool.get('stock.move')
Lot = pool.get('stock.lot')
unit, = Uom.search([('name', '=', 'Meter')])
template = Template(
name="Product",
type='goods',
default_uom=unit,
)
template.save()
product = Product(template=template.id)
product.save()
supplier, = Location.search([('code', '=', 'SUP')])
storage, = Location.search([('code', '=', 'STO')])
customer, = Location.search([('code', '=', 'CUS')])
company = create_company()
with set_company(company):
lot1, lot2 = Lot.create([{
'number': "1",
'product': product.id,
}, {
'number': "2",
'product': product.id,
}])
moves = Move.create([{
'product': product.id,
'lot': lot1.id,
'unit': unit.id,
'quantity': 2,
'from_location': supplier.id,
'to_location': storage.id,
'company': company.id,
'unit_price': Decimal(1),
'currency': company.currency.id,
}, {
'product': product.id,
'lot': lot2.id,
'unit': unit.id,
'quantity': 3,
'from_location': supplier.id,
'to_location': storage.id,
'company': company.id,
'unit_price': Decimal(1),
'currency': company.currency.id,
}, {
'product': product.id,
'lot': None,
'unit': unit.id,
'quantity': 3,
'from_location': supplier.id,
'to_location': storage.id,
'company': company.id,
'unit_price': Decimal(1),
'currency': company.currency.id,
}])
Move.do(moves)
move, = Move.create([{
'product': product.id,
'unit': unit.id,
'quantity': 10,
'from_location': storage.id,
'to_location': customer.id,
'company': company.id,
'unit_price': Decimal(1),
'currency': company.currency.id,
}])
self.assertFalse(
Move.assign_try([move], grouping=('product', 'lot')))
moves = Move.search([
('product', '=', product.id),
('from_location', '=', storage.id),
('to_location', '=', customer.id),
('company', '=', company.id),
])
self.assertEqual(len(moves), 4)
self.assertEqual({
(m.lot, m.quantity, m.state) for m in moves}, {
(lot1, 2, 'assigned'),
(lot2, 3, 'assigned'),
(None, 3, 'assigned'),
(None, 2, 'draft'),
})
del ModuleTestCase

View File

@@ -0,0 +1,8 @@
# 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.tests.test_tryton import load_doc_tests
def load_tests(*args, **kwargs):
return load_doc_tests(__name__, __file__, *args, **kwargs)

View File

@@ -0,0 +1,46 @@
[tryton]
version=7.8.0
depends:
ir
product
stock
extras_depend:
sale_supply_drop_shipment
stock_split
xml:
ir.xml
stock.xml
product.xml
message.xml
[register]
model:
product.Configuration
product.ConfigurationDefaultLotSequence
product.Template
product.Product
stock.Lot
stock.LotTrace
stock.LotByLocationContext
stock.LotsByLocations
stock.Location
stock.Move
stock.MoveAddLotsStart
stock.MoveAddLotsStartLot
stock.ShipmentIn
stock.ShipmentOut
stock.ShipmentOutReturn
stock.ShipmentInternal
stock.Period
stock.PeriodCacheLot
stock.Inventory
stock.InventoryLine
stock.InventoryCountSearch
stock.InventoryCountQuantity
wizard:
stock.MoveAddLots
stock.InventoryCount
[register sale_supply_drop_shipment]
model:
stock.ShipmentDrop

View File

@@ -0,0 +1,9 @@
<?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. -->
<data>
<xpath expr="/form/field[@name='product']" position="after">
<label name="lot"/>
<field name="lot"/>
</xpath>
</data>

View File

@@ -0,0 +1,9 @@
<?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. -->
<data>
<xpath expr="/form/field[@name='product']" position="after">
<label name="lot"/>
<field name="lot"/>
</xpath>
</data>

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. -->
<data>
<xpath expr="/tree/field[@name='product']" position="after">
<field name="lot" expand="1"/>
</xpath>
</data>

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. -->
<form>
<label name="forecast_date"/>
<field name="forecast_date"/>
<field name="stock_date_end" invisible="1" colspan="4"/>
</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>
<label name="number"/>
<field name="number"/>
<group col="-1" colspan="2" id="checkboxes">
<label name="active"/>
<field name="active" xexpand="0" width="25"/>
</group>
<label name="product"/>
<field name="product"/>
<group id="relates" colspan="4" col="-1">
<button name="upward_traces" icon="tryton-arrow-up"/>
<button name="downward_traces" icon="tryton-arrow-down"/>
</group>
</form>

View File

@@ -0,0 +1,9 @@
<?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="number" expand="1"/>
<field name="product" expand="1"/>
<field name="quantity" symbol="default_uom"/>
<field name="forecast_quantity" symbol="default_uom" optional="1"/>
</tree>

View File

@@ -0,0 +1,12 @@
<?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="document" expand="2"/>
<field name="product" expand="1"/>
<field name="lot" expand="1"/>
<field name="from_location" expand="1" optional="1"/>
<field name="to_location" expand="1" optional="1"/>
<field name="quantity" symbol="unit"/>
<field name="date"/>
</tree>

View File

@@ -0,0 +1,7 @@
<?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="number" expand="1"/>
<field name="product" expand="1"/>
</tree>

View File

@@ -0,0 +1,9 @@
<?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="lot" expand="1"/>
<field name="product" expand="1"/>
<field name="quantity" symbol="default_uom"/>
<field name="forecast_quantity" symbol="default_uom"/>
</tree>

View File

@@ -0,0 +1,12 @@
<?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. -->
<data>
<xpath expr="/form/field[@name='product']" position="after">
<label name="lot"/>
<field name="lot" view_ids="stock_lot.lot_view_list_stock_move"/>
</xpath>
<xpath expr="/form/group[@id='buttons']" position="inside">
<button name="add_lots_wizard" icon="tryton-add"/>
</xpath>
</data>

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. -->
<data>
<xpath expr="/tree/field[@name='product']" position="after">
<field name="lot" expand="1" optional="0"/>
</xpath>
<xpath expr="/tree" position="inside">
<button name="add_lots_wizard"/>
</xpath>
</data>

View File

@@ -0,0 +1,15 @@
<?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="8">
<label name="period"/>
<field name="period" colspan="6"/>
<label name="location"/>
<field name="location"/>
<label name="product"/>
<field name="product"/>
<label name="lot"/>
<field name="lot"/>
<label name="internal_quantity"/>
<field name="internal_quantity"/>
</form>

View File

@@ -0,0 +1,10 @@
<?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="period"/>
<field name="location"/>
<field name="product"/>
<field name="lot"/>
<field name="internal_quantity"/>
</tree>

View File

@@ -0,0 +1,9 @@
<?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. -->
<data>
<xpath expr="//field[@name='product_sequence']" position="after">
<label name="default_lot_sequence"/>
<field name="default_lot_sequence"/>
</xpath>
</data>

View File

@@ -0,0 +1,20 @@
<?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="product"/>
<field name="product" colspan="3"/>
<label name="quantity"/>
<field name="quantity" symbol="unit"/>
<label name="quantity_remaining" string="Remaining:"/>
<field name="quantity_remaining" symbol="unit"/>
<field name="lots" colspan="4"/>
<group col="-1" colspan="2" id="duplicate_lot">
<button name="duplicate_lot" icon="tryton-copy"/>
<field name="duplicate_lot_number" xexpand="0"/>
<label name="duplicate_lot_number" string="times"/>
</group>
</form>

View File

@@ -0,0 +1,9 @@
<?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="parent" expand="1"/>
<field name="number" expand="2"/>
<field name="product" expand="1"/>
<field name="quantity"/>
</tree>

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. -->
<data>
<xpath expr="/form/notebook/page[@id='general']" position="after">
<page string="Lots" name="lot_required">
<label name="lot_required"/>
<field name="lot_required" yexpand="0"/>
<label name="lot_sequence"/>
<field name="lot_sequence"/>
</page>
</xpath>
</data>