100 lines
3.8 KiB
Python
100 lines
3.8 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||
|
|
||
|
from datetime import timedelta
|
||
|
|
||
|
from odoo.fields import Datetime
|
||
|
from odoo.tests.common import TransactionCase
|
||
|
|
||
|
|
||
|
class TestWebsiteEventSaleCommon(TransactionCase):
|
||
|
|
||
|
@classmethod
|
||
|
def setUpClass(cls):
|
||
|
super(TestWebsiteEventSaleCommon, cls).setUpClass()
|
||
|
|
||
|
cls.env.company.country_id = cls.env.ref('base.us')
|
||
|
cls.currency_test = cls.env['res.currency'].create({
|
||
|
'name': 'eventX',
|
||
|
'rounding': 0.01,
|
||
|
'symbol': 'EX',
|
||
|
})
|
||
|
cls.partner = cls.env['res.partner'].create({'name': 'test'})
|
||
|
cls.env['res.currency.rate'].search([]).unlink()
|
||
|
cls.rate = cls.env['res.currency.rate'].create({
|
||
|
'company_id': cls.env.company.id,
|
||
|
'currency_id': cls.currency_test.id,
|
||
|
'name': '2022-01-01',
|
||
|
'rate': 10,
|
||
|
})
|
||
|
cls.zero_tax = cls.env['account.tax'].sudo().create({
|
||
|
'name': 'Tax 0',
|
||
|
'amount': 0,
|
||
|
'tax_group_id': cls.env['account.tax.group'].create({
|
||
|
'name': 'Text Tax Group',
|
||
|
'company_id': cls.env.company.id,
|
||
|
}).id
|
||
|
})
|
||
|
cls.product_event = cls.env['product.product'].create({
|
||
|
'type': 'service',
|
||
|
'service_tracking': 'event',
|
||
|
'list_price': 100,
|
||
|
'name': 'Event Registration No Company Assigned',
|
||
|
'taxes_id': [(6, 0, cls.zero_tax.ids)],
|
||
|
})
|
||
|
|
||
|
cls.event, cls.event_2 = cls.env['event.event'].create([
|
||
|
{
|
||
|
'date_begin': (Datetime.today() + timedelta(days=5)).strftime('%Y-%m-%d 07:00:00'),
|
||
|
'date_end': (Datetime.today() + timedelta(days=5)).strftime('%Y-%m-%d 16:30:00'),
|
||
|
'name': 'Pycon',
|
||
|
'user_id': cls.env.ref('base.user_admin').id,
|
||
|
'website_published': True,
|
||
|
},
|
||
|
{
|
||
|
'date_begin': (Datetime.today() + timedelta(days=5)).strftime('%Y-%m-%d 07:00:00'),
|
||
|
'date_end': (Datetime.today() + timedelta(days=5)).strftime('%Y-%m-%d 16:30:00'),
|
||
|
'name': 'Conference for Architects TEST',
|
||
|
'user_id': cls.env.ref('base.user_admin').id,
|
||
|
'website_published': True,
|
||
|
}
|
||
|
])
|
||
|
cls.ticket, cls.ticket_2 = cls.env['event.event.ticket'].create([
|
||
|
{
|
||
|
'event_id': cls.event.id,
|
||
|
'name': 'Standard',
|
||
|
'product_id': cls.product_event.id,
|
||
|
'price': 100,
|
||
|
},
|
||
|
{
|
||
|
'event_id': cls.event_2.id,
|
||
|
'name': 'Standard',
|
||
|
'product_id': cls.product_event.id,
|
||
|
'price': 1000,
|
||
|
}
|
||
|
])
|
||
|
|
||
|
cls.current_website = cls.env['website'].get_current_website()
|
||
|
cls.pricelist = cls.env['product.pricelist'].create({'name': 'Base Pricelist'})
|
||
|
|
||
|
cls.so = cls.env['sale.order'].create({
|
||
|
'company_id': cls.env.company.id,
|
||
|
'partner_id': cls.partner.id,
|
||
|
'pricelist_id': cls.pricelist.id,
|
||
|
})
|
||
|
|
||
|
def create_pricelist(currency, name):
|
||
|
return cls.env['product.pricelist'].create({
|
||
|
'currency_id': currency.id,
|
||
|
'item_ids': [(5, 0, 0), (0, 0, {
|
||
|
'applied_on': '3_global',
|
||
|
'compute_price': 'percentage',
|
||
|
'percent_price': 10,
|
||
|
})],
|
||
|
'name': name,
|
||
|
'selectable': True,
|
||
|
})
|
||
|
|
||
|
cls.pricelist_without_discount = create_pricelist(currency=cls.env.company.currency_id, name='EUR Without Discount Included')
|
||
|
cls.ex_pricelist_without_discount = create_pricelist(currency=cls.currency_test, name='EX Without Discount Included')
|