Еще один вопрос о вычислениях
#1
Отправлено 06 Февраль 2014 - 11:26
Существуют три поля: Наличие, Резерв, Остаток. Прописано вычисление для поля Остаток - $line['остаток'] = $line['Наличие'] - $line['Резерв'];
Возможно ли прописать вычисление для поля Наличие, при таком условии: Наличие = Остаток если Резерв равен 0
#2
Отправлено 06 Февраль 2014 - 11:35
$line['Наличие'] =(!$line['Резерв'])?$line['Остаток']:$line['Наличие'];
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#3
Отправлено 06 Февраль 2014 - 13:40
Добрый день!
Извиняюсь за не знание, но не могли бы Вы объяснить словами, что означает данное условие.
Поскольку, при создании нового вычисления: $line['Наличие'] =(!$line['Резерв'])?$line['Остаток']:$line['Наличие']; перестает работать старое вычисление: $line['остаток'] = $line['Наличие'] - $line['Резерв'];
А при изменении поля резерв, система выдает ошибку:
Ошибка системы.
Error generated:
/home/fm-servis/public_html/include/functions1.php(283) : data_update()
/home/fm-servis/public_html/include/functions1.php(341) : form_event_recurs()
/home/fm-servis/public_html/include/functions1.php(611) : calc_line()
/home/fm-servis/public_html/view_line2.php(978) : popup_event()
Ошибка SQL запроса:
UPDATE `f_data501` SET `остаток`='71' WHERE `id`=2
Unknown column 'остаток' in 'field list'
#4
Отправлено 06 Февраль 2014 - 14:45
fmservis (06 Февраль 2014 - 13:40) писал:
Извиняюсь за не знание, но не могли бы Вы объяснить словами, что означает данное условие.
if ($line['Резерв']=='0') $line['Наличие']=$line['Остаток']; // если поле Резерв равно нулю, то поле Наличие равно полю Остаток
fmservis (06 Февраль 2014 - 13:40) писал:
UPDATE `f_data501` SET `остаток`='71' WHERE `id`=2
Unknown column 'остаток' in 'field list'
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#5
Отправлено 06 Февраль 2014 - 17:30
Есть три поля: Наличие, Резерв, Остаток.
При данном условии: $line['остаток'] = $line['Наличие'] - $line['Резерв']; Наличие 10; Резерв 3; Остаток 7; Все работает отлично.
Но хотелось бы еще сделать так. чтобы когда Резерв 0; Наличие 7; Остаток 7
Что при условии: if($line['Резерв']=='0') $line['Наличие']=$line['Остаток']; Не работает, когда Резерв становится равен 0; Наличие 10; Остаток 10.
Может я что то делаю не так?
Создаю вычисление: $line['Остаток'] = $line['Наличие'] - $line['Резерв'];
Создаю второе вычисление: if ($line['Резерв']<='0') $line['Наличие']=$line['Остаток'];
Первое работает, второе нет.
#6
Отправлено 07 Февраль 2014 - 14:46
fmservis (06 Февраль 2014 - 17:30) писал:
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#7
Отправлено 07 Февраль 2014 - 16:02
if ($line['Резерв']<='0')
{
$line['Наличие']=$line['Остаток'];
}
elseif ($line['Резерв']>'0')
{
$line['Остаток'] = $line['Наличие'] - $line['Резерв'];
}
#8
Отправлено 07 Февраль 2014 - 16:09
Сообщение отредактировал fmservis: 07 Февраль 2014 - 16:10
#9
Отправлено 07 Февраль 2014 - 17:55
fmservis (07 Февраль 2014 - 16:02) писал:
if ($line['Резерв']<='0')
{
$line['Наличие']=$line['Остаток'];
}
elseif ($line['Резерв']>'0')
{
$line['Остаток'] = $line['Наличие'] - $line['Резерв'];
}
if ($line['Резерв']<='0') $line['Наличие']=$line['Остаток']; else $line['Остаток'] = $line['Наличие'] - $line['Резерв'];
fmservis (07 Февраль 2014 - 16:09) писал:
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных