added tc_scheduling_priority table, removed pri and notes fields from tc_individual...
[eq/.git] / bin / import_ward_data
index f2fa90ba2464b6248755ce5f9c84ef24ea371f79..b88cba81ccb6da2fe588d72f48d61086b2bbdbdd 100755 (executable)
@@ -105,22 +105,19 @@ sub print_hash
 ######################################################################
 
 # 3RD_INDIV
-#+-------------+------------------+------+-----+---------+----------------+
-#| Field       | Type             | Null | Key | Default | Extra          |
-#+-------------+------------------+------+-----+---------+----------------+
-#| individual  | int(16) unsigned |      | PRI | NULL    | auto_increment |
-#| mls_indiv_id| int(16) unsigned |      |     | NULL    |                |
-#| name        | varchar(60)      | YES  |     | NULL    |                |
-#| phone       | varchar(12)      | YES  |     | NULL    |                |
-#| email       | varchar(120)     | YES  |     | NULL    |                |
-#| priesthood  | enum             | YES  |     | NULL    |                |
-#| ppi_pri     | int(10) unsigned | YES  |     | 1       |                |
-#| ppi_notes   | varchar(128)     | YES  |     | NULL    |                |
-#| hti_pri     | int(10) unsigned | YES  |     | 1       |                |
-#| hti_notes   | varchar(128)     | YES  |     | NULL    |                |
-#| attending   | tinyint(1)       | YES  |     | 0       |                |
-#| valid       | tinyint(1)       | YES  |     | NULL    |                |
-#+-------------+------------------+------+-----+---------+----------------+
+#+----------------------+------------------+------+-----+---------+----------------+
+#| Field                | Type             | Null | Key | Default | Extra          |
+#+----------------------+------------------+------+-----+---------+----------------+
+#| individual           | int(16) unsigned |      | PRI | NULL    | auto_increment |
+#| mls_id               | int(16) unsigned |      |     | NULL    |                |
+#| name                 | varchar(60)      | YES  |     | NULL    |                |
+#| phone                | varchar(12)      | YES  |     | NULL    |                |
+#| email                | varchar(120)     | YES  |     | NULL    |                |
+#| priesthood           | enum             | YES  |     | NULL    |                |
+#| scheduling_priority  | int(10) unsigned | YES  |     | 30      |                |
+#| attending            | tinyint(1)       | YES  |     | 0       |                |
+#| valid                | tinyint(1)       | YES  |     | NULL    |                |
+#+----------------------+------------------+------+-----+---------+----------------+
 sub update_tc_individual_table
 {
        print "\n-> Updating tc_individual table\n";
@@ -160,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','','$default_interview_pri','','$default_interview_pri','',$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
@@ -181,7 +178,7 @@ sub update_tc_individual_table
                        $sth->execute or die "-E- DB error: $DBI::errstr\n";
                        $sth = $dbh->prepare("update tc_individual set attending='$attending' where name=\"$individual_name\"");
                        $sth->execute or die "-E- DB error: $DBI::errstr\n";
-                       $sth = $dbh->prepare("update tc_individual set mls_indiv_id='$id' where name=\"$individual_name\"");
+                       $sth = $dbh->prepare("update tc_individual set mls_id='$id' where name=\"$individual_name\"");
                        $sth->execute or die "-E- DB error: $DBI::errstr\n";
                        $sth = $dbh->prepare("update tc_individual set priesthood='$priesthood' where name=\"$individual_name\"");
                        $sth->execute or die "-E- DB error: $DBI::errstr\n";
@@ -271,14 +268,15 @@ sub update_tc_district_table
 }
 
 # 3RD_COMPANIONSHIP
