From 16425c5cbbdb4a05c2cbdf5b049201268d3a19bf Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Thu, 20 Feb 2020 17:43:14 -0700 Subject: [PATCH] Make camp days and price adjustments configurable --- database.mwb | Bin 13702 -> 13686 bytes pages/home.php | 18 ++++++++++++---- public/actions/submit.php | 36 ++++++++++++++++++++++--------- public/parts/signup.php | 32 +++++++++++++++++++++++++-- public/parts/template_person.php | 24 +++++++++++++-------- public/static/signup.js | 21 ++++++++++++------ settings.template.php | 16 ++++++++++++++ 7 files changed, 116 insertions(+), 31 deletions(-) diff --git a/database.mwb b/database.mwb index f468e3917a16667f1af003f77aba3d5f944f07cf..4ede81300e4fe3e96867152a1a8318e635cfd190 100644 GIT binary patch delta 11486 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 delta 11486 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 select("adults", "days"); - $days = ["Tu" => 0, "We" => 0, "Th" => 0, "Fr" => 0]; + $days = $SETTINGS["camp_days"]; + foreach ($days as $short => $long) { + $days[$short] = 0; + } foreach ($daystrs as $str) { if ($str == "") { continue; } $arr = str_split($str, 2); foreach ($arr as $day) { - $days[$day] += 1; + if (array_key_exists($day, $days)) { + $days[$day] += 1; + } } } @@ -69,14 +74,19 @@

