Changed current code to implement: Quarterly Hometeaching Interviews & Yearly PPIs
[eq/.git] / import_ward_data
index 8cf3d0d061ca6e0096b89c96449b08b7a2ada10a..5d9b7546b37f2f6d6988ddc775aff87230da0306 100755 (executable)
@@ -135,9 +135,7 @@ sub update_eq_aaronic_table
 #| name        | varchar(60)      | YES  |     | NULL    |                |
 #| phone       | varchar(12)      | YES  |     | NULL    |                |
 #| ppi_pri     | int(10) unsigned | YES  |     | 1       |                |
-#| visit_pri   | int(10) unsigned | YES  |     | 1       |                |
 #| ppi_notes   | varchar(128)     | YES  |     | NULL    |                |
-#| visit_notes | varchar(128)     | YES  |     | NULL    |                |
 #| valid       | tinyint(1)       | YES  |     | NULL    |                |
 #+-------------+------------------+------+-----+---------+----------------+
 sub update_eq_elder_table
@@ -165,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','1','','',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
@@ -353,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
@@ -386,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
@@ -399,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)
                {
@@ -475,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";
@@ -487,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'");
@@ -549,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";
@@ -561,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'");