227 lines
8.6 KiB
YAML
227 lines
8.6 KiB
YAML
- |
|
|
In order to test the 'event' module in OpenERP, we create a new event.
|
|
|
|
- |
|
|
Given that I have product "Ticket for Concert".
|
|
-
|
|
!record {model: product.product, id: product_product_ticketforconcert0}:
|
|
categ_id: product.cat1
|
|
cost_method: standard
|
|
list_price: 68.0
|
|
mes_type: fixed
|
|
name: Ticket for Concert
|
|
procure_method: make_to_stock
|
|
standard_price: 15.0
|
|
supply_method: buy
|
|
type: product
|
|
uom_id: product.product_uom_unit
|
|
uom_po_id: product.product_uom_unit
|
|
volume: 0.0
|
|
warranty: 0.0
|
|
weight: 0.0
|
|
weight_net: 0.0
|
|
|
|
- |
|
|
Given that I have also Event type "Conference".
|
|
-
|
|
!record {model: event.type, id: event_type_conference0}:
|
|
name: Conference
|
|
- |
|
|
I create partner "Mark Johnson" and and I provide an address to this
|
|
new customer, as well as an email "info@mycustomer.com".
|
|
-
|
|
!record {model: res.partner, id: res_partner_markjohnson0}:
|
|
address:
|
|
- city: Bruxelles
|
|
country_id: base.be
|
|
job_ids:
|
|
- contact_id: base_contact.res_partner_contact_jacot0
|
|
function: CTO
|
|
name: base.res_partner_maxtor
|
|
sequence_partner: 0.0
|
|
state: current
|
|
street: Rue des Palais 51, bte 33
|
|
type: default
|
|
zip: '1000'
|
|
email: 'info@mycustomer.com'
|
|
credit_limit: 0.0
|
|
lang: en_US
|
|
name: Mark Johnson
|
|
property_account_payable: account.a_pay
|
|
property_account_receivable: account.a_recv
|
|
|
|
- |
|
|
we create it with a "Conference on OpenERP Offshore Business" event and provide "Beginning date", "Ending Date", "Product" as Concert Ticket.
|
|
-
|
|
!record {model: event.event, id: event_event_conference0}:
|
|
code: C/004
|
|
date_begin: '2010-06-07 13:39:00'
|
|
date_end: '2010-06-10 13:39:00'
|
|
name: Conference on OpenERP Offshore Business.
|
|
product_id: 'product_product_ticketforconcert0'
|
|
register_max: 0.0
|
|
register_min: 0.0
|
|
state: draft
|
|
type: 'event_type_conference0'
|
|
|
|
- |
|
|
we set the limit of registrations to this event using "Minimum Registrations" 2 and "Maximum Registrations" 10
|
|
-
|
|
!python {model: event.event}: |
|
|
self.write(cr, uid, [ref('event_event_conference0')], {'register_max': 10, 'register_min': 2})
|
|
|
|
- |
|
|
We Check that the event is in "Draft" state.
|
|
-
|
|
!assert {model: event.event, id: event_event_conference0}:
|
|
- state == 'draft'
|
|
|
|
- |
|
|
Then we confirm it press on "Confirm Event" button.
|
|
-
|
|
!python {model: event.event}: |
|
|
self.button_confirm(cr, uid, [ref("event_event_conference0")], {"active_ids": [ref("event.menu_event_event")]})
|
|
|
|
- |
|
|
Check that Event is "confirmed" or not.
|
|
-
|
|
!assert {model: event.event, id: event_event_conference0}:
|
|
- state == 'confirm'
|
|
|
|
- |
|
|
person "Mark Johnson" want to confirm their registrations. for that
|
|
I create New Registration for "Conference on OpenERP Offshore Business.
|
|
-
|
|
!record {model: event.registration, id: event_registration_registrationjacot0}:
|
|
badge_name: Jacot
|
|
badge_partner: Mark Johnson
|
|
badge_title: M.
|
|
contact_id: base_contact.res_partner_contact_jacot0
|
|
date_deadline: '2010-06-07 13:39:00'
|
|
event_id: event.event_event_conference0
|
|
event_product: Ticket for Concert
|
|
name: 'Registration: Jacot'
|
|
partner_id: 'res_partner_markjohnson0'
|
|
partner_invoice_id: 'res_partner_markjohnson0'
|
|
unit_price: 68.0
|
|
- |
|
|
I check that "Number of registration" is less than "Maximum registration" defined in "Conference on OpenERP Offshore Business" event.
|
|
if not then confirmation will fail because its greater then the Maximum registration.
|
|
-
|
|
!python {model: event.event}: |
|
|
obj_register = self.pool.get('event.registration')
|
|
event_id1 = self.browse(cr, uid, [ref('event_event_conference0')])[0]
|
|
register_ids = obj_register.search(cr, uid, [('event_id', '=', event_id1.id)])
|
|
register_id = obj_register.browse(cr, uid, register_ids)[0]
|
|
assert register_id.nb_register <= event_id1.register_max
|
|
|
|
- |
|
|
And Confirm that Registration by click on "Confirm Registration" button of Registraion form.
|
|
-
|
|
!python {model: event.registration}: |
|
|
self.check_confirm(cr, uid, [ref("event_registration_registrationjacot0")], {"active_ids": [ref("event.menu_action_registration")]})
|
|
|
|
- |
|
|
one other Person "Zen" also want to confirm their Registraions. so
|
|
They create New registraion for This event.
|
|
-
|
|
!record {model: event.registration, id: event_registration_registrationzen0}:
|
|
badge_name: Zen
|
|
badge_partner: China Export
|
|
contact_id: base_contact.res_partner_contact_zen0
|
|
date_deadline: '2010-06-07 13:39:00'
|
|
event_id: event.event_event_conference0
|
|
event_product: Ticket for Concert
|
|
name: 'Registration: Zen'
|
|
partner_id: base.res_partner_3
|
|
partner_invoice_id: base.res_partner_3
|
|
unit_price: 68.0
|
|
|
|
- |
|
|
And Confirm that Registration by click on "Confirm Registration" button of Registraion form.
|
|
-
|
|
!python {model: event.registration}: |
|
|
self.check_confirm(cr, uid, [ref("event_registration_registrationzen0")], {"active_ids": [ref("event.menu_action_registration")]})
|
|
|
|
- |
|
|
Third person create New Registration for "Conference on OpenERP Offshore Business" event.
|
|
-
|
|
!record {model: event.registration, id: event_registration_registrationpassot0}:
|
|
badge_name: Passot
|
|
badge_partner: Mediapole SPRL
|
|
badge_title: M.
|
|
contact_id: base_contact.res_partner_contact_passot0
|
|
date_deadline: '2010-06-07 13:39:00'
|
|
email_from: info@mediapole.net
|
|
event_id: 'event_event_conference0'
|
|
event_product: Ticket for Concert
|
|
name: 'Registration: Passot'
|
|
partner_id: base.res_partner_8
|
|
partner_invoice_id: base.res_partner_8
|
|
unit_price: 68.0
|
|
- |
|
|
This person cannot Confirm their registration.so I check that state is "Unconfirmed".
|
|
-
|
|
!assert {model: event.registration, id: event_registration_registrationpassot0}:
|
|
- state == 'draft'
|
|
|
|
- |
|
|
I Check that the total number of confirmed is 2 and unconfirmed registrations 1.
|
|
-
|
|
!python {model: event.event}: |
|
|
obj_event = self.browse(cr, uid, [ref('event_event_conference0')])[0]
|
|
assert obj_event.register_current == '2'
|
|
assert obj_event.register_prospect == '1'
|
|
|
|
- |
|
|
We check all registered partners to this event using the wizard "List Register Partners".
|
|
-
|
|
!record {model: event.partners.list, id: event_partners_list_0}:
|
|
{}
|
|
-
|
|
I click on "Open Partners" button of "List Register Partners" wizard.
|
|
-
|
|
!python {model: event.partners.list}: |
|
|
self.list_partners(cr, uid, [ref("event_partners_list_0")], {"active_ids":
|
|
[ref("event.event_event_conference0")]})
|
|
|
|
- |
|
|
This event is finished by click on "Event Done" button of this event form.
|
|
-
|
|
!python {model: event.event}: |
|
|
self.button_done(cr, uid, [ref("event.event_event_conference0")], {"active_ids": [ref("event.menu_event_event")] })
|
|
- |
|
|
We can create invoice if the registration is in "Open" state otherwise it gives the warning to the user.
|
|
so I check that Registration is in "Open" state before click on "Make Invoices."
|
|
-
|
|
!assert {model: event.registration, id: event_registration_registrationjacot0}:
|
|
- state == 'open'
|
|
- |
|
|
Now, I will invoice the participant who have address using "Make Invoices". This wizard will also give the number of invoices are created and rejected.
|
|
Create invoice will be linked to Invoice Field available on Payments tab of registrations
|
|
|
|
-
|
|
!record {model: event.make.invoice, id: event_make_invoice_0}:
|
|
{}
|
|
- |
|
|
I click on "Done" button of this "Make Invoices" wizard.
|
|
-
|
|
!python {model: event.make.invoice}: |
|
|
self.make_invoice(cr, uid, [ref("event_make_invoice_0")], {"active_ids": [ref("event_registration_registrationzen0")]})
|
|
- |
|
|
I check that Invoice for this partner is create or not.
|
|
-
|
|
!python {model: event.registration}: |
|
|
obj_event_reg = self.pool.get('event.registration')
|
|
obj_lines = self.pool.get('account.invoice.line')
|
|
inv_obj = self.pool.get('account.invoice')
|
|
data_event_reg = obj_event_reg.browse(cr, uid, [ref('event_registration_registrationzen0')], context=context)[0]
|
|
invoice_ids = inv_obj.search(cr, uid, [('partner_id', '=', data_event_reg.partner_invoice_id.id)])
|
|
|
|
if invoice_ids:
|
|
invoice_id = inv_obj.browse(cr, uid, invoice_ids)[0]
|
|
line_ids = obj_lines.search(cr, uid, [('product_id', '=', data_event_reg.event_id.product_id.id), ('invoice_id', '=', invoice_id.id), ('price_unit', '=', data_event_reg.unit_price)])
|
|
line_id = obj_lines.browse(cr, uid, line_ids)[0]
|
|
assert line_id.product_id == data_event_reg.event_id.product_id
|
|
assert data_event_reg.partner_id == invoice_id.partner_id
|
|
assert invoice_id.address_invoice_id == data_event_reg.partner_address_id |