From: Owen Leonard Date: Wed, 20 Oct 2010 18:40:30 +0000 (-0600) Subject: implemented functionality for ht sandbox X-Git-Tag: release_1_1_0~7 X-Git-Url: http://git.pippins.net/embedvideo/images/%27%20.%20%24this-%3Ephpgw_js_url%20.%20%27/jscalendar/%27.%24link.%27?a=commitdiff_plain;h=67b802629eb336cdec0eb8212a9ca2474377fe8f;p=eq%2F.git implemented functionality for ht sandbox --- diff --git a/inc/class.tc.inc.php b/inc/class.tc.inc.php index 6c80090..9684e8e 100644 --- a/inc/class.tc.inc.php +++ b/inc/class.tc.inc.php @@ -410,24 +410,172 @@ class tc $this->t->set_block('ht_sandbox_t','district_table_list','dt_list'); $this->t->set_block('ht_sandbox_t','companionship_table_list','ct_list'); - $this->t->set_var('linkurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ht_sandbox')); + $this->t->set_var('submit_action',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ht_sandbox&action=add')); + + $action = get_var('action',array('GET','POST')); - $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ht_sandbox')); $this->t->set_var('title','Hometeaching Sandbox'); + if ($_POST['add']) { + #$this->t->set_var('debug_list',$_POST['add']); + $companionship = get_var('companionship',array('POST')); + $district = get_var('district',array('POST')); + $assignedHT_list = get_var('assignedHT',array('POST')); + $unassignedHT_list = get_var('unassignedHT',array('POST')); + $assigned_family_list = get_var('assignedFamiles',array('POST')); + $unassigned_family_list = get_var('unassignedFamilies',array('POST')); + + if ($assignedHT_list || $unassignedHT_list) { + $sql = "INSERT INTO tc_companionship_sandbox (district) VALUES (\"$district\")"; + $this->db2->query($sql,__LINE__,__FILE__); + $companionship_sandbox = mysql_insert_id(); + + foreach ($assignedHT_list as $individual) { + $sql = "INSERT INTO tc_companion_sandbox (individual,companionship) VALUES (\"$individual\",\"$companionship_sandbox\")"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($unassignedHT_list as $individual) { + $sql = "INSERT INTO tc_companion_sandbox (individual,companionship) VALUES (\"$individual\",\"$companionship_sandbox\")"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($assigned_family_list as $family) { + $sql = "UPDATE tc_family_sandbox SET companionship=$companionship_sandbox WHERE family=$family"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($unassigned_family_list as $family) { + $sql = "UPDATE tc_family_sandbox SET companionship=$companionship_sandbox WHERE family=$family"; + $this->db->query($sql,__LINE__,__FILE__); + } + } else { + $this->t->set_var('debug_list','You must select at least one companion!'); + } + } else if ($_POST['delete']) { + #$this->t->set_var('debug_list',$_POST['delete']); + $companionship = get_var('companionship',array('POST')); + #$this->t->set_var('debug_list',$companionship); + + if ($companionship > 0) { + # unassign families + $sql = "UPDATE tc_family_sandbox SET companionship=NULL WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + + # remove companions + $sql = "DELETE FROM tc_companion_sandbox WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + + # remove companionship + $sql = "DELETE FROM tc_companionship_sandbox WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + } else { + $this->t->set_var('debug_list','You must select a companionship to delete!'); + } + } else if ($_POST['update']) { + #$this->t->set_var('debug_list',$_POST['update']); + $companionship = get_var('companionship',array('POST')); + $district = get_var('district',array('POST')); + $assignedHT_list = get_var('assignedHT',array('POST')); + $unassignedHT_list = get_var('unassignedHT',array('POST')); + $assigned_family_list = get_var('assignedFamiles',array('POST')); + $unassigned_family_list = get_var('unassignedFamilies',array('POST')); + #$this->t->set_var('debug_list',$district); + + if ($companionship > 0) { + if ($assignedHT_list || $unassignedHT_list) { + # clear out existing info about companionship + $sql = "UPDATE tc_family_sandbox SET companionship=NULL WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + $sql = "DELETE FROM tc_companion_sandbox WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + + # set new info about companionship + $sql = "UPDATE tc_companionship_sandbox SET district=$district WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + foreach ($assignedHT_list as $individual) { + $sql = "INSERT INTO tc_companion_sandbox (individual,companionship) VALUES (\"$individual\",\"$companionship\")"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($unassignedHT_list as $individual) { + $sql = "INSERT INTO tc_companion_sandbox (individual,companionship) VALUES (\"$individual\",\"$companionship\")"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($assigned_family_list as $family) { + $sql = "UPDATE tc_family_sandbox SET companionship=$companionship WHERE family=$family"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($unassigned_family_list as $family) { + $sql = "UPDATE tc_family_sandbox SET companionship=$companionship WHERE family=$family"; + $this->db->query($sql,__LINE__,__FILE__); + } + } else { + $this->t->set_var('debug_list','You must select at least one companion!'); + } + } else { + $this->t->set_var('debug_list','You must select a companionship to update!'); + } + } else if ($_POST['reset']) { + #$this->t->set_var('debug_list',$_POST['reset']); + + $sql = "TRUNCATE TABLE tc_district_sandbox"; + $this->db->query($sql,__LINE__,__FILE__); + $sql = "TRUNCATE TABLE tc_family_sandbox"; + $this->db->query($sql,__LINE__,__FILE__); + $sql = "TRUNCATE TABLE tc_companion_sandbox"; + $this->db->query($sql,__LINE__,__FILE__); + $sql = "TRUNCATE TABLE tc_companionship_sandbox"; + $this->db->query($sql,__LINE__,__FILE__); + + # populate tc_district_sandbox + $sql = "SELECT * FROM tc_district WHERE valid=1"; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) { + $district = $this->db->f('district'); + $supervisor = $this->db->f('supervisor'); + $sql = "INSERT INTO tc_district_sandbox (district,supervisor) VALUES (\"$district\",\"$supervisor\")"; + $this->db2->query($sql,__LINE__,__FILE__); + } + + # populate family, companion, and companionship tables + $sql = "SELECT * FROM tc_companionship WHERE valid=1"; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) { + $companionship = $this->db->f('companionship'); + $district = $this->db->f('district'); + $sql = "INSERT INTO tc_companionship_sandbox (district) VALUES (\"$district\")"; + $this->db2->query($sql,__LINE__,__FILE__); + $companionship_sandbox = mysql_insert_id(); + + $sql = "SELECT * FROM tc_companion WHERE companionship=$companionship AND valid=1"; + $this->db2->query($sql,__LINE__,__FILE__); + while ($this->db2->next_record()) { + $individual = $this->db2->f('individual'); + $sql = "INSERT INTO tc_companion_sandbox (individual,companionship) VALUES (\"$individual\",\"$companionship_sandbox\")"; + $this->db3->query($sql,__LINE__,__FILE__); + } + + $sql = "SELECT * FROM tc_family WHERE companionship=$companionship AND valid=1"; + $this->db2->query($sql,__LINE__,__FILE__); + while ($this->db2->next_record()) { + $individual = $this->db2->f('individual'); + $family = $this->db2->f('family'); + $sql = "INSERT INTO tc_family_sandbox (tc_family,individual,companionship) VALUES (\"$family\",\"$individual\",\"$companionship_sandbox\")"; + $this->db3->query($sql,__LINE__,__FILE__); + } + } + } + // get list of companionships - $sql = "SELECT DISTINCT companionship FROM tc_companionship where valid=1 ORDER BY companionship ASC"; + $sql = "SELECT DISTINCT companionship FROM tc_companionship_sandbox ORDER BY companionship ASC"; $this->db->query($sql,__LINE__,__FILE__); $unique_companionships = ''; $unique_companionships[0]['companionship'] = 0; - $this->t->set_var('companionship_list',''); - $this->t->fp('list','comp_list',True); + $this->t->set_var('companionship_list',''); + $this->t->fp('c_list','comp_list',True); $j=1; while ($this->db->next_record()) { $companionship = $this->db->f('companionship'); $unique_companionships[$j]['companionship'] = $companionship; $combined_companionship = ""; - $sql = "SELECT * FROM tc_companion AS tc JOIN tc_individual AS ti WHERE tc.individual=ti.individual AND companionship=$companionship AND tc.valid=1 ORDER BY ti.name ASC"; + $sql = "SELECT * FROM tc_companion_sandbox AS tc JOIN tc_individual AS ti WHERE tc.individual=ti.individual AND tc.companionship=$companionship ORDER BY ti.name ASC"; $this->db2->query($sql,__LINE__,__FILE__); while ($this->db2->next_record()) { if ($combined_companionship == "") { @@ -436,19 +584,19 @@ class tc $combined_companionship .= " / " . $this->db2->f('name'); } } - $this->t->set_var('companionship_list',''); + $this->t->set_var('companionship_list',''); $this->t->fp('c_list','comp_list',True); $j++; } # get list of districts - $sql = "SELECT DISTINCT district FROM tc_district WHERE valid=1 ORDER BY district ASC"; + $sql = "SELECT DISTINCT district FROM tc_district_sandbox ORDER BY district ASC"; $this->db->query($sql,__LINE__,__FILE__); $districts = ''; $num_districts=0; while ($this->db->next_record()) { $districts[$num_districts] = $this->db->f('district'); - $this->t->set_var('district',''); + $this->t->set_var('district',''); $this->t->fp('d_list','district_list',True); $num_districts++; } @@ -456,51 +604,33 @@ class tc # get list of individuals who are and are not home teachers $sql = "SELECT * FROM tc_individual WHERE steward='$this->default_stewardship' AND valid=1 ORDER BY name ASC"; $this->db->query($sql,__LINE__,__FILE__); - $unassigned_ht = ''; - $assigned_ht = ''; - $num_ht_assigned=0; $num_ht_unassigned=0; while ($this->db->next_record()) { $individual = $this->db->f('individual'); $name = $this->db->f('name'); - $sql = "SELECT DISTINCT * FROM tc_companion WHERE individual=$individual AND valid=1"; + $sql = "SELECT DISTINCT * FROM tc_companion_sandbox WHERE individual=$individual"; $this->db2->query($sql,__LINE__,__FILE__); if ($this->db2->next_record()) { - $assigned_ht[$num_ht_assigned]['individual'] = $individual; - $assigned_ht[$num_ht_assigned]['name'] = $name; - $this->t->set_var('assigned_ht',''); + $this->t->set_var('assigned_ht',''); $this->t->fp('aht_list','assigned_ht_list',True); - $num_ht_assigned++; } else { - $unassigned_ht[$num_ht_unassigned]['individual'] = $individual; - $unassigned_ht[$num_ht_unassigned]['name'] = $name; - $this->t->set_var('unassigned_ht',''); + $this->t->set_var('unassigned_ht',''); $this->t->fp('uht_list','unassigned_ht_list',True); - $num_ht_unassigned++; } } # get list of families who are and are not assigned home teachers - $sql = "SELECT * FROM tc_family AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual AND tf.valid=1 ORDER BY ti.name ASC"; + $sql = "SELECT * FROM tc_family_sandbox AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual ORDER BY ti.name ASC"; $this->db->query($sql,__LINE__,__FILE__); - $unassigned_families = ''; - $assigned_families = ''; - $num_families_assigned=0; $num_families_unassigned=0; while ($this->db->next_record()) { $individual = $this->db->f('individual'); $family = $this->db->f('family'); $name = $this->db->f('name'); if ($this->db->f('companionship') != 0) { - $assigned_families[$num_families_assigned]['family'] = $family; - $assigned_families[$num_families_assigned]['name'] = $name; - $this->t->set_var('assigned_family',''); + $this->t->set_var('assigned_family',''); $this->t->fp('af_list','assigned_family_list',True); - $num_families_assigned++; } else { - $unassigned_families[$num_families_unassigned]['family'] = $family; - $unassigned_families[$num_families_unassigned]['name'] = $name; - $this->t->set_var('unassigned_family',''); + $this->t->set_var('unassigned_family',''); $this->t->fp('uf_list','unassigned_family_list',True); - $num_families_unassigned++; } } @@ -518,13 +648,13 @@ class tc for ($d = 0; $d < $num_districts; $d++) { $sandbox_table_data .= ""; $sandbox_table_data .= ""; - $sql = "SELECT DISTINCT companionship FROM tc_companionship WHERE district=$districts[$d] AND valid=1 ORDER BY companionship ASC"; + $sql = "SELECT DISTINCT companionship FROM tc_companionship_sandbox WHERE district=$districts[$d] ORDER BY companionship ASC"; $this->db->query($sql,__LINE__,__FILE__); while ($this->db->next_record()) { $sandbox_table_data .= "
"; $companionship = $this->db->f('companionship'); # get names of companions in this companionship - $sql = "SELECT * FROM tc_companion AS tc JOIN tc_individual AS ti WHERE tc.individual=ti.individual AND companionship=$companionship AND tc.valid=1 ORDER BY ti.name ASC"; + $sql = "SELECT * FROM tc_companion_sandbox AS tc JOIN tc_individual AS ti WHERE tc.individual=ti.individual AND companionship=$companionship ORDER BY ti.name ASC"; $this->db2->query($sql,__LINE__,__FILE__); $companion_names = ""; while ($this->db2->next_record()) { @@ -538,13 +668,13 @@ class tc $sandbox_table_data .= "
"; # get families they visit - $sql = "SELECT * FROM tc_companionship AS tcp JOIN (tc_family AS tf, tc_individual AS ti) WHERE tcp.companionship=$companionship AND tcp.companionship=tf.companionship AND tf.individual=ti.individual AND tcp.valid=1"; + $sql = "SELECT * FROM tc_companionship_sandbox AS tcp JOIN (tc_family_sandbox AS tf, tc_individual AS ti) WHERE tcp.companionship=$companionship AND tcp.companionship=tf.companionship AND tf.individual=ti.individual"; $this->db2->query($sql,__LINE__,__FILE__); while ($this->db2->next_record()) { $family_name = $this->db2->f('name') . " Family"; - $family_id = $this->db2->f('family'); + $family_id = $this->db2->f('tc_family'); $sandbox_table_data .= ""; - $sandbox_table_data .= ""; + $sandbox_table_data .= ""; # get 12 months visit data for given family for($m=12; $m >= 0; $m--) { @@ -561,9 +691,9 @@ class tc if($this->db3->next_record()) { if($this->db3->f('visited') == 'y') { - $sandbox_table_data .= ''; + $sandbox_table_data .= ""; } else if($this->db3->f('visited') == 'n') { - $sandbox_table_data .= ''; + $sandbox_table_data .= ""; } else { $sandbox_table_data .= ""; } diff --git a/sql/prepopulate.sql b/sql/prepopulate.sql new file mode 100644 index 0000000..7f916bb --- /dev/null +++ b/sql/prepopulate.sql @@ -0,0 +1,22 @@ +-- MySQL dump 10.11 +-- +-- Host: localhost Database: phpgroupware +-- ------------------------------------------------------ + +-- +-- Current Database: `phpgroupware` +-- + +CREATE DATABASE /*!32312 IF NOT EXISTS*/ `phpgroupware` /*!40100 DEFAULT CHARACTER SET latin1 */; + +USE `phpgroupware`; + +-- +-- Dumping data for table `tc_assignment` +-- +LOCK TABLES `tc_assignment` WRITE; +/*!40000 ALTER TABLE `tc_assignment` DISABLE KEYS */; +INSERT INTO `tc_assignment` (`assignment`, `name`, `abbreviation`) VALUES (1,'Enrichment Night Babysitting','RS'),(2,'Building Lockup','LU'),(3,'Building Cleaning Coordinator','CC'),(4,'Missionary Splits','MS'),(5,'Stake Farm','SF'),(6,'Loveland Kitchen','LK'),(7,'Moves','MV'),(8,'Temple Kitchen & Laundary','TKL'),(9,'Temple Sealings','TS'),(10,'Temple Initatories','TI'); +/*!40000 ALTER TABLE `tc_assignment` ENABLE KEYS */; +UNLOCK TABLES; + diff --git a/sql/schema.dot b/sql/schema.dot index 7d5d187..d53f0b6 100644 --- a/sql/schema.dot +++ b/sql/schema.dot @@ -95,7 +95,7 @@ digraph schema { shape = "record" ]; family_sandbox [ - label = "family_sandbox|| family| tc_family| companionship" + label = "family_sandbox|| family| tc_family| individual| companionship" shape = "record" ]; @@ -151,6 +151,7 @@ digraph schema { companion_sandbox:cp -> companionship_sandbox:cp companionship_sandbox:d -> district_sandbox:d family_sandbox:tcf -> family:f + family_sandbox:i -> individual:i family_sandbox:cp -> companionship_sandbox:cp } diff --git a/sql/tc.jpg b/sql/tc.jpg index f9891ea..4145720 100644 Binary files a/sql/tc.jpg and b/sql/tc.jpg differ diff --git a/sql/tc.sql b/sql/tc.sql index 335f2d6..3d287e5 100644 --- a/sql/tc.sql +++ b/sql/tc.sql @@ -48,15 +48,6 @@ CREATE TABLE /*!42501 IF NOT EXISTS*/ `tc_assignment` ( PRIMARY KEY (`assignment`) ) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=latin1; --- --- Dumping data for table `tc_assignment` --- -LOCK TABLES `tc_assignment` WRITE; -/*!40000 ALTER TABLE `tc_assignment` DISABLE KEYS */; -INSERT INTO `tc_assignment` (`assignment`, `name`, `abbreviation`) VALUES (1,'Enrichment Night Babysitting','RS'),(2,'Building Lockup','LU'),(3,'Building Cleaning Coordinator','CC'),(4,'Missionary Splits','MS'),(5,'Stake Farm','SF'),(6,'Loveland Kitchen','LK'),(7,'Moves','MV'),(8,'Temple Kitchen & Laundary','TKL'),(9,'Temple Sealings','TS'),(10,'Temple Initatories','TI'); -/*!40000 ALTER TABLE `tc_assignment` ENABLE KEYS */; -UNLOCK TABLES; - -- -- Table structure for table `tc_attendance` -- @@ -254,17 +245,17 @@ CREATE TABLE /*!42501 IF NOT EXISTS*/ `tc_task` ( -- Table structure for table `tc_district_sandbox` -- CREATE TABLE /*!42501 IF NOT EXISTS*/ `tc_district_sandbox` ( -`district` INT( 16 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, -`supervisor` INT( 16 ) UNSIGNED NULL DEFAULT NULL + `district` INT( 16 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + `supervisor` INT( 16 ) UNSIGNED NULL DEFAULT NULL ) ENGINE = MYISAM ; -- -- Table structure for table `tc_companion_sandbox` -- CREATE TABLE /*!42501 IF NOT EXISTS*/ `tc_companion_sandbox` ( -`companion` INT( 16 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , -`individual` INT( 16 ) UNSIGNED NOT NULL , -`companionship` INT( 16 ) UNSIGNED NOT NULL + `companion` INT( 16 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY , + `individual` INT( 16 ) UNSIGNED NOT NULL , + `companionship` INT( 16 ) UNSIGNED NOT NULL ) ENGINE = MYISAM ; -- @@ -281,6 +272,7 @@ CREATE TABLE /*!42501 IF NOT EXISTS*/ `tc_companionship_sandbox` ( CREATE TABLE /*!42501 IF NOT EXISTS*/ `tc_family_sandbox` ( `family` int(16) unsigned NOT NULL auto_increment, `tc_family` int(16) unsigned default '0', + `individual` INT( 16 ) UNSIGNED NOT NULL , `companionship` int(16) unsigned default NULL, PRIMARY KEY (`family`) ) ENGINE = MyISAM ; diff --git a/templates/default/ht_sandbox.tpl b/templates/default/ht_sandbox.tpl index 4f9fe7d..129df77 100644 --- a/templates/default/ht_sandbox.tpl +++ b/templates/default/ht_sandbox.tpl @@ -1,5 +1,6 @@
+
$family_name$family_name 
@@ -7,12 +8,7 @@
{title}

- - - -
- - +
@@ -40,28 +36,28 @@
Companionship Unassigned HT - {unassigned_ht} - {assigned_ht} - {unassigned_family} - {assigned_family} @@ -71,33 +67,36 @@
- +
- +
- +
- +
- +
+
+ + {debug_list}
{district_table}