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,38 @@
# 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
sale_invoice_grouping_method = fields.Selection(
'get_sale_invoice_grouping_methods', "Sale Invoice Grouping Method",
help="The default invoice grouping method for new customers.")
@classmethod
def get_sale_invoice_grouping_methods(cls):
pool = Pool()
Party = pool.get('party.party')
field_name = 'sale_invoice_grouping_method'
return Party.fields_get([field_name])[field_name]['selection']
class Configuration(metaclass=PoolMeta):
__name__ = 'sale.configuration'
sale_invoice_grouping_method = fields.MultiValue(
sale_invoice_grouping_method)
get_sale_invoice_grouping_methods = get_sale_invoice_grouping_methods
@classmethod
def multivalue_model(cls, field):
pool = Pool()
if field == 'sale_invoice_grouping_method':
return pool.get('sale.configuration.sale_method')
return super().multivalue_model(field)
class ConfigurationSaleMethod(metaclass=PoolMeta):
__name__ = 'sale.configuration.sale_method'
sale_invoice_grouping_method = sale_invoice_grouping_method
get_sale_invoice_grouping_methods = get_sale_invoice_grouping_methods

View File

@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="sale_configuration_view_form">
<field name="model">sale.configuration</field>
<field name="inherit" ref="sale.sale_configuration_view_form"/>
<field name="name">configuration_form</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,54 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr ""
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr ""
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr ""
#, fuzzy
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Няма"
#, fuzzy
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Стандартен"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Mètode d'agrupació factures de venda"
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "Mètodes d'agrupació factures de venda"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Tercer"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Mètode d'agrupació factures de venda"
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Mètode d'agrupació factures de venda"
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Mètode d'agrupació factures de venda"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "El mètode d'agrupació de factures per als nous clients."
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "El mètode d'agrupació de factures per als nous clients."
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "Mètode d'agrupació factures de venda"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Cap"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Estàndard"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr "Facturació"

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr ""
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr ""
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr ""
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Gruppierungsmethode Rechnungsstellung (Verkauf)"
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "Gruppierungsmethode Rechnungsstellung (Verkauf)"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Partei"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Gruppierungsmethode Rechnungsstellung (Verkauf)"
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Gruppierungsmethode Rechnungsstellung (Verkauf)"
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Gruppierungsmethode Rechnungsstellung (Verkauf)"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "Die Standard-Methode für gruppierte Rechnungen an neue Kunden."
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "Die Standard-Methode für gruppierte Rechnungen an neue Kunden."
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "Partei Verkauf Rechnung Gruppierungsmethode"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Keine"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Standard"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr "Rechnungsstellung"

View File

@@ -0,0 +1,54 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Método agrupación facturas de venta"
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "Método agrupación facturas de venta"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Tercero"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Método agrupación facturas de venta"
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Método agrupación facturas de venta"
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Método agrupación facturas de venta"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
"El método de agrupación de facturas por defecto para los nuevos clientes."
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
"El método de agrupación de facturas por defecto para los nuevos clientes."
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "Método agrupación facturas de venta"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Ninguno"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Estándar"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr "Facturación"

View File

@@ -0,0 +1,53 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Método de agrupación de facturas de venta"
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "Método de agrupación de facturas de venta"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr ""
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Método de agrupación de facturas de venta"
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Método de agrupación de facturas de venta"
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Método de agrupación de facturas de venta"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
#, fuzzy
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "Método de agrupación de facturas de venta"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr ""
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,53 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Müügiarvete grupeerimise meetod"
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "Müügiarvete grupeerimise meetodid"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Osapool"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Müügiarvete grupeerimise meetod"
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Müügiarvete grupeerimise meetod"
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Müügiarvete grupeerimise meetod"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "Vaikimisi uute klientide arvete grupeerimise meetod."
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "Vaikimisi uute klientide arvete grupeerimise meetod."
#, fuzzy
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "Osapoole müügiarvete grupeerimise meetod"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Mitte"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Standard"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr "Arveldamine"

View File

