Перейти к содержимому


Публикации All_ex74

136 публикаций создано All_ex74 (учитываются публикации только с 08-Май 23)



#24392 Версия 2.0.2

Отправлено от All_ex74 в 16 Июнь 2014 - 09:36 in Новые версии, новые возможности

Подскажите, как обновиться с 1.9.9 до 2.0.2 , можно ли простым перезатиранием файлов через FTP на сервере обойтись?



#24394 Версия 2.0.2

Отправлено от All_ex74 в 16 Июнь 2014 - 10:28 in Новые версии, новые возможности

Да я пока на тестовой версии - дописываю конфигурацию. Но мне скоро понадобится ваша помощь не безвозмездно, соответственно. Суть в запросах с внешнего ресурса (IVR система OKTELL), должна дублироваться логика добавления записей в таб. Заказчики. Свяжусь с вами по Скайпу.



#24433 Детально описание функции send_template

Отправлено от All_ex74 в 16 Июнь 2014 - 17:58 in Разработчикам

Просмотр сообщенияCbCoder (16 Июнь 2014 - 17:52) писал:

Что-то юмора не понял: вычисление в таблице Исполнители с полем Исполнитель? Таблица сама на себя ссылается? Если это опечатка, то вопрос: а шаблон где лежит, в какой таблице?

Извиняюсь, опечатка - таб. Заявки конечно же - шаблон рассылки соответственно тоже в этой же таблице...
Но обнаружил интересное совпадение, конечно не должно по идее повлиять - ID таб. Исполнители (240) совпадает с ID шаблона...



#24428 Детально описание функции send_template

Отправлено от All_ex74 в 16 Июнь 2014 - 17:23 in Разработчикам

Затрудняюсь с отправкой по шаблону, подмогните...

Таб. Исполнители: вычисление на поле Статус (список), срабатывающее на изменение значения поля в - Исполняемая.
Имеется поле Исполнитель, связанное с таб. Исполнители. Создан шаблон рассылки с ID 240. Проверена тестовая отправка: внутренний SMTP отправляет без ошибок, почта доходит. Само вычисление работает, но вот строка send_template(240, "`status`=0 AND `id` =".$line['Исполнитель']['ID']); не хочет отправлять почту...

Вроде и запрос стандартный, не отправляет и всё тут... Где искать?

if ($line['Статус']=="Исполняемая")
{
		  $line['Исполнитель']['Карточка'] = "Связана";
		  send_template(240, "`status`=0 AND `id` =".$line['Исполнитель']['ID']); // отсылаем письмо исполнителю
}
if ($line['Статус']=="Завершённая")
{
		  $line['Закрыта'] = date("d.m.Y H:i");
		  $line['Заказчик']['Связана по услуге'] = "";
		  $line['Исполнитель']['Карточка'] = "Свободна";
}
if ($event['changed']['5620']['old']=="Завершённая") $line['Статус'] = "Завершённая";



#24434 Детально описание функции send_template

Отправлено от All_ex74 в 16 Июнь 2014 - 17:59 in Разработчикам

Просмотр сообщенияCbCoder (16 Июнь 2014 - 17:54) писал:

Да, и что значит "не хочет отправлять", письмо в Список рассылок попадает? Там выходит какое-то сообщение об ошибке? В первую очередь туда смотреть надо и сообщать тут результат отправки или провала.
В том то и дело, что список рассылок пуст!.. Ошибок никаких нет - как будто ничего не отправлялось.



#24430 Детально описание функции send_template

Отправлено от All_ex74 в 16 Июнь 2014 - 17:40 in Разработчикам

Просмотр сообщенияCbCoder (16 Июнь 2014 - 17:30) писал:

И? Пишите сразу всё, без редактирования, т.к. я часто сразу с почты захожу и потом ваши изменения не факт что увижу (могу вообще забыть потом зайти сюда).

Что ещё? Вроде все описал...



#24439 Детально описание функции send_template

Отправлено от All_ex74 в 16 Июнь 2014 - 18:31 in Разработчикам

