107 lines
2.6 KiB
ReStructuredText
107 lines
2.6 KiB
ReStructuredText
========================
|
|
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)
|