Changelog

Changelog

[2.4.1] - 2023-05-19

Fixes

  • Reworked meal/a la carte selection menu layout to fix various issues (LEAN-91)
  • A la Carte Category display order doesn't properly order the tabs in the selection menu (LEAN-90)

Changes

  • Changed verbiage in Cart confirmation menu to reduce confusion about whether a meal is part of a delivery or is meant to be eaten on that day (LEAN-94)

[2.4.0] - 2023-05-16

Added

  • Add Macro Nutrition functionality

[2.3.0] - 2023-04-25

Added

  • It's now possible to add sides to A la Carte Options (LEAN-74)
  • You can now include a meal ingredient in the sides section of the prep report (LEAN-75)
  • A la Carte options can now be searched for in the site search bar

[2.2.0] - 2023-04-07

Added

  • Added support for Specialty Meal Surcharges

Changed

  • Redesigned "Not in Plan" and "Allergic" indicators in Ingredient Preferences page
  • Updated Meal Selection to use a menu similar to A la Carte instead of a Modal

[2.1.2] - 2023-04-06

Added

  • Added a list of every meal and side an ingredient is part of for easier troubleshooting reasons

[2.1.1] - 2023-03-01

Fixed

  • Shopping List "Needed" column can have infinite decimal places (LEAN-5)
  • Shopping List ingredients were being added multiple times (LEAN-5)
  • Shopping List data isn't updated when meal ingredients are updated (LEAN-5)

[2.1.0] - 2023-02-20

Added

  • Added the Shopping List report, UoM Equivalencies, Micro Ingredients, Shopping List Categories, Par, and Purchase Units (LEAN-5)
  • Added a "Date Created" filter for Members (LEAN-6)

Fixed

  • Add missing headers to Member export (LEAN-7)

[2.0.2] - 2022-08-16

Fixed

  • It was possible for new registrations and renewals to have a delivery before their start date if their start date was moved forward (YLL-110)
  • It was possible for a household to be charged less than the full delivery fee if one member was not receiving a given delivery (YLL-110)

[2.0.1] - 2022-08-10

Added

  • Customer suspension calendar

[2.0.0] - 2022-08-09

Upgrade

  • Upgraded Laravel to v9
  • Upgrade PHP to v8.1

Added

  • Implement webpack

[1.17.5] - 2022-06-28

Changed

  • Switch credits to being applied post-tax instead of pre-tax

Fixed

  • Meals removed by schedule change don't get handled the way Cancelled or Suspended meals do
  • Don't include suspended and cancelled meals when calculating total costs
  • Meals for cancelled users don't always get deleted

[1.17.0] - 2022-05-11

Changed

  • Adjusted processDeliveryChanges to include suspended/cancelled members for proper meal crediting (YLL-107)

[1.16.0] - 2021-11-02

Changed

  • Completely rebuilt billing system (YLL-33)

[1.15.0] - 2021-08-12