Просмотр сообщенияCbCoder (16 Июнь 2014 - 18:19) писал:

?
Все отправилось, спасибо.



#24586 Детально описание функции send_template

Отправлено от All_ex74 в 20 Июнь 2014 - 06:54 in Разработчикам

Просмотр сообщенияCbCoder (18 Июнь 2014 - 10:04) писал:

Ну так как именно сделали то, перенесли шаблон из Заявок в Исполнителя? Или условие фильтра исправили? Интересно же.



А какой там может быть примерчик то? Банальная отправка письма с любым текстом и темой нужному адресату. Работает полностью аналогично sendsms, и если вы уже работали с ней, то не понимаю в чем сложность с sendmail.

sendmail("Оповещение", "Здравствуйте! Напоминаем вам об истечении срока оплаты.", "client@example.com");

Спасибо, так и думал. Сами говорили, что лучше переспросить лишний раз...)



#24496 Детально описание функции send_template

Отправлено от All_ex74 в 18 Июнь 2014 - 07:18 in Разработчикам

Просмотр сообщенияCbCoder (17 Июнь 2014 - 13:53) писал:

Не совсем понял, описание функции нужно? sendmail (тема, текст, кому);

Нет не функции, а любой рабочий примерчик. Поля я сам подставлю нужные. Иногда требуется послать одно письмо без шаблона и подстановки в общую очередь отправки. В отправке SMS есть подобная функция - sendsms. С ней я уже разобрался полностью и хотел бы узнать подобие в отправке почты...



#24495 Детально описание функции send_template

Отправлено от All_ex74 в 18 Июнь 2014 - 07:14 in Разработчикам

Просмотр сообщенияCbCoder (17 Июнь 2014 - 13:53) писал:

Вы хоть поясняйте, что в результате чего заработало, а то может зря я распинался.

Да всё уже сделал, не зря распинались)



#24440 Детально описание функции send_template

Отправлено от All_ex74 в 16 Июнь 2014 - 18:43 in Разработчикам

Подскажите пожалуйста, а как отправить sendmail () - т.е. без шаблона?



#24436 Детально описание функции send_template

Отправлено от All_ex74 в 16 Июнь 2014 - 18:18 in Разработчикам

и...



#24350 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 13 Июнь 2014 - 10:42 in Как это сделать

Вопрос снят в этой теме - создана отдельная...



#24221 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 07 Июнь 2014 - 16:38 in Как это сделать

Цитата

Да, теперь все верно с $line. Еще раз повторюсь: $line - это массив полей текущей строки, т.к. строки в той таблице, где работает это вычисление, поэтому таблицу указывать не нужно.
...Я вот только не понимаю одного здесь, как в условии выборки полю f3450 будет присвоен выбранный в Заказчике Город и полю f4690 - выбранная в Заказчике услуга? Например f3450 = Барнаул, а f4690 = Ремонт компьютеров.

Цитата

Почему у вас в условии поле ФИО исполнителя (f3460) приравнено к $line['ID']? Что вы хотели этим сказать?

а как правильно будет?

Цитата

Затем у вас должен быть запрос на обновление этой записи, с изменением значения флага на 1, и в следующий раз эта запись уже не попадет в первый запрос.

Так нам же нужно еще и имеющийся уже флаг=1 (значит нужно его как то найти до этого) перезаписать на флаг=0, а так постепенно всем флаг=1 будет присвоен и выбирать некого будет)



#24222 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 07 Июнь 2014 - 16:49 in Как это сделать

if ($line['Состояние'] == "Связана")
{
		$row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], "AND `f4690`=", $line['Связана по услуге']['ID'], "AND `f3530`='Свободна' AND `f3460`=", $line['ID'], "AND `f6130`=0");
		$isp = $row['f3460']; // тут присваиваем значение переменной

		$zvka = data_table("Заявки","`status`<>'2' AND `Заказчик`=".$line['ID']); // запрет на вторичное размещение - заявка будет размещаться, как вручную оператором, так и внешним запросом...
		if (!$zvka)
		{
				   $zvka['Город'] = $line['Город']['ID'];
				   $zvka['Заказчик'] = $line['ID'];
				   $zvka['Тип услуги'] = $line['Связана по услуге'];
				   $zvka['Исполнитель'] = $isp; // а как тут то быть? как отсортировать с массива нужного исполнителя?
				   $zvka['ID'] = insert_query($zvka, "Заявки");
		}
}





