2009-09-09 00:26:12 +00:00
< ?
/*
This file is part of the 'Science Fair In A Box' project
SFIAB Website : http :// www . sfiab . ca
Copyright ( C ) 2005 Sci - Tech Ontario Inc < info @ scitechontario . org >
Copyright ( C ) 2008 James Grant < james @ lightbox . org >
This program is free software ; you can redistribute it and / or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation , version 2.
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; see the file COPYING . If not , write to
the Free Software Foundation , Inc . , 59 Temple Place - Suite 330 ,
Boston , MA 02111 - 1307 , USA .
*/
?>
< ?
require ( " ../common.inc.php " );
require_once ( " ../user.inc.php " );
user_auth_required ( 'committee' , 'admin' );
2009-09-17 19:05:17 +00:00
switch ( $_GET [ 'action' ]) {
case 'organizationinfo_load' :
2009-09-17 20:37:44 +00:00
$id = intval ( $_GET [ 'id' ]);
$q = mysql_query ( " SELECT * FROM sponsors WHERE id=' $id ' " );
2009-09-17 19:05:17 +00:00
$ret = mysql_fetch_assoc ( $q );
echo json_encode ( $ret );
exit ;
break ;
case 'organizationinfo_save' :
2009-09-17 20:03:56 +00:00
$id = intval ( $_POST [ 'sponsor_id' ]);
if ( $id ==- 1 ) {
$q = mysql_query ( " INSERT INTO sponsors (year) VALUES (' " . $config [ 'FAIRYEAR' ] . " ') " );
$id = mysql_insert_id ();
echo json_encode ( array ( " id " => $id ));
}
2009-09-17 19:05:17 +00:00
if ( $id ) {
$exec = " UPDATE sponsors SET " .
" organization=' " . mysql_escape_string ( stripslashes ( $_POST [ 'organization' ])) . " ', " .
" address=' " . mysql_escape_string ( stripslashes ( $_POST [ 'address' ])) . " ', " .
" city=' " . mysql_escape_string ( stripslashes ( $_POST [ 'city' ])) . " ', " .
" province_code=' " . mysql_escape_string ( stripslashes ( $_POST [ 'province_code' ])) . " ', " .
" postalcode=' " . mysql_escape_string ( stripslashes ( $_POST [ 'postalcode' ])) . " ', " .
" phone=' " . mysql_escape_string ( stripslashes ( $_POST [ 'phone' ])) . " ', " .
" tollfree=' " . mysql_escape_string ( stripslashes ( $_POST [ 'tollfree' ])) . " ', " .
" fax=' " . mysql_escape_string ( stripslashes ( $_POST [ 'fax' ])) . " ', " .
" email=' " . mysql_escape_string ( stripslashes ( $_POST [ 'email' ])) . " ', " .
" website=' " . mysql_escape_string ( stripslashes ( $_POST [ 'website' ])) . " ', " .
" notes=' " . mysql_escape_string ( stripslashes ( $_POST [ 'notes' ])) . " ', " .
" donationpolicyurl=' " . mysql_escape_string ( stripslashes ( $_POST [ 'donationpolicyurl' ])) . " ', " .
" fundingselectiondate=' " . mysql_escape_string ( stripslashes ( $_POST [ 'fundingselectiondate' ])) . " ', " .
" waiveraccepted=' " . mysql_escape_string ( stripslashes ( $_POST [ 'waiveraccepted' ])) . " ', " .
" taxreceiptrequired=' " . mysql_escape_string ( stripslashes ( $_POST [ 'taxreceiptrequired' ])) . " ' " .
" WHERE id=' $id ' " ;
mysql_query ( $exec );
//FIXME accept the logo
//"logo='".mysql_escape_string(stripslashes($_POST['logo']))."', ".
}
exit ;
break ;
case 'sponsorshipinfo_load' :
2009-09-17 20:37:44 +00:00
$id = intval ( $_GET [ 'id' ]);
2009-09-17 19:05:17 +00:00
$ret = array ();
echo json_encode ( $ret );
exit ;
break ;
2009-09-17 20:37:44 +00:00
case 'contactsinfo_load' :
$sponsors_id = intval ( $_GET [ 'id' ]);
$q = mysql_query ( " SELECT id,
uid ,
year ,
firstname ,
lastname ,
deleted ,
salutation ,
email ,
phonework ,
phonecell ,
`primary`
FROM users , users_sponsor
WHERE
`types` LIKE '%sponsor%'
AND sponsors_id = '$sponsors_id'
AND users_sponsor . users_id = users . id
AND users . deleted = 'no'
ORDER BY year DESC " );
echo mysql_error ();
echo " <table class= \" tableview \" > " ;
echo " <tr> " ;
echo " <th> " . i18n ( " Year " ) . " </th> " ;
echo " <th> " . i18n ( " Name " ) . " </th> " ;
echo " <th> " . i18n ( " Email " ) . " </th> " ;
echo " <th> " . i18n ( " Phone (Work) " ) . " </th> " ;
echo " <th> " . i18n ( " Phone (Cell) " ) . " </th> " ;
echo " <th> " . i18n ( " Primary " ) . " </th> " ;
echo " <th>Actions</th> " ;
echo " </tr> \n " ;
while ( $r = mysql_fetch_object ( $q )) {
echo " <tr> \n " ;
echo " <td> $r->year </td> \n " ;
echo " <td> " ;
if ( $r -> salutation ) echo $r -> salutation . " " ;
echo " $r->firstname $r->lastname </td> \n " ;
echo " <td> " ;
if ( $r -> email ) {
list ( $eb , $ea ) = split ( " @ " , $r -> email );
echo $r -> email ;
}
else
echo " " ;
echo " </td> " ;
echo " <td> $r->phonework </td> \n " ;
echo " <td> $r->phonecell </td> \n " ;
$p = i18n (( $r -> primary == 'yes' ) ? 'Yes' : 'No' );
echo " <td> $p </td> \n " ;
echo " <td align= \" center \" > " ;
//FIXME: should we just go to /user_personal.php here instead?
echo " <a href= \" sponsor_contacts.php?sponsors_id= $sponsors_id &action=edit&edit= $r->id\ " >< img border = \ " 0 \" src= \" " . $config [ 'SFIABDIRECTORY' ] . " /images/16/edit. " . $config [ 'icon_extension' ] . " \" ></a> " ;
echo " " ;
echo " <a onclick= \" return confirmClick('Are you sure you want to remove this contact?') \" href= \" sponsor_contacts.php?sponsors_id= $sponsors_id &action=delete&delete= $r->id\ " >< img border = 0 src = \ " " . $config [ 'SFIABDIRECTORY' ] . " /images/16/button_cancel. " . $config [ 'icon_extension' ] . " \" ></a> " ;
echo " </td> \n " ;
echo " </tr> \n " ;
}
echo " </table> \n " ;
2009-09-17 19:05:17 +00:00
2009-09-17 20:37:44 +00:00
exit ;
break ;
2009-09-17 19:05:17 +00:00
}
2009-09-30 20:29:34 +00:00
send_header ( " Donor Management " ,
2009-09-09 00:26:12 +00:00
array ( 'Committee Main' => 'committee_main.php' ,
'Administration' => 'admin/index.php' ,
'Fundraising Main' => 'admin/fundraising.php' )
);
2009-09-17 19:05:17 +00:00
?>
< script type = " text/javascript " >
/* Setup the popup window */
$ ( document ) . ready ( function () {
$ ( " #popup_editor " ) . dialog ({
bgiframe : true , autoOpen : false ,
modal : true , resizable : false ,
draggable : false
});
$ ( " #editor_tabs " ) . tabs ({
show : function ( event , ui ) {
switch ( ui . panel . id ) {
case 'editor_tab_organization' :
update_organizationinfo ();
break ;
case 'editor_tab_sponsorship' :
update_sponsorshipinfo ();
break ;
case 'editor_tab_contacts' :
update_contactsinfo ();
break ;
case 'editor_tab_activity' :
update_activityinfo ();
break ;
}
},
selected : 0 ,
});
$ ( " #organizationinfo_fundingselectiondate " ) . datepicker ({ dateFormat : 'yy-mm-dd' , showOn : 'button' , buttonText : " <?=i18n( " calendar " )?> " });
});
var sponsor_id = 0 ;
function popup_editor ( id )
{
var w = ( document . documentElement . clientWidth * 0.8 );
var h = ( document . documentElement . clientHeight * 0.8 );
sponsor_id = id ;
$ ( '#popup_editor' ) . dialog ( 'option' , 'width' , w );
$ ( '#popup_editor' ) . dialog ( 'option' , 'height' , h );
$ ( " #popup_editor " ) . dialog ( 'open' );
2009-09-17 20:03:56 +00:00
if ( id ==- 1 ) {
$ ( '#editor_tabs' ) . tabs ( 'option' , 'selected' , 0 );
$ ( '#editor_tabs' ) . tabs ( 'option' , 'disabled' , [ 1 , 2 , 3 ]);
}
else {
$ ( '#editor_tabs' ) . tabs ( 'option' , 'selected' , 0 );
$ ( '#editor_tabs' ) . tabs ( 'option' , 'disabled' , []);
}
2009-09-17 19:05:17 +00:00
update_organizationinfo ();
return false ;
}
function update_organizationinfo ()
{
var id = sponsor_id ;
2009-09-17 20:03:56 +00:00
if ( ! sponsor_id )
return false ;
if ( sponsor_id ==- 1 ) {
$ ( " #sponsor_id " ) . val ( - 1 );
return false ;
}
2009-09-17 19:05:17 +00:00
$ . getJSON ( " <?= $_SERVER['PHP_SELF'] ?>?action=organizationinfo_load&id= " + id ,
function ( json ){
$ ( " #sponsor_id " ) . val ( json . id );
$ ( " #organizationinfo_organization " ) . val ( json . organization );
$ ( " #organizationinfo_address " ) . val ( json . address );
$ ( " #organizationinfo_city " ) . val ( json . city );
$ ( " #organizationinfo_province_code " ) . val ( json . province_code );
$ ( " #organizationinfo_postalcodd " ) . val ( json . postalcode );
$ ( " #organizationinfo_phone " ) . val ( json . phone );
$ ( " #organizationinfo_tollfree " ) . val ( json . tollfree );
$ ( " #organizationinfo_fax " ) . val ( json . fax );
$ ( " #organizationinfo_email " ) . val ( json . email );
$ ( " #organizationinfo_website " ) . val ( json . website );
$ ( " #organizationinfo_donationpolicyurl " ) . val ( json . donationpolicyurl );
$ ( " #organizationinfo_fundingselectiondate " ) . val ( json . fundingselectiondate );
$ ( " #organizationinfo_notes " ) . val ( json . notes );
// For some reason, with checkboxes, these have to be arrays
$ ( " [name=waiveraccepted] " ) . val ([ json . waiveraccepted ]);
$ ( " [name=taxreceiptrequired] " ) . val ([ json . taxreceiptrequired ]);
});
}
function organizationinfo_save () {
2009-09-17 20:03:56 +00:00
//if we're creating we need to do the post, and get the id it returns, so we can re-open the popup window with that id
if ( $ ( " #sponsor_id " ) . val () ==- 1 ) {
$ . post ( " <? $_SERVER['PHP_SELF'] ?>?action=organizationinfo_save " , $ ( " #organizationinfo " ) . serializeArray (),
function ( json ) {
$ ( " #popup_editor " ) . dialog ( 'close' );
popup_editor ( json . id );
},
" json " );
}
else
$ ( " #debug " ) . load ( " <? $_SERVER['PHP_SELF'] ?>?action=organizationinfo_save " , $ ( " #organizationinfo " ) . serializeArray ());
2009-09-17 19:05:17 +00:00
return false ;
}
function update_sponsorshipinfo ()
{
var id = sponsor_id ;
$ . getJSON ( " <?= $_SERVER['PHP_SELF'] ?>?action=sponsorshipinfo_load&id= " + id ,
function ( json ){
$ ( " #sponsor_id " ) . val ( json . id );
});
}
function sponsorshipinfo_save () {
$ ( " #debug " ) . load ( " <? $_SERVER['PHP_SELF'] ?>?action=sponsorshipinfo_save " , $ ( " #sponsorshipinfo " ) . serializeArray ());
return false ;
}
function update_contactsinfo ()
{
var id = sponsor_id ;
2009-09-17 20:37:44 +00:00
$ ( " #editor_tab_contacts " ) . load ( " <?= $_SERVER['PHP_SELF'] ?>?action=contactsinfo_load&id= " + id );
2009-09-17 19:05:17 +00:00
}
function contactsinfo_save () {
$ ( " #debug " ) . load ( " <? $_SERVER['PHP_SELF'] ?>?action=contactsinfo_save " , $ ( " #contactsinfo " ) . serializeArray ());
return false ;
}
function update_activityinfo ()
{
var id = sponsor_id ;
$ . getJSON ( " <?= $_SERVER['PHP_SELF'] ?>?action=activityinfo_load&id= " + id ,
function ( json ){
$ ( " #sponsor_id " ) . val ( json . id );
});
}
function activityinfo_save () {
$ ( " #debug " ) . load ( " <? $_SERVER['PHP_SELF'] ?>?action=activityinfo_save " , $ ( " #activityinfo " ) . serializeArray ());
return false ;
}
</ script >
2009-09-30 20:29:34 +00:00
< div id = " popup_editor " title = " Donor Editor " style = " display: none " >
2009-09-17 19:05:17 +00:00
< div id = " editor_tabs " >
< ul >
2009-09-30 20:29:34 +00:00
< li >< a href = " #editor_tab_organization " >< span >< ? = i18n ( 'Donor Details' ) ?> </span></a></li>
< li >< a href = " #editor_tab_sponsorship " >< span >< ? = i18n ( 'Donations' ) ?> </span></a></li>
2009-09-17 19:05:17 +00:00
< li >< a href = " #editor_tab_contacts " >< span >< ? = i18n ( 'Contacts' ) ?> </span></a></li>
< li >< a href = " #editor_tab_activity " >< span >< ? = i18n ( 'Activity Log' ) ?> </span></a></li>
</ ul >
< div id = " editor_tab_organization " >
< form enctype = " multipart/form-data " id = " organizationinfo " >
< input type = " hidden " name = " sponsor_id " id = " sponsor_id " value = " 0 " >
2009-09-30 20:29:34 +00:00
< table class = " " >
< tr >< th >< ? = i18n ( " Name " ) ?> </th><td><input class="translatable" type="text" id="organizationinfo_organization" name="organization" size="60" maxlength="128" /></td></tr>
2009-09-17 19:05:17 +00:00
< tr >< th >< ? = i18n ( " Address " ) ?> </th><td><input id="organizationinfo_address" type="text" name="address" size="60" maxlength="64" /></td></tr>
< tr >< th >< ? = i18n ( " City " ) ?> </th><td><input id="organizationinfo_city" type="text" name="city" size="32" maxlength="32" /></td></tr>
< tr >< th >< ? = i18n ( $config [ 'provincestate' ]) ?> </th><td>
< ? emit_province_selector ( " province_code " , " " , " id= \" organizationinfo_province_code \" " ); ?>
</ td ></ tr >
< tr >< th >< ? = i18n ( $config [ 'postalzip' ]) ?> </th><td><input id="organizationinfo_postalcode" type="text" name="postalcode" size="8" maxlength="7" /></td></tr>
< tr >< th >< ? = i18n ( " Phone " ) ?> </th><td><input type="text" id="organizationinfo_phone" name="phone" size="16" maxlength="32" /></td></tr>
< tr >< th >< ? = i18n ( " Toll Free " ) ?> </th><td><input type="text" id="organizationinfo_tollfree" name="tollfree" size="16" maxlength="32" /></td></tr>
< tr >< th >< ? = i18n ( " Fax " ) ?> </th><td><input type="text" id="organizationinfo_fax" name="fax" size="16" maxlength="32" /></td></tr>
< tr >< th >< ? = i18n ( " Email " ) ?> </th><td><input type="text" id="organizationinfo_email" name="email" size="60" maxlength="128" /></td></tr>
< tr >< th >< ? = i18n ( " Website " ) ?> </th><td><input type="text" id="organizationinfo_website" name="website" size="60" maxlength="128" /></td></tr>
< tr >< th >< ? = i18n ( " Donation Policy URL " ) ?> </th><td><input id="organizationinfo_donationpolicyurl" type="text" name="donationpolicyurl" size="60" maxlength="128" /></td></tr>
< tr >< th >< ? = i18n ( " Funding Selection Date " ) ?> </th><td><input id="organizationinfo_fundingselectiondate" type="text" name="fundingselectiondate" size="10" maxlength="10" /></td></tr>
< tr >< th >< ? = i18n ( " Logo " ) ?> </th><td><input type="file" name="logo" size="16" /></td></tr>
< tr >< th >< ? = i18n ( " Waiver Accepted " ) ?> </th><td>
< input type = " radio " id = " organizationinfo_waiveraccepted_no " name = " waiveraccepted " value = " no " >< ? = i18n ( " No " ) ?>
< input type = " radio " id = " organizationinfo_waiveraccepted_yes " name = " waiveraccepted " value = " yes " >< ? = i18n ( " Yes " ) ?>
</ td ></ tr >
< tr >< th >< ? = i18n ( " Tax Receipt Required " ) ?> </th><td>
< input type = " radio " id = " organizationinfo_taxreceiptrequired_no " name = " taxreceiptrequired " value = " no " >< ? = i18n ( " No " ) ?>
< input type = " radio " id = " organizationinfo_taxreceiptrequired_yes " name = " taxreceiptrequired " value = " yes " >< ? = i18n ( " Yes " ) ?>
</ td ></ tr >
< tr >< th >< ? = i18n ( " Notes " ) ?> </th><td><textarea id="organizationinfo_notes" name="notes" rows="4" cols="60"></textarea></td></tr>
< tr >< td colspan = " 2 " align = " center " >< input type = " submit " value = " Save " onClick = " return organizationinfo_save() " /></ td ></ tr >
</ table >
</ form >
</ div >
< div id = " editor_tab_sponsorship " >
sponsorship
</ div >
< div id = " editor_tab_contacts " >
</ div >
< div id = " editor_tab_activity " >
activity
</ div >
</ div >
</ div >
< ?
2009-09-09 00:26:12 +00:00
if ( $_GET [ 'action' ] == " delete " && $_GET [ 'delete' ])
{
//dont allow any deleting until we figure out what we need to do, infact, i think we never should hard delete
//this should only soft-delete so things like awards from previous years are still all linked correctly.
// mysql_query("DELETE FROM sponsors WHERE id='".$_GET['delete']."'");
// echo happy("Sponsors cannot be deleted");
}
2009-09-30 20:29:34 +00:00
echo " <a href= \" # \" onclick= \" popup_editor(-1) \" >Add New Donor</a> \n " ;
2009-09-09 00:26:12 +00:00
echo " <br /> " ;
echo " <table class= \" tableview \" > " ;
echo " <tr> " ;
echo " <th>Organization</th> " ;
echo " <th># of Sponsorships</th> " ;
echo " <th># of Awards</th> " ;
echo " <th># of Contacts</th> " ;
2009-09-17 20:03:56 +00:00
// echo " <th>Action</th>";
2009-09-09 00:26:12 +00:00
echo " </tr> \n " ;
//$q=mysql_query("SELECT * FROM award_sponsors WHERE year='".$config['FAIRYEAR']."' ORDER BY organization");
//we want to show all years, infact that year field probably shouldnt even be there.
$q = mysql_query ( " SELECT * FROM sponsors ORDER BY organization " );
while ( $r = mysql_fetch_object ( $q ))
{
echo " <tr> \n " ;
2009-09-17 19:05:17 +00:00
$eh = " style= \" cursor:pointer; \" onclick= \" popup_editor( { $r -> id } ); \" " ;
echo " <td $eh > $r->organization </td> \n " ;
2009-09-09 00:26:12 +00:00
$numq = mysql_query ( " SELECT COUNT(id) AS num FROM award_awards WHERE year=' " . $config [ 'FAIRYEAR' ] . " ' AND sponsors_id=' $r->id ' " );
$numr = mysql_fetch_object ( $numq );
$numawards = $numr -> num ;
$numq = mysql_query ( " SELECT COUNT(id) AS num FROM sponsorships WHERE year=' " . $config [ 'FAIRYEAR' ] . " ' AND sponsors_id=' $r->id ' " );
$numr = mysql_fetch_object ( $numq );
$numsponsorships = $numr -> num ;
2009-09-17 19:05:17 +00:00
$numq = mysql_query ( " SELECT uid,MAX(year),firstname,lastname,deleted FROM users,users_sponsor WHERE types LIKE '%sponsor%' AND sponsors_id=' $r->id ' AND users_sponsor.users_id=users.id AND users.deleted='no' GROUP BY uid ORDER BY firstname " );
// $numq=mysql_query("SELECT DISTINCT(uid) FROM users_sponsor, users WHERE sponsors_id='$r->id' AND users_sponsor.users_id=users.id AND users.deleted='no'");
$numcontacts = mysql_num_rows ( $numq );
// $numr=mysql_fetch_object($numq);
// $numcontacts=$numr->num;
2009-09-09 00:26:12 +00:00
echo " <td align= \" center \" valign= \" top \" > " ;
echo " $numsponsorships " ;
echo " <a href= \" fundraising.php?sponsors_id= $r->id\ " >< img alt = \ " view \" border= \" 0 \" src= \" " . $config [ 'SFIABDIRECTORY' ] . " /images/16/viewmag. " . $config [ 'icon_extension' ] . " \" ></a> " ;
echo " </td> " ;
echo " <td align= \" center \" valign= \" top \" > " ;
echo " $numawards " ;
echo " <a href= \" award_awards.php?sponsors_id= $r->id\ " >< img alt = \ " view \" border= \" 0 \" src= \" " . $config [ 'SFIABDIRECTORY' ] . " /images/16/viewmag. " . $config [ 'icon_extension' ] . " \" ></a> " ;
echo " </td> " ;
echo " <td align= \" center \" valign= \" top \" > " ;
echo " $numcontacts " ;
2009-09-17 20:37:44 +00:00
// echo "<a href=\"sponsor_contacts.php?sponsors_id=$r->id\"><img alt=\"view\" border=\"0\" src=\"".$config['SFIABDIRECTORY']."/images/16/viewmag.".$config['icon_extension']."\"></a>";
2009-09-09 00:26:12 +00:00
echo " </td> " ;
echo " </tr> \n " ;
}
echo " </table> \n " ;
2009-09-17 21:49:39 +00:00
if ( $_GET [ 'action' ] == " add " ) {
?>
< script type = " text/javascript " >
$ ( document ) . ready ( function () {
popup_editor ( - 1 );
});
</ script >
< ?
}
2009-09-09 00:26:12 +00:00
send_footer ();
?>