first commit
This commit is contained in:
2
modules/account_stock_continental/__init__.py
Normal file
2
modules/account_stock_continental/__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.
Binary file not shown.
47
modules/account_stock_continental/account.py
Normal file
47
modules/account_stock_continental/account.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# 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
|
||||
|
||||
stock_journal = fields.Many2One(
|
||||
'account.journal', "Stock Journal", required=True)
|
||||
|
||||
|
||||
class Configuration(metaclass=PoolMeta):
|
||||
__name__ = 'account.configuration'
|
||||
stock_journal = fields.MultiValue(stock_journal)
|
||||
|
||||
@classmethod
|
||||
def default_stock_journal(cls, **pattern):
|
||||
return cls.multivalue_model('stock_journal').default_stock_journal()
|
||||
|
||||
|
||||
class ConfigurationStockJournal(ModelSQL, ValueMixin):
|
||||
__name__ = 'account.configuration.stock_journal'
|
||||
stock_journal = stock_journal
|
||||
|
||||
@classmethod
|
||||
def default_stock_journal(cls):
|
||||
pool = Pool()
|
||||
ModelData = pool.get('ir.model.data')
|
||||
try:
|
||||
return ModelData.get_id('account', 'journal_stock')
|
||||
except KeyError:
|
||||
return None
|
||||
|
||||
|
||||
class FiscalYear(metaclass=PoolMeta):
|
||||
__name__ = 'account.fiscalyear'
|
||||
account_stock_method = fields.Selection([
|
||||
(None, 'None'),
|
||||
('continental', 'Continental'),
|
||||
], 'Account Stock Method')
|
||||
|
||||
|
||||
class AccountMove(metaclass=PoolMeta):
|
||||
__name__ = 'account.move'
|
||||
|
||||
@classmethod
|
||||
def _get_origin(cls):
|
||||
return super()._get_origin() + ['stock.move',
|
||||
'product.product', 'product.template']
|
||||
29
modules/account_stock_continental/account.xml
Normal file
29
modules/account_stock_continental/account.xml
Normal file
@@ -0,0 +1,29 @@
|
||||
<?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="configuration_view_form">
|
||||
<field name="model">account.configuration</field>
|
||||
<field name="inherit" ref="account.configuration_view_form"/>
|
||||
<field name="name">configuration_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="fiscalyear_view_form">
|
||||
<field name="model">account.fiscalyear</field>
|
||||
<field name="inherit" ref="account.fiscalyear_view_form"/>
|
||||
<field name="name">fiscalyear_form</field>
|
||||
</record>
|
||||
|
||||
<!-- Read access for origin field on account.move -->
|
||||
<record model="ir.model.access" id="access_move_group_account">
|
||||
<field name="model">stock.move</field>
|
||||
<field name="group" ref="account.group_account"/>
|
||||
<field name="perm_read" eval="True"/>
|
||||
<field name="perm_write" eval="False"/>
|
||||
<field name="perm_create" eval="False"/>
|
||||
<field name="perm_delete" eval="False"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</tryton>
|
||||
64
modules/account_stock_continental/locale/bg.po
Normal file
64
modules/account_stock_continental/locale/bg.po
Normal file
@@ -0,0 +1,64 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Няма"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
63
modules/account_stock_continental/locale/ca.po
Normal file
63
modules/account_stock_continental/locale/ca.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Diari d'existències"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Diari d'existències"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "Mètode comptabilització de les existències"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Compte d'existències"
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Compte d'existències d'entrada"
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Compte d'existències de sortida"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Compte d'existències"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Compte d'existències d'entrada"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Compte d'existències de sortida"
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "Assentaments comptables"
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr "Configuració del diari d'existències"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr "Continental"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Cap"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "Logística"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Comptabilització de l'existències"
|
||||
63
modules/account_stock_continental/locale/cs.po
Normal file
63
modules/account_stock_continental/locale/cs.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
63
modules/account_stock_continental/locale/de.po
Normal file
63
modules/account_stock_continental/locale/de.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Journal Lager"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Journal Lager"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "Lagerbewertungsmethode"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Warenbestandskonto"
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Warenbestandsveränderungskonto (Eingang)"
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Warenbestandsveränderungskonto (Ausgang)"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Warenbestandskonto"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Warenbestandsveränderungskonto (Eingang)"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Warenbestandsveränderungskonto (Ausgang)"
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "Buchungssätze"
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr "Einstellungen Buchhaltung Journal Lager"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr "Kontinental"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Keine"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "Lager"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Lagerbewertung"
|
||||
63
modules/account_stock_continental/locale/es.po
Normal file
63
modules/account_stock_continental/locale/es.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Diario de existencias"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Diario de existencias"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "Método contabilización de existencias"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Cuenta de existencias"
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Cuenta de existencias de entrada"
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Cuenta de existencias de salida"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Cuenta de existencias"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Cuenta de existencias de entrada"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Cuenta de existencias de salida"
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "Asientos contables"
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr "Configuración del diario de existencias"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr "Continental"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Ninguno"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "Logística"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Contabilización del existencias"
|
||||
69
modules/account_stock_continental/locale/es_419.po
Normal file
69
modules/account_stock_continental/locale/es_419.po
Normal file
@@ -0,0 +1,69 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Libro diario de inventario"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Libro diario de inventario"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "Método de contabilización de inventario"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Método de contabilización de inventario"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Método de contabilización de inventario"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Método de contabilización de inventario"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Método de contabilización de inventario"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "Método de contabilización de inventario"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr "Configuración del diario de existencias"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
68
modules/account_stock_continental/locale/et.po
Normal file
68
modules/account_stock_continental/locale/et.po
Normal file
@@ -0,0 +1,68 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Lao andmik"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Lao andmik"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "Lao konto meetod"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Lao konto"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Lao konto"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Lao konto"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Lao konto"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Lao konto"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Lao konto"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "Lao konto"
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr "Rahvusvaheline"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Mitte"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "Ladu"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Lao konto"
|
||||
69
modules/account_stock_continental/locale/fa.po
Normal file
69
modules/account_stock_continental/locale/fa.po
Normal file
@@ -0,0 +1,69 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "روزنامه موجودی"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "روزنامه موجودی"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "روش حساب موجودی"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "حساب موجودی"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "حساب موجودی"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "حساب موجودی"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "حساب موجودی"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "حساب موجودی"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "حساب موجودی"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "حساب موجودی"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr "پیکربندی حساب ؛ روزنامه موجودی"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr "قاره"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "هیجکدام"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "موجودی"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr "حساب موجودی"
|
||||
63
modules/account_stock_continental/locale/fi.po
Normal file
63
modules/account_stock_continental/locale/fi.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
63
modules/account_stock_continental/locale/fr.po
Normal file
63
modules/account_stock_continental/locale/fr.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Journal de stock"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Journal de stock"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "Méthode de comptabilité de stock"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Compte de stock"
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Compte de stock entrant"
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Compte de stock sortant"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Compte de stock"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Compte de stock entrant"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Compte de stock sortant"
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "Mouvements comptables"
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr "Configuration comptable de journal de stock"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr "Continentale"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Aucune"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "Stocks"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Compte de stock"
|
||||
64
modules/account_stock_continental/locale/hu.po
Normal file
64
modules/account_stock_continental/locale/hu.po
Normal file
@@ -0,0 +1,64 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Készletnapló"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Készletnapló"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "Készletek számviteli módja"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Készletszámla"
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Vásárolt készletek elszámolása"
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Kiadott áru számla"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Készletszámla"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Vásárolt készletek elszámolása"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Kiadott áru számla"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "Készletszámla"
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr "kontinentális"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "nincs"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "Készlet"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Készletek számvitele"
|
||||
63
modules/account_stock_continental/locale/id.po
Normal file
63
modules/account_stock_continental/locale/id.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Tidak ada"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "Persediaan"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
71
modules/account_stock_continental/locale/it.po
Normal file
71
modules/account_stock_continental/locale/it.po
Normal file
@@ -0,0 +1,71 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Registro di magazzino"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Registro di magazzino"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "Metodo contabile del magazzino"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Conto di magazzino"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Conto di magazzino"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Conto di magazzino"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Conto di magazzino"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Conto di magazzino"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Conto di magazzino"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "Conto di magazzino"
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Nessuno"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Conto di magazzino"
|
||||
64
modules/account_stock_continental/locale/lo.po
Normal file
64
modules/account_stock_continental/locale/lo.po
Normal file
@@ -0,0 +1,64 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "ບໍ່ມີ"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
63
modules/account_stock_continental/locale/lt.po
Normal file
63
modules/account_stock_continental/locale/lt.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Sandėlio žurnalas"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Sandėlio žurnalas"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "Sandėlys"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
63
modules/account_stock_continental/locale/nl.po
Normal file
63
modules/account_stock_continental/locale/nl.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Voorraad dagboek"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Voorraad dagboek"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "Voorraadwaarderingsmethode"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Voorraad rekening"
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Voorraad rekening IN"
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Voorraad rekening UIT"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "rekening voorraad"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Voorraad rekening IN"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Voorraad rekening UIT"
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "Boekingen"
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr "Grootboek configuratie voorraad dagboek"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr "Continentaal"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Geen"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "Voorraad"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Voorraad rekening"
|
||||
63
modules/account_stock_continental/locale/pl.po
Normal file
63
modules/account_stock_continental/locale/pl.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Brak"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
63
modules/account_stock_continental/locale/pt.po
Normal file
63
modules/account_stock_continental/locale/pt.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Diário de Estoque"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Diário de Estoque"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "Método de Contabilização de Estoque"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Conta de Estoque"
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Conta de Entrada de Estoque"
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Conta de Saída de Estoque"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Conta de Estoque"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Conta de Entrada de Estoque"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Conta de Saída de Estoque"
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "Contas de Estoque"
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr "Configurações de Contabilidade Diário de Estoque"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr "Continental"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Nenhum"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "Estoque"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Conta de Estoque"
|
||||
63
modules/account_stock_continental/locale/ro.po
Normal file
63
modules/account_stock_continental/locale/ro.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
64
modules/account_stock_continental/locale/ru.po
Normal file
64
modules/account_stock_continental/locale/ru.po
Normal file
@@ -0,0 +1,64 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Отсутствует"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
69
modules/account_stock_continental/locale/sl.po
Normal file
69
modules/account_stock_continental/locale/sl.po
Normal file
@@ -0,0 +1,69 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Dnevnik zaloge"
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr "Dnevnik zaloge"
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr "Način vodenja zaloge"
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Konto zaloge"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Konto zaloge"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Konto zaloge"
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Konto zaloge"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr "Konto zaloge"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr "Konto zaloge"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr "Konto zaloge"
|
||||
|
||||
#, fuzzy
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr "Konfiguracija dnevnika zaloge"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr "Kontinentalen"
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr "Brez"
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr "Zaloga"
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr "Konto zaloge"
|
||||
63
modules/account_stock_continental/locale/tr.po
Normal file
63
modules/account_stock_continental/locale/tr.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
63
modules/account_stock_continental/locale/uk.po
Normal file
63
modules/account_stock_continental/locale/uk.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
63
modules/account_stock_continental/locale/zh_CN.po
Normal file
63
modules/account_stock_continental/locale/zh_CN.po
Normal file
@@ -0,0 +1,63 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||
|
||||
msgctxt "field:account.configuration,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.configuration.stock_journal,stock_journal:"
|
||||
msgid "Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:account.fiscalyear,account_stock_method:"
|
||||
msgid "Account Stock Method"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_in:"
|
||||
msgid "Account Stock IN"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:product.category.account,account_stock_out:"
|
||||
msgid "Account Stock OUT"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "field:stock.move,account_moves:"
|
||||
msgid "Account Moves"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "model:account.configuration.stock_journal,string:"
|
||||
msgid "Account Configuration Stock Journal"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "Continental"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "selection:account.fiscalyear,account_stock_method:"
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.configuration:"
|
||||
msgid "Stock"
|
||||
msgstr ""
|
||||
|
||||
msgctxt "view:account.fiscalyear:"
|
||||
msgid "Account Stock"
|
||||
msgstr ""
|
||||
232
modules/account_stock_continental/product.py
Normal file
232
modules/account_stock_continental/product.py
Normal file
@@ -0,0 +1,232 @@
|
||||
# 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 decimal import Decimal
|
||||
|
||||
from trytond.model import fields
|
||||
from trytond.modules.account_product.product import (
|
||||
account_used, template_property)
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.pyson import Eval
|
||||
from trytond.transaction import Transaction
|
||||
|
||||
account_names = [
|
||||
'account_stock', 'account_stock_in', 'account_stock_out']
|
||||
|
||||
|
||||
class Category(metaclass=PoolMeta):
|
||||
__name__ = 'product.category'
|
||||
account_stock = fields.MultiValue(fields.Many2One(
|
||||
'account.account', "Account Stock",
|
||||
domain=[
|
||||
('closed', '!=', True),
|
||||
('type.stock', '=', True),
|
||||
('type.statement', '=', 'balance'),
|
||||
('company', '=', Eval('context', {}).get('company', -1)),
|
||||
],
|
||||
states={
|
||||
'invisible': (~Eval('context', {}).get('company')
|
||||
| Eval('account_parent')
|
||||
| ~Eval('accounting', False)),
|
||||
}))
|
||||
account_stock_in = fields.MultiValue(fields.Many2One(
|
||||
'account.account', "Account Stock IN",
|
||||
domain=[
|
||||
('closed', '!=', True),
|
||||
('type.stock', '=', True),
|
||||
('company', '=', Eval('context', {}).get('company', -1)),
|
||||
],
|
||||
states={
|
||||
'invisible': (~Eval('context', {}).get('company')
|
||||
| Eval('account_parent')
|
||||
| ~Eval('accounting', False)),
|
||||
}))
|
||||
account_stock_out = fields.MultiValue(fields.Many2One(
|
||||
'account.account', "Account Stock OUT",
|
||||
domain=[
|
||||
('closed', '!=', True),
|
||||
('type.stock', '=', True),
|
||||
('company', '=', Eval('context', {}).get('company', -1)),
|
||||
],
|
||||
states={
|
||||
'invisible': (~Eval('context', {}).get('company')
|
||||
| Eval('account_parent')
|
||||
| ~Eval('accounting', False)),
|
||||
}))
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
pool = Pool()
|
||||
CategoryAccount = pool.get('product.category.account')
|
||||
super().__setup__()
|
||||
for account in [cls.account_stock_in, cls.account_stock_out]:
|
||||
account.domain = [
|
||||
account.domain,
|
||||
('type.statement', 'in',
|
||||
CategoryAccount.get_account_stock_type_statements()),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def multivalue_model(cls, field):
|
||||
pool = Pool()
|
||||
if field in account_names:
|
||||
return pool.get('product.category.account')
|
||||
return super().multivalue_model(field)
|
||||
|
||||
@property
|
||||
@account_used('account_stock')
|
||||
def account_stock_used(self):
|
||||
pass
|
||||
|
||||
@property
|
||||
@account_used('account_stock_in')
|
||||
def account_stock_in_used(self):
|
||||
pass
|
||||
|
||||
@property
|
||||
@account_used('account_stock_out')
|
||||
def account_stock_out_used(self):
|
||||
pass
|
||||
|
||||
@fields.depends(
|
||||
'accounting', 'account_stock', 'account_stock_in', 'account_stock_out')
|
||||
def on_change_accounting(self):
|
||||
super().on_change_accounting()
|
||||
if not self.accounting:
|
||||
self.account_stock = None
|
||||
self.account_stock_in = None
|
||||
self.account_stock_out = None
|
||||
|
||||
|
||||
class CategoryAccount(metaclass=PoolMeta):
|
||||
__name__ = 'product.category.account'
|
||||
account_stock = fields.Many2One(
|
||||
'account.account', "Account Stock",
|
||||
domain=[
|
||||
('closed', '!=', True),
|
||||
('type.stock', '=', True),
|
||||
('type.statement', '=', 'balance'),
|
||||
('company', '=', Eval('company', -1)),
|
||||
])
|
||||
account_stock_in = fields.Many2One(
|
||||
'account.account', "Account Stock IN",
|
||||
domain=[
|
||||
('closed', '!=', True),
|
||||
('type.stock', '=', True),
|
||||
('company', '=', Eval('company', -1)),
|
||||
])
|
||||
account_stock_out = fields.Many2One(
|
||||
'account.account', "Account Stock OUT",
|
||||
domain=[
|
||||
('closed', '!=', True),
|
||||
('type.stock', '=', True),
|
||||
('company', '=', Eval('company', -1)),
|
||||
])
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
for account in [cls.account_stock_in, cls.account_stock_out]:
|
||||
account.domain = [
|
||||
account.domain,
|
||||
('type.statement', 'in',
|
||||
cls.get_account_stock_type_statements()),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def get_account_stock_type_statements(cls):
|
||||
return ['income']
|
||||
|
||||
|
||||
class Template(metaclass=PoolMeta):
|
||||
__name__ = 'product.template'
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls._modify_no_move.append(
|
||||
('cost_price',
|
||||
'account_stock_continental.msg_product_change_cost_price'))
|
||||
|
||||
@property
|
||||
@account_used('account_stock', 'account_category')
|
||||
def account_stock_used(self):
|
||||
pass
|
||||
|
||||
@property
|
||||
@account_used('account_stock_in', 'account_category')
|
||||
def account_stock_in_used(self):
|
||||
pass
|
||||
|
||||
@property
|
||||
@account_used('account_stock_out', 'account_category')
|
||||
def account_stock_out_used(self):
|
||||
pass
|
||||
|
||||
|
||||
class Product(metaclass=PoolMeta):
|
||||
__name__ = 'product.product'
|
||||
account_stock_used = template_property('account_stock_used')
|
||||
account_stock_in_used = template_property('account_stock_in_used')
|
||||
account_stock_out_used = template_property('account_stock_out_used')
|
||||
|
||||
@classmethod
|
||||
def update_cost_price(cls, costs):
|
||||
pool = Pool()
|
||||
Date = pool.get('ir.date')
|
||||
Stock = pool.get('stock.location')
|
||||
Company = pool.get('company.company')
|
||||
Move = pool.get('account.move')
|
||||
Period = pool.get('account.period')
|
||||
|
||||
context = Transaction().context
|
||||
locations = Stock.search([('type', '=', 'storage')])
|
||||
company = Company(context['company'])
|
||||
with Transaction().set_context(company=company.id):
|
||||
stock_date_end = Date.today()
|
||||
period = Period.find(company, date=stock_date_end)
|
||||
if period.fiscalyear.account_stock_method:
|
||||
moves = []
|
||||
with Transaction().set_context(locations=[l.id for l in locations],
|
||||
stock_date_end=stock_date_end):
|
||||
for cost, products in costs.items():
|
||||
products = cls.browse(products)
|
||||
for product in products:
|
||||
difference = cost - product.cost_price
|
||||
quantity = product.quantity
|
||||
amount = company.currency.round(
|
||||
Decimal(str(quantity)) * difference)
|
||||
if amount:
|
||||
moves.append(product._update_cost_price_move(
|
||||
amount, company, period, stock_date_end))
|
||||
Move.save(moves)
|
||||
Move.post(moves)
|
||||
super().update_cost_price(costs)
|
||||
|
||||
def _update_cost_price_move(self, amount, company, period, date):
|
||||
pool = Pool()
|
||||
AccountConfiguration = pool.get('account.configuration')
|
||||
Move = pool.get('account.move')
|
||||
Line = pool.get('account.move.line')
|
||||
|
||||
config = AccountConfiguration(1)
|
||||
if amount > 0:
|
||||
account = self.account_stock_in_used
|
||||
else:
|
||||
account = self.account_stock_out_used
|
||||
return Move(
|
||||
period=period,
|
||||
journal=config.stock_journal,
|
||||
date=date,
|
||||
origin=self,
|
||||
lines=[Line(
|
||||
debit=amount if amount > 0 else 0,
|
||||
credit=-amount if amount < 0 else 0,
|
||||
account=self.account_stock_used,
|
||||
),
|
||||
Line(
|
||||
debit=-amount if amount < 0 else 0,
|
||||
credit=amount if amount > 0 else 0,
|
||||
account=account,
|
||||
),
|
||||
],
|
||||
)
|
||||
12
modules/account_stock_continental/product.xml
Normal file
12
modules/account_stock_continental/product.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="category_view_form">
|
||||
<field name="model">product.category</field>
|
||||
<field name="inherit" ref="product.category_view_form"/>
|
||||
<field name="name">category_form</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
204
modules/account_stock_continental/stock.py
Normal file
204
modules/account_stock_continental/stock.py
Normal file
@@ -0,0 +1,204 @@
|
||||
# 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 decimal import Decimal
|
||||
|
||||
from trytond.model import ModelView, Workflow, fields
|
||||
from trytond.modules.account.exceptions import PeriodNotFoundError
|
||||
from trytond.pool import Pool, PoolMeta
|
||||
from trytond.transaction import Transaction
|
||||
|
||||
|
||||
class Move(metaclass=PoolMeta):
|
||||
__name__ = 'stock.move'
|
||||
|
||||
account_moves = fields.One2Many(
|
||||
'account.move', 'origin', "Account Moves", readonly=True)
|
||||
|
||||
def _get_account_stock_move_lines(self, type_):
|
||||
'''
|
||||
Return move lines for stock move
|
||||
'''
|
||||
pool = Pool()
|
||||
Uom = pool.get('product.uom')
|
||||
AccountMoveLine = pool.get('account.move.line')
|
||||
assert type_.startswith('in_') or type_.startswith('out_'), \
|
||||
'wrong type'
|
||||
|
||||
move_line = AccountMoveLine()
|
||||
cost_price_method = self.product.get_multivalue(
|
||||
'cost_price_method', **self._cost_price_pattern)
|
||||
if ((
|
||||
type_.endswith('supplier')
|
||||
or type_ in {'in_production', 'in_warehouse'})
|
||||
and cost_price_method != 'fixed'):
|
||||
unit_price = self.unit_price_company
|
||||
else:
|
||||
unit_price = self.cost_price
|
||||
unit_price = Uom.compute_price(
|
||||
self.product.default_uom, unit_price, self.unit)
|
||||
amount = self.company.currency.round(
|
||||
Decimal(str(self.quantity)) * unit_price)
|
||||
|
||||
if type_.startswith('in_'):
|
||||
move_line.debit = Decimal(0)
|
||||
move_line.credit = amount
|
||||
move_line.account = self.product.account_stock_in_used
|
||||
else:
|
||||
move_line.debit = amount
|
||||
move_line.credit = Decimal(0)
|
||||
move_line.account = self.product.account_stock_out_used
|
||||
|
||||
return [move_line]
|
||||
|
||||
def _get_account_stock_move_line(self, amount):
|
||||
'''
|
||||
Return counterpart move line value for stock move
|
||||
'''
|
||||
pool = Pool()
|
||||
AccountMoveLine = pool.get('account.move.line')
|
||||
move_line = AccountMoveLine(
|
||||
account=self.product.account_stock_used,
|
||||
)
|
||||
if not amount:
|
||||
return
|
||||
if amount >= Decimal(0):
|
||||
move_line.debit = Decimal(0)
|
||||
move_line.credit = amount
|
||||
else:
|
||||
move_line.debit = - amount
|
||||
move_line.credit = Decimal(0)
|
||||
return move_line
|
||||
|
||||
def _get_account_stock_move_type(self):
|
||||
'''
|
||||
Get account move type
|
||||
'''
|
||||
type_ = (self.from_location.type, self.to_location.type)
|
||||
if type_ in [('supplier', 'storage'), ('supplier', 'drop')]:
|
||||
return 'in_supplier'
|
||||
elif type_ in [('storage', 'supplier'), ('drop', 'supplier')]:
|
||||
return 'out_supplier'
|
||||
elif type_ in [('storage', 'customer'), ('drop', 'customer')]:
|
||||
return 'out_customer'
|
||||
elif type_ in [('customer', 'storage'), ('customer', 'drop')]:
|
||||
return 'in_customer'
|
||||
elif type_ == ('storage', 'lost_found'):
|
||||
return 'out_lost_found'
|
||||
elif type_ == ('lost_found', 'storage'):
|
||||
return 'in_lost_found'
|
||||
elif type_ == ('supplier', 'customer'):
|
||||
return 'supplier_customer'
|
||||
elif type_ == ('customer', 'supplier'):
|
||||
return 'customer_supplier'
|
||||
elif type_ == ('storage', 'production'):
|
||||
return 'out_production'
|
||||
elif type_ == ('production', 'storage'):
|
||||
return 'in_production'
|
||||
|
||||
def _get_account_stock_move(self):
|
||||
'''
|
||||
Return account move for stock move
|
||||
'''
|
||||
pool = Pool()
|
||||
AccountMove = pool.get('account.move')
|
||||
Date = pool.get('ir.date')
|
||||
Period = pool.get('account.period')
|
||||
AccountConfiguration = pool.get('account.configuration')
|
||||
|
||||
if self.product.type != 'goods':
|
||||
return
|
||||
|
||||
with Transaction().set_context(company=self.company.id):
|
||||
today = Date.today()
|
||||
for date in [self.effective_date, today]:
|
||||
try:
|
||||
period = Period.find(self.company, date=date, test_state=False)
|
||||
except PeriodNotFoundError:
|
||||
if date < today:
|
||||
return
|
||||
continue
|
||||
break
|
||||
else:
|
||||
return
|
||||
if not period.fiscalyear.account_stock_method:
|
||||
return
|
||||
if period.state != 'open':
|
||||
date = today
|
||||
period = Period.find(self.company, date=date)
|
||||
|
||||
type_ = self._get_account_stock_move_type()
|
||||
if not type_:
|
||||
return
|
||||
with Transaction().set_context(
|
||||
company=self.company.id, date=date):
|
||||
if type_ == 'supplier_customer':
|
||||
account_move_lines = self._get_account_stock_move_lines(
|
||||
'in_supplier')
|
||||
account_move_lines.extend(self._get_account_stock_move_lines(
|
||||
'out_customer'))
|
||||
elif type_ == 'customer_supplier':
|
||||
account_move_lines = self._get_account_stock_move_lines(
|
||||
'in_customer')
|
||||
account_move_lines.extend(self._get_account_stock_move_lines(
|
||||
'out_supplier'))
|
||||
else:
|
||||
account_move_lines = self._get_account_stock_move_lines(type_)
|
||||
|
||||
amount = Decimal(0)
|
||||
for line in account_move_lines:
|
||||
amount += line.debit - line.credit
|
||||
|
||||
if not amount:
|
||||
return
|
||||
move_line = self._get_account_stock_move_line(amount)
|
||||
if move_line:
|
||||
account_move_lines.append(move_line)
|
||||
|
||||
account_configuration = AccountConfiguration(1)
|
||||
journal = account_configuration.get_multivalue(
|
||||
'stock_journal', company=self.company.id)
|
||||
return AccountMove(
|
||||
journal=journal,
|
||||
period=period,
|
||||
date=date,
|
||||
origin=self,
|
||||
lines=account_move_lines,
|
||||
)
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('done')
|
||||
def do(cls, moves):
|
||||
pool = Pool()
|
||||
AccountMove = pool.get('account.move')
|
||||
super().do(moves)
|
||||
account_moves = []
|
||||
for move in moves:
|
||||
account_move = move._get_account_stock_move()
|
||||
if account_move:
|
||||
account_moves.append(account_move)
|
||||
AccountMove.save(account_moves)
|
||||
AccountMove.post(account_moves)
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
@Workflow.transition('cancelled')
|
||||
def cancel(cls, moves):
|
||||
pool = Pool()
|
||||
AccountMove = pool.get('account.move')
|
||||
super().cancel(moves)
|
||||
|
||||
delete_moves, cancel_moves = [], []
|
||||
for move in moves:
|
||||
for account_move in move.account_moves:
|
||||
if account_move.state == 'draft':
|
||||
delete_moves.append(account_move)
|
||||
else:
|
||||
cancel_move = account_move.cancel()
|
||||
cancel_move.origin = move
|
||||
cancel_moves.append(cancel_move)
|
||||
if delete_moves:
|
||||
AccountMove.delete(delete_moves)
|
||||
if cancel_moves:
|
||||
AccountMove.save(cancel_moves)
|
||||
AccountMove.post(cancel_moves)
|
||||
2
modules/account_stock_continental/tests/__init__.py
Normal file
2
modules/account_stock_continental/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.
Binary file not shown.
@@ -0,0 +1,392 @@
|
||||
==================================
|
||||
Account Stock Continental Scenario
|
||||
==================================
|
||||
|
||||
Imports::
|
||||
|
||||
>>> import datetime as dt
|
||||
>>> from decimal import Decimal
|
||||
|
||||
>>> from proteus import Model, Wizard
|
||||
>>> 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.account_stock_continental.tests.tools import (
|
||||
... add_stock_accounts)
|
||||
>>> from trytond.modules.company.tests.tools import create_company
|
||||
>>> from trytond.tests.tools import activate_modules
|
||||
|
||||
>>> today = dt.date.today()
|
||||
|
||||
Activate modules::
|
||||
|
||||
>>> config = activate_modules([
|
||||
... 'account_stock_continental',
|
||||
... 'sale',
|
||||
... 'purchase',
|
||||
... 'sale_supply_drop_shipment',
|
||||
... ],
|
||||
... create_company, create_chart)
|
||||
|
||||
Create fiscal year::
|
||||
|
||||
>>> fiscalyear = set_fiscalyear_invoice_sequences(
|
||||
... create_fiscalyear(today=today))
|
||||
>>> fiscalyear.account_stock_method = 'continental'
|
||||
>>> fiscalyear.click('create_period')
|
||||
|
||||
Get accounts::
|
||||
|
||||
>>> accounts = add_stock_accounts(get_accounts())
|
||||
>>> receivable = accounts['receivable']
|
||||
>>> payable = accounts['payable']
|
||||
>>> revenue = accounts['revenue']
|
||||
>>> expense = accounts['expense']
|
||||
>>> stock = accounts['stock']
|
||||
>>> stock_in = accounts['stock_expense']
|
||||
>>> stock_out, = stock_in.duplicate()
|
||||
|
||||
Create parties::
|
||||
|
||||
>>> Party = Model.get('party.party')
|
||||
>>> supplier = Party(name='Supplier')
|
||||
>>> supplier.save()
|
||||
>>> customer = Party(name='Customer')
|
||||
>>> customer.save()
|
||||
|
||||
Create product 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.account_stock = stock
|
||||
>>> account_category.account_stock_in = stock_in
|
||||
>>> account_category.account_stock_out = stock_out
|
||||
>>> account_category.save()
|
||||
|
||||
Create product::
|
||||
|
||||
>>> ProductUom = Model.get('product.uom')
|
||||
>>> m, = ProductUom.find([('symbol', '=', 'm')])
|
||||
>>> cm, = ProductUom.find([('symbol', '=', 'cm')])
|
||||
>>> ProductTemplate = Model.get('product.template')
|
||||
>>> template = ProductTemplate()
|
||||
>>> template.name = 'product'
|
||||
>>> template.default_uom = cm
|
||||
>>> template.type = 'goods'
|
||||
>>> template.purchasable = True
|
||||
>>> template.salable = True
|
||||
>>> template.list_price = Decimal('10')
|
||||
>>> template.cost_price_method = 'fixed'
|
||||
>>> template.lead_time = dt.timedelta(0)
|
||||
>>> template.account_category = account_category
|
||||
>>> product, = template.products
|
||||
>>> product.cost_price = Decimal('5')
|
||||
>>> template.save()
|
||||
>>> product, = template.products
|
||||
>>> template_average, = template.duplicate({
|
||||
... 'cost_price_method': 'average',
|
||||
... })
|
||||
>>> template_average.account_category = account_category
|
||||
>>> template_average.save()
|
||||
>>> product_average, = template_average.products
|
||||
|
||||
Create payment term::
|
||||
|
||||
>>> payment_term = create_payment_term()
|
||||
>>> payment_term.save()
|
||||
|
||||
Purchase 12 products::
|
||||
|
||||
>>> Purchase = Model.get('purchase.purchase')
|
||||
>>> purchase = Purchase()
|
||||
>>> purchase.party = supplier
|
||||
>>> purchase.payment_term = payment_term
|
||||
>>> purchase.invoice_method = 'shipment'
|
||||
>>> purchase_line = purchase.lines.new()
|
||||
>>> purchase_line.product = product
|
||||
>>> purchase_line.quantity = 5.0
|
||||
>>> purchase_line.unit = m
|
||||
>>> purchase_line.unit_price = Decimal(400)
|
||||
>>> purchase_line = purchase.lines.new()
|
||||
>>> purchase_line.product = product_average
|
||||
>>> purchase_line.quantity = 7.0
|
||||
>>> purchase_line.unit = m
|
||||
>>> purchase_line.unit_price = Decimal(600)
|
||||
>>> purchase.click('quote')
|
||||
>>> purchase.click('confirm')
|
||||
>>> purchase.click('process')
|
||||
>>> purchase.state
|
||||
'processing'
|
||||
|
||||
Receive 9 products::
|
||||
|
||||
>>> ShipmentIn = Model.get('stock.shipment.in')
|
||||
>>> Move = Model.get('stock.move')
|
||||
>>> shipment = ShipmentIn(supplier=supplier)
|
||||
>>> move, = [m for m in purchase.moves if m.product == product]
|
||||
>>> move = Move(move.id)
|
||||
>>> shipment.incoming_moves.append(move)
|
||||
>>> move.quantity = 4.0
|
||||
>>> move, = [m for m in purchase.moves if m.product == product_average]
|
||||
>>> move = Move(move.id)
|
||||
>>> shipment.incoming_moves.append(move)
|
||||
>>> move.quantity = 5.0
|
||||
>>> shipment.click('receive')
|
||||
>>> shipment.click('do')
|
||||
>>> shipment.state
|
||||
'done'
|
||||
>>> stock_in.reload()
|
||||
>>> stock_in.debit
|
||||
Decimal('0.00')
|
||||
>>> stock_in.credit
|
||||
Decimal('5000.00')
|
||||
>>> stock.reload()
|
||||
>>> stock.debit
|
||||
Decimal('5000.00')
|
||||
>>> stock.credit
|
||||
Decimal('0.00')
|
||||
|
||||
Open supplier invoice::
|
||||
|
||||
>>> Invoice = Model.get('account.invoice')
|
||||
>>> purchase.reload()
|
||||
>>> invoice, = purchase.invoices
|
||||
>>> invoice_line, = [l for l in invoice.lines if l.product == product]
|
||||
>>> invoice_line.unit_price = Decimal('6')
|
||||
>>> invoice_line, = [l for l in invoice.lines
|
||||
... if l.product == product_average]
|
||||
>>> invoice_line.unit_price = Decimal('4')
|
||||
>>> invoice.invoice_date = today
|
||||
>>> invoice.click('post')
|
||||
>>> invoice.state
|
||||
'posted'
|
||||
>>> payable.reload()
|
||||
>>> payable.debit
|
||||
Decimal('0.00')
|
||||
>>> payable.credit
|
||||
Decimal('44.00')
|
||||
>>> expense.reload()
|
||||
>>> expense.debit
|
||||
Decimal('44.00')
|
||||
>>> expense.credit
|
||||
Decimal('0.00')
|
||||
|
||||
Sale 5 products::
|
||||
|
||||
>>> Sale = Model.get('sale.sale')
|
||||
>>> sale = Sale()
|
||||
>>> sale.party = customer
|
||||
>>> sale.payment_term = payment_term
|
||||
>>> sale.invoice_method = 'shipment'
|
||||
>>> sale_line = sale.lines.new()
|
||||
>>> sale_line.product = product
|
||||
>>> sale_line.quantity = 2.0
|
||||
>>> sale_line.unit = cm
|
||||
>>> sale_line = sale.lines.new()
|
||||
>>> sale_line.product = product_average
|
||||
>>> sale_line.quantity = 3.0
|
||||
>>> sale_line.unit = cm
|
||||
>>> sale.click('quote')
|
||||
>>> sale.click('confirm')
|
||||
>>> sale.click('process')
|
||||
>>> sale.state
|
||||
'processing'
|
||||
|
||||
Send 5 products::
|
||||
|
||||
>>> shipment, = sale.shipments
|
||||
>>> shipment.click('assign_try')
|
||||
>>> shipment.state
|
||||
'assigned'
|
||||
>>> shipment.click('pick')
|
||||
>>> shipment.state
|
||||
'picked'
|
||||
>>> shipment.click('pack')
|
||||
>>> shipment.state
|
||||
'packed'
|
||||
>>> shipment.click('do')
|
||||
>>> shipment.state
|
||||
'done'
|
||||
>>> stock_out.reload()
|
||||
>>> stock_out.debit
|
||||
Decimal('28.00')
|
||||
>>> stock_out.credit
|
||||
Decimal('0.00')
|
||||
>>> stock.reload()
|
||||
>>> stock.debit
|
||||
Decimal('5000.00')
|
||||
>>> stock.credit
|
||||
Decimal('28.00')
|
||||
|
||||
Open customer invoice::
|
||||
|
||||
>>> sale.reload()
|
||||
>>> invoice, = sale.invoices
|
||||
>>> invoice.click('post')
|
||||
>>> invoice.state
|
||||
'posted'
|
||||
>>> receivable.reload()
|
||||
>>> receivable.debit
|
||||
Decimal('50.00')
|
||||
>>> receivable.credit
|
||||
Decimal('0.00')
|
||||
>>> revenue.reload()
|
||||
>>> revenue.debit
|
||||
Decimal('0.00')
|
||||
>>> revenue.credit
|
||||
Decimal('50.00')
|
||||
|
||||
Create an Inventory::
|
||||
|
||||
>>> Inventory = Model.get('stock.inventory')
|
||||
>>> Location = Model.get('stock.location')
|
||||
>>> storage, = Location.find([
|
||||
... ('code', '=', 'STO'),
|
||||
... ])
|
||||
>>> inventory = Inventory()
|
||||
>>> inventory.location = storage
|
||||
>>> inventory.click('complete_lines')
|
||||
>>> inventory_line, = [l for l in inventory.lines if l.product == product]
|
||||
>>> inventory_line.quantity = 100.0
|
||||
>>> inventory_line, = [l for l in inventory.lines
|
||||
... if l.product == product_average]
|
||||
>>> inventory_line.quantity = 100.0
|
||||
>>> inventory.click('confirm')
|
||||
>>> inventory.state
|
||||
'done'
|
||||
>>> stock_out.reload()
|
||||
>>> stock_out.debit
|
||||
Decimal('3900.00')
|
||||
>>> stock_out.credit
|
||||
Decimal('0.00')
|
||||
>>> stock.reload()
|
||||
>>> stock.debit
|
||||
Decimal('5000.00')
|
||||
>>> stock.credit
|
||||
Decimal('3900.00')
|
||||
|
||||
Create Drop Shipment Move::
|
||||
|
||||
>>> ProductSupplier = Model.get('purchase.product_supplier')
|
||||
>>> product_supplier = ProductSupplier()
|
||||
>>> product_supplier.template = product.template
|
||||
>>> product_supplier.party = supplier
|
||||
>>> product_supplier.drop_shipment = True
|
||||
>>> product_supplier.lead_time = dt.timedelta(0)
|
||||
>>> product_supplier.save()
|
||||
>>> product.template.supply_on_sale = 'always'
|
||||
>>> product.template.save()
|
||||
|
||||
>>> sale = Sale()
|
||||
>>> sale.party = customer
|
||||
>>> sale.payment_term = payment_term
|
||||
>>> sale_line = sale.lines.new()
|
||||
>>> sale_line.product = product
|
||||
>>> sale_line.quantity = 300
|
||||
>>> sale_line.unit = cm
|
||||
>>> sale.click('quote')
|
||||
>>> sale.click('confirm')
|
||||
>>> sale.click('process')
|
||||
>>> sale.state
|
||||
'processing'
|
||||
|
||||
>>> PurchaseRequest = Model.get('purchase.request')
|
||||
>>> purchase_request, = PurchaseRequest.find()
|
||||
>>> create_purchase = Wizard('purchase.request.create_purchase',
|
||||
... [purchase_request])
|
||||
>>> purchase = purchase_request.purchase
|
||||
>>> purchase.payment_term = payment_term
|
||||
>>> purchase_line, = purchase.lines
|
||||
>>> purchase_line.unit_price = Decimal(6)
|
||||
>>> purchase.click('quote')
|
||||
>>> purchase.click('confirm')
|
||||
>>> purchase.click('process')
|
||||
>>> purchase.state
|
||||
'processing'
|
||||
|
||||
>>> shipment, = sale.drop_shipments
|
||||
>>> shipment.click('ship')
|
||||
>>> shipment.click('do')
|
||||
>>> shipment.state
|
||||
'done'
|
||||
|
||||
>>> stock_in.reload()
|
||||
>>> stock_in.debit
|
||||
Decimal('0.00')
|
||||
>>> stock_in.credit
|
||||
Decimal('6800.00')
|
||||
>>> stock_out.reload()
|
||||
>>> stock_out.debit
|
||||
Decimal('5700.00')
|
||||
>>> stock_out.credit
|
||||
Decimal('0.00')
|
||||
|
||||
>>> product_supplier = ProductSupplier()
|
||||
>>> product_supplier.template = product_average.template
|
||||
>>> product_supplier.party = supplier
|
||||
>>> product_supplier.drop_shipment = True
|
||||
>>> product_supplier.lead_time = dt.timedelta(0)
|
||||
>>> product_supplier.save()
|
||||
>>> product_average.template.supply_on_sale = 'always'
|
||||
>>> product_average.template.save()
|
||||
|
||||
>>> sale = Sale()
|
||||
>>> sale.party = customer
|
||||
>>> sale.payment_term = payment_term
|
||||
>>> sale_line = sale.lines.new()
|
||||
>>> sale_line.product = product_average
|
||||
>>> sale_line.quantity = 400
|
||||
>>> sale.click('quote')
|
||||
>>> sale.click('confirm')
|
||||
>>> sale.click('process')
|
||||
>>> sale.state
|
||||
'processing'
|
||||
|
||||
>>> purchase_request, = [p for p in PurchaseRequest.find()
|
||||
... if p.state == 'draft']
|
||||
>>> create_purchase = Wizard('purchase.request.create_purchase',
|
||||
... [purchase_request])
|
||||
>>> purchase = purchase_request.purchase
|
||||
>>> purchase.payment_term = payment_term
|
||||
>>> purchase_line, = purchase.lines
|
||||
>>> purchase_line.unit_price = Decimal(5)
|
||||
>>> purchase.click('quote')
|
||||
>>> purchase.click('confirm')
|
||||
>>> purchase.click('process')
|
||||
>>> purchase.state
|
||||
'processing'
|
||||
|
||||
>>> shipment, = sale.drop_shipments
|
||||
>>> shipment.click('ship')
|
||||
>>> shipment.click('do')
|
||||
>>> shipment.state
|
||||
'done'
|
||||
|
||||
>>> stock_in.reload()
|
||||
>>> stock_in.debit
|
||||
Decimal('0.00')
|
||||
>>> stock_in.credit
|
||||
Decimal('8800.00')
|
||||
>>> stock_out.reload()
|
||||
>>> stock_out.debit
|
||||
Decimal('7700.00')
|
||||
>>> stock_out.credit
|
||||
Decimal('0.00')
|
||||
|
||||
Modify cost price::
|
||||
|
||||
>>> Account = Model.get('account.account')
|
||||
>>> modify_price = Wizard('product.modify_cost_price', [product])
|
||||
>>> modify_price.form.cost_price = '3.00'
|
||||
>>> modify_price.execute('modify')
|
||||
>>> product.cost_price
|
||||
Decimal('3.0000')
|
||||
>>> stock_out.reload()
|
||||
>>> stock_out.debit
|
||||
Decimal('7900.00')
|
||||
>>> stock_out.credit
|
||||
Decimal('0.00')
|
||||
@@ -0,0 +1,104 @@
|
||||
=================================================
|
||||
Account Stock Continental Move Cancelled 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_stock_continental.tests.tools import (
|
||||
... add_stock_accounts)
|
||||
>>> from trytond.modules.company.tests.tools import create_company
|
||||
>>> from trytond.modules.currency.tests.tools import get_currency
|
||||
>>> from trytond.tests.tools import activate_modules, assertEqual
|
||||
|
||||
Activate modules::
|
||||
|
||||
>>> config = activate_modules(
|
||||
... 'account_stock_continental', create_company, create_chart)
|
||||
|
||||
>>> ProductCategory = Model.get('product.category')
|
||||
>>> ProductTemplate = Model.get('product.template')
|
||||
>>> ProductUom = Model.get('product.uom')
|
||||
>>> StockMove = Model.get('stock.move')
|
||||
>>> StockLocation = Model.get('stock.location')
|
||||
|
||||
Create fiscal year::
|
||||
|
||||
>>> fiscalyear = create_fiscalyear()
|
||||
>>> fiscalyear.account_stock_method = 'continental'
|
||||
>>> fiscalyear.click('create_period')
|
||||
|
||||
Get accounts::
|
||||
|
||||
>>> accounts = add_stock_accounts(get_accounts())
|
||||
>>> receivable = accounts['receivable']
|
||||
>>> payable = accounts['payable']
|
||||
>>> revenue = accounts['revenue']
|
||||
>>> expense = accounts['expense']
|
||||
>>> stock = accounts['stock']
|
||||
>>> stock_in = accounts['stock_expense']
|
||||
>>> stock_out, = stock_in.duplicate()
|
||||
|
||||
Get stock locations::
|
||||
|
||||
>>> supplier_loc, = StockLocation.find([('code', '=', 'SUP')])
|
||||
>>> storage_loc, = StockLocation.find([('code', '=', 'STO')])
|
||||
|
||||
Create product category::
|
||||
|
||||
>>> account_category = ProductCategory(name="Account Category")
|
||||
>>> account_category.accounting = True
|
||||
>>> account_category.account_expense = expense
|
||||
>>> account_category.account_revenue = revenue
|
||||
>>> account_category.account_stock = stock
|
||||
>>> account_category.account_stock_in = stock_in
|
||||
>>> account_category.account_stock_out = stock_out
|
||||
>>> account_category.save()
|
||||
|
||||
Create product::
|
||||
|
||||
>>> template = ProductTemplate()
|
||||
>>> template.name = "Product"
|
||||
>>> template.default_uom, = ProductUom.find([('name', '=', "Unit")])
|
||||
>>> template.type = 'goods'
|
||||
>>> template.cost_price_method = 'fixed'
|
||||
>>> template.account_category = account_category
|
||||
>>> template.save()
|
||||
>>> product, = template.products
|
||||
>>> product.cost_price = Decimal('10.0000')
|
||||
>>> product.save()
|
||||
|
||||
Receive product::
|
||||
|
||||
>>> stock_move = StockMove()
|
||||
>>> stock_move.product = product
|
||||
>>> stock_move.from_location = supplier_loc
|
||||
>>> stock_move.to_location = storage_loc
|
||||
>>> stock_move.quantity = 1
|
||||
>>> stock_move.unit_price = Decimal('10.0000')
|
||||
>>> stock_move.currency = get_currency()
|
||||
>>> stock_move.click('do')
|
||||
>>> stock_move.state
|
||||
'done'
|
||||
>>> account_move, = stock_move.account_moves
|
||||
>>> account_move.state
|
||||
'posted'
|
||||
>>> stock.reload()
|
||||
>>> stock.balance
|
||||
Decimal('10.00')
|
||||
|
||||
Cancel reception::
|
||||
|
||||
>>> stock_move.click('cancel')
|
||||
>>> stock_move.state
|
||||
'cancelled'
|
||||
>>> len(stock_move.account_moves)
|
||||
2
|
||||
>>> assertEqual([m.state for m in stock_move.account_moves], ['posted', 'posted'])
|
||||
>>> stock.reload()
|
||||
>>> stock.balance
|
||||
Decimal('0.00')
|
||||
12
modules/account_stock_continental/tests/test_module.py
Normal file
12
modules/account_stock_continental/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 AccountStockContinentalTestCase(ModuleTestCase):
|
||||
'Test Account Stock Continental module'
|
||||
module = 'account_stock_continental'
|
||||
|
||||
|
||||
del ModuleTestCase
|
||||
8
modules/account_stock_continental/tests/test_scenario.py
Normal file
8
modules/account_stock_continental/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)
|
||||
22
modules/account_stock_continental/tests/tools.py
Normal file
22
modules/account_stock_continental/tests/tools.py
Normal file
@@ -0,0 +1,22 @@
|
||||
# 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 proteus import Model
|
||||
from trytond.modules.company.tests.tools import get_company
|
||||
|
||||
|
||||
def add_stock_accounts(accounts, company=None, config=None):
|
||||
"Add stock kind to accounts"
|
||||
Account = Model.get('account.account', config=config)
|
||||
|
||||
if not company:
|
||||
company = get_company(config=config)
|
||||
|
||||
accounts['stock'], = Account.find([
|
||||
('company', '=', company.id),
|
||||
('code', '=', '1.3.1'),
|
||||
])
|
||||
accounts['stock_expense'], = Account.find([
|
||||
('company', '=', company.id),
|
||||
('code', '=', '5.1.5'),
|
||||
])
|
||||
return accounts
|
||||
25
modules/account_stock_continental/tryton.cfg
Normal file
25
modules/account_stock_continental/tryton.cfg
Normal file
@@ -0,0 +1,25 @@
|
||||
[tryton]
|
||||
version=7.8.0
|
||||
depends:
|
||||
account
|
||||
account_product
|
||||
ir
|
||||
product
|
||||
res
|
||||
stock
|
||||
xml:
|
||||
product.xml
|
||||
account.xml
|
||||
|
||||
[register]
|
||||
model:
|
||||
product.Category
|
||||
product.CategoryAccount
|
||||
product.Template
|
||||
product.Product
|
||||
account.Configuration
|
||||
account.ConfigurationStockJournal
|
||||
account.FiscalYear
|
||||
account.AccountMove
|
||||
stock.Move
|
||||
|
||||
16
modules/account_stock_continental/view/category_form.xml
Normal file
16
modules/account_stock_continental/view/category_form.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?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='accounting']/field[@name='account_expense']"
|
||||
position="after">
|
||||
<label name="account_stock"/>
|
||||
<field name="account_stock"/>
|
||||
<newline/>
|
||||
<label name="account_stock_in"/>
|
||||
<field name="account_stock_in"/>
|
||||
<label name="account_stock_out"/>
|
||||
<field name="account_stock_out"/>
|
||||
</xpath>
|
||||
</data>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="/form" position="inside">
|
||||
<separator id="stock" string="Stock" colspan="4"/>
|
||||
<label name="stock_journal"/>
|
||||
<field name="stock_journal" widget="selection"/>
|
||||
<newline/>
|
||||
</xpath>
|
||||
</data>
|
||||
11
modules/account_stock_continental/view/fiscalyear_form.xml
Normal file
11
modules/account_stock_continental/view/fiscalyear_form.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0"?>
|
||||
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
this repository contains the full copyright notices and license terms. -->
|
||||
<data>
|
||||
<xpath expr="/form/notebook" position="inside">
|
||||
<page string="Account Stock" id="account_stock">
|
||||
<label name="account_stock_method"/>
|
||||
<field name="account_stock_method"/>
|
||||
</page>
|
||||
</xpath>
|
||||
</data>
|
||||
Reference in New Issue
Block a user