コード例 #1
0
ファイル: pmail.php プロジェクト: Nikitian/fl-ru-damp
 /**
  * Уведомление обоим участникам СБР о вынесении решения арбитража.
  * @param array $events   информация по событиям (если событий нескольлко, то содержит несколько элементов).
  */
 function SbrArbResolved($events)
 {
     $ev0 = $events[0];
     $this->subject = "Арбитраж вынес решение по Безопасной Сделке (проект «{$ev0['sbr_name']}»)";
     $url = $GLOBALS['host'] . '/' . sbr::NEW_TEMPLATE_SBR . '/';
     $sbr = new sbr(NULL);
     $stage = $sbr->getStage($ev0['own_id']);
     $arb = $stage->getArbitrage(false, false);
     for ($e = 0; $e < 2; $e++) {
         $r = $e ? 'e_' : 'f_';
         $stage_name = sbr_meta::getNameForMail($ev0);
         if ($r == 'f_') {
             $userlink = $GLOBALS["host"] . "/users/" . $ev0['e_login'];
             $usr = "******";
         } else {
             $userlink = $GLOBALS["host"] . "/users/" . $ev0['f_login'];
             $usr = "******";
         }
         $msg = "Информируем Вас о том, что Арбитраж вынес решение в Сделке «<a href='{$url}?site=Stage&id={$ev0['own_id']}{$this->_addUrlParams($r == 'e_' ? 'e' : 'f', '&')}'>{$stage_name}</a>» и закрыл ее. ";
         $msg .= "Пожалуйста, перейдите в <a href='{$url}?site=Stage&id={$ev0['own_id']}{$this->_addUrlParams($r == 'e_' ? 'e' : 'f', '&')}'>сделку</a>, чтобы ознакомиться с решением Арбитража и оставить отзыв {$usr}, а также отзыв сервису Безопасная Сделка.";
         //$msg =  "«Арбитраж» сервиса «Сделка без риска» вынес решение по задаче «<a href='{$url}?site=Stage&id={$ev0['own_id']}{$this->_addUrlParams($r == 'e_' ? 'e' : 'f', '&')}'>{$ev0['stage_name']}</a>» проекта <a href='{$url}?id={$ev0['sbr_id']}{$this->_addUrlParams($r == 'e_' ? 'e' : 'f', '&')}'>{$ev0['sbr_name']}</a>:<br/><br/>";
         //$msg .= "----<br/>";
         //$msg .= "«{$stage->arbitrage['descr_arb']}»";
         //$msg .= "<br/>----<br/>";
         //$msg .= '<br/><br/>Пройдите по ссылке, чтобы получить более подробную информацию.';
         $this->message = $this->splitMessage($this->GetHtml($ev0[$r . 'uname'], $msg, array('header' => 'simple', 'footer' => 'norisk_robot')));
         $this->recipient = $ev0[$r . 'uname'] . " " . $ev0[$r . 'usurname'] . " [" . $ev0[$r . 'login'] . "] <" . $ev0[$r . 'email'] . ">";
         $this->SmtpMail('text/html');
     }
 }
