예제 #1
0
//------------------------------------------------------------------------------
//$profiler->start('fill_frl_mem');
//------------------------------------------------------------------------------
//$results['data'] = print_r(TServiceOrderModel::model()->getInactiveOrders(),true);
//$results['data'] = print_r(TServiceOrderModel::model()->getNoneFeedbackOrders(),true);
//print_r($DB->sql);
//exit;
$DB = new DB('master');
//$_SESSION['DB'];
if (!isset($DB)) {
    exit;
}
//77, 78, 79, 80
//74 73 17 72
$DB->query("\n    UPDATE tservices_orders \n    SET date = NOW() - interval '1 day'\n    WHERE id = 77\n");
$DB->query("\n    UPDATE tservices_orders \n    SET date = NOW() - interval '3 days'\n    WHERE id = 78\n");
$DB->query("\n    UPDATE tservices_orders \n    SET date = NOW() - interval '1 day'\n    WHERE id = 79\n");
$DB->query("\n    UPDATE tservices_orders \n    SET date = NOW() - interval '3 days'\n    WHERE id = 80\n");
$tservices_smail = new tservices_smail();
$results['inactiveOrders'] = $tservices_smail->inactiveOrders();
$results['noneFeedbackOrders'] = $tservices_smail->noneFeedbackOrders();
//------------------------------------------------------------------------------
//$profiler->stop('fill_frl_mem');
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
array_walk($results, function (&$value, $key) {
    $value = sprintf('%s = %s' . PHP_EOL, $key, $value);
});
print_r(implode('', $results));
exit;
예제 #2
0
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/stdf.php";
//require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/config.php");
//require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/profiler.php");
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/tservices/tservices_smail.php';
//------------------------------------------------------------------------------
$results = array();
if (count($argv) > 1) {
    parse_str(implode('&', array_slice($argv, 1)), $_GET);
}
//------------------------------------------------------------------------------
$id = intval(@$_GET['id']);
$kind = intval(@$_GET['kind']);
if (!$kind) {
    $kind = 1;
}
try {
    if ($id > 0) {
        $DB->query("\n            UPDATE tservices_binds \n            SET \n                sent_up = false\n            WHERE tservice_id = ?i AND kind = ?i\n        ", $id, $kind);
    }
    $tservices_smail = new tservices_smail();
    $results['remindBindsUp'] = $tservices_smail->remindBindsUp();
} catch (\Exception $e) {
    $results['Error Message'] = $e->getMessage();
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
array_walk($results, function (&$value, $key) {
    $value = sprintf('%s = %s' . PHP_EOL, $key, $value);
});
print_r(implode('', $results));
exit;
예제 #3
0
    $log->TRACE(stats::writeGeneralStat());
    // Пересчет цен работ фрилансеров в портфолио
    $log->TRACE(professions::calcAvgPrices());
}
if (date('H') == 2) {
    $log->TRACE($mail->ContestReminder());
    $log->TRACE($mail->ContestEndReminder());
    // отмена не оплаченных заказов
    $log->TRACE(billing::checkOldReserve());
}
//------------------------------------------------------------------------------
/**
 * Уведомления закреплений ТУ.
 */
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/tservices/tservices_smail.php';
$tservices_smail = new tservices_smail();
$log->TRACE($tservices_smail->remind24hEndBinds());
//за сутки
$log->TRACE($tservices_smail->remindBindsUp());
//если опустился ниже 4 позиции включительно
//------------------------------------------------------------------------------
//За сутки до завершения срока действия закрепления
$mail->remindFreelancerbindsProlong();
//После того, как закрепление опустилось ниже середины списка закреплений (и в списке больше одного закрепления)
$mail->remindFreelancerbindsUp();
//------------------------------------------------------------------------------
/*
 * Обновление количества пользователей в разделах каталога фрилансеров
 */
