first commit

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

View File

@@ -0,0 +1,2 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.

Binary file not shown.

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M14 4l2.29 2.29-2.88 2.88 1.42 1.42 2.88-2.88L20 10V4zm-4 0H4v6l2.29-2.29 4.71 4.7V20h2v-8.41l-5.29-5.3z"/></svg>

After

Width:  |  Height:  |  Size: 242 B

View File

@@ -0,0 +1,107 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Количество"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Категория мер. ед."
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
#, fuzzy
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Split"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Отказване"
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Отказване"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,99 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "Número"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Quantitat"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr "Unitat"
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Categoria de la UdM"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr "Moviments del domini"
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr "Moviments"
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr "El número màxim de moviments."
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr "La categoria de la unitat de mesura."
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr "Els moviments seleccionats s'enviaran en un albarà nou."
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Divideix moviments"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Divideix albarà"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Divideix"
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Desfes divisió"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Divideix"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Divideix"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Divideix"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr "Inici dividir moviments d'existències"
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr "Inici dividir albarans"
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Divideix"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr "Seleccioneu els moviments a enviar un enviament nou:"
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Cancel·la"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Divideix"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Cancel·la"
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Divideix"

View File

@@ -0,0 +1,103 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
#, fuzzy
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Split"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr ""
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Split"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr ""
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,102 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "Anzahl"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Menge"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr "Einheit"
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Maßeinheitenkategorie"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr "Wertebereich Warenbewegungen (Domain)"
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr "Warenbewegungen"
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr "Maximale Anzahl von Warenbewegungen."
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr "Die Kategorie der Maßeinheit."
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
"Die gewählten Warenbewegungen werden in die neue Lieferung übernommen."
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Warenbewegung aufteilen"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Lieferung aufteilen"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Aufteilen"
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Zusammenführen"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Aufteilen"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Aufteilen"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Aufteilen"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr "Lager Warenbewegungen aufteilen Start"
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr "Lager Lieferung aufteilen Start"
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Aufteilen"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
"Warenbewegungen auswählen, die in eine neue Lieferung übernommen werden "
"sollen:"
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Abbrechen"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Aufteilen"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Abbrechen"
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Aufteilen"

View File

@@ -0,0 +1,99 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "Contador"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Cantidad"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr "Unidad"
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Categoría de UdM"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr "Movimientos del dominio"
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr "Movimientos"
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr "El número límite de movimientos."
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr "La categoria de la unidad de medida."
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr "Los movimientos seleccionados se enviarán en un albarán nuevo."
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Dividir movimiento"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Dividir albarán"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Dividir"
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Deshacer división"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Dividir"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Dividir"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Dividir"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr "Inicio dividir movimientos de existencias"
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr "Inicio dividir albaranes"
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Dividir"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr "Selecciona los movimientos a enviar en un albarán nuevo:"
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Dividir"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Dividir"

View File

@@ -0,0 +1,100 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Categoría de UdM"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr ""
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr ""
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
msgctxt "view:stock.move:"
msgid "Split"
msgstr ""
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr ""
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr ""

View File

@@ -0,0 +1,101 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "Loendused"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Kogus"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Mõõtühiku kategooria"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr "Liikumised"
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Jaga liikumine"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Jaga lähetus"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Jaga"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Jaga"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Jaga"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Jaga"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Jaga"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Jaga"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Tühista"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Jaga"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Tühista"
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Jaga"

View File

@@ -0,0 +1,103 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "شمارش"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "مقدار/تعداد"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "دسته بندی واحد اندازه گیری"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr "دامنه جابجایی ها"
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr "جابجایی ها"
#, fuzzy
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr "تعداد محدود جابجایی ها"
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr "جابجایی های انتخاب شده در محموله جدید ارسال خواهند شد."
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "جداسازی جابجایی"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "جداسازی محموله"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
msgctxt "view:stock.move:"
msgid "Split"
msgstr "جداسازی"
#, fuzzy
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr "انتخاب جابجایی برای ارسال در محموله جدید"
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "انصراف"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "جداسازی"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "انصراف"
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "جداسازی"

View File