#24218 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 07 Июнь 2014 - 16:12 in Как это сделать

Обновитесь, только что добавил...



#24216 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 07 Июнь 2014 - 15:45 in Как это сделать

Цитата

$line['Заказчики']['Город']['ID'] - это что? Поле Город в таблице Заказчики что ли? В переменной $line нет имен таблиц! Это массив полей текущей строки, в данном случае в таблице Заказчики, поэтому указывать таблицу в $line не нужно!

1. а если не указать таблицу, то как тогда присвоить нужные значения полям для фильтрации при выборке?
2. И как назначить первую запись из выбранного массива (по значениям состояния полей) и не повторить выбор уже использованной до этого? Может всё таки нужна сортировка?

if ($line['Состояние'] == "Связана")
{
		$row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], "AND `f4690`=", $line['Связана по услуге']['ID'], "AND `f3530`='Свободна' AND `f3460`=", $line['ID'], "AND `f6130`=0");
		$isp = $row['f3460']; // тут присваиваем значение переменной

		$zvka = data_table("Заявки","`status`<>'2' AND `Заказчик`=".$line['ID']);
		if (!$zvka)
		{
                   $zvka['Город'] = $line['Город']['ID'];
                   $zvka['Заказчик'] = $line['ID'];
                   $zvka['Тип услуги'] = $line['Связана по услуге'];
                   $zvka['Исполнитель'] = $isp; // а как тут то быть? как отсортировать с массива нужного исполнителя?
                   $zvka['ID'] = insert_query($zvka, "Заявки");
		}
}





#24161 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 05 Июнь 2014 - 15:10 in Как это сделать

Просмотр сообщенияCbCoder (05 Июнь 2014 - 14:35) писал:

Первый пункт: изначально не совсем верно сделано. Поле Карточка должна тоже участвовать в фильтрации, ее можно вынести выше и фильтровать по нему поле Город (так же, как по Городу фильтруется Тип услуги), а само поле заполнять просто по умолчанию значением "Свободна".

Второй пункт не совсем понял честно говоря. Что значит "при следующем обращении"? При обращении где? В этой же карточке или следующей?

1. Пробовал, не получается сделать фильтрацию по четвертому полю (Карточка). На двух уровнях фильтруется, а при добавлении третьего начинаются косяки. По форуму несколько сообщений с типичной проблемой. Значения у полей Город, ФИО, Сфера услуг в таб. Исполнители статичны (присвоены единожды и навсегда), а у поля Карточка значения постоянно меняются. Вот после того и появляется неверная фильтрация, а то и вовсе ничего не фильтруется - вываливается полным списком, причем по всем указанным полям. Пробовал разные способы, но так и не добился успеха. Думаю это баг. Ну а по массиву подтянутых в поле Исполнитель значений, вычислением, что нельзя никак вытащить нужное и присвоить его данному полю?...

2. Следующий по списку (с значением поля Карточка - Свободна) должен выбираться "глобально" - при любом запросе. Этот же Исполнитель может быть выбран только когда пройдут все по списку... Вот и не знаю как это реализовать - ведь количество Исполнителей со значением поля Карточка - Свободна не нормированное и постоянно меняется.



#24225 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 07 Июнь 2014 - 18:05 in Как это сделать

1. Вставил запрос на обновление флага (Флаг=1), но сейчас обновляется поле у всех выбранных строк, а как сделать, чтобы менялся только у первой записи из выбранных запросом?

2. Как правильно назначить переменной $isp значение поля ФИО т. Исполнители, что бы потом скопировать его в поле Исполнитель т. Заявки??

3. И по синтаксису общего запроса на выборку проверьте пож. - я не накосячил? Да и ошибок вроде нет, но всё равно не копируется Исполнитель в Заявку:

