Ваш браузер устарел, не поддерживает современные веб-стандарты и представляет угрозу Вашей безопасности. Для комфортной работы с порталом, пожалуйста, установите современыый браузер.
Портал технической поддержки

Сохранение значения поля карточки при изменении состояния

С ответом

Комментарии

Комментариев: 4

  • Avatar
    Денис Елхов

    Илья, добрый день.

    Приложите пожалуйста проблемный скрипт, который срабатывает на событии "On card state changing".

    0
    Действия с комментариями Постоянная ссылка
  • Здравствуйте, Денис.

    /**
    * Событие на смену состояния карточки корректирующих мероприятий
    * @param sender
    * @param arg
    */
    export async function correctiveAction_onStateChanging(sender: Layout, args: CancelableEventArgs<any>): JQueryDeferred<void> {
    if (!sender || !args) { return; }
    const stateId = args.data.operationId;
    const statusCtrl = sender.controls.get<Dropdown>("Status");
    const dateEndPlanCtrl = sender.controls.get<DateTimePicker>("DateEndPlan");
    const dateEndActualCtrl = sender.controls.get<DateTimePicker>("DateEndActual");
    if (!statusCtrl || !dateEndPlanCtrl || !dateEndActualCtrl) {
    ModalWindow.ShowErrorDialog('Не найден один или несколько контролов');
    }

    let status;
    if (stateId === CardStates.Execute) {
    /* Если плановая дата меньше фактической - статус "Закончено с нарушением сроков" */
    status = dateEndPlanCtrl.params.value < dateEndActualCtrl.params.value ? "CompletedInViolationOfDeadline" : "Completed on time";
    } else if (stateId === CardStates.ToCanceling) {
    status = "Canceled";
    }
    if (status) {
    statusCtrl.params.value = status;
    sender.saveCard(statusCtrl); // Здесь 500
    }
    }

    0
    Действия с комментариями Постоянная ссылка
  • Avatar
    Денис Елхов

    Илья, спасибо.

    Попробуйте сделать следующее:

    args.wait(); 
    await sender.saveCard(statusCtrl);
    args.accept();

    Также, вы не рассматривали вариант изменения поля уже после смены состояния или это важно сделать до?

    1
    Действия с комментариями Постоянная ссылка
  • Огромное спасибо! Все заработало.

    Если есть возможность, опишите, пожалуйста, альтернативу изменения поля после смены состояния, очень интересно? Через onCardSaved? 

    0
    Действия с комментариями Постоянная ссылка

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