X-Git-Url: http://git.pippins.net/embedvideo/.git/?a=blobdiff_plain;f=inc%2Fclass.tc.inc.php;h=fef4dd99b1d1f81a2e669bfb96b01d8815efd97a;hb=5ae6b075235ebca24477826e45076cf5542d18b9;hp=35357da8cddd39774b2103b78bdc1af406a6df32;hpb=313ff5eba49eb7284ad6d8d6e0439c776af9d670;p=eq%2F.git diff --git a/inc/class.tc.inc.php b/inc/class.tc.inc.php index 35357da..fef4dd9 100644 --- a/inc/class.tc.inc.php +++ b/inc/class.tc.inc.php @@ -79,6 +79,9 @@ class tc include("setup/tc_config"); } + $this->jquery_url = $GLOBALS['phpgw']->link('inc/jquery/jquery.js'); + $this->jquery_tablesorter_url = $GLOBALS['phpgw']->link('inc/jquery/jquery.tablesorter.js'); + $this->script_path = "$this->application_path"."/bin"; $this->max_presidency_members = 99; $this->max_appointments = 32768; @@ -417,7 +420,7 @@ class tc $this->t->set_block('ht_sandbox_t','companionship_table_list','ct_list'); $this->t->set_var('submit_action',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ht_sandbox&action=add')); - $this->t->set_var('jquery_url',$GLOBALS['phpgw']->link('inc/jquery/jquery.js')); + $this->t->set_var('jquery_url',$this->jquery_url); $action = get_var('action',array('GET','POST')); @@ -568,6 +571,8 @@ class tc $this->db3->query($sql,__LINE__,__FILE__); } } + } else if ($_POST['changes']) { + $this->ht_sandbox_changes(); } // get list of companionships @@ -747,7 +752,162 @@ class tc $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() { @@ -3782,8 +3942,8 @@ class tc { $this->t->set_file(array('org_view_t' => 'org_view.tpl')); $this->t->set_block('org_view_t','calling_list','list'); - $this->t->set_var('jquery_url',$GLOBALS['phpgw']->link('inc/jquery/jquery.js')); - $this->t->set_var('jquery_tablesorter_url',$GLOBALS['phpgw']->link('inc/jquery/jquery.tablesorter.js')); + $this->t->set_var('jquery_url',$this->jquery_url); + $this->t->set_var('jquery_tablesorter_url',$this->jquery_tablesorter_url); $sql = "SELECT * FROM tc_calling AS tc JOIN tc_individual AS ti where tc.individual=ti.individual ORDER BY name ASC"; $this->db->query($sql,__LINE__,__FILE__); @@ -3922,6 +4082,35 @@ class tc // 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'" . @@ -3945,7 +4134,7 @@ class tc " WHERE appointment=" . $appointment,__LINE__,__FILE__); // Email the appointment - $this->email_appt($appointment); + $this->email_appt($appointment, $old_indiv_email); } } @@ -4546,7 +4735,7 @@ class tc $this->save_sessiondata(); } - function email_appt($appointment) + function email_appt($appointment, $old_indiv_email) { //print "Emailing notification of appointment: $appointment
"; @@ -4566,7 +4755,7 @@ class tc $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); @@ -4600,6 +4789,10 @@ class tc 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; } @@ -4616,6 +4809,10 @@ class tc $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; @@ -4630,7 +4827,7 @@ class tc 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 . "
"; + print "Sent new appointment for " . $interviewer . " to '" . $email . "' for " . $appt_name . "
"; $uid = rand() . rand(); // Generate a random identifier for this appointment $subject = "Created: $appt_name"; @@ -4644,7 +4841,10 @@ class tc } 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 . "
"; + 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 . "
"; $subject = "Canceled: $appt_date $appt_time"; $this->db->query("UPDATE tc_appointment set" . @@ -4656,7 +4856,7 @@ class tc $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 . "
"; + print "Sent updated appointment for " . $interviewer . " to '" . $email . "' for " . $appt_name . "
"; $subject = "Canceled: $appt_date $appt_time"; $action = "CANCEL";