Update the data abstract for account and the billing contact view file.
authorSteve Sutton <steve@gaslightmedia.com>
Tue, 31 Jul 2018 19:00:20 +0000 (15:00 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Tue, 31 Jul 2018 19:00:20 +0000 (15:00 -0400)
Update for editing billing data using the contact form.
Update to save the billing country for the data class.

classes/data/dataAccounts.php
views/admin/billing/contact.html

index 17215f3..f5f47e6 100644 (file)
@@ -277,6 +277,14 @@ class GlmDataAccounts extends GlmDataAbstract
                 'required' => false,
             ),
 
+            // Billing Country
+            'billing_country' => array(
+                'field'    => 'billing_country',
+                'type'     => 'text',
+                'use'      => 'a',
+                'required' => false,
+            ),
+
             // Customer Profile Id
             // 'customer_profile_id' => array(
             //     'field'    => 'customer_profile_id',
index 0a914d5..270a343 100644 (file)
@@ -1,5 +1,11 @@
 <table id="billing-contact-data" class="glm-admin-table glm-admin-table-inner">
     <tbody>
+        <tr>
+            <th>Update Billing Account</th>
+            <td>
+                <input id="use_billing_account" type="checkbox" name="use_billing" />
+            </td>
+        </tr>
         <tr>
             <th class="{if $account.fieldRequired.email} glm-required{/if}">Billing Email</th>
             <td class="{if $account.fieldFail.email} glm-form-bad-input{/if}" data-tabid="glm-email">
