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
}
}
-# TC_DISTRICT
-#+------------+------------------+------+-----+---------+-------+
-#| Field | Type | Null | Key | Default | Extra |
-#+------------+------------------+------+-----+---------+-------+
-#| district | int(16) unsigned | | PRI | 0 | |
-#| name | varchar(30) | YES | | NULL | |
-#| supervisor | int(16) unsigned | YES | | NULL | |
-#| valid | tinyint(1) | YES | | NULL | |
-#+------------+------------------+------+-----+---------+-------+
-sub update_tc_district_table
-{
- # Districts should be created by hand. This subroutine only
- # updates the supervisor's ID in each district.
- print "\n-> Updating tc_district table\n";
- $sth = $dbh->prepare("select * from tc_district");
- $sth->execute or die "-E- DB error: $DBI::errstr\n";
- while($sqlhashref = $sth->fetchrow_hashref) {
- $supervisor_name = $sqlhashref->{name};
- $district = $sqlhashref->{district};
- $sth2 = $dbh->prepare("select * from tc_individual where name='$supervisor_name'");
- $sth2->execute or die "-E- DB error: $DBI::errstr\n";
- $sqlhashref2 = $sth2->fetchrow_hashref;
- $supervisor_id = $sqlhashref2->{individual};
- $sth2->finish();
- $sth2 = $dbh->prepare("update tc_district set supervisor='$supervisor_id' where district='$district'");
- $sth2->execute or die "-E- DB error: $DBI::errstr\n";
- $sth2->finish();
- }
- $sth->finish();
-}
-
# TC_COMPANIONSHIP
#+----------------------+------------------+------+-----+---------+-------+
#| Field | Type | Null | Key | Default | Extra |
# 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";
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.
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); }
$sth2->execute or die "-E- DB error: $DBI::errstr\n";
}
}
+ &remove_obsolete_scheduling_priority("tc_individual");
# families
# TODO: make steward flexible with a setting in the config file
$sth2->execute or die "-E- DB error: $DBI::errstr\n";
}
}
+ &remove_obsolete_scheduling_priority("tc_family");
# companionships
# TODO: make steward flexible with a setting in the config file
$sth2->execute or die "-E- DB error: $DBI::errstr\n";
}
}
+ &remove_obsolete_scheduling_priority("tc_companionship");
+}
+
+sub remove_obsolete_scheduling_priority
+{
+ my $table_name = $_[0];
+
+ #print "\n-> Cleaning $table_name\n";
+ #$sth = $dbh->prepare("SELECT scheduling_priority FROM $table_name where scheduling_priority IS NOT NULL AND valid=0");
+ $sth = $dbh->prepare("SELECT * FROM $table_name WHERE valid=0");
+ $sth->execute or die "-E- DB error: $DBI::errstr\n";
+ while($sqlhashref = $sth->fetchrow_hashref) {
+ $scheduling_priority = $sqlhashref->{scheduling_priority};
+ $individual = $sqlhashref->{individual};
+ #$name = $sqlhashref->{name};
+ if ($scheduling_priority != "NULL") {
+ #print "$name\n";
+ # set scheduling_priority to NULL
+ #print "UPDATE $table_name SET scheduling_priority=NULL WHERE individual=$individual\n";
+ $sth2 = $dbh->prepare("UPDATE $table_name SET scheduling_priority=NULL WHERE individual=$individual");
+ $sth2->execute or die "-E- DB error: $DBI::errstr\n";
+
+ # remove entry from tc_scheduling_priority
+ #print "DELETE FROM tc_scheduling_priority WHERE scheduling_priority=$scheduling_priority\n";
+ $sth2 = $dbh->prepare("DELETE FROM tc_scheduling_priority WHERE scheduling_priority=$scheduling_priority");
+ $sth2->execute or die "-E- DB error: $DBI::errstr\n";
+ }
+ }
}
######################################################################
if($opt_s) { $dbh->disconnect(); exit; }
-# Now update the various eq DB tables
+# Now update the various DB tables
&update_tc_calling_table();
&update_tc_individual_table();
-&update_tc_district_table();
&update_tc_companionship_table();
&update_tc_family_table();
&update_tc_visit_table();