sqlsafe('1'); $statusVars = array('Pending','Working','Finished'); for($i=1;$i<4;$i++){ $status['Status'][$i]=$statusVars[$i-1]; } switch ($act) { case 'new': require_once('functions.php'); $getClients = getClientsNumber(); if($getClients > 0){ $getTypes = getTypesNumber(); if($getTypes > 0){ $getAllClients = $db->select('select id , name , company from client_info order by regDate ASC '); $countClients = count($getAllClients); for($i=0;$i<$countClients;$i++){ $clients['Clients'][$getAllClients[$i]['id']]=$getAllClients[$i]['company'].' ('.$getAllClients[$i]['name'].')'; } $getDepartments = $db->select('select * from emp_departments order by fatherId ASC'); $countDep = count($getDepartments); for($i=0;$i<$countDep;$i++){ $sql[$i]='select count(id) as count from emp_personal_info where dep_id='.$db->sqlsafe($getDepartments[$i]['id']).''; $getDepartments[$i]['count']=$db->CQuery($sql[$i]); if($getDepartments[$i]['count'] > 0){ $departments['Departments'][$getDepartments[$i]['id']]=getPath('emp_departments', $getDepartments[$i]['id'], $getDepartments[$i]['fatherId']); } } if(!is_array($departments)){ $skin = new skin(); $skin->assign('errorMSG','Sorry , but you have to add a new Department before start adding a new Project, and remember to add few staff too.'); $skin->assign('config',$config); $skin->assign('showMenu','1'); $skin->assign('incFile','site/error.tpl'); $skin->display('site/index.tpl'); }else{ $getAllTypes = $db->select('select id , name from projects_type order by id ASC '); $countTypes = count($getAllTypes); for($i=0;$i<$countTypes;$i++){ $types['Project Type'][$getAllTypes[$i]['id']]=$getAllTypes[$i]['name']; } $skin = new skin(); $skin->assign('clients',$clients); $skin->assign('departments',$departments); $skin->assign('types',$types); $skin->assign('action','add'); $skin->assign('config',$config); $skin->assign('status',$status); $skin->assign('showMenu','1'); $skin->assign('incFile','site/projects/projectForm.tpl'); $skin->display('site/index.tpl'); } }elseif($getTypes == 0){ $skin = new skin(); $skin->assign('errorMSG','Sorry , but you have to add a new type before start adding a new Project'); $skin->assign('config',$config); $skin->assign('showMenu','1'); $skin->assign('incFile','site/error.tpl'); $skin->display('site/index.tpl'); } } elseif($getClients == 0){ $skin = new skin(); $skin->assign('errorMSG','Sorry , but you have to add a new client before start adding a new Project'); $skin->assign('config',$config); $skin->assign('showMenu','1'); $skin->assign('incFile','site/error.tpl'); $skin->display('site/index.tpl'); } break; case 'add': if(empty($_POST['pname'])){ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&action=new&error=1'); }else{ $record = array( "client_id" =>$db->sqlsafe($_POST['cln']), "type_id" =>$db->sqlsafe($_POST['ptype']), "name" =>$db->sqlsafe($_POST['pname']), "dep_id" =>$db->sqlsafe($_POST['dep_id']), "cost" =>$db->sqlsafe($_POST['cost']), "start_date" =>$db->sqlsafe($_POST['startDate']), "end_date" =>$db->sqlsafe($_POST['endDate']), "status_id" =>$db->sqlsafe($_POST['pStatus']), "description"=>$db->sqlsafe(nl2br($_POST['note'])) ); $insert = $db->insert('projects_info',$record); if($insert){ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&done=1'); }else{ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&action=new&error=2'); } } break; case 'delete': if(!isset($_GET['id'])){ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&error=2'); }else{ $pId = $db->sqlsafe($_GET['id']); $delete = $db->delete('projects_info','id ='.$pId.''); if($delete){ $getTasks = $db->select('select id from tasks_info where project_id='.$pId.''); $delete = $db->delete('projects_notes','project_id ='.$pId.''); $deleteNote = $db->delete('tasks_notes','task_id='.$db->sqlsafe($getTasks[0]['id']).''); $deleteEmps = $db->delete('tasks_emp','task_id='.$db->sqlsafe($getTasks[0]['id']).''); $deleteEmps = $db->delete('tasks_info','project_id='.$pId.''); $deleteRel = $db->delete('tasks_relations','project_id='.$pId.''); header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&done=1'); }else{ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&error=1'); } } break; case 'info': if(!isset($_GET['id'])){ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&error=1'); }else{ $pId = $db->sqlsafe($_GET['id']); $project_info = $db->select('select pinfo.id , pinfo.name , cinfo.company , cinfo.id as cId ,pinfo.`description`,pinfo.cost, pinfo.start_date , pinfo.end_date ,ptype.name as type , pinfo.status_id , dep.id as depID , dep.name as depName , dep.fatherId from projects_info as pinfo inner join client_info as cinfo on pinfo.client_id = cinfo.id inner join projects_type as ptype on pinfo.type_id = ptype.id inner join emp_departments as dep on pinfo.dep_id = dep.id where pinfo.id = '.$pId.' order by pinfo.id ASC',0,1); $project_info[0]['depName']=getPath('emp_departments',$project_info[0]['depID'],$project_info[0]['fatherId']); $getProjectNotes = $db->select('select * from projects_notes where project_id = '.$pId.' '); if($_POST['ajax'] == 1){ $skin = new skin(); $skin->assign('config',$config); $skin->assign('showClose','1'); $skin->assign('notes',$getProjectNotes); $skin->assign('project',$project_info[0]); $skin->display('site/projects/project.tpl'); }else{ $skin = new skin(); $skin->assign('config',$config); $skin->assign('showMenu','1'); $skin->assign('notes',$getProjectNotes); $skin->assign('project',$project_info[0]); $skin->assign('incFile','site/projects/project.tpl'); $skin->display('site/index.tpl'); } } break; case 'editForm': if(!isset($_GET['id'])){ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&error=1'); }else{ $pId = $db->sqlsafe($_GET['id']); $getTasks =$db->CQuery('select count(id) from tasks_info where project_id='.$pId.''); $project_info = $db->select('select pinfo.id , pinfo.name , cinfo.id as cId ,pinfo.`description`,pinfo.cost, pinfo.start_date , pinfo.end_date , pinfo.status_id , dep.id as depId , dep.name as depName from projects_info as pinfo inner join client_info as cinfo on pinfo.client_id = cinfo.id inner join projects_type as ptype on pinfo.type_id = ptype.id inner join emp_departments as dep on pinfo.dep_id = dep.id where pinfo.id = '.$pId.' order by pinfo.id ASC',0,1); $project_info[0]['description'] =strip_tags($project_info[0]['description']); $getAllClients = $db->select('select id , name , company from client_info order by regDate ASC '); $countClients = count($getAllClients); for($i=0;$i<$countClients;$i++){ $clients['Clients'][$getAllClients[$i]['id']]=$getAllClients[$i]['company'].' ('.$getAllClients[$i]['name'].')'; } if($getTasks == 0 ){ $getDepartments = $db->select('select * from emp_departments order by fatherId ASC'); $countDep = count($getDepartments); for($i=0;$i<$countDep;$i++){ $departments['Departments'][$getDepartments[$i]['id']]=getPath('emp_departments', $getDepartments[$i]['id'], $getDepartments[$i]['fatherId']); } }elseif($getTasks > 0){ $departments['Departments'][0]=array($project_info[0]['depId']=>$project_info[0]['depName']); } $getAllTypes = $db->select('select id , name from projects_type order by id ASC '); $countTypes = count($getAllTypes); for($i=0;$i<$countTypes;$i++){ $types['Clients'][$getAllTypes[$i]['id']]=$getAllTypes[$i]['name']; } $skin = new skin(); $skin->assign('clients',$clients); $skin->assign('departments',$departments); $skin->assign('types',$types); $skin->assign('action','edit'); $skin->assign('config',$config); $skin->assign('status',$status); $skin->assign('project',$project_info[0]); $skin->assign('showMenu','1'); $skin->assign('incFile','site/projects/projectForm.tpl'); $skin->display('site/index.tpl'); } break; case 'addNote': if(!isset($_GET['id'])){ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&error=1'); }else{ if($_POST['ajax'] == 1){ $skin = new skin(); $skin->assign('config',$config); $skin->assign('showClose','1'); $skin->assign('goto','module.php?act=load&modload=projects&file=projects'); $skin->display('site/projects/noteForm.tpl'); }else{ $skin = new skin(); $skin->assign('config',$config); $skin->assign('showMenu','1'); $skin->assign('goto','module.php?act=load&modload=projects&file=projects'); $skin->assign('incFile','site/projects/noteForm.tpl'); $skin->display('site/index.tpl'); } } break; case'anote': if(!isset($_POST['pid']) OR empty($_POST['note'])){ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&error=1'); }else{ $record = array( "note"=>$db->sqlsafe(nl2br($_POST['note'])), "project_id"=>$db->sqlsafe($_POST['pid']) ); $insert = $db->insert('projects_notes',$record); if($insert){ $skin = new skin(); $skin->assign('config',$config); $skin->assign('showMenu','1'); $skin->assign('goto','module.php?act=load&modload=projects&file=projects'); $skin->assign('incFile','site/projects/noteForm.tpl'); $skin->display('site/index.tpl'); }else{ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&error=1'); } } break; case 'edit': if(empty($_POST['pname']) OR !isset($_POST['pId'])){ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&action=new&error=1'); }else{ $projectID = $db->sqlsafe($_POST['pId']); $record = array( "client_id" =>$db->sqlsafe($_POST['cln']), "type_id" =>$db->sqlsafe($_POST['ptype']), "name" =>$db->sqlsafe($_POST['pname']), "dep_id" =>$db->sqlsafe($_POST['dep_id']), "cost" =>$db->sqlsafe($_POST['cost']), "start_date" =>$db->sqlsafe($_POST['startDate']), "end_date" =>$db->sqlsafe($_POST['endDate']), "status_id" =>$db->sqlsafe($_POST['pStatus']), "description"=>$db->sqlsafe(nl2br($_POST['note'])) ); $insert = $db->update('projects_info',$record,'id = '.$projectID.''); if($insert){ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&done=1'); }else{ header('Location: '.$config['url'].'/module.php?act=load&modload=projects&file=projects&action=editForm&id='.$_POST['pId'].'&error=2'); } } break; default: $geCount = $db->CQuery('select count(id) from projects_info'); $nav = $db->getNav($geCount,$config['perPage']); $getAllProjects =$db->select('select pinfo.id , pinfo.name , cinfo.company , cinfo.id as cId , pinfo.start_date , pinfo.end_date , pinfo.status_id , dep.id as depID, dep.name as depName , dep.fatherId from projects_info as pinfo inner join client_info as cinfo on pinfo.client_id = cinfo.id inner join projects_type as ptype on pinfo.type_id = ptype.id inner join emp_departments as dep on pinfo.dep_id = dep.id order by pinfo.id ASC ',$page,$config['perPage']); $countProjects = count($getAllProjects); for($i=0;$i<$countProjects;$i++){ $getAllProjects[$i]['depName']=getPath('emp_departments',$getAllProjects[$i]['depID'],$getAllProjects[$i]['fatherId']); } $skin = new skin(); $skin->assign('config',$config); $skin->assign('showMenu','1'); $skin->assign('nav',$nav); $skin->assign('projects',$getAllProjects); $skin->assign('incFile','site/projects/projects.tpl'); $skin->display('site/index.tpl'); break; } ?>