if ($line['Состояние'] == "Связана")
{
				$row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'");
				$isp = $row['f3460'];  // у меня не получается назначить переменной значение поля ФИО, где f3460 - поле ФИО т. Исполнители.
				$flag = $row['f6130'];
				data_update(240, array($flag=>1), "`status`=0 and `f6130`='0'"); // запрос на обновление флага добавил, но теперь выводит ошибку, что такого поля нет.

				$zvka = data_table("Заявки","`status`<>'2' AND `Заказчик`=".$line['ID']);
				if (!$zvka)
				{
								   $zvka['Город'] = $line['Город']['ID'];
								   $zvka['Заказчик'] = $line['ID'];
								   $zvka['Тип услуги'] = $line['Связана по услуге']['ID'];
								   $zvka['Исполнитель'] = $isp['ID']; // тут пытаюсь копировать...
								   $zvka['ID'] = insert_query($zvka, "Заявки");
				}
}


Ошибка на работу вычисления:

				
			</div>
		</div>
	</div>
	<br />
</div>
<hr />
<br />

		

			
	<!--Begin Msg Number 24248-->
<div class=

#24248 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 09 Июнь 2014 - 12:23 in Как это сделать

Какой Вы молодец все таки! Спасибо большое за терпение к таким "специалистам" как я. Сейчас быстренько всё поменяю и продолжу...



#24345 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 12 Июнь 2014 - 13:12 in Как это сделать

Просмотр сообщенияCbCoder (11 Июнь 2014 - 15:11) писал:

По шлюзу я без понятия что у вас не то, т.к. это может зависеть от чего угодно, в том числе от предоставленного провайдером кода. Создайте отдельную тему и опишете там подробнее, не надо мешать тут все в одну кучу.

Перенес "запрет" ниже выборки - ничего не поменялось, как копировалось по две записи даже при отсутствии результата в выборке, так и осталось. Залез в базу, посмотрел в таблицу cb_calc - все в порядке, код такой же:

