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


как при изменения статуса доставки "выполненно" перенести данные в таблицу доставленные?

перенос данных

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

#1 allo

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 01 Июнь 2015 - 01:36

Добрый день. Есть таблица "доставки" в ней поля : адрес,телефон,товар,комент и т.д и есть поле "статус" формата список, где задан один из возможных вариантов выбора.
Возможно ли сделать чтобы при изменении этого статуса, изменении статуса скажем, доставки, то есть выбором статуса "выпоненно" ,приводило к перемешению этих данных в другую таблицу, скажем доставленные?

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

#2 CbCoder

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

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

Отправлено 01 Июнь 2015 - 10:30

Зачем вам перемещать эти данные в другую таблицу? Проще переместить в архив, это делается сменой значения поля "Статус записи" с 0 на 1. Если же прям нужно переместить в другую таблицу, используется стандартный запрос на вставку записи, примеров полно в документации и на форуме.

#3 allo

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 01 Июнь 2015 - 19:32

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

Проще переместить в архив, это делается сменой значения поля "Статус записи" с 0 на 1.
И в правду перемещать не обязательно, подскажите чайнику как сделать?, хочу что бы при выборе статуса доставленно, "Статус записи" с 0 на 1 сам менялся на 1

#4 CbCoder

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

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

Отправлено 02 Июнь 2015 - 09:05

Добавляете вычисление на событие изменения поля "Статус":

if ($line['Статус']=='Выполнено') $line['Статус записи'] = 1;

http://clientbase.ru...6/calculations/

#5 allo

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений

Отправлено 03 Июнь 2015 - 00:37

Спасибо! У меня возникла трудность, вписываю код вычисления и пока не поставишь условия выполнения изменения поля не работает, но при установленном условии "статус записи" - в независимости от того на какой статус установлен, все равно кидает в архив.

Подскажите пожалуйста

#6 CbCoder

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

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

Отправлено 03 Июнь 2015 - 09:15

Ничего не понял честно говоря. Скиньте сюда скриншоты а) настроек вычисления б) кода вычисления в) списка полей в таблице

#7 bottrop

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

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

Отправлено 01 Ноябрь 2015 - 09:43

Как сделать подобное вычисление одной строкой, чтобы не перечислять все возможные статусы?

if ($line['Статус клиента']=='Упущен') $line['Статус записи'] = 1;
if ($line['Статус клиента']=='Игнор') $line['Статус записи'] = 1;
if ($line['Статус клиента']=='Отказ') $line['Статус записи'] = 1;

#8 CbCoder

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

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

Отправлено 02 Ноябрь 2015 - 09:25

if ($line['Статус клиента']=='Упущен' or $line['Статус клиента']=='Игнор' or $line['Статус клиента']=='Отказ') $line['Статус записи'] = 1;

http://php.net/manua...ors.logical.php

#9 bottrop

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

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

Отправлено 02 Ноябрь 2015 - 13:22



if ($line['f1680']=='Упущен' or $line['f1680']=='Игнор' or $line['f1680']=='Отказ') $line['status'] = 1;

syntax error, unexpected T_STRING


#10 CbCoder

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

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

Отправлено 02 Ноябрь 2015 - 14:57

Во-первых, я когда пишу примеры, то как правило их не проверяю, поэтому опечатки вполне могут быть. Мое дело - помочь с направлением, а не написать и протестировать код за вас. Ссылку на статью из документации по PHP я предоставил.

Во-вторых, в данном случае специально проверил после вашего сообщения (т.к. визуально не вижу тут ошибки) - код отработал нормально. Так что ошибка явно не в этом фрагменте. Возможно у вас есть код или лишние символы до или после этого куска.

#11 bottrop

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

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

Отправлено 03 Ноябрь 2015 - 15:53

