We update the unit price of the stock move when it is done and when a linked invoice is posted. This allow to keep an accurate cost price computation when price varies between the order and the invoice. issue7280 review311431002
142 lines
4.9 KiB
Python
Executable File
142 lines
4.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
|
# this repository contains the full copyright notices and license terms.
|
|
|
|
import io
|
|
import os
|
|
import re
|
|
from configparser import ConfigParser
|
|
from setuptools import setup, find_packages
|
|
|
|
|
|
def read(fname):
|
|
return io.open(
|
|
os.path.join(os.path.dirname(__file__), fname),
|
|
'r', encoding='utf-8').read()
|
|
|
|
|
|
def get_require_version(name):
|
|
if minor_version % 2:
|
|
require = '%s >= %s.%s.dev0, < %s.%s'
|
|
else:
|
|
require = '%s >= %s.%s, < %s.%s'
|
|
require %= (name, major_version, minor_version,
|
|
major_version, minor_version + 1)
|
|
return require
|
|
|
|
|
|
config = ConfigParser()
|
|
config.read_file(open(os.path.join(os.path.dirname(__file__), 'tryton.cfg')))
|
|
info = dict(config.items('tryton'))
|
|
for key in ('depends', 'extras_depend', 'xml'):
|
|
if key in info:
|
|
info[key] = info[key].strip().splitlines()
|
|
version = info.get('version', '0.0.1')
|
|
major_version, minor_version, _ = version.split('.', 2)
|
|
major_version = int(major_version)
|
|
minor_version = int(minor_version)
|
|
name = 'trytond_account_invoice_stock'
|
|
|
|
download_url = 'http://downloads.tryton.org/%s.%s/' % (
|
|
major_version, minor_version)
|
|
if minor_version % 2:
|
|
version = '%s.%s.dev0' % (major_version, minor_version)
|
|
download_url = (
|
|
'hg+http://hg.tryton.org/modules/%s#egg=%s-%s' % (
|
|
name[8:], name, version))
|
|
local_version = []
|
|
for build in ['CI_BUILD_NUMBER', 'CI_JOB_NUMBER', 'CI_JOB_ID']:
|
|
if os.environ.get(build):
|
|
local_version.append(os.environ[build])
|
|
if local_version:
|
|
version += '+' + '.'.join(local_version)
|
|
|
|
requires = []
|
|
for dep in info.get('depends', []):
|
|
if not re.match(r'(ir|res)(\W|$)', dep):
|
|
requires.append(get_require_version('trytond_%s' % dep))
|
|
requires.append(get_require_version('trytond'))
|
|
|
|
tests_require = [get_require_version('proteus')]
|
|
dependency_links = []
|
|
if minor_version % 2:
|
|
dependency_links.append('https://trydevpi.tryton.org/')
|
|
|
|
setup(name=name,
|
|
version=version,
|
|
description='Tryton module to link stock and invoice',
|
|
long_description=read('README.rst'),
|
|
author='Tryton',
|
|
author_email='bugs@tryton.org',
|
|
url='http://www.tryton.org/',
|
|
download_url=download_url,
|
|
project_urls={
|
|
"Bug Tracker": 'https://bugs.tryton.org/',
|
|
"Documentation": 'https://docs.tryton.org/',
|
|
"Forum": 'https://www.tryton.org/forum',
|
|
"Source Code": 'https://hg.tryton.org/modules/account_invoice_stock',
|
|
},
|
|
keywords='tryton account invoice stock',
|
|
package_dir={'trytond.modules.account_invoice_stock': '.'},
|
|
packages=(
|
|
['trytond.modules.account_invoice_stock']
|
|
+ ['trytond.modules.account_invoice_stock.%s' % p
|
|
for p in find_packages()]
|
|
),
|
|
package_data={
|
|
'trytond.modules.account_invoice_stock': (info.get('xml', [])
|
|
+ ['tryton.cfg', 'view/*.xml', 'locale/*.po']),
|
|
},
|
|
classifiers=[
|
|
'Development Status :: 5 - Production/Stable',
|
|
'Environment :: Plugins',
|
|
'Framework :: Tryton',
|
|
'Intended Audience :: Developers',
|
|
'Intended Audience :: Financial and Insurance Industry',
|
|
'Intended Audience :: Legal Industry',
|
|
'License :: OSI Approved :: '
|
|
'GNU General Public License v3 or later (GPLv3+)',
|
|
'Natural Language :: Bulgarian',
|
|
'Natural Language :: Catalan',
|
|
'Natural Language :: Chinese (Simplified)',
|
|
'Natural Language :: Czech',
|
|
'Natural Language :: Dutch',
|
|
'Natural Language :: English',
|
|
'Natural Language :: Finnish',
|
|
'Natural Language :: French',
|
|
'Natural Language :: German',
|
|
'Natural Language :: Hungarian',
|
|
'Natural Language :: Indonesian',
|
|
'Natural Language :: Italian',
|
|
'Natural Language :: Persian',
|
|
'Natural Language :: Polish',
|
|
'Natural Language :: Portuguese (Brazilian)',
|
|
'Natural Language :: Russian',
|
|
'Natural Language :: Slovenian',
|
|
'Natural Language :: Spanish',
|
|
'Natural Language :: Turkish',
|
|
'Operating System :: OS Independent',
|
|
'Programming Language :: Python :: 3',
|
|
'Programming Language :: Python :: 3.5',
|
|
'Programming Language :: Python :: 3.6',
|
|
'Programming Language :: Python :: 3.7',
|
|
'Programming Language :: Python :: 3.8',
|
|
'Programming Language :: Python :: Implementation :: CPython',
|
|
'Programming Language :: Python :: Implementation :: PyPy',
|
|
'Topic :: Office/Business',
|
|
'Topic :: Office/Business :: Financial :: Accounting',
|
|
],
|
|
license='GPL-3',
|
|
python_requires='>=3.5',
|
|
install_requires=requires,
|
|
dependency_links=dependency_links,
|
|
zip_safe=False,
|
|
entry_points="""
|
|
[trytond.modules]
|
|
account_invoice_stock = trytond.modules.account_invoice_stock
|
|
""",
|
|
test_suite='tests',
|
|
test_loader='trytond.test_loader:Loader',
|
|
tests_require=tests_require,
|
|
)
|