$catalog = new FreelancerCatalog();
$log->TRACE($catalog->recalcCounters());
 public function actionNewOrder()
 {
     $code = __paramInit('string', 'code', 'code', '');
     $activation_data = $this->order_model->getOrderActivation($code);
     if (!$activation_data) {
         $this->missingAction(null);
     }
     $this->order_model->deleteOrderActivation($code);
     $is_new = !($activation_data['user_id'] > 0);
     $registration = new registration();
     $user_data = $registration->autoRegistationAndLogin(array('uid' => $activation_data['user_id'], 'role' => 1, 'email' => $activation_data['email'], 'uname' => $activation_data['uname'], 'usurname' => $activation_data['usurname']));
     //Если почему то не можем зарегать
     //то редиректим на регистрацию
     if (!$user_data || !$user_data['ret']) {
         $this->redirect('/registration/');
     }
     $status = $user_data['ret'];
     $user = $user_data['user'];
     $this->uid = $user->uid;
     $service_id = intval($activation_data['tu_id']);
     $debt_info = $this->order_model->isDebt($this->uid);
     //блокируем возможность заказать если у исполнителя долг
     //и вышли все сроки погашения
     if ($debt_info && $debt_info['is_blocked'] == 't') {
         $this->missingAction(null);
     }
     $activation_data['options']['emp_id'] = $this->uid;
     $this->order_model->attributes($activation_data['options']);
     $order = $this->order_model->create($service_id);
     //Не удалось создать заказ показываем 404
     if (!$order) {
         $this->missingAction(null);
     }
     //Уведомляем все стороны
     $tservices_smail = new tservices_smail();
     $tservices_smail->newOrder($order);
     //Если юзер уже бывалый пользователь то редиректим на карточку заказа
     $order_url = sprintf(tservices_helper::url('order_card_url'), $order['id']);
     if (!$is_new) {
         if ($status == users::AUTH_STATUS_2FA) {
             $_SESSION['ref_uri'] = $order_url;
             $order_url = '/auth/second/';
         }
         $this->redirect($order_url);
     }
     //Берем доп.инфу о фрилансере
     $freelancer = new freelancer();
     $freelancer->GetUserByUID($order['frl_id']);
     //Если юзер новичек то показываем ему логин/пароль и статус заказа
     $this->layout = '//layouts/content-full-width';
     $this->render('new-order', array('order_url' => $order_url, 'login' => $user->login, 'passwd' => $user->passwd, 'freelancer' => (array) $freelancer));
 }
예제 #5
0
        Example: \n 
            GET: order_id=7777&days=1
            CLI: order_id=7777 days=1
            
