Я не вижу в данном коде, где она должна скопироваться 2 раза. Запрос insert_query в коде присутствует 1 раз, в цикл не помещен...
2
Сообщений в теме: 64
#61
Отправлено 11 Июнь 2014 - 13:05
#62
Отправлено 11 Июнь 2014 - 14:01
Но копируется дважды, если не выбрано ничего. На скрине же видно, сам удивился.
1. Нужно как то добавить запрет на копирование вовсе, если выборка по условиям пуста...
2. Добавил отправку СМС, но что то не отправляет. Хотя в базе данных код отрабатывается... выложу код модуля шлюза - проверьте пожалуйста:
Заполнено вроде верно - что за хрень такая!..
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
Отправлено 11 Июнь 2014 - 15:11
1. Запрет уже есть выше, там где if (!$zvka) , можете его перенести ниже, после выборки исполнителя. Но по идее тут никак дубля не должно быть, или у меня сегодня с глазами/мозгами что-то не то.
2. По шлюзу я без понятия что у вас не то, т.к. это может зависеть от чего угодно, в том числе от предоставленного провайдером кода. Создайте отдельную тему и опишете там подробнее, не надо мешать тут все в одну кучу.
2. По шлюзу я без понятия что у вас не то, т.к. это может зависеть от чего угодно, в том числе от предоставленного провайдером кода. Создайте отдельную тему и опишете там подробнее, не надо мешать тут все в одну кучу.
#64
Отправлено 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("Вами была сформирована заявка №".$zvka['ID']." на услугу ".$line['Связана по услуге']['ID'].". Ожидайте ответа.", $line['Телефон'], "ENU"); }
2. Мало того СМС, пришли скопом (проблема была не в коде, а со стороны агрегатора) и на каждую отправку тоже по две штуки...
Сообщение отредактировал All_ex74: 12 Июнь 2014 - 19:17
#65
Отправлено 13 Июнь 2014 - 10:42
Вопрос снят в этой теме - создана отдельная...
Сообщение отредактировал All_ex74: 13 Июнь 2014 - 11:01
Количество пользователей, читающих эту тему: 4
0 пользователей, 4 гостей, 0 анонимных