first commit

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

View File

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

View File

@@ -0,0 +1 @@
<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,51 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Количество"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Категория мер. ед."
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr ""
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Split Production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
#, fuzzy
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Отказване"
#, fuzzy
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,47 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "Comptador"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Quantitat"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr "Unitat"
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Categoria de la UdM"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "El nombre de produccions límit"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr "La categoria de la unitat de mesura."
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Divideix producció"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Divideix"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr "Inici dividir produccions"
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Cancel·la"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Divideix"

View File

@@ -0,0 +1,48 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr ""
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr ""
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Split Production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr ""
#, fuzzy
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,47 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "Anzahl"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Menge"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr "Einheit"
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Maßeinheitenkategorie"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "Die maximale Zahl der Produktionsaufträge"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr "Die Kategorie der Maßeinheit."
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Produktionsauftrag aufteilen"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Aufteilen"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr "Produktion aufteilen Start"
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Abbrechen"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Aufteilen"

View File

@@ -0,0 +1,47 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "Contador"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Cantidad"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr "Unidad"
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Categoría de UdM"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "El número de producciones límite"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr "La categoria de la unidad de medida."
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Dividir producción"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Dividir"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr "Inicio dividir producciones"
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Dividir"

View File

@@ -0,0 +1,47 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr ""
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "El número límite de producciones"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr ""
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr ""

View File

@@ -0,0 +1,48 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "Loend"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Kogus"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Mõõtühiku kategooria"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "Tootmiste piirnumber"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Tootmise poolitamine"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Poolitamine"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Tühista"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Poolitamine"

View File

@@ -0,0 +1,48 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "شمارش"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "مقدار/تعداد"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "دسته بندی واحد اندازه گیری"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "تعداد محدود تولیدات"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "تقسیم تولید"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "انصراف"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "تقسیم"

View File

@@ -0,0 +1,48 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr ""
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr ""
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Split Production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr ""
#, fuzzy
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,47 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "Décompte"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Quantité"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr "Unité"
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Catégorie d'UDM"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "Le nombre limite de productions"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr "La catégorie dunité de mesure."
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Diviser la production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Diviser"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr "Diviser la production début"
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Annuler"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Diviser"

View File

@@ -0,0 +1,51 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Mennyiség"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Egység kategória"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr ""
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Split Production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
#, fuzzy
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Mégse"
#, fuzzy
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Beosztás"

View File

@@ -0,0 +1,47 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr ""
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr ""
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr ""
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Batal"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr ""

View File

@@ -0,0 +1,48 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "Conteggio"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Quantità"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Categoria UdM"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "Il numero limite di produzioni"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Produzione separata"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Separa"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Annulla"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Dividi"

View File

@@ -0,0 +1,49 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "ນັບ"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "ຈຳນວນ"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "ໝວດຫົວໜ່ວຍ"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "ຈຳນວນຈຳກັດຂອງການຜະລິດ"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Split Production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "ຍົກເລີກ"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "ແຍກ"

View File

@@ -0,0 +1,48 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr ""
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr ""
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Split Production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr ""
#, fuzzy
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,47 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "aantal"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Hoeveelheid"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr "Maateenheid"
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Maateenheid categorie"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "Het limiet aantal producties"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr "De categorie van de maateenheid."
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Productie opsplitsen"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "opsplitsen"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr "Productie splitsen start"
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Annuleer"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "opsplitsen"

View File

@@ -0,0 +1,50 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr ""
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Ilość"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Kategoria jednostki miary"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr ""
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Split Production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Anuluj"
#, fuzzy
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,49 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "Contagem"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Quantidade"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Categoria da UDM"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "Limite para o número de produções"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Split Production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Cancelar"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Dividir"

View File

@@ -0,0 +1,47 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr ""
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr ""
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr ""
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr ""

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
#, fuzzy
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "Кол-во"
#, fuzzy
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Кол-во"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Категория ед. измерения"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr ""
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Split Production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
#, fuzzy
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Отменить"
#, fuzzy
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,48 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "Zgornja meja"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Količina"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Kategorija ME"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "Zgornja meja delitve proizvodnje"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Razdelitev proizvodnje"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Razdeli"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Prekliči"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Razdeli"

View File

@@ -0,0 +1,49 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr "Adet"
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr "Miktar"
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
#, fuzzy
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr "Ölçü Birimi Kategorisi"
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr "Üretimler sayısı limiti"
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
#, fuzzy
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Split Production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "Vazgeç"
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Bölme"

View File

@@ -0,0 +1,47 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr ""
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr ""
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr ""
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr ""
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr ""
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr ""

View File

@@ -0,0 +1,49 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:production.split.start,count:"
msgid "Count"
msgstr ""
msgctxt "field:production.split.start,quantity:"
msgid "Quantity"
msgstr ""
msgctxt "field:production.split.start,unit:"
msgid "Unit"
msgstr ""
msgctxt "field:production.split.start,uom_category:"
msgid "UoM Category"
msgstr ""
msgctxt "help:production.split.start,count:"
msgid "The limit number of productions"
msgstr ""
msgctxt "help:production.split.start,uom_category:"
msgid "The category of Unit of Measure."
msgstr ""
msgctxt "model:ir.action,name:wizard_split_production"
msgid "Split Production"
msgstr "Split Production"
msgctxt "model:ir.model.button,string:production_split_wizard_button"
msgid "Split"
msgstr "Split"
msgctxt "model:production.split.start,string:"
msgid "Production Split Start"
msgstr ""
#, fuzzy
msgctxt "wizard_button:production.split,start,end:"
msgid "Cancel"
msgstr "取消"
#, fuzzy
msgctxt "wizard_button:production.split,start,split:"
msgid "Split"
msgstr "Split"