@@ -0,0 +1,53 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "متد گروهبندی صورتحساب فروش"
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "متدهای گروهبندی صورتحساب فروش"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "نهاد/سازمان"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "متد گروهبندی صورتحساب فروش"
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "متد گروهبندی صورتحساب فروش"
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "متد گروهبندی صورتحساب فروش"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "متد گروهبندی صورتحساب پیش فرض برای مشتریان جدید."
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "متد گروهبندی صورتحساب پیش فرض برای مشتریان جدید."
#, fuzzy
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "متد گروهبندی صورتحساب فروش نهاد/سازمان"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "هیجکدام"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "استاندارد"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr "فاکتورسازی"

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr ""
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr ""
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr ""
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,56 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Méthode de regroupement des factures de vente"
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "Méthodes de regroupement des factures de vente"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Tiers"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Méthode de regroupement des factures de vente"
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Méthode de regroupement des factures de vente"
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Méthode de regroupement des factures de vente"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
"La méthode par défaut de regroupement des factures pour les nouveaux "
"clients."
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
"La méthode par défaut de regroupement des factures pour les nouveaux "
"clients."
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "Méthode de regroupement des factures de vente de tiers"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Aucune"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Standard"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr "Facturation"

View File

@@ -0,0 +1,53 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr ""
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr ""
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr ""
#, fuzzy
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Nincs"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr ""
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr ""
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Pihak"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Tidak ada"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Standar"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,57 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Metodo di raggruppamento in fattura vendita"
#, fuzzy
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "Metodo di raggruppamento in fattura vendita"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Controparte"
#, fuzzy
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Metodo di raggruppamento in fattura vendita"
#, fuzzy
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Metodo di raggruppamento in fattura vendita"
#, fuzzy
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Metodo di raggruppamento in fattura vendita"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
#, fuzzy
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "Metodo di raggruppamento in fattura vendita"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Nessuno"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Standard"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr "fatturazione"

View File

@@ -0,0 +1,57 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "ວິທີຮວມກຸ່ມໃບເກັບເງິນ"
#, fuzzy
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "ວິທີຮວມກຸ່ມໃບເກັບເງິນ"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr ""
#, fuzzy
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "ວິທີຮວມກຸ່ມໃບເກັບເງິນ"
#, fuzzy
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "ວິທີຮວມກຸ່ມໃບເກັບເງິນ"
#, fuzzy
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "ວິທີຮວມກຸ່ມໃບເກັບເງິນ"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
#, fuzzy
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "ວິທີຮວມກຸ່ມໃບເກັບເງິນ"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "ບໍ່ມີ"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "ມາດຕະຖານ"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr "ການສ້າງໃບເກັບເງິນ"

View File

@@ -0,0 +1,55 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Pardavimo sąskaitų faktūrų grupavimo būdas"
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "Pardavimo sąskaitų faktūrų grupavimo būdai"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr ""
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Pardavimo sąskaitų faktūrų grupavimo būdas"
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Pardavimo sąskaitų faktūrų grupavimo būdas"
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Pardavimo sąskaitų faktūrų grupavimo būdas"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
"Numatytasis pardavimo sąskaitų faktūrų grupavimo būdas naujiems pirkėjams."
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
"Numatytasis pardavimo sąskaitų faktūrų grupavimo būdas naujiems pirkėjams."
#, fuzzy
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "Pardavimo sąskaitų faktūrų grupavimo būdas kontrahentui"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr ""
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Verzamelmethode verkoopfactuur"
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "Verzamelmethode verkoopfactuur"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Relatie"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Verzamelmethode verkoopfactuur"
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Verzamelmethode verkoopfactuur"
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Verzamelmethode verkoopfactuur"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "De standaard factuurgroeperingsmethode voor nieuwe klanten."
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "De standaard factuurgroeperingsmethode voor nieuwe klanten."
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "Relatie verkoopfactuur groepeer methode"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Geen"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Standaard"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr "Facturering"

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr ""
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Strona"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Brak"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Standardowy"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,53 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Método de Agrupamento de Fatura de Venda"
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "Fatura de Venda Métodos de Agrupamentos"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Pessoa"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Fatura de Venda Método de Agrupamento"
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Método de Agrupamento de Fatura de Venda"
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Método de Agrupamento de Fatura de Venda"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "O método padrão para o agrupamento de faturas de novos clientes."
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr "O método padrão para o agrupamento de faturas de novos clientes."
#, fuzzy
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "Fatura de Venda Métodos de Agrupamentos da Pessoa"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Nenhum"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Padrão"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr "Faturamento"

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr ""
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Parte"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr ""
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,54 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr ""
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr ""
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr ""
#, fuzzy
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Отсутствует"
#, fuzzy
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Стандартный"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,55 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Način združevanja izdanih računov"
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr "Načini združevanja izdanih računov"
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr "Partner"
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Način združevanje izdanih računov"
#, fuzzy
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Način združevanja izdanih računov"
#, fuzzy
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr "Način združevanja izdanih računov"
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
#, fuzzy
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr "Način združevanja izdanih računov partnerja"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr "Brez"
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr "Standardno"
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr "Izdajanje računov"

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr ""
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr ""
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr ""
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr ""
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr ""
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr ""
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,52 @@
#
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
msgctxt "field:party.party,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:party.party,sale_invoice_grouping_methods:"
msgid "Sale Invoice Grouping Methods"
msgstr ""
msgctxt "field:party.party.sale_invoice_grouping_method,party:"
msgid "Party"
msgstr ""
msgctxt ""
"field:party.party.sale_invoice_grouping_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "field:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "Sale Invoice Grouping Method"
msgstr ""
msgctxt "help:sale.configuration,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "help:sale.configuration.sale_method,sale_invoice_grouping_method:"
msgid "The default invoice grouping method for new customers."
msgstr ""
msgctxt "model:party.party.sale_invoice_grouping_method,string:"
msgid "Party Sale Invoice Grouping Method"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "None"
msgstr ""
msgctxt "selection:party.party,sale_invoice_grouping_method:"
msgid "Standard"
msgstr ""
msgctxt "view:party.party:"
msgid "Invoicing"
msgstr ""

