Fixed HT apps to sort families under a companionship in alphabetical order.
[eq/.git] / import_ward_data
index 6a1e121ed9acd45c1f1d77dcb4cc1c24eb12ad1d..8a7983b4d986b19380cd7437db3a402fae96d057 100755 (executable)
@@ -77,11 +77,17 @@ sub print_hash
 #+-------+--------------------+------+-----+---------+-------+
 #| aaronic | int(16) unsigned |      | PRI | 0       |   A   |
 #| name    | varchar(60)      | YES  |     | NULL    |       |
+#| phone   | varchar(12)      | YES  |     | NULL    |       |
 #| valid   | tinyint(1)       | YES  |     | NULL    |       |
 #+-------+--------------------+------+-----+---------+-------+
 sub update_eq_aaronic_table
 {
     print "-> Updating eq_aaronic table\n";
+
+    # Set all records to be invalid. Only mark them as valid if they appear on the new list.
+    $sth = $dbh->prepare("update eq_aaronic set valid=0");
+    $sth->execute or die "-E- DB error: $DBI::errstr\n";
+    
     foreach $index (keys %membership_data)
     {
        $hashref = $membership_data{$index};
@@ -90,6 +96,9 @@ sub update_eq_aaronic_table
               ($membership_data{$index}{$key} =~ /^Teacher\s*$/i ||
                $membership_data{$index}{$key} =~ /^Priest\s*$/i)) {
                $aaronic_name = $membership_data{$index}{'Preferred Name'};
+               $phone = $membership_data{$index}{'Phone 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_aaronic where name='$aaronic_name'");
                $sth->execute or die "-E- DB error: $DBI::errstr\n";
                my @data = ();
@@ -98,13 +107,15 @@ sub update_eq_aaronic_table
                if($rows == 0) {
                    # No existing records found for this aaronic, make a new entry
                    print "   Adding new Aaronic: $aaronic_name\n";
-                   $sth = $dbh->prepare("insert into eq_aaronic values (NULL,'$aaronic_name',1)");
+                   $sth = $dbh->prepare("insert into eq_aaronic values (NULL,'$aaronic_name','$phone',1)");
                    $sth->execute or die "-E- DB error: $DBI::errstr\n";
                } elsif($rows == 1) {
-                   # An existing record was found for this aaronic, update it if it is valid
-                   if($data[0]->{valid} == 1) {
-                       print "   Updating existing aaronic: $aaronic_name\n";
-                   }
+                   # An existing record was found for this aaronic, update it, mark it valid!
+                   print "   Updating existing aaronic: $aaronic_name\n";
+                   $sth = $dbh->prepare("update eq_aaronic set phone='$phone' where name='$aaronic_name'");
+                   $sth->execute or die "-E- DB error: $DBI::errstr\n";
+                   $sth = $dbh->prepare("update eq_aaronic set valid=1 where name='$aaronic_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 aaronic name: $aaronic_name\n";
@@ -254,7 +265,7 @@ sub update_eq_companionship_table
                    my $rows = scalar @data;
                    if($rows == 0) {
                        # No existing records found for this companionship, make a new entry
-                       print "   Adding Elder to companionship: $elder_name -> $id\n";
+                       print "   Adding Companion to companionship: $elder_name -> $id\n";
                        $sth = $dbh->prepare("insert into eq_companionship values ($id,'$elder','$aaronic','$district',1)");
                        $sth->execute or die "-E- DB error: $DBI::errstr\n";
                    } else {
@@ -306,6 +317,8 @@ sub update_eq_family_table
     # Set all records to be invalid. Only mark them as valid if they appear on the new list.
     $sth = $dbh->prepare("update eq_family set valid=0");
     $sth->execute or die "-E- DB error: $DBI::errstr\n";
+    $sth = $dbh->prepare("update eq_family set companionship=0");
+    $sth->execute or die "-E- DB error: $DBI::errstr\n";
     
     foreach $index (keys %membership_data)
     {
@@ -399,6 +412,13 @@ sub update_eq_parent_table
                $birthday = $membership_data{$index}{'Birth'};
                $birthday =~ /(\d+) (\S+) (\d+)/; $day=$1; $month=$monthname2num{$2}; $year=$3;
                $hofh_id = $membership_data{$index}{'HofH ID'};
+               $phone = $membership_data{$index}{'Phone 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"; }
+               $address = $membership_data{$index}{'Street 1'};
+               if($membership_data{$index}{'Street 2'} ne "") { 
+                   $address .= " " . $membership_data{$index}{'Street 2'};
+               }
 
                # Find the family id for this parent's HofH_ID.
                $sth = $dbh->prepare("select * from eq_family where hofh_id='$hofh_id'");
@@ -416,7 +436,7 @@ sub update_eq_parent_table
                if($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',1)");
+                   $sth = $dbh->prepare("insert into eq_parent values (NULL,$family_id,'$parent_name','$year-$month-$day','$phone','$address',1)");
                    $sth->execute or die "-E- DB error: $DBI::errstr\n";
                } elsif($rows == 1) {
                    # An existing record was found for this parent, update it
@@ -425,6 +445,10 @@ sub update_eq_parent_table
                    $sth->execute or die "-E- DB error: $DBI::errstr\n";
                    $sth = $dbh->prepare("update eq_parent set birthday='$year-$month-$day' where name='$parent_name'");
                    $sth->execute or die "-E- DB error: $DBI::errstr\n";
+                   $sth = $dbh->prepare("update eq_parent set phone='$phone' where name='$parent_name'");
+                   $sth->execute or die "-E- DB error: $DBI::errstr\n";
+                   $sth = $dbh->prepare("update eq_parent set address='$address' where name='$parent_name'");
+                   $sth->execute or die "-E- DB error: $DBI::errstr\n";
                    $sth = $dbh->prepare("update eq_parent set valid=1 where name='$parent_name'");
                    $sth->execute or die "-E- DB error: $DBI::errstr\n";
            } else {