executeRequest(); class ExpressControl { const DS_ISCHIA = "062"; //Ischia const DS_VENTIMIGLIA = "063"; //Ventimiglia const DS_TEST = "999"; //Isc (TEST) const PRIVATE_UPDATE_VERSION = "10"; 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 ExpressConnector("Ischia"); $this->cn = $this->connector->getDatabaseHandler(); } public function executeRequest() { $action = $this->params["action"]; switch ($action) { case "test": $this->test(); break; case "loginOperatore": $this->loginOperatore(); break; case "logoutOperatore": $this->logoutOperatore(); break; case "updateOpIdGoogle": $this->updateOpIdGoogle(); break; case "reportError": $this->reportError(); break; case "checkPrivateVersion": $this->checkPrivateVersion(); break; case "searchUtenza": $this->searchUtenza(); break; case "getUtenza": $this->getUtenza(); break; case "synchronizeSessioneMisuratore": $this->synchronizeSessioneMisuratore(); break; case "assegnaGiroProgressivo": $this->assegnaGiroProgressivo(); break; case "localizzaUtenza": $this->localizzaUtenza(); break; default: Responder::exErr(__METHOD__,"Invalid action code: ".$action,$this->connector); } } private function test() { $response; $utenza = new Utenza($this->params["iuteid"],$this->params["utposiz"],$this->cn); $response["anauterawdata"] = $utenza->anaUteRawData; $response["categoria"] = $utenza->decodedTariffa; $response["rawdata"] = $utenza->misuratore->rawData; $response["accessibile"] = $utenza->misuratore->accessibile; $response["tipo"] = $utenza->misuratore->tipo; $response["descrizionetipo"] = $utenza->misuratore->descrizioneTipo; $response["telefonofisso"] = $utenza->telefonofisso; $response["cellulare"] = $utenza->cellulare; Responder::throwResponse($response,$this->connector); } private function loginOperatore() { $response; $operatore; if (!Operatore::existOperatore($this->params["codiceoperatore"],$this->cn)) { $response["result"] = "notfound"; } else { $operatore = new Operatore($this->params["codiceoperatore"],$this->cn); if ($operatore->getPassword() != $this->params["password"]) { $response["result"] = "wrongpassword"; } else { $operatore->setLogged(1); $response["result"] = "success"; $response["codiceoperatore"] = $operatore->getCodice(); $response["password"] = $operatore->getPassword(); $response["descrizione"] = $operatore->getDescrizione(); $response["opidgoogle"] = $operatore->getOpIdGoogle(); $response["isactive"] = $operatore->getLogged(); } } Responder::throwResponse($response,$this->connector); } private function logoutOperatore() { $response; $operatore = new Operatore($this->params["codiceoperatore"],$this->cn); $operatore->setLogged(0); $response["result"] = "success"; Responder::throwResponse($response,$this->connector); } private function checkPrivateVersion() { $response; $response["result"] = "success"; $response["version"] = self::PRIVATE_UPDATE_VERSION; Responder::throwResponse($response,$this->connector); } private function searchUtenza() { $response; $utenzeByPosiz; $utenzeByMisuratore; if (is_numeric($this->params["query"])) { $query = 'SELECT iuteid AS idute FROM ANA__UTE where UTPOSIZ='.$this->params["query"].' AND UTDATFI > $now() ORDER BY iuteid DESC'; $result = odbc_exec($this->cn,$query); $i = 0; while ($row = odbc_fetch_array($result)) { $utenzabyposiz = new Utenza($row["idute"],null,$this->cn); $utenzeByPosiz[$i]["utposiz"] = $utenzabyposiz->utposiz; $utenzeByPosiz[$i]["iuteid"] = $utenzabyposiz->iuteid; $utenzeByPosiz[$i]["ututent"] = $utenzabyposiz->ututent; $utenzeByPosiz[$i]["matricolamisuratore"] = $utenzabyposiz->misuratore->cnMatCo; $utenzeByPosiz[$i]["statomisuratore"] = $utenzabyposiz->misuratore->cnFlag; $utenzeByPosiz[$i]["sostituzione"] = (empty($utenzabyposiz->nuovoMisuratore)?"nonprevista":"si"); $utenzeByPosiz[$i]["address"] = $utenzabyposiz->decodedUt_Sito.", ".$utenzabyposiz->utsitci; $utenzeByPosiz[$i]["byposiz"] = true; $utenzeByPosiz[$i]["query"] = $this->params["query"]; $i++; } if (!empty($utenzeByPosiz)) { $response["utenzebyposiz"] = $utenzeByPosiz; } $response["utenzebyposizcount"] = $i; } else { $response["utenzebyposizcount"] = 0; } $safeQuery = "%".$this->params["query"]."%"; //~ $safeQuery = $this->params["query"]; $query = 'SELECT CNPOSIZ FROM MOV__CON where CNMATCO LIKE "'.$safeQuery.'" AND CNFLAG != "S"'; $result = odbc_exec($this->cn, $query); $c = 0; while ($row = odbc_fetch_array($result)) { $guery = 'SELECT iuteid AS idute FROM ANA__UTE where UTPOSIZ='.$row["CNPOSIZ"].' AND UTDATFI > $now() ORDER BY iuteid DESC'; $besult = odbc_exec($this->cn, $guery); while ($bow = odbc_fetch_array($besult)) { $utenzabymisuratore = new Utenza($bow["idute"],null,$this->cn); if (strpos($utenzabymisuratore->misuratore->cnMatCo,$this->params["query"]) !== false) { $utenzeByMisuratore[$c]["utposiz"] = $utenzabymisuratore->utposiz; $utenzeByMisuratore[$c]["iuteid"] = $utenzabymisuratore->iuteid; $utenzeByMisuratore[$c]["ututent"] = $utenzabymisuratore->ututent; $utenzeByMisuratore[$c]["matricolamisuratore"] = $utenzabymisuratore->misuratore->cnMatCo; $utenzeByMisuratore[$c]["statomisuratore"] = $utenzabymisuratore->misuratore->cnFlag; $utenzeByMisuratore[$c]["sostituzione"] = (empty($utenzabymisuratore->nuovoMisuratore)?"nonprevista":"si"); $utenzeByMisuratore[$c]["address"] = $utenzabymisuratore->decodedUt_Sito.", ".$utenzabymisuratore->utsitci; $utenzeByMisuratore[$c]["byposiz"] = false; $utenzeByMisuratore[$c]["query"] = $this->params["query"]; $c++; } } } if (!empty($utenzeByMisuratore)) { $response["utenzebymisuratore"] = $utenzeByMisuratore; } $response["utenzebymisuratorecount"] = $c; $response["result"] = "success"; Responder::throwResponse($response,$this->connector); } private function getUtenza() { $response; $utenza = new Utenza($this->params["iuteid"],$this->params["utposiz"],$this->cn); $response["utposiz"] = $utenza->utposiz; $response["iuteid"] = $utenza->iuteid; $response["numerogiro"] = $utenza->utgiro; $response["progressivo"] = number_format($utenza->utprog,2); $response["ragionesociale"] = $utenza->ututent; $response["indirizzo"] = $utenza->decodedUt_Sito. ", ".$utenza->utsitci; $response["categoria"] = $utenza->decodedTariffa; $response["numerocomponenti"] = $utenza->utnumcofa; $response["matricolamisuratore"] = $utenza->misuratore->cnMatCo; $response["statomisuratore"] = $utenza->misuratore->cnFlag; $response["accessibilita"] = $utenza->misuratore->accessibile; $response["calibro"] = $utenza->misuratore->calibro; $response["sfere"] = $utenza->misuratore->cnSfere; $response["tipo"] = $utenza->misuratore->tipo; $response["descrizionetipo"] = $utenza->misuratore->descrizioneTipo; $response["noteletturista"] = $utenza->noteletturista; $response["noteubicazione"] = $utenza->noteubicazione; if (empty($utenza->nuovoMisuratore)) { $response["sostituzione"] = "nonprevista"; } else { $response["sostituzione"] = "si"; } if ($this->params["scope"] != "nuovoAllaccio") { $response["datetimeultimalettura"] = $this->dt->convertDateTimeToUser($utenza->datetimeUltimaLettura); $response["dataultimalettura"] = $utenza->dataUltimaLettura; $response["orarioultimalettura"] = $utenza->orarioUltimaLettura; $response["valoreultimalettura"] = $utenza->valoreUltimaLettura; } $response["telefonofisso"] = $utenza->telefonofisso; $response["cellulare"] = $utenza->cellulare; if ($this->params["scope"] == "sostituzione") { $response["matricolanuovomisuratore"] = $utenza->nuovoMisuratore->cnMatCo; $response["accessibilitanuovomisuratore"] = $utenza->nuovoMisuratore->accessibile; $response["calibronuovomisuratore"] = $utenza->nuovoMisuratore->calibro; $response["sferenuovomisuratore"] = $utenza->nuovoMisuratore->cnSfere; $response["tiponuovomisuratore"] = $utenza->nuovoMisuratore->tipo; $response["descrizionetiponuovomisuratore"] = $utenza->nuovoMisuratore->descrizioneTipo; } $query = "SELECT * FROM CNMOVCAU WHERE CNMOBEXPRESS='S' ORDER BY CNDESCAU ASC"; $result = odbc_exec($this->cn, $query); $i = 0; while ($row = odbc_fetch_array($result)) { $response["causali"][$i]["codicecausale"] = $row["CNCODCAU"]; $response["causali"][$i]["descrizione"] = $row["CNDESCAU"]; $response["causali"][$i]["cnevento01"] = $row["CNEVENTO01"]; $response["causali"][$i]["cnevento02"] = $row["CNEVENTO02"]; $response["causali"][$i]["cnevento03"] = $row["CNEVENTO03"]; $response["causali"][$i]["cnevento04"] = $row["CNEVENTO04"]; $response["causali"][$i]["cnevento05"] = null; $response["causali"][$i]["scrivicausalemisuratore"] = $row["CNSCRIVICM"]; $response["causali"][$i]["scartalettura"] = $row["CNSCARTALE"]; $response["causali"][$i]["cnmobexpresstent"] = $row["CNMOBEXPRESSTENT"]; $i++; } $query = "SELECT * FROM FABBRICA"; $result = odbc_exec($this->cn, $query); $tipimisuratore; $i = 0; while ($row = odbc_fetch_array($result)) { $tipimisuratore[$i]["codice"] = $row["Codice"]; $tipimisuratore[$i]["descrizione"] = $row["Descri"]; $i++; } $response["tipimisuratore"] = $tipimisuratore; $query = "SELECT * FROM Eventi WHERE DESCPIOMBI='S'"; $result = odbc_exec($this->cn, $query); $piombi; $i = 0; while ($row = odbc_fetch_array($result)) { $piombi[$i]["codice"] = $row["Codice"]; $piombi[$i]["descrizione"] = $row["Descri"]; $i++; } $response["piombi"] = $piombi; $response["result"] = "success"; Responder::throwResponse($response,$this->connector); } private function synchronizeSessioneMisuratore() { $response; $utenza = new Utenza($this->params["iuteid"],$this->params["utposiz"],$this->cn); $flagLettura; $causaleLettura; $flagLetturaNuovoMisuratore; $causaleLetturaNuovoMisuratore; $datetimeLettura; $dataLettura; $orarioLettura; if ($this->params["scope"] == "sostituzione") { $datetimeLettura = $this->dt->convertDateTimeToDb($this->params["datetimeletturafinale"]); $dataLettura = substr($datetimeLettura,0,8); $orarioLettura = substr($datetimeLettura,8,11); $datetimeLetturaNuovoMisuratore = $this->dt->convertDateTimeToDb($this->params["datetimeletturainiziale"]); $dataLetturaNuovoMisuratore = substr($datetimeLetturaNuovoMisuratore,0,8); $orarioLetturaNuovoMisuratore = substr($datetimeLetturaNuovoMisuratore,8,11); } else { $datetimeLettura = $this->dt->convertDateTimeToDb($this->params["datetimelettura"]); $dataLettura = substr($datetimeLettura,0,8); $orarioLettura = substr($datetimeLettura,8,11); } $query; if ($this->params["scope"] == "nuovoAllaccio") { $query = "UPDATE MOV__CON set CNPRESA=".$this->params["accessibilita"].",CNSFERE=".$this->params["sfere"].", CNCALIB=".$this->params["calibro"].", CNCODPR=".$this->params["tipo"].", CNFLAG='A', CNDATIN='".$dataLettura."',CNDATFI='31122029' WHERE CNMATCO='".$this->params["matricolamisuratore"]."' AND CNPOSIZ=".$this->params["utposiz"]." AND CNFLAG='#'"; } else if ($this->params["scope"] == "sostituzione") { $query = "UPDATE MOV__CON set CNPRESA=".$this->params["accessibilita"].",CNSFERE=".$this->params["sfere"].", CNCALIB=".$this->params["calibro"].", CNCODPR=".$this->params["tipo"].", CNFLAG='S', CNDATFI='".$dataLettura."' WHERE CNMATCO='".$this->params["matricolamisuratore"]."' AND CNPOSIZ=".$this->params["utposiz"]." AND CNFLAG='A'"; $result = odbc_exec($this->cn,$query); $query = "UPDATE MOV__CON set CNPRESA=".$this->params["accessibilitanuovomisuratore"].",CNSFERE=".$this->params["sferenuovomisuratore"].", CNCALIB=".$this->params["calibronuovomisuratore"].", CNCODPR=".$this->params["tiponuovomisuratore"].", CNFLAG='A', CNDATIN='".$dataLettura."',CNDATFI='31122029' WHERE CNMATCO='".$this->params["matricolanuovomisuratore"]."' AND CNPOSIZ=".$this->params["utposiz"]." AND CNFLAG='#'"; } else { $query = "UPDATE MOV__CON set CNPRESA=".$this->params["accessibilita"].",CNSFERE=".$this->params["sfere"].", CNCALIB=".$this->params["calibro"].", CNCODPR=".$this->params["tipo"]." WHERE CNMATCO='".$this->params["matricolamisuratore"]."' AND CNPOSIZ=".$this->params["utposiz"]." AND CNFLAG='A'"; } $result = odbc_exec($this->cn,$query); if ($this->params["scope"] == "sostituzione") { if ($this->isNotDuplicate($this->params["utposiz"],$dataLettura,$this->params["letturafinale"],$this->params["matricolamisuratore"],$this->params["operatore"],$orarioLettura)) { if ($this->params["scartalettura"] == "S") { $flagLettura = "X"; $causaleLettura = $this->params["codicecausale"]; } else { $flagLettura = ""; $causaleLettura = ""; } if ($this->params["evento01"] > 0) { $queryEvento = "INSERT INTO MOV__INT (IntPosiz,IntEv,IntOp,IUTEID,intData) VALUES (".$this->params["utposiz"].",".$this->params["evento01"].",".$this->params["operatore"].",".$this->params["iuteid"].",'".$dataLettura."')"; $result = odbc_exec($this->cn,$queryEvento); } if ($this->params["evento02"] > 0) { $queryEvento = "INSERT INTO MOV__INT (IntPosiz,IntEv,IntOp,IUTEID,intData) VALUES (".$this->params["utposiz"].",".$this->params["evento02"].",".$this->params["operatore"].",".$this->params["iuteid"].",'".$dataLettura."')"; $result = odbc_exec($this->cn,$queryEvento); } if ($this->params["evento03"] > 0) { $queryEvento = "DELETE FROM MOV__INT WHERE IntEv=".$this->params["evento03"]." AND IntPosiz=".$this->params["utposiz"]." AND IUTEID=".$this->params["iuteid"]; $result = odbc_exec($this->cn,$queryEvento); } if ($this->params["evento04"] > 0) { $queryEvento = "INSERT INTO MOV__INT (IntPosiz,IntEv,IntOp,IUTEID,intData) VALUES (".$this->params["utposiz"].",".$this->params["evento04"].",".$this->params["operatore"].",".$this->params["iuteid"].",'".$dataLettura."')"; $result = odbc_exec($this->cn,$queryEvento); } if ($this->params["evento05"] > 0) { $queryEvento = "INSERT INTO MOV__INT (IntPosiz,IntEv,IntOp,IUTEID,intData) VALUES (".$this->params["utposiz"].",".$this->params["evento05"].",".$this->params["operatore"].",".$this->params["iuteid"].",'".$dataLettura."')"; $result = odbc_exec($this->cn,$queryEvento); } if ($this->params["scrivicausalemisuratore"] == "S") { $queryCM = "UPDATE MOV__CON set CNCODCAU=".$this->params["codicecausale"]." WHERE CNMATCO='".$this->params["matricolamisuratore"]."' AND CNPOSIZ=".$this->params["utposiz"]." AND CNFLAG='A'"; $result = odbc_exec($this->cn,$queryCM); } $query = 'INSERT INTO MOV__LET (LTPOSIZ,LTDATA,LTLETMC,LTMATRI,LTCODOP,LTFLAG,LTORARIO,LTCAUTENT,LTCAUFALL) VALUES ('.$this->params["utposiz"].',"'.$dataLettura.'",'.$this->params["letturafinale"].',"'.$this->params["matricolamisuratore"].'",'.$this->params["operatore"].',"'.$flagLettura.'","'.$orarioLettura.'",'.$this->params["mobexpresstent"].','.$causaleLettura.')'; $result = odbc_exec($this->cn,$query); } if ($this->isNotDuplicate($this->params["utposiz"],$dataLetturaNuovoMisuratore,$this->params["letturainiziale"],$this->params["matricolanuovomisuratore"],$this->params["operatore"],$orarioLetturaNuovoMisuratore)) { if ($this->params["scartalettura"] == "S") { $flagLetturaNuovoMisuratore = "X"; $causaleLetturaNuovoMisuratore = $this->params["codicecausalenuovomisuratore"]; } else { $flagLetturaNuovoMisuratore = ""; $causaleLetturaNuovoMisuratore = ""; } //~ if ($this->params["evento01nuovomisuratore"] > 0) { //~ $queryEvento = "INSERT INTO MOV__INT (IntPosiz,IntEv,IntOp,IUTEID,intData) VALUES (".$this->params["utposiz"].",".$this->params["evento01nuovomisuratore"].",".$this->params["operatore"].",".$this->params["iuteid"].",'".$dataLetturaNuovoMisuratore."')"; //~ $result = odbc_exec($this->cn,$queryEvento); //~ } //~ if ($this->params["evento02nuovomisuratore"] > 0) { //~ $queryEvento = "INSERT INTO MOV__INT (IntPosiz,IntEv,IntOp,IUTEID,intData) VALUES (".$this->params["utposiz"].",".$this->params["evento02nuovomisuratore"].",".$this->params["operatore"].",".$this->params["iuteid"].",'".$dataLetturaNuovoMisuratore."')"; //~ $result = odbc_exec($this->cn,$queryEvento); //~ } //~ if ($this->params["evento03nuovomisuratore"] > 0) { //~ $queryEvento = "DELETE FROM MOV__INT WHERE IntEv=".$this->params["evento03nuovomisuratore"]." AND IntPosiz=".$this->params["utposiz"]." AND IUTEID=".$this->params["iuteid"]; //~ $result = odbc_exec($this->cn,$queryEvento); //~ } //~ if ($this->params["scrivicausalenuovomisuratore"] == "S") { //~ $queryCM = "UPDATE MOV__CON set CNCODCAU=".$this->params["codicecausalenuovomisuratore"]." WHERE CNMATCO='".$this->params["matricolanuovomisuratore"]."' AND CNPOSIZ=".$this->params["utposiz"]." AND CNFLAG='A'"; //~ $result = odbc_exec($this->cn,$queryCM); //~ } $query = 'INSERT INTO MOV__LET (LTPOSIZ,LTDATA,LTLETMC,LTMATRI,LTCODOP,LTFLAG,LTORARIO,LTCAUTENT,LTCAUFALL) VALUES ('.$this->params["utposiz"].',"'.$dataLetturaNuovoMisuratore.'",'.$this->params["letturainiziale"].',"'.$this->params["matricolanuovomisuratore"].'",'.$this->params["operatore"].',"'.$flagLetturaNuovoMisuratore.'","'.$orarioLetturaNuovoMisuratore.'",'.$this->params["mobexpresstent"].','.$causaleLetturaNuovoMisuratore.')'; $result = odbc_exec($this->cn,$query); } } else { if ($this->isNotDuplicate($this->params["utposiz"],$dataLettura,$this->params["nuovalettura"],$this->params["matricolamisuratore"],$this->params["operatore"],substr($datetimeLettura,8,11))) { if ($this->params["scartalettura"] == "S") { $flagLettura = "X"; $causaleLettura = $this->params["codicecausale"]; } else { $flagLettura = ""; $causaleLettura = ""; } if ($this->params["evento01"] > 0) { $queryEvento = "INSERT INTO MOV__INT (IntPosiz,IntEv,IntOp,IUTEID,intData) VALUES (".$this->params["utposiz"].",".$this->params["evento01"].",".$this->params["operatore"].",".$this->params["iuteid"].",'".$dataLettura."')"; $result = odbc_exec($this->cn,$queryEvento); } if ($this->params["evento02"] > 0) { $queryEvento = "INSERT INTO MOV__INT (IntPosiz,IntEv,IntOp,IUTEID,intData) VALUES (".$this->params["utposiz"].",".$this->params["evento02"].",".$this->params["operatore"].",".$this->params["iuteid"].",'".$dataLettura."')"; $result = odbc_exec($this->cn,$queryEvento); } if ($this->params["evento03"] > 0) { $queryEvento = "DELETE FROM MOV__INT WHERE IntEv=".$this->params["evento03"]." AND IntPosiz=".$this->params["utposiz"]." AND IUTEID=".$this->params["iuteid"]; $result = odbc_exec($this->cn,$queryEvento); } if ($this->params["evento04"] > 0) { $queryEvento = "INSERT INTO MOV__INT (IntPosiz,IntEv,IntOp,IUTEID,intData) VALUES (".$this->params["utposiz"].",".$this->params["evento04"].",".$this->params["operatore"].",".$this->params["iuteid"].",'".$dataLettura."')"; $result = odbc_exec($this->cn,$queryEvento); } if ($this->params["evento05"] > 0) { $queryEvento = "INSERT INTO MOV__INT (IntPosiz,IntEv,IntOp,IUTEID,intData) VALUES (".$this->params["utposiz"].",".$this->params["evento05"].",".$this->params["operatore"].",".$this->params["iuteid"].",'".$dataLettura."')"; $result = odbc_exec($this->cn,$queryEvento); } if ($this->params["scrivicausalemisuratore"] == "S") { $queryCM = "UPDATE MOV__CON set CNCODCAU=".$this->params["codicecausale"]." WHERE CNMATCO='".$this->params["matricolamisuratore"]."' AND CNPOSIZ=".$this->params["utposiz"]." AND CNFLAG='A'"; $result = odbc_exec($this->cn,$queryCM); } $query = 'INSERT INTO MOV__LET (LTPOSIZ,LTDATA,LTLETMC,LTMATRI,LTCODOP,LTFLAG,LTORARIO,LTCAUTENT,LTCAUFALL) VALUES ('.$this->params["utposiz"].',"'.$dataLettura.'",'.$this->params["nuovalettura"].',"'.$this->params["matricolamisuratore"].'",'.$this->params["operatore"].',"'.$flagLettura.'","'.$orarioLettura.'",'.$this->params["mobexpresstent"].','.$causaleLettura.')'; $result = odbc_exec($this->cn,$query); } } if ($this->params["scope"] == "nuovoAllaccio") { $query = "UPDATE ANA__UTE SET UTDATIN='".$dataLettura."', UTDATFI='31122029', UT_GIRO=".$this->params["giro"].", UT_PROG=".$this->params["progressivo"]." WHERE IUteId=".$this->params["iuteid"]." AND UTPOSIZ=".$this->params["utposiz"]; $result = odbc_exec($this->cn,$query); } if ($this->params["scope"] == "sostituzione") { $query = "UPDATE ANA__UTE SET UTMATCO='".$this->params["matricolanuovomisuratore"]."' WHERE IUteId=".$this->params["iuteid"]." AND UTPOSIZ=".$this->params["utposiz"]; $result = odbc_exec($this->cn,$query); } if ((!empty($this->params["nuovopiombo"])) && $this->params["nuovopiombo"] > 0) { $queryPiombo = "INSERT INTO MOV__INT (IntPosiz,IntEv,IntOp,IUTEID,intData) VALUES (".$this->params["utposiz"].",".$this->params["codicepiombo"].",".$this->params["operatore"].",".$this->params["iuteid"].",'".$dataLettura."')"; $result = odbc_exec($this->cn,$queryPiombo); } $response["result"] = "success"; Responder::throwResponse($response,$this->connector); } private function assegnaGiroProgresivo() { $response; $query = "SELECT CNPOSIZ FROM MOV__CON where CNMATCO='".$this->params["matricola"]."'"; $result = odbc_exec($this->cn, $query); $row = odbc_fetch_array($result); $utposiz = $row["CNPOSIZ"]; if (empty($utposiz)) { $response["result"] = "notfound"; } else { $guery = "SELECT max(IUteId) FROM ANA__UTE where UTPOSIZ=".$utposiz; $besult = odbc_exec($this->cn, $guery); $bow = odbc_fetch_array($besult); $iuteid = $bow["IUteId"]; $guery = "SELECT UT_GIRO,UT_PROG FROM ANA__UTE where UTPOSIZ=".$utposiz." AND IUteId=".$iuteid; $besult = odbc_exec($this->cn, $guery); $bow = odbc_fetch_array($besult); $response["result"] = "success"; $response["giro"] = $bow["UT_GIRO"]; $response["progressivo"] = number_format($bow["UT_PROG"],2); } Responder::throwResponse($response,$this->connector); } private function localizzaUtenza() { $response; $utenza = new Utenza($this->params["iuteid"],$this->params["utposiz"],$this->cn); $min = $utenza->utprog-5; $max = $utenza->utprog+5; $query = "SELECT IUteId,UTPOSIZ FROM ANA__UTE where UT_GIRO =".$utenza->utgiro." AND UT_PROG >= ".$min." AND UT_PROG <= ".$max." AND UTDATFI >= '31122029' ORDER BY UT_PROG ASC"; $result = odbc_exec($this->cn, $query); $uteList; $i = 0; while ($row = odbc_fetch_array($result)) { $tmpUte = new Utenza($row["IUteId"],$row["UTPOSIZ"],$this->cn); $uteList[$i]["progressivo"] = number_format($tmpUte->utprog,2); $uteList[$i]["utposiz"] = $tmpUte->utposiz; $uteList[$i]["ragsoc"] = $tmpUte->ututent; $uteList[$i]["matricola"] = $tmpUte->misuratore->cnMatCo; $uteList[$i]["indirizzo"] = $tmpUte->decodedUt_Sito. ", ".$tmpUte->utsitci; $uteList[$i]["telfisso"] = $tmpUte->telefonofisso; $uteList[$i]["telmobile"] = $tmpUte->cellulare; $uteList[$i]["note"] = $tmpUte->noteletturista; $uteList[$i]["ubicazione"] = $tmpUte->noteubicazione; $i++; } $response["utelist"] = $uteList; $response["result"] = "success"; Responder::throwResponse($response,$this->connector); } private function updateOpIdGoogle() { $response; $operatore = new Operatore($this->params["codiceoperatore"],$this->cn); $operatore->setOpIdGoogle($this->params["opidgoogle"]); $response["result"] = "success"; Responder::throwResponse($response,$this->connector); } private function isNotDuplicate($ltposiz,$ltdata,$ltletmc,$ltmatri,$ltcodop,$ltorario) { $isNotDuplicate = true; //~ Logger::addLog("Verifica","Inizio verifica duplicato"); if (empty($ltletmc)) { $query = 'SELECT LTIDPRO FROM MOV__LET where LTPOSIZ='.$ltposiz.' AND LTDATA="'.$ltdata.'" AND LTMATRI="'.$ltmatri.'" AND LTCODOP='.$ltcodop.' AND LTORARIO="'.$ltorario.'"'; } else { $query = 'SELECT LTIDPRO FROM MOV__LET where LTPOSIZ='.$ltposiz.' AND LTDATA="'.$ltdata.'" AND LTLETMC='.$ltletmc.' AND LTMATRI="'.$ltmatri.'" AND LTCODOP='.$ltcodop.' AND LTORARIO="'.$ltorario.'"'; } $result = odbc_exec($this->cn, $query); $row = odbc_fetch_array($result); //~ Logger::addLog("Verifica","Query verifica duplicato eseguita"); if (!empty($row["LTIDPRO"])) { $isNotDuplicate = false; //~ Logger::addLog("Trovato duplicato","Posizione: ".$ltposiz); } return $isNotDuplicate; } }