Compare commits
	
		
			3 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 1f79f62d6b | |||
| 
						 | 
					554bf84e53 | ||
| 90f641766a | 
							
								
								
									
										25
									
								
								invoice.py
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								invoice.py
									
									
									
									
									
								
							@@ -1,10 +1,10 @@
 | 
			
		||||
# 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.pool import Pool, PoolMeta
 | 
			
		||||
from trytond.model import ModelView, ModelSQL, fields
 | 
			
		||||
from trytond.pool import PoolMeta
 | 
			
		||||
from trytond.model import fields
 | 
			
		||||
from trytond.pyson import Eval
 | 
			
		||||
from trytond.model.exceptions import ValidationError
 | 
			
		||||
 | 
			
		||||
from trytond.exceptions import UserError
 | 
			
		||||
 | 
			
		||||
class Invoice(metaclass=PoolMeta):
 | 
			
		||||
    'Account Invoice'
 | 
			
		||||
@@ -14,8 +14,8 @@ class Invoice(metaclass=PoolMeta):
 | 
			
		||||
        'readonly': Eval('state') != 'draft',
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    account_analytic = fields.Many2One('analytic_account.account', 'Analytic Account',
 | 
			
		||||
    account_analytic = fields.Many2One(
 | 
			
		||||
        'analytic_account.account', 'Analytic Account',
 | 
			
		||||
        domain=[('type', '=', 'normal')],
 | 
			
		||||
        states=_states)
 | 
			
		||||
 | 
			
		||||
@@ -24,16 +24,19 @@ class InvoiceLine(metaclass=PoolMeta):
 | 
			
		||||
    'Invoice Line'
 | 
			
		||||
    __name__ = 'account.invoice.line'
 | 
			
		||||
 | 
			
		||||
      @fields.depends('product', 'unit', '_parent_invoice.type', 'analytic_accounts',
 | 
			
		||||
    @fields.depends(
 | 
			
		||||
        'product', 'unit', '_parent_invoice.type', 'analytic_accounts',
 | 
			
		||||
        '_parent_invoice.party', 'party', 'invoice', 'invoice_type',
 | 
			
		||||
        '_parent_invoice.account_analytic', '_parent_invoice.invoice_date',
 | 
			
		||||
                      '_parent_invoice.accounting_date','company', methods=['_get_tax_rule_pattern'])
 | 
			
		||||
        '_parent_invoice.accounting_date', 'company',
 | 
			
		||||
        methods=['_get_tax_rule_pattern'])
 | 
			
		||||
    def on_change_product(self):
 | 
			
		||||
        super(InvoiceLine, self).on_change_product()
 | 
			
		||||
        self.analytic_accounts = tuple()
 | 
			
		||||
        try:
 | 
			
		||||
              self.analytic_accounts += ({'root': self.invoice.account_analytic.root,
 | 
			
		||||
            if self.invoice and self.invoice.account_analytic:
 | 
			
		||||
                self.analytic_accounts += (
 | 
			
		||||
                    {'root': self.invoice.account_analytic.root,
 | 
			
		||||
                     'account': self.invoice.account_analytic},)
 | 
			
		||||
          except:
 | 
			
		||||
              pass
 | 
			
		||||
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            raise ValidationError(f"Se produjo un error: {e}")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								purchase.py
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								purchase.py
									
									
									
									
									
								
							@@ -1,10 +1,10 @@
 | 
			
		||||
# 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.pool import Pool, PoolMeta
 | 
			
		||||
from trytond.model import ModelView, ModelSQL, fields
 | 
			
		||||
from trytond.pool import PoolMeta
 | 
			
		||||
from trytond.model import fields
 | 
			
		||||
from trytond.pyson import Eval
 | 
			
		||||
from trytond.model.exceptions import ValidationError
 | 
			
		||||
 | 
			
		||||
from trytond.exceptions import UserError
 | 
			
		||||
 | 
			
		||||
class Purchase(metaclass=PoolMeta):
 | 
			
		||||
    'Purchase Analytic Operation'
 | 
			
		||||
@@ -14,17 +14,22 @@ class Purchase(metaclass=PoolMeta):
 | 
			
		||||
        'readonly': Eval('state') != 'draft',
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    account_analytic = fields.Many2One('analytic_account.account', 'Analytic Account', required=True,
 | 
			
		||||
    account_analytic = fields.Many2One(
 | 
			
		||||
        'analytic_account.account', 'Analytic Account', required=True,
 | 
			
		||||
        domain=[('type', '=', 'normal')],
 | 
			
		||||
        states=_states)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class PurchaseLine(metaclass=PoolMeta):
 | 
			
		||||
    'Purchase Line Analytic Operation'
 | 
			
		||||
    __name__ = 'purchase.line'
 | 
			
		||||
 | 
			
		||||
    @fields.depends('product', 'unit', 'purchase',
 | 
			
		||||
    @fields.depends(
 | 
			
		||||
        'product', 'unit', 'purchase',
 | 
			
		||||
        '_parent_purchase.party', '_parent_purchase.invoice_party',
 | 
			
		||||
        '_parent_purchase.account_analytic', 'product_supplier',
 | 
			
		||||
        'analytic_accounts', methods=['compute_taxes', 'compute_unit_price',
 | 
			
		||||
        'analytic_accounts',
 | 
			
		||||
        methods=['compute_taxes', 'compute_unit_price',
 | 
			
		||||
                 '_get_product_supplier_pattern'])
 | 
			
		||||
    def on_change_product(self):
 | 
			
		||||
        if not self.product:
 | 
			
		||||
@@ -57,7 +62,8 @@ class PurchaseLine(metaclass=PoolMeta):
 | 
			
		||||
 | 
			
		||||
        self.analytic_accounts = tuple()
 | 
			
		||||
        try:
 | 
			
		||||
            self.analytic_accounts += ({'root': self.purchase.account_analytic.root,
 | 
			
		||||
            self.analytic_accounts += (
 | 
			
		||||
                {'root': self.purchase.account_analytic.root,
 | 
			
		||||
                 'account': self.purchase.account_analytic},)
 | 
			
		||||
        except:
 | 
			
		||||
            pass
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            raise ValidationError(f"Se produjo un error: {e}")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								sale.py
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								sale.py
									
									
									
									
									
								
							@@ -1,10 +1,9 @@
 | 
			
		||||
# 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.pool import Pool, PoolMeta
 | 
			
		||||
from trytond.model import ModelView, ModelSQL, fields
 | 
			
		||||
from trytond.pyson import Eval
 | 
			
		||||
from trytond.pool import PoolMeta
 | 
			
		||||
from trytond.model import fields
 | 
			
		||||
from trytond.model.exceptions import ValidationError
 | 
			
		||||
 | 
			
		||||
from trytond.exceptions import UserError
 | 
			
		||||
 | 
			
		||||
class Sale(metaclass=PoolMeta):
 | 
			
		||||
    'Sale Analytic Operation'
 | 
			
		||||
@@ -16,12 +15,11 @@ class Sale(metaclass=PoolMeta):
 | 
			
		||||
                                           ('type', '=', 'normal'),
 | 
			
		||||
                                       ])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SaleLine(metaclass=PoolMeta):
 | 
			
		||||
    'Sale Line Analytic Operation'
 | 
			
		||||
    __name__ = 'sale.line'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @fields.depends('product', 'unit', 'sale',
 | 
			
		||||
                    '_parent_sale.party', '_parent_sale.invoice_party',
 | 
			
		||||
                    '_parent_sale.account_analytic', 'analytic_accounts',
 | 
			
		||||
@@ -44,13 +42,13 @@ class SaleLine(metaclass=PoolMeta):
 | 
			
		||||
 | 
			
		||||
        self.unit_price = self.compute_unit_price()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        self.type = 'line'
 | 
			
		||||
        self.amount = self.on_change_with_amount()
 | 
			
		||||
 | 
			
		||||
        self.analytic_accounts = tuple()
 | 
			
		||||
        try:
 | 
			
		||||
            self.analytic_accounts += ({'root': self.sale.account_analytic.root,
 | 
			
		||||
            self.analytic_accounts += (
 | 
			
		||||
                {'root': self.sale.account_analytic.root,
 | 
			
		||||
                 'account': self.sale.account_analytic},)
 | 
			
		||||
        except:
 | 
			
		||||
            pass
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            raise ValidationError(f"Se produjo un error: {e}")
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								setup.py
									
									
									
									
									
								
							@@ -39,7 +39,7 @@ 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_analytic_operation'
 | 
			
		||||
name = 'trytond_analytic_operations'
 | 
			
		||||
 | 
			
		||||
download_url = 'http://downloads.tryton.org/%s.%s/' % (
 | 
			
		||||
    major_version, minor_version)
 | 
			
		||||
@@ -85,19 +85,20 @@ setup(name=name,
 | 
			
		||||
    download_url=download_url,
 | 
			
		||||
    project_urls={
 | 
			
		||||
        "Bug Tracker": 'https://bugs.tryton.org/',
 | 
			
		||||
        "Documentation": 'https://docs.tryton.org/projects/modules-analytic-operation',
 | 
			
		||||
        "Documentation":
 | 
			
		||||
            'https://docs.tryton.org/projects/modules-analytic-operation',
 | 
			
		||||
        "Forum": 'https://www.tryton.org/forum',
 | 
			
		||||
        "Source Code": 'https://hg.tryton.org/modules/analytic_operation',
 | 
			
		||||
        "Source Code": 'https://hg.tryton.org/modules/analytic_operations',
 | 
			
		||||
        },
 | 
			
		||||
    keywords='analitic, invoice, purchase, sale',
 | 
			
		||||
    package_dir={'trytond.modules.analytic_operation': '.'},
 | 
			
		||||
    package_dir={'trytond.modules.analytic_operations': '.'},
 | 
			
		||||
    packages=(
 | 
			
		||||
        ['trytond.modules.analytic_operation']
 | 
			
		||||
        + ['trytond.modules.analytic_operation.%s' % p
 | 
			
		||||
        ['trytond.modules.analytic_operations']
 | 
			
		||||
        + ['trytond.modules.analytic_operations.%s' % p
 | 
			
		||||
            for p in find_packages()]
 | 
			
		||||
        ),
 | 
			
		||||
    package_data={
 | 
			
		||||
        'trytond.modules.analytic_operation': (info.get('xml', [])
 | 
			
		||||
        'trytond.modules.analytic_operations': (info.get('xml', [])
 | 
			
		||||
            + ['tryton.cfg', 'view/*.xml', 'locale/*.po', '*.fodt',
 | 
			
		||||
                'icons/*.svg', 'tests/*.rst']),
 | 
			
		||||
        },
 | 
			
		||||
@@ -150,6 +151,6 @@ setup(name=name,
 | 
			
		||||
    zip_safe=False,
 | 
			
		||||
    entry_points="""
 | 
			
		||||
    [trytond.modules]
 | 
			
		||||
    analytic_operation = trytond.modules.analytic_operation
 | 
			
		||||
    analytic_operations = trytond.modules.analytic_operations
 | 
			
		||||
    """,  # noqa: E501
 | 
			
		||||
    )
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@ from trytond.tests.test_tryton import ModuleTestCase
 | 
			
		||||
 | 
			
		||||
class AnalyticOperationTestCase(ModuleTestCase):
 | 
			
		||||
    "Test Analytic Operation module"
 | 
			
		||||
    module = 'analytic_operation'
 | 
			
		||||
    module = 'analytic_operations'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
del ModuleTestCase
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								tox.ini
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								tox.ini
									
									
									
									
									
								
							@@ -4,8 +4,8 @@ envlist = {py37,py38,py39,py310}-{sqlite,postgresql}
 | 
			
		||||
[testenv]
 | 
			
		||||
extras = test
 | 
			
		||||
commands =
 | 
			
		||||
    coverage run --include=./**/analytic_operation/* -m unittest discover -s tests
 | 
			
		||||
    coverage report --include=./**/analytic_operation/* --omit=*/tests/*
 | 
			
		||||
    coverage run --include=./**//* -m unittest discover -s tests
 | 
			
		||||
    coverage report --include=./**/analytic_operations/* --omit=*/tests/*
 | 
			
		||||
deps =
 | 
			
		||||
    coverage
 | 
			
		||||
    postgresql: psycopg2 >= 2.7.0
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
[tryton]
 | 
			
		||||
version=6.4
 | 
			
		||||
version=7.6.0
 | 
			
		||||
depends:
 | 
			
		||||
    ir
 | 
			
		||||
    purchase
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user