@@ -0,0 +1,103 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
#, fuzzy
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Split"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr ""
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Split"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr ""
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,100 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "Décompte"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Quantité"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr "Unité"
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Catégorie d'UDM"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr "Domaine des mouvements"
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr "Mouvements"
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr "Le nombre limite de mouvements."
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr "La catégorie dunité de mesure."
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
"Les mouvements sélectionnés seront envoyés sur la nouvelle expédition."
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Diviser le mouvement"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Diviser l'expédition"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Diviser"
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Rassembler"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Diviser"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Diviser"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Diviser"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr "Début de division de mouvement de stock"
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr "Début de division d'expédition de stock"
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Diviser"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr "Sélectionnez les mouvements à envoyer sur la nouvelle expédition :"
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Annuler"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Diviser"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Annuler"
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Diviser"

View File

@@ -0,0 +1,105 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "Mennyiség"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Mennyiség"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Egység kategória"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
#, fuzzy
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr "Raktár mozgatás max. mennyisége"
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Beosztás"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Mégse"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Beosztás"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Mégse"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Beosztás"

View File

@@ -0,0 +1,99 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr "Perpindahan"
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr ""
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr ""
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
msgctxt "view:stock.move:"
msgid "Split"
msgstr ""
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Batal"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr ""
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Batal"
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr ""

View File

@@ -0,0 +1,104 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "Conteggi"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Quantità"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Categoria UdM"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr "Dominio dei movimenti"
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr "Movimenti"
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
#, fuzzy
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Split"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Annulla"
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Split"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Annulla"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,105 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "ນັບ"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "ຈຳນວນ"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "ໝວດຫົວໜ່ວຍ"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
#, fuzzy
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr "ຕົວເລກຈຳກັດຂອງການເຄື່ອນຍ້າຍ"
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
msgctxt "view:stock.move:"
msgid "Split"
msgstr "ແຍກ"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "ຍົກເລີກ"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "ແຍກ"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "ຍົກເລີກ"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "ແຍກ"

View File

@@ -0,0 +1,103 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
#, fuzzy
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Split"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr ""
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Split"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr ""
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,99 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "tellingen"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Hoeveelheid"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr "Maateenheid"
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Maateenheid categorie"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr "Mutaties domein"
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr "Mutaties"
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr "maximum aantal bewegingen."
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr "De categorie van de maateenheid."
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr "De geselecteerde bewegingen worden verzonden in de nieuwe zending."
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split de beweging"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Zending splitsen"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "opsplitsen"
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Samenvoegen"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "opsplitsen"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "opsplitsen"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "opsplitsen"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr "Voorraadbeweging splitsen start"
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr "Voorraad verzending splitsen start"
msgctxt "view:stock.move:"
msgid "Split"
msgstr "opsplitsen"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr "Kies voorraadbewegingen om in een nieuwe zending te verzenden:"
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Annuleren"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "opsplitsen"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Annuleren"
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "opsplitsen"

View File

@@ -0,0 +1,105 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Ilość"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Kategoria jm"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr "Ruchy"
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
#, fuzzy
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Split"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Anuluj"
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Split"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Anuluj"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,104 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "Contador"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Quantidade"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Categoria da UDM"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr "Domínio de Movimentações"
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr "Movimentos"
#, fuzzy
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr "O número limite de movimentações."
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr "As movimentações selecionadas serão enviadas na próxima remessa."
#, fuzzy
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
#, fuzzy
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Dividir"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr "Selecione os movimentos para enviar uma nova remessa:"
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Dividir"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Dividir"

View File

@@ -0,0 +1,99 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr ""
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr ""
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
msgctxt "view:stock.move:"
msgid "Split"
msgstr ""
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr ""
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr ""

View File

@@ -0,0 +1,107 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Кол-во"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Категория ед. измерения"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
#, fuzzy
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Split"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Отменить"
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Отменить"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,105 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr "Število"
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr "Količina"
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr "Kategorija ME"
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
#, fuzzy
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr "Omejitev števila prenosov"
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Delitev"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "Prekliči"
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Delitev"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "Prekliči"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Delitev"

View File

@@ -0,0 +1,103 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
#, fuzzy
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Split"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr ""
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Split"
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr ""
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,99 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr ""
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr ""
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
msgctxt "view:stock.move:"
msgid "Split"
msgstr ""
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr ""
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr ""

View File

