Added custom form data to cart summary view. Now respecting priority flags.
authorChuck Scott <cscott@gaslightmedia.com>
Thu, 21 Dec 2017 17:40:28 +0000 (12:40 -0500)
committerChuck Scott <cscott@gaslightmedia.com>
Thu, 21 Dec 2017 17:40:28 +0000 (12:40 -0500)
.gitignore
classes/regCartSupport.php
models/front/registrations/cart.php
views/front/registrations/cartSummary.html

index a14ebf5..cd7b240 100644 (file)
@@ -1,2 +1,5 @@
 node_modules/
-.project
\ No newline at end of file
+.gitignore
+.project
+.buildpath
+.settings/
index 7a2aecc..c1a02c2 100644 (file)
@@ -221,6 +221,12 @@ class GlmRegCartSupport
                 $e = $RegEvent->getEntry($event['reg_event']);
                 $this->cart['events'][$eventKey]['payment_methods'] = $e['payment_methods'];
 
+                // If custom fields add-on is installed - get custom fields data
+                if (apply_filters('glm-members-customfields-plugin-active', false)) {
+                    $this->cart['events'][$eventKey]['event_custom_form'] =
+                        apply_filters( 'glm-members-customfields-form-data-recall', '', "glm_reg_customfields_reg_event_".$event['reg_event'], $requestId, true );
+                }
+
                 // Get list of event classes requested for this event
                 $this->cart['events'][$eventKey]['classes'] = $RequestClass->getList("T.reg_request_event =  ".$event['id']);
 
@@ -277,16 +283,19 @@ class GlmRegCartSupport
 
                                         }
 
+                                        // If custom fields add-on is installed - get custom fields data
+                                        $this->cart['events'][$eventKey]['classes'][$classKey]['rates'][$rateKey]['registrants'][$registrantKey]['event_attendee_custom_form'] = false;
+                                        if (apply_filters('glm-members-customfields-plugin-active', false)) {
+                                            $form = apply_filters( 'glm-members-customfields-form-data-recall', '', "glm_reg_customfields_reg_event_attendee_".$event['reg_event'], $registrantKey, true );
+                                            $this->cart['events'][$eventKey]['classes'][$classKey]['rates'][$rateKey]['registrants'][$registrantKey]['event_attendee_custom_form'] = $form;
+                                        }
+
                                     } // Each Registrant
                                 }
-
                             } // Each Rate
                         }
-
-
                     } // Each Class
                 }
-
             } // Each Event
         }
 
@@ -334,9 +343,9 @@ class GlmRegCartSupport
      */
     public function checkRegistrationRequest($requestId = false, $json = false, $noReturn = false)
     {
-        
+
         // echo "SESSION DATA: <pre>".print_r($_SESSION,1).print_r($regRequest,1)."</pre>";
-        
+
         // Try to get the cart data
         $this->getRegistrationCart($requestId, false, true);
 
@@ -346,6 +355,7 @@ class GlmRegCartSupport
         if (!$this->cart['status']) {
             $this->cart['blockCheckout'] = true;
             $_SESSION['glm_reg_cart_id'] = false;
+            trigger_error('Cart ID '.$requestId.' does not have matching reg_request record. Cart ID removed from session.');
             return $this->cart;
         }
 
@@ -515,6 +525,11 @@ class GlmRegCartSupport
                                                     $rateRegistrantCharges += $registrantCharges;
                                                     $rateDiscounts += $registrantDiscounts;
 
+                                                    // Add in any custom form costs
+                                                    if ($registrant['event_attendee_custom_form']) {
+                                                        $rateRegistrantCharges += $registrant['event_attendee_custom_form']['totalCost'];
+                                                    }
+
                                                     // Save totals for this registrant
                                                     $this->cart['events'][$eventKey]['classes'][$classKey]['rates'][$rateKey]['registrants'][$registrantKey]['registrantRate']      = $registrantCharges;
                                                     $this->cart['events'][$eventKey]['classes'][$classKey]['rates'][$rateKey]['registrants'][$registrantKey]['registrantDiscounts'] = $registrantDiscounts;
index 0027e31..c80041b 100644 (file)
@@ -154,7 +154,7 @@ class GlmMembersFront_registrations_cart extends GlmRegCartSupport
             'cartPageText'  => $misc['cart_page_text']
         );
 