View File

@@ -0,0 +1,108 @@
# 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.wizard import Button, StateTransition, StateView, Wizard
class Production(metaclass=PoolMeta):
__name__ = 'production'
@classmethod
def __setup__(cls):
super().__setup__()
cls._buttons.update({
'split_wizard': {
'invisible': (~Eval('state').in_(['request', 'draft'])
| ~Eval('bom') | ~Eval('quantity', 0)),
'depends': ['state', 'bom', 'quantity'],
},
})
@classmethod
@ModelView.button_action('production_split.wizard_split_production')
def split_wizard(cls, productions):
pass
def split(self, quantity, unit, count=None):
"""
Split production into productions of quantity.
If count is not defined, the production will be split until remainder
is less than quantity.
Return the split productions
"""
pool = Pool()
Uom = pool.get('product.uom')
productions = [self]
n_productions = 0
remainder = Uom.compute_qty(self.unit, self.quantity, unit)
if remainder <= quantity:
return productions
self.quantity = quantity
self.unit = unit
self.save()
remainder -= quantity
if count:
count -= 1
while (remainder > quantity
and (count or count is None)):
n_productions += 1
remainder -= quantity
remainder = unit.round(remainder)
if count:
count -= 1
if n_productions:
productions.extend(self.copy([self] * n_productions, {
'reference': lambda data: data['reference'],
'quantity': quantity,
'unit': unit.id,
'inputs': None,
'outputs': None,
}))
assert remainder >= 0
if remainder:
productions.extend(self.copy([self], {
'quantity': remainder,
'unit': unit.id,
}))
for production in productions:
production.explode_bom()
self.__class__.save(productions)
return productions
class SplitProduction(Wizard):
__name__ = 'production.split'
start = StateView('production.split.start',
'production_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, count=self.start.count)
return 'end'
class SplitProductionStart(ModelView):
__name__ = 'production.split.start'
count = fields.Integer('Count', help='The limit number of productions')
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.")

View File

@@ -0,0 +1,34 @@
<?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="production_split_icon">
<field name="name">tryton-production-split</field>
<field name="path">icons/tryton-production-split.svg</field>
</record>
<record model="ir.action.wizard" id="wizard_split_production">
<field name="name">Split Production</field>
<field name="wiz_name">production.split</field>
<field name="model">production</field>
</record>
<record model="ir.ui.view" id="production_view_form">
<field name="model">production</field>
<field name="inherit" ref="production.production_view_form"/>
<field name="name">production_form</field>
</record>
<record model="ir.ui.view" id="split_start_view_form">
<field name="model">production.split.start</field>
<field name="type">form</field>
<field name="name">split_start_form</field>
</record>
<record model="ir.model.button" id="production_split_wizard_button">
<field name="model">production</field>
<field name="name">split_wizard</field>
<field name="string">Split</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,52 @@
=========================
Production Split 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
Activate modules::
>>> config = activate_modules('production_split', create_company)
>>> ProductTemplate = Model.get('product.template')
>>> ProductUom = Model.get('product.uom')
>>> Production = Model.get('production')
Create product::
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
>>> template = ProductTemplate()
>>> template.name = 'product'
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.producible = True
>>> template.list_price = Decimal(20)
>>> template.save()
>>> product, = template.products
Create a production::
>>> production = Production()
>>> production.product = product
>>> production.quantity = 10
>>> production.save()
Split the production::
>>> split_production = production.click('split_wizard')
>>> split_production.form.quantity = 4
>>> split_production.form.count = 1
>>> split_production.execute('split')
>>> production2, = Production.find([('id', '!=', production.id)])
>>> production.quantity
4.0
>>> production2.quantity
6.0

View File

@@ -0,0 +1,45 @@
# 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 unittest.mock import patch
from trytond.pool import Pool
from trytond.tests.test_tryton import ModuleTestCase, with_transaction
class ProductionSplitTestCase(ModuleTestCase):
'Test Production Split module'
module = 'production_split'
@with_transaction()
def test_split(self):
'Test split'
pool = Pool()
Uom = pool.get('product.uom')
Production = pool.get('production')
unit, = Uom.search([('name', '=', 'Unit')])
with patch.object(Production, 'save'), \
patch.object(Production, 'explode_bom'), \
patch.object(Production, 'copy') as copy:
copy.side_effect = lambda l, values: [
Production(**values) for r in l]
for quantity, quantity_split, count, quantities in [
(10, 5, None, [5, 5]),
(13, 5, None, [5, 5, 3]),
(7, 8, None, [7]),
(20, 5, 2, [5, 5, 10]),
(20, 5, 4, [5, 5, 5, 5]),
]:
production = Production()
production.quantity = quantity
production.unit = unit
productions = production.split(
quantity_split, unit, count=count)
self.assertEqual(
[p.quantity for p in productions], quantities)
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,14 @@
[tryton]
version=7.8.1
depends:
ir
production
xml:
production.xml
[register]
model:
production.Production
production.SplitProductionStart
wizard:
production.SplitProduction

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']/button[@name='draft']" position="after">
<button name="split_wizard" icon="tryton-production-split"/>
</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. -->
<form col="6">
<label name="count"/>
<field name="count"/>
<label name="quantity"/>
<field name="quantity"/>
<label name="unit"/>
<field name="unit"/>
</form>