From: Owen Leonard Date: Sun, 31 Oct 2010 22:39:13 +0000 (-0600) Subject: linked district table to leader table by leader id, removed district field from leade... X-Git-Url: http://git.pippins.net/embedvideo/.git/static/images/%7Blink_ppi%7D?a=commitdiff_plain;h=61df0220f9c24a23b834d1fdf64c2a3630e52560;p=eq%2F.git linked district table to leader table by leader id, removed district field from leader table --- diff --git a/bin/upgrade_1_1_0_to_1_1_1 b/bin/upgrade_1_1_0_to_1_1_1 index 5c934cb..6745e58 100755 --- a/bin/upgrade_1_1_0_to_1_1_1 +++ b/bin/upgrade_1_1_0_to_1_1_1 @@ -40,14 +40,6 @@ $sth->execute or die "-E- DB error: $DBI::errstr\n"; $sth = $dbh->prepare("ALTER TABLE `tc_companionship` ADD `type` ENUM( 'H', 'P' ) NOT NULL DEFAULT 'H' AFTER `district`"); $sth->execute or die "-E- DB error: $DBI::errstr\n"; -# rename supervisor field in tc_district to leader -$sth = $dbh->prepare("ALTER TABLE `tc_district` CHANGE `supervisor` `leader` INT( 16 ) UNSIGNED NULL DEFAULT NULL"); -$sth->execute or die "-E- DB error: $DBI::errstr\n"; - -# rename supervisor field in tc_district_sandbox to leader -$sth = $dbh->prepare("ALTER TABLE `tc_district_sandbox` CHANGE `supervisor` `leader` INT( 16 ) UNSIGNED NULL DEFAULT NULL"); -$sth->execute or die "-E- DB error: $DBI::errstr\n"; - # rename presidency field in tc_appointment to leader $sth = $dbh->prepare("ALTER TABLE `tc_appointment` CHANGE `presidency` `leader` INT( 16 ) UNSIGNED NOT NULL DEFAULT '0'"); $sth->execute or die "-E- DB error: $DBI::errstr\n"; @@ -74,6 +66,23 @@ $sth->execute or die "-E- DB error: $DBI::errstr\n"; $sth = $dbh->prepare("ALTER TABLE `tc_leader` DROP `president`, DROP `counselor`, DROP `secretary`"); $sth->execute or die "-E- DB error: $DBI::errstr\n"; +# rename supervisor field in tc_district to leader +$sth = $dbh->prepare("ALTER TABLE `tc_district` CHANGE `supervisor` `leader` INT( 16 ) UNSIGNED NULL DEFAULT NULL"); +$sth->execute or die "-E- DB error: $DBI::errstr\n"; +$sth = $dbh->prepare("UPDATE tc_district AS td JOIN tc_leader AS tl SET td.leader=tl.leader WHERE td.leader=tl.individual AND td.district=tl.district AND tl.valid=1 AND td.valid=1"); +$sth->execute or die "-E- DB error: $DBI::errstr\n"; + +# rename supervisor field in tc_district_sandbox to leader +$sth = $dbh->prepare("ALTER TABLE `tc_district_sandbox` CHANGE `supervisor` `leader` INT( 16 ) UNSIGNED NULL DEFAULT NULL"); +$sth->execute or die "-E- DB error: $DBI::errstr\n"; +$sth = $dbh->prepare("UPDATE tc_district_sandbox AS tdc JOIN tc_leader AS tl SET tdc.leader=tl.leader WHERE tdc.leader=tl.individual AND tdc.district=tl.district AND tl.valid=1"); +$sth->execute or die "-E- DB error: $DBI::errstr\n"; + +# remove district field from tc_leader +$sth = $dbh->prepare("ALTER TABLE `tc_leader` DROP `district`"); +$sth->execute or die "-E- DB error: $DBI::errstr\n"; + + print "-> Done!\n"; diff --git a/inc/class.tc.inc.php b/inc/class.tc.inc.php index 59aa4c0..3a412eb 100644 --- a/inc/class.tc.inc.php +++ b/inc/class.tc.inc.php @@ -228,7 +228,7 @@ class tc $this->t->set_var('ht_sandbox_link',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ht_sandbox')); $this->t->set_var('ht_sandbox_link_title','Hometeaching Sandbox'); - $sql = "SELECT * FROM tc_district AS td JOIN tc_individual AS ti WHERE td.leader=ti.individual AND td.valid=1 ORDER BY td.district ASC"; + $sql = "SELECT * FROM tc_district AS td JOIN (tc_individual AS ti, tc_leader AS tl) WHERE td.leader=tl.leader AND tl.individual=ti.individual AND td.valid=1 ORDER BY td.district ASC"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { @@ -2287,7 +2287,7 @@ class tc } // Get the Districts - $sql = "SELECT * FROM tc_district AS td JOIN (tc_leader AS tl, tc_individual AS ti) WHERE td.district=tl.district AND td.leader=ti.individual AND td.valid=1 ORDER BY td.district ASC"; + $sql = "SELECT * FROM tc_district AS td JOIN (tc_leader AS tl, tc_individual AS ti) WHERE td.leader=tl.leader AND tl.individual=ti.individual AND td.valid=1 ORDER BY td.district ASC"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { @@ -2295,7 +2295,6 @@ class tc $districts[$i]['district'] = $this->db->f('district'); $districts[$i]['name'] = $this->db->f('name'); $districts[$i]['leader'] = $this->db->f('leader'); - $districts[$i]['leader'] = $this->db->f('leader'); $i++; } @@ -3091,7 +3090,7 @@ class tc else if($current_month >= 7 && $current_month <= 9) { $current_month=9; } else if($current_month >= 10 && $current_month <= 12) { $current_month=12; } - $sql = "SELECT * FROM tc_district AS td JOIN tc_individual AS ti WHERE td.leader=ti.individual AND td.valid=1 ORDER BY td.district ASC"; + $sql = "SELECT * FROM tc_district AS td JOIN (tc_individual AS ti, tc_leader AS tl) WHERE td.leader=tl.leader AND tl.individual=ti.individual AND td.valid=1 ORDER BY td.district ASC"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { @@ -3283,7 +3282,7 @@ class tc $notes = get_var('notes',array('GET','POST')); $type = get_var('type',array('GET','POST')); - $sql = "SELECT * FROM tc_leader AS tl JOIN tc_individual AS ti WHERE tl.individual=ti.individual AND tl.valid=1 AND (tl.type='P' OR tl.type='C' OR tl.type='D' OR tl.district!=0)"; + $sql = "SELECT * FROM tc_leader AS tl JOIN (tc_individual AS ti, tc_district AS td) WHERE tl.individual=ti.individual AND tl.leader=td.leader AND tl.valid=1 AND (tl.type='P' OR tl.type='C' OR tl.type='D' OR td.district!=0)"; $this->db2->query($sql,__LINE__,__FILE__); while ($this->db2->next_record()) { $indiv = $this->db2->f('individual'); @@ -4512,6 +4511,21 @@ class tc } } else if($action == "leader") { $new_data = get_var('eqpres',array('POST')); + + // Delete all the previous district entries from the table + $this->db->query("DELETE from tc_district where valid=1",__LINE__,__FILE__); + $this->db->query("DELETE from tc_district where valid=0",__LINE__,__FILE__); + + // Always add a "District 0" assigned to the High Priests Group + $district = 0; + $name = "High Priests"; + $indiv = 0; + $valid = 0; + $this->db2->query("INSERT INTO tc_district (district,leader,valid) " . + "VALUES ('" . $district . "','" . + $indiv . "','" . $valid . "'" . + ")",__LINE__,__FILE__); + foreach ($new_data as $entry) { $id = $entry['id']; $email = $entry['email']; @@ -4535,59 +4549,32 @@ class tc //print "Updating Existing Entry
"; $this->db2->query("UPDATE tc_leader set" . " individual=" . $indiv . - " ,district=" . $district . " ,email='" . $email . "'" . " ,type='" . $leader_type . "'" . " WHERE leader=" . $id,__LINE__,__FILE__); } else { //print "Adding New Entry
"; - $this->db2->query("INSERT INTO tc_leader (leader,individual,district," . + $this->db2->query("INSERT INTO tc_leader (leader,individual," . "email,type,valid) " . - "VALUES (NULL,'" . $indiv . "','" . $district . "','" . + "VALUES (NULL,'" . $indiv . "','" . $email . "','" . $leader_type . "','1'" . ")",__LINE__,__FILE__); + $id = mysql_insert_id(); + } + + // If we have a valid district, add it to the district table + if($district > 0) { + $valid = 1; + $this->db2->query("INSERT INTO tc_district (district,leader,valid) " . + "VALUES ('" . $district . "','" . + $id . "','" . $valid . "'" . + ")",__LINE__,__FILE__); } } else { //print "Ignoring Blank Entry
"; } } - // Now update the tc_district table appropriately - - // Delete all the previous district entries from the table - $this->db->query("DELETE from tc_district where valid=1",__LINE__,__FILE__); - $this->db->query("DELETE from tc_district where valid=0",__LINE__,__FILE__); - - // Always add a "District 0" assigned to the High Priests Group - $district = 0; - $name = "High Priests"; - $indiv = 0; - $valid = 0; - $this->db2->query("INSERT INTO tc_district (district,leader,valid) " . - "VALUES ('" . $district . "','" . - $indiv . "','" . $valid . "'" . - ")",__LINE__,__FILE__); - - // Requery the tc_leader table - $sql = "SELECT * FROM tc_leader AS tl JOIN tc_individual AS ti WHERE tl.individual=ti.individual AND tl.valid=1"; - $this->db->query($sql,__LINE__,__FILE__); - while ($this->db->next_record()) { - // Extract the data for each leader record - $id = $this->db->f('leader'); - $indiv = $this->db->f('individual'); - $name = $this->db->f('name'); - $district = $this->db->f('district'); - $valid = 1; - - // If we have a valid district, add it to the district table - if($district > 0) { - $this->db2->query("INSERT INTO tc_district (district,leader,valid) " . - "VALUES ('" . $district . "','" . - $indiv . "','" . $valid . "'" . - ")",__LINE__,__FILE__); - } - } - $this->t->set_var('adminhandle',''); $this->t->pfp('adminhandle','admin'); } @@ -4607,7 +4594,6 @@ class tc // Extract the data for each leader record $id = $this->db->f('leader'); $indiv = $this->db->f('individual'); - $district = $this->db->f('district'); $name = $this->db->f('name'); $email = $this->db->f('email'); $leader_type = $this->db->f('type'); @@ -4615,6 +4601,14 @@ class tc if ($leader_type == 'C') {$counselor = 1;} else {$counselor = 0;} if ($leader_type == 'S') {$secretary = 1;} else {$secretary = 0;} + $sql = "SELECT * FROM tc_district AS td JOIN tc_leader AS tl WHERE td.leader=tl.leader AND td.leader=$id AND td.district!=0 AND td.valid=1"; + $this->db2->query($sql,__LINE__,__FILE__); + if ($this->db2->next_record()) { + $district = $this->db2->f('district'); + } else { + $district = 0; + } + // Create the forms needed in the table $table_data .= ""; diff --git a/sql/schema.dot b/sql/schema.dot index 37c0463..a5a9139 100644 --- a/sql/schema.dot +++ b/sql/schema.dot @@ -51,7 +51,7 @@ digraph schema { shape = "record" ]; leader [ - label = "leader|| leader| individual| district| email| type| valid" + label = "leader|| leader| individual| email| type| valid" shape = "record" ]; visit [ @@ -115,7 +115,7 @@ digraph schema { companionship:d -> district:d - district:l -> individual:i + district:l -> leader:l individual:sp -> scheduling_priority:sp @@ -130,7 +130,6 @@ digraph schema { interview:i -> individual:i leader:i -> individual:i - leader:d -> district:d visit:c -> companionship:c visit:f -> family:f @@ -146,7 +145,7 @@ digraph schema { accomplishment:i -> individual:i accomplishment:t -> task:t - district_sandbox:l -> individual:i + district_sandbox:l -> leader:l companion_sandbox:i -> individual:i companion_sandbox:cp -> companionship_sandbox:cp companionship_sandbox:tcp -> companionship:c diff --git a/sql/tc.jpg b/sql/tc.jpg index 85a642b..d523bc3 100644 Binary files a/sql/tc.jpg and b/sql/tc.jpg differ diff --git a/sql/tc.sql b/sql/tc.sql index 2d1c631..9aaff5e 100644 --- a/sql/tc.sql +++ b/sql/tc.sql @@ -161,7 +161,6 @@ CREATE TABLE /*!42501 IF NOT EXISTS*/ `tc_interview` ( CREATE TABLE /*!42501 IF NOT EXISTS*/ `tc_leader` ( `leader` int(16) unsigned NOT NULL auto_increment, `individual` int(16) unsigned NOT NULL default '0', - `district` int(16) unsigned default '0', `email` varchar(60) NOT NULL, `type` enum( 'P', 'C', 'S', 'D' ) NOT NULL, `valid` tinyint(1) default '1',