-        // echo "<pre>".print_r($templateData,1)."</pre>";
+        // echo "<pre>".print_r($this->cart,1)."</pre>";
 
         // Return status, any suggested view, and any data to controller
         return array(
index d38874e..2aa4682 100644 (file)
                 <div class="{$summaryClass2Col} glm-reg-row-bold">
                     {$registrant.fname} {$registrant.lname}
                 </div>
-                <div class="{$summaryClass3Col} glm-column glm-reg-space-left">
+                <div class="{$summaryClass2Col} glm-column glm-reg-row-bold">
+                    Date & Time:
+                </div>
+                <div class="{$summaryClass2Col} glm-column">
                     {$registrant.timeReformatted}
                 </div>
-                <div class="{$summaryClass6Col} glm-column glm-reg-space-left">
-                    Cookies and Milk (temp test data)
+                <div class="{$summaryClass4Col} glm-column glm-reg-space-left glm-reg-right glm-reg-row-bold">
+                    Registrant Charge:
                 </div>
-                <div class="{$summaryClass3Col} glm-column glm-reg-right">
+                <div class="{$summaryClass4Col} glm-column glm-reg-right">
     {if $registrant.registrantRate > 0}
                         ${$registrant.registrantRate|number_format:2}
     {else}
     {/if}
                 </div>
             </div>
+    {if $registrant.event_attendee_custom_form}
+      {foreach $registrant.event_attendee_custom_form.form as $customField}
+        {if $customField.priority_display.value || $customField.cost > 0}
+            <div class="glm-reg-row glm-reg-indent-1 glm-reg-cart-registrant">
+                <div class="{$summaryClass2Col} glm-column glm-reg-row-bold glm-reg-cart-label">
+                  {$customField.field_name}:
+                </div>
+                <div class="{$summaryClass6Col} glm-column glm-reg-cart-data">
+                  {$customField.stored}
+                </div>
+          {if $customField.cost > 0}                
+                <div class="{$summaryClass4Col} glm-column glm-reg-right glm-reg-cart-data">
+                  ${$customField.cost|number_format:2}
+                </div>
+          {/if}
+            </div>      
+        {/if}
+      {/foreach}
+    {/if}                    
     {if $registrant.registrantDiscounts > 0}
             <div class="glm-reg-row glm-reg-indent-2 glm-reg-cart-registrant-discount">
                 <div class="glm-small-8 glm-medium-8 glm-column glm-reg-cart-label">
@@ -69,6 +91,7 @@
    {/foreach} {* registrants *} 
   {/foreach} {* rates *}
  {/foreach} {* classes *}
+ {if $event.eventDiscounts > 0}
             <div class="glm-reg-row glm-reg-cart-event-discount">
                 <div class="glm-small-8 glm-medium-8 glm-column glm-reg-right glm-reg-cart-label">
                     Event Discounts
                      ${$event.eventDiscounts|number_format:2}
                 </div>
             </div>
+ {/if}
             <div class="glm-reg-row glm-reg-row-bold glm-reg-cart-event-registrants">
                 <div class="glm-small-8 glm-medium-8 glm-column glm-reg-right glm-reg-cart-label">
-                    Registrants: {$event.eventRegistrants}
+                    Registrants this event: {$event.eventRegistrants}
                 </div>
                 <div class="glm-small-4 glm-medium-4 glm-column glm-reg-right glm-reg-cart-data">
                     ${$event.eventCharges|number_format:2}
                 Registration Request Totals
             </div>        
         </div>
-{if $cart.totalDiscounts == 0}
+{if $cart.totalDiscounts > 0}
         <div class="glm-reg-row glm-reg-cart-total-discounts">
             <div class="glm-small-8 glm-medium-8 glm-column glm-reg-right glm-reg-cart-label">
                 Total Discounts