select("youth", "days"); - $days = ["Tu" => 0, "We" => 0, "Th" => 0, "Fr" => 0]; + $days = $SETTINGS["camp_days"]; + foreach ($days as $short => $long) { + $days[$short] = 0; + } foreach ($daystrs as $str) { if ($str == "") { continue; } $arr = str_split($str, 2); foreach ($arr as $day) { - $days[$day] += 1; + if (array_key_exists($day, $days)) { + $days[$day] += 1; + } } } diff --git a/public/actions/submit.php b/public/actions/submit.php index 15aa4be..0fb7515 100644 --- a/public/actions/submit.php +++ b/public/actions/submit.php @@ -12,7 +12,7 @@ require_once __DIR__ . "/../../lib/Email.lib.php"; function errorBack(string $errormsg) { global $familyid; - header("Location: ../?page=signup&error=" . htmlentities($errormsg)); + //header("Location: ../?page=signup&error=" . htmlentities($errormsg)); $database->delete("families", ["familyid" => $familyid]); die($errormsg); } @@ -50,6 +50,13 @@ $database->action(function($database) { errorBack("You need to register at least one person."); } + $campercount = 0; + foreach ($people['ids'] as $pid) { + if ($people["type"][$pidd] == "camper") { + $campercount++; + } + } + foreach ($people['ids'] as $pid) { // Clear these out $camperid = null; @@ -119,7 +126,9 @@ $database->action(function($database) { $days = ""; if (is_array($people["days"][$pid])) { - $validdays = ["Tu", "We", "Th", "Fr"]; + foreach ($SETTINGS["camp_days"] as $short => $long) { + $validdays[] = $short; + } $days = ""; foreach ($people["days"][$pid] as $day) { if (in_array($day, $validdays)) { @@ -142,21 +151,28 @@ $database->action(function($database) { $discount = 10.0 * (strlen($days) / 2); $dueusd -= $discount; echo "Subtracting $$discount from the total for an adult volunteer, dueusd is $dueusd\n"; - // Add shirt cost - if ($people["shirt"][$pid] != "NO" && (strlen($days) / 2) < 4) { - echo "Adding $10 for a tshirt.\n"; - $dueusd += 10.0; + // Add shirt charge if not working all days + if ($SETTINGS["prices"]["alone_adult_free_tshirt"] === true && $campercount == 0) { + // No shirt cost + } else if ($SETTINGS["prices"]["adult_tshirt"] !== false) { + if ($people["shirt"][$pid] != "NO" && (strlen($days) / 2) < $SETTINGS["prices"]["adult_tshirt"]) { + echo "Adding $10 for a tshirt.\n"; + $dueusd += 10.0; + } } $database->insert("adults", [ "position" => $people["position"][$pid], - "days" => $days + "days" => $days, + "child_care" => (empty($people["child_care"][$pid]) ? null : $people["child_care"][$pid]) ]); $adultid = $database->id(); break; case "youth": - if ($people["shirt"][$pid] != "NO" && (strlen($days) / 2) < 2) { - echo "Adding $10 for a tshirt.\n"; - $dueusd += 10.0; + if ($SETTINGS["prices"]["youth_tshirt"] !== false) { + if ($people["shirt"][$pid] != "NO" && (strlen($days) / 2) < $SETTINGS["prices"]["youth_tshirt"]) { + echo "Adding $10 for a tshirt.\n"; + $dueusd += 10.0; + } } $database->insert("youth", [ "position" => $people["position"][$pid], diff --git a/public/parts/signup.php b/public/parts/signup.php index d8c60dc..322e286 100644 --- a/public/parts/signup.php +++ b/public/parts/signup.php @@ -118,7 +118,22 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_
A $10 discount is applied for every day an adult volunteers.
- Shirts are $10, or free for adults who volunteer all four days. + + Shirts and patches are free for adult volunteers. + + Shirts are $, or free for adults who volunteer at least days. + + Shirts are also free for volunteers who are not attending with Cub Scouts. +
@@ -145,7 +160,17 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_ Add Youth
- Shirts are $10, or free for youth who volunteer at least two days. + + Shirts and patches are free for youth volunteers. + + Shirts are $, or free for youth who volunteer at least days. +
@@ -216,5 +241,8 @@ if (isset($_SESSION['familyid']) && $database->has('families', ['familyid' => $_ \ No newline at end of file diff --git a/public/parts/template_person.php b/public/parts/template_person.php index 9dea637..d83fa51 100644 --- a/public/parts/template_person.php +++ b/public/parts/template_person.php @@ -226,12 +226,7 @@ if (isset($personid) && $database->has('people', ['personid' => $personid])) { "label" => "Available Days", "name" => "days", "type" => "checkboxes", - "options" => [ - "Tu" => "Tuesday", - "We" => "Wednesday", - "Th" => "Thursday", - "Fr" => "Friday", - ], + "options" => $SETTINGS["camp_days"], "error" => "Choose at least one day." ], [ @@ -301,6 +296,17 @@ if (isset($personid) && $database->has('people', ['personid' => $personid])) { "error" => "Choose a gender." ], ]); + if ($type == "adult") { + $textboxes = array_merge($textboxes, [ + [ + "label" => "If you need child care for younger children, type their ages here", + "name" => "child_care", + "optional" => true, + "width" => 12, + "value" => $personinfo["child_care"] + ], + ]); + } foreach ($textboxes as $item) { ?> @@ -386,8 +392,8 @@ if (isset($personid) && $database->has('people', ['personid' => $personid])) { ?> -
- Tigers (boys entering the first grade in the Fall) must be accompanied by a parent or guardian. -
+
+ Tigers (boys entering the first grade in the Fall) must be accompanied by a parent or guardian. +
\ No newline at end of file diff --git a/public/static/signup.js b/public/static/signup.js index 896fd1f..dec8e00 100644 --- a/public/static/signup.js +++ b/public/static/signup.js @@ -87,23 +87,32 @@ function updateTotal() { return $(this).val() != ''; }).length * 10.0; - // Add $10 for adult shirts if they aren't working four days + // Add charge for adult shirts totalcharge = totalcharge + $(".person-list-item[data-persontype=adult]").filter(function () { + if (prices.adult_tshirt == false) { + return false; + } var days = $("input[data-name=days]:checked", $(this)).length; - if (days < 4 && $("select[data-name=shirt]", $(this)).val() != "NO" && $("select[data-name=shirt]", $(this)).val() != "") { + if (prices.alone_adult_free_tshirt == true && $(".person-list-item[data-persontype=camper]").length == 0) { + return false; + } + if (days < prices.adult_tshirt && $("select[data-name=shirt]", $(this)).val() != "NO" && $("select[data-name=shirt]", $(this)).val() != "") { return true; } return false; - }).length * 10.0; + }).length * prices.tshirt; - // Add $10 for youth shirts if they aren't working two days + // Add charge for youth shirts totalcharge += $(".person-list-item[data-persontype=youth]").filter(function () { + if (prices.youth_tshirt == false) { + return false; + } var days = $("input[data-name=days]:checked", $(this)).length; - if (days < 2 && $("select[data-name=shirt]", $(this)).val() != "NO" && $("select[data-name=shirt]", $(this)).val() != "") { + if (days < prices.youth_tshirt && $("select[data-name=shirt]", $(this)).val() != "NO" && $("select[data-name=shirt]", $(this)).val() != "") { return true; } return false; - }).length * 10.0; + }).length * prices.tshirt; totalcharge = Math.max(totalcharge, 0); diff --git a/settings.template.php b/settings.template.php index 641a106..63342d5 100644 --- a/settings.template.php +++ b/settings.template.php @@ -29,6 +29,22 @@ $SETTINGS = [ "site_title" => "Camp Portal", // Set to true to disable registration. "disable_registration" => false, + "camp_days" => [ + "Mo" => "Monday", + "Tu" => "Tuesday", + "We" => "Wednesday" + ], + "prices" => [ + "camp" => 50.0, + "tshirt" => 10.0, + // Set to false to make shirts always free, set to a number to make them + // free for people who work at least that many days + "youth_tshirt" => false, + "adult_tshirt" => 3, + // Set whether adults get free shirts when they're not bringing Cub Scouts, + // regardless of how many days they volunteer + "alone_adult_free_tshirt" => true + ], // Stripe keys for payment processing "stripe" => [ "pubkey" => "",