Ejemplo n.º 1
0
 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);
     }
 }
Ejemplo n.º 2
0
 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;
 }