@@ -0,0 +1,105 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:stock.move.split.start,count:"
msgid "Counts"
msgstr ""
msgctxt "field:stock.move.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:stock.move.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:stock.move.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "field:stock.shipment.split.start,domain_moves:"
msgid "Domain Moves"
msgstr ""
msgctxt "field:stock.shipment.split.start,moves:"
msgid "Moves"
msgstr ""
msgctxt "help:stock.move.split.start,count:"
msgid "The limit number of moves."
msgstr ""
msgctxt "help:stock.move.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "help:stock.shipment.split.start,moves:"
msgid "The selected moves will be sent in the new shipment."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_move"
msgid "Split Move"
msgstr "Split Move"
msgctxt "model:ir.action,name:wizard_split_shipment"
msgid "Split Shipment"
msgstr "Split Shipment"
msgctxt "model:ir.model.button,string:move_split_wizard_button"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "model:ir.model.button,string:move_unsplit_button"
msgid "Unsplit"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_in_return_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_internal_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:ir.model.button,string:shipment_out_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:stock.move.split.start,string:"
msgid "Stock Move Split Start"
msgstr ""
msgctxt "model:stock.shipment.split.start,string:"
msgid "Stock Shipment Split Start"
msgstr ""
#, fuzzy
msgctxt "view:stock.move:"
msgid "Split"
msgstr "Split"
msgctxt "view:stock.shipment.split.start:"
msgid "Select moves to send in a new shipment:"
msgstr ""
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,end:"
msgid "Cancel"
msgstr "取消"
#, fuzzy
msgctxt "wizard_button:stock.move.split,start,split:"
msgid "Split"
msgstr "Split"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,end:"
msgid "Cancel"
msgstr "取消"
#, fuzzy
msgctxt "wizard_button:stock.shipment.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,249 @@
# 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 ModelView, fields
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval
from trytond.transaction import Transaction
from trytond.wizard import Button, StateTransition, StateView, Wizard
class Move(metaclass=PoolMeta):
__name__ = 'stock.move'
@classmethod
def __setup__(cls):
super().__setup__()
cls._buttons.update({
'split_wizard': {
'readonly': ~Eval('state').in_(['draft', 'assigned']),
'depends': ['state'],
},
'unsplit': {
'readonly': ~Eval('state').in_(['draft', 'assigned']),
'depends': ['state'],
},
})
@classmethod
@ModelView.button_action('stock_split.wizard_split_move')
def split_wizard(cls, moves):
pass
def split(self, quantity, unit, count=None):
"""
Split the move into moves of quantity.
If count is not defined, the move will be split until the remainder is
less than quantity.
Return the split moves
"""
pool = Pool()
Uom = pool.get('product.uom')
moves = [self]
remainder = Uom.compute_qty(self.unit, self.quantity, unit)
if remainder <= quantity:
return moves
state = self.state
self.write([self], {
'state': 'draft',
})
self.write([self], {
'quantity': quantity,
'unit': unit.id,
})
remainder -= quantity
if count:
count -= 1
while (remainder > quantity
and (count or count is None)):
with Transaction().set_context(_stock_move_split=True):
moves.extend(self.copy([self], {
'quantity': quantity,
'unit': unit.id,
}))
remainder -= quantity
if count:
count -= 1
remainder = unit.round(remainder)
assert remainder >= 0
if remainder:
with Transaction().set_context(_stock_move_split=True):
moves.extend(self.copy([self], {
'quantity': remainder,
'unit': unit.id,
}))
self.write(moves, {
'state': state,
})
return moves
@classmethod
@ModelView.button
def unsplit(cls, moves, _exclude=None):
pool = Pool()
UoM = pool.get('product.uom')
_exclude = _exclude.copy() if _exclude is not None else set()
_exclude.update({
'id', 'create_uid', 'create_date', 'write_uid', 'write_date',
'quantity', 'unit', 'internal_quantity'})
fields_names = {
name for name, field in cls._fields.items()
if not isinstance(field, (fields.Function, fields.MultiValue))}
fields_names -= _exclude
values = cls.read([m.id for m in moves], fields_names=fields_names)
id2values = {v.pop('id'): v for v in values}
groups = []
for move in moves:
for group in groups:
if id2values[move.id] == id2values[group[0].id]:
group.append(move)
break
else:
groups.append([move])
def unit_precision(unit):
return unit.factor * unit.rounding
to_save, to_clear = [], []
for group in groups:
if len(group) <= 1:
continue
quantity = sum(m.internal_quantity for m in group)
unit = min((m.unit for m in group), key=unit_precision)
move, *others = group
move.quantity = UoM.compute_qty(
move.product.default_uom, quantity, unit)
move.unit = unit
to_save.append(move)
to_clear.extend(others)
cls.write(to_clear, {'quantity': 0})
cls.save(to_save)
class SplitMoveStart(ModelView):
__name__ = 'stock.move.split.start'
count = fields.Integer('Counts', help='The limit number of moves.')
quantity = fields.Float("Quantity", digits='unit', required=True)
unit = fields.Many2One(
'product.uom', "Unit", required=True,
domain=[
('category', '=', Eval('uom_category', -1)),
])
uom_category = fields.Many2One(
'product.uom.category', "UoM Category", readonly=True,
help="The category of Unit of Measure.")
class SplitMove(Wizard):
__name__ = 'stock.move.split'
start = StateView('stock.move.split.start',
'stock_split.split_start_view_form', [
Button('Cancel', 'end', 'tryton-cancel'),
Button('Split', 'split', 'tryton-ok', default=True),
])
split = StateTransition()
def default_start(self, fields):
return {
'unit': self.record.unit.id,
'uom_category': self.record.unit.category.id,
}
def transition_split(self):
self.record.split(
self.start.quantity, self.start.unit, self.start.count)
return 'end'
class _ShipmentSplit(ModelView):
@classmethod
def __setup__(cls):
super().__setup__()
cls._buttons.update({
'split_wizard': {
'readonly': Eval('state') != 'draft',
'invisible': Eval('state') != 'draft',
'depends': ['state'],
},
})
@classmethod
@ModelView.button_action('stock_split.wizard_split_shipment')
def split_wizard(cls, shipments):
pass
class ShipmentInReturn(_ShipmentSplit, metaclass=PoolMeta):
__name__ = 'stock.shipment.in.return'
class ShipmentOut(_ShipmentSplit, metaclass=PoolMeta):
__name__ = 'stock.shipment.out'
class ShipmentInternal(_ShipmentSplit, metaclass=PoolMeta):
__name__ = 'stock.shipment.internal'
class SplitShipment(Wizard):
__name__ = 'stock.shipment.split'
start = StateView('stock.shipment.split.start',
'stock_split.shipment_split_start_view_form', [
Button("Cancel", 'end', 'tryton-cancel'),
Button("Split", 'split', 'tryton-ok', default=True),
])
split = StateTransition()
def get_moves(self, shipment):
if shipment.__name__ == 'stock.shipment.out':
return shipment.outgoing_moves
elif shipment.__name__ in {
'stock.shipment.in.return',
'stock.shipment.internal',
}:
return shipment.moves
def default_start(self, fields):
moves = self.get_moves(self.record)
move_ids = [m.id for m in moves if m.state == 'draft']
return {
'domain_moves': move_ids,
}
def transition_split(self):
pool = Pool()
Move = pool.get('stock.move')
shipment = self.record
Shipment = self.model
if shipment.state != 'draft':
raise ValueError("Wrong shipment state")
if not set(self.start.moves).issubset(self.start.domain_moves):
raise ValueError("Invalid moves, %s != %s" % (self.start.moves,
self.start.domain_moves))
if Shipment.__name__ == 'stock.shipment.out':
Move.draft(shipment.inventory_moves)
Move.delete(
[m for m in shipment.inventory_moves if m.state == 'draft'])
shipment, = Shipment.copy(
[shipment],
default={
'reference': lambda data: data['reference'],
'moves': None,
})
Move.write(list(self.start.moves), {'shipment': str(shipment)})
return 'end'
class SplitShipmentStart(ModelView):
__name__ = 'stock.shipment.split.start'
moves = fields.Many2Many(
'stock.move', None, None, "Moves",
domain=[('id', 'in', Eval('domain_moves'))],
help="The selected moves will be sent in the new shipment.")
domain_moves = fields.Many2Many('stock.move', None, None, "Domain Moves")

