CRM-12252 Add in help_pre and help_post fields for price field options
authorSeamus Lee <seamuslee001@gmail.com>
Wed, 29 Jun 2016 04:37:14 +0000 (14:37 +1000)
committerSeamus Lee <seamuslee001@gmail.com>
Wed, 29 Jun 2016 04:37:14 +0000 (14:37 +1000)
CRM/Price/BAO/PriceField.php
CRM/Upgrade/Incremental/sql/4.7.9.mysql.tpl
templates/CRM/Price/Form/Option.tpl
templates/CRM/Price/Page/Option.tpl
xml/schema/Price/PriceFieldValue.xml

index 4ea169d4fa63e087c004bd1f11420bba38769dfc..a78f297857a0c5ea04794ff6d1fe042d889659ea 100644 (file)
@@ -376,21 +376,25 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField {
           $taxAmount = CRM_Utils_Array::value('tax_amount', $opt);
           if ($field->is_display_amounts) {
             $opt['label'] = !empty($opt['label']) ? $opt['label'] . '&nbsp;-&nbsp;' : '';
+            $pre_help = isset($opt['help_pre']) ?
+              '<span class="crm-price-amount-help-pre">' . $opt['help_pre'] . '</span>: ' : '';
+            $post_help = isset($opt['help_post']) ?
+              ': <span class="crm-price-amount-help-post">' . $opt['help_post'] . '</span>' : '';
             if (isset($taxAmount) && $invoicing) {
               if ($displayOpt == 'Do_not_show') {
-                $opt['label'] = '<span class="crm-price-amount-label">' . $opt['label'] . '</span>' . '<span class="crm-price-amount-amount">' . CRM_Utils_Money::format($opt[$valueFieldName] + $taxAmount) . '</span>';
+                $opt['label'] = $pre_help . '<span class="crm-price-amount-label">' . $opt['label'] . '</span>' . '<span class="crm-price-amount-amount">' . CRM_Utils_Money::format($opt[$valueFieldName] + $taxAmount) . '</span>' . $post_help;
               }
               elseif ($displayOpt == 'Inclusive') {
-                $opt['label'] = '<span class="crm-price-amount-label">' . $opt['label'] . '</span>' . '<span class="crm-price-amount-amount">' . CRM_Utils_Money::format($opt[$valueFieldName] + $taxAmount) . '</span>';
-                $opt['label'] .= '<span class="crm-price-amount-tax"> (includes ' . $taxTerm . ' of ' . CRM_Utils_Money::format($opt['tax_amount']) . ')</span>';
+                $opt['label'] = $pre_help . '<span class="crm-price-amount-label">' . $opt['label'] . '</span>' . '<span class="crm-price-amount-amount">' . CRM_Utils_Money::format($opt[$valueFieldName] + $taxAmount) . '</span>';
+                $opt['label'] .= '<span class="crm-price-amount-tax"> (includes ' . $taxTerm . ' of ' . CRM_Utils_Money::format($opt['tax_amount']) . ')</span>'  . $post_help;
               }
               else {
-                $opt['label'] = '<span class="crm-price-amount-label">' . $opt['label'] . '</span>' . '<span class="crm-price-amount-amount">' . CRM_Utils_Money::format($opt[$valueFieldName]) . '</span>';
-                $opt['label'] .= '<span class="crm-price-amount-tax"> + ' . CRM_Utils_Money::format($opt['tax_amount']) . ' ' . $taxTerm . '</span>';
+                $opt['label'] = $pre_help . '<span class="crm-price-amount-label">' . $opt['label'] . '</span>' . '<span class="crm-price-amount-amount">' . CRM_Utils_Money::format($opt[$valueFieldName]) . '</span>';
+                $opt['label'] .= '<span class="crm-price-amount-tax"> + ' . CRM_Utils_Money::format($opt['tax_amount']) . ' ' . $taxTerm . '</span>'  . $post_help;
               }
             }
             else {
-              $opt['label'] = '<span class="crm-price-amount-label">' . $opt['label'] . '</span>' . '<span class="crm-price-amount-amount">' . CRM_Utils_Money::format($opt[$valueFieldName]) . '</span>';
+              $opt['label'] = $pre_help . '<span class="crm-price-amount-label">' . $opt['label'] . '</span>' . '<span class="crm-price-amount-amount">' . CRM_Utils_Money::format($opt[$valueFieldName]) . '</span>'  . $post_help;
             }
           }
           $count = CRM_Utils_Array::value('count', $opt, '');
@@ -414,7 +418,6 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField {
           }
 
           $choice[$opId] = $qf->createElement('radio', NULL, '', $opt['label'], $opt['id'], $extra);
-
           if ($is_pay_later) {
             $qf->add('text', 'txt-' . $elementName, $label, array('size' => '4'));
           }
@@ -527,12 +530,16 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField {
           $max_value = CRM_Utils_Array::value('max_value', $opt, '');
 
           if ($field->is_display_amounts) {
+            $pre_help = isset($opt['help_pre']) ?
+              '<span class="crm-price-amount-help-pre">' . $opt['help_pre'] . '</span>: ' : '';
+            $post_help = isset($opt['help_post']) ?
+              ': <span class="crm-price-amount-help-post">' . $opt['help_post'] . '</span>' : '';
             $opt['label'] = '<span class="crm-price-amount-label">' . $opt['label'] . '</span>&nbsp;-&nbsp;';
             if (isset($taxAmount) && $invoicing) {
-              $opt['label'] .= self::getTaxLabel($opt, $valueFieldName, $displayOpt, $taxTerm);
+              $opt['label'] .= $pre_help . self::getTaxLabel($opt, $valueFieldName, $displayOpt, $taxTerm) . $post_help;
             }
             else {
-              $opt['label'] .= CRM_Utils_Money::format($opt[$valueFieldName]);
+              $opt['label'] .= $pre_help . CRM_Utils_Money::format($opt[$valueFieldName]) . $post_help;
             }
           }
           $priceVal = implode($seperator, array($opt[$valueFieldName] + $taxAmount, $count, $max_value));
index 6c411d128a3b10a0e6543d051ebbeebbca0d79b3..e553d8fcfcad74ca9c659e2dfce131f081b7f230 100644 (file)
@@ -53,3 +53,9 @@ INSERT INTO `civicrm_entity_financial_account`
 VALUES
   ('civicrm_financial_type', @financial_type_id_ef, @option_value_rel_id_dr, @financial_account_id_dref),
   ('civicrm_financial_type', @financial_type_id_md, @option_value_rel_id_dr, @financial_account_id_drmd);
+
+--CRM-12252 Add in help_pre and help_post colmns to price field value table
+ALTER TABLE `civicrm_price_field_value`
+ADD `help_pre` text COLLATE utf8_unicode_ci COMMENT 'Price field option pre help text.';
+ALTER TABLE `civicrm_price_field_value`
+ADD `help_post` text COLLATE utf8_unicode_ci COMMENT 'Price field option post field help.';
index 123be21b3ed662470950eb50cda528ab96b1a827..56002036232f18b94c08775b5b6da83ab14b3657 100644 (file)
         <td class="label">{$form.description.label}</td>
         <td>{if $action == 2}{include file='CRM/Core/I18n/Dialog.tpl' table='civicrm_price_field_value' field='description' id=$optionId}{/if}{$form.description.html}</td>
       </tr>
+      <tr class="crm-price-option-form-block-help-pre">
+        <td class="label">{$form.help_pre.label}</td>
+        <td>{if $action == 2}{include file='CRM/Core/I18n/Dialog.tpl' table='civicrm_price_field_value' field='help_pre' id=$optionId}{/if}{$form.help_pre.html}</td>
+      </tr>
+      <tr class="crm-price-option-form-block-help-post">
+        <td class="label">{$form.help_post.label}</td>
+        <td>{if $action == 2}{include file='CRM/Core/I18n/Dialog.tpl' table='civicrm_price_field_value' field='help_post' id=$optionId}{/if}{$form.help_post.html}</td>
+      </tr>
       <tr class="crm-price-option-form-block-financial-type">
         <td class="label">{$form.financial_type_id.label}</td>
         <td>
index a96f73b758339543ed1c490eede03bb248956c37..d97a3dd8e87f677525bf52044670cc1029e17664 100644 (file)
@@ -54,6 +54,8 @@
           <tr>
             <th>{ts}Option Label{/ts}</th>
             <th>{ts}Option Amount{/ts}</th>
+            <th>{ts}Pre Help{/ts}</th>
+            <th>{ts}Post Help{/ts}</th>
             {if $isEvent}
               <th>{ts}Participant Count{/ts}</th>
               <th>{ts}Maximum{/ts}</th>
@@ -74,6 +76,8 @@
             <tr id="price_field_value-{$row.id}" class="crm-entity {cycle values="odd-row,even-row"} {$row.class}{if NOT $row.is_active} disabled{/if}">
               <td class="crm-price-option-label crm-editable" data-field="label">{$row.label}</td>
               <td class="crm-price-option-value">{$row.amount|crmMoney}</td>
+              <td class="crm-price-option-pre-help">{$row.help_pre}</td>
+              <td class="crm-price-option-post-help">{$row.help_post}</td>
               {if $isEvent}
                 <td class="crm-price-option-count">{$row.count}</td>
                 <td class="crm-price-option-max">{$row.max_value}</td>
index 256a5284d737500a80e44c124f06d06c79086f49..5fc037bdc2c8a3f6e53fee51cce7f2b418798cf8 100644 (file)
     <comment>>Price field option description.</comment>
     <add>3.3</add>
   </field>
+  <field>
+    <name>help_pre</name>
+    <type>text</type>
+    <html>
+      <type>TextArea</type>
+      <rows>2</rows>
+      <cols>60</cols>
+    </html>
+    <default>NULL</default>
+    <localizable>true</localizable>
+    <comment>Price field option pre help text.</comment>
+    <add>4.7</add>
+  </field>
+  <field>
+    <name>help_post</name>
+    <type>text</type>
+    <html>
+      <type>TextArea</type>
+      <rows>2</rows>
+      <cols>60</cols>
+    </html>
+    <default>NULL</default>
+    <localizable>true</localizable>
+    <comment>Price field option post field help.</comment>
+    <add>4.7</add>
+  </field>
   <field>
     <name>amount</name>
     <type>varchar</type>