
|
Available Workflow Actions
|
|
If you were logged in you would be able to see more operations.
|
|
|
CiviCRM
Created: 07/May/08 09:55 PM
Updated: 31/Jul/08 07:19 PM
|
|
| Component/s: |
CiviEvent
|
| Affects Version/s: |
2.0
|
| Fix Version/s: |
2.1
|
|
| Verified for 2.1: |
Yes
|
| Verified for 2.0: |
No
|
|
Allow admin's to do allow discounts for an event on the basis of dates.
Schema Changes:
Create a Table `civicrm_discount` with fields entity_table,entity_id, option_group_id, start_end, end_date.
Change the 'Event Fees' form to include option to record discount
1. For "Event Fees" Form, change the fieldset name from 'Fee Levels' to 'Regular Fee Levels', which shows current / undiscounted grid.
2. Discounts by Signup Date? checkbox, default = false
(if checked, the following set appears)
-+ Discount Name
-+ Start Date
-+ End Date
and Add more using show hide functionality.
While adding next Discount set, the default value of Start Date of a second discount = End Date of first discount + 1.
Form Rule will ensure values for all the above for a discount.
To keep it simple, the form rule also enforces non-overlapping set of discount start and end dates.
Button 'Post & Reload Discount' when hit will have a grid built in the form.
For every Discount, the grid will have a corresponding column injected with label = Discount Name
(in ascending order of the discount dates).
POSTPROCESS:
The discounted sets are added as new option groups to `civicrm_option_group` table with label = Discount Name
and the fee levels are stored correspondingly the `civicrm_option_value` table
and the discount information
(entity_id(as event_id), entity_table(as civicrm_event),option_group_id(from discount set),start_end, end_date)
will go in the `civicrm_discount` table.
NOTE: Changes to the civicrm_participant record :The Label corresponding to the selected event
level for each participant should be stored in participant.fee_level
and the actual amount for each participant is stored in fee_amount.
OFFLINE Event Registration Form :
CREATE :On the basis of event, load the fee level (by default show the discount set whose date range contains registration date) and
give admin ability to choose from select box the discount set he wants for the participant.
EDIT : Event level (discounted set) should be uneditable if there is a corresponding online contribution for the participant but should display fee_level + fee amount)
ONLINE :
Discount Set get loaded on the basis of Registration Date.
Export/Search - should handle fee level and fee amount separately.
|
|
Description
|
Allow admin's to do allow discounts for an event on the basis of dates.
Schema Changes:
Create a Table `civicrm_discount` with fields entity_table,entity_id, option_group_id, start_end, end_date.
Change the 'Event Fees' form to include option to record discount
1. For "Event Fees" Form, change the fieldset name from 'Fee Levels' to 'Regular Fee Levels', which shows current / undiscounted grid.
2. Discounts by Signup Date? checkbox, default = false
(if checked, the following set appears)
-+ Discount Name
-+ Start Date
-+ End Date
and Add more using show hide functionality.
While adding next Discount set, the default value of Start Date of a second discount = End Date of first discount + 1.
Form Rule will ensure values for all the above for a discount.
To keep it simple, the form rule also enforces non-overlapping set of discount start and end dates.
Button 'Post & Reload Discount' when hit will have a grid built in the form.
For every Discount, the grid will have a corresponding column injected with label = Discount Name
(in ascending order of the discount dates).
POSTPROCESS:
The discounted sets are added as new option groups to `civicrm_option_group` table with label = Discount Name
and the fee levels are stored correspondingly the `civicrm_option_value` table
and the discount information
(entity_id(as event_id), entity_table(as civicrm_event),option_group_id(from discount set),start_end, end_date)
will go in the `civicrm_discount` table.
NOTE: Changes to the civicrm_participant record :The Label corresponding to the selected event
level for each participant should be stored in participant.fee_level
and the actual amount for each participant is stored in fee_amount.
OFFLINE Event Registration Form :
CREATE :On the basis of event, load the fee level (by default show the discount set whose date range contains registration date) and
give admin ability to choose from select box the discount set he wants for the participant.
EDIT : Event level (discounted set) should be uneditable if there is a corresponding online contribution for the participant but should display fee_level + fee amount)
ONLINE :
Discount Set get loaded on the basis of Registration Date.
Export/Search - should handle fee level and fee amount separately.
|
Show » |
|
---------------------------------------------
Bugs
-------
* This behavior described in the spec is missing: "While adding next Discount set, the default value of Start Date of a second discount = End Date of first discount + 1."
* Non-overlapping formRule should NOT allow same-date overlaps. Example: Discount 1 ends Sept 1 while Discount 2 starts Sept 1. This should not be allowed since we won't be able to know which to use on Sept 1.
* PostProcess on Discount Fees breaks when you have > 1 discount and you eliminate a fee amount for a row. EXAMPLE:
- Enter two discount sets with 3 labels and put amounts in all 6 cells, save
- Go back to the form and remove an amount in just one of the cells (e.g. you don't want to offer that fee level for that particular discount). Save again.
- Go back to the form. The Fee label for the row you've removed one fee amount from is now empty. If you removed a fee in the 2nd row, the 3rd row fee has "moved up" to the second row also. If you save again, the entire row is gone (since we remove rows which have empty labels).
* If no fees have been entered for a Discount Set, the civicrm_discount record is not created when you click Save. This is confusing. I think the best approach is to handle this as a form rule.... If there is a discount set in the form values AND that set has NO fees, put up the formRule error:
"Please add one or more discount fees for the $discountName discount set."
* The (-) on Discount Sets currently just hides the set - which is pretty useless (and users need a way to delete a discount set). Clicking that icon should do the following:
- Jscript confirm: "Are you sure you want to delete this discount set and the associated discount fees?"
- On confirm, postProcess should delete that discount record and the associated option group / option values.
* Online event registration (test-drive w/ PP Pro): Registered Email value is empty in emailed receipt
* Online event registration (test-drive w/ PP Pro): Inserted contribution record is writing the payment amount to the contribution.fee_amount column. This column should be NULL - only the total_amount and net_amount columns should be set. NOTE: This bug occurs whether or not a discounted fee is used.
Improvements
-------------------
* The browser should locate to the id="discount" section of the page when the form is reloaded after the "refresh" button is clicked (i.e. put the user focus into the discounts area of the form). You can do this by adding #discount at the end of the post URL since the discounts fieldset has that id.
* i think that most users will have the same fee level labels in their discount set as they have in their regular fee table. When the Discounted Fees table is first created (initial "refresh" with a discount set entered) - would be very helpful to propagate the Fee Label values from the "Regular Fees" table into the Discount Fees table - labels column. EXAMPLE: For our sample Solstice Concert Event, I'd get the "Bass", "Tenor" and "Soprano" labels copied to the Discounts table.
* Would be useful to include discount set "name" in Participant Exports (include this in "Primary fields" export and allow user to select it for inclusion in 'mapped' participant export.