﻿id	summary	reporter	owner	description	type	status	priority	component	resolution	keywords	cc
1060	"Возможность возврата состояния контроля ОТК в ""не контролировалось"""	alx	Denis_N	"В БД изделий АДС в коде [source:base/otk.php@141:107-112#L90 otk.php] я обнаружил такой фрагмент:

{{{#!sh
if ($_POST['status'] == 'fail')
    $query = ""UPDATE products set `otk` = ?, `mismatch` = 'yes' where `uid` = ?"";
else if ($_POST['status'] == 'ok')
    $query = ""UPDATE products set `otk` = ?, `mismatch` = 'no' where `uid` = ?"";
else
    $query = ""UPDATE products set `otk` = ? where `uid` = ?"";
}}}

В чем смысл наличия третьей ветки условия (любой другой статус кроме ""успешно"" и ""неуспешно"")?

Единственно возможный статус кроме ""успешно"" и ""неуспешно"" - это ""не контролировалось"". Логика подсказывает, что изделие может перейти из состояния ""не контролировалось"" как в состояние ""успешно"", так и в состояние ""неуспешно"". Также можно представить, что изделие переходит из состояния ""успешно"" в ""неуспешно"" и наоборот (в результате повторного контроля ОТК). Но если изделие уже когда-то проходило контроль ОТК (то есть имеет статус ""успешно"" или ""неуспешно""), то оно уже никак не может вернуться в состояние ""не контролировалось"" (так как это будет неправдой):

{{{#!plantuml
@startuml
nocheck: не контролировалось
ok: успешно
fail: неуспешно

nocheck --> ok: хорошее изделие
nocheck --> fail: брак
ok --> fail: брак!\n(как мы прошлый раз не заметили?)
fail --> ok: Ну вот, другое дело!\nПочинили!

@enduml
}}}

Мне кажется, что в случае получения в запросе любого статуса ОТК, отличного от ""успешно"" и ""неуспешно"", система должна ругаться и ничего не записывать в БД. **Предлагаю** изменить соответствующим образом последний вариант процитированного выше условия."	дефект	closed	major	БД изделий АДС	fixed		
