From efcafa2e11c27800278e38169f6ed4fc23e7e6d1 Mon Sep 17 00:00:00 2001 From: Alan Jack Pippin Date: Sun, 12 Aug 2007 16:33:34 -0600 Subject: [PATCH] Added new 'attending' flag to eq_elder table. Increased intelligence of import tool to set 'attending' flag apprpriately based on the Elder's calling. --- import_ward_data | 19 +++++++++++++++++-- inc/class.eq.inc.php | 23 ++++++++++++++++++----- templates/default/vis_view.tpl | 14 ++++++++++++++ 3 files changed, 49 insertions(+), 7 deletions(-) diff --git a/import_ward_data b/import_ward_data index c13e6ed..bd707b4 100755 --- a/import_ward_data +++ b/import_ward_data @@ -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 diff --git a/inc/class.eq.inc.php b/inc/class.eq.inc.php index 38786c2..1869a52 100644 --- a/inc/class.eq.inc.php +++ b/inc/class.eq.inc.php @@ -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 .= ''; + } else if($elder_attending[$elder_id[$i]] == 1) { + $att_table .= ''; } else { $att_table .= ''; } diff --git a/templates/default/vis_view.tpl b/templates/default/vis_view.tpl index b2e18f2..0920031 100644 --- a/templates/default/vis_view.tpl +++ b/templates/default/vis_view.tpl @@ -7,6 +7,20 @@ {schedule_vis_link_title}

+
+ + + + + +
+ Showing + {lang_num_years} + + +
+
+

Presidency Visits

-- 2.34.1