コード例 #2
0
ファイル: pskb.php プロジェクト: uadev/fl-ru-damp
 public static function listenRequest($src)
 {
     global $DB;
     $log = new log("pskb_listen/{$src}-" . SERVER . '-%d%m%Y.log', 'a', '%d.%m.%Y %H:%M:%S : ');
     ob_start();
     var_dump(file_get_contents('php://input'));
     $out = ob_get_clean();
     $log->writeln(iconv('utf8', 'cp1251', $out));
     switch ($src) {
         case 'superCheck':
             $request = json_decode(file_get_contents('php://input'));
             if ($request) {
                 $pskb = new pskb();
                 foreach ($request as $k => $pskb_req) {
                     $pskb_req = new pskb_lc(json_encode($pskb_req));
                     $row = $pskb->getLCbyLCId($pskb_req->id);
                     if ($pskb_req->history) {
                         foreach ($pskb_req->history as $pskb_lc) {
                             if (!$pskb_lc->id) {
                                 continue;
                             }
                             // Пытаемся определить uid если он пустой, подходит только для одноэтапной сделки
                             // @todo с многоэтапными тоже что-то придумать надо
                             if ($pskb_lc->uid == '' || $pskb_lc->uid == null) {
                                 $sql = "SELECT s.id FROM pskb_lc pl\n                                            INNER JOIN sbr s ON s.id = pl.sbr_id\n                                            WHERE pl.lc_id = ? AND stages_cnt = 1";
                                 // Запрос делаем что-бы точно проверить что этап в сделке один единственный
                                 $sbr_id = $DB->val($sql, $pskb_req->id);
                                 if ($sbr_id > 0) {
                                     $pskb_lc->uid = "{$sbr_id}-1";
                                 }
                             }
                             if ($DB->val("SELECT id FROM pskb_lc_supercheck WHERE lc_id = ? AND uid = ? AND state = ? AND date = ? AND target = ?b", $pskb_req->id, "{$pskb_lc->uid}", $pskb_lc->state, $pskb_lc->date, $pskb_lc->target ? true : false) > 0) {
                                 continue;
                                 // В базе уже есть идентичная запись
                             }
                             $insert = array('lc_id' => $pskb_req->id, 'state' => $pskb_lc->state, 'date' => date('c', strtotime($pskb_lc->date)), 'uid' => "{$pskb_lc->uid}", 'target' => $pskb_lc->target ? true : false, 'sum' => $pskb_lc->sum, 'account' => $pskb_lc->account, 'ps' => $pskb_lc->ps);
                             $DB->insert('pskb_lc_supercheck', $insert);
                             continue;
                             /**
                              * @deprecated Пока все что ниже работать не должно просто пишем в базу историю которую возвращают
                              */
                             $stg = sbr_meta::getStatePayout(explode('-', $pskb_lc->uid));
                             if ($pskb_lc->state == $stg['state']) {
                                 continue;
                             }
                             switch ($pskb_lc->state) {
                                 case self::PAYOUT_END:
                                     // отправлено по реквизитам
                                 // отправлено по реквизитам
                                 case self::PAYOUT_ERR:
                                     // зачислено в ВК
                                     // выплачено
                                     $sbr = new sbr($stg['emp_id']);
                                     $stage = $sbr->getStage($stg['stage_id']);
                                     $stage->getArbitrage(false, false);
                                     if ($stage->arbitrage && $stage->arbitrage['resolved']) {
                                         $emp_percent = abs(sbr::EMP - $stage->arbitrage['frl_percent']);
                                         $frl_percent = abs(sbr::FRL - $stage->arbitrage['frl_percent']);
                                     } else {
                                         $frl_percent = 1;
                                     }
                                     $frl_payout = true;
                                     $emp_payout = true;
                                     if ($frl_percent > 0) {
                                         $frl_payout = !$stage->payoutAgnt($stg['frl_id'], new pskb($stage->sbr->data['id']), $pskb_lc);
                                     }
                                     if ($emp_percent > 0) {
                                         $emp_payout = !$stage->payoutAgnt($stg['emp_id'], new pskb($stage->sbr->data['id']), $pskb_lc);
                                     }
                                     if (!$frl_payout && !$emp_payout) {
                                         continue;
                                     }
                                     break;
                             }
                             $lc = $pskb_req;
                             if (!$lc->id || $lc->state == $row['state']) {
                                 continue;
                             }
                             switch ($lc->state) {
                                 case self::STATE_COVER:
                                 case self::STATE_END:
                                     if ($lc->state == self::STATE_END) {
                                         $up_data['ended'] = $pskb_lc->date;
                                     }
                                     break;
                                 case self::STATE_ERR:
                                     break;
                                 default:
                                     continue;
                             }
                             $up_data['state'] = $lc->state;
                             $up_data['stateReason'] = $lc->stateReason;
                             $pskb->upLC($up_data, $row['lc_id']);
                         }
                     }
                 }
             }
             break;
         default:
             break;
     }
     return true;
 }