if ($line['Состояние'] == "Связана")
{
		$zvka = data_table("Заявки","`status`<>'2' AND `Статус`='Исполняемая' AND `Заказчик`=".$line['ID']);	
		$row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'");

		if (!$zvka)
		{
				if (!$row)
				{
						data_update(240, array('f6130'=>0), "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID']);
						$row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'");
				}
				$zvka['Город'] = $line['Город']['ID'];
				$zvka['Заказчик'] = $line['ID'];
				$zvka['Тип услуги'] = $line['Связана по услуге']['ID'];
				$zvka['Исполнитель'] = $row['id'];
				$zvka['ID'] = insert_query($zvka, "Заявки");
				data_update(240, array('f6130'=>1), "id=",$row['id']);
		}

		sendsms("Вами была сформирована заявка &#8470;".$zvka['ID']." на услугу ".$line['Связана по услуге']['ID'].". Ожидайте ответа.", $line['Телефон'], "ENU");
}


2. Мало того СМС, пришли скопом (проблема была не в коде, а со стороны агрегатора) и на каждую отправку тоже по две штуки...



#24321 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 11 Июнь 2014 - 14:01 in Как это сделать

Но копируется дважды, если не выбрано ничего. На скрине же видно, сам удивился.
1. Нужно как то добавить запрет на копирование вовсе, если выборка по условиям пуста...

if ($line['Состояние'] == "Связана")
{
	    $zvka = data_table("Заявки","`status`<>'2' AND `Статус`='Исполняемая' AND `Заказчик`=".$line['ID']);
	    if (!$zvka)
	    {
			    $row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'");
			    if (!$row)
			    {
					    data_update(240, array('f6130'=>0), "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID']);
					    $row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'");
			    }
			    $zvka['Город'] = $line['Город']['ID'];
			    $zvka['Заказчик'] = $line['ID'];
			    $zvka['Тип услуги'] = $line['Связана по услуге']['ID'];
			    $zvka['Исполнитель'] = $row['id'];
			    $zvka['ID'] = insert_query($zvka, "Заявки");
			    data_update(240, array('f6130'=>1), "id=",$row['id']);
	    }
	   
	    sendsms("Вами была сформирована заявка №".$zvka['ID']." на услугу ".$line['Связана по услуге']['ID'].". Ожидайте ответа.", $line['Телефон'], "ENU");
}


2. Добавил отправку СМС, но что то не отправляет. Хотя в базе данных код отрабатывается... выложу код модуля шлюза - проверьте пожалуйста:

function send_sms() {
 
  global $sms;
  $user = "abc@yagool.ru";
  $password = "5BQY5mvklwNX";
  $phone = $sms["phone"];
  $sender = "ENU";
  $text = $sms["text"];
  $translit = array(
					    "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
					    "Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I",
					    "Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
					    "О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
					    "У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
					    "Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"",
					    "Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",
					    "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j",
					    "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
					    "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
					    "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
					    "ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
					    "ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"	
				    );
  $text_tran = strtr($text, $translit);
  $message = $text_tran;
  if (file_get_contents('http://gate.smsaero.ru/send/?user='.$user.'&password='.md5($password).'&to='.$phone.'&from='.$sender.'&text='.urlencode($message))) {
	
  return 'OK';
    }
  else {
 
	 return 'ERROR';
    }
}


Заполнено вроде верно - что за хрень такая!..



#24291 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 10 Июнь 2014 - 19:04 in Как это сделать

Погонял немного и обнаружился "интересный" косяк - если по условиям выборки строки отсутствуют, то заявка скопируется всегда 2 раза... Подскажите, как исправить...

if ($line['Состояние'] == "Связана")
{
		$zvka = data_table("Заявки","`status`<>'2' AND `Статус`='Исполняемая' AND `Заказчик`=".$line['ID']);
		if (!$zvka)
		{
			$row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'");
			// если по условиям выборки строки отсутствуют - то заявка скопируется два раза...
				if (!$row)
				{
						data_update(240, array('f6130'=>0), "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID']);
						$row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'");
				}
				$zvka['Город'] = $line['Город']['ID'];
				$zvka['Заказчик'] = $line['ID'];
				$zvka['Тип услуги'] = $line['Связана по услуге']['ID'];
				$zvka['Исполнитель'] = $row['id'];
				$zvka['ID'] = insert_query($zvka, "Заявки");
				data_update(240, array('f6130'=>1), "id=",$row['id']);
		}
}



				
			</div>
		</div>
	</div>
	<br />
</div>
<hr />
<br />

		

			
	<!--Begin Msg Number 24249-->
<div class=

#24249 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 09 Июнь 2014 - 13:31 in Как это сделать

Я всё исправил:

if ($line['Состояние'] == "Связана")
{
	    $row = data_select_array(240, "`status`=0 AND `f3450`=", $line['Город']['ID'], " AND `f4690`=", $line['Связана по услуге']['ID'], " AND `f3530`='Свободна' AND `f6130`='0'");
	    data_update(240, array('f6130'=>1), "id=",$row['id']);
	    $zvka = data_table("Заявки","`status`<>'2' AND `Заказчик`=".$line['ID']);
	    if (!$zvka)
	    {
		    $zvka['Город'] = $line['Город']['ID'];
		    $zvka['Заказчик'] = $line['ID'];
		    $zvka['Тип услуги'] = $line['Связана по услуге']['ID'];
		    $zvka['Исполнитель'] = $row['id'];
		    $zvka['ID'] = insert_query($zvka, "Заявки");
	    }
}



всё заработало, но почему то Флаг=1 проставляется всей выборке:


				
			</div>
		</div>
	</div>
	<br />
</div>
<hr />
<br />

		

			
	<!--Begin Msg Number 24156-->
<div class=

#24156 Фильтр для поля по нескольким значениям

Отправлено от All_ex74 в 05 Июнь 2014 - 13:31 in Как это сделать

Здравствуйте. В продолжении темы выше...

Реализовал фильтрацию, применив функционал - фильтр по полю:


				
			</div>
		</div>
	</div>
	<br />
</div>
<hr />
<br />

		
		</div>
<script type=