View File

@@ -0,0 +1,39 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of this
# repository contains the full copyright notices and license terms.
from trytond.model import ModelSQL, ValueMixin, fields
from trytond.pool import Pool, PoolMeta
class Party(metaclass=PoolMeta):
__name__ = 'party.party'
sale_invoice_grouping_method = fields.MultiValue(fields.Selection([
(None, 'None'),
('standard', 'Standard'),
],
'Sale Invoice Grouping Method'))
sale_invoice_grouping_methods = fields.One2Many(
'party.party.sale_invoice_grouping_method', 'party',
"Sale Invoice Grouping Methods")
@classmethod
def default_sale_invoice_grouping_method(cls, **pattern):
pool = Pool()
Configuration = pool.get('sale.configuration')
return Configuration(1).get_multivalue(
'sale_invoice_grouping_method', **pattern)
class PartySaleInvoiceGroupingMethod(ModelSQL, ValueMixin):
__name__ = 'party.party.sale_invoice_grouping_method'
party = fields.Many2One(
'party.party', "Party", ondelete='CASCADE')
sale_invoice_grouping_method = fields.Selection(
'get_sale_invoice_grouping_methods', "Sale Invoice Grouping Method")
@classmethod
def get_sale_invoice_grouping_methods(cls):
pool = Pool()
Party = pool.get('party.party')
field_name = 'sale_invoice_grouping_method'
return Party.fields_get([field_name])[field_name]['selection']

View File

@@ -0,0 +1,12 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<tryton>
<data>
<record model="ir.ui.view" id="party_view_form">
<field name="model">party.party</field>
<field name="inherit" ref="party.party_view_form"/>
<field name="name">party_form</field>
</record>
</data>
</tryton>

View File

