$this->db3->query($sql,__LINE__,__FILE__);
}
}
+ } else if ($_POST['changes']) {
+ $this->ht_sandbox_changes();
}
// get list of companionships
$this->t->pfp('out','ht_sandbox_t');
$this->save_sessiondata();
}
-
+
+ function ht_sandbox_changes()
+ {
+ $email_contents = "Please review the following changes to home teaching.\r\n\r\n";
+ // list all companionships deleted
+ $email_contents .= "Removed Companionships\r\n\r\n";
+ $sql = "SELECT * FROM tc_companionship WHERE companionship NOT IN (SELECT tc_companionship FROM tc_companionship_sandbox) AND valid=1";
+ $this->db->query($sql,__LINE__,__FILE__);
+ while ($this->db->next_record()) {
+ $companionship = $this->db->f('companionship');
+ $sql = "SELECT * FROM tc_companion AS tc JOIN tc_individual AS ti WHERE tc.individual=ti.individual AND tc.companionship=$companionship";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ $companion_names = "";
+ while ($this->db2->next_record()) {
+ if ($companion_names == "") {
+ $companion_names .= $this->db2->f('name');
+ } else {
+ $companion_names .= " / " . $this->db2->f('name');
+ }
+ }
+ $email_contents .= "\t$companion_names\r\n";
+ }
+ $email_contents .= "\r\n";
+
+ // list all companionships added
+ $email_contents .= "New Companionships\r\n\r\n";
+ $sql = "SELECT * FROM tc_companionship_sandbox WHERE tc_companionship=0";
+ $this->db->query($sql,__LINE__,__FILE__);
+ while ($this->db->next_record()) {
+ $companionship = $this->db->f('companionship');
+ $sql = "SELECT * FROM tc_companion_sandbox AS tcs JOIN tc_individual AS ti WHERE tcs.individual=ti.individual AND tcs.companionship=$companionship";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ $companion_names = "";
+ while ($this->db2->next_record()) {
+ if ($companion_names == "") {
+ $companion_names .= $this->db2->f('name');
+ } else {
+ $companion_names .= " / " . $this->db2->f('name');
+ }
+ }
+ $email_contents .= "\t$companion_names\r\n";
+ $sql = "SELECT * FROM tc_family_sandbox AS tfs JOIN tc_individual AS ti WHERE tfs.individual=ti.individual AND companionship=$companionship";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ while ($this->db2->next_record()) {
+ $family_name = $this->db2->f('name') . " Family";
+ $email_contents .= "\t\t$family_name\r\n";
+ }
+ }
+ $email_contents .= "\r\n";
+
+ // list all companionships with changes
+ $email_contents .= "Modified Companionships\r\n\r\n";
+ $sql = "SELECT tcps.* FROM tc_companionship AS tc JOIN tc_companionship_sandbox AS tcps WHERE tc.companionship=tcps.tc_companionship AND tc.valid=1";
+ $this->db->query($sql,__LINE__,__FILE__);
+ while ($this->db->next_record()) {
+ $companionship = $this->db->f('companionship');
+ $tc_companionship = $this->db->f('tc_companionship');
+ $companionship_changed = 0;
+
+ // get current companion list
+ $sql = "SELECT * FROM tc_companion_sandbox AS tc JOIN tc_individual AS ti WHERE tc.companionship=$companionship AND tc.individual=ti.individual";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ $companion_names = "";
+ while ($this->db2->next_record()) {
+ if ($companion_names == "") {
+ $companion_names .= $this->db2->f('name');
+ } else {
+ $companion_names .= " / " . $this->db2->f('name');
+ }
+ }
+
+ // list removed companions
+ $sql = "SELECT * FROM tc_companion AS tc JOIN tc_individual AS ti WHERE tc.companionship=$tc_companionship AND tc.individual=ti.individual AND tc.individual NOT IN (SELECT individual FROM tc_companion_sandbox WHERE companionship=$companionship)";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ while ($this->db2->next_record()) {
+ if ($companionship_changed == 0) {
+ $companionship_changed = 1;
+ $email_contents .= "\t$companion_names\r\n";
+ }
+ $name = $this->db2->f('name');
+ $email_contents .= "\t\tremoved $name as a companion\r\n";
+ }
+
+ // list added companions
+ $sql = "SELECT * FROM tc_companion_sandbox AS tcs JOIN tc_individual AS ti WHERE tcs.companionship=$companionship AND tcs.individual=ti.individual AND tcs.individual NOT IN (SELECT individual FROM tc_companion WHERE companionship=$tc_companionship)";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ while ($this->db2->next_record()) {
+ if ($companionship_changed == 0) {
+ $companionship_changed = 1;
+ $email_contents .= "\t$companion_names\r\n";
+ }
+ $name = $this->db2->f('name');
+ $email_contents .= "\t\tadded $name as a companion\r\n";
+ }
+
+ // list removed families
+ $sql = "SELECT * FROM tc_family AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual AND tf.companionship=$tc_companionship AND tf.family NOT IN (SELECT tc_family FROM tc_family_sandbox WHERE companionship=$companionship)";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ while ($this->db2->next_record()) {
+ if ($companionship_changed == 0) {
+ $companionship_changed = 1;
+ $email_contents .= "\t$companion_names\r\n";
+ }
+ $name = $this->db2->f('name');
+ $email_contents .= "\t\tremoved $name Family\r\n";
+ }
+
+ // list added families
+ $sql = "SELECT * FROM tc_family_sandbox AS tfs JOIN tc_individual AS ti WHERE tfs.individual=ti.individual AND tfs.companionship=$companionship AND tfs.individual NOT IN (SELECT individual FROM tc_family WHERE companionship=$tc_companionship)";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ while ($this->db2->next_record()) {
+ if ($companionship_changed == 0) {
+ $companionship_changed = 1;
+ $email_contents .= "\t$companion_names\r\n";
+ }
+ $name = $this->db2->f('name');
+ $email_contents .= "\t\tadded $name Family\r\n";
+ }
+ }
+ $email_contents .= "\r\n";
+
+ // email changes to presidency
+ $sql = "SELECT DISTINCT tp.email AS email1, ti.email AS email2 FROM tc_presidency AS tp JOIN tc_individual AS ti WHERE tp.individual=ti.individual AND (tp.president=1 OR tp.counselor=1 OR tp.secretary=1) AND tp.valid=1";
+ $this->db->query($sql,__LINE__,__FILE__);
+ while ($this->db->next_record()) {
+ $email = "";
+ if ($this->db->f('email1') != "") {
+ $email = $this->db->f('email1');
+ } else {
+ $email = $this->db->f('email2');
+ }
+ if ($to == "") {
+ $to .= $email;
+ } else {
+ $to .= ", $email";
+ }
+ }
+ $sql = "SELECT DISTINCT tp.email AS email1, ti.email AS email2 FROM tc_presidency AS tp JOIN tc_individual AS ti WHERE tp.individual=ti.individual AND tp.president=1 AND tp.valid=1";
+ $this->db->query($sql,__LINE__,__FILE__);
+ if ($this->db->next_record()) {
+ if ($this->db->f('email1') != "") {
+ $from = $this->db->f('email1');
+ } else {
+ $from = $this->db->f('email2');
+ }
+ } else {
+ $from = "president@3rdcounselor";
+ }
+ $subject = "HomeTeaching Changes";
+ $message .= "$email_contents";
+ $headers = "From: $from\r\n" .
+ "Reply-To: $from\r\n" .
+ "X-Mailer: PHP/" . phpversion();
+
+ mail($to, $subject, $message, $headers);
+ }
function ht_update()
{
// Update an existing appointment
if($appointment < $this->max_appointments)
{
+ // If we deleted the appointment, we still need to send a cancellation to the right people
+ // Make a note of the old email now in case we need it later
+ $old_indiv_email = "";
+ $sql = "SELECT * FROM tc_appointment where appointment='$appointment'";
+ $this->db->query($sql,__LINE__,__FILE__);
+ if($this->db->next_record()) {
+ $old_individual = $this->db->f('individual');
+ $old_family = $this->db->f('family');
+ if($old_individual > 0) {
+ $sql = "SELECT * FROM tc_individual where individual='$old_individual'";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record()) {
+ $old_indiv_email = $this->db2->f('email');
+ }
+ }
+ if($old_family > 0) {
+ $sql = "SELECT * FROM tc_family WHERE family='$old_family'";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record()) {
+ $old_individual = $this->db2->f('individual');
+ $sql = "SELECT * FROM tc_individual where individual='$old_individual'";
+ $this->db3->query($sql,__LINE__,__FILE__);
+ if($this->db3->next_record()) {
+ $old_indiv_email = $this->db3->f('email');
+ }
+ }
+ }
+ }
+
//Only perform a database update if we have made a change to this appointment
$sql = "SELECT * FROM tc_appointment where " .
"appointment='$appointment'" .
" WHERE appointment=" . $appointment,__LINE__,__FILE__);
// Email the appointment
- $this->email_appt($appointment);
+ $this->email_appt($appointment, $old_indiv_email);
}
}
$this->save_sessiondata();
}
- function email_appt($appointment)
+ function email_appt($appointment, $old_indiv_email)
{
//print "Emailing notification of appointment: $appointment <br>";
$appt_name = "";
$phone = "";
$uid = $this->db->f('uid');
-
+
// Extract the year, month, day, hours, minutes, seconds from the appointment time
$appt_date = $this->db->f('date');
$date_array = explode("-",$appt_date);
if($this->db2->next_record()) {
$indiv_name = $this->db2->f('name');
$phone = $this->db2->f('phone');
+ $indiv_email = $this->db2->f('email');
+ if(($this->email_individual_appt == 1) && ($indiv_email != "")) {
+ $email .= ", $indiv_email";
+ }
$appt_name = $indiv_name . " Interview";
$duration = $this->default_ppi_appt_duration * 60;
}
$phone = $this->db3->f('phone');
$family_name = $this->db3->f('name');
$phone = $this->db3->f('phone');
+ $indiv_email = $this->db3->f('email');
+ if(($this->email_individual_appt == 1) && ($indiv_email != "")) {
+ $email .= ", $indiv_email";
+ }
}
$appt_name = $family_name . " Family Visit";
$duration = $this->default_visit_appt_duration * 60;
if(($uid == 0) && ($appt_name != "")) {
// Create a new calendar item for this appointment, since this must be the first time we
// are sending it out.
- print "Sent new appointment to " . $interviewer . " at " . $email . " for " . $appt_name . "<br>";
+ print "Sent new appointment for " . $interviewer . " to '" . $email . "' for " . $appt_name . "<br>";
$uid = rand() . rand(); // Generate a random identifier for this appointment
$subject = "Created: $appt_name";
} else if(($uid != 0) && ($appt_name == "")) {
// Remove the calendar item for this appointment since it has already been sent
// and there is no name we have changed it to.
- print "Sent deleted appointment to " . $interviewer . " at " . $email . " for " . $appt_date . " " . $appt_time . "<br>";
+ if(($this->email_individual_appt == 1) && ($old_indiv_email != "")) {
+ $email .= ", $old_indiv_email";
+ }
+ print "Sent deleted appointment for " . $interviewer . " to '" . $email . "' for " . $appt_date . " " . $appt_time . "<br>";
$subject = "Canceled: $appt_date $appt_time";
$this->db->query("UPDATE tc_appointment set" .
$dtend, $date, $location, $subject, $subject, $uid);
} else if($uid != 0) {
// Update the existing appointment since we have changed it
- print "Sent updated appointment to " . $interviewer . " at " . $email . " for " . $appt_name . "<br>";
+ print "Sent updated appointment for " . $interviewer . " to '" . $email . "' for " . $appt_name . "<br>";
$subject = "Canceled: $appt_date $appt_time";
$action = "CANCEL";