Kolektor - popravki baze, dodajanje respondenta v bazo
This commit is contained in:
parent
bdfbfac942
commit
6cfd21975f
@ -665,6 +665,13 @@ elseif ($_GET['t'] == 'evoliTM') {
|
||||
$evoliTM = new SurveyTeamMeter($anketa);
|
||||
$evoliTM->ajax();
|
||||
}
|
||||
elseif ($_GET['t'] == 'kolektor') {
|
||||
$tracking_status = -1;
|
||||
|
||||
// Modul za kolektor
|
||||
$kolektor = new Kolektor();
|
||||
$kolektor->ajax();
|
||||
}
|
||||
/**************** UNKNOWN, NAPREDNI MODULI - END ****************/
|
||||
|
||||
|
||||
|
@ -16,74 +16,90 @@
|
||||
|
||||
class Kolektor {
|
||||
|
||||
|
||||
var $sequence = array();
|
||||
var $clients = array();
|
||||
|
||||
|
||||
function __construct(){
|
||||
global $site_url;
|
||||
global $lang;
|
||||
|
||||
$this->prepareSequence();
|
||||
$this->prepareClients();
|
||||
|
||||
echo '<script src="'.$site_url.'admin/survey/modules/mod_KOLEKTOR/script/script.js" type="text/javascript"></script>';
|
||||
}
|
||||
|
||||
|
||||
private function prepareSequence(){
|
||||
|
||||
// Dobimo sekvenco anket
|
||||
$sql = sisplet_query("SELECT * FROM kolektor_sequence");
|
||||
$row = mysqli_fetch_array($sql);
|
||||
|
||||
$this->sequence = $row;
|
||||
}
|
||||
|
||||
private function prepareClients(){
|
||||
private function getResponses(){
|
||||
global $global_user_id;
|
||||
global $admin_type;
|
||||
|
||||
// Admini vidijo vse kliente
|
||||
$data = array();
|
||||
|
||||
// Admini vidijo vse reposnse
|
||||
if($admin_type == '0'){
|
||||
$sql = sisplet_query("SELECT * FROM kolektor_client");
|
||||
$sql = sisplet_query("SELECT sr.*, s.survey_sequence
|
||||
FROM kolektor_survey s, kolektor_survey_response sr
|
||||
WHERE s.ank_id=sr.ank_id
|
||||
");
|
||||
|
||||
while($row = mysqli_fetch_array($sql)){
|
||||
$this->clients[$row['id']] = $row;
|
||||
$data[$row['id']] = $row;
|
||||
}
|
||||
}
|
||||
else{
|
||||
// Uporabnik vidi samo svoje kliente
|
||||
$sql = sisplet_query("SELECT * FROM kolektor_client WHERE usr_id='".$global_user_id."'");
|
||||
// Uporabnik vidi samo svoje reponse
|
||||
$sql = sisplet_query("SELECT sr.*, s.survey_sequence
|
||||
FROM kolektor_survey s, kolektor_survey_response sr
|
||||
WHERE sr.usr_id='".$global_user_id."' AND s.ank_id=sr.ank_id
|
||||
");
|
||||
|
||||
while($row = mysqli_fetch_array($sql)){
|
||||
$this->clients[$row['id']] = $row;
|
||||
$data[$row['id']] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
private function getSurveys(){
|
||||
|
||||
$data = array();
|
||||
|
||||
$sql = sisplet_query("SELECT ks.*, a.hash, a.naslov, a.akronim FROM kolektor_survey ks, srv_anketa a WHERE a.id=ks.ank_id");
|
||||
|
||||
while($row = mysqli_fetch_array($sql)){
|
||||
$data[$row['id']] = $row;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Osnovni pogled
|
||||
public function display(){
|
||||
global $site_url;
|
||||
global $lang;
|
||||
|
||||
echo 'kolektor';
|
||||
echo 'KOLEKTOR';
|
||||
|
||||
$this->displayClientList();
|
||||
echo '<div id="kolektor_add_response">';
|
||||
$this->displayAddResponse();
|
||||
echo '</div>';
|
||||
|
||||
$this->displayResponses();
|
||||
}
|
||||
|
||||
|
||||
public function displayClientList(){
|
||||
public function displayResponses(){
|
||||
|
||||
echo '<div class="kolektor_clients_holder">';
|
||||
echo '<div class="kolektor_reponses_holder">';
|
||||
|
||||
echo ' <div class="kolektor_clients">';
|
||||
echo ' <div class="kolektor_reponses">';
|
||||
|
||||
// Loop cez vse stranke
|
||||
foreach($this->clients as $client_id => $client){
|
||||
$responses = $this->getResponses();
|
||||
foreach($responses as $reponse_id => $reponse){
|
||||
|
||||
echo ' <div class="kolektor_client">';
|
||||
echo ' <div class="kolektor_response">';
|
||||
|
||||
var_dump($client);
|
||||
var_dump($reponse);
|
||||
|
||||
echo ' </div>';
|
||||
}
|
||||
@ -94,16 +110,142 @@ class Kolektor {
|
||||
}
|
||||
|
||||
// Prikaze formo za dodajanje novega responsa
|
||||
public function displayAddResponse(){
|
||||
public function displayAddResponse($data=array(), $error=array()){
|
||||
|
||||
echo '<form id="kolektor_add_response_form" name="kolektor_add_response_form">';
|
||||
|
||||
|
||||
// Izpisemo napake, ce kaksno polje manjka
|
||||
if(!empty($error)){
|
||||
|
||||
echo '<div class="error_messages">';
|
||||
|
||||
echo 'Prosimo izpolnite vsa obvezna polja:';
|
||||
|
||||
foreach($error as $error_msg){
|
||||
echo '<div class="error_message">'.$error_msg.'</div>';
|
||||
}
|
||||
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
|
||||
// Seznam 6 kolektor anket
|
||||
echo '<div class="kolektor_setting '.(isset($error['ank_id']) ? 'error' : '').'">';
|
||||
$surveys = $this->getSurveys();
|
||||
foreach($surveys as $kolektor_survey){
|
||||
echo ' <input type="radio" id="kolektor_survey_'.$kolektor_survey['survey_sequence'].'" name="kolektor_survey" value="'.$kolektor_survey['ank_id'].'" '.($data['ank_id'] == $kolektor_survey['ank_id'] ? 'checked="checked"' : '').'>';
|
||||
echo ' <label for="kolektor_survey_'.$kolektor_survey['survey_sequence'].'">'.$kolektor_survey['survey_sequence'].' - '.$kolektor_survey['naslov'].'</label>';
|
||||
}
|
||||
echo '</div>';
|
||||
|
||||
|
||||
// ID projekta
|
||||
echo '<div class="kolektor_setting '.(isset($error['respondent_projekt_id']) ? 'error' : '').'">';
|
||||
echo ' ID projekta: <input type="text" name="respondent_projekt_id" value="'.$data['respondent_projekt_id'].'">';
|
||||
echo '</div>';
|
||||
|
||||
|
||||
// Email
|
||||
echo '<div class="kolektor_setting '.(isset($error['respondent_email']) ? 'error' : '').'">';
|
||||
echo ' Email respondenta: <input type="text" name="respondent_email" value="'.$data['respondent_email'].'">';
|
||||
echo '</div>';
|
||||
|
||||
|
||||
// Funkcija respondenta
|
||||
echo '<div class="kolektor_setting '.(isset($error['respondent_funkcija']) ? 'error' : '').'">';
|
||||
|
||||
echo ' Funkcija respondenta v podjetju: ';
|
||||
echo ' <select name="respondent_funkcija">';
|
||||
echo ' <option value="Vodja nabave" '.($data['respondent_funkcija'] == 'Vodja nabave' ? 'selected="selected"' : '').'>Vodja nabave</option>';
|
||||
echo ' <option value="Vodja projekta" '.($data['respondent_funkcija'] == 'Vodja projekta' ? 'selected="selected"' : '').'>Vodja projekta</option>';
|
||||
echo ' <option value="Skrbnik pogodbe" '.($data['respondent_funkcija'] == 'Skrbnik pogodbe' ? 'selected="selected"' : '').'>Skrbnik pogodbe</option>';
|
||||
echo ' <option value="Nadzornik objekta" '.($data['respondent_funkcija'] == 'Nadzornik objekta' ? 'selected="selected"' : '').'>Nadzornik objekta</option>';
|
||||
echo ' <option value="Član inženirskega tima" '.($data['respondent_funkcija'] == 'Član inženirskega tima' ? 'selected="selected"' : '').'>Član inženirskega tima</option>';
|
||||
echo ' </select>';
|
||||
|
||||
echo '</div>';
|
||||
|
||||
|
||||
// Aktivacija na daljavo - samo za anketi 5 in 6
|
||||
if(true){
|
||||
echo '<div class="kolektor_setting '.(isset($error['respondent_remote_activation']) ? 'error' : '').'">';
|
||||
echo ' Aktivacija na daljavo:';
|
||||
echo ' <input type="radio" id="respondent_remote_activation_0" name="respondent_remote_activation" value="0" '.($data['respondent_remote_activation'] == '0' ? 'checked="checked"' : '').'><label for="respondent_remote_activation_0">Ne</label>';
|
||||
echo ' <input type="radio" id="respondent_remote_activation_1" name="respondent_remote_activation" value="1" '.($data['respondent_remote_activation'] == '1' ? 'checked="checked"' : '').'><label for="respondent_remote_activation_1">Da</label>';
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
|
||||
// Sporocilo respondentu
|
||||
echo '<div class="kolektor_setting '.(isset($error['respondent_message']) ? 'error' : '').'">';
|
||||
echo ' Spremno besedilo: <textarea name="respondent_message">'.$data['respondent_message'].'</textarea>';
|
||||
echo '</div>';
|
||||
|
||||
|
||||
// Gumb ustvari
|
||||
echo '<button class="medium blue" type="button" onClick="createKolektorResponse();">Sproži anketo in pošlji email respondentu</button>';
|
||||
|
||||
|
||||
echo '</form>';
|
||||
}
|
||||
|
||||
public function displayResponseDetails(){
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Ajax klici
|
||||
public function ajax(){
|
||||
global $lang;
|
||||
global $site_path;
|
||||
global $global_user_id;
|
||||
|
||||
|
||||
if($_GET['a'] == 'add_repsonse'){
|
||||
|
||||
$response_data['ank_id'] = (isset($_POST['kolektor_survey'])) ? $_POST['kolektor_survey'] : '';
|
||||
$response_data['respondent_email'] = (isset($_POST['respondent_email'])) ? $_POST['respondent_email'] : '';
|
||||
$response_data['respondent_funkcija'] = (isset($_POST['respondent_funkcija'])) ? $_POST['respondent_funkcija'] : '';
|
||||
$response_data['respondent_projekt_id'] = (isset($_POST['respondent_projekt_id'])) ? $_POST['respondent_projekt_id'] : '';
|
||||
$response_data['respondent_remote_activation'] = (isset($_POST['respondent_remote_activation'])) ? $_POST['respondent_remote_activation'] : '';
|
||||
$response_data['respondent_message'] = (isset($_POST['respondent_message'])) ? $_POST['respondent_message'] : '';
|
||||
|
||||
|
||||
// Pohendlamo errorje
|
||||
$error = array();
|
||||
if($response_data['ank_id'] == ''){
|
||||
$error['ank_id'] = 'Izberite anketo.';
|
||||
}
|
||||
if($response_data['respondent_email'] == ''){
|
||||
$error['respondent_email'] = 'Vnesite email respondenta.';
|
||||
}
|
||||
if($response_data['respondent_funkcija'] == ''){
|
||||
$error['respondent_funkcija'] = 'Vnesite funkcijo respondenta.';
|
||||
}
|
||||
if($response_data['respondent_projekt_id'] == ''){
|
||||
$error['respondent_projekt_id'] = 'Vnesite ID projekta oz. krovnega projekta.';
|
||||
}
|
||||
if($response_data['respondent_remote_activation'] == ''){
|
||||
$error['respondent_remote_activation'] = 'Izberite, če gre za aktivacijo na daljavo.';
|
||||
}
|
||||
if($response_data['respondent_message'] == ''){
|
||||
$error['respondent_message'] = 'Vnesite spremno besedilo.';
|
||||
}
|
||||
|
||||
|
||||
// Imamo napake
|
||||
if(!empty($error)){
|
||||
$this->displayAddResponse($response_data, $error);
|
||||
}
|
||||
else{
|
||||
// Dodamo nov response
|
||||
KolektorResponse::addResponse($response_data);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -30,9 +30,11 @@ class KolektorResponse {
|
||||
|
||||
// Dodajanje responsa
|
||||
public static function addResponse($response_data){
|
||||
global $global_user_id;
|
||||
|
||||
|
||||
// Dodaj respondenta v srv_user
|
||||
$respondent_id = 20;
|
||||
|
||||
|
||||
// Poslji email z vabilom na anketo
|
||||
@ -40,20 +42,44 @@ class KolektorResponse {
|
||||
|
||||
// Dodaj respondenta v kolektor bazo
|
||||
$sql = sisplet_query("INSERT INTO kolektor_survey_response
|
||||
(ank_id, usr_id, inser_time, status, kolektor_client_id, respondent_id)
|
||||
(ank_id,
|
||||
usr_id,
|
||||
insert_time,
|
||||
status,
|
||||
respondent_id,
|
||||
respondent_email,
|
||||
respondent_funkcija,
|
||||
respondent_projekt_id,
|
||||
respondent_remote_activation,
|
||||
respondent_message)
|
||||
VALUES
|
||||
('".$response_data['ank_id']."', '".$response_data['usr_id']."', NOW(), '0', '".$response_data['kolektor_client_id']."', '".$response_data['respondent_id']."')
|
||||
('".$response_data['ank_id']."',
|
||||
'".$global_user_id."',
|
||||
NOW(),
|
||||
'0',
|
||||
'".$respondent_id."',
|
||||
'".$response_data['respondent_email']."',
|
||||
'".$response_data['respondent_funkcija']."',
|
||||
'".$response_data['respondent_projekt_id']."',
|
||||
'".$response_data['respondent_remote_activation']."',
|
||||
'".$response_data['respondent_message']."')
|
||||
");
|
||||
if (!$sql){
|
||||
echo mysqli_error($GLOBALS['connect_db']);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
$response_id = mysqli_insert_id($GLOBALS['connect_db']);
|
||||
|
||||
/*if($response = new KolektorResponse($response_id)){
|
||||
if($response = new KolektorResponse($response_id)){
|
||||
echo 'Anketa je bila uspešno sprožena in email je bil uspešno poslan respondentu ('.$response_data['respondent_email'].').';
|
||||
return $response;
|
||||
}
|
||||
else{
|
||||
echo 'Napaka pri dodajanju odgovora!';
|
||||
return false;
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,8 @@
|
||||
|
||||
function createKolektorResponse(){
|
||||
|
||||
var form = $("#kolektor_add_response_form").serializeArray();
|
||||
|
||||
$('#kolektor_add_response').load('ajax.php?t=kolektor&a=add_repsonse', form);
|
||||
|
||||
}
|
@ -9597,22 +9597,11 @@ UPDATE misc SET value='22.06.14' WHERE what="version";
|
||||
INSERT INTO srv_module (module_name, active) VALUES ('kolektor', '0');
|
||||
#UPDATE srv_module SET active='1' WHERE module_name = 'kolektor';
|
||||
|
||||
CREATE TABLE kolektor_sequence(
|
||||
CREATE TABLE kolektor_survey(
|
||||
id INT(11) NOT NULL auto_increment,
|
||||
ank1_id INT(11) NOT NULL DEFAULT '0',
|
||||
ank2_id INT(11) NOT NULL DEFAULT '0',
|
||||
ank3_id INT(11) NOT NULL DEFAULT '0',
|
||||
ank4_id INT(11) NOT NULL DEFAULT '0',
|
||||
ank5_id INT(11) NOT NULL DEFAULT '0',
|
||||
ank6_id INT(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE kolektor_client(
|
||||
id INT(11) NOT NULL auto_increment,
|
||||
usr_id INT(11) NOT NULL DEFAULT 0,
|
||||
insert_time DATETIME(3) NOT NULL,
|
||||
CONSTRAINT fk_kolektor_client_usr_id FOREIGN KEY (usr_id) REFERENCES users (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
ank_id INT(11) NOT NULL DEFAULT '0',
|
||||
survey_sequence ENUM('1','2','3','4','5','6') NOT NULL,
|
||||
CONSTRAINT fk_kolektor_survey_ank_id FOREIGN KEY (ank_id) REFERENCES srv_anketa (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
@ -9622,7 +9611,6 @@ CREATE TABLE kolektor_survey_response(
|
||||
usr_id INT(11) NOT NULL DEFAULT 0,
|
||||
insert_time DATETIME(3) NOT NULL,
|
||||
status ENUM('0','1','2','3','4') NOT NULL DEFAULT '0',
|
||||
kolektor_client_id INT(11) NOT NULL DEFAULT 0,
|
||||
respondent_id INT(11) NOT NULL DEFAULT 0,
|
||||
respondent_email VARCHAR(100) NOT NULL DEFAULT '',
|
||||
respondent_funkcija VARCHAR(100) NOT NULL DEFAULT '',
|
||||
@ -9631,7 +9619,6 @@ CREATE TABLE kolektor_survey_response(
|
||||
respondent_message TEXT NOT NULL DEFAULT '',
|
||||
CONSTRAINT fk_kolektor_survey_response_ank_id FOREIGN KEY (ank_id) REFERENCES srv_anketa (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT fk_kolektor_survey_response_usr_id FOREIGN KEY (usr_id) REFERENCES users (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT fk_kolektor_survey_response_kolektor_client_id FOREIGN KEY (kolektor_client_id) REFERENCES kolektor_client (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT fk_kolektor_survey_response_respondent_id FOREIGN KEY (respondent_id) REFERENCES srv_user (id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
@ -9639,7 +9626,7 @@ CREATE TABLE kolektor_survey_response(
|
||||
CREATE TABLE kolektor_survey_response_alert(
|
||||
kolektor_survey_response_id INT(11) NOT NULL,
|
||||
alert_time DATETIME(3) NOT NULL,
|
||||
status ENUM('0','1','2','3','4') NOT NULL,
|
||||
new_status ENUM('0','1','2','3','4') NOT NULL,
|
||||
CONSTRAINT kolektor_survey_response_alert_kolektor_survey_response_id FOREIGN KEY (kolektor_survey_response_id) REFERENCES kolektor_survey_response (id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user