@@ -0,0 +1,88 @@
# 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 itertools import groupby
from trytond.pool import PoolMeta
from trytond.transaction import Transaction
class InvoiceGroupingMixin:
__slots__ = ()
@property
def invoice_grouping_method(self):
party = self.invoice_party or self.party
return party.sale_invoice_grouping_method
@property
def _invoice_grouping_origins(self):
return ['sale.line', 'sale.rental.line']
def _get_invoice_grouping_fields(self, invoice):
return {'state', 'company', 'type', 'journal', 'party',
'invoice_address', 'currency', 'account', 'payment_term'}
def _get_grouped_invoice_order(self):
"Returns the order clause used to find invoice that should be grouped"
return None
def _get_grouped_invoice_domain(self, invoice):
"Returns a domain that will find invoices that should be grouped"
Invoice = invoice.__class__
invoice_domain = [
['OR'] + [
('lines.origin', 'like', f'{o},%')
for o in self._invoice_grouping_origins],
]
fields = self._get_invoice_grouping_fields(invoice)
defaults = Invoice.default_get(fields, with_rec_name=False)
for field in fields:
invoice_domain.append(
(field, '=', getattr(invoice, field, defaults.get(field)))
)
return invoice_domain
def _get_invoice(self):
transaction = Transaction()
context = transaction.context
invoice = super()._get_invoice()
if (not context.get('skip_grouping', False)
and self.invoice_grouping_method):
with transaction.set_context(skip_grouping=True):
invoice = self._get_invoice()
Invoice = invoice.__class__
domain = self._get_grouped_invoice_domain(invoice)
order = self._get_grouped_invoice_order()
grouped_invoices = Invoice.search(domain, order=order, limit=1)
if grouped_invoices:
invoice, = grouped_invoices
return invoice
class Sale(InvoiceGroupingMixin, metaclass=PoolMeta):
__name__ = 'sale.sale'
@classmethod
def _process_invoice(cls, sales):
for method, sales in groupby(
sales, lambda s: s.invoice_grouping_method):
if method:
for sale in sales:
super()._process_invoice([sale])
else:
super()._process_invoice(list(sales))
class Rental(InvoiceGroupingMixin, metaclass=PoolMeta):
__name__ = 'sale.rental'
@classmethod
def invoice(cls, rentals):
for method, rentals in groupby(
rentals, lambda r: r.invoice_grouping_method):
if method:
for rental in rentals:
super().invoice([rental])
else:
super().invoice(list(rentals))

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,183 @@
==============================
Sale Invoice Grouping Scenario
==============================
Imports::
>>> from decimal import Decimal
>>> from proteus import Model
>>> from trytond.modules.account.tests.tools import (
... create_chart, create_fiscalyear, get_accounts)
>>> from trytond.modules.account_invoice.tests.tools import (
... create_payment_term, set_fiscalyear_invoice_sequences)
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.tests.tools import activate_modules
Activate modules::
>>> config = activate_modules(
... 'sale_invoice_grouping', create_company, create_chart)
Create fiscal year::
>>> fiscalyear = set_fiscalyear_invoice_sequences(create_fiscalyear())
>>> fiscalyear.click('create_period')
Get accounts::
>>> accounts = get_accounts()
>>> revenue = accounts['revenue']
>>> expense = accounts['expense']
Create parties::
>>> Party = Model.get('party.party')
>>> customer = Party(name='Customer')
>>> customer.save()
>>> customer_grouped = Party(name='Customer Grouped',
... sale_invoice_grouping_method='standard')
>>> customer_grouped.save()
Create account category::
>>> ProductCategory = Model.get('product.category')
>>> account_category = ProductCategory(name="Account Category")
>>> account_category.accounting = True
>>> account_category.account_expense = expense
>>> account_category.account_revenue = revenue
>>> account_category.save()
Create product::
>>> ProductUom = Model.get('product.uom')
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
>>> ProductTemplate = Model.get('product.template')
>>> template = ProductTemplate()
>>> template.name = 'product'
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.salable = True
>>> template.list_price = Decimal('10')
>>> template.account_category = account_category
>>> template.save()
>>> product, = template.products
Create payment term::
>>> payment_term = create_payment_term()
>>> payment_term.save()
Sale some products::
>>> Sale = Model.get('sale.sale')
>>> sale = Sale()
>>> sale.party = customer
>>> sale.payment_term = payment_term
>>> sale.invoice_method = 'order'
>>> sale_line = sale.lines.new()
>>> sale_line.product = product
>>> sale_line.quantity = 2.0
>>> sale.click('quote')
>>> sale.click('confirm')
>>> sale.state
'processing'
Make another sale::
>>> sale, = Sale.duplicate([sale])
>>> sale.click('quote')
>>> sale.click('confirm')
>>> sale.state
'processing'
Check the invoices::
>>> Invoice = Model.get('account.invoice')
>>> invoices = Invoice.find([('party', '=', customer.id)])
>>> len(invoices)
2
>>> invoice = invoices[0]
>>> invoice.type
'out'
>>> invoice.click('post')
>>> invoice.state
'posted'
Now we'll use the same scenario with the grouped customer::
>>> sale = Sale()
>>> sale.party = customer_grouped
>>> sale.payment_term = payment_term
>>> sale.invoice_method = 'order'
>>> sale_line = sale.lines.new()
>>> sale_line.product = product
>>> sale_line.quantity = 1.0
>>> sale.click('quote')
>>> sale.click('confirm')
>>> sale.state
'processing'
Make another sale::
>>> sale = Sale()
>>> sale.party = customer_grouped
>>> sale.payment_term = payment_term
>>> sale.invoice_method = 'order'
>>> sale_line = sale.lines.new()
>>> sale_line.product = product
>>> sale_line.quantity = 2.0
>>> sale.click('quote')
>>> sale.click('confirm')
>>> sale.state
'processing'
Check the invoices::
>>> invoices = Invoice.find([
... ('party', '=', customer_grouped.id),
... ('state', '=', 'draft'),
... ])
>>> len(invoices)
1
>>> invoice, = invoices
>>> len(invoice.lines)
2
>>> invoice.lines[0].quantity
1.0
>>> invoice.lines[1].quantity
2.0
>>> invoice.click('post')
>>> invoice.state
'posted'
Create a manual invoice::
>>> manual_invoice = Invoice()
>>> manual_invoice.party = customer_grouped
>>> manual_invoice.payment_term = payment_term
>>> manual_invoice.save()
Check that a new sale won't be grouped with the manual invoice::
>>> sale = Sale()
>>> sale.party = customer_grouped
>>> sale.payment_term = payment_term
>>> sale.invoice_method = 'order'
>>> sale_line = sale.lines.new()
>>> sale_line.product = product
>>> sale_line.quantity = 3.0
>>> sale.click('quote')
>>> sale.click('confirm')
>>> sale.state
'processing'
Check the invoices::
>>> invoices = Invoice.find([
... ('party', '=', customer_grouped.id),
... ('state', '=', 'draft'),
... ])
>>> len(invoices)
2

