Código fonte para l10n_br_sale_service.tests.test_sale_order_service
# -*- coding: utf-8 -*-
# Copyright (C) 2016 Magno Costa - Akretion
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
from openerp.tests import common
[documentos]class TestSaleOrderService(common.TransactionCase):
[documentos] def setUp(self):
super(TestSaleOrderService, self).setUp()
cr, uid = self.cr, self.uid
# Usefull models
self.ir_model_data = self.registry('ir.model.data')
self.sale_order_line = self.registry('sale.order.line')
self.sale_order = self.registry('sale.order')
self.account_invoice = self.registry('account.invoice')
self.product_id = self.ir_model_data.get_object_reference(
cr, uid, 'product', 'product_product_8')[1]
self.product_service_id = self.ir_model_data.get_object_reference(
cr, uid, 'product', 'product_product_consultant')[1]
# partner Akretion
self.partner_id = self.ir_model_data.get_object_reference(
cr, uid, 'l10n_br_base', 'res_partner_akretion')[1]
[documentos] def test_sale_order_service(self):
cr, uid, context = self.cr, self.uid, {}
# Create sale order with two sale order line
so_id = self.sale_order.create(
cr, uid, vals={
'partner_id': self.partner_id}, context=context)
obj_sale_order = self.sale_order.browse(
cr, uid, [so_id], context=context)
# O onchange abaixo é necessário para preencher a Posição Fiscal
obj_sale_order.onchange_fiscal()
self.sale_order_line.create(
cr, uid,
values={
'order_id': so_id,
'product_id': self.product_id,
'product_uom_qty': 1,
'fiscal_category_id': obj_sale_order.fiscal_category_id.id},
context=context)
self.sale_order_line.create(
cr, uid,
values={
'order_id': so_id,
'product_id': self.product_service_id,
'product_uom_qty': 1,
'fiscal_category_id': obj_sale_order.fiscal_category_id.id},
context=context)
# Confirm sale order
self.sale_order.action_button_confirm(
cr, uid, [so_id], context=context)
# Create Invoice
self.sale_order.manual_invoice(
cr, uid, [so_id], context=context)
for line in obj_sale_order.order_line:
# O onchange abaixo é necessário para preencher as Posições Fiscais
line.onchange_fiscal()
# Verify if the two Invoices were created
count_invoice = 0
for order in obj_sale_order.invoice_ids:
count_invoice += 1
self.assertTrue(count_invoice == 2)