# -*- 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')