From 0b1efe21447094e08a99d68704dc8947b40e989a Mon Sep 17 00:00:00 2001
From: Owen Leonard <owen@balawis.leonard.fam>
Date: Sat, 18 Sep 2010 00:28:17 -0600
Subject: [PATCH] fixed sql table creation file and import script

---
 bin/import_ward_data | 17 ++++++++++-------
 sql/tc.sql           |  6 ++----
 2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/bin/import_ward_data b/bin/import_ward_data
index 501f963..6703836 100755
--- a/bin/import_ward_data
+++ b/bin/import_ward_data
@@ -157,7 +157,7 @@ sub update_tc_individual_table
 		if($rows == 0) {
 			# No existing records found for this individual, make a new entry
 			print "   Adding new individual: $individual_name\n";
-			$sth = $dbh->prepare("insert into tc_individual values (NULL,'$id',\"$individual_name\",'$address','$phone','$email','$hhposition','$priesthood',NULL,$attending,1)");
+			$sth = $dbh->prepare("insert into tc_individual values (NULL,'$id',\"$individual_name\",'$address','$phone','$email','$hhposition','$priesthood','',NULL,$attending,1)");
 			$sth->execute or die "-E- DB error: $DBI::errstr\n";
 		} elsif($rows == 1) {
 			# An existing record was found for this individual, update it
@@ -346,9 +346,12 @@ sub update_tc_family_table
 	# find head of households in tc_individual
 	$sth = $dbh->prepare("SELECT * FROM tc_individual WHERE hh_position='Head of Household' and valid=1");
 	$sth->execute or die "-E- DB error: $DBI::errstr\n";
-	while ($sqlhashref = $sth->fetchrow_hashref) {
-		$individual = $sqlhashref{individual};
-		$name = $sqlhashref{name};
+	my @individual_data = ();
+	while ($sqlhashref = $sth->fetchrow_hashref) { push(@individual_data, $sqlhashref); }
+	my $individual_count = scalar @individual_data;
+	for($i=0;$i<$individual_count;$i++) {
+		$individual = $individual_data[$i]{'individual'};
+		$name = $individual_data[$i]{'name'};
 		
 		$sth2 = $dbh->prepare("SELECT * FROM tc_family WHERE individual='$individual'");
 		$sth2->execute or die "-E- DB error: $DBI::errstr\n";
@@ -360,12 +363,12 @@ sub update_tc_family_table
 		if($rows == 0) {
 			# No existing records found for this family, make a new entry
 			print "   Adding new Family: $name\n";
-			$sth2 = $dbh->prepare("insert into tc_family values (NULL,'$individual','0',NULL,1)");
+			$sth2 = $dbh->prepare("INSERT INTO tc_family VALUES (NULL,'$individual','0',NULL,1)");
 			$sth2->execute or die "-E- DB error: $DBI::errstr\n";
 		} elsif($rows == 1) {
 			# An existing record was found for this family, update it
 			print "   Updating existing family: $name\n";
-			$sth2 = $dbh->prepare("update tc_family set valid='1' where individual=$individual'");
+			$sth2 = $dbh->prepare("UPDATE tc_family SET valid='1' WHERE individual='$individual'");
 			$sth2->execute or die "-E- DB error: $DBI::errstr\n";
 		} else {
 			# More than one record was found. Error! This shouldn't happen.
@@ -432,7 +435,7 @@ sub update_tc_visit_table
 		print "   Updating visit data: $family_name\n";
 
 		# get family id from tc_family
-		$sth = $dbh->prepare("select * from tc_family where name=\"$family_name\" and valid=1");
+		$sth = $dbh->prepare("SELECT * FROM tc_family AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual AND ti.name=\"$family_name\" AND tf.valid=1");
 		$sth->execute or die "-E- DB error: $DBI::errstr\n";
 		my @family_data = ();
 		while($sqlhashref = $sth->fetchrow_hashref) { push(@family_data, $sqlhashref); }
diff --git a/sql/tc.sql b/sql/tc.sql
index 687cf71..2fedef1 100644
--- a/sql/tc.sql
+++ b/sql/tc.sql
@@ -74,6 +74,7 @@ CREATE TABLE `tc_calling` (
   `organization` varchar(30) default NULL,
   `position` varchar(30) default NULL,
   `sustained` varchar(30) default NULL,
+  KEY `name` (`name`)
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
 --
@@ -124,9 +125,6 @@ CREATE TABLE `tc_individual` (
 --
 CREATE TABLE `tc_family` (
   `family` int(16) unsigned NOT NULL auto_increment,
-  `hofh_id` int(16) unsigned NOT NULL default '0',
-  `name` varchar(30) NOT NULL default '',
-  `name_id` varchar(30) NOT NULL default '',
   `individual` int(16) unsigned default '0',
   `companionship` int(16) unsigned default NULL,
   `scheduling_priority` int(16) unsigned default NULL,
@@ -153,7 +151,7 @@ CREATE TABLE `tc_interview` (
   `date` date default NULL,
   `notes` text,
   `interview_type` enum('hti','ppi') NOT NULL DEFAULT 'hti',
-  PRIMARY KEY  (`ppi`)
+  PRIMARY KEY  (`interview`)
 ) ENGINE=MyISAM AUTO_INCREMENT=248 DEFAULT CHARSET=latin1;
 
 
-- 
2.34.1