Changed current code to implement: Quarterly Hometeaching Interviews & Yearly PPIs
[eq/.git] / import_ward_data
index c04da9f10beb2f9a7a45d9eae9f902f3bfe693e5..5d9b7546b37f2f6d6988ddc775aff87230da0306 100755 (executable)
@@ -128,14 +128,16 @@ sub update_eq_aaronic_table
 }
 
 # EQ_ELDER
-#+------------+------------------+------+-----+---------+-------+
-#| Field      | Type             | Null | Key | Default | Extra |
-#+------------+------------------+------+-----+---------+-------+
-#| elder      | int(16) unsigned |      | PRI | 0       |   A   |
-#| name       | varchar(60)      | YES  |     | NULL    |       |
-#| phone      | varchar(12)      | YES  |     | NULL    |       |
-#| valid      | tinyint(1)       | YES  |     | NULL    |       |
-#+------------+------------------+------+-----+---------+-------+
+#+-------------+------------------+------+-----+---------+----------------+
+#| Field       | Type             | Null | Key | Default | Extra          |
+#+-------------+------------------+------+-----+---------+----------------+
+#| elder       | int(16) unsigned |      | PRI | NULL    | auto_increment |
+#| name        | varchar(60)      | YES  |     | NULL    |                |
+#| phone       | varchar(12)      | YES  |     | NULL    |                |
+#| ppi_pri     | int(10) unsigned | YES  |     | 1       |                |
+#| ppi_notes   | varchar(128)     | YES  |     | NULL    |                |
+#| valid       | tinyint(1)       | YES  |     | NULL    |                |
+#+-------------+------------------+------+-----+---------+----------------+
 sub update_eq_elder_table
 {
     print "\n-> Updating eq_elder table\n";
@@ -161,7 +163,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)");
+                   $sth = $dbh->prepare("insert into eq_elder values (NULL,'$elder_name','$phone','1','',1)");
                    $sth->execute or die "-E- DB error: $DBI::errstr\n";
                } elsif($rows == 1) {
                    # An existing record was found for this elder, update it
@@ -349,7 +351,10 @@ sub update_eq_companionship_table
 #| hofh_id       | int(16) unsigned | YES  |     | NULL    |       |
 #| name          | varchar(30)      | YES  |     | NULL    |       |
 #| name_id       | varchar(30)      | YES  |     | NULL    |       |
+#| elder_id      | int(16) unsigned | YES  |     | NULL    |       |
 #| companionship | int(16) unsigned | YES  |     | NULL    |       |
+#| visit_pri     | int(10) unsigned | YES  |     | 1       |       |
+#| visit_notes   | varchar(128)     | YES  |     | NULL    |       |
 #| valid         | tinyint(1)       | YES  |     | NULL    |       |
 #+---------------+------------------+------+-----+---------+-------+
 sub update_eq_family_table
@@ -382,7 +387,7 @@ sub update_eq_family_table
                if($rows == 0) {
                    # No existing records found for this family, make a new entry
                    print "   Adding new Family: $family_name\n";
-                   $sth = $dbh->prepare("insert into eq_family values (NULL,$id,'$family_name','$name_id','0',1)");
+                   $sth = $dbh->prepare("insert into eq_family values (NULL,$id,'$family_name','$name_id','0','0',1,1,'')");
                    $sth->execute or die "-E- DB error: $DBI::errstr\n";
                } elsif($rows == 1) {
                    # An existing record was found for this family, update it
@@ -395,6 +400,17 @@ sub update_eq_family_table
                    # More than one record was found. Error! This shouldn't happen.
                    print "   -E- More than one record found ($rows) for family name: $family_name\n";
                }
+
+                # Now update the elder_id field for this family
+               $sth = $dbh->prepare("select * from eq_elder WHERE name='$family_name'");
+               $sth->execute or die "-E- DB error: $DBI::errstr\n";
+               while($sqlhashref = $sth->fetchrow_hashref) {
+                   $elder_id = $sqlhashref->{elder};
+                   print "   Updating family elder_id: $family_name -> $elder_id\n";
+                   $sth = $dbh->prepare("update eq_family set elder_id=$elder_id where name_id='$name_id'");
+                   $sth->execute or die "-E- DB error: $DBI::errstr\n";
+               }
+               
                # Now update the hometeaching field for this family
                foreach $index (keys %hometeaching_data)
                {
@@ -471,11 +487,14 @@ sub update_eq_parent_table
                }
 
                # Find the family id for this parent's HofH_ID.
-               $sth = $dbh->prepare("select * from eq_family where hofh_id='$hofh_id'");
+               $sth = $dbh->prepare("select * from eq_family where hofh_id='$hofh_id' and valid=1");
                $sth->execute or die "-E- DB error: $DBI::errstr\n";
-               $sqlhashref = $sth->fetchrow_hashref();
-               $family_id = $sqlhashref->{'family'};
-
+               my @family_data = ();
+               while($sqlhashref = $sth->fetchrow_hashref) { push(@family_data, $sqlhashref); }
+               my $family_rows = scalar @family_data;
+               if($family_rows > 0) { $family_id = $family_data[0]->{'family'}; }
+               else { $family_id = 0; }
+               
                # Find out how many parents match this parent's name
                $sth = $dbh->prepare("select * from eq_parent where name='$parent_name'");
                $sth->execute or die "-E- DB error: $DBI::errstr\n";
@@ -483,12 +502,12 @@ sub update_eq_parent_table
                while($sqlhashref = $sth->fetchrow_hashref) { push(@data, $sqlhashref); }
                my $rows = scalar @data;
                
-               if($rows == 0) {
+               if($rows == 0 && $family_rows > 0) {
                    # No existing records found for this parent, make a new entry
                    print "   Adding new Parent: $parent_name\n";
                    $sth = $dbh->prepare("insert into eq_parent values (NULL,$family_id,'$parent_name','$year-$month-$day','$phone','$address','$id',1)");
                    $sth->execute or die "-E- DB error: $DBI::errstr\n";
-               } elsif($rows == 1) {
+               } elsif($rows == 1 && $family_rows > 0) {
                    # An existing record was found for this parent, update it
                    print "   Updating existing parent: $parent_name\n";
                    $sth = $dbh->prepare("update eq_parent set family='$family_id' where name='$parent_name'");
@@ -545,11 +564,14 @@ sub update_eq_child_table
                $hofh_id = $membership_data{$index}{'HofH ID'};
 
                # Find the family id for this child's HofH_ID.
-               $sth = $dbh->prepare("select * from eq_family where hofh_id='$hofh_id'");
+               $sth = $dbh->prepare("select * from eq_family where hofh_id='$hofh_id' and valid=1");
                $sth->execute or die "-E- DB error: $DBI::errstr\n";
-               $sqlhashref = $sth->fetchrow_hashref();
-               $family_id = $sqlhashref->{'family'};
-
+               my @family_data = ();
+               while($sqlhashref = $sth->fetchrow_hashref) { push(@family_data, $sqlhashref); }
+               my $family_rows = scalar @family_data;
+               if($family_rows > 0) { $family_id = $family_data[0]->{'family'}; }
+               else { $family_id = 0; }
+               
                # Find out how many children have the same name for the same family
                $sth = $dbh->prepare("select * from eq_child where name='$child_name'");
                $sth->execute or die "-E- DB error: $DBI::errstr\n";
@@ -557,12 +579,12 @@ sub update_eq_child_table
                while($sqlhashref = $sth->fetchrow_hashref) { push(@data, $sqlhashref); }
                my $rows = scalar @data;
                
-               if($rows == 0) {
+               if($rows == 0 && $family_rows > 0) {
                    # No existing records found for this child, make a new entry
                    print "   Adding new Child: $child_name\n";
                    $sth = $dbh->prepare("insert into eq_child values (NULL,$family_id,'$child_name','$year-$month-$day','$id',1)");
                    $sth->execute or die "-E- DB error: $DBI::errstr\n";
-               } elsif($rows == 1) {
+               } elsif($rows == 1 && $family_rows > 0) {
                    # An existing record was found for this child, update it
                    print "   Updating existing child: $child_name\n";
                    $sth = $dbh->prepare("update eq_child set family='$family_id' where name='$child_name'");