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


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

фильтр несколько значений

Сообщений в теме: 64

#61 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 11 Июнь 2014 - 13:05

Я не вижу в данном коде, где она должна скопироваться 2 раза. Запрос insert_query в коде присутствует 1 раз, в цикл не помещен...

#62 All_ex74

    Активный участник

  • Пользователи
  • PipPipPip
  • 138 сообщений
  • Пол:Мужчина
  • Город:Барнаул

Отправлено 11 Июнь 2014 - 14:01

Но копируется дважды, если не выбрано ничего. На скрине же видно, сам удивился.
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';
    }
}


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

#63 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 11 Июнь 2014 - 15:11

1. Запрет уже есть выше, там где if (!$zvka) , можете его перенести ниже, после выборки исполнителя. Но по идее тут никак дубля не должно быть, или у меня сегодня с глазами/мозгами что-то не то.
2. По шлюзу я без понятия что у вас не то, т.к. это может зависеть от чего угодно, в том числе от предоставленного провайдером кода. Создайте отдельную тему и опишете там подробнее, не надо мешать тут все в одну кучу.

#64 All_ex74

    Активный участник

  • Пользователи
  • PipPipPip
  • 138 сообщений
  • Пол:Мужчина
  • Город:Барнаул

Отправлено 12 Июнь 2014 - 13:12

Просмотр сообщения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. Мало того СМС, пришли скопом (проблема была не в коде, а со стороны агрегатора) и на каждую отправку тоже по две штуки...

Сообщение отредактировал All_ex74: 12 Июнь 2014 - 19:17


#65 All_ex74

    Активный участник

  • Пользователи
  • PipPipPip
  • 138 сообщений
  • Пол:Мужчина
  • Город:Барнаул

Отправлено 13 Июнь 2014 - 10:42

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

Сообщение отредактировал All_ex74: 13 Июнь 2014 - 11:01






Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных