Parramatta City

of 33 /33
Parramatta City meals on wheels (MOW) Brian Shaughnessy Lighthouse Consulting & Design

Embed Size (px)


Parramatta City. meals on wheels (MOW). Brian Shaughnessy Lighthouse Consulting & Design background. district/region of Sydney provides services to the residents CiviCRM used extensively for back-office support meals on wheels. meals on wheels. - PowerPoint PPT Presentation

Transcript of Parramatta City


Parramatta Citymeals on wheels (MOW)Brian ShaughnessyLighthouse Consulting &

backgrounddistrict/region of Sydneyprovides services to the residentsCiviCRM used extensively for back-office supportmeals on wheels

meals on wheelsserves elderly citizens of the districtdelivers meals at discounted prices M-Fprovides various optionschilled/frozen mealssoupssaladsjuicedessert

meals on wheelscreative use of CiviCRM architectureallows full integration with other services managed through the siterequired extensive customization, but also relies heavily on the core data structuresactivity recordclients place orders on a weekly basisorder detailsweek/year [one order per week/year; future only]exceptions [skipped by bulk generator]custom data set for M-F with fields for each meal typedietary details stored in custom data attached to contact record

payment recordseparated order (activity) from financial obligation (contribution)modeled after event/membership structurelink activity to contribution orders_activity_payment (activity_id, contribution_id)added support for > 1 payment per order

payment recordauto-created with activity ordercalculates total due based on standard meal ratesconstants defined in codeeventually place in option valuesdetail the order in contribution recordrecord changes to the orderadjustment to contribution recordorder history through notes (>1 per contrib)

bulk order generationclients place orders on a weekly basismost orders are exactly the same from one week to the nextneeded to develop method for quickly generating future-week activity records based on prior weekbulk order generationmanually triggered, but options locked downlog table tracks bulk order historydetermine last week runlog order counts and activity IDs

bulk order: special handlingorder exceptionsskipped by bulk order generatormost immediate prior non-exception order usedaccount for existing orders for a given week/yearon-holdhold start date/hold end dateif any overlap, skip bulk generation

bulk order: special handlingthird party payersoft credit to clientpayment to TPP entityhandled with relationship defining when TPP begins/endsadmin feesystem default; contact overridedirect depositset contrib status = completedelse = pending

stock managementset starting valuesupdate when order is created/updated/deletedspecial contact: Parramatta Stock Managerstock adjustment activity typesdashlet report to summarize current levelssummary data handled in stock_log tabletracks current levelsline item stored as activities

reportingughhhhoriginally planned to use reporting frameworkspecs required many unique calculationsunique data handling (field criteria interaction)too many optionsmost reports built (or rebuilt) as purely custom implementations

packaging labelsgenerate by week number/yearcalculate number of packages based on meal/salad/soup/dessert combotrack frozen/chilled

packaging labels

full delivery run sheetused by delivery staffeach contact is assigned a run number (geographic assignment)MS Word export (scalability/easy to modify)

full delivery run sheetorder invoicesgenerate invoices for pending payments or by date range

order invoices

order statementsfilter by payment status, contact, date rangecalculate balance based on various criteria

order statementother stuffactive servicescustom data groupother data groups dependent on active status

quarterly stats reportgenerate calculations per service for a variety of stats

quarterly stats report

what Id do differentlytorture by custom field proliferationmove as much as possible into dedicated CRM pathspend more time working through data model with clientbetter method for classifying meal field typesspend more time developing specs. for report requirements (much time was spent, but it always seems like more is needed)challengesdeciding what to lock down to prevent user-created failuresdate-model (week/year): effective for the situation, but required some "translation" for end usersend of year wrap-around a painmission-critical system with constantly evolving specsproject statuscore system in production for approx. 1 yearongoing report/statement/invoice tweaking for quite some timecurrently wrapping up final adjustments for reports and closing the project