Помоги написать скрипт в разделе "Контрагенты"

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Sab0tajue
    Senior Member
    • Jul 2019
    • 315

    Помоги написать скрипт в разделе "Контрагенты"

    если значение в поле "Регион" равно "Белгородская область" то в поле "Сумма подставить" значение равное 1000
    а если значение в поле "Регион" равно "Московская области" то в поле "Сумма подставить" значение равно
  • Maximus
    Senior Member
    • Nov 2018
    • 2731

    #2
    Если скрипт это формула то тогда можно попробовать так:
    Code:
    ifThen(
        billingAddressState == 'Белгородская область',
        amount = 1000
        );
    ifThen(
        billingAddressState == 'Московская область',
        amount = 2000
    )
    Учтите что при замене одного региона на другой данные поменяются в БД но для вас сумма будет со старыми данными. Новые подтянутся после перезагрузки страницы.

    Comment

    • Maximus
      Senior Member
      • Nov 2018
      • 2731

      #3
      Продемонстрируйте вашу формулу. Также если есть ошибка в синтаксисе формулы, как правило она отображается в логах ошибок.

      Comment

      • Sab0tajue
        Senior Member
        • Jul 2019
        • 315

        #4
        Originally posted by Maximus
        Продемонстрируйте вашу формулу. Также если есть ошибка в синтаксисе формулы, как правило она отображается в логах ошибок.
        Спасибо большое, всё заработало так как Вы написали.

        Comment

        • Sab0tajue
          Senior Member
          • Jul 2019
          • 315

          #5
          По аналогий с Вашим скриптом сделал такой скрипт , уже в другом разделе и с другими полями, но ничего не работает. Что я не так написал?

          ifThen(
          kindOfObject == 'Назначение не определено',
          objectMeasure == 'Мера не определена'
          );
          ifThen(
          kindOfObject == 'Нежилое здание',
          objectMeasure == 'кв.м'
          );
          ifThen(
          kindOfObject == 'Жилое здание',
          objectMeasure == 'кв.м'
          );
          ifThen(
          kindOfObject == 'Многоквартирный дом',
          objectMeasure == 'кв.м'
          );
          ifThen(
          kindOfObject == 'Линейное сооружение, линейное подземное сооружение',
          objectMeasure == 'м'
          );
          ifThen(
          kindOfObject == 'Подземное сооружение',
          objectMeasure == 'кв.м'
          );
          ifThen(
          kindOfObject == 'Сооружение, предназначенное для хранения',
          objectMeasure == 'кв.м'
          );
          ifThen(
          kindOfObject == 'Высотное сооружение',
          objectMeasure == 'м'
          );
          ifThen(
          kindOfObject == 'Иное сооружение',
          objectMeasure == 'Мера не определена'
          );
          ifThen(
          kindOfObject == 'Жилое помещение',
          objectMeasure == 'кв.м'
          );
          ifThen(
          kindOfObject == 'Квартира',
          objectMeasure == 'кв.м'
          );
          ifThen(
          kindOfObject == 'Комната (в квартире)',
          objectMeasure == 'кв.м'
          )

          Comment

          • Maximus
            Senior Member
            • Nov 2018
            • 2731

            #6
            Знак '==' это проверка на равенство, а знак '=' это присвоение значения. Должно быть так:
            Code:
            objectMeasure = 'Мера не определена'.

            Comment

            • Sab0tajue
              Senior Member
              • Jul 2019
              • 315

              #7
              Почему-то всё равно не работает

              ifThen(
              kindOfObject == 'Назначение не определено',
              objectMeasure = 'Мера не определена'
              );
              ifThen(
              kindOfObject == 'Нежилое здание',
              objectMeasure = 'кв.м'
              );
              ifThen(
              kindOfObject == 'Жилое здание',
              objectMeasure = 'кв.м'
              );
              ifThen(
              kindOfObject == 'Многоквартирный дом',
              objectMeasure = 'кв.м'
              );
              ifThen(
              kindOfObject == 'Линейное сооружение, линейное подземное сооружение',
              objectMeasure = 'м'
              );
              ifThen(
              kindOfObject == 'Подземное сооружение',
              objectMeasure = 'кв.м'
              );
              ifThen(
              kindOfObject == 'Сооружение, предназначенное для хранения',
              objectMeasure = 'кв.м'
              );
              ifThen(
              kindOfObject == 'Высотное сооружение',
              objectMeasure = 'м'
              );
              ifThen(
              kindOfObject == 'Иное сооружение',
              objectMeasure = 'Мера не определена'
              );
              ifThen(
              kindOfObject == 'Жилое помещение',
              objectMeasure = 'кв.м'
              );
              ifThen(
              kindOfObject == 'Квартира',
              objectMeasure = 'кв.м'
              );
              ifThen(
              kindOfObject == 'Комната (в квартире)',
              objectMeasure = 'кв.м'
              )

              Comment

              • Sab0tajue
                Senior Member
                • Jul 2019
                • 315

                #8
                у меня должна быть зависимость по цепочке

                Comment

                • Maximus
                  Senior Member
                  • Nov 2018
                  • 2731

                  #9
                  Тогда должно быть чтото типа того:
                  Code:
                  ifThen(
                  kindOfObject == 'Сооружение' && назначение == 'Подземное сооружение',
                  objectMeasure = 'м'
                  );
                  Вместо слова "назначение" подставьте ключ этого поля поскольку я не знаю какой вы себе придумали. При такой логике вам нужно проверять каждое поле на соответствие определенному параметру как на примере kindOfObject == 'Сооружение' && назначение == 'Подземное сооружение.

                  Comment

                  • Sab0tajue
                    Senior Member
                    • Jul 2019
                    • 315

                    #10
                    а у меня из этой схемы пользователь выбирает из списка "Тип объекта", остальные автоматом должны, но не работает

                    Comment

                    • Maximus
                      Senior Member
                      • Nov 2018
                      • 2731

                      #11
                      Опишите подробнее.
                      Тоесть вы хотите что бы при заполнении пользователем поля "Тип объекта", поля "назначения" и "мера измерения" должны определятся автоматически? Я правильно понимаю?

                      Comment

                      • Sab0tajue
                        Senior Member
                        • Jul 2019
                        • 315

                        #12
                        Да правильно.

                        Comment

                        • Maximus
                          Senior Member
                          • Nov 2018
                          • 2731

                          #13
                          Формулой можно и так но вот только при указании определeнного типа объекта назначение и мера измерения всегда будут одни и те же. Например:
                          Если Тип = цех то назначение = швейный, мера измерения = метры. Если у одного пользователя это подходит, то у другого назначение может быть "литейный" и тут будет несовместимость так как при таких условиях формула все равно установит швейный.
                          Я бы вам советовал другую логику придумать, но если у вас на каждый объект только по одному назначению, то такой вариант вполне рабочий и требует представления формулы в таком виде:
                          Code:
                          ifThen(
                              kindOfObject == 'Сооружение',
                              назначение = 'Подземное сооружение';
                              objectMeasure = 'м'
                          );

                          Comment

                          • Sab0tajue
                            Senior Member
                            • Jul 2019
                            • 315

                            #14
                            не работает

                            Comment

                            • Maximus
                              Senior Member
                              • Nov 2018
                              • 2731

                              #15
                              А вместо названия поля "назначение" вы вставили ключ этого поля?

                              Comment

                              Working...