Битрикс-разработчик Вероника Малышева

ут11состояния заказов

ут11состояния заказов

 ВЫБОР
        КОГДА (НЕ ДокументЗаказКлиента.Проведен)
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ПустаяСсылка)
        КОГДА ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.НеСогласован)
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ОжидаетсяСогласование)
        КОГДА ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт)
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.Закрыт)
        КОГДА ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован)
                И ДокументЗаказКлиента.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
                И ДокументЗаказКлиента.СуммаАвансаДоОбеспечения > 0
                И ДокументЗаказКлиента.СуммаДокумента - ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеОстаток, 0) < ДокументЗаказКлиента.СуммаАвансаДоОбеспечения
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ОжидаетсяАвансДоОбеспечения)
        КОГДА ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован)
                И ДокументЗаказКлиента.СуммаДокумента > 0
                И (ДокументЗаказКлиента.СуммаДокумента - ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеОстаток, 0) >= ДокументЗаказКлиента.СуммаАвансаДоОбеспечения
                ИЛИ ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов))
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ГотовКОбеспечению)
        КОГДА (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован)
                ИЛИ ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОбеспечению))
                И ДокументЗаказКлиента.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
                И ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки > 0
                И ДокументЗаказКлиента.СуммаДокумента - ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеОстаток, 0) < ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки + ДокументЗаказКлиента.СуммаАвансаДоОбеспечения
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ОжидаетсяПредоплатаДоОтгрузки)
        КОГДА (ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Согласован)
                ИЛИ ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОбеспечению))
                И ДокументЗаказКлиента.СуммаДокумента > 0
                И ((ДокументЗаказКлиента.СуммаДокумента - ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеОстаток, 0) >= ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки + ДокументЗаказКлиента.СуммаАвансаДоОбеспечения
                ИЛИ ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов))
                И ЕСТЬNULL(ЗаказыКлиентовОстатки.СуммаОстаток, 0) <> 0)
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ГотовКОтгрузке)
        КОГДА ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОтгрузке)
                И ДокументЗаказКлиента.СуммаДокумента > 0
                И (ДокументЗаказКлиента.СуммаДокумента - ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеОстаток, 0) >= ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки + ДокументЗаказКлиента.СуммаАвансаДоОбеспечения
                ИЛИ ДокументЗаказКлиента.ПорядокРасчетов = ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов))
                И ЕСТЬNULL(ЗаказыКлиентовОстатки.КОформлениюОстаток, 0) <> 0
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ОжидаетсяОтгрузка)
        КОГДА ДокументЗаказКлиента.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.КОтгрузке)
                И ДокументЗаказКлиента.ПорядокРасчетов <> ЗНАЧЕНИЕ(Перечисление.ПорядокРасчетов.ПоДоговорамКонтрагентов)
                И ДокументЗаказКлиента.СуммаДокумента - ДокументЗаказКлиента.СуммаАвансаДоОбеспечения + ДокументЗаказКлиента.СуммаПредоплатыДоОтгрузки > 0
                И ЕСТЬNULL(ЗаказыКлиентовОстатки.КОформлениюОстаток, 0) = 0
                И ЕСТЬNULL(РасчетыСКлиентамиОстатки.КОплатеОстаток, 0) > 0
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ОжидаетсяОплатаПослеОтгрузки)
        КОГДА ДокументЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.Закрыт)
            ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияЗаказовКлиентов.ГотовКЗакрытию)
    КОНЕЦ КАК Состояние,