add anniversary date, RT#18631
authorIvan Kohler <ivan@freeside.biz>
Thu, 26 Jul 2012 21:02:36 +0000 (14:02 -0700)
committerIvan Kohler <ivan@freeside.biz>
Thu, 26 Jul 2012 21:02:36 +0000 (14:02 -0700)
FS/FS/Conf.pm
FS/FS/Schema.pm
FS/FS/cust_main.pm
FS/FS/cust_main/Import.pm
FS/FS/cust_main/Search.pm
httemplate/edit/cust_main.cgi
httemplate/edit/cust_main/birthdate.html
httemplate/edit/process/cust_main.cgi
httemplate/search/cust_main.html
httemplate/search/report_cust_main.html
httemplate/view/cust_main/misc.html

index 7e64130..0435945 100644 (file)
@@ -3653,6 +3653,13 @@ and customer address. Include units.',
   },
 
   {
+    'key'         => 'cust_main-enable_anniversary_date',
+    'section'     => 'UI',
+    'description' => 'Enable tracking of an anniversary date with each customer record',
+    'type'        => 'checkbox',
+  },
+
+  {
     'key'         => 'cust_main-edit_calling_list_exempt',
     'section'     => 'UI',
     'description' => 'Display the "calling_list_exempt" checkbox on customer edit.',
index 797b705..3fc26b0 100644 (file)
@@ -858,6 +858,7 @@ sub tables_hashref {
         'stateid_state', 'varchar', 'NULL', $char_d, '', '', 
         'birthdate' ,@date_type, '', '', 
         'spouse_birthdate' ,@date_type, '', '', 
+        'anniversary_date' ,@date_type, '', '', 
         'signupdate',@date_type, '', '', 
         'dundate',   @date_type, '', '', 
         'company',  'varchar', 'NULL', $char_d, '', '', 
index 82b09b6..78791dd 100644 (file)
@@ -1779,8 +1779,10 @@ sub check {
     || $self->ut_textn('custbatch')
     || $self->ut_name('last')
     || $self->ut_name('first')
-    || $self->ut_snumbern('birthdate')
     || $self->ut_snumbern('signupdate')
+    || $self->ut_snumbern('birthdate')
+    || $self->ut_snumbern('spouse_birthdate')
+    || $self->ut_snumbern('anniversary_date')
     || $self->ut_textn('company')
     || $self->ut_anything('comments')
     || $self->ut_numbern('referral_custnum')
index 6681f9e..ee14cba 100644 (file)
@@ -375,7 +375,8 @@ sub batch_import {
     }
 
     $cust_main{$_} = parse_datetime($cust_main{$_})
-      foreach grep $cust_main{$_}, qw( birthdate spouse_birthdate );
+      foreach grep $cust_main{$_},
+        qw( birthdate spouse_birthdate anniversary_date );
 
     my $invoicing_list = $cust_main{'invoicing_list'}
                            ? [ delete $cust_main{'invoicing_list'} ]
index b528a68..b213bbc 100644 (file)
@@ -475,6 +475,10 @@ listref of start date, end date
 
 listref of start date, end date
 
+=item anniversary_date
+
+listref of start date, end date
+
 =item payby
 
 listref
@@ -617,7 +621,7 @@ sub search {
   # dates
   ##
 
-  foreach my $field (qw( signupdate birthdate spouse_birthdate )) {
+  foreach my $field (qw( signupdate birthdate spouse_birthdate anniversary_date )) {
 
     next unless exists($params->{$field});
 
index ef81eba..1ad031d 100755 (executable)
@@ -30,6 +30,7 @@
 %# birthdate
 % if (    $conf->exists('cust_main-enable_birthdate')
 %      || $conf->exists('cust_main-enable_spouse_birthdate')
+%      || $conf->exists('cust_main-enable_anniversary_date')
 %    )
 % {
   <BR>
index 5d6a123..5447a3a 100644 (file)
@@ -1,5 +1,7 @@
 <% ntable("#cccccc", 2) %>
+
 % # maybe put after the contact names?
+
 % if ( $conf->exists('cust_main-enable_birthdate') ) {
   <% include( '/elements/tr-input-date-field.html', {
                 'name'        => 'birthdate',
@@ -11,6 +13,7 @@
             })
   %>
 % }
+
 % if ( $conf->exists('cust_main-enable_spouse_birthdate') ) {
   <% include( '/elements/tr-input-date-field.html', {
                 'name'        => 'spouse_birthdate',
             })
   %>
 % }
+
+% if ( $conf->exists('cust_main-enable_anniversary_date') ) {
+  <% include( '/elements/tr-input-date-field.html', {
+                'name'        => 'anniversary_date',
+                'value'       => $cust_main->anniversary_date,
+                'label'       => 'Anniversary Date',
+                'format'      => ( $conf->config('date_format') || "%m/%d/%Y" ),
+                'usedatetime' => 1,
+                'noinit'      => $noinit++,
+            })
+  %>
+% }
+
 </TABLE>
 <%init>
 
index 5ee553b..866452d 100755 (executable)
@@ -112,9 +112,12 @@ $new->tagnum( [ $cgi->param('tagnum') ] );
 
 my %usedatetime = ( 'birthdate'        => 1,
                     'spouse_birthdate' => 1,
+                    'anniversary_date' => 1,
                   );
 
-foreach my $dfield (qw( birthdate spouse_birthdate signupdate )) {
+foreach my $dfield (qw(
+  signupdate birthdate spouse_birthdate anniversary_date
+)) {
 
   if ( $cgi->param($dfield) && $cgi->param($dfield) =~ /^([ 0-9\-\/]{0,10})$/) {
 
index e164b98..f75b451 100755 (executable)
@@ -61,7 +61,7 @@ for my $param (qw( classnum refnum payby tagnum )) {
 # parse dates
 ###
 
-foreach my $field (qw( signupdate birthdate spouse_birthdate )) {
+foreach my $field (qw( signupdate birthdate spouse_birthdate anniversary_date )) {
 
   my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi, $field);
 
index 39cf695..526bce2 100755 (executable)
       </TR>
 %   }
 
+%    if ( $conf->exists('cust_main-enable_anniversary_date') ) {
+      <TR>
+          <TD ALIGN="right" VALIGN="center"><% mt('Anniversary Date') |h %></TD>
+          <TD>
+          <TABLE>
+              <& /elements/tr-input-beginning_ending.html,
+                        prefix   => 'anniversary_date',
+                        layout   => 'horiz',
+              &>
+          </TABLE>
+          </TD>
+      </TR>
+%   }
+
     <& /elements/tr-select-cust_tag.html,
                   'cgi'                 => $cgi,
                   'is_report'    => 1,
index a0ab403..dc6da53 100644 (file)
 
 % }
 
+% if ( $conf->exists('cust_main-enable_anniversary_date') ) {
+%   my $dt = $cust_main->anniversary_date ne ''
+%              ? DateTime->from_epoch( 'epoch'  => $cust_main->anniversary_date,
+%                                      'time_zone' =>'floating',
+%                                    )
+%              : '';
+
+  <TR>
+    <TD ALIGN="right"><% mt('Anniversary Date') |h %></TD>
+    <TD BGCOLOR="#ffffff"><% $dt ? $dt->strftime($date_format) : '' %></TD>
+  </TR>
+
+% }
+
 % if ( $conf->exists('cust_main-require_censustract') ) {
 
   <TR>