View File

@@ -0,0 +1,105 @@
<?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.icon" id="stock_split_icon">
<field name="name">tryton-stock-split</field>
<field name="path">icons/tryton-stock-split.svg</field>
</record>
<record model="ir.action.wizard" id="wizard_split_move">
<field name="name">Split Move</field>
<field name="wiz_name">stock.move.split</field>
<field name="model">stock.move</field>
</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.ui.view" id="split_start_view_form">
<field name="model">stock.move.split.start</field>
<field name="type">form</field>
<field name="name">split_start_form</field>
</record>
<record model="ir.model.button" id="move_split_wizard_button">
<field name="model">stock.move</field>
<field name="name">split_wizard</field>
<field name="string">Split</field>
</record>
<record model="ir.model.button" id="move_unsplit_button">
<field name="model">stock.move</field>
<field name="name">unsplit</field>
<field name="string">Unsplit</field>
</record>
<record model="ir.ui.view" id="shipment_in_return_view_form">
<field name="model">stock.shipment.in.return</field>
<field name="inherit" ref="stock.shipment_in_return_view_form"/>
<field name="name">shipment_split_form</field>
</record>
<record model="ir.model.button" id="shipment_in_return_split_wizard_button">
<field name="model">stock.shipment.in.return</field>
<field name="name">split_wizard</field>
<field name="string">Split</field>
</record>
<record model="ir.ui.view" id="shipment_out_view_form">
<field name="model">stock.shipment.out</field>
<field name="inherit" ref="stock.shipment_out_view_form"/>
<field name="name">shipment_split_form</field>
</record>
<record model="ir.model.button" id="shipment_out_split_wizard_button">
<field name="model">stock.shipment.out</field>
<field name="name">split_wizard</field>
<field name="string">Split</field>
</record>
<record model="ir.ui.view" id="shipment_internal_view_form">
<field name="model">stock.shipment.internal</field>
<field name="inherit" ref="stock.shipment_internal_view_form"/>
<field name="name">shipment_split_form</field>
</record>
<record model="ir.model.button" id="shipment_internal_split_wizard_button">
<field name="model">stock.shipment.internal</field>
<field name="name">split_wizard</field>
<field name="string">Split</field>
</record>
<record model="ir.action.wizard" id="wizard_split_shipment">
<field name="name">Split Shipment</field>
<field name="wiz_name">stock.shipment.split</field>
</record>
<record model="ir.ui.view" id="shipment_split_start_view_form">
<field name="model">stock.shipment.split.start</field>
<field name="type">form</field>
<field name="name">shipment_split_start_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,93 @@
====================
Stock Split Shipment
====================
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::
>>> config = activate_modules('stock_split', create_company)
Get currency::
>>> currency = get_currency()
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')
>>> Product = Model.get('product.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::
>>> Location = Model.get('stock.location')
>>> customer_loc, = Location.find([('code', '=', 'CUS')])
>>> output_loc, = Location.find([('code', '=', 'OUT')])
>>> storage_loc, = Location.find([('code', '=', 'STO')])
Create shipment with 2 lines::
>>> Shipment = Model.get('stock.shipment.out')
>>> Move = Model.get('stock.move')
>>> shipment1 = Shipment()
>>> shipment1.customer = customer
>>> for i in range(1, 3):
... move = shipment1.outgoing_moves.new()
... move.product = product
... move.unit = unit
... move.quantity = i
... move.from_location = output_loc
... move.to_location = customer_loc
... move.unit_price = Decimal(1)
... move.currency = currency
>>> shipment1.save()
>>> move1, move2 = shipment1.outgoing_moves
Set to waiting and go back to draft to get inventory moves::
>>> shipment1.click('wait')
>>> len(shipment1.inventory_moves)
2
>>> shipment1.click('draft')
Split shipment::
>>> split_shipment = shipment1.click('split_wizard')
>>> len(split_shipment.form.domain_moves)
2
>>> split_shipment.form.moves.append(Move(move2.id))
>>> split_shipment.execute('split')
>>> shipment2, = Shipment.find([('id', '!=', shipment1.id)])
>>> move, = shipment1.outgoing_moves
>>> assertEqual(move, move1)
>>> len(shipment1.inventory_moves)
0
>>> move, = shipment2.outgoing_moves
>>> assertEqual(move, move2)

View File

@@ -0,0 +1,178 @@
# 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.modules.company.tests import (
CompanyTestMixin, create_company, set_company)
from trytond.pool import Pool
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
class StockSplitTestCase(CompanyTestMixin, ModuleTestCase):
'Test Stock Lot module'
module = 'stock_split'
@with_transaction()
def test_split(self):
'Test split'
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')
unit, = Uom.search([('name', '=', 'Unit')])
template, = Template.create([{
'name': 'Test Split',
'type': 'goods',
'default_uom': unit.id,
}])
product, = Product.create([{
'template': template.id,
}])
input_, = Location.search([('code', '=', 'IN')])
storage, = Location.search([('code', '=', 'STO')])
company = create_company()
with set_company(company):
def create_move(quantity):
move, = Move.create([{
'product': product.id,
'unit': unit.id,
'quantity': quantity,
'from_location': input_.id,
'to_location': storage.id,
'company': company.id,
}])
return move
move = create_move(10)
moves = move.split(5, unit)
self.assertEqual(len(moves), 2)
self.assertEqual([m.quantity for m in moves], [5, 5])
move = create_move(13)
moves = move.split(5, unit)
self.assertEqual(len(moves), 3)
self.assertEqual([m.quantity for m in moves], [5, 5, 3])
move = create_move(7)
moves = move.split(8, unit)
self.assertEqual(moves, [move])
self.assertEqual(move.quantity, 7)
move = create_move(20)
moves = move.split(5, unit, count=2)
self.assertEqual(len(moves), 3)
self.assertEqual([m.quantity for m in moves], [5, 5, 10])
move = create_move(20)
moves = move.split(5, unit, count=4)
self.assertEqual(len(moves), 4)
self.assertEqual([m.quantity for m in moves], [5, 5, 5, 5])
move = create_move(10)
moves = move.split(5, unit, count=3)
self.assertEqual(len(moves), 2)
self.assertEqual([m.quantity for m in moves], [5, 5])
move = create_move(10)
Move.write([move], {
'state': 'assigned',
})
moves = move.split(5, unit)
self.assertEqual(len(moves), 2)
self.assertEqual([m.quantity for m in moves], [5, 5])
self.assertEqual([m.state for m in moves],
['assigned', 'assigned'])
@with_transaction()
def test_unsplit(self):
"Test unsplit"
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')
meter, = Uom.search([('name', '=', "Meter")])
cm, = Uom.search([('name', '=', "Centimeter")])
template, = Template.create([{
'name': 'Test Split',
'type': 'goods',
'default_uom': meter.id,
}])
product, = Product.create([{
'template': template.id,
}])
input_, = Location.search([('code', '=', 'IN')])
storage, = Location.search([('code', '=', 'STO')])
company = create_company()
with set_company(company):
moves = Move.create([{
'product': product,
'unit': meter,
'quantity': 2,
'from_location': input_.id,
'to_location': storage.id,
'company': company.id,
}, {
'product': product,
'unit': cm,
'quantity': 25,
'from_location': input_.id,
'to_location': storage.id,
'company': company.id,
}])
Move.unsplit(moves)
self.assertEqual(moves[0].quantity, 225)
self.assertEqual(moves[0].unit, cm)
self.assertEqual(moves[1].quantity, 0)
@with_transaction()
def test_unsplit_different(self):
"Test unsplit different"
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')
unit, = Uom.search([('name', '=', "Unit")])
template, = Template.create([{
'name': 'Test Split',
'type': 'goods',
'default_uom': unit.id,
}])
product, = Product.create([{
'template': template.id,
}])
input_, = Location.search([('code', '=', 'IN')])
storage, = Location.search([('code', '=', 'STO')])
company = create_company()
with set_company(company):
moves = Move.create([{
'product': product,
'unit': unit,
'quantity': 2,
'from_location': input_.id,
'to_location': storage.id,
'company': company.id,
}, {
'product': product,
'unit': unit,
'quantity': 2,
'from_location': storage.id,
'to_location': input_.id,
'company': company.id,
}])
Move.unsplit(moves)
self.assertEqual(moves[0].quantity, 2)
self.assertEqual(moves[1].quantity, 2)
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,19 @@
[tryton]
version=7.8.1
depends:
ir
stock
xml:
stock.xml
[register]
model:
stock.Move
stock.SplitMoveStart
stock.ShipmentInReturn
stock.ShipmentOut
stock.ShipmentInternal
stock.SplitShipmentStart
wizard:
stock.SplitMove
stock.SplitShipment

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="/form/group[@id='buttons']" position="inside">
<button name="split_wizard" icon="tryton-stock-split"/>
</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="/tree" position="inside">
<button name="split_wizard" string="Split"/>
<button name="unsplit" multiple="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. -->
<data>
<xpath expr="//group[@id='buttons']" position="inside">
<button name="split_wizard"/>
</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. -->
<form col="2">
<image name="tryton-question" xexpand="0" xfill="0"/>
<label string="Select moves to send in a new shipment:"
id="choose" yalign="0.5" xalign="0.0" xexpand="1"/>
<field name="moves" colspan="2" widget="multiselection"/>
</form>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<form col="6">
<label name="count"/>
<field name="count"/>
<label name="quantity"/>
<field name="quantity"/>
<label name="unit"/>
<field name="unit"/>
</form>