| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466 |
- <?php
- require __DIR__ . '/../vendor/autoload.php';
- use GuzzleHttp\Client;
- use GuzzleHttp\Psr7;
- use GuzzleHttp\Exception\ClientException;
- setlocale(LC_ALL, 'de_DE', 'de_DE.UTF-8');
- class tanss
- {
- private $tanssurl = "https://tanss.vision4it.de/";
- private $token4devices = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJERVZJQ0VfTUFOQUdFTUVOVCIsImV4cCI6MTczMTY4MTI3OSwidHlwZSI6IkRFVklDRV9NQU5BR0VNRU5UIiwiaW5mbyI6IjEwMDEifQ.GSIUYg3OlPVSE6nMfx_0RpbzV267iHovjo105uUAQ4NqbuTRAFZCVNBMdyzkCaymM_Jk0xL37ZvSt0Pr_LS0pO56aJSj2TBTOGqFVh4Z-vVuRiqLarHlJsye_Cxw4rsaGoKgcXDpFQiZ5aPj2e1LpQkFtEhqx-wcxOq7_JnieAM";
- //private $token4tanssx = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJUQU5TU19BUFAiLCJleHAiOjE2NzIyMTkyNzYsInR5cGUiOiJUQU5TU19BUFAifQ.REWqktC1irfeIY3QZL8YKelmqvHepmtpkJqm3O_gmSj0bVJWpPw1xF3mV1ICwLoLYm_oy7S6CB-Cxe6gHRHCCBVbr1uFbhpo5sk7cjuqFrfCOS6A5gc6a29vNLihnWXaGD3LwzsVgA7xqfUQVBxdofUbkfxOwAJUOjpzztG_Pus";
- private $token4monitor = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJNT05JVE9SSU5HIiwiZXhwIjoxNjc2NTQ4NzQ4LCJ0eXBlIjoiTU9OSVRPUklORyJ9.G1a85W2Gpgm72epAxioyjY4i-3bfxwMkyxGvSwcjAzjb8_bwArMPSdaTV7dJrO1MAJBhgXfhU-MICtcBFi8FMrOrd9t2WJGIgsLKPI2Bg7OYkEatS4b2mQGTggtA27b2FvoPIviPv6snL8CIPkO5-iOGBaDhIi0SW2BlY7goLss";
- private $token4phone = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJQSE9ORSIsImV4cCI6MTY5MjM2NjU2NCwidHlwZSI6IlBIT05FIn0.ON4AnJi0uVUa7eFizkaEfITos1m4JyslZ2-TqTD7tN4aAw21-megGv7xwMIZxQOvHUVDSVoLuWbBQ1QW1iWxOgMdgds0d6vC99Z4iQ2ulLE7SQckmDzgA2Qx4f6BQ2_PqdcmdZa0pQ0JxcHb_xlaZptu7gtcMP52Bu9XRRrUUHg";
- private $token4erp = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJFUlAiLCJleHAiOjE3MzcwMzEyNTcsInR5cGUiOiJFUlAiLCJpbmZvIjoiMTAwMSJ9.aT-qT51skgjuEQuaHm-aAXYom1vHLQTqVeDBbJSHVohTHFP1uH8NSfZRJ6-AFxb0k8E3gdHNzHXsHLC69bdp60sJQWK45Dkqf1YsszSK_hhfqKberibSIFkUjs3LCSDTvH5Yn9FIolnE7m8PNN9Yu8X9JS1Ayae8FZxaI7jpUMc";
- //private $token4remoteSupports = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJSRU1PVEVfU1VQUE9SVCIsImV4cCI6MTY5Mjk2NTUyNCwidHlwZSI6IlJFTU9URV9TVVBQT1JUIiwiaW5mbyI6IjEwMDEifQ.nE19B7tJCnnUhIyHgE5NxyFHBj-RpSLWJ5bnM65KNMlfzHt47DfLFISSN7YuUHr3onYCIrwVAs9KyjBj03i4vRGmR8XmxizUbGtjmJkbRurO5XCBByYvJn0e1wxQKx_-YnAbPNtiyosiyH9TWktgHyVA4UVDUTnHRsmxD7k3nyU";
- private $token4remoteSupports = "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJSRU1PVEVfU1VQUE9SVCIsImV4cCI6MTY5NzI5NDAxNiwidHlwZSI6IlJFTU9URV9TVVBQT1JUIiwiaW5mbyI6IjEwMDIifQ.nrZJR0_X2JY0-42EAfv9Fib4ZelGV0wh1iviKFjBxooGwNc5hbUGf4-5_IYYNaTh8Y5inOaxQMlFz3mj2QPiP85nsOeAC30F5_qW442IqnemntQrssd-WbCHxL2-ocl61iMWXMBPIja2BISu61-oXSWVT1WvMHyS0IFv_CFt718";
- private $headers4tickets = "";
- private $headers4devices = "";
- private $headers4erp = "";
- private $userheader = "";
- public $logintoken = "";
- public $loggedin = false;
- public $username = "";
- public $password = "";
- public $employeeId = 0;
- public $expire = 0;
- protected $cookieFileLocation = './cookie.txt';
- private $client = "";
- private $db = null;
- public $dbhost = "10.7.50.52";
- public $dbuser = "tanss_ro";
- public $dbpass = "-QqZg)nTJa2)#";
- function __construct()
- {
- $this->headers4tickets = ["apiToken: ". $this->token4monitor , "Content-Type: application/json"];
- $this->headers4devices = ["apiToken" => $this->token4devices , "Content-Type" => "application/json"];
- $this->headers4erp = ["apiToken" => $this->token4erp , "Content-Type" => "application/json"];
- $this->cookieFileLocation = dirname(__FILE__).'/cookie.txt';
- $this->client = new \GuzzleHttp\Client([ 'base_uri' => $this->tanssurl, 'debug' => false, 'verify' => false , "Content-Type" => "application/json;charset=ISO-8859-1"]);
- }
- public function login($username,$password,$refreshToken="")
- {
- if ($refreshToken=="") {
- $headers=["user"=> $username , "password" => $password ];
- } else {
- $headers=["user" => $username , "password" => $password, "logintoken" => $refreshToken];
- }
- $response = $this->client->request( 'GET', '/backend/api/v1/user/login', ['headers' => $headers] );
-
- // Ergebnisse ermitteln
- $statuscode = $response->getStatusCode();
- $header = $response->getHeaders();
- $body = json_decode($response->getBody()->getContents());
- // Ergebnis Object bauen
- $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body];
- if ($ergobj->statuscode == 200 && $ergobj->body->meta->text <> "Unsuccesful login attempt") {
- $this->logintoken = $ergobj->body->content->apiKey;
- $this->userHeader = ["apiToken" => $ergobj->body->content->apiKey];
- $this->username = $username;
- $this->password = $password;
- $this->employeeId = $ergobj->body->content->employeeId;
- $this->expire = $ergobj->body->content->expire;
- $retvalue = 200;
- } else {
- $this->logintoken = "";
- $this->username = "";
- $this->password = "";
- $this->userHeader = "";
- $this->employeeId = 0;
- $this->expire = 0;
- $retvalue = 403;
- }
- return $retvalue;
- }
- public function readsession(&$session)
- {
- $this->loggedin = $session['loggedin'];
- $this->logintoken = $session['id'];
- $this->userHeader = $session["userHeader"];
- $this->username = $session["username"];
- $this->password = $session["password"];
- $this->employeeId = $session["employeeId"];
- $this->expire = $session["expire"];
- }
- public function writesession(&$session)
- {
- $session['loggedin'] = $this->loggedin;
- $session['id'] = $this->logintoken;
- $session["userHeader"] = $this->userHeader;
- $session["name"] = $this->username;
- $session["password"] = $this->password;
- $session["employeeId"] = $this->employeeId;
- $session["expire"] = $this->expire;
- }
- public function ticketlist()
- {
- try {
- $response = $this->client->request( 'GET', '/backend/api/v1/tickets/own', ['headers' => $this->userHeader] );
- $statuscode = $response->getStatusCode();
- $header = $response->getHeaders();
- $body = json_decode($response->getBody()->getContents());
- $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body];
- if ($ergobj->statuscode == 200) {
- $retvalue = $ergobj;
- } else {
- $retvalue = (object)[];
- }
- }
- catch (Exception $e) {
- $retvalue = (object)[];
- echo "<pre>Fehler: ";
- echo Psr7\Message::toString($e->getRequest());
- echo Psr7\Message::toString($e->getResponse());
- echo "</pre>";
- }
- return $retvalue;
- }
- public function ticketlistAll()
- {
- try {
- $response = $this->client->request( 'GET', '/backend/api/v1/tickets/technician', ['headers' => $this->userHeader] );
- $statuscode = $response->getStatusCode();
- $header = $response->getHeaders();
- $body = json_decode($response->getBody()->getContents());
- $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body];
- if ($ergobj->statuscode == 200) {
- $retvalue = $ergobj;
- } else {
- $retvalue = (object)[];
- }
- }
- catch (Exception $e) {
- $retvalue = (object)[];
- echo "<pre>Fehler: ";
- echo Psr7\Message::toString($e->getRequest());
- echo Psr7\Message::toString($e->getResponse());
- echo "</pre>";
- }
- return $retvalue;
- }
- public function addticket($body = [])
- {
- try {
- //$response = $this->client->request( 'POST', '/backend/api/v1/tickets', ['headers' => $this->userHeader, 'json' => $body] );
- $response = $this->client->request( 'POST', '/backend/api/erp/v1/tickets', ['headers' => $this->headers4erp, 'json' => $body] );
- $statuscode = $response->getStatusCode();
- $header = $response->getHeaders();
- $body = json_decode($response->getBody()->getContents());
- $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body];
- if ($ergobj->statuscode == 201) {
- $retvalue = $ergobj;
- } else {
- $retvalue = (object)[];
- }
- }
- catch (Exception $e) {
- $retvalue = (object)[];
- echo "<pre>Fehler: ";
- echo Psr7\Message::toString($e->getRequest());
- echo Psr7\Message::toString($e->getResponse());
- echo "</pre>";
- }
- return $retvalue;
- }
- public function searchperipheries($name = "", $type = 0, $companyId = 0)
- {
- try {
- $body = [
- "companyId" => $companyId,
- "branches" => "COMPANY_ONLY",
- "active" => "ACTIVE_ONLY",
- "peripheryTypeId" => $type
- ];
- $response = $this->client->request( 'PUT', '/backend/api/deviceManagement/v1/peripheries', ['headers' => $this->headers4devices, 'json' => $body ] );
- $statuscode = $response->getStatusCode();
- $header = $response->getHeaders();
- $body = json_decode($response->getBody()->getContents());
- $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body];
- if ($ergobj->statuscode == 201) {
- $obj = $ergobj;
- //echo "<pre>";var_dump($obj);echo "</pre>";
- $retvalue = array_column($obj->content, null, 'name')[$name] ?? false;
- } else {
- $retvalue = false;
- }
- }
- catch (Exception $e) {
- $retvalue = (object)[];
- echo "<pre>Fehler: ";
- echo Psr7\Message::toString($e->getRequest());
- echo Psr7\Message::toString($e->getResponse());
- echo "</pre>";
- }
- return $retvalue;
- }
- public function searchDevice($name = "", $servers = "PCS_ONLY", $companyId = 0)
- {
- try {
- $body = [
- "companyId" => $companyId,
- "branches" => "COMPANY_ONLY",
- "active" => "ACTIVE_ONLY",
- "peripheryTypeId" => $type
- ];
- $response = $this->client->request( 'PUT', '/backend/api/deviceManagement/v1/pcs', ['headers' => $this->headers4devices, 'json' => $body ] );
- $statuscode = $response->getStatusCode();
- $header = $response->getHeaders();
- $body = json_decode($response->getBody()->getContents());
- $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body];
- if ($ergobj->statuscode == 201) {
- $obj = $ergobj;
- //echo "<pre>";var_dump($obj->body->content);echo "</pre>";
- $retvalue = array_column($obj->body->content, null, 'name')[$name] ?? false;
- } else {
- $retvalue = false;
- }
- }
- catch (Exception $e) {
- $retvalue = (object)[];
- echo "<pre>Fehler: ";
- echo Psr7\Message::toString($e->getRequest());
- echo Psr7\Message::toString($e->getResponse());
- echo "</pre>";
- }
- return $retvalue;
- }
- public function timestamp()
- {
- try {
- $response = $this->client->request( 'GET', '/backend/api/v1/timestamps', ['headers' => $this->userHeader] );
- $statuscode = $response->getStatusCode();
- $header = $response->getHeaders();
- $body = json_decode($response->getBody()->getContents());
- $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body];
- if ($ergobj->statuscode == 200) {
- $retvalue = $ergobj;
- } else {
- $retvalue = (object)[];
- }
- }
- catch (Exception $e) {
- $retvalue = (object)[];
- echo "<pre>Fehler: ";
- echo Psr7\Message::toString($e->getRequest());
- echo Psr7\Message::toString($e->getResponse());
- echo "</pre>";
- }
- return $retvalue;
- }
- public function settimestamp($state)
- {
- $body = [
- "employeeId" => $this->employeeId,
- "state" => strtoupper($state),
- "type" => "WORK",
- "date" => time(),
- "autoPause" => true
- ];
- var_dump($body);
- try {
- $response = $this->client->request( 'POST', '/backend/api/v1/timestamps', ['headers' => $this->userHeader, 'json' => $body, "query" => "autoPause=true" ] );
- $statuscode = $response->getStatusCode();
- $header = $response->getHeaders();
- $body = json_decode($response->getBody()->getContents());
- $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body];
- if ($ergobj->statuscode == 201) {
- $retvalue = $ergobj;
- } else {
- $retvalue = (object)[];
- }
- }
- catch (Exception $e)
- {
- $retvalue = (object)[];
- echo "<pre>Fehler: ";
- echo Psr7\Message::toString($e->getRequest());
- echo Psr7\Message::toString($e->getResponse());
- echo "</pre>";
- }
- return $retvalue;
- }
- public function getCalls($employeeId = 0)
- {
- $body = [
- "timeframe" => [
- "from" => (time() - (12 * 60 * 60)) ,
- "to" => time()
- ],
- "numberFilters" => [],
- "showTrysAsWell" => true,
- "employeeId" => $employeeId ,
- "numberInfos" => true
- ];
- try {
- $response = $this->client->request(
- 'put',
- '/backend/api/calls/v1',
- ['headers' => [
- "apiToken" => $this->token4phone,
- "Content-Type" => "application/json"
- ],
- 'json' => $body ]
- );
- $statuscode = $response->getStatusCode();
- $header = $response->getHeaders();
- $body = json_decode($response->getBody()->getContents());
- $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body ];
-
- if ($ergobj->statuscode == 200) {
- $retvalue = $ergobj;
- } else {
- $retvalue = (object)[];
- }
- }
- catch (Exception $e) {
- $retvalue = (object)[];
- echo "<pre>Fehler: ";
- echo Psr7\Message::toString($e->getRequest());
- echo Psr7\Message::toString($e->getResponse());
- echo "</pre>";
- }
- return $retvalue;
- }
- public function getChats($employeeId = 0)
- {
- $body = [
- "employeeId" => $employeeId ,
- "onlyExpectedTimeExpired" => false,
- "status" => "OPEN",
- "loadMessages" => "NONE",
- "showOnlyParticapatedChat" => true,
- "loadMessages" => "NONE"
- ];
- try {
- $response = $this->client->request(
- 'PUT',
- '/backend/api/v1/chats',
- ['headers' => [ "apiToken" => $this->userHeader ] ,
- 'json' => $body ]
- );
- $statuscode = $response->getStatusCode();
- $header = $response->getHeaders();
- $body = json_decode($response->getBody()->getContents());
- $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body ];
-
- if ($ergobj->statuscode == 200) {
- $retvalue = $ergobj;
- } else {
- $retvalue = (object)[];
- }
- }
- catch (Exception $e) {
- $retvalue = (object)[];
- echo "<pre>Fehler: ";
- echo Psr7\Message::toString($e->getRequest());
- echo Psr7\Message::toString($e->getResponse());
- echo "</pre>";
- }
- return $retvalue;
- }
- public function getTasks_API($employeeId = 0,$companyId = 0,$typeId = 0, $text = "")
- {
-
- $from = new DateTime('today midnight');
- $to= new DateTime();
- $to->add(new DateInterval('P7D'));
- $body = ["timeframe" => [ "from" => $from->getTimestamp(), "to" => $to->getTimestamp()] ];
- ($employeeId>0) ? $body[] = ["employeeId" => $employeeId] : null;
- ($companyId>0) ? $body[] = ["companyId" => $companyId] : null;
- ($typeId>0) ? $body[] = ["typeId" => $typeId] : ["typeId" => 3];
- ($text>0) ? $body[] = ["text" => $text] : null;
- //print_r($body);
- try {
- $response = $this->client->request(
- 'PUT',
- '/backend/api/remoteSupports/v1',
- ['headers' => [ "apiToken" => $this->token4remoteSupports] ,
- 'json' => $body ]
- );
- $statuscode = $response->getStatusCode();
- $header = $response->getHeaders();
- $body = json_decode($response->getBody()->getContents());
- $ergobj = (object) ["statuscode" => $statuscode, "header" => $header, "body" => $body ];
- //var_dump($this->logintoken);
- if ($ergobj->statuscode == 200) {
- $retvalue = $ergobj;
- } else {
- $retvalue = (object)[];
- }
- }
- catch (Exception $e) {
- $retvalue = (object)[];
- echo "<pre>Fehler: ";
- echo Psr7\Message::toString($e->getRequest());
- echo Psr7\Message::toString($e->getResponse());
- echo "</pre>";
- }
-
- return $retvalue;
- }
- public function timeDifference( $date_1, $date_2, $differenceFormat = "%m Monate %d Tage %H Stunden %i Minuten" )
- {
- $datetime1 = new DateTime();
- $datetime1->setTimestamp($date_1);
- $datetime2 = new DateTime();
- $datetime2->setTimestamp($date_2);
- $interval = $datetime1->diff($datetime2);
- return $interval->format($differenceFormat);
- }
- function openMysql() {
- $this->db = new PDO("mysql:host=".$this->dbhost.";charset=utf8;dbname=tanss", $this->dbuser, $this->dbpass, array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_TIMEOUT => 5, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
- }
- public function getTasks($employeeId = 0) {
- $sql_termine = 'SELECT
- leistungen.ID,
- leistungen.datum as termin_start,
- leistungen.dauer*60+leistungen.datum as termin_ende,
- leistungen.dauer/60 as termin_dauer,
- leistungen.text as info,
- mitarbeiter.name as techniker,
- firmen.name as kunde,
- leistungen.tepID as typ
- FROM tanss.leistungen
- left outer join mitarbeiter on leistungen.mitarbeiterID = mitarbeiter.ID
- left outer join firmen on leistungen.firmenID = firmen.ID
- WHERE FROM_UNIXTIME(datum,"%Y-%m-%d") >= date(now())
- AND leistungen.tepID in (2,3)
- ' . ( ($employeeId>0) ? "AND mitarbeiter.ID = ".$employeeId : "" ). '
- ORDER BY datum ASC
- ';
- // Verbindung öffnen
- $this->openMysql();
- // SQL ausführen: Termine
- $datasql = $this->db->query($sql_termine, PDO::FETCH_ASSOC);
- $data_termine = $datasql->fetchAll(PDO::FETCH_OBJ);
- //$dbcount_termine = $datasql->rowCount();
- // Verbindung schließen
- $this->db = null;
- return $data_termine;
- }
- }
|