Download - Parramatta City

Transcript
Page 1: Parramatta City

Parramatta Citymeals on wheels (MOW)

Brian ShaughnessyLighthouse Consulting & Design

www.lcdservices.biz

Page 2: Parramatta City

background district/region of Sydney provides services to the residents CiviCRM used extensively for back-office

supporto meals on wheels

Page 3: Parramatta City

meals on wheels serves elderly citizens of the district delivers meals at discounted prices M-F provides various options

o chilled/frozen mealso soupso saladso juiceo dessert

Page 4: Parramatta City

meals on wheels creative use of CiviCRM architecture allows full integration with other services

managed through the site required extensive customization, but also

relies heavily on the core data structures

Page 5: Parramatta City

activity record clients place orders on a weekly basis order details

o week/year [one order per week/year; future only]o exceptions [skipped by bulk generator]

custom data set for M-F with fields for each meal type

dietary details stored in custom data attached to contact record

Page 6: Parramatta City
Page 7: Parramatta City

payment record separated order (activity) from financial

obligation (contribution) modeled after event/membership structure

o link activity to contribution o orders_activity_payment (activity_id, contribution_id)

added support for > 1 payment per order

Page 8: Parramatta City

payment record auto-created with activity order calculates total due based on standard meal

rateso constants defined in codeo eventually place in option values

detail the order in contribution record record changes to the order

o adjustment to contribution recordo order history through notes (>1 per contrib)

Page 9: Parramatta City
Page 10: Parramatta City
Page 11: Parramatta City
Page 12: Parramatta City

bulk order generation clients place orders on a weekly basis most orders are exactly the same from one

week to the next needed to develop method for quickly

generating future-week activity records based on prior week

Page 13: Parramatta City

bulk order generation manually triggered, but options locked down log table tracks bulk order history

o determine last week runo log order counts and activity IDs

Page 14: Parramatta City
Page 15: Parramatta City

bulk order: special handling order exceptions

o skipped by bulk order generatoro most immediate prior non-exception order used

account for existing orders for a given week/year

on-holdo hold start date/hold end dateo if any overlap, skip bulk generation

Page 16: Parramatta City

bulk order: special handling third party payer

o soft credit to cliento payment to TPP entityo handled with relationship defining when TPP

begins/ends admin fee

o system default; contact override direct deposit

o set contrib status = completedo else = pending

Page 17: Parramatta City

stock management set starting values update when order is

created/updated/deleted special contact: Parramatta Stock Manager stock adjustment activity types dashlet report to summarize current levels summary data handled in stock_log table

o tracks current levels line item stored as activities

Page 18: Parramatta City
Page 19: Parramatta City

reporting ughhhh… originally planned to use

reporting frameworko specs required many unique

calculationso unique data handling

(field criteria interaction)o too many options

most reports built (or rebuilt) as purely custom implementations

Page 20: Parramatta City

packaging labels generate by week number/year calculate number of packages based on

meal/salad/soup/dessert combo track frozen/chilled

Page 21: Parramatta City

packaging labels

Page 22: Parramatta City

full delivery run sheet used by delivery staff each contact is assigned a run number

(geographic assignment) MS Word export (scalability/easy to modify)

Page 23: Parramatta City

full delivery run sheet

Page 24: Parramatta City

order invoices generate invoices for pending payments or by

date range

Page 25: Parramatta City

order invoices

Page 26: Parramatta City

order statements filter by payment status, contact, date range calculate balance based on various criteria

Page 27: Parramatta City

order statement

Page 28: Parramatta City

other stuff active services

o custom data groupo other data groups dependent on active status

Page 29: Parramatta City

quarterly stats report generate calculations per service for a variety

of stats

Page 30: Parramatta City

quarterly stats report

Page 31: Parramatta City

what I’d do differently… torture by custom field proliferation… move as much as possible into dedicated CRM

path spend more time working through data model

with client better method for classifying meal field types spend more time developing specs. for report

requirements (much time was spent, but it always seems like more is needed)

Page 32: Parramatta City

challenges deciding what to lock down to prevent user-

created failures date-model (week/year): effective for the

situation, but required some "translation" for end users

end of year wrap-around a pain mission-critical system with constantly

evolving specs

Page 33: Parramatta City

project status core system in production for approx. 1 year ongoing report/statement/invoice tweaking

for quite some time currently wrapping up final adjustments for

reports and closing the project