Благодарен за подсказки и помощь, как в этой теме, так и по другим заданным мною вопросам!!!
Ознакомился с ссылками, голову ломаю.
Показывает ошибку синтаксиса по первой строке, вроде как "или" лишний. Хотя с виду в коде всё верно. Может на свой глаз посмотрите?


1: if ($line['f1680']=='Упущен' or $line['f1680']=='Отказ условный' or $line['f1680']=='Отказ') $line['status'] = 1;
2: if ($line['f1680']=='Подбор' or $line['f1680']=='Показ' or $line['f1680']=='Подбор 2' or $line['f1680']=='Бронь' or $line['f1680']=='Сделка' or $line['f1680']=='Перенесли' or $line['f1680']=='Лид' or $line['f1680']=='Новый клиент' or $line['f1680']=='Передан') $line['status'] = 0;

syntax error, unexpected T_STRING

Это все символы кода.
Что интересно, построчный код, который был до этого, работает без проблем.

Сообщение отредактировал bottrop: 03 Ноябрь 2015 - 15:57


#12 CbCoder

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

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

Отправлено 03 Ноябрь 2015 - 16:02

Еще раз проверил - у меня вычисление ошибки не выдает. У вас точно перед первой строкой ничего нет?

Кстати, вторую строку можно было успешно заменить на else (если там все остальные статусы перечислены).

#13 maksn

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

  • Пользователи
  • PipPipPip
  • 314 сообщений
  • Пол:Мужчина

Отправлено 04 Ноябрь 2015 - 23:47

Просмотр сообщенияbottrop (03 Ноябрь 2015 - 15:53) писал:

Показывает ошибку синтаксиса по первой строке, вроде как "или" лишний. Хотя с виду в коде всё верно. Может на свой глаз посмотрите?


1: if ($line['f1680']=='Упущен' or $line['f1680']=='Отказ условный' or $line['f1680']=='Отказ') $line['status'] = 1;
2: if ($line['f1680']=='Подбор' or $line['f1680']=='Показ' or $line['f1680']=='Подбор 2' or $line['f1680']=='Бронь' or $line['f1680']=='Сделка' or $line['f1680']=='Перенесли' or $line['f1680']=='Лид' or $line['f1680']=='Новый клиент' or $line['f1680']=='Передан') $line['status'] = 0;

syntax error, unexpected T_STRING

Можно гораздо проще
$a = $line['f1680'];
$archive=Array('Упущен','Отказ условный','Отказ');// Перечислим все значения, при которых запись уходит в архив
if(in_array($a,$archive))
  $line['status'] = 1; // этого вполне достаточно
else
  $line['status'] = 0;//Если нужно возвращать из архива архивированную ранее запись путем смены статуса в f1680

Или так http://php.net/manua...ures.switch.php

Сообщение отредактировал maksn: 04 Ноябрь 2015 - 23:55

"...Сижу, паяю. CRM починяю..."
Мои разработки

#14 bottrop

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

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

Отправлено 05 Ноябрь 2015 - 01:25

Просмотр сообщенияmaksn (04 Ноябрь 2015 - 23:47) писал:

Можно гораздо проще
$a = $line['f1680'];
$archive=Array('Упущен','Отказ условный','Отказ');// Перечислим все значения, при которых запись уходит в архив
if(in_array($a,$archive))
  $line['status'] = 1; // этого вполне достаточно
else
  $line['status'] = 0;//Если нужно возвращать из архива архивированную ранее запись путем смены статуса в f1680

Или так http://php.net/manua...ures.switch.php

Смотрю на своё архаичное вычисление и улыбаюсь))) Спасибо, работает!

Просмотр сообщенияCbCoder (03 Ноябрь 2015 - 16:02) писал:

Еще раз проверил - у меня вычисление ошибки не выдает. У вас точно перед первой строкой ничего нет?

У меня к сожалению так и не запустилось((

Благодарю CbCoder и maksn за помощь!!! Надеюсь и по другим вопросам не оставите один на один с вычислениями)





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

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