@@ -123,16 +129,11 @@ jQuery(document).ready(function($){
         var contact_use_billing = $('input[name=contact_use_billing]');
         if ( contact_use_billing.attr('checked') ) {
             // Require the address fields for Contact Info
-            $('input[name=alt_email]').attr('required', true);
-            $('input[name=alt_email]').parent('td').prev().addClass('glm-required');
-            $('#addr1').attr('required', true);
-            $('#addr1').parent('td').prev().addClass('glm-required');
-            $('#city').attr('required', true);
-            $('#city').parent('td').prev().addClass('glm-required');
-            $('#state').attr('required', true);
-            $('#state').parent('td').prev().addClass('glm-required');
-            $('#zip').attr('required', true);
-            $('#zip').parent('td').prev().addClass('glm-required');
+            setFieldRequired( 'alt_email', 'input' );
+            setFieldRequired( 'addr1', 'input' );
+            setFieldRequired( 'city', 'select' );
+            setFieldRequired( 'state', 'select' );
+            setFieldRequired( 'zip', 'input' );
             // Turn off the business_use_billing
             var business_use_billing = $('input[name=business_use_billing]');
             business_use_billing.prop('checked', false);
@@ -140,16 +141,11 @@ jQuery(document).ready(function($){
             disableBillingForm();
         } else {
             // Un Require the address fields for Contact Info
-            $('input[name=alt_email]').attr('required', false);
-            $('input[name=alt_email]').parent('td').prev().removeClass('glm-required');
-            $('#addr1').attr('required', false);
-            $('#addr1').parent('td').prev().removeClass('glm-required');
-            $('#city').attr('required', false);
-            $('#city').parent('td').prev().removeClass('glm-required');
-            $('#state').attr('required', false)
-            $('#state').parent('td').prev().removeClass('glm-required');
-            $('#zip').attr('required', false);
-            $('#zip').parent('td').prev().removeClass('glm-required');
+            setFieldUnRequired( 'alt_email', 'input' );
+            setFieldUnRequired( 'addr1', 'input' );
+            setFieldUnRequired( 'city', 'select' );
+            setFieldUnRequired( 'state', 'select' );
+            setFieldUnRequired( 'zip', 'input' );
             enableBillingForm();
         }
     }
@@ -163,40 +159,26 @@ jQuery(document).ready(function($){
         var business_use_billing = $('input[name=business_use_billing]');
         if ( business_use_billing.attr('checked') ) {
             // Require the address fields for Contact
-            $('input[name=business_email]').attr('required', true);
-            $('input[name=business_email]').parent('td').prev().addClass('glm-required');
-            $('input[name=business_fname]').attr('required', true);
-            $('input[name=business_fname]').parent('td').prev().addClass('glm-required');
-            $('input[name=business_lname]').attr('required', true);
-            $('input[name=business_lname]').parent('td').prev().addClass('glm-required');
-            $('#business_addr1').attr('required', true);
-            $('#business_addr1').parent('td').prev().addClass('glm-required');
-            $('#businessCity').attr('required', true);
-            $('#businessCity').parent('td').prev().addClass('glm-required');
-            $('#business_state').attr('required', true);
-            $('#business_state').parent('td').prev().addClass('glm-required');
-            $('#business_zip').attr('required', true);
-            $('#business_zip').parent('td').prev().addClass('glm-required');
+            setFieldRequired( 'business_email', 'input' );
+            setFieldRequired( 'business_fname', 'input' );
+            setFieldRequired( 'business_lname', 'input' );
+            setFieldRequired( 'business_addr1', 'input' );
+            setFieldRequired( 'business_city', 'select' );
+            setFieldRequired( 'business_state', 'select' );
+            setFieldRequired( 'business_zip', 'input' );
             // Turn off the contact_use_billing
             var contact_use_billing = $('input[name=contact_use_billing]');
             contact_use_billing.prop('checked', false);
             checkContactRequired();
             disableBillingForm();
         } else {
-            $('input[name=business_email]').attr('required', false);
-            $('input[name=business_email]').parent('td').prev().removeClass('glm-required');
-            $('input[name=business_fname]').attr('required', false);
-            $('input[name=business_fname]').parent('td').prev().removeClass('glm-required');
-            $('input[name=business_lname]').attr('required', false);
-            $('input[name=business_lname]').parent('td').prev().removeClass('glm-required');
-            $('#business_addr1').attr('required', false);
-            $('#business_addr1').parent('td').prev().removeClass('glm-required');
-            $('#businessCity').attr('required', false);
-            $('#businessCity').parent('td').prev().removeClass('glm-required');
-            $('#business_state').attr('required', false)
-            $('#business_state').parent('td').prev().removeClass('glm-required');
-            $('#business_zip').attr('required', false);
-            $('#business_zip').parent('td').prev().removeClass('glm-required');
+            setFieldUnRequired( 'business_email', 'input' );
+            setFieldUnRequired( 'business_fname', 'input' );
+            setFieldUnRequired( 'business_lname', 'input' );
+            setFieldUnRequired( 'business_addr1', 'input' );
+            setFieldUnRequired( 'business_city', 'select' );
+            setFieldUnRequired( 'business_state', 'select' );
+            setFieldUnRequired( 'business_zip', 'input' );
             enableBillingForm();
         }
     }
@@ -205,6 +187,47 @@ jQuery(document).ready(function($){
     });
     checkBusinessRequired();
 
+    // If the billing address is used
+    function checkBillingRequired()
+    {
+        var use_billing = $('#use_billing_account');
+        if ( use_billing.attr('checked') ) {
+            setFieldRequired( 'billing_email', 'input' );
+            setFieldRequired( 'billing_fname', 'input' );
+            setFieldRequired( 'billing_lname', 'input' );
+            setFieldRequired( 'billing_addr1', 'input' );
+            setFieldRequired( 'billing_city', 'input' );
+            setFieldRequired( 'billing_state', 'select' );
+            setFieldRequired( 'billing_zip', 'input' );
+            enableBillingForm();
+        } else {
+            setFieldUnRequired( 'billing_email', 'input' );
+            setFieldUnRequired( 'billing_fname', 'input' );
+            setFieldUnRequired( 'billing_lname', 'input' );
+            setFieldUnRequired( 'billing_addr1', 'input' );
+            setFieldUnRequired( 'billing_city', 'input' );
+            setFieldUnRequired( 'billing_state', 'select' );
+            setFieldUnRequired( 'billing_zip', 'input' );
+            disableBillingForm();
+        }
+    }
+    $('#use_billing_account').click(function(){
+        checkBillingRequired();
+    });
+    checkBillingRequired();
+
+    function setFieldRequired( field_name, field_type )
+    {
+        $( field_type + '[name=' + field_name + ']' ).attr('required', true);
+        $( field_type + '[name=' + field_name + ']').parent('td').prev().addClass('glm-required');
+    }
+
+    function setFieldUnRequired( field_name, field_type )
+    {
+        $( field_type + '[name=' + field_name + ']' ).attr('required', false);
+        $( field_type + '[name=' + field_name + ']').parent('td').prev().removeClass('glm-required');
+    }
+
     // Disable the billing form
     function disableBillingForm()
     {