dev/core#1809 - Add start/end adjustment columns to membership status page
authorJitendra Purohit <jitendra@fuzion.co.nz>
Wed, 10 Jun 2020 11:58:35 +0000 (17:28 +0530)
committerJitendra Purohit <jitendra@fuzion.co.nz>
Wed, 10 Jun 2020 12:08:24 +0000 (17:38 +0530)
CRM/Member/Page/MembershipStatus.php
templates/CRM/Member/Page/MembershipStatus.tpl

index 7850f140650a55b4243a23efeb46445fb32ffcc5..39a895c3b2c7f985030a1c15de3b630474d6a1f8 100644 (file)
@@ -114,12 +114,25 @@ class CRM_Member_Page_MembershipStatus extends CRM_Core_Page_Basic {
           $dao->id
         );
       }
-      if ($startEvent = CRM_Utils_Array::value('start_event', $membershipStatus[$dao->id])) {
+      $startEvent = $membershipStatus[$dao->id]['start_event'] ?? NULL;
+      $endEvent = $membershipStatus[$dao->id]['end_event'] ?? NULL;
+      $startEventUnit = $membershipStatus[$dao->id]['start_event_adjust_unit'] ?? NULL;
+      $endEventUnit = $membershipStatus[$dao->id]['end_event_adjust_unit'] ?? NULL;
+      $startEventInterval = $membershipStatus[$dao->id]['start_event_adjust_interval'] ?? NULL;
+      $endEventInterval = $membershipStatus[$dao->id]['end_event_adjust_interval'] ?? NULL;
+
+      if ($startEvent) {
         $membershipStatus[$dao->id]['start_event'] = ($startEvent == 'join_date') ? 'member since' : str_replace("_", " ", $startEvent);
       }
-      if ($endEvent = CRM_Utils_Array::value('end_event', $membershipStatus[$dao->id])) {
+      if ($endEvent) {
         $membershipStatus[$dao->id]['end_event'] = ($endEvent == 'join_date') ? 'member since' : str_replace("_", " ", $endEvent);
       }
+      if ($startEventUnit && $startEventInterval) {
+        $membershipStatus[$dao->id]['start_event_adjust_unit_interval'] = "{$startEventInterval} {$startEventUnit}";
+      }
+      if ($endEventUnit && $endEventInterval) {
+        $membershipStatus[$dao->id]['end_event_adjust_interval'] = "{$endEventInterval} {$endEventUnit}";
+      }
     }
     // Add order changing widget to selector
     $returnURL = CRM_Utils_System::url('civicrm/admin/member/membershipStatus', "reset=1&action=browse");
index 2cd18c3ff59e1456db5ab04f7e06018c2d0693ee..c8c976fdbbee9b78de6025bacda0eb897c69016a 100644 (file)
@@ -28,7 +28,9 @@
         <thead class="sticky">
             <th>{ts}Status{/ts}</th>
             <th>{ts}Start Event{/ts}</th>
+            <th>{ts}Start Adjustment{/ts}</th>
             <th>{ts}End Event{/ts}</th>
+            <th>{ts}End Adjustment{/ts}</th>
             <th>{ts}Member{/ts}</th>
             <th>{ts}Admin{/ts}</th>
             <th>{ts}Order{/ts}</th>
         {foreach from=$rows item=row}
         <tr id="membership_status-{$row.id}" class="crm-entity {cycle values="odd-row,even-row"} {$row.class} {if NOT $row.is_active} disabled{/if} crmf">
           <td class="crmf-label crm-editable" >{$row.label}</td>
-          <td class="crmf-start_event crm-editable" data-type="select" data-empty-option="{ts}- none -{/ts}">{$row.start_event}</td>
-          <td class="crmf-end_event crm-editable" data-type="select" data-empty-option="{ts}- none -{/ts}">{$row.end_event}</td>
+          <td class="nowrap crmf-start_event crm-editable" data-type="select" data-empty-option="{ts}- none -{/ts}">{$row.start_event}</td>
+          <td class="nowrap crmf-start_event_adjust_unit_interval">{$row.start_event_adjust_unit_interval}</td>
+          <td class="nowrap crmf-end_event crm-editable" data-type="select" data-empty-option="{ts}- none -{/ts}">{$row.end_event}</td>
+          <td class="nowrap crmf-end_event_adjust_interval">{$row.end_event_adjust_interval}</td>
           <td class="crmf-is_current_member crm-editable" data-type="boolean">{if $row.is_current_member eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
           <td class="crmf-is_admin crm-editable" data-type="boolean">{if $row.is_admin eq 1} {ts}Yes{/ts} {else} {ts}No{/ts} {/if}</td>
           <td class="nowrap crmf-weight">{$row.weight}</td>