View File

@@ -0,0 +1,96 @@
=======================================
Sale Invoice Grouping Multiple Scenario
=======================================
Imports::
>>> from decimal import Decimal
>>> from proteus import Model
>>> from trytond.modules.account.tests.tools import (
... create_chart, create_fiscalyear, get_accounts)
>>> from trytond.modules.account_invoice.tests.tools import (
... set_fiscalyear_invoice_sequences)
>>> from trytond.modules.company.tests.tools import create_company
>>> from trytond.tests.tools import activate_modules
Activate modules::
>>> config = activate_modules(
... 'sale_invoice_grouping', create_company, create_chart)
>>> Party = Model.get('party.party')
>>> ProductCategory = Model.get('product.category')
>>> ProductUom = Model.get('product.uom')
>>> ProductTemplate = Model.get('product.template')
>>> Sale = Model.get('sale.sale')
>>> Invoice = Model.get('account.invoice')
Create fiscal year::
>>> fiscalyear = set_fiscalyear_invoice_sequences(create_fiscalyear())
>>> fiscalyear.click('create_period')
Get accounts::
>>> accounts = get_accounts()
Create parties::
>>> customer = Party(
... name="Customer",
... sale_invoice_grouping_method='standard')
>>> customer.save()
Create account category::
>>> account_category = ProductCategory(name="Account Category")
>>> account_category.accounting = True
>>> account_category.account_revenue = accounts['revenue']
>>> account_category.save()
Create product::
>>> unit, = ProductUom.find([('name', '=', 'Unit')])
>>> template = ProductTemplate()
>>> template.name = 'product'
>>> template.default_uom = unit
>>> template.type = 'goods'
>>> template.salable = True
>>> template.list_price = Decimal('10')
>>> template.account_category = account_category
>>> template.save()
>>> product, = template.products
Sale some products::
>>> sale = Sale()
>>> sale.party = customer
>>> sale.invoice_method = 'order'
>>> sale_line = sale.lines.new()
>>> sale_line.product = product
>>> sale_line.quantity = 2.0
>>> sale.click('quote')
>>> sales = [sale]
Make another sale::
>>> sale, = Sale.duplicate([sale])
>>> sale.click('quote')
>>> sales.append(sale)
Confirm both sales::
>>> Sale.click(sales, 'confirm')
>>> state, = set(s.state for s in sales)
>>> state
'processing'
Check the invoices::
>>> invoice, = Invoice.find([('party', '=', customer.id)])
Deleting the invoice keeps same grouping::
>>> invoice.delete()
>>> invoice, = Invoice.find([('party', '=', customer.id)])

View File

@@ -0,0 +1,12 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.tests.test_tryton import ModuleTestCase
class SaleInvoiceGroupingTestCase(ModuleTestCase):
'Test Sale Invoice Grouping module'
module = 'sale_invoice_grouping'
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,25 @@
[tryton]
version=7.8.0
depends:
ir
res
party
account_invoice
sale
extras_depend:
sale_rental
xml:
party.xml
configuration.xml
[register]
model:
party.Party
party.PartySaleInvoiceGroupingMethod
configuration.Configuration
configuration.ConfigurationSaleMethod
sale.Sale
[register sale_rental]
model:
sale.Rental

View File

@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="/form/field[@name='sale_shipment_method']" position="after">
<label name="sale_invoice_grouping_method"/>
<field name="sale_invoice_grouping_method"/>
</xpath>
</data>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<data>
<xpath expr="/form/notebook/page[@id='sale']" position="inside">
<separator string="Invoicing" colspan="4" id="invoicing"/>
<label name="sale_invoice_grouping_method"/>
<field name="sale_invoice_grouping_method"/>
</xpath>
</data>