function checkDelays() { $criteria = new AndStatement(); $field = $this->eventDao->getQStateName(); $criteria->addStatement($field . "=1"); $field = $this->eventDao->getQValid_dateName(); $criteria->addStatement($field . "< NOW()"); $field = $this->eventDao->getQDelayName(); $criteria->addStatement($field . "=0"); $events = $this->eventDao->find($criteria, null); if (is_null($events) || is_string($events) || count($events) == 0) { return false; } foreach ($events as $event) { $project = $this->getProject($event->getPid()); if (!is_object($project)) { $mail = new Mail(); $mail->setTo("*****@*****.**"); $mail->setSubject("WorkFlow.lt Klaida nuskaitant projekta | checkDelays"); if (is_string($project)) { $mail->setText($project); } $mail->sendMail(); continue; } $stage = $this->getStageById($event->getSid()); if (!is_object($stage)) { $mail = new Mail(); $mail->setTo("*****@*****.**"); $mail->setSubject("WorkFlow.lt Klaida nuskaitant etapa | checkDelays"); if (is_string($stage)) { $mail->setText($stage); } $mail->sendMail(); continue; } $client = $this->getClientById($event->getCid()); if (!is_object($client)) { $mail = new Mail(); $mail->setTo("*****@*****.**"); $mail->setSubject("WorkFlow.lt Klaida nuskaitant klienta | checkDelays"); if (is_string($client)) { $mail->setText($client); } //$mail->sendMail(); continue; } if (!$client->isActive() || $client->isEnded() || $client->isEnded_eve() || $client->isMoved()) { continue; } $event->setDelays($event->getDelays() + 1); $event->setDelay(true); $this->storeEvent($event); $rss = new Rss($project->getRsskey()); $eventRss = new EventRss(); $eventRss->title = $eventRss->getText("warningTitle", array($project->getName())); $eventRss->description = $eventRss->getText("warningDescription", array($project->getName(), $stage->getName(), $this->formatClientInfo($client))); $eventRss->link = addslashes(htmlspecialchars($this->partnerUrl)) . addslashes(htmlspecialchars($project->getCruid())); $eventRss->pubDate = Carbon::now()->toRssString(); $eventRss->PID = $project->getId(); $eventRss->CID = $client->getId(); $eventRss->SID = $stage->getId(); if (!$rss->addEvent($project, $eventRss)) { $mail = new Mail(); $mail->setTo("*****@*****.**"); $mail->setSubject("WorkFlow.lt Klaida kuriant RSS irasa | checkDelays"); $mail->setText(print_r($eventRss, true)); $mail->sendMail(); } $eventHistory = new EventHistory(); $eventHistory->setPid($event->getPid()); $eventHistory->setCid($event->getCid()); $eventHistory->setSid($event->getSid()); $eventHistory->setEid($event->getId()); $eventHistory->setR_date(Carbon::Now()->toDateTimeString()); $eventHistory->setDescription("PradÄ—tas vieluoti etapas"); $eventHistory->setValid_date($event->getValid_date()); $this->storeEventHistory($eventHistory); } }
function sendNotification($client) { $projectID = $client->getPid(); if (is_null($projectID)) { $this->context->setRequestScopeAttr("error", "project.error.notfound"); } $project = $this->projectDao->get($projectID); if (is_null($project)) { $this->context->setRequestScopeAttr("error", "project.error.notfound"); return false; } else { if (is_string($project)) { $this->context->setRequestScopeAttr("error", "error.dberror"); $this->context->setRequestScopeAttr("errortxt", $project); $project = null; return false; } } $stage = $this->getStageID($projectID, 1); switch ($stage->getPeriod_type()) { case 1: $period = $stage->getPeriod() < 2 ? "diena" : "dienos"; break; case 2: $period = $stage->getPeriod() < 2 ? "darbo diena" : "darbo dienos"; break; case 3: $period = $stage->getPeriod() < 2 ? "valanda" : "valandos"; break; } $period = $stage->getPeriod() . " " . $period; $enddate = $this->countEventTime($stage->getPeriod_type(), $stage->getPeriod()); $field = $this->partnerDao->getQPidName(); $criteria = new AndStatement(); $criteria->addStatement($field . "=" . addslashes($projectID)); $partner = $this->partnerDao->find($criteria, null, 100); if (is_null($partner)) { $this->context->setRequestScopeAttr("error", "client.error.notfound"); return false; } else { if (is_string($partner)) { $this->context->setRequestScopeAttr("error", "error.dberror"); $this->context->setRequestScopeAttr("errortxt", $project); $project = null; } } $partner = reset($partner); $mail_ob = new Mail(); $mail_ob->setTo($partner->getEmail()); $mail_ob->setSubject($this->mailPatterns->firstStageSubject . " projekte " . htmlspecialchars($project->getName())); $mail_text = $this->mailPatterns->firstStageText; $mail_text = str_replace("<PROJECT>", htmlspecialchars($project->getName()), $mail_text); $mail_text = str_replace("<CLIENT>", htmlspecialchars($client->getName()) . " " . htmlspecialchars($client->getEmail()) . " " . htmlspecialchars($client->getTelephone()), $mail_text); $mail_text = str_replace("<STAGE>", htmlspecialchars($stage->getName()), $mail_text); $mail_text = str_replace("<PERIOD>", $period, $mail_text); $mail_text = str_replace("<ENDDATE>", $enddate["validateDate"], $mail_text); $mail_text = str_replace("<LINKAS>", htmlspecialchars($this->partnerUrl) . htmlspecialchars($project->getCruid()), $mail_text); $mail_ob->setText($mail_text); /* RSS notification send BEGIN */ $rss = new Rss($project->getRsskey()); $eventRss = new EventRss(); $eventRss->title = $eventRss->getText("newClientTitle", array($project->getName())); $eventRss->description = $eventRss->getText("newClientDescription", array($project->getName(), $this->formatClientInfo($client), $stage->getName(), $period, $enddate["validateDate"])); $eventRss->link = htmlspecialchars($this->partnerUrl) . htmlspecialchars($project->getCruid()); $eventRss->pubDate = Carbon::now()->toRssString(); $eventRss->PID = $project->getId(); $eventRss->CID = $client->getId(); $eventRss->SID = $stage->getId(); if (!$rss->addEvent($project, $eventRss)) { return false; } /* RSS notification send BEGIN */ $mail_ob->sendMail(); $this->logEmeilSend($mail_ob); return true; }