executeRequest(); class MainControl { const DS_ISCHIA = "062"; //Ischia const DS_VENTIMIGLIA = "063"; //Ventimiglia const DS_TEST = "999"; //Isc (TEST) private $params; //Parametri della richiesta in ingresso private $connection_ip; private $dataSource; private $dt; private $connector; private $cn; function __construct($postvars,$ip) { $this->params = $postvars; $this->connection_ip = $ip; $this->dt = new DateConverter(); $this->connector = new Connector($this->decodeDataSource($this->params["datasource"])); $this->cn = $this->connector->getDatabaseHandler(); } public function executeRequest() { $action = $this->params["action"]; switch ($action) { case "checkUserLoginStatus": $this->checkUserLoginStatus(); break; case "loginWithQrCode": $this->loginWithQrCode(); break; case "loginWithManualCode": $this->loginWithManualCode(); break; case "updateUtIdGoogle": $this->updateUtIdGoogle(); break; case "getNotices": $this->getNotices(); break; case "updateNoticeStatus": $this->updateNoticeStatus(); break; case "getContractInformation": $this->getContractInformation(); break; case "checkContractInformation": $this->checkContractInformation(); break; case "activateDevice": $this->activateDevice(); break; case "getLastLettura": $this->getLastLettura(); break; case "getLetture": $this->getLetture(); break; case "registerNewAutoLettura": $this->registerNewAutoLettura(); break; case "getBolletteDaPagare": $this->getBolletteDaPagare(); break; case "verifyNewUtenzaExist": $this->verifyNewUtenzaExist(); break; case "updateEmail": $this->updateEmail(); break; case "resendActivationEmail": $this->resendActivationEmail(); break; case "removeUtenza": $this->removeUtenza(); break; case "reportError": $this->reportError(); break; case "getContacts": $this->getContacts(); break; case "checkMessaggiDifferiti": $this->checkMessaggiDifferiti(); break; case "checkPdfExist": $this->checkPdfExist(); break; case "logOut": $this->logout(); break; case "test": $this->test(); break; default: $this->exErr(__METHOD__,"Invalid action code: ".$action); } } private function test() { // $query = "SELECT * FROM ANA__UTE where ututent='SANSONE LUIGI'"; // $query = "SELECT * FROM MOV__CAT WHERE CADATFI='2029-12-31' AND CACODIC=2"; // $query = "SELECT * FROM UTAPGOOGLESUB"; // $query = "SELECT iuteid FROM ANA__UTE WHERE UTPOSIZ=19116 AND UTUTENT='SANSONE LUIGI'"; // $query = "SELECT * FROM MOV__LET WHERE LTPOSIZ=19116 ORDER BY LTIDPRO DESC"; // $query = "SELECT * FROM ANA__AZI"; // $query = 'INSERT INTO MOV__MSG (IUTEID,DATAMSG,TESTOMSG,SPEDITOMSG) VALUES(11262,$now(),"Prova di differita3",2)'; // $query = "SELECT * FROM MOV__MSG"; // $query = "SELECT * FROM MOV__LET WHERE LTPOSIZ=107592 AND LTFLAG != 'X' AND LTDATA=(SELECT MAX(LTDATA) FROM MOV__LET WHERE LTPOSIZ=107592) ORDER BY LTIDPRO DESC"; // $query = "SELECT * FROM ACC__LET"; // $query = "SELECT CACORMIN FROM MOV__CAT WHERE CACODIC=2 AND CADATFI>='31122029' AND CADATIN<='31122029'"; // $query = "SELECT * FROM TESTBOLL WHERE blidute=11262 ORDER BY BLDATSC DESC"; // $query = "INSERT INTO MOV__MSG (iuteid, datamsg, testomsg, speditomsg, lettomsg) VALUES ('11262','150220171712','Messaggio di prova di data, inserita come 150220171712!','0','0')"; // $query = "UPDATE UTAPGOOGLE SET UTAPEMAIL='null' WHERE IUTEID=11262"; //~ $result = odbc_exec($this->cn, $query); //~ while ($row = odbc_fetch_array($result)) { //~ $response[] = $row; //~ } // $row = odbc_fetch_array($result); // $sender = new Sender("pippopippo","01-01-2017 11:52"); // $sender->addRecipient("fHFGAF-baU4:APA91bHi7XR3ptG5UI4aw1fWIUs3H2ssXpMDio5IXnXfKTG1eim0fEypx0C5dsPmxoYDTM1N4uP6L6y9BRX6DpkHu5rBVLnPp_GugfPnOaDHh0ZhcY7bl-ii1WCB8wyjFgVuh3j8sJP4"); // $result = $sender->sendMessage(); /* $date = new DateTime("15-02-2017 15:50"); $convert = $date->format("dmYHi"); $response["converted"] = $convert;*/ $params["email"] = "elprobes@gmail.com"; $params["ututent"] = 11262; $params["utposiz"] = 19116; $params["kind"] = "deviceActivationNotice"; $params["datasource"] = 062; $mailer = new Mailer($params); $sent = $mailer->sendNow(); $response["result"] = "success"; $this->throwResponse($response); } private function checkUserLoginStatus() { $response; $user = new User($this->params["appcode"],$this->cn); if ($user->regIuteId == null) { $response["result"] = "notlogged"; } else { $user->fetchBasicUtApGoogleInformation(); $logged = $user->getLoginStatus(); $activeDevice = $user->getUtIdDevice(); if ($activeDevice !== $this->params["UUID"]) { $response["result"] = "notsecure"; } else { $response["result"] = $logged; $response["ututent"] = $user->getUtUtent(); } $utIdGoogle = $user->getUtIdGoogle(); if (empty($utIdGoogle) || $utIdGoogle != $this->params["utidgoogle"]) { $response["needutidgoogle"] = "need"; } } $this->throwResponse($response); } private function updateUtIdGoogle() { $response; $user = new User($this->params["appcode"],$this->cn); $done = $user->updateUtIdGoogle($this->params["utidgoogle"]); if (!$done) { $this->exErr(__METHOD__,"There was an error updating googleToken"); } $response["result"] = "success"; $this->throwResponse($response); } private function loginWithQrCode() { $response; $user = new User($this->params["appcode"],$this->cn); if ($user->exist()) { if ($user->isVerified($this->params["user"])) { if ($user->existInAppTable()) { $user->fetchBasicUtApGoogleInformation(); if ($user->hasEmail()) { if ($user->hasEmailLink()) { $response["result"] = "accountnotactive"; } else { if ($user->getUtIdDevice() !== $this->params["UUID"]) { $response["result"] = "notsecure"; $response["ututent"] = $user->getUtUtent(); } else { $user->setLoginStatus(1); $response["result"] = "success"; $response["ututent"] = $user->getUtUtent(); } $user->fetchSubUsers(); if ($user->getSubUsersCount() > 0) { $subUsers = $user->getSubUsers(); $subuserList; $c = count($subUsers); $i = 0; while ($i<$c) { $subuser["appcode"] = $subUsers[$i]->getAppCode(); $subuser["usercode"] = $subUsers[$i]->getUtPosiz(); $subuser["ututent"] = $subUsers[$i]->getUtUtent(); $subuserList[] = $subuser; $i++; } $response["subuserlist"] = $subuserList; } } } else { $response["result"] = "noemailfound"; } } else if ($user->existInSubAppTable()){ $mainAppCode = $user->getMainAppCodeFromSubTable(); $mainUser = new User($mainAppCode,$this->cn); $mainUser->fetchBasicUtApGoogleInformation(); if ($mainUser->getUtIdDevice() !== $this->params["UUID"]) { $response["result"] = "notsecuresubuser"; } else { $response["result"] = "subuser"; } $response["mainusercode"] = $mainUser->getUtPosiz(); $response["mainappcode"] = $mainUser->getAppCode(); $response["mainututent"] = $mainUser->getUtUtent(); $mainUser->fetchSubUsers(); $subUsers = $mainUser->getSubUsers(); $subuserList; $c = count($subUsers); $i = 0; while ($i<$c) { $subuser["appcode"] = $subUsers[$i]->getAppCode(); $subuser["usercode"] = $subUsers[$i]->getUtPosiz(); $subuser["ututent"] = $subUsers[$i]->getUtUtent(); $subuserList[] = $subuser; $i++; } $response["subuserlist"] = $subuserList; } else { $done = $user->insertIntoUtApGoogleTable($this->dt->convertDateTimeToDb($this->params["datetime"])); if (!$done) { $this->exErr(__METHOD__,"Registration into Google table failed"); } $user->setLoginStatus(1); $user->updateUtIdDevice($this->params["UUID"]); $response["result"] = "noemailfound"; $response["ututent"] = $user->getUtUtent(); } } else { $response["result"] = "notverified"; } } else { $response["result"] = "usernotfound"; } $this->throwResponse($response); } private function loginWithManualCode() { $response; $user = new User($this->params["appcode"],$this->cn); if ($user->exist()) { if ($user->isVerified($this->params["user"])) { if ($user->existInAppTable()) { $user->fetchBasicUtApGoogleInformation(); if ($user->hasEmail()) { if ($user->hasEmailLink()) { $response["result"] = "accountnotactive"; } else { if ($user->getUtIdDevice() !== $this->params["UUID"]) { $response["result"] = "notsecure"; $response["ututent"] = $user->getUtUtent(); } else { $user->setLoginStatus(1); $response["result"] = "success"; $response["ututent"] = $user->getUtUtent(); } $user->fetchSubUsers(); if ($user->getSubUsersCount() > 0) { $subUsers = $user->getSubUsers(); $subuserList; $c = count($subUsers); $i = 0; while ($i<$c) { $subuser["appcode"] = $subUsers[$i]->getAppCode(); $subuser["usercode"] = $subUsers[$i]->getUtPosiz(); $subuser["ututent"] = $subUsers[$i]->getUtUtent(); $subuserList[] = $subuser; $i++; } $response["subuserlist"] = $subuserList; } } } else { $response["result"] = "noemailfound"; } } else if ($user->existInSubAppTable()){ $mainAppCode = $user->getMainAppCodeFromSubTable(); $mainUser = new User($mainAppCode,$this->cn); $mainUser->fetchBasicUtApGoogleInformation(); if ($mainUser->getUtIdDevice() !== $this->params["UUID"]) { $response["result"] = "notsecuresubuser"; } else { $response["result"] = "subuser"; } $response["mainusercode"] = $mainUser->getUtPosiz(); $response["mainappcode"] = $mainUser->getAppCode(); $response["mainututent"] = $mainUser->getUtUtent(); $mainUser->fetchSubUsers(); $subUsers = $mainUser->getSubUsers(); $subuserList; $c = count($subUsers); $i = 0; while ($i<$c) { $subuser["appcode"] = $subUsers[$i]->getAppCode(); $subuser["usercode"] = $subUsers[$i]->getUtPosiz(); $subuser["ututent"] = $subUsers[$i]->getUtUtent(); $subuserList[] = $subuser; $i++; } $response["subuserlist"] = $subuserList; } else { $done = $user->insertIntoUtApGoogleTable($this->dt->convertDateTimeToDb($this->params["datetime"])); if (!$done) { $this->exErr(__METHOD__,"Registration into Google table failed"); } $user->setLoginStatus(1); $user->updateUtIdDevice($this->params["UUID"]); $response["result"] = "noemailfound"; $response["ututent"] = $user->getUtUtent(); } } else { $response["result"] = "notverified"; } } else { $response["result"] = "usernotfound"; } $this->throwResponse($response); } private function getNotices() { $response; Logger::clearLogFile(); Logger::addLog("Start", "Get notices start"); $user = new User($this->params["appcode"],$this->cn); $user->fetchNotices(); $notices = $user->getNotices(); $i = 0; $c = count($notices); if ($c < 1) { $response["result"] = "nonotices"; } else { $noticeList; while ($i < $c) { Logger::addLog("Start", "Get notices ".$i.": MsgIdPro - ".$notices[$i]->getMsgIdPro()); Logger::addLog("Start", "Get notices ".$i.": TestoMsg - ".$notices[$i]->getTestoMsg()); $notice["msgidpro"] = $notices[$i]->getMsgIdPro(); $notice["datamsg"] = $this->dt->convertDateTimeToUser($notices[$i]->getDataMsg()); $notice["testomsg"] = $notices[$i]->getTestoMsg(); $notice["speditomsg"] = $notices[$i]->getSpeditoMsg(); $notice["lettomsg"] = $notices[$i]->getLettoMsg(); $notice["contattomsg"] = $notices[$i]->getDecodedContattoMsg(); $noticeList[$i] = $notice; $i++; } Logger::addLog("Finish", "Get notices count: ".$i); $response["noticelist"] = $noticeList; $response["result"] = "success"; } $this->throwResponse($response); } private function updateNoticeStatus() { $response; $i = 0; while ($i < $this->params["noticecount"]) { $query = "UPDATE MOV__MSG SET LETTOMSG=1 WHERE MSGIDPRO=".$this->params["notice".$i]; odbc_exec($this->cn,$query); $i++; } $response["result"] = "success"; $this->throwResponse($response); } private function getContractInformation() { $response; $mainUser; $email; $user = new User($this->params["appcode"],$this->cn); $user->decodeFields(); if ($this->params["mainappcode"] != $this->params["appcode"]) { $mainUser = new User($this->params["mainappcode"],$this->cn); $mainUser->fetchBasicUtApGoogleInformation(); $email = $mainUser->getUtApEmail(); } else { $user->fetchBasicUtApGoogleInformation(); $email = $user->getUtApEmail(); } if (!empty($user->getBirthdate())) { $response["birthdate"] = $this->dt->convertDateToUser($user->getBirthdate()); } else { $response["birthdate"] = "N/A"; } $response["birthcity"] = $user->getBirthCity(); $response["partitaiva"] = $user->getPartitaIva(); $response["codicefiscale"] = $user->getFiscalCode(); $response["ubicazionefornitura"] = $user->getUbicazioneFornitura(); $response["indirizzofornitura"] = $user->getIndirizzoFornitura(); $response["civicofornitura"] = $user->getCivicoFornitura(); $response["tariffa"] = $user->getTariffa(); $response["numerocomponenti"] = $user->getNumeroComponenti(); $response["fognaallontanamento"] = $user->getFognaAllontanamento(); $response["fognadepurazione"] = $user->getFognaDepurazione(); $response["minimocontrattuale"] = $user->getMinimoContrattuale(); $response["unitaimmobiliari"] = $user->getUnitaImmobiliari(); $response["matricolamisuratore"] = $user->getMatricolaMisuratore(); $response["tipouten"] = $user->getTipoUten(); $response["email"] = $email; $query = "SELECT APCO01,APCO04 FROM ANA__AZI"; $result = odbc_exec($this->cn,$query); $row = odbc_fetch_array($result); $response["commercialphone"] = $row["APCO01"]; $response["commercialemail"] = $row["APCO04"]; $response["result"] = "success"; $this->throwResponse($response); } private function checkContractInformation() { $response; $mainUser; $email; $user = new User($this->params["appcode"],$this->cn); $user->decodeFields(); if ($this->params["mainappcode"] != $this->params["appcode"]) { $mainUser = new User($this->params["mainappcode"],$this->cn); $mainUser->fetchBasicUtApGoogleInformation(); $email = $mainUser->getUtApEmail(); } else { $user->fetchBasicUtApGoogleInformation(); $email = $user->getUtApEmail(); } if (!empty($user->getBirthdate())) { $response["birthdate"] = $this->dt->convertDateToUser($user->getBirthdate()); } else { $response["birthdate"] = "N/A"; } $response["birthcity"] = $user->getBirthCity(); $response["partitaiva"] = $user->getPartitaIva(); $response["codicefiscale"] = $user->getFiscalCode(); $response["ubicazionefornitura"] = $user->getUbicazioneFornitura(); $response["indirizzofornitura"] = $user->getIndirizzoFornitura(); $response["civicofornitura"] = $user->getCivicoFornitura(); $response["tariffa"] = $user->getTariffa(); $response["numerocomponenti"] = $user->getNumeroComponenti(); $response["fognaallontanamento"] = $user->getFognaAllontanamento(); $response["fognadepurazione"] = $user->getFognaDepurazione(); $response["minimocontrattuale"] = $user->getMinimoContrattuale(); $response["unitaimmobiliari"] = $user->getUnitaImmobiliari(); $response["matricolamisuratore"] = $user->getMatricolaMisuratore(); $response["tipouten"] = $user->getTipoUten(); $response["email"] = $email; //$query = "SELECT APCO01,APCO04 FROM ANA__AZI"; //$result = odbc_exec($this->cn,$query); //$row = odbc_fetch_array($result); //$response["commercialphone"] = $row["APCO01"]; //$response["commercialemail"] = $row["APCO04"]; $response["result"] = "success"; $this->throwResponse($response); } private function activateDevice() { $response; $user = new User($this->params["appcode"],$this->cn); $user->fetchBasicUtApGoogleInformation(); $done = $user->updateUtIdDevice($this->params["UUID"]); if (!$done) { $this->exErr(__METHOD__,"Device activation failed"); } $user->setLoginStatus(1); $pars["email"] = $user->getUtApEmail(); $pars["ututent"] = $user->getUtUtent(); $pars["utposiz"] = $user->getUtPosiz(); $pars["kind"] = "deviceActivationNotice"; $mailer = new Mailer($pars); $sent = $mailer->sendNow(); if (!$sent) { $this->exErr(__METHOD__,"Device activation mail send failed"); } $response["result"] = "success"; $this->throwResponse($response); } private function getLastLettura() { $response; $user = new User($this->params["appcode"],$this->cn); $user->fetchLastLettura(); $lettura = $user->getLastLettura(); $dateTimeLastLettura = $lettura->getDataLettura().$lettura->getOrarioLettura(); $response["datalastlettura"] = $this->dt->convertDateTimeToUser($dateTimeLastLettura); $response["lastlettura"] = $lettura->getValoreLettura(); $response["matricolamisuratore"] = $lettura->getMatricolaMisuratore(); $response["codiceoperatore"] = $lettura->getCodiceOperatore(); $response["flaglettura"] = $lettura->getFlagLettura(); $response["result"] = "success"; $this->throwResponse($response); } private function getLetture() { //TODO gestire casi in cui non ci sono ne caufall ne cautent ne orario $response; $user = new User($this->params["appcode"],$this->cn); $user->fetchLetture(); $letture = $user->getLetture(); $c = min(count($letture),12); //Logger::clearLogFile(); if ($c < 1) { $response["result"] = "noletture"; } else { $i = 0; while ($i<$c) { $lettura = $letture[$i]; if (!empty($lettura->getCausaleUtente())) { $query = "SELECT * FROM TIPO WHERE codice=".$lettura->getCausaleUtente(); $result = odbc_exec($this->cn,$query); $row = odbc_fetch_array($result); $descrizioneCausale = $row["descri"]; $response["letture"][$i]["cautentdescri"] = $descrizioneCausale; } else { $response["letture"][$i]["cautentdescri"] = "nocausale"; } $dateTimeLettura = $lettura->getDataLettura().$lettura->getOrarioLettura(); //~ Logger::addLog("Data",$lettura->getDataLettura()); //~ Logger::addLog("CauFall",$lettura->getCausaleFallimento()); $response["letture"][$i]["datalettura"] = $this->dt->convertDateTimeToUser($dateTimeLettura); $response["letture"][$i]["matricolamisuratore"] = $lettura->getMatricolaMisuratore(); $response["letture"][$i]["flaglettura"] = $lettura->getFlagLettura(); $response["letture"][$i]["valore"] = $lettura->getValoreLettura(); $i++; } $response["result"] = "success"; } $this->throwResponse($response); } private function registerNewAutoLettura() { $response; $user = new User($this->params["appcode"],$this->cn); $user->fetchLastLettura(); $ultimaLettura = $user->getLastLettura(); $valoreUltimaLettura = $ultimaLettura->getValoreLettura(); $user->fetchCodiceOperatoreAutolettura(); // procedura Calcamedio per coerenza autolettura // tabella TMP__LET ricerca per LTLETMINPRE (iuteid) e LTLETMAXPRE (utposiz); // valori restituiti sono LTULTLET (ConsumoAnnoCa), LTNUMPRESA (Consumo3Anni), LTCODOPE (n° anni); //$curdat = date("Y"); ////echo $user->getUtnCond()." - ".$curdat." - "; //$queryCa = 'CalCamedio('.$this->params["appcode"].','.$user->getUtPosiz().','.$user->getUtnCond().','.$curdat.',1);'; //$result = odbc_exec($this->cn,$queryCa); //$queryCa = "SELECT * FROM TMP__LET WHERE LTLETMINPRE=".$this->params["appcode"]." AND LTLETMAXPRE=".$user->getUtPosiz(); //$result = odbc_exec($this->cn,$queryCa); //$rowCa = odbc_fetch_array($result); //$consumoAnno = $rowCa["LTULTLET"]; //$consumo3anni = $rowCa["LTNUMPRESA"]; //$numeroAnni = $rowCa["LTCODOPE"]; //$dtUltLet = $dt->convertDateToUser($ultimaLettura->getDataLettura()); //$dataUltLet = new DateTime($dtUltLet); //$oggi = new DateTime("now"); //$differenza = $oggi->diff($dataUltLet)->days; //$mediaCons = $consumoAnno/300*$differenza*1.3; //$consumoRilevato = $this->params["newlettura"] - $valoreUltimaLettura; //echo "Data ultlet: ".$dataUltLet->format("d-m-Y"); //echo "data oggi: ".$oggi->format("d-m-Y"); //echo "Differenza giorni: ".$differenza; //echo "Mediacons: ".$mediaCons; $photoDateTime = $this->params["photodatetime"]; if ($this->params["newlettura"] < $valoreUltimaLettura) { $doner = $user->registerNewAutoLettura($this->params["newlettura"],$this->params["matricolamisuratore"],0,null,null,$photoDateTime); if (!$doner) { $this->exErr(__METHOD__,"Impossibile registrare la nuova lettura"); } $response["result"] = "wronglettura"; } //else if ((($this->params["newlettura"] - $valoreUltimaLettura) > $mediaCons) && ($mediaCons > 0)) { //$doner = $user->registerNewAutoLettura($this->params["newlettura"],$this->params["matricolamisuratore"],1,$consumoRilevato,$mediaCons); //if (!$doner) { $this->exErr(__METHOD__,"Impossibile registrare la nuova lettura"); } //$response["result"] = "letturafuorimedia"; //} else { $doner = $user->registerNewAutoLettura($this->params["newlettura"],$this->params["matricolamisuratore"],2,null,null,$photoDateTime); if (!$doner) { $this->exErr(__METHOD__,"Impossibile registrare la nuova lettura"); } $response["result"] = "success"; } $this->throwResponse($response); } private function getBolletteDaPagare() { $response; $user = new User($this->params["appcode"],$this->cn); $user->fetchBollette(); $bollette = $user->getBollette(); if (empty($bollette)) { $response["result"] = "nobollette"; } else { $listaBollette; $i=0; $c=count($bollette); while ($i < $c) { $bolletta["blidpro"] = $bollette[$i]->getBlIdPro(); $bolletta["blidute"] = $bollette[$i]->getBlIuteId(); $bolletta["numerofattura"] = $bollette[$i]->getNumeroFattura(); $bolletta["periodo"] = $bollette[$i]->getDecodedPeriodo(); $bolletta["anno"] = $bollette[$i]->getAnno(); $bolletta["dataemissione"] = $this->dt->convertDateToUser($bollette[$i]->getDataEmissione()); $bolletta["datascadenza"] = $this->dt->convertDateToUser($bollette[$i]->getDataScadenza()); $bolletta["totalebolletta"] = $bollette[$i]->getTotaleBolletta(); $bolletta["acredito"] = $bollette[$i]->getAcredito(); $bolletta["pagato"] = $bollette[$i]->getPagato(); $bolletta["tipopagamento"] = $bollette[$i]->getTipoPagamento(); $listaBollette[$i] = $bolletta; $i++; } $response["listabollette"] = $listaBollette; $response["result"] = "success"; } $this->throwResponse($response); } private function verifyNewUtenzaExist() { $response; $user = new User($this->params["appcode"],$this->cn); $existUtenza = $user->existUtenza($this->params["veryusercode"],$this->params["veryappcode"]); if ($existUtenza) { $utenza = new User($this->params["veryappcode"],$this->cn); if ($utenza->existInAppTable()) { $response["result"] = "existasmainuser"; } else { $done = $user->addUtenza($this->params["veryappcode"],$this->params["veryusercode"]); if (!$done) { $this->exErr(__METHOD__,"Impossibile registrare la nuova utenza"); } $response["ututent"] = $utenza->getUtUtent(); $response["result"] = "success"; } } else { $response["result"] = "noexist"; } $this->throwResponse($response); } private function updateEmail() { $response; $user = new User($this->params["appcode"],$this->cn); $done = $user->updateEmail($this->params["email"]); if (!$done) { $this->exErr(__METHOD__,"Impossibile registrare la nuova email"); } $user->fetchBasicUtApGoogleInformation(); $params["email"] = $user->getUtApEmail(); $params["ututent"] = $user->getUtUtent(); $params["utposiz"] = $user->getUtPosiz(); $params["kind"] = "activationMail"; $params["linkcode"] = $user->getUtApEmailLink(); $params["datasource"] = $this->params["datasource"]; $mailer = new Mailer($params); $sent = $mailer->sendNow(); $mailer->sendCopy(); if (!$sent) { $this->exErr(__METHOD__,"Impossibile inviare l'email di conferma registrazione"); } $response["linkcode"] = $user->getUtApEmailLink(); $response["result"] = "success"; $this->throwResponse($response); } private function resendActivationEmail() { $response; $user = new User($this->params["appcode"],$this->cn); $user->fetchBasicUtApGoogleInformation(); $params["email"] = $user->getUtApEmail(); $params["ututent"] = $user->getUtUtent(); $params["utposiz"] = $user->getUtPosiz(); $params["kind"] = "activationMail"; $params["linkcode"] = $user->getUtApEmailLink(); $params["datasource"] = $this->params["datasource"]; $mailer = new Mailer($params); $sent = $mailer->sendNow(); $mailer->sendCopy(); if (!$sent) { $this->exErr(__METHOD__,"Si è verificato un errore nel reinvio della mail"); } $response["result"] = "success"; $this->throwResponse($response); } private function removeUtenza() { $response; $user = new User($this->params["appcode"],$this->cn); $done = $user->removeSubUser($this->params["remappcode"],$this->params["remusercode"]); if (!$done) { $this->exErr(__METHOD__,"Impossibile rimuovere l'utenza selezionata (".$this->params["remusercode"].")"); } $response["result"] = "success"; $this->throwResponse($response); } private function reportError() { $response; $user = new User($this->params["appcode"],$this->cn); $parms["email"] = "proweb.mobile@proximaonline.it"; $parms["kind"] = "reportError"; $parms["ututent"] = $user->getUtUtent(); $parms["iuteid"] = $this->params["appcode"]; $parms["utposiz"] = $this->params["userid"]; $parms["errorreport"] = $this->params["report"]; $mailer = new Mailer($parms); $sent = $mailer->sendNow(); $mailer->sendCopy("elprobes@gmail.com"); if (!$sent) { $this->exErr(__METHOD__,"Si è verificato un errore nell'invio della mail"); } $response["result"] = "success"; $this->throwResponse($response); } private function getContacts() { $response; $user = new User($this->params["appcode"],$this->cn); $query = "SELECT APCO01,APCO02,APCO03,APCO04,APCO05,APCO06,APCONVE FROM ANA__AZI"; $result = odbc_exec($this->cn,$query); $row = odbc_fetch_array($result); $response["commercialephone"] = $row["APCO01"]; $response["commercialemail"] = $row["APCO04"]; $response["tecnicophone"] = $row["APCO02"]; $response["tecnicomail"] = $row["APCO05"]; $response["amministrativophone"] = $row["APCO03"]; $response["amministrativomail"] = $row["APCO06"]; $response["numeroverde"] = $row["APCONVE"]; $response["result"] = "success"; $this->throwResponse($response); } private function checkMessaggiDifferiti() { $response; $sender; $user = new User($this->params["appcode"],$this->cn); $user->fetchBasicUtApGoogleInformation(); $user->fetchMessaggiDifferiti(); $cMsg = $user->getMessaggiDifferitiCount(); if ($cMsg>0) { $messaggi = $user->getMessaggiDifferiti(); $i = 0; while ($i<$cMsg) { $messaggio = $messaggi[$i]; $sender = new Sender($messaggio->getTestoMsg(),$this->params["datetime"]); $sender->addRecipient($user->getUtIdGoogle()); $sender->sendMessage(); $messaggio->setSpeditoMsg(1); $i++; } } $user->fetchSubUsers(); $cSubs = $user->getSubUsersCount(); if ($cSubs > 0) { $subUsers = $user->getSubUsers(); $i = 0; while ($i<$cSubs) { $subUser = $subUsers[$i]; $subUser->fetchMessaggiDifferiti(); $cMsgSub = $subUser->getMessaggiDifferitiCount(); if ($cMsgSub>0) { $messaggi = $subUser->getMessaggiDifferiti(); $d = 0; while ($d < $cMsgSub) { $messaggio = $messaggi[$d]; $sender = new Sender($messaggio->getTestoMsg(),$this->params["datetime"]); $sender->addRecipient($user->getUtIdGoogle()); $sender->sendMessage(); $messaggio->setSpeditoMsg(1); $d++; } } $i++; } } $response["result"] = "success"; $this->throwResponse($response); } private function checkPdfExist() { $response; $ch = curl_init($this->params["pdfurl"]); curl_setopt($ch, CURLOPT_NOBODY, true); curl_exec($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $status; if($code == 200){ $status = "exist"; } else { $status = "notexist"; } curl_close($ch); $response["result"] = $status; $response["pdfurl"] = $this->params["pdfurl"]; $response["idbolletta"] = $this->params["idbolletta"]; $this->throwResponse($response); } private function logout() { $response; $user = new User($this->params["appcode"],$this->cn); $user->setLoginStatus(0); $response["result"] = "success"; $this->throwResponse($response); } /* * * name: decodeDataSource() * @param $dataSource - Codice numerico database (es. 001) * @return $decodedDataSource - Stringa database decodificata * */ private function decodeDataSource($dataSource) { $decodedDataSource; switch($dataSource) { case self::DS_ISCHIA: $decodedDataSource = "Ischia"; break; case self::DS_VENTIMIGLIA: $decodedDataSource = "Isc"; break; case self::DS_TEST: $decodedDataSource = "Isc"; break; default: $this->exErr(__METHOD__,"Invalid datasource code: ".$dataSource); } return $decodedDataSource; } /* * * name: throwResponse() Lancio della risposta al client * @param $response $response = array contenente la risposta relativa alla richiesta effettuata * @return void * */ private function throwResponse($response) { $this->connector->closeConnection(); echo json_encode($response); exit; } /* * * name: exErr() Lancio dell'errore all'utente * @param $method,$errmsg $method = Classe e funzione che hanno generato l'errore, $errmsg = messaggio di errore specifico * @return $response Array di risposta all'utente con le specifiche dell'errore in formato JSON * */ private function exErr($method,$errmsg) { $this->connector->closeConnection(); $response["result"] = "error"; $response["method"] = $method; $response["errmsg"] = $errmsg; echo json_encode($response); exit; } } ?>