");
    exit;
}
*/
//------------------------------------------------------------------------------
$order_id = intval(@$_GET['order_id']);
$days = intval(@$_GET['days']);
if (!$days) {
    $days = 1;
}
try {
    if ($order_id > 0) {
        $DB->query("\n            UPDATE tservices_orders \n            SET close_date = NOW() - interval '{$days} days'\n            WHERE id = ?i AND status = ?i\n        ", $order_id, TServiceOrderModel::STATUS_EMPCLOSE);
    }
    $tservices_smail = new tservices_smail();
    //$results['inactiveOrders'] = $tservices_smail->inactiveOrders();
    $results['noneFeedbackOrders'] = $tservices_smail->noneFeedbackOrders();
} catch (\Exception $e) {
    $results['Error Message'] = $e->getMessage();
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
array_walk($results, function (&$value, $key) {
    $value = sprintf('%s = %s' . PHP_EOL, $key, $value);
});
print_r(implode('', $results));
exit;
예제 #6
0
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stdf.php';
//require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/config.php");
//require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/profiler.php");
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/tservices/tservices_smail.php';
//------------------------------------------------------------------------------
$results = array();
if (count($argv) > 1) {
    parse_str(implode('&', array_slice($argv, 1)), $_GET);
}
//------------------------------------------------------------------------------
$id = intval(@$_GET['id']);
$kind = intval(@$_GET['kind']);
if (!$kind) {
    $kind = 1;
}
try {
    if ($id > 0) {
        $DB->query("\n            UPDATE tservices_binds \n            SET \n                date_stop = NOW() + interval '23 hours',\n                sent_prolong = false\n            WHERE tservice_id = ?i AND kind = ?i\n        ", $id, $kind);
    }
    $tservices_smail = new tservices_smail();
    $results['remind24hEndBinds'] = $tservices_smail->remind24hEndBinds();
} catch (\Exception $e) {
    $results['Error Message'] = $e->getMessage();
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
array_walk($results, function (&$value, $key) {
    $value = sprintf('%s = %s' . PHP_EOL, $key, $value);
});
print_r(implode('', $results));
exit;
/**
 * Редактирование стоимости и сроков заказа ТУ
 * 
 * @param type $order_id
 * @param type $price
 * @param type $days
 * 
 * @return \xajaxResponse
 */
function tservicesOrdersSetPrice($order_id, $price, $days, $paytype)
{
    $objResponse =& new xajaxResponse();
    $uid = get_uid(false);
    $price = intval($price);
    $days = intval($days);
    $paytype = intval($paytype);
    //Валидация входных параметров
    $validator = new validation();
    $valid = $validator->is_natural_no_zero($price) && $validator->greater_than_equal_to($price, 300);
    $valid = $valid && $validator->is_natural_no_zero($days) && $validator->numeric_interval($days, 1, 730);
    $valid = $valid && in_array($valid, array(TServiceOrderModel::PAYTYPE_DEFAULT, TServiceOrderModel::PAYTYPE_RESERVE));
    if (!$valid) {
        return $objResponse;
    }
    //Получение заказа
    $orderModel = TServiceOrderModel::model();
    $order_id = intval($order_id);
    $old_order = $orderModel->getCard($order_id, $uid);
    if (!$old_order) {
        return $objResponse;
    }
    //Валидация возможности изменений
    $is_new_status = $old_order['status'] == TServiceOrderModel::STATUS_NEW;
    $is_owner = $old_order['emp_id'] == $uid;
    $is_reserve_accepted = isset($old_order['reserve_data']);
    if (!($is_new_status && $is_owner && !$is_reserve_accepted)) {
        return $objResponse;
    }
    //Проверка возможности смены типа оплаты
    $is_reserve = tservices_helper::isOrderReserve($paytype);
    if ($is_reserve && !tservices_helper::isAllowOrderReserve($old_order['category_id'])) {
        return $objResponse;
    }
    if (!$is_reserve) {
        $paytype = TServiceOrderModel::PAYTYPE_DEFAULT;
    }
    $data = array('order_price' => $price, 'order_days' => $days, 'pay_type' => $paytype);
    //Меняем
    if ($orderModel->edit($order_id, $data, $old_order['tax'])) {
        $order = $old_order;
        $order['order_price'] = $price;
        $order['order_days'] = $days;
        $order['pay_type'] = $paytype;
        //Сохранить действие в историю
        $history = new tservices_order_history($order_id);
        $history->save($order, $old_order);
        //Уведомление на почту
        $tservices_smail = new tservices_smail();
        $tservices_smail->changeOrder2($order, $old_order);
        //Обновляем интерфейс цен и сроков
        $objResponse->script("\$('tu-container-price').set('html', '" . tservices_helper::cost_format($price) . "');");
        $objResponse->script("\$('tu-container-days').set('html', '" . tservices_helper::days_format($days) . "');");
        $objResponse->script("\$('tu_edit_budjet_price').set('value', '" . $price . "');");
        $objResponse->script("\$('tu_edit_budjet_days').set('value', '" . $days . "');");
        //Обновляем сообщение статуса, т.к. вторая сторона тоже могла его изменить
        $tserviceOrderStatusWidget = new TServiceOrderStatus();
        $tserviceOrderStatusWidget->setIsEmp(true);
        $tserviceOrderStatusWidget->setOrder($order);
        $tserviceOrderStatusWidget->init();
        ob_start();
        $tserviceOrderStatusWidget->run();
        $statusHtml = ob_get_contents();
        ob_end_clean();
        $objResponse->assign('tservices_order_status_' . $order_id, 'innerHTML', $statusHtml);
        $objResponse->script("\n            \$('tu-container-price').getParent()\n            .removeClass('b-layout__link_bordbot_dot_" . ($is_reserve ? '000' : 'ee1d16') . "')\n            .addClass('b-layout__link_bordbot_dot_" . ($is_reserve ? 'ee1d16' : '000') . "');\n            \$('tu-container-price').getPrevious('span').set('html','" . ($is_reserve ? 'Бюджет:' : 'Стоимость:') . "');    \n        ");
    }
    return $objResponse;
}
 * «апускать каждый час
 * 
 * –ассылка уведомлений о 
 * наличии новых заказов дл¤ исполнителей за 24 и 72 часа
 * возможности оставить отзыв после завершени¤ заказа за 24 и 72 часа.
 * 
 */
//ini_set('display_errors',1);
//error_reporting(E_ALL ^ E_NOTICE);
ini_set('max_execution_time', 0);
ini_set('memory_limit', '512M');
if (!isset($_SERVER['DOCUMENT_ROOT']) || !strlen($_SERVER['DOCUMENT_ROOT'])) {
    //@todo: укажите вместо '' относительное положение doc_root например '/../'
    $_SERVER['DOCUMENT_ROOT'] = rtrim(realpath(dirname(__FILE__) . ''), '/');
}
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/config.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/log.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/multi_log.php";
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/tservices/tservices_smail.php";
$log = new log('hourly_tservices_orders/' . SERVER . '-%d%m%Y.log');
$log->writeln('------------ BEGIN hourly (start time: ' . date('d.m.Y H:i:s') . ') -----');
//------------------------------------------------------------------------------
try {
    $tservices_smail = new tservices_smail();
    $log->TRACE($tservices_smail->inactiveOrders());
    $log->TRACE($tservices_smail->noneFeedbackOrders());
} catch (Exception $e) {
    $log->TRACE($e->getMessage());
}
//------------------------------------------------------------------------------
$log->writeln('------------ END hourly    (total time: ' . $log->getTotalTime() . ') ---------------');
예제 #9
0
 public function doActivation($code)
 {
     $activation_data = $this->getActivation($code);
     if (!$activation_data) {
         return false;
     }
     $this->deleteActivation($code);
     $current_uid = get_uid(false);
     if ($current_uid) {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php';
         $user = new employer();
         $user->GetUserByUID($current_uid);
         $status = 1;
     } else {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/registration.php';
         $registration = new registration();
         $user_data = $registration->autoRegistationAndLogin(array('uid' => $activation_data['user_id'], 'role' => 1, 'email' => $activation_data['email'], 'uname' => $activation_data['uname'], 'usurname' => $activation_data['usurname']));
         if (!$user_data || !$user_data['ret']) {
             return self::REDIRECT_AUTH_FAIL;
         }
         $status = $user_data['ret'];
         $user = $user_data['user'];
     }
     $uid = $user->uid;
     $redirect = false;
     $data = $activation_data['data'];
     switch ($activation_data['type']) {
         case GuestConst::TYPE_PERSONAL_ORDER:
             $data['emp_id'] = $uid;
             require_once $_SERVER['DOCUMENT_ROOT'] . '/tu/models/TServiceOrderModel.php';
             $orderModel = TServiceOrderModel::model();
             if ($order = $orderModel->createPersonal($data)) {
                 $tservices_smail = new tservices_smail();
                 $tservices_smail->newOrder($order);
                 $redirect = sprintf(tservices_helper::url('order_card_url'), $order['id']);
             }
             break;
         case GuestConst::TYPE_VACANCY:
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
             $data['state'] = projects::STATE_MOVED_TO_VACANCY;
             $date_public = null;
             $redirect_layout = '/public/?step=1&kind=4&public=%s&popup=1';
         case GuestConst::TYPE_PROJECT:
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/projects.php';
             $key = md5(uniqid($uid));
             $tmpPrj = new tmp_project($key);
             $tmpPrj->initForUser($user);
             if (isset($data['IDResource']) && !empty($data['IDResource'])) {
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/uploader/uploader.php';
                 $uploader = new uploader($data['IDResource']);
                 $attachedfiles_files = $uploader->getFiles();
                 $tmpPrj->clearAttaches();
                 $tmpPrj->addAttachedFiles($attachedfiles_files, false);
                 $uploader->clear();
             }
             if ($prj = $tmpPrj->addSimpleProject($data)) {
                 $_SESSION['new_public'] = 1;
                 $redirect = getFriendlyURL('project', $prj);
                 if (isset($redirect_layout)) {
                     $redirect = sprintf($redirect_layout, $prj['id']);
                 }
                 $src_id = $prj['id'];
                 //Если проект был создан при переходе с лендинга
                 //то привязываем его для статистики
                 if (isset($data['landingProjectId'])) {
                     require_once ABS_PATH . '/classes/LandingProjects.php';
                     LandingProjects::model()->linkWithProject($data['landingProjectId'], $src_id, !$activation_data['user_id']);
                 }
             }
             break;
     }
     //Обновляем приглашение
     if (isset($activation_data['invite_id']) && $activation_data['invite_id'] > 0) {
         $guestInviteModel = new GuestInviteModel();
         $guestInviteModel->updateDateComeInvite($activation_data['invite_id'], array('src_id' => isset($src_id) ? $src_id : null, 'date_public' => isset($date_public) ? $date_public : null));
     }
     //Мессага с паролями для новеньких
     if (!$activation_data['user_id'] && !$current_uid) {
         require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/Helpers/SubBarNotificationHelper.php';
         SubBarNotificationHelper::getInstance()->setMessage($activation_data['type'], array('login' => $user->login, 'password' => $user->passwd), $user->uid);
     } elseif ($status == users::AUTH_STATUS_2FA) {
         $_SESSION['ref_uri'] = $redirect;
         $redirect = '/auth/second/';
     }
     return $redirect;
 }
예제 #10
0
        Example: \n 
            GET: order_id=7777&days=1
            CLI: order_id=7777 days=1
            
");
    exit;
}
*/
//------------------------------------------------------------------------------
$order_id = intval(@$_GET['order_id']);
$days = intval(@$_GET['days']);
if (!$days) {
    $days = 1;
}
try {
    if ($order_id > 0) {
        $DB->query("\n            UPDATE tservices_orders \n            SET date = NOW() - interval '{$days} days'\n            WHERE id = ?i AND status = ?i\n        ", $order_id, TServiceOrderModel::STATUS_NEW);
    }
    $tservices_smail = new tservices_smail();
    $results['inactiveOrders'] = $tservices_smail->inactiveOrders();
    //$results['noneFeedbackOrders'] = $tservices_smail->noneFeedbackOrders();
} catch (\Exception $e) {
    $results['Error Message'] = $e->getMessage();
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
array_walk($results, function (&$value, $key) {
    $value = sprintf('%s = %s' . PHP_EOL, $key, $value);
});
print_r(implode('', $results));
exit;