<?php

/**
 * отправляем пользователю код для подтверждения пароля
 *
 * User: oleg
 * Date: 22.09.12
 * Time: 12:48
 *
 */
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";
CModule::IncludeModule("iblock");
global $USER;
$phone = str_replace("#[^0-9]*#i", "", trim($_POST["phone"]));
$phone = str_replace("#\$(8|7).*#i", "+7", $phone);
$sms = new Smsc();
$code = generate_password(5, "easy");
$obUser = new User($USER::GetID());
$obUser->setCodePhoneConfirm($code);
$sms->send_sms($phone, "Код для подтверждения телефона: {$code}\n\nС уважением www.mytb.ru");
/**
 * Отправляем уведомления пользователям об акциях
 * User: Tabota Oleg (sForge.ru)
 * Date: 18.11.12 16:20
 * File name: send_message_event.php
 */
function send_message_event()
{
    require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";
    CModule::IncludeModule("iblock");
    global $DB;
    $clubListID = array();
    $userListID = array();
    $stokAll = array();
    $stokAllUser = array();
    // Выбираем все акции по кторым нужно разослать уведомления
    $resStoskListNoSend = $DB->Query("SELECT * FROM a_send_notice");
    /**
     * Собираем список событий по которым отправляем уведомления
     * И список пользователей
     */
    while ($row = $resStoskListNoSend->Fetch()) {
        $stokAll = array_merge((array) $stokAll, (array) explode("|", $row['EVENT_ID']));
        $stokAllUser[$row['USER_ID']] = $row['USER_ID'];
    }
    if (!count($stokAll)) {
        return "send_message_event();";
    }
    // собираем все акции всех клубов которые активны на данный момент и которые нужно разослать
    // TODO нужно еще и события рассылать
    $resStock = CIBlockElement::GetList(array("SORT" => "DESC"), array("IBLOCK_ID" => IB_SUB_STOCK_ID, ">=DATE_ACTIVE_TO" => date("d.m.Y"), "ID" => $stokAll), false, false, array("ID", "PROPERTY_CLUB_ID"));
    $idl = array();
    while ($obj = $resStock->Fetch()) {
        $clubID = intval($obj['PROPERTY_CLUB_ID_VALUE']);
        $clubListID[$clubID] = $clubID;
        $idl[] = $obj['ID'];
    }
    // Собираем всех пользователей которые подписанны на действующие акции и которым нужно разослать сегодня
    $res = CIBlockElement::GetList(array("SORT" => "DESC"), array("IBLOCK_ID" => IB_USER_PROPS, "PROPERTY_LINK_STOK" => $clubListID, "PROPERTY_USER" => $stokAllUser), false, false, array("ID", "PROPERTY_USER", "PROPERTY_LINK_STOK", "PROPERTY_LINK_NEWS", "PROPERTY_LINK_EVENT", "PROPERTY_NOTICE", "PROPERTY_DATE_SEND"));
    $day_now = date('w');
    $day_now = $day_now == 0 ? 7 : $day_now;
    while ($obj = $res->Fetch()) {
        $PROPERTY_NOTICE_VALUE = unserialize($obj['PROPERTY_NOTICE_VALUE']);
        $day_send = $PROPERTY_NOTICE_VALUE['day'];
        $metod = intval($PROPERTY_NOTICE_VALUE['stock']["count"]);
        if (in_array($day_now, $day_send)) {
            // если должны отправить сегодня, то отправляем уведомления
            $usersProps[] = array("MEOD" => $metod, "USER_ID" => $obj['PROPERTY_USER_VALUE'], "PROPS_ID" => $obj['ID']);
            $userListID[] = intval($obj['PROPERTY_USER_VALUE']);
        }
    }
    if (count($userListID)) {
        $arUser = User::getList($userListID);
        $sms = new Smsc();
        foreach ($usersProps as $var) {
            //отсылаем всем уведомления
            $send = false;
            if (in_array("sms", $var["MEOD"])) {
                $user = $arUser[$var['USER_ID']];
                $sms->send_sms($user["PERSONAL_PHONE"], "Новые акции в заведениях, на которые вы подписаны!\nС уважением MyTb.ru");
                $send = true;
            }
            if (in_array("email", $var["MEOD"])) {
                $user = $arUser[$var['USER_ID']];
                $arEventFields = array("NAME" => $user["NAME"] . " " . $user["LAST_NAME"], "EMAIL" => $user["EMAIL"]);
                CEvent::Send("SEND_MESSGE_EVENT", "s1", $arEventFields);
                $send = true;
            }
            if ($send) {
                CIBlockElement::SetPropertyValueCode(intval($var["PROPS_ID"]), "DATE_SEND", date("d.m.Y H:i:s"));
                $DB->Query("DELETE FROM a_send_notice WHERE USER_ID='{$var['USER_ID']}'");
            }
        }
    }
    return "send_message_event();";
}