Changed

  • Snack prep report only shows the packaging size and the total quantity for that packaging (#21068)
  • Removed the "Total" row in the prep report if there is only 1 ingredient under it (#21068)
  • Remove the Total columns from the Sauce prep report (#21068)

[1.14.4] - 2021-08-10

Fixed

  • Labels don't show a portion size for certain ingredients (#21104)

[1.14.0] - 2021-07-06

Changed

  • Tie the billing error message seen in the Customer Portal strictly to the "Display Billing Message" field on users. When an error occurs, the field will be updated to true and can be turned off in order to stop showing the message for specific users. This fixes a situation where an Authorize.net maintenance window could create billing errors for many different users at once and then they would be unable to hide that message, despite their billing info being correct (#20912)

[1.13.0] - 2021-06-17

All line items are related to #20602

Added

  • Added Prep Report Categories. This allows for (optionally) grouping Ingredients in the Protein and Deli prep reports.
  • Added a setting on ingredients and ingredient categories to determine whether they show the "Total" row in prep report
  • Added a setting on ingredients and ingredient sub categories that determines whether that child element is included in the sums for the "Total" row in the prep report
  • Allow for managing unit conversions on individual units and on ingredients. These conversions are then used in the prep report. This allows for introducing new units later on, and also for saying that 1 slice of deli turkey is 4oz. If an ingredient on a meal is configured with a different ingredient than on the prep report and a conversion exists, it will now be automatically converted
  • Allow for setting which units should be used in the prep report for individual ingredients and ingredient categories
  • Allow for splitting a table into multiple tables based on units (instead of converting, these ingredients will be organized as a separate table with its own units)
  • The order of each top level table in the prep report can now be managed

Fixed

  • Various improvements to how many database queries are required to create the Prep Report. This reduced memory and CPU usage, and also reduced load times by about 15%.
  • Made various fixes and improvements to the styling of the prep report tables to ensure that each column is exactly the same width, even across different tables. This resulted in an overall much cleaner look to the report
  • Prep report pdf page breaks could occur in the middle of individual tables. This would cause the header from one table to appear at the top of the table on the next page. It should no longer be possible for pages to break inside a table

Changed

  • Renamed the "General" sidebar section to "Miscellaneous" to better reflect what is in there and to avoid confusion with the "General Settings" page
  • If a section of the prep report has both total and portion tables (such as Eggs where you have hard boiled and raw eggs), they should now be grouped together rather than separately
  • Switch the prep report from showing 3 decimal places to 2 decimal places
  • The Deli Prep Report can now be itemized by Total
  • Remove the "Total" row and "Count" column from Deli Prep Reports
  • Don't show a secondary unit conversion for Deli Prep Reports unless the top level ingredient is configured to allow it

[1.12.0] - 2021-04-26

Added

  • Allow admins to skip Global Messages when they are using the "Login As" impersonation functionality (#20673)

Fixed

  • Global Message breadcrumbs contained a bad link

[1.11.0] - 2021-01-27

Added

  • Added new Prep Report and Prep Report Labels (#19806)
    • Also added settings on all meal ingredients that allow for determining if they should be included or not
  • Added a secondary Save button on Meals that allow for skipping regeneration (#19806)

Fixed

  • All reports were named "document.pdf" by default when downloaded

[1.10.0] - 2021-01-19

Changed

  • Completely overhaul the permission system to be much more granular and flexible, as well as to allow for changing the permissions in the dashboard (#19291)

[1.9.0] - 2021-01-11

Added

  • Can now mark a meal as having "limited" availability, meaning it cannot be selected as a Client's Choice unless the meal is scheduled to be served for that meal. It also prevents the meal from being used for Meal Alternates (#19006)

Fixes

  • Schedule day calculations use the current year as the start, not the year of the date. This resulted in meals that were generated in December for the month of January using the wrong meal day (#19942)
  • Permanent percentage surcharges are always displayed as a dollar value instead of a percentage (#19941)
  • Date picker in customer portal was largely unusable due to a conflicting style causing each date to use the entire width of the picker (#19807)

[1.8.10] - 2020-11-11

Fixes

  • The Ingredient Report will exclude any Member that has been cancelled, even if it is before their cancellation date (#19315)

[1.8.8] - 2020-09-02

Fixes

  • The Discount and Surcharge type of a customer is not correctly set when loading the Billing Info page (#19055)

[1.8.7] - 2020-08-20

Changes

  • Greatly reduce the amount of time it takes to generate the ingredient chart (#18878)

Fixes

  • The ingredient chart could only display a value of 0 or 1 for each portion size on a packaged ingredients without sub-categories, regardless of how many of that portion size was required (#18878)

[1.8.6] - 2020-08-13

Fixes

  • When marking a meal as inactive, a blank space shows in the Plan Schedules and Meal Alternates (#18822)

[1.8.0] - 2020-06-23

Changes

  • Strengthen password requirements for all users (#18543)
  • Reintroduce the start date to welcome email with correct dates (#18594)

[1.7.3] - 2020-06-09

Fixes

  • Do not unset Authorize.net profiles after a declined payment (#18599)

[1.7.2] - 2020-06-08

  • Various fixes to deal with billing error that presented itself over the weekend (#18583)

[1.7.0] - 2020-06-04

Fixes

  • Members trying to renew their service would receive a generic server error message if they attempted to renew without entering either height field

Changes

  • Update content of billing error email for customers to link directly to the page they can request update their billing information on (#18527)
  • Eliminate blends for fruit and veggies sides generated from the Chef's Choice defaults (#18439)
  • BCC admin email on all emails sent to clients (#18446)

[1.6.6] - 2020-05-16

Fixes

  • Authorize.net could be charged for $0. This would throw an error which would in turn notifty the member by email and by enabling the "Billing Error" banner in the customer portal. This will now prevent $0 charges to Authorize.net and only notify the admin of errors involving duplicate transactions or invalid amounts
  • Members with 0 deliveries for the week were being charged

[1.6.5] - 2020-05-14

Fixes

  • Labels show sides with included ingredients rather than excluded (#18453)

[1.6.4] - 2020-05-11

Fixes

  • Reduced the time it takes to load the Shipping Labels by ~80% (#18419)
  • Duplicate results may possibly be returned in the Members table if a user has multiple payment profiles (#18420)
  • Shipping labels don't generate for a user on their cancellation date (#18420)
  • Meals don't generate for cancelled users, even before their cancellation date (#18420)
  • Meals removed from a member's schedule aren't always immediately deleted, resulting in them receiving/being charged for meals theys hould not be (#18420)

[1.5.57] - 2020-04-29

Changes

  • Display a member's household on their Member Details page

Fixes

  • When processing weekly billing for a household, the minimum delivery fee would be calculated for the entire household and that same fee would be applied to each member of the household rather than splitting it evenly among each member. As an example, if a Household has two members and each has a delivery charge of $5.99, the household fee would be $7.97. Previously, both members of the household would be charged $7.97 but now they would be charged $3.99 ($7.97 / 2, rounded to the nearest cent) (#18362)
  • Schedule Change Billing doesn't account for users being in a Household (#18362)
  • In the Delivery Schedule page, the billing summary would show Tuesday and Thursday as "Household Delivery Minimum met" when the user was part of a Household and the Sunday delivery met the min delivery fee, even when Tuesday or Thursday did not
  • Improve the speed of the "Approve Household Request" page by drastically reducing database queries

[1.5.56] - 2020-04-24

Fixes

  • The date entered as the cancellation date results in all meals being deleted for that day, despite it mean to be the final day you will receive meals (#17135)
  • The "My Menu" page does not take cancellations into account when disabling calendar days (#17135)

[1.5.54] - 2020-04-15

Fixes

  • Weekly billing relies on the schedule instead of the scheduled meals. This means it does not take into account meals added by suspensions, schedule changes, and sometimes cancellations. (#17423)
  • Some member schedule lookups were not updated as part of change toward tracking the date changes take effect and as a result, it was possible for certain parts of the application to read inactive (previously stopped or not yet started) schedules in addition to the actual current schedule (#17423)
  • Schedule changes can be duplicated if they haven't taken effect yet. This means that it was possible for a customer to add a day to their schedule, hit save, and then remove that day from their schedule and the system would think it was still a good day (#17423)

[1.5.53] - 2020-04-02

Fixes

  • When a suspension for the coming week is processed on a Saturday or Sunday, the changes were not processed in the coming delivery week. Instead, the current delivery week (for Saturday/Sunday) was snapshotted and never processed (#16266)
  • Cancellations would not be charged on Saturday and still be credited during the week (#16266)
  • If a customer changes their schedule, the cut off date at the time of the change is not always respected by the meal generation. This made it possible for you to add a meal for Tuesday on Monday and have it generate a meal for the current week, despite the cutoff saying it shouldn't generate until the following week (#16266)
  • After a renewal, it was possible for meals to be generated prior to their new start date, which also allowed for meals to be added before the cutoff (#16266)

[1.5.51] - 2020-03-19

Changes

  • Change "Reset all ingredients to Plan defaults" to "Reset all ingredient preferences to Plan settings" in the form for changing your plan (#18022)

Fixes

  • "Ingredient Preferences" didn't show as the active menu item in the header when on the Change Plan page
  • Fixed typo in Ingredient Preferences that said "You're allergy settings" instead of "Your allergy settings"
  • Delivery change billing was being processed for unpublished users (#18033)
  • Email and Plan do not show in the Member list (#18034)
  • Credit creation modal isn't handled like other modal forms and breaks when submitted with the enter key as result. The form additionally had some other inconsistencies in the way it handled alerts and server communication (#18053)

[1.5.50] - 2020-03-18

Changes

  • Use the language for the Registration Start Date Form in the Renewal Start date form (#18025)
  • If the last meal of the current week comes after the first possible cancellation date, use that as the first possible cancellation date. This was done to reduce the number of refunds necessary. (#18024)

[1.5.49] - 2020-03-18

Fixed

  • Plan switching selects allergic ingredients (#16660)
  • Optimize meal generation slightly to reduce how long it takes to run

Changes

  • Select the Reset Meals option by default when changing plans (#16660)

[1.5.48] - 2020-03-18

Fixed

  • The menu is unreachable and unusable on mobile. Reworked the header to be more friendly on mobile as well as to expose all options in the menu (#18030)

[1.5.47] - 2020-03-18

Changes

  • Changed colors of the Allergy conflict, Ingredient conflict, and Client's choice stars in My Menu to be red, yellow, and green, respectively (#18023)

Features

  • Added a way to disable Customer allergy management from a config file (#16655)

[1.5.46] - 2020-03-17

Fixed

  • Remove possibility of duplicate and "phantom" credits being created after each payment is processed (#16266)
  • If a member had a billing error, nothing would show up in the Billing Report

Changes

  • Credits are now "consumed" differently. Previously, a credit only had a single value and that value would be decreased as it was used. Now there are two values: the original credit value and the current value. This allows for a history of Credits to be kept (i.e. you can see every credit ever created, even those that were used) as well as individual actions on that credit (i.e. $21.39 was consumed on Saturday, $48.90 on Tuesday, and the last $4.31 on Thursday) (#17424)

[1.5.45] - 2020-02-25

Fixed

  • Fix: Discount, Credit, and Surcharge tables have broken pagination (#16266)

[1.5.44] - 2020-02-25

Fixed

  • It was possible to create a Meal (but not update one) with a required unavailable Ingredient (#16658)

Changes

  • Improve Available Ingredient validation check on Meals so that it actually compares their Available On dates (#16658)
  • Add new check on Ingredient updates that checks if there are any unavailable meals associated with the ingredient that will still be unavailable after the Ingredient becomes available (#16658)

[1.5.43] - 2020-02-25

Fixed

  • A member's meals aren't properly regenerated if schedule changes in Member Update in the Admin dashboard (#16266)
  • If a schedule change only generates a credit, it doesn't add it to the billing/traction histories nor does it generate an invoice for it (#16266)

Changed

  • Introduced locking system for meal regeneration to prevent multiple regenerations for the same user from happening simultaneously. This could result in race conditions where one regeneration was overwriting the changes from the other (#16266)

[1.5.41] - 2020-02-19

Fixed

  • Adding/Updating/Deleting suspended schedule doesn't regenerate meals. It also wasn't correctly saving the snapshot when saving/updating suspensions and also wasn't snapshotting at all when deleting them (#16266)

Removed

  • Admins can no longer set the Credit a user should get upon cancellation. It was causing issues with the automated schedule change processing, and causing double credits to be created (#16266)

[1.5.40] - 2020-02-19

Added

  • Introduce availability dates for Meals and Ingredients. This will prevent Customers from seeing an unavailable Meal or Ingredient in the front end, prevent admins from setting an unavailable meal on their menu, and prevent unavailable Meals and Ingredients being included in meal generation (#16658)
  • Header search now automatically searches after 500ms of no typing
  • Header search can now be navigated with the keyboard

Fixed

  • Inactive sides didn't work because the "Is Active" value was saved as a 2 if set to No, rather than a 0
  • The Search Button in the header search isn't clickable

[1.5.39] - 2020-02-17

Fixed

  • It was possible for pages in the Customer portal to error out if they had already marked a Global Message as read and the middleware tried to mark it as read a second time
  • Users marked as "Allow Login" = "No" would see the same Global Messages repeatedly, even after marking them as read

[1.5.38] - 2020-02-17

Changed

  • Update verbiage on cancellation page (#17135)
  • Disallow a pickup date before the cancellation date (#17135)
  • When cancelling, auto select the last day the user has a meal scheduled (#17135)

[1.5.37] - 2020-02-14

Added

  • Added "Forced Unit" option on Ingredient Categories that forces the specified unit to be used for that category in a Member's portion settings. Meant to help with onboarding and reducing confusion with admins(#17138)

[1.5.36] - 2020-02-14

Fixed

  • When looking up whether a meal is suspended, it would return false if a meal was set to be included on either the start or end date, regardless of which day in the suspension it was. The most apparent place this showed up was when viewing the Menu of a user who had a suspension on that day but were set to receive meals on the end date (#17807)

[1.5.35] - 2020-02-14

Changed

  • Include taxes in automatically created credits (#17422)

[1.5.34] - 2020-02-14

Fixed

  • Menu Change emails build on each other so if you make a change and then hit save again without changing anything, the same change will be emailed out even though nothing has actually changed that time (#17136)

[1.5.32] - 2020-02-13

Changed

  • Added confirmation emails that go to customers when they renew service, cancel service, change their menu, or suspend their schedule (#17136)

[1.5.31] - 2020-02-13

Fixed

  • Latitude and Longitude is saved as 0.000000 if updated with empty field (#17139)

[1.5.30] - 2020-02-12

Added

  • Allow for new ingredients to automatically generate a Global Message and be assigned to all users (#16659)

[1.5.29] - 2020-02-12

Added

  • Added latitude and longitude to addresses to help with Workwave routing. The values are made available in the Delivery/Pickup reports (#17139)

[1.5.28] - 2020-02-12

Added

  • Display a warning next to ingredients that the user is allergic to (#16655)

[1.5.27] - 2020-02-12

Added

  • Add Allergy management in both admin and customer portals (#16655)
  • Add warning on meals that include ingredients the user is allergic to (#16655)
  • Add allergies to labels and packing slips (#16655)
  • Allow users to change their plan (#16660)

[1.5.26] - 2020-02-10

Added

  • Allow for setting when a Global Message should expire (#17133)
  • Allow uploading images into Global Messages (#17133)

Fixed

  • New Global Messages display options default to "Yes" when creating, should default to "No" (#17133)

[1.5.25] - 2020-02-10

Added

  • Add exceptions to Global Messages to make it easier to control who they are displayed to (#17133)

[1.5.24] - 2020-02-07

Changed

  • Add timestamp to global message modals (#17133)
  • Add a message explaining how global messages work to admin (#17133)
  • Prevent new and cancelled users seeing global messages, limit to 3 and in the last 6 months (#17133)

[1.5.23] - 2020-02-07

Added

  • Add the ability to create global messages that customers must acknowledge before continuing (#17133)

[1.5.22] - 2020-02-07

Changed

  • Use same calendar setup from Registration start date for Renewal date (#17134)

[1.5.21] - 2020-02-07

Fixed

  • My Menu images use two different images for the Select modal and the menu display This was causing a weird issue where anytime you selected a new meal, the resulting image would always be a different size(#17634)

[1.5.20] - 2020-02-07

Fixed

  • Don't reset the selected week/day when saving the menu (#17634)

[1.5.15] - 2019-11-13

Fixed

  • Only charge for meals that have been generated. Previously, it was based solely off the schedule and this could result in unexpected results (such as when a user registered with a mid-week start day and got charged for Monday) (#16266)
  • Errors occur when calculating costs for users who have not previously saved their costs to the database. This was an edge case that was happening in a small subset of users in the QA staging site only. (#17275)

[1.5.10] - 2019-11-13

Added

  • Add a new report that previews Delivery Schedule Change billing (#16266)

[1.5.9] - 2019-11-12

Fixed

  • Allow all filters to be used when exporting members (#17131)

[1.5.8] - 2019-11-12

Added

  • Use schedule difference checking for changes made to Delivery Schedule via the normal Delivery Schedule page in the Customer portal and the Member Edit page in the Admin portal, as well as when a user renews their service (#16266)
  • Display the schedule differences being charged for during the current week

Fixed

  • Newly registered users are not charged a prorated amount for their first week (#16266)
  • When processing a Cancellation, the Credit Amount and Deliveries remaining text is inaccurate due to Authorize.net being disabled and bad date handling (#16266)
  • Weekly Discounts and Surcharges are applied to the wrong week (#16266)
  • If only the "Other" reason is available when cancelling service, auto select it and auto show the text box
  • The internal delivery_week value is incorrect when processing payments on a day other than Saturday or Sunday. This was breaking testing when forcing test values
  • A cancellation in the future prevents any billing before that date, even when the user is still active (#16266)
  • It's only possible to run a billing report in the future once. All future runs show a white screen afterward (#16266)

[1.5.7] - 2019-11-04

Changed

  • Billing report now represents the actual billing period rather than using the billing date as the start day

[1.5.6] - 2019-10-24

Added

  • Add a command for suspending all usersin system for a date range (#17132)

Fixed

  • Ingredient chart errors out due to low memory issues (#17137)
  • Cut off days for meal changes are 48 hours before dealdine, not 24 (#16266)

[1.5.5] - 2019-10-24

Fixed

  • The Current Week Schedule page allows for editing of days after the cutoff day (and even after delivery)

[1.5.4] - 2019-10-23

Fixed

  • Current Week Cost table in Admin portal doesn't take into account change orders and can be incorrect as a result (#16266)

[1.5.2] - 2019-10-23

Fixed

  • Can't save billing information with an empty permanent discount/surcharge

[1.5.0] - 2019-10-23

Changed

  • Revamp Billing Report to use actual transaction data rather than running calculation estimates. This change was necessary to allow for ad hoc billing to be done and included in reports. (#16266)
    • The old Billing Report will continue to be used for historical data where this new transaction data does not exist and when estimating future costs
    • The revamped report also allowed for improving the styling of the report slightly
  • Delay payment processing to just before each delivery so that changes are properly charged and credited (#16266)

Fixed

  • Customer Portal SEO page saves values but doesn't fill them in on page reload
  • Current Week Schedule page does not reflect removed changes and removed auto-crediting, allowing you to add a new meal but making it impossible to ever remove it. This required a complete rewrite of the logic handling the saving of this page (#16266)

Removed

  • Remove ability to auto credit via Suspended Schedule creation and replace it with a note about what the estimate charge or credit will be (#16266)

[1.4.11] - 2019-10-21

Fixed

  • Packing slips are in the wrong order and have incorrect routes/stops (#17051)

[1.4.10] - 2019-10-16

Changed

  • Split default delivery route functionality into working for each individual delivery day rather than just one for all delivery days (#16269)

Fixed

  • Pagination breaks in the Meals Requiring Attention table

[1.4.8] - 2019-10-16

removed

  • Remove ability to "Uncheck All" when a customer is customizing their ingredients (#16270)
  • Revert previous change "Remove inactive, unpublished, unregistered, and cancelled members from meals requiring attention table" (#16270)

[1.4.7] - 2019-10-16

Fixed

  • Delivery and Pickup reports don't include the outer limits of the date range selected because they use current time and "2019-10-16" is not greater than "2019-10-16 08:45:12" (#16268)

[1.4.4] - 2019-10-11

Fixed

  • Packing Slips don't generate if no members are selected (#16729)
  • Meals don't generate for final day of suspension (#16279)
  • Can generate twice for the last day of a generation period (#16279)

[1.4.3] - 2019-10-11

Fixed

  • When exporting deliveries, if multiple members are selected only one will be exported

[1.4.2] - 2019-10-11

Added

  • Allow for restricting meal generation to a specified set of members

Changed

  • Streamline and simplify the Label and Packing Slip page to allow all options to restrict by Member and to use a single set of controls

Fixed

  • Meal Suspensions cause meals to be duplicated during generation (#16729)

[1.4.1] - 2019-10-10

Added

  • Add banner to Member details page saying member is suspended

Changed

  • Switch out the Admin portal Weekly Cost Table with the same one from the Customer Portal. The previous table showed confusing and sometimes wrong data whereas this one will match what the clients see at all times (and is prettier)

Fixed

  • Suspension refund calculation can be negative when no meals were suspended (#16265)
  • Suspensions prevent cost updates saving properly (#16716)

[1.4.0] - 2019-10-10

Added

  • Add Surcharges, both permanent and single-week (#16264)
    • This necessitated a redesign of the Billing Info Edit page for the new Surcharges to fit
  • Create a pickup report (#16268)
  • Add field to Members for Default Route that can be updated manually or via Workwave import (#16269)
  • Add column/filter to Members page for Credit Card errors (#16267)
  • Send notification when user clears their billing errors (#16267)
  • Add blank AIN column to Order Slips, swap first/last name (#16273)
  • Allow for automatically crediting users for schedule suspensions. The system will recommend the value to credit based on known data, but the admin can change it as they see fit (#16265)
  • Add Service Time and Vehicle to Pickup/Delivery exports (#16269)

Changed

  • Adjust packing slips to have larger member names (#16272)
  • Make sure that suspended meals do not show in order slips (#16654)

Fixed

  • Fix: Incorrect "Base Cost" shows in Weekly Schedule cost table

Removed

  • Remove inactive, unpublished, unregistered, and cancelled members from meals requiring attention table (#16270)

[1.3.2] - 2019-10-04

  • Change Marketing Campaign discounts to be time-based (i.e. a discount for the first 4 weeks) rather than only being permanent discounts (#16728)
  • Rebuild Weekly Cost summary table to be more dynamic and use the same codebase across all instances (#16728)

[1.3.0] - 2019-10-03

  • Add ability to set a percentage-based permanent discount for a member (#16263)
  • Accept UTM attributes set via cookie on the main site or as params directly on this site (#16728)
  • Add Marketing Campaign management (#16728)
  • Clean up/tweak Settings page so that they are separated and their own entity (#16728)
  • Automatically set discounts based on Martketing Campaign (#16728)

[1.2.22] - 2019-08-09

Fixed

  • Potentially fix an issue that was causing duplicate meals to be generated (i.e. User A would have 2 breakfasts generated for Thursday). We have been unable to duplicate what is causing this, but believe we determined in the code where it was happening. We will re-visit in a few days to determine if more duplicates were generated. We additionally added more logs to attempt to troubleshoot this if it continues (#16429)
  • Delete duplicates created by the issue mentioned above (#16429)
  • Fix issue with searching members by both first and last name

[1.2.21] - 2019-07-29

Fixed

  • It was possible to alter the schedule for days after the cut off via a renewal (allowing meals to be added to those invalid days) or changing the schedule (allowing for the user to delete meals from the current schedule). Additionally, it was possible to request a suspension that started on a day that was after the cut off and therefore ineligible. (#16363)

[1.2.20] - 2019-07-25

Fixed

  • Meals are generated for already processed days if they are on the current day or greater in the week. So if today is Thursday and the user changes their schedule and adds a Breakfast on Saturday, that breakfaster will be added to the current week's schedule, even though those only meals after the next delivery (Sunday) should have been updated. (#16313)

[1.2.19] - 2019-07-25

Fixed

  • Errors occur when renewing a member who doesn't have a billing address set (#16305)
  • Cancelled members do not show in Order Slips (#16305)
  • Improve load times of Order Slips by reducing database queries required to generate them
  • Member schedule updates include current week discount which should not be included in a permanent cost change total (#16297)

[1.2.16] - 2019-07-19

Fixed

  • Ajax-ify cancellations table to deal with page load timeouts in production

[1.2.12] - 2019-07-18

Fixed

  • "My Menu" may not show some already-generated meals if they were made prior to a schedule change (#16279)

[1.2.11] - 2019-07-16

Fixed

  • Workwave route importing fails due to format change and invisible characters

[1.2.9] - 2019-07-16

Fixed

  • Transactions aren't being created because of duplicate generated IDs (#16254)

[1.2.8] - 2019-07-09

Fixed

  • Labels do not take cancellation date into effect, only whether they are currently cancelled. (#16175)

[1.2.7] - 2019-07-09

Fixed

  • Duplicate meals are generated on suspension start/end dates if the member selected a meal to be received on that day (#16192)
  • Meal Exports discard members who do not have an address set whereas Packing Slips and Labels do not (#16190)

[1.2.5] - 2019-07-08

Fixed

  • Meal Exports don't take into account active/published/registered status (#16190)

[1.2.4] - 2019-07-01

Fixed

  • Payment processing processes the wrong days which can result in incorrect totals (#16136)

[1.2.2] - 2019-06-18

Fixed

  • Potential 500 error when creating the ingredients chart (#16033)

[1.2.1] - 2019-06-18

Fixed

  • Allow more optimized queue:work to be used instead of queue:listen, reducing CPU usage and time required to run jobs (#16024)
  • Allow moving the storage path so that it does not need to be copied on each deployment (#16024)

[1.2.0] - 2019-06-14

Added

  • Added a way for admins to display an "Update Your Billing Info" message to individual members (#15950)
  • Changed the Billing/Delivery page in the Member portal to simply display the current address and instruct users to contact YLL to update it rather than displaying disabled fields which were confusing (#15991)

Fixed

  • In some cases, Members who were unpublished could not sign in and were pushed back to the registration portal. This was especially noticeable when using the "Log In As" feature from the admin portal

[1.1.0] - 2019-06-10

Added

  • Move route label to the top left in larger font and with a color indicator box like labels (#15960)
  • Prevent empty delivery schedules with alert instructing the user to suspend/cancel instead (#15960)
  • Update verbiage for Generate Meals and Flush Meals warnings
  • Add ability to flush only meals that were not selected by the client (don't flush them by default)

Fixed

  • Disable billing error emails because payments are currently disabled entirely
  • The first three fruit labels can potentially generate on their own page
  • Meal modifications don't show if the meal has no sides (#15959)
  • Orange route labels are described as "White" (#15960)
  • Improve Packing Slip load times by reducing the number of database queries required to generate them (#15960)
  • Member-specific Packing Slip generations do not show the route info
  • Packing Slip generation uses far more server memory than is necessary
  • Sides don't regenerate when using the Generate Meals function (#15960)

[1.0.6] - 2019-06-06

Fixed

  • Appending ?plan=lifestyle (or any other plan) to the end of the registration URL does not select the plan
  • Some edge cases could cause meal generation to fail
  • Total cost for a member doesn't show during checkout and is not calculated at all during registration
  • Sides do not generate during registration (#15957)

[1.0.5] - 2019-06-05

Fixed

  • If an account required a password reset, it would still require that reset after using the Forgot Password tool

[1.0.4] - 2019-06-05

Fixed

  • Password Resets don't work (#15941)

[1.0.0] - 2019-06-05

  • Launch version. Same as 0.30.5

[0.30.5] - 2019-05-31

Added

  • Change placeholder image that is displayed when meal has no image set (#15929)

[0.30.4] - 2019-05-29

Fixed

  • Labels with fewer than 5 lines could potentially create a spacing issue that causes rows to be taller and labels not to fit on a page perfectly.

[0.30.3] - 2019-05-28

Fixed

  • Error is thrown when trying to view the Delivery Schedule page (#15903)
  • Always show sides with snacks, never put them on the Fruit labels page (#15903)

[0.30.1] - 2019-05-20

Fixed

  • Format Costs in billing error emails with 2 decimals (#15848)
  • Can't update meals before the following Monday, even when it is valid to do so or in the Admin (#15878)

[0.30.0] - 2019-05-17

Added

  • Don't include ingredient exclusion (R=XXXXXX) in Fruit labels (#15854)
  • Allow ingredient modifiers on snack labels (#15853)
  • Add ability to archive Schedule Changes from both the Dashboard and Member Details page. Archived results will still show in the Member Details page for historical purposes, but will not show on the Dashboard (#15852)
  • Save and display the old and new costs, as well as the difference, when a user changes their schedule. This is included in the Dashboard and Member Details page, as well as the email alert sent to the admin (#15851)
  • Send alert to Admin when a user changes their ingredient preferencess that includes which ingredients were added and which were removed (#15850)
  • Display Authorize.net Profile ID in Member Details page (#15847)
  • Send alert to user if billing fails for them. Additionally, display a red alert at the top of the page and make their homepage the billing page until they update their billing details (#15848)
  • Send alert to admin of all (if any) billing errors after each billing run (#15848)
  • Send full billing output to admin after each billing run. This output is also saved to a log file on the server for easy access later on. This output matches what you can receive via the "Billing Report"

Fixed

  • Improve label generation times
  • White space at the beginning or end of a search in the main search bar would search using that space and usually return no results
  • Member name doesn't load in the Schedule Change table if the member is not active
  • Credit Card info not correctly saving

[0.29.3] - 2019-05-16

Fixed

  • Customer alerts don't show up when using the "Sign in as" feature

[0.29.2] - 2019-05-06

Fixed

  • The "Grain" ingredient/side category was renamed to "Grain/Starch". Because it was hardcoded as "Grain" in several locations, specifically for report generation, it would fail to include anything Grain-specific in those areas
  • Fruits (and any other side set to "Separate Label") were re-using the primary label template rather than the one set up specifically for fruits. As a result, it looked like there were many duplicate labels being generated.

[0.29.0] - 2019-04-17

  • Rebuild the way the Recipe Chart is generated because the values being displayed in it were not correct.

[0.28.0] - 2019-04-08

  • To reduce confusion, the "Active" field has been renamed to "Allow Login" to match the client's old system. A new field, also called "Active", now indicates whether a client can receive meals (which is what the client expected). To reduce confusion even further, descriptions of these fields have been added to the page. (#15250)

[0.27.8] - 2019-04-05

Fixed

  • Weekly costs don't populate in Members list or details page in Admin
  • Meals are skipped if there is no delivery address for user

[0.27.6] - 2019-04-02

  • Add settings page to allow SEO to manage header/footer scripts (#15609)

[0.27.4] - 2019-03-19

Added

  • Improve the ability to find meals in the customer My Menu page by adding a simple Search and alphabetizing the meals

Fixed

  • Registration throws an error if no height is set (#15477)
  • Changing ingredients and resetting the menu can cause meals not meeting cutoff to change (#15478)
  • Rework labels to make sure they fit correctly (#15498)

[0.27.3] - 2019-03-18

Fixed

  • Meals before the cutoff can be modified (#15478)

[0.27.0] - 2019-03-18

Added

  • Add a filter for the cancellation status of a member and stop hiding cancelled members automatically (#15507)
  • Show the current week for a user and disable processed/suspended meals (#15503)
  • Track changes to Member Schedules (#15505)
    • The previous and new schedule as well as the differences between them are now displayed in the Member Details page (below the schedule box), on the Dashboard (all changes in the last 30 days), and in the notification email
  • Disable integrated billing and display whether a member has a Payment Profile in the Members list (hidden by default) and details pages, as well as provide a way to filter by this status (#15510)

Fixed

  • Meal Preferences table shows in Admin even if the user has not set up their meal preferences during registration yet (#15477)
  • Can't complete registration due to modal preventing meal preferences save (#15477)
  • Don't show Meal Errors in Dashboard for days prior to today (#15497)
  • In the Recent Registration table, the email field does not populate and is missing a Registration Status
  • Improve load times on My Menu page
  • Suspension requests aren't closed when a Suspension is made (#15506)
  • Labels don't properly line up with Avery 5160 labels (#15498)
  • First date available for cancellation/pickup is day too late (#15508)

[0.26.3] - 2019-02-22

Fixed

  • Required ingredients in Client Choice meals that do not meet ingredient preferences are not included in the Ingredient Chart when they should be (#15313)

[0.26.2] - 2019-02-19

Fixed

  • Duplicate meals are generated when using the "Generate Meals" function of the Reports page (#15236)

[0.26.1] - 2019-02-18

Fixed

  • Inactive Ingredients show as active everywhere except the Update form

[0.26.0] - 2019-02-14

  • Rework ingredient saving so that it prompts the user beforehand about potential conflicts and whether they want to reset Client's Choice or not. (#15196)
  • Optimize meal generation to improve speed, specifically when a customer is causing it when changing their ingredient preferences

[0.25.0] - 2019-02-13

  • Completely rebuilt the side generation logic. Previously it would go through each stage (Hard Preferences -> Chef's Choice -> Defaults) and if it found any matches, it would stop at that stage and only use sides from that stage regardless of which Side Categories were selected on the meal. Now it goes through each selected side category and finds the stage it should be using. So it is now possible to get Hard Preference Grains while getting a Default Fruit (#15183)

[0.24.10] - 2019-01-31

Added

  • Don't allow updating Delivery Address after registration (#14991)

Fixed

  • Updating a user's ingredient preferences does not change selected sides for Client's Choice meals (#15052)

[0.24.9] - 2019-01-24

Fixed

  • Saving a Meal that had a blank Side Preference/Exclusion throws an error (#14982)

[0.24.8] - 2019-01-23

Fixed

  • Regenerating a single meal forces sides to be regenerated for all meals (#14982)
  • Regenreating a meal results in side generation skipping Chef's Choice for the day and just using the defaults (#14982)
  • Empty options in the Meal Schedule page resulted in missing table cells

[0.24.7] - 2018-11-30

Fixed

  • Meals on the Meal Schedules overview page display in the incorrect order (#14659)

[0.24.5] - 2018-11-28

Added

  • Meal Schedule page now links individual meals to the corresponding Meal Details page

Fixed

  • Server Error occasionally thrown during meal generation (#14659)

[0.24.4] - 2018-11-19

Fixed

  • Suspension Request emails always say "N/A" for "Notes" (#14469)
  • Users marked as inactive can never sign in

[0.24.0] - 2018-11-15

Added

  • Rework the way Service Suspensions are handled. They now require a customer to submit a suspension request and for an admin to review it and create a suspension based off the request (#10220)

[0.23.13] - 2018-09-25

Added

  • Order cancellations in reverse chronological order by default (#14137)
  • Better handle meal deletions for canceled members. (#14137)

Fixed

  • Meals that were not auto generated cannot be changed (#14136)
  • Making changes to meals does not regenerate meals (#14135)

[0.23.10] - 2018-09-18

Added

  • Rebuild Ingredient Chart to display 4 main sections: Protein, Sides, Portion Set, and Wrapped/Container (#12110)

[0.23.9] - 2018-09-17

Fixed

  • Meals cannot be saved if an ingredient is not marked as "Include in Ingredient Report?" (#13990)
  • Fixed regression in 0.23.8 that allowed for My Menu to display dates prior to the member's start date (#13990)

[0.23.8] - 2018-09-17

Added

  • Clarify "automatically create a credit" when finalizing cancellation (#13990)
  • Members can now be searched for via first and last name, not just one or the other
  • Update the styling of the Weekly Cost Summary on a member page (#13990)
  • Default meals to not being included in Registration Slider
  • Force complete meal regeneration when changing ingredient preferences in registraiton (#13990)
  • Remove "Meal Deliveries" Admin section (#13990)
  • Remove "Meal Deliveries" Admin section API routes (#13990)

Fixed

  • Cancellation Reason Details/Edit page cannot load (#13990)
  • Display better error message when creating a credit card with no billing address (#13990)
  • Can't delete Meal Categories (#13990)
  • Can't create meals due to invalid data being inserted into database (#12110)
  • Can't reorder meal schedule days (#13990)
  • Some Meal Schedule pages fail to load thanks to poor attempt at Route Model Binding (#13990)
  • Border on Customer menu active/hover states aren't centered
  • Customer menu active/hover state is displayed on mobile
  • If Plan Customization section has no boxes checked, show check all button (#13990)
  • Saved start date gets overwritten when re-visiting step 1 (#13990)
  • Changes to Delivery Schedule during registration don't re-save unless Step 2 is also saved (#13990)
  • Delivery Schedule changes during registration don't regenerate meals (#13990)
  • If no meal is generated, user cannot select a meal for it. (#13990)
  • Labels do not properly separate "Separate Label" side categories onto their own page (#13990)

[0.23.7] - 2018-09-12

Fixed

  • Minor fixes to customer import script (#13885)
  • Forced Password Reset (to be used for imported customers) doesn't validate correctly and isn't using password fields
  • Ingredient portions get rounded when creating Ingredient Report (#11979)

[0.23.5] - 2018-09-10

Fixed

  • Customers cannot update passwords (confirmation always fails)

[0.23.4] - 2018-09-07

Fixed

  • Can't save customer profile info without entering a password
  • Admin Billing History page still loads slowly (#13883)
  • Chef Choice defaults don't respect the day of week during meal generation (#12857)
  • Delivery Address form doesn't show automatically on Admin Billing Info edit page if not set to use billing as delivery
  • Type mismatch when getting a household weekly cost
  • Shipping labels do not match packing slips (#12858)
  • Long names on shipping labels wrap to two lines and overlap the second line of the label
  • Secondary nav when renewing service has incorrect step titles
  • Renewals don't have any validation
  • Suspended Schedule emails don't say "Processed by Admin" (#13953)

[0.23.3] - 2018-09-06

Added

  • Add ability for customers to flush/reset their own meals (#13987)

Fixed

  • Change/Select button on My Menu throws error during registration (#12856)
  • Meal regenerations generate meals on delivery start day (#13839)

[0.23.2] - 2018-09-06

Fixed

  • Client choice meals are regenerated if there are conflicting ingredients (#13840)
  • In the admin dashboard, tables that load data via Ajax throw an exception when trying to search them
  • Method to retrieve next delivery date checks against start of each delivery date rather than end of day (#13839)

[0.23.1] - 2018-09-05

Added

  • Fix Ingredient Chart header + PDF table styling (#12110)
  • Make Portionable = Portion Set and Non Portionable = Portion Adjustable (#12110)
  • Rebuild ingredient management in Meals to use table and be easier to manage (#12110)
  • Display full Ingredient table in Meal details (#13975)
  • Add ingredient management options for Wraped/Container + In Report (#13975)
  • Optimize Ingredient Chart generation to prevent future load time issues (#13975)
  • Restrict ingredient chart to not include Wrapper/Container + Not Included in Ingredient Report ingredients (#13975)

Fixed

  • All generated meals marked as client's choice after ingredient update (#13840)
  • Success/Error messages are not always visible in customer portal
  • Ingredient Chart sub-categories not always alphabetized (#12110)
  • Ingredient Chart Subtotal/Uncategorized rows not bolded (#12110)
  • Empty table cells in Ingredient Chart don't have dashes (#12110)
  • Meal Errors will fail to load if member doesn't exist
  • Meal Generation progress doesn't work if queue doesn't use default name and relies on Redis

[0.23.0] - 2018-09-03

Added

  • Remove date picker from birthday selections (#13842)
  • Eliminate potential code injection via datatables (#13253)
  • Remove Middleware preventing caching (#13248)
  • Minor code improvements, reduce asset loads (#13248)
  • Make Privacy Policy editable (#13248)
  • Removed ability to delete Members. Use enable/disable instead (#13357)
  • Rework the way that billing/transaction data is displayed so that the pages don't take a substantial amount of time to load as they make requests to Authorize.net to retrieve this data (#13883)
  • Make member invoice a PDF and style it appropriately (#13883)
  • Display the current day and next occurrence for each day in plan schedules
  • Optimize meal generation to reduce load times (#13230)
  • Add notification for when member cancel their service (#13953)
  • Add a notification for when a member renews their service (#13953)
  • Send notification email when a member substitutes meals (#13953)

Fixed

  • Default start date should be next delivery day that's at least 48 hours away (#13839)
  • Plan selection not retained going back to Step 1 of Registration
  • Registration My Menu starts on Start Date instead of following day (#13839)
  • Step 1 of registration always redirects back to login
  • Authorize.net transactions don't verify there are no errors (#13249)
  • Delete button on Cancellation page is non-functional
  • Comments do not load

[0.22.0] - 2018-08-16

Added

  • Improve styling and navigation of Members pages so that it is both easier to determine what page you are currently on and to navigate directly to another page. This should eliminate the need to click 2-3 times to get to a Memeber's subpage (#13242)
  • Eliminate potential race condition when updating meal schedules (#13246)
  • Use a modal alert for flushing meals and improve language used in confirmation (#13243)

Fixed

  • Properly fill in all data in Registration step 4 + save checkbox selections (#13235)
  • Filters are unstyled and member table breaks on smaller window widths (#13242)
  • Cannot edit a day in the Meal Schedule for a Plan
  • Customer portal header doesn't always show the correct active page (#13509)
  • Fix various pages in admin dashboard missing breadcrumb navigation or using inconsistent and/or inaccurate breadcrumbs

[0.21.3] - 2018-08-09

Added

  • In reports page, show Member id in dropdowns to avoid confusion
  • Improve meal generation logging with consistent member info
  • Update billing/delivery address validation messages (#13233)

Fixed

  • If no credit card provided, form fails to submit and throws a Javascript error (#13233)
  • "Same as Billing Address" doesn't populate with existing value (#13233)
  • System always thinks there is a credit card number and validation fails if none is provided (#13233)

[0.21.0] - 2018-08-08

Added

  • Make various optimizations so that Label and Order Slip Generation and the Billing Report do not take anywhere near as long to run. This should also improve the amount of time it takes to generate meals, although to a lesser effect
  • Removed Quick View Delivery Report button. This button behaved identically to the Generate Reports button
  • Allow HTML outputs of all PDFs (#13417)

Fixed

  • Many reports are unable to run and either time out or error out
  • Exporting order slips as CSV fails each time
  • Order Slips and Labels have styling issues when exported as PDF
  • Can't update credit card info if no line 2 of delivery address is supplied (#13233)
  • Suspension and Transaction tables get cut off at smaller window sizes (#13521)

[0.20.0] - 2018-08-07

Fixed

  • Remove requirement to call Auth.net to retrieve basic credit card info necessary to populate the Billing pages. This was causing very long load times (#13233)
  • Suspended Schedule validation in front end doesn't match back end (#13231)
  • Renewal/Cancellation alert styling breaks customer portal
  • Layout for renewal process was not updated to use new layout and looked broken as a result
  • Add a notice if the suspended schedule table is empty

[0.19.0] - 2018-08-02

Added

  • Add cache busting/asset versioning so that it users clearing their cache is no longer required after site updates
  • Make customer portal responsive and work across browsers (#13521)

Fixed

  • Plan in Registration Step 1 cannot be selected in iOS (#13521)

[0.18.4] - 2018-07-25

Fixed

  • The My Menu page for a Customer who has completed registration should start with the following week (#13518)

[0.18.3] - 2018-07-25

Fixed

  • Add password validation to customer portal (#13521)
  • Customers can select meals that do not belong to meal type (#13518)
  • Weekly Schedule enables delivery day if it's the first delivery (#13518)

[0.18.1] - 2018-07-24

Added

  • Use new Menu URL for new website
  • Display total cost in confirmation page (#13518)
  • Default birth date during registration to 18 years ago (#13518)

Fixed

  • Removed duplicate data from "Recent Member Registrations" table (#1323)
  • Step 1 displays an error when you first go to page (#13518)
  • Registration step navigation doesn't display (#13518)
  • Special Dietary Instructions have no field length limit (#13518)
  • Step 2 email unique rule doesn't handle previously created account properly (#13518)
  • Plan ingredients aren't auto selected during registration (#13518)
  • Customize Ingredients checkboxes get cut off due to overflow (#13518)
  • Registration birth date not remembered on reload (#13518)
  • Re-allow entering an email and zip in the Get Started form (#13518)
  • Registration steps completed not correctly saving (#13518)
  • Program shows member name instead of plan name in confirm (#13518)
  • Fallback to cell if no phone provided in confirmation (#13518)
  • Member pages throw error and don't load weekly costs (#13518)
  • Swap out old user.registration_step_completed > 4 check (#13518)
  • Welcome message doesn't use session flash and appears forever (#13518)
  • My Menu doesn't displays first day even if it is inactive (#13518)
  • Mark a day as inactive in My Menu if it has no deliveries (#13518)
  • Display a notice in My Menu if a week has no deliveries (#13518)
  • Failed logins show generic 403 error instead of server message (#13518)
  • Back to Admin overlaps Contact. Move into top-most header (#13518)
  • Registration first delivery date restricted to max date (#13518)
  • All meals marked as user-selected after hitting save on My Menu (#13518)
  • Restrict Current Week Schedule to pre-start date days (#13518)
  • Logging out during registration results in bad errors when navigating back to registration (#13518)

[0.18.0] - 2018-07-18

Added

  • Complete rebuild of customer registration process
  • Implement new layout in customer portal to match redesigned corporate website
  • Add ability to upload images to meals and have them display in the customer portal when selecting meals (#13240)
  • Replace meal slideshow in registration process with admin-configured slideshow that is dictated via an option on each Meal and the image for each Meal (#13240)

Fixed

  • Various config references used a method that was broken when configurations were cached (#13232)
  • Can't reorder Meal Schedule Days
  • Error pages display a white page with text on it rather than a styled page