function saveSubscriber() { //region SAVE_PARAMS $getResponse = new Getresponse(); if (isset($_GET['CONTACT_ID'])) { $getResponse->setContact_id(urldecode($_GET['CONTACT_ID'])); } else { $getResponse->setContact_id('-'); } if (isset($_GET['ACCOUNT_ID'])) { $getResponse->setAccount_id(urldecode($_GET['ACCOUNT_ID'])); } else { $getResponse->setAccount_id('-'); } if (isset($_GET['account_login'])) { $getResponse->setAccount_login(urldecode($_GET['account_login'])); } else { $getResponse->setAccount_id('-'); } if (isset($_GET['contact_name'])) { $getResponse->setContact_name(urldecode($_GET['contact_name'])); } else { $getResponse->setContact_name('-'); } if (isset($_GET['campaign_name'])) { $getResponse->setCampaign_name(urldecode($_GET['campaign_name'])); } else { $getResponse->setCampaign_name('-'); } if (isset($_GET['contact_ip'])) { $getResponse->setContact_ip(urldecode($_GET['contact_ip'])); } else { $getResponse->setContact_ip('-'); } if (isset($_GET['CAMPAIGN_ID'])) { $getResponse->setCampaign_id(urldecode($_GET['CAMPAIGN_ID'])); } else { $getResponse->setCampaign_id('-'); } if (isset($_GET['contact_email'])) { $getResponse->setContact_email(urldecode($_GET['contact_email'])); } else { $getResponse->setContact_email('-'); } if (isset($_GET['contact_origin'])) { $getResponse->setContact_origin(urldecode($_GET['contact_origin'])); } else { $getResponse->setContact_origin('-'); } if (isset($_GET['action'])) { $getResponse->setAction(urldecode($_GET['action'])); } else { $getResponse->setAction('-'); } $timeZone = new DateTimeZone("Europe/Vilnius"); $time = new DateTime("now", $timeZone); $getResponse->setA_date($time->format("Y-m-d H:i:s")); if (!$this->storeParams($getResponse)) { $getResponse->setId(99999); } //endregion //var_dump($getResponse); //region CHECK_POJECT $criteriaOr = new OrStatement(); $field = $this->projectDao->getQCampaignName(); $criteriaOr->addStatement($field . "='" . addslashes($getResponse->getCampaign_name()) . "'"); $field = $this->projectDao->getQSuspendingName(); $criteriaOr->addStatement($field . "='" . addslashes($getResponse->getCampaign_name()) . "'"); $field = $this->projectDao->getQEndingName(); $criteriaOr->addStatement($field . "='" . addslashes($getResponse->getCampaign_name()) . "'"); $projects = $this->projectDao->find($criteriaOr, null, 1000); if (!is_array($projects)) { $this->setParamPoz($getResponse->getId(), 2, "Nepavyko nustatyti projekto"); return false; } else { if (count($projects) == 0) { $this->setParamPoz($getResponse->getId(), 2, "Nepavyko nustatyti projekto"); return false; } } //$project = reset($projects); //endregion //var_dump($project); foreach ($projects as $project) { $campaignType = -1; switch ($getResponse->getCampaign_name()) { case $project->getCampaign(): $campaignType = 1; break; case $project->getSuspending(): $campaignType = 0; break; case $project->getEnding(): $campaignType = 3; break; } if ($campaignType == -1) { $this->setParamPoz($getResponse->getId(), 2, "Nepavyko nustatyti kampanijos tipo"); return FALSE; } $newClient = FALSE; //Aktyvavimo kampanija if ($campaignType == 1) { // Patikrinam ar neegzistuoja toks klientas $criteria = new AndStatement(); $field = $this->clientDaol->getQPidName(); $criteria->addStatement($field . "='" . addslashes($project->getId()) . "'"); $field = $this->clientDaol->getQEmailName(); $criteria->addStatement($field . "='" . addslashes($getResponse->getContact_email()) . "'"); $clients = $this->clientDaol->find($criteria, NULL, 1000); if (is_null($clients)) { $this->setParamPoz($getResponse->getId(), 2, "Nepavyko patikrinti ar toks klientas jau uzregistruotas [1]"); return FALSE; } else { if (is_string($clients)) { $this->setParamPoz($getResponse->getId(), 2, "Nepavyko patikrinti ar toks klientas jau uzregistruotas [2]"); return FALSE; } else { if (!is_array($clients)) { $this->setParamPoz($getResponse->getId(), 2, "Nepavyko patikrinti ar toks klientas jau uzregistruotas [3]"); return FALSE; } } } if (count($clients) == 0) { //Jei neradome kliento - kuriame nauaja $client = new Client(); $client->setPid($project->getId()); $client->setEmail($getResponse->getContact_email()); $client->setTelephone($getResponse->getContact_name()); $client->setActive(TRUE); $newClient = TRUE; } else { $client = reset($clients); if (!$client->isActive() && !$client->isEnded()) { $client->setActive(TRUE); $this->saveEventHistory($client, "Aktyvuotas GetResponse sistemos"); } else { $this->setParamPoz($getResponse->getId(), 2, "Klientas jau yra sukurtas projekte ir yra aktyvus arba pabaigtas"); return FALSE; } } } //Suspendavimo kampanija if ($campaignType == 0) { $criteria = new AndStatement(); $field = $this->clientDaol->getQPidName(); $criteria->addStatement($field . "='" . addslashes($project->getId()) . "'"); $field = $this->clientDaol->getQEmailName(); $criteria->addStatement($field . "='" . addslashes($getResponse->getContact_email()) . "'"); $field = $this->clientDaol->getQActiveName(); $criteria->addStatement($field . "='1'"); $clients = $this->clientDaol->find($criteria, NULL, 1000); if (is_null($clients)) { $this->setParamPoz($getResponse->getId(), 2, "Nerastas klientas [1]"); return FALSE; } else { if (is_string($clients)) { $this->setParamPoz($getResponse->getId(), 2, "Nerastas klientas [2]"); return FALSE; } else { if (!is_array($clients)) { $this->setParamPoz($getResponse->getId(), 2, "Nerastas klientas [3]"); return FALSE; } else { if (count($clients) == 0) { $this->setParamPoz($getResponse->getId(), 2, "Nerastas klientas [4]"); return FALSE; } } } } var_dump($clients); $client = reset($clients); if (!$client->isActive()) { $this->setParamPoz($getResponse->getId(), 2, "Klientas jau suspenduotas"); return FALSE; } if ($client->isEnded()) { $this->setParamPoz($getResponse->getId(), 2, "Klientas jau pabaigtas"); return FALSE; } $client->setActive(FALSE); $this->saveEventHistory($client, "Atsisakyta per GetResponse sistemÄ…"); } //Pabaigos kampanija if ($campaignType == 3) { $criteria = new AndStatement(); $field = $this->clientDaol->getQPidName(); $criteria->addStatement($field . "='" . addslashes($project->getId()) . "'"); $field = $this->clientDaol->getQEmailName(); $criteria->addStatement($field . "='" . addslashes($getResponse->getContact_email()) . "'"); $field = $this->clientDaol->getQActiveName(); $criteria->addStatement($field . "='1'"); $clients = $this->clientDaol->find($criteria, NULL, 1000); if (is_null($clients)) { $this->setParamPoz($getResponse->getId(), 2, "Nerastas klientas [1]"); return FALSE; } else { if (is_string($clients)) { $this->setParamPoz($getResponse->getId(), 2, "Nerastas klientas [2]"); return FALSE; } else { if (!is_array($clients)) { $this->setParamPoz($getResponse->getId(), 2, "Nerastas klientas [3]"); return FALSE; } else { if (count($clients) == 0) { $this->setParamPoz($getResponse->getId(), 2, "Nerastas klientas [4]"); return FALSE; } } } } var_dump($clients); $client = reset($clients); if ($client->isEnded()) { $this->setParamPoz($getResponse->getId(), 2, "Klientas jau pabaigtas"); return FALSE; } $client->setEnded(TRUE); $this->saveEventHistory($client, "Pabaigtas GetResponse sistemos"); } $timeZone = new DateTimeZone("Europe/Vilnius"); $time = new DateTime("now", $timeZone); $client->setR_date($time->format("Y-m-d H:i:s")); $client->setR_user(9999); $store = $this->storeClient($client, $getResponse); if (!$store) { return FALSE; } if ($newClient) { $this->saveEventHistory($client, "Sukurtas GetResponse sistemos"); } $this->setParamPoz($getResponse->getId(), 1); } return true; }
function find($criteria = null, $order = null, $limit = 1000, $from = 0) { $result = $this->database->query($this->buildFindQuery($criteria, $order, $limit, $from)); if (!is_null($result->getError())) { return $result->getError(); } $getresponses = array(); while ($row = $result->fetchRow()) { $getresponse = new Getresponse(); $value = $row[0]; $getresponse->setId($value); $value = $row[1]; $getresponse->setContact_id($value); $value = $row[2]; $getresponse->setAccount_id($value); $value = $row[3]; $getresponse->setAccount_login($value); $value = $row[4]; $getresponse->setContact_name($value); $value = $row[5]; $getresponse->setCampaign_name($value); $value = $row[6]; $getresponse->setContact_ip($value); $value = $row[7]; $getresponse->setCampaign_id($value); $value = $row[8]; $getresponse->setContact_email($value); $value = $row[9]; $getresponse->setContact_origin($value); $value = $row[10]; $getresponse->setAction($value); $value = $row[11]; $getresponse->setA_date($value); $value = $row[12]; $getresponse->setPoz($value); $value = $row[13]; $getresponse->setError($value); if ($order != null) { array_push($getresponses, $getresponse); } else { $getresponses[$getresponse->getId()] = $getresponse; } } return $getresponses; }