Added new 'attending' flag to eq_elder table.
authorAlan Jack Pippin <ajp@pippin.(none)>
Sun, 12 Aug 2007 22:33:34 +0000 (16:33 -0600)
committerAlan J. Pippin <ajp@pippins.net>
Sun, 12 Aug 2007 22:33:34 +0000 (16:33 -0600)
Increased intelligence of import tool to set 'attending' flag
apprpriately based on the Elder's calling.

import_ward_data
inc/class.eq.inc.php
templates/default/vis_view.tpl

index c13e6ed2eaf012a9778293414047299e6a340b26..bd707b4da75f149659a18d4c63a6acc20481d66a 100755 (executable)
@@ -138,6 +138,7 @@ sub update_eq_aaronic_table
 #| ppi_notes   | varchar(128)     | YES  |     | NULL    |                |
 #| int_pri     | int(10) unsigned | YES  |     | 1       |                |
 #| int_notes   | varchar(128)     | YES  |     | NULL    |                |
+#| attending   | tinyint(1)       | YES  |     | 0       |                |
 #| valid       | tinyint(1)       | YES  |     | NULL    |                |
 #+-------------+------------------+------+-----+---------+----------------+
 sub update_eq_elder_table
@@ -153,8 +154,16 @@ sub update_eq_elder_table
        $hashref = $membership_data{$index};
        foreach $key (keys %$hashref) {
            if($key =~ /Priesthood/i && $membership_data{$index}{$key} =~ /Elder/i) {
+               $id = $membership_data{$index}{'Indiv ID'};
                $elder_name = $membership_data{$index}{'Preferred Name'};
                $phone = $membership_data{$index}{'Phone 1'};
+               $organization = $organization_by_id{$id};
+               $attending = 0;
+               if(($organization =~ /Elders/) ||
+                  ($organization =~ /Young Men/) ||
+                  ($organization =~ /Sunday School/) ||
+                  ($organization =~ /Primary/)
+                  ) { $attending = 1; }
                if($phone =~ /(\d\d\d-\d\d\d\d)/) { $phone = "970-$1"; }
                if($phone =~ /^\(\d\d\d\) (\d\d\d-\d\d\d\d)/) { $phone = "$1-$2"; }
                $sth = $dbh->prepare("select * from eq_elder where name='$elder_name'");
@@ -165,7 +174,7 @@ sub update_eq_elder_table
                if($rows == 0) {
                    # No existing records found for this elder, make a new entry
                    print "   Adding new Elder: $elder_name\n";
-                   $sth = $dbh->prepare("insert into eq_elder values (NULL,'$elder_name','$phone','1','','1','',1)");
+                   $sth = $dbh->prepare("insert into eq_elder values (NULL,'$elder_name','$phone','1','','1','',$attending,1)");
                    $sth->execute or die "-E- DB error: $DBI::errstr\n";
                } elsif($rows == 1) {
                    # An existing record was found for this elder, update it
@@ -178,6 +187,8 @@ sub update_eq_elder_table
                        $sth = $dbh->prepare("update eq_elder set phone=NULL where name='$elder_name'");
                    }
                    $sth->execute or die "-E- DB error: $DBI::errstr\n";
+                   $sth = $dbh->prepare("update eq_elder set attending='$attending' where name='$elder_name'");
+                   $sth->execute or die "-E- DB error: $DBI::errstr\n";
                } else {
                    # More than one record was found. Error! This shouldn't happen.
                    print "   -E- More than one record found ($rows) for Elder: $elder_name\n";
@@ -217,6 +228,8 @@ sub update_eq_calling_table()
        $name = $organization_data{$index}{'Indiv Name'};
        $name =~ s/\'/\\'/g; #'
        $organization = $organization_data{$index}{'Organization'};
+       $organization_by_name{$name} = $organization;
+       $organization_by_id{$indiv_id} = $organization;
        $position = $organization_data{$index}{'Position'};
        $sequence = $organization_data{$index}{'Org Seq'};
        $sustained = $organization_data{$index}{'Sustained'};
@@ -689,6 +702,8 @@ print "\n-> Processing all ward data files in $datadir\n";
 &csv_to_hash("$datadir/Membership.csv",\%membership_data);
 &csv_to_hash("$datadir/HomeTeaching.csv",\%hometeaching_data);
 &csv_to_hash("$datadir/Organization.csv",\%organization_data);
+%organization_by_name = ();
+%organization_by_id = ();
 
 if($opt_v) {
     print "-> Membership Data Dump\n\n";
@@ -702,6 +717,7 @@ if($opt_v) {
 if($opt_s) { $dbh->disconnect(); exit; }
 
 # Now update the various eq DB tables
+&update_eq_calling_table();
 &update_eq_elder_table();
 &update_eq_aaronic_table();
 &update_eq_district_table();
@@ -709,7 +725,6 @@ if($opt_s) { $dbh->disconnect(); exit; }
 &update_eq_family_table();
 &update_eq_parent_table();
 &update_eq_child_table();
-&update_eq_calling_table();
 
 ###################################################
 # Disconnect from the database
index 38786c2677d685232f0bea25f0352cc112cb7c39..1869a5242d91d1fcf09bf25a7e1037a5ae6e9ed6 100644 (file)
@@ -22,9 +22,10 @@ class eq
   var $default_ht_num_months;
   var $default_ppi_num_months;
   var $default_ppi_num_years;
-  var $default_int_num_months;
+  var $default_int_num_quarters;
   var $default_int_num_years;
-  var $default_att_num_months;
+  var $default_vis_num_years;
+  var $default_att_num_quarters;
   var $current_year;
   var $current_month;
   var $upload_target_path;
@@ -61,10 +62,9 @@ class eq
       $this->default_ppi_num_months = 3;
       $this->default_ppi_num_years = 0;
       $this->default_int_num_quarters = 1;
-      $this->default_int_num_months = 3;
       $this->default_int_num_years = 0;
       $this->default_att_num_quarters = 1;
-      $this->default_att_num_months = 3;
+      $this->default_vis_num_years = 1;
       $this->upload_target_path = "/home/users/eqpres/eq_data/";
       $this->script_path = "/usr/share/phpgroupware/eq/";
       
@@ -2378,9 +2378,19 @@ class eq
       
       $this->t->set_var('schedule_vis_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.vis_sched'));
       $this->t->set_var('schedule_vis_link_title','Schedule Yearly Visits');
+
+      $this->t->set_var('linkurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.vis_view'));
+      $num_years = get_var('num_years',array('GET','POST'));
+      if($num_years == '') { $num_years = $this->default_vis_num_years; }
+      $this->t->set_var('num_years',$num_years);
+      if($num_years == 1) { $this->t->set_var('lang_num_years','Year of History'); }
+      else {  $this->t->set_var('lang_num_years','Years of History'); }
+      $this->t->set_var('lang_filter','Filter');
       
+      $year = date('Y') - $num_years + 1;
+      $year_start = $year - 1 . "-12-31"; $year_end = $year + 1 . "-01-01";
       
-      $sql = "SELECT * FROM eq_visit WHERE companionship=0 ORDER BY date DESC";
+      $sql = "SELECT * FROM eq_visit WHERE companionship=0 and date > '$year_start' ORDER BY date DESC";
       $this->db->query($sql,__LINE__,__FILE__);
       $total_records = $this->db->num_rows();
 
@@ -2785,6 +2795,7 @@ class eq
        {
          $elder_name[$i] = $this->db->f('name');
          $elder_id[$i] = $this->db->f('elder');
+         $elder_attending[$elder_id[$i]] = $this->db->f('attending');
          $i++;
        }
       array_multisort($elder_name, $elder_id);
@@ -2862,6 +2873,8 @@ class eq
          $value = $elder_id[$i] . "-" . $sunday_list[$j]['date'];
          if($this->db->next_record()) {
            $att_table .= '<td align=center><input type="checkbox" name="elders_attended[]" value="'.$value.'" checked></td>';
+         } else if($elder_attending[$elder_id[$i]] == 1) {
+           $att_table .= '<td align=center><input type="checkbox" name="elders_attended[]" value="'.$value.'" checked></td>';
          } else {
            $att_table .= '<td align=center><input type="checkbox" name="elders_attended[]" value="'.$value.'"></td>';
          }
index b2e18f29a092f8987d5492a5f8d42d591d045063..09200311d2daaf8cdedbdcaff64c993c821177ce 100644 (file)
@@ -7,6 +7,20 @@
        <a href="{schedule_vis_link}">{schedule_vis_link_title}</a>
        <br><br>
 
+       <form action="{filterurl}" method="POST">
+       <table width="70%" border="0" cellspacing="2" cellpadding="2" align=center>
+       <tr>
+               <td align=center>
+               Showing <input type=text size="2" name="num_years" value="{num_years}">
+               {lang_num_years}
+               </td>
+               <td align=center>       
+               <font face="{font}"><input type="submit" name="filter" value="{lang_filter}"></font>
+               </td>
+       </tr>
+       </table>
+       </form>
+
        <h3>Presidency Visits</h3>
         <table border="0" cellspacing="2" cellpadding="2">
                 <tr>