-#+---------------+------------------+------+-----+---------+-------+
-#| Field         | Type             | Null | Key | Default | Extra |
-#+---------------+------------------+------+-----+---------+-------+
-#| companionship | int(16) unsigned |      |     | 0       |       |
-#| individual    | int(16) unsigned | YES  |     | NULL    |       |
-#| district      | int(16) unsigned | YES  |     | NULL    |       |
-#| valid         | tinyint(1)       | YES  |     | NULL    |       |
-#+---------------+------------------+------+-----+---------+-------+
+#+----------------------+------------------+------+-----+---------+-------+
+#| Field                | Type             | Null | Key | Default | Extra |
+#+----------------------+------------------+------+-----+---------+-------+
+#| companionship        | int(16) unsigned |      |     | 0       |       |
+#| individual           | int(16) unsigned | YES  |     | NULL    |       |
+#| district             | int(16) unsigned | YES  |     | NULL    |       |
+#| scheduling_priority  | int(10) unsigned | YES  |     | 30      |       |
+#| valid                | tinyint(1)       | YES  |     | NULL    |       |
+#+----------------------+------------------+------+-----+---------+-------+
 sub update_tc_companionship_table
 {
        print "\n-> Updating tc_companionship table\n";
@@ -309,7 +307,7 @@ sub update_tc_companionship_table
                                        if($rows == 0) {
                                                # No existing records found for this companionship, make a new entry
                                                print "   Adding Companion to companionship: $individual_name -> $id\n";
-                                               $sth = $dbh->prepare("insert into tc_companionship values ($id,'$individual','$district',1)");
+                                               $sth = $dbh->prepare("insert into tc_companionship values ($id,'$individual','$district',NULL,1)");
                                                $sth->execute or die "-E- DB error: $DBI::errstr\n";
                                        } else {
                                                # An existing companionship was found for this companionship, update it
@@ -332,19 +330,18 @@ sub update_tc_companionship_table
 }
 
 # 3RD_FAMILY
-#+---------------+------------------+------+-----+---------+-------+
-#| Field         | Type             | Null | Key | Default | Extra |
-#+---------------+------------------+------+-----+---------+-------+
-#| family        | int(16) unsigned |      | PRI | 0       |   A   |
-#| hofh_id       | int(16) unsigned | YES  |     | NULL    |       |
-#| name          | varchar(30)      | YES  |     | NULL    |       |
-#| name_id       | varchar(30)      | YES  |     | NULL    |       |
-#| individual    | 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    |       |
-#+---------------+------------------+------+-----+---------+-------+
+#+----------------------+------------------+------+-----+---------+-------+
+#| Field                | Type             | Null | Key | Default | Extra |
+#+----------------------+------------------+------+-----+---------+-------+
+#| family               | int(16) unsigned |      | PRI | 0       |   A   |
+#| hofh_id              | int(16) unsigned | YES  |     | NULL    |       |
+#| name                 | varchar(30)      | YES  |     | NULL    |       |
+#| name_id              | varchar(30)      | YES  |     | NULL    |       |
+#| individual           | int(16) unsigned | YES  |     | NULL    |       |
+#| companionship        | int(16) unsigned | YES  |     | NULL    |       |
+#| scheduling_priority  | int(10) unsigned | YES  |     | 30      |       |
+#| valid                | tinyint(1)       | YES  |     | NULL    |       |
+#+----------------------+------------------+------+-----+---------+-------+
 sub update_tc_family_table
 {
        print "\n-> Updating tc_family table\n";
@@ -375,7 +372,7 @@ sub update_tc_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 tc_family values (NULL,$id,'$family_name','$name_id','0','0','$default_visit_pri','',1)");
+                                       $sth = $dbh->prepare("insert into tc_family values (NULL,$id,'$family_name','$name_id','0','0',NULL,1)");
                                        $sth->execute or die "-E- DB error: $DBI::errstr\n";
                                } elsif($rows == 1) {
                                        # An existing record was found for this family, update it
@@ -546,7 +543,7 @@ sub check_for_changed_ids
 
        foreach $oldindex (keys %$oldhashref)
        {
-               $mls_indiv_id = $oldhashref->{$oldindex}{'Indiv ID'};
+               $mls_id = $oldhashref->{$oldindex}{'Indiv ID'};
                $hofh_id  = $oldhashref->{$oldindex}{'HofH ID'};
                $full_name = $oldhashref->{$oldindex}{'Full Name'};
                $hh_position = $oldhashref->{$oldindex}{'HH Position'};
@@ -555,9 +552,9 @@ sub check_for_changed_ids
                foreach $newindex (keys %$newhashref)
                {
                        if($newhashref->{$newindex}{'Full Name'} eq $full_name &&
-                          $mls_indiv_id != $newhashref->{$newindex}{'Indiv ID'})
+                          $mls_id != $newhashref->{$newindex}{'Indiv ID'})
                        {
-                               print "-W- Indiv ID for $full_name changed from $mls_indiv_id to $newhashref->{$newindex}{'Indiv ID'}\n";
+                               print "-W- Indiv ID for $full_name changed from $mls_id to $newhashref->{$newindex}{'Indiv ID'}\n";
                                $found_problem = 1;
                        }
 
@@ -628,6 +625,65 @@ sub update_organization_class_data
        }
 }
 
+sub update_tc_scheduling_priority_table
+{
+       print "\n-> Updating scheduling priority table\n";
+       
+       # individuals
+       # TODO: make steward flexible with a setting in the config file
+       $sth = $dbh->prepare("select * from tc_individual where steward='Elder' and valid=1");
+       $sth->execute or die "-E- DB error: $DBI::errstr\n";
+       while($sqlhashref = $sth->fetchrow_hashref) {
+               $individual = $sqlhashref->{individual};
+               $scheduling_priority = $sqlhashref->{scheduling_priority};
+               if ($scheduling_priority == 'NULL')
+               {
+                       $sth2 = $dbh->prepare("insert into tc_scheduling_priority values (NULL, 30, '')");
+                       $sth2->execute or die "-E- DB error: $DBI::errstr\n";
+                       $scheduling_priority = $dbh->last_insert_id(NULL,NULL,'tc_scheduling_priority',NULL);
+                       $sth2 = $dbh->prepare("update tc_individual set scheduling_priority=$scheduling_priority where individual=$individual");
+                       $sth2->execute or die "-E- DB error: $DBI::errstr\n";
+               }
+       }
+       
+       # families
+       # TODO: make steward flexible with a setting in the config file
+       $sth = $dbh->prepare("select tf.scheduling_priority, tf.family from tc_family AS tf JOIN tc_individual AS ti ON tf.individual=ti.individual and ti.steward='Elder' and tf.valid=1");
+       $sth->execute or die "-E- DB error: $DBI::errstr\n";
+       while($sqlhashref = $sth->fetchrow_hashref) {
+               $family = $sqlhashref->{family};
+               $scheduling_priority = $sqlhashref->{scheduling_priority};
+               #print "$family   $scheduling_priority\n";
+               if ($scheduling_priority == 'NULL')
+               {
+                       $sth2 = $dbh->prepare("insert into tc_scheduling_priority values (NULL, 30, '')");
+                       $sth2->execute or die "-E- DB error: $DBI::errstr\n";
+                       $scheduling_priority = $dbh->last_insert_id(NULL,NULL,'tc_scheduling_priority',NULL);
+                       $sth2 = $dbh->prepare("update tc_family set scheduling_priority=$scheduling_priority where family=$family");
+                       $sth2->execute or die "-E- DB error: $DBI::errstr\n";
+               }
+       }
+       
+       # companionships
+       # TODO: make steward flexible with a setting in the config file
+       $sth = $dbh->prepare("select tc.individual, tc.scheduling_priority from tc_companionship AS tc JOIN tc_individual AS ti ON tc.individual=ti.individual and (ti.steward='Elder' or ti.steward='') and tc.valid=1");
+       $sth->execute or die "-E- DB error: $DBI::errstr\n";
+       while($sqlhashref = $sth->fetchrow_hashref) {
+               $individual = $sqlhashref->{individual};
+               $scheduling_priority = $sqlhashref->{scheduling_priority};
+               #print "$individual   $scheduling_priority\n";
+               if ($scheduling_priority == 'NULL')
+               {
+                       $sth2 = $dbh->prepare("insert into tc_scheduling_priority values (NULL, 30, '')");
+                       $sth2->execute or die "-E- DB error: $DBI::errstr\n";
+                       $scheduling_priority = $dbh->last_insert_id(NULL,NULL,'tc_scheduling_priority',NULL);
+                       $sth2 = $dbh->prepare("update tc_companionship set scheduling_priority=$scheduling_priority where individual=$individual");
+                       $sth2->execute or die "-E- DB error: $DBI::errstr\n";
+               }
+       }
+       
+}
+
 ######################################################################
 # MAIN
 ######################################################################
@@ -699,6 +755,7 @@ if($opt_s) { $dbh->disconnect(); exit; }
 &update_tc_visit_table();
 &update_family_in_tc_individual_table();
 &update_organization_class_data();
+&update_tc_scheduling_priority_table();
 
 print "\n-> Import Successful! DONE...\n";