first commit
This commit is contained in:
106
modules/commission/tests/scenario_agent_selection.rst
Normal file
106
modules/commission/tests/scenario_agent_selection.rst
Normal file
@@ -0,0 +1,106 @@
|
||||
========================
|
||||
Agent Selection Scenario
|
||||
========================
|
||||
|
||||
Imports::
|
||||
|
||||
>>> import datetime as dt
|
||||
|
||||
>>> from proteus import Model
|
||||
>>> from trytond.modules.account.tests.tools import create_chart, get_accounts
|
||||
>>> from trytond.modules.company.tests.tools import create_company, get_company
|
||||
>>> from trytond.tests.tools import activate_modules, assertEqual, set_user
|
||||
|
||||
>>> today = dt.date.today()
|
||||
>>> yesterday = today - dt.timedelta(days=1)
|
||||
|
||||
Activate modules::
|
||||
|
||||
>>> config = activate_modules(['commission', 'sale'], create_company, create_chart)
|
||||
|
||||
Get company::
|
||||
|
||||
>>> company = get_company()
|
||||
|
||||
Get accounts::
|
||||
|
||||
>>> accounts = get_accounts()
|
||||
|
||||
Create employee::
|
||||
|
||||
>>> Party = Model.get('party.party')
|
||||
>>> Employee = Model.get('company.employee')
|
||||
>>> employee = Employee()
|
||||
>>> party = Party(name='Employee')
|
||||
>>> party.save()
|
||||
>>> employee.party = party
|
||||
>>> employee.company = company
|
||||
>>> employee.save()
|
||||
|
||||
Create customers::
|
||||
|
||||
>>> customer = Party(name='Customer')
|
||||
>>> customer.save()
|
||||
>>> other_customer = Party(name='Other Customer')
|
||||
>>> other_customer.save()
|
||||
|
||||
Create agent::
|
||||
|
||||
>>> Agent = Model.get('commission.agent')
|
||||
>>> agent_party = Party(name='Agent')
|
||||
>>> agent_party.save()
|
||||
>>> agent = Agent(party=agent_party)
|
||||
>>> agent.type_ = 'agent'
|
||||
>>> agent.currency = company.currency
|
||||
>>> selection = agent.selections.new()
|
||||
>>> selection.start_date = today
|
||||
>>> selection.party = customer
|
||||
>>> selection = agent.selections.new()
|
||||
>>> selection.employee = employee
|
||||
>>> agent.save()
|
||||
|
||||
Create sale::
|
||||
|
||||
>>> Sale = Model.get('sale.sale')
|
||||
>>> sale = Sale()
|
||||
>>> sale.party = customer
|
||||
>>> sale.save()
|
||||
|
||||
The agent is assigned on quotation::
|
||||
|
||||
>>> sale.agent
|
||||
>>> sale.click('quote')
|
||||
>>> sale.state
|
||||
'quotation'
|
||||
>>> assertEqual(sale.agent, agent)
|
||||
|
||||
Agent is not set for yesterday sales::
|
||||
|
||||
>>> Sale = Model.get('sale.sale')
|
||||
>>> sale = Sale()
|
||||
>>> sale.sale_date = yesterday
|
||||
>>> sale.party = customer
|
||||
>>> sale.click('quote')
|
||||
>>> sale.state
|
||||
'quotation'
|
||||
>>> sale.agent
|
||||
|
||||
Link user to employee::
|
||||
|
||||
>>> User = Model.get('res.user')
|
||||
>>> user = User(config.user)
|
||||
>>> user.employees.append(employee)
|
||||
>>> user.employee = employee
|
||||
>>> user.save()
|
||||
>>> set_user(user.id)
|
||||
|
||||
Creating a sale and test agent is assigned::
|
||||
|
||||
>>> sale = Sale()
|
||||
>>> sale.party = other_customer
|
||||
>>> sale.agent
|
||||
>>> sale.click('quote')
|
||||
>>> sale.state
|
||||
'quotation'
|
||||
>>> assertEqual(sale.quoted_by, employee)
|
||||
>>> assertEqual(sale.agent, agent)
|
||||
Reference in New Issue
Block a user