function editclient_exec($Frm, $Err) { if (!$Err) { $client_info = Client::find($Frm->GetNmValueI("id")); if (!$client_info) { $Frm->_gui->ERR("Клиент не найден"); page_reloadToSec(2); } $filial_id = $Frm->GetNmValueI("filial_id"); if (empty($filial_id)) { $Frm->_gui->ERR("Не указан филиал"); return; } $new_password = $client_info['hpwd']; $pwd = $client_info['password']; if ($Frm->GetNmValueH("newpwd") != "") { if ($Frm->GetNmValueI("genpwd")) { $pwd = generate_pasw(5); } else { $pwd = $Frm->GetNmValueI("newpwd"); } if (strlen($pwd) < 5) { $Frm->_gui->ERR("Длина пароля должна быть не менее 5 символов"); return; } if (strlen($pwd) > 20) { $Frm->_gui->ERR("Длина пароля должна быть не более 20 символов"); return; } $eml = strtolower($Frm->GetNmValueH("email")); $new_password = md5($pwd . $eml); } db::insert(TABLE_CLIENTS_HISTORY, array('change_date' => time(), 'change_user_id' => $_SESSION['user']['data']['id'], 'client_id' => $client_info["id"], 'filial_id_new' => $filial_id, 'fio_new' => $Frm->GetNmValueH("fio"), 'hpwd_new' => $new_password, 'email_new' => $Frm->GetNmValueH("email"), 'telnum_new' => $Frm->GetNmValueH("telnum"), 'city_new' => $Frm->GetNmValueH("city"), 'icq_new' => $Frm->GetNmValueH("icq"), 'skype_new' => $Frm->GetNmValueH("skype"), 'contacts_new' => $Frm->GetNmValueH("contacts"), 'about_new' => $Frm->GetNmValueH("about"), 'filial_id_old' => $client_info['filial_id'], 'fio_old' => $client_info['fio'], 'hpwd_old' => $client_info['hpwd'], 'email_old' => $client_info['email'], 'telnum_old' => $client_info['telnum'], 'city_old' => $client_info['city'], 'icq_old' => $client_info['icq'], 'skype_old' => $client_info['skype'], 'contacts_old' => $client_info['contacts'], 'about_old' => $client_info['about'])); Client::update($client_info['id'], array('filial_id' => $filial_id, 'fio' => $Frm->GetNmValueH("fio"), 'email' => $Frm->GetNmValueH("email"), 'telnum' => $Frm->GetNmValueH("telnum"), 'city' => $Frm->GetNmValueH("city"), 'hpwd' => $new_password, 'password' => $pwd, 'icq' => $Frm->GetNmValueH("icq"), 'skype' => $Frm->GetNmValueH("skype"), 'contacts' => $Frm->GetNmValueH("contacts"), 'about' => $Frm->GetNmValueH("about"), 'ref_id' => $Frm->GetNmValueI('ref'), 'from_id' => $Frm->GetNmValueI('client_from'))); db::update(TABLE_ORDERS, array('filial_id' => $filial_id), 'klient_id = ' . $client_info["id"]); $Frm->_gui->OK("Сохранено"); page_reloadAll(); } }
$error = ""; if (isset($_REQUEST["cab_prof_infochng"])) { $c = clearText($_REQUEST["cab_prof_infochng"]); $c = substr($c, 0, 500); Client::update($_SESSION["frame"]["client"]["id"], array('contacts' => $c)); $_SESSION["frame"]["client"]["contacts"] = $c; $info = "Сохранено"; } if (isset($_REQUEST["cab_prof_pwdchng"]) && is_array($_REQUEST["cab_prof_pwdchng"])) { $a = $_REQUEST["cab_prof_pwdchng"]; if ($a["old"] == $_SESSION["frame"]["client"]["password"]) { if ($a["new"] == $a["rep"]) { $new = preg_replace("/[^0-9a-z]/i", "", $a["new"]); if (strlen($new) > 4 && strlen($new) < 21) { $hpwd = md5($new . strtolower($_SESSION["frame"]["client"]["email"])); Client::update($_SESSION["frame"]["client"]["id"], array('hpwd' => $hpwd, 'password' => $new)); $info = "Пароль изменен"; $txt = "<p>Здравствуйте, " . $_SESSION["frame"]["client"]["fio"] . "!</p>" . "Новый пароль для доступа к личному кабинету: <i>" . $new . "</i>" . "<p><i>С уважением, компания по написанию студенческих работ.</i></p>"; $email = new Email(); $email->setData(array('email' => $_SESSION["frame"]["client"]["email"], 'name' => $_SESSION["frame"]["client"]["fio"]), "Изменение пароля к личному кабинету", $txt, array(), true, array(), array('email' => Filials::getEmail($_SESSION["frame"]["client"]["filial_id"]), 'name' => Filials::getName($_SESSION["frame"]["client"]["filial_id"]))); if ($email->send()) { $info .= ". Сообщение на почту отправлено."; } else { $info .= ". Не удалось отправить сообщение на почту."; } } else { $error = "Длина пароля должна быть 5-20 символов 0-9,a-z"; } } else { $error = "Пароли не совпадают"; }
function add_order($client_id, &$err) { $err = ""; try { $client = Client::find($client_id); } catch (Exception $e) { $err = "Ошибка - не указан клиент"; return false; } try { $filial = Filial::find($client['filial_id']); } catch (Exception $e) { $filial = Filials::getDefault(); Client::update($client['id'], array('filial_id' => $filial['id'])); db::update(TABLE_ORDERS, array('filial_id' => $filial['id']), 'klient_id = ' . $client['id']); } $pgs = get_min_max_from_str($_SESSION["zf_work_pages"]); // disc id try { $discipline = Discipline::find($_SESSION["zf_work_predm"]); $disc_id = $discipline['id']; } catch (Exception $e) { $discipline = Discipline::findOneBy(array('name' => $_SESSION["zf_work_predm"])); if ($discipline) { $disc_id = $discipline['id']; } else { $disc_id = Discipline::create(array('name' => $_SESSION["zf_work_predm"])); } } $info = $_SESSION["zf_work_dopinfo"]; $worktype_custom = ''; $worktype = null; try { $worktype = Worktypes::find($_SESSION["zf_work_type"]); } catch (Exception $e) { $worktype = Worktypes::findOneBy(array('name' => $_SESSION["zf_work_type"])); if (!$worktype) { $worktype_custom = $_SESSION["zf_work_type"]; $worktype['id'] = null; } } $id = Order::create(array("filial_id" => $filial['id'], "klient_id" => $client['id'], "type_id" => $worktype['id'], "type_user" => $worktype_custom, "disc_id" => $disc_id, "time_kln" => strtotime($_SESSION["zf_work_date"]), "subject" => $_SESSION["zf_work_tema"], "about_kln" => $info, "pages_min" => $pgs["min"], "pages_max" => $pgs["max"])); if ($id > 0) { //////////////////////// // Текст клиенту $txt = "<p>Здравствуйте, " . $client["fio"] . "!</p>"; // Если первый раз if (@$_SESSION["new_klient_added"]) { $txt .= "<p>Мы очень рады, что Вы решили воспользоваться нашими услугами и высоко ценим Ваше доверие!</p>" . "<p>Теперь Вы можете войти в личный кабинет:<br>" . " Логин: " . $client["email"] . "<br>" . " Пароль: " . $client["password"] . "<br></p>"; } else { $txt .= "<p>Спасибо, что Вы с нами! Для постоянных клиентов у нас всегда есть интересные и выгодные предложения!</p>"; } $zak = "<p>Номер заказа: " . $id . "<br>" . "Дата: " . date("d.m.Y") . "<br>"; $zak .= "Вид работы: "; if (!empty($worktype_custom)) { $zak .= $worktype_custom . "<br>"; } else { $zak .= $worktype["name"] . "<br>"; } $zak .= "Дисциплина: "; if ($discipline) { $zak .= $discipline['name'] . "<br>"; } else { $zak .= $_SESSION["zf_work_predm"] . "<br>"; } $zak .= "Тема работы: " . $_SESSION["zf_work_tema"] . "<br>" . "Требования: " . $_SESSION["zf_work_dopinfo"] . "<br>" . "Дата сдачи: " . $_SESSION["zf_work_date"] . "<br>" . "Число страниц: " . $_SESSION["zf_work_pages"] . "<br>" . ($txt .= "<p>Ваш заказ принят, и в ближайшее время наш менеджер свяжется с Вами.</p>" . "<p>Содержание заказа: <br>" . $zak . "</p>"); $txt .= "<p><i>С уважением, компания по написанию студенческих работ.</i></p>"; $email = new Email(); $email->setData(array('email' => $client['email'], 'name' => $client['fio']), "Ваш заказ принят!", $txt, array(), true, array(), array('email' => $filial['email'], 'name' => $filial['name'])); //$m->SMTPDebug = true; if ($email->send()) { $user_send_res = "Письмо клиенту отправлено"; } else { $user_send_res = "Ошибки при отправке письма клиенту: " . $email->ErrorInfo; } //////////////////////// // Текст в приемную заказов $zak .= "<p>Заказчик:<br>"; if (@$_SESSION["new_klient_added"]) { $zak .= "Новая регистрация<br>"; } $zak .= "id: " . $client["id"] . "<br>" . "Имя: " . $client["fio"] . "<br>" . "Почта: " . $client["email"] . "<br>" . "Телефон: " . $client["telnum"] . "<br>" . "Город: " . $client["city"] . "<br>" . "Другие контакты: " . $client["contacts"] . "<br>"; $zak .= $user_send_res; // Прикалываем файлы $files = check_user_files(); $message_id = \Components\Entity\Message::create(array('parent_id' => 0, 'order_id' => $id, 'klient_id' => $client["id"], 'visit_id' => 0, 'tender_id' => 0, 'created' => time(), 'creator_id' => 'k' . $client["id"], 'addr' => 'u' . $filial['id'], 'subject' => "Поступил новый заказ #" . $id, 'text' => $zak, 'prior' => 1, 'uvedom' => 1, 'readed' => 0, 'needansv' => 0, 'basket' => 0)); if (!empty($message_id)) { \Components\Classes\Author::enqueue_message_to_email($message_id, $filial['id'], EmailNotification::TO_MANAGER_ON_CLIENT_CREATED_ORDER); } /* ОТПРАВИТЬ В РЕАЛЬНОМ ВРЕМЕНИ $email = new Email(); $email->setData(array( 'email' => FIRM_ORD_MAIL, 'name' => 'Приемная заказов', ), "Поступил новый заказ #" . $id, $zak, $files, true, array(), array( 'email' => $filial['email'], 'name' => $filial['name'], )); $email->send(); ENDOF ОТПРАВИТЬ В РЕАЛЬНОМ ВРЕМЕНИ */ // move file if (count($files)) { $path = DIR_FS_ORDER_FILES . $id; if (!file_exists($path)) { mkdir($path); } foreach ($files as $f) { $fid = OrderFile::create(array('order_id' => $id, 'creator_id' => 0, 'created' => time(), 'name' => $f["name"], 'size' => $f["size"])); if ($fid > 0) { $ext = substr($f["name"], strrpos($f["name"], ".") + 1); $f_s = fopen($f["path"], "r"); $f_d = fopen($path . "/" . $fid . "." . $ext, "w"); fwrite($f_d, fread($f_s, $f["size"])); fclose($f_s); fclose($f_d); } unlink($f["path"]); } } $path = TMPFILES_PATH . session_id(); if (file_exists($path)) { rmdir($path); } return true; } else { return false; } }
public static function edit_client($params) { $cid = $params['client_id']; unset($params['client_id']); $res = Client::update($cid, $params['fields_values']); // db::Update("clients", array_keys($params['fields_values']), array_values($params['fields_values']), $params['params']); if (0 == ($errno = mysql_errno() && $res)) { return self::generate_response(true, "OK"); } else { return self::generate_response(false, db::error('client updating SQL', $errno, mysql_error())); } }