first commit
This commit is contained in:
2
modules/sale_subscription_asset/__init__.py
Normal file
2
modules/sale_subscription_asset/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
Binary file not shown.
BIN
modules/sale_subscription_asset/__pycache__/sale.cpython-311.pyc
Normal file
BIN
modules/sale_subscription_asset/__pycache__/sale.cpython-311.pyc
Normal file
Binary file not shown.
Binary file not shown.
48
modules/sale_subscription_asset/locale/bg.po
Normal file
48
modules/sale_subscription_asset/locale/bg.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
50
modules/sale_subscription_asset/locale/ca.po
Normal file
50
modules/sale_subscription_asset/locale/ca.po
Normal file
@@ -0,0 +1,50 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr "Lot de l'actiu"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr "Lot de l'actiu obligatori"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr "Lots de l'actiu"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr "Lots de l'actiu disponibles"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr "Lot"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr "Servei"
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr "Subscripció"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr "Línies de subscripció"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr "Serveis"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
"Les dates de les línies de subscripció amb el mateix lot d'actius no es "
|
||||
"poden solapar."
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr "Servei de subscripció - Lot del actiu"
|
||||
48
modules/sale_subscription_asset/locale/cs.po
Normal file
48
modules/sale_subscription_asset/locale/cs.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
50
modules/sale_subscription_asset/locale/de.po
Normal file
50
modules/sale_subscription_asset/locale/de.po
Normal file
@@ -0,0 +1,50 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr "Charge Abonnement Objekt"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr "Anlage Charge erforderlich"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr "Anlage Charge"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr "Verfügbare Abonnement Objekte"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr "Charge"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr "Dienstleistung"
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr "Abonniert"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr "Abonnementpositionen"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr "Dienstleistungen"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
"Die Datumsangaben von Abonnementpositionen mit demselben Vermögensgegenstand"
|
||||
" dürfen sich nicht überschneiden."
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr "Abonnement Dienstleistung - Charge Abonnement Objekt"
|
||||
50
modules/sale_subscription_asset/locale/es.po
Normal file
50
modules/sale_subscription_asset/locale/es.po
Normal file
@@ -0,0 +1,50 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr "Lote del activo"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr "Lote del activo obligatorio"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr "Lotes del activo"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr "Lotes del activo disponibles"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr "Lote"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr "Servicio"
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr "Suscripción"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr "Lineas de suscripción"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr "Servicios"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
"Las fechas de líneas de suscripción con el mismo lote de activos no pueden "
|
||||
"superponerse."
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr "Servicio de suscripción - Lote del activo"
|
||||
48
modules/sale_subscription_asset/locale/es_419.po
Normal file
48
modules/sale_subscription_asset/locale/es_419.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
48
modules/sale_subscription_asset/locale/et.po
Normal file
48
modules/sale_subscription_asset/locale/et.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
49
modules/sale_subscription_asset/locale/fa.po
Normal file
49
modules/sale_subscription_asset/locale/fa.po
Normal file
@@ -0,0 +1,49 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr "قطعه دارایی"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr "قطعه دارایی مورد نیاز"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr "قطعات دارایی"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr "قطعات دارایی دردسترس"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr "قطعه"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr "خدمات"
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr "مشترک شده است"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr "سطرهای اشتراک"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr "خدمات"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr "قطعه موجودی دارایی - خدمات اشتراک"
|
||||
48
modules/sale_subscription_asset/locale/fi.po
Normal file
48
modules/sale_subscription_asset/locale/fi.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
50
modules/sale_subscription_asset/locale/fr.po
Normal file
50
modules/sale_subscription_asset/locale/fr.po
Normal file
@@ -0,0 +1,50 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr "Lot d'actif"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr "Lot d'actif requis"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr "Lots d'actif"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr "Lot d'actif disponible"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr "Lot"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr "Service"
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr "Abonné"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr "Lignes d'abonnement"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr "Services"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
"Les dates des lignes d’abonnement ayant le même lot d’actifs ne peuvent pas "
|
||||
"se chevaucher."
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr "Service d'abonnement en vente - Lot d'actif de stock"
|
||||
48
modules/sale_subscription_asset/locale/hu.po
Normal file
48
modules/sale_subscription_asset/locale/hu.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
48
modules/sale_subscription_asset/locale/id.po
Normal file
48
modules/sale_subscription_asset/locale/id.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr "Jasa"
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
49
modules/sale_subscription_asset/locale/it.po
Normal file
49
modules/sale_subscription_asset/locale/it.po
Normal file
@@ -0,0 +1,49 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr "Lotto cespiti"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr "Lotto cespiti richiesto"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr "Lotti di cespito"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr "Lotti di cespiti disponibili"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr "Lotto"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr "Servizio"
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr "Abbonato"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr "Righe di abbonamento"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr "Servizi"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr "Servizio in abbonamento - Stock lotto cespiti"
|
||||
48
modules/sale_subscription_asset/locale/lo.po
Normal file
48
modules/sale_subscription_asset/locale/lo.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
48
modules/sale_subscription_asset/locale/lt.po
Normal file
48
modules/sale_subscription_asset/locale/lt.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
50
modules/sale_subscription_asset/locale/nl.po
Normal file
50
modules/sale_subscription_asset/locale/nl.po
Normal file
@@ -0,0 +1,50 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr "Activa lot"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr "Activa lot vereist"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr "Activa loten"
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr "Beschikbare activa loten"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr "Lot"
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr "Dienst"
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr "geabonneerd"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr "Abonnementsregel"
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr "Diensten"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
"De datums van abonnementsregels met dezelfde activakavel mogen niet "
|
||||
"overlappen."
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr "Verkoop abonnementsservice - Voorraad batch activa"
|
||||
48
modules/sale_subscription_asset/locale/pl.po
Normal file
48
modules/sale_subscription_asset/locale/pl.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
48
modules/sale_subscription_asset/locale/pt.po
Normal file
48
modules/sale_subscription_asset/locale/pt.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
48
modules/sale_subscription_asset/locale/ro.po
Normal file
48
modules/sale_subscription_asset/locale/ro.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
48
modules/sale_subscription_asset/locale/ru.po
Normal file
48
modules/sale_subscription_asset/locale/ru.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
48
modules/sale_subscription_asset/locale/sl.po
Normal file
48
modules/sale_subscription_asset/locale/sl.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
48
modules/sale_subscription_asset/locale/tr.po
Normal file
48
modules/sale_subscription_asset/locale/tr.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
48
modules/sale_subscription_asset/locale/uk.po
Normal file
48
modules/sale_subscription_asset/locale/uk.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
48
modules/sale_subscription_asset/locale/zh_CN.po
Normal file
48
modules/sale_subscription_asset/locale/zh_CN.po
Normal file
@@ -0,0 +1,48 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot:"
|
||||
msgid "Asset Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.line,asset_lot_required:"
|
||||
msgid "Asset Lot Required"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots:"
|
||||
msgid "Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service,asset_lots_available:"
|
||||
msgid "Available Asset Lots"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,lot:"
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:sale.subscription.service-stock.lot.asset,service:"
|
||||
msgid "Service"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscribed:"
|
||||
msgid "Subscribed"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_lines:"
|
||||
msgid "Subscription Lines"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.lot,subscription_services:"
|
||||
msgid "Services"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:ir.message,text:msg_asset_line_overlap"
|
||||
msgid ""
|
||||
"The dates of subscription lines with the same asset lot can not overlap."
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:sale.subscription.service-stock.lot.asset,string:"
|
||||
msgid "Sale Subscription Service - Stock Lot Asset"
|
||||
msgstr ""
|
||||
10
modules/sale_subscription_asset/message.xml
Normal file
10
modules/sale_subscription_asset/message.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data grouped="1">
|
||||
<record model="ir.message" id="msg_asset_line_overlap">
|
||||
<field name="text">The dates of subscription lines with the same asset lot can not overlap.</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
121
modules/sale_subscription_asset/sale.py
Normal file
121
modules/sale_subscription_asset/sale.py
Normal file
@@ -0,0 +1,121 @@
|
||||
# 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 sql.operators import Equal
|
||||
|
||||
from trytond.model import Exclude, ModelSQL, ModelView, Workflow, fields
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Bool, Eval, If
|
||||
from trytond.sql.functions import DateRange
|
||||
from trytond.sql.operators import RangeOverlap
|
||||
|
||||
|
||||
class SubscriptionService(metaclass=PoolMeta):
|
||||
__name__ = 'sale.subscription.service'
|
||||
|
||||
asset_lots = fields.Many2Many(
|
||||
'sale.subscription.service-stock.lot.asset',
|
||||
'service', 'lot', "Asset Lots",
|
||||
domain=[
|
||||
('product.type', '=', 'assets'),
|
||||
])
|
||||
asset_lots_available = fields.Many2Many(
|
||||
'sale.subscription.service-stock.lot.asset',
|
||||
'service', 'lot', "Available Asset Lots", readonly=True,
|
||||
domain=[
|
||||
('product.type', '=', 'assets'),
|
||||
],
|
||||
filter=[
|
||||
('subscribed', '=', None),
|
||||
])
|
||||
|
||||
|
||||
class SubscriptionServiceStockLot(ModelSQL):
|
||||
__name__ = 'sale.subscription.service-stock.lot.asset'
|
||||
|
||||
service = fields.Many2One(
|
||||
'sale.subscription.service', "Service",
|
||||
ondelete='CASCADE', required=True)
|
||||
lot = fields.Many2One(
|
||||
'stock.lot', "Lot", ondelete='CASCADE', required=True,
|
||||
domain=[
|
||||
('product.type', '=', 'assets'),
|
||||
])
|
||||
|
||||
|
||||
class Subscription(metaclass=PoolMeta):
|
||||
__name__ = 'sale.subscription'
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('cancelled')
|
||||
def cancel(cls, subscriptions):
|
||||
pool = Pool()
|
||||
SubscriptionLine = pool.get('sale.subscription.line')
|
||||
|
||||
sub_lines = [l for s in subscriptions for l in s.lines if l.asset_lot]
|
||||
SubscriptionLine.write(sub_lines, {'asset_lot': None})
|
||||
|
||||
super().cancel(subscriptions)
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('running')
|
||||
def run(cls, subscriptions):
|
||||
pool = Pool()
|
||||
Line = pool.get('sale.subscription.line')
|
||||
super().run(subscriptions)
|
||||
lines = [l for s in subscriptions for l in s.lines]
|
||||
Line._validate(lines, ['asset_lot'])
|
||||
|
||||
|
||||
class SubscriptionLine(metaclass=PoolMeta):
|
||||
__name__ = 'sale.subscription.line'
|
||||
|
||||
asset_lot = fields.Many2One('stock.lot', "Asset Lot",
|
||||
domain=[
|
||||
('subscription_services', '=', Eval('service', -1)),
|
||||
],
|
||||
states={
|
||||
'required': ((Eval('subscription_state') == 'running')
|
||||
& Eval('asset_lot_required')),
|
||||
'invisible': ~Eval('asset_lot_required'),
|
||||
'readonly': Eval('subscription_state') != 'draft',
|
||||
})
|
||||
asset_lot_required = fields.Function(
|
||||
fields.Boolean("Asset Lot Required"),
|
||||
'on_change_with_asset_lot_required')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
t = cls.__table__()
|
||||
cls._sql_constraints += [
|
||||
('dates_asset_lot_overlap',
|
||||
Exclude(t,
|
||||
(t.asset_lot, Equal),
|
||||
(DateRange(t.start_date, t.end_date, '[)'), RangeOverlap),
|
||||
),
|
||||
'sale_subscription_asset.msg_asset_line_overlap'),
|
||||
]
|
||||
|
||||
cls.quantity.domain = [
|
||||
cls.quantity.domain,
|
||||
If(Bool(Eval('asset_lot')),
|
||||
('quantity', '=', 1),
|
||||
()),
|
||||
]
|
||||
|
||||
@fields.depends('service')
|
||||
def on_change_with_asset_lot_required(self, name=None):
|
||||
if not self.service:
|
||||
return False
|
||||
return bool(self.service.asset_lots)
|
||||
|
||||
@classmethod
|
||||
def copy(cls, lines, default=None):
|
||||
if default is None:
|
||||
default = {}
|
||||
else:
|
||||
default = default.copy()
|
||||
default.setdefault('asset_lot')
|
||||
return super().copy(lines, default)
|
||||
23
modules/sale_subscription_asset/sale.xml
Normal file
23
modules/sale_subscription_asset/sale.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="subscription_service_view_form">
|
||||
<field name="model">sale.subscription.service</field>
|
||||
<field name="inherit" ref="sale_subscription.service_view_form"/>
|
||||
<field name="name">subscription_service_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="subscription_line_view_form">
|
||||
<field name="model">sale.subscription.line</field>
|
||||
<field name="inherit" ref="sale_subscription.subscription_line_view_form"/>
|
||||
<field name="name">subscription_line_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="subscription_line_view_list">
|
||||
<field name="model">sale.subscription.line</field>
|
||||
<field name="inherit" ref="sale_subscription.subscription_line_view_list"/>
|
||||
<field name="name">subscription_line_list</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
73
modules/sale_subscription_asset/stock.py
Normal file
73
modules/sale_subscription_asset/stock.py
Normal file
@@ -0,0 +1,73 @@
|
||||
# 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 fields
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.tools import grouped_slice
|
||||
from trytond.transaction import Transaction
|
||||
|
||||
|
||||
class Lot(metaclass=PoolMeta):
|
||||
__name__ = 'stock.lot'
|
||||
|
||||
subscription_services = fields.Many2Many(
|
||||
'sale.subscription.service-stock.lot.asset',
|
||||
'lot', 'service', "Services")
|
||||
subscription_lines = fields.One2Many(
|
||||
'sale.subscription.line', 'asset_lot', "Subscription Lines")
|
||||
subscribed = fields.Function(
|
||||
fields.Many2One('sale.subscription.line', "Subscribed"),
|
||||
'get_subscribed', searcher='search_subscribed')
|
||||
|
||||
@classmethod
|
||||
def get_subscribed(cls, lots, name):
|
||||
pool = Pool()
|
||||
Date = pool.get('ir.date')
|
||||
SubscriptionLine = pool.get('sale.subscription.line')
|
||||
|
||||
subscribed_lines = {l.id: None for l in lots}
|
||||
date = Transaction().context.get('date', Date.today())
|
||||
for sub_lots in grouped_slice(lots):
|
||||
lines = SubscriptionLine.search([
|
||||
('asset_lot', 'in', [l.id for l in sub_lots]),
|
||||
[
|
||||
('start_date', '<=', date),
|
||||
['OR',
|
||||
('end_date', '=', None),
|
||||
('end_date', '>', date),
|
||||
],
|
||||
]
|
||||
])
|
||||
subscribed_lines.update((s.asset_lot.id, s.id) for s in lines)
|
||||
return subscribed_lines
|
||||
|
||||
@classmethod
|
||||
def search_subscribed(cls, name, clause):
|
||||
pool = Pool()
|
||||
Date = pool.get('ir.date')
|
||||
|
||||
name, operator, value = clause[:3]
|
||||
date = Transaction().context.get('date', Date.today())
|
||||
domain = [
|
||||
('asset_lot', '!=', None),
|
||||
('start_date', '<=', date),
|
||||
['OR',
|
||||
('end_date', '=', None),
|
||||
('end_date', '>', date),
|
||||
],
|
||||
]
|
||||
if '.' in name:
|
||||
_, target_name = name.split('.', 1)
|
||||
domain.append((target_name,) + tuple(clause[1:]))
|
||||
return [('subscription_lines', 'where', domain)]
|
||||
else:
|
||||
if (operator, value) == ('=', None):
|
||||
return [('subscription_lines', 'not where', domain)]
|
||||
elif (operator, value) == ('!=', None):
|
||||
return [('subscription_lines', 'where', domain)]
|
||||
else:
|
||||
if isinstance(value, str):
|
||||
target_name = 'rec_name'
|
||||
else:
|
||||
target_name = 'id'
|
||||
domain.append((target_name,) + tuple(clause[1:]))
|
||||
return [('subscription_lines', 'where', domain)]
|
||||
12
modules/sale_subscription_asset/stock.xml
Normal file
12
modules/sale_subscription_asset/stock.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<tryton>
|
||||
<data>
|
||||
<record model="ir.ui.view" id="stock_lot_view_form">
|
||||
<field name="model">stock.lot</field>
|
||||
<field name="inherit" ref="stock_lot.lot_view_form"/>
|
||||
<field name="name">stock_lot_form</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
2
modules/sale_subscription_asset/tests/__init__.py
Normal file
2
modules/sale_subscription_asset/tests/__init__.py
Normal file
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,158 @@
|
||||
================================
|
||||
Sale Subscription Asset Scenario
|
||||
================================
|
||||
|
||||
Imports::
|
||||
|
||||
>>> import datetime
|
||||
>>> from decimal import Decimal
|
||||
|
||||
>>> from proteus import Model
|
||||
>>> from trytond.modules.account.tests.tools import create_chart, get_accounts
|
||||
>>> from trytond.modules.company.tests.tools import create_company
|
||||
>>> from trytond.tests.tools import activate_modules, assertEqual
|
||||
|
||||
Activate modules::
|
||||
|
||||
>>> config = activate_modules(
|
||||
... 'sale_subscription_asset', create_company, create_chart)
|
||||
|
||||
Get accounts::
|
||||
|
||||
>>> accounts = get_accounts()
|
||||
>>> revenue = accounts['revenue']
|
||||
|
||||
Create party::
|
||||
|
||||
>>> Party = Model.get('party.party')
|
||||
|
||||
>>> customer = Party(name='Customer')
|
||||
>>> customer.save()
|
||||
|
||||
Create some assets::
|
||||
|
||||
>>> ProductTemplate = Model.get('product.template')
|
||||
>>> Uom = Model.get('product.uom')
|
||||
>>> unit, = Uom.find([('name', '=', 'Unit')])
|
||||
|
||||
>>> template = ProductTemplate()
|
||||
>>> template.name = 'Asset'
|
||||
>>> template.default_uom = unit
|
||||
>>> template.type = 'assets'
|
||||
>>> template.list_price = Decimal(1000)
|
||||
>>> template.save()
|
||||
>>> asset, = template.products
|
||||
|
||||
And some lots linked to the asset::
|
||||
|
||||
>>> StockLot = Model.get('stock.lot')
|
||||
>>> lot1 = StockLot(number='001', product=asset)
|
||||
>>> lot1.save()
|
||||
>>> lot2 = StockLot(number='002', product=asset)
|
||||
>>> lot2.save()
|
||||
|
||||
Create subscription recurrence rule sets::
|
||||
|
||||
>>> RecurrenceRuleSet = Model.get('sale.subscription.recurrence.rule.set')
|
||||
|
||||
>>> monthly = RecurrenceRuleSet(name='Monthly')
|
||||
>>> rule, = monthly.rules
|
||||
>>> rule.freq = 'monthly'
|
||||
>>> rule.interval = 1
|
||||
>>> monthly.save()
|
||||
|
||||
Create subscription service::
|
||||
|
||||
>>> template = ProductTemplate()
|
||||
>>> template.name = 'Rental'
|
||||
>>> template.default_uom = unit
|
||||
>>> template.type = 'service'
|
||||
>>> template.list_price = Decimal('10')
|
||||
>>> template.save()
|
||||
>>> product, = template.products
|
||||
|
||||
>>> Service = Model.get('sale.subscription.service')
|
||||
>>> service = Service()
|
||||
>>> service.product = product
|
||||
>>> service.asset_lots.extend([lot1, lot2])
|
||||
>>> service.save()
|
||||
|
||||
>>> sorted(l.number for l in service.asset_lots_available)
|
||||
['001', '002']
|
||||
|
||||
Subscribe::
|
||||
|
||||
>>> Subscription = Model.get('sale.subscription')
|
||||
|
||||
>>> subscription = Subscription()
|
||||
>>> subscription.party = customer
|
||||
>>> subscription.start_date = datetime.date(2016, 1, 1)
|
||||
>>> subscription.invoice_start_date = datetime.date(2016, 2, 1)
|
||||
>>> subscription.invoice_recurrence = monthly
|
||||
>>> line = subscription.lines.new()
|
||||
>>> line.service = service
|
||||
>>> line.quantity = 1
|
||||
|
||||
>>> subscription.click('quote')
|
||||
>>> subscription.click('run')
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
RequiredValidationError: ...
|
||||
|
||||
>>> subscription.click('draft')
|
||||
>>> line, = subscription.lines
|
||||
>>> line.asset_lot = lot1
|
||||
>>> subscription.click('quote')
|
||||
>>> subscription.click('run')
|
||||
|
||||
>>> with config.set_context(date=datetime.date(2017, 1, 1)):
|
||||
... lot1.reload()
|
||||
... subscribed_line = lot1.subscribed
|
||||
... service.reload()
|
||||
... lots_available = sorted(
|
||||
... l.number for l in service.asset_lots_available)
|
||||
>>> assertEqual(subscribed_line, line)
|
||||
>>> lots_available
|
||||
['002']
|
||||
|
||||
Creating an overlapping line won't work::
|
||||
|
||||
>>> overlapping = Subscription()
|
||||
>>> overlapping.party = customer
|
||||
>>> overlapping.start_date = datetime.date(2017, 1, 1)
|
||||
>>> overlapping.invoice_start_date = datetime.date(2017, 2, 1)
|
||||
>>> overlapping.invoice_recurrence = monthly
|
||||
>>> line = overlapping.lines.new()
|
||||
>>> line.service = service
|
||||
>>> line.start_date = datetime.date(2017, 1, 1)
|
||||
>>> line.quantity = 1
|
||||
>>> line.asset_lot = lot1
|
||||
>>> overlapping.save()
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
SQLConstraintError: ....
|
||||
|
||||
Cancelling the subscription will remove lot from the lines thus making it
|
||||
available again::
|
||||
|
||||
>>> another_subscription = Subscription()
|
||||
>>> another_subscription.party = customer
|
||||
>>> another_subscription.start_date = datetime.date(2018, 1, 1)
|
||||
>>> another_subscription.invoice_start_date = datetime.date(2018, 2, 1)
|
||||
>>> another_subscription.invoice_recurrence = monthly
|
||||
>>> line = another_subscription.lines.new()
|
||||
>>> line.service = service
|
||||
>>> line.asset_lot = lot2
|
||||
>>> line.quantity = 1
|
||||
|
||||
>>> another_subscription.click('quote')
|
||||
>>> service.reload()
|
||||
>>> sorted(l.number for l in service.asset_lots_available)
|
||||
[]
|
||||
|
||||
>>> another_subscription.click('cancel')
|
||||
>>> [l.asset_lot for l in another_subscription.lines]
|
||||
[None]
|
||||
>>> service.reload()
|
||||
>>> sorted(l.number for l in service.asset_lots_available)
|
||||
['002']
|
||||
12
modules/sale_subscription_asset/tests/test_module.py
Normal file
12
modules/sale_subscription_asset/tests/test_module.py
Normal file
@@ -0,0 +1,12 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
from trytond.tests.test_tryton import ModuleTestCase
|
||||
|
||||
|
||||
class SaleSubscriptionAssetTestCase(ModuleTestCase):
|
||||
'Test Sale Subscription Asset module'
|
||||
module = 'sale_subscription_asset'
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
8
modules/sale_subscription_asset/tests/test_scenario.py
Normal file
8
modules/sale_subscription_asset/tests/test_scenario.py
Normal 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)
|
||||
18
modules/sale_subscription_asset/tryton.cfg
Normal file
18
modules/sale_subscription_asset/tryton.cfg
Normal file
@@ -0,0 +1,18 @@
|
||||
[tryton]
|
||||
version=7.8.0
|
||||
depends:
|
||||
ir
|
||||
sale_subscription
|
||||
stock_lot
|
||||
xml:
|
||||
sale.xml
|
||||
stock.xml
|
||||
message.xml
|
||||
|
||||
[register]
|
||||
model:
|
||||
stock.Lot
|
||||
sale.SubscriptionServiceStockLot
|
||||
sale.SubscriptionService
|
||||
sale.Subscription
|
||||
sale.SubscriptionLine
|
||||
9
modules/sale_subscription_asset/view/stock_lot_form.xml
Normal file
9
modules/sale_subscription_asset/view/stock_lot_form.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="/form/field[@name='product']" position="after">
|
||||
<label name="subscribed"/>
|
||||
<field name="subscribed"/>
|
||||
</xpath>
|
||||
</data>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="/form/notebook/page[@id='general']/field[@name='unit_price']" position="after">
|
||||
<label name="asset_lot"/>
|
||||
<field name="asset_lot"/>
|
||||
<newline/>
|
||||
</xpath>
|
||||
</data>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="/tree/field[@name='service']" position="after">
|
||||
<field name="asset_lot"/>
|
||||
</xpath>
|
||||
</data>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="/form/field[@name='consumption_delay']" position="after">
|
||||
<field name="asset_lots" colspan="4"/>
|
||||
<field name="asset_lots_available" colspan="4"/>
|
||||
</xpath>
|
||||
</data>
|
||||
Reference in New Issue
Block a user