403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/sale/b24integration/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/sale/b24integration/dist/b24integration.bundle.js
this.BX = this.BX || {};
(function (exports) {
    'use strict';

    var Stepper = /*#__PURE__*/function () {
      function Stepper() {
        var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
        babelHelpers.classCallCheck(this, Stepper);
        this.ownerId = !!props.ownerId ? props.ownerId : 0;
        this.ownerTypeId = !!props.ownerTypeId ? props.ownerTypeId : 0;
      }

      babelHelpers.createClass(Stepper, [{
        key: "progress",
        value: function progress(list) {
          var _this = this;

          var total = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
          var start = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;

          if (!list || list.length <= 0) {
            throw new Error('list must be defined');
          }

          Stepper.isSuccess = true;
          this.batchFetch(list, total, start).then(function (batch) {
            _this.activityAdds(batch).then(function () {
              return _this.clientAdds(batch).then(function () {
                return _this.dealUpdateContacts(_this.ownerId, batch).then(function () {
                  return Stepper.getFulfillPromise();
                }, function () {
                  throw new Error('batchFetch dealUpdateContacts Error');
                });
              }, function () {
                throw new Error('batchFetch clientAdds Error');
              });
            }, function (activity) {
              return _this.continueProcess(activity);
            }) // reject to call progress again
            .then(function () {
              return _this.nextBatch(batch).then(function () {}, function () {
                return Stepper.labelFinish(batch);
              });
            }, function () {
              throw new Error('progress Error');
            });
          }, function () {
            throw new Error('batchFetch Error');
          });
        }
      }, {
        key: "continueProcess",
        value: function continueProcess(response) {
          var errors = !!response.errors ? response.errors : {};

          if (Object.values(errors).length > 0) {
            throw new Error('continueProcess Error');
          } else {
            return Stepper.getFulfillPromise();
          }
        }
      }, {
        key: "batchFetch",
        value: function batchFetch(list, total, start) {
          return BX.ajax.runAction('sale.integration.stepper.activityBatch', {
            data: {
              list: list,
              total: total,
              start: start
            }
          });
        }
      }, {
        key: "activityAdds",
        value: function activityAdds(response) {
          var data = !!response.data ? response.data : {};
          Stepper.progressBar(data);
          Stepper.messageBar(data);

          if (!!data.process) {
            /*
            * Object.values(data.process.items).length = n && Object.values(data.process.list).length = 0 //start - one step
            * Object.values(data.process.items).length = 0 && Object.values(data.process.list).length = n // skip step
            *
            * */
            //
            if (Object.values(data.process.items).length > 0) {
              return BX.ajax.runAction('sale.integration.scenarios.activityAddsFromOrderList', {
                data: {
                  params: data.process.items
                }
              });
            } else if (Object.values(data.process.list).length > 0) {
              return Stepper.getRejectPromise();
            } else if (!!data.error && data.error.length > 0) {
              // продолжаем выполнение, т.к. текст ошибки на данном шаге выведен. пропускаем шаг
              return Stepper.getRejectPromise();
            }
          }

          throw new Error('activityAdds Error');
        }
      }, {
        key: "prepareContactFields",
        value: function prepareContactFields(response) {
          if (!!response.status && response.status === 'success') {
            var data = !!response.data ? response.data : {};

            if (!!data.process && Object.values(data.process.items).length > 0) {
              return BX.ajax.runAction('sale.integration.scenarios.resolveContactFieldsValuesFromOrderList', {
                data: {
                  params: data.process.items
                }
              });
            }
          }

          throw new Error('clientAdds Error');
        }
      }, {
        key: "clientAdds",
        value: function clientAdds(batch) {
          var _this2 = this;

          return this.prepareContactFields(batch) //->из исходных данных получили список по локальным пользователям
          .then(function (list) {
            return _this2.contactRelationVoid(list) //->возвращает локальный список пользователей у которых связь с удаленной сущностью отсутвует/не корректна
            .then(function (addList) {
              return _this2.contactAdds(addList) //->добавили контакты в удаленную сиситему, обновили связи на локальной. с этого момента для пользователей из batch локально храниться актальная таблица связок к удаленным сущностям
              .then(function () {
                return Stepper.getFulfillPromise();
              }, function () {
                throw new Error('clientAdds contactAdds Error');
              });
            }, function () {
              throw new Error('clientAdds contactRelationVoid Error');
            });
          }, function () {
            throw new Error('clientAdds prepareContactFields Error');
          });
        }
      }, {
        key: "contactRelationVoid",
        value: function contactRelationVoid(list) {
          if (!!list.status && list.status === 'success') {
            var data = !!list.data ? list.data : {}; //если данных нет пропускаем вызов и возвращаем fulfill promise

            if (!!data.result && Object.values(data.result).length > 0) {
              return BX.ajax.runAction('sale.integration.scenarios.resolveUserTypeIAfterComparingRemotelyRelationFromOrderList', {
                data: {
                  params: data.result
                }
              });
            } else {
              return Stepper.getFulfillPromise(list);
            }
          }

          throw new Error('contactRelationVoid Error');
        }
      }, {
        key: "contactAdds",
        value: function contactAdds(addList) {
          if (!!addList.status && addList.status === 'success') {
            var data = !!addList.data ? addList.data : {}; //если данных нет пропускаем вызов и возвращаем fulfill promise

            if (!!data.result && Object.values(data.result).length > 0) {
              return BX.ajax.runAction('sale.integration.scenarios.contactAddsFromOrderList', {
                data: {
                  params: data.result
                }
              });
            } else {
              return Stepper.getFulfillPromise();
            }
          }

          throw new Error('contactAdds Error');
        }
      }, {
        key: "dealUpdateContacts",
        value: function dealUpdateContacts(dealId, batch) {
          var _this3 = this;

          return this.prepareContactFields(batch) //->из исходных данных получили список по локальным пользователям
          .then(function (list) {
            return _this3.dealContactItemsUpdate(dealId, list);
          }, //->обновляем пользоватлей в сделке (обогощаем сделку контактами)
          function () {
            throw new Error('dealUpdateContacts prepareContactFields Error');
          });
        }
      }, {
        key: "dealContactItemsUpdate",
        value: function dealContactItemsUpdate(dealId, list) {
          var _this4 = this;

          if (!!list.status && list.status === 'success') {
            var data = !!list.data ? list.data : {}; //если данных нет пропускаем вызов и возвращаем fulfill promise
            // (например когда в заказе указана компания, а запрашиваются данные клинта-Контакта)

            if (!!data.result && Object.values(data.result).length > 0) {
              return this.dealContactItemsGet(dealId).then(function (items) {
                return _this4.dealContactAdds(dealId, {
                  list: list,
                  items: items
                });
              }, function () {
                throw new Error('dealUpdateContacts dealContactAdds Error');
              });
            } else {
              return Stepper.getFulfillPromise();
            }
          }

          throw new Error('dealUpdateContacts dealContactItemsUpdate Error');
        }
      }, {
        key: "dealContactAdds",
        value: function dealContactAdds(dealId, params) {
          // метод должен вызываться когда гарантровано есть список пльзоватлей из БУС для обогощения сделки
          // если у сделки есть контакты, то обогощаем их пользователями
          // если у сделки нет контактов добавляем всех пользователей
          var users = !!params.list ? params.list : {};
          var contacts = !!params.items ? params.items : {};

          if (!!users.status && users.status === 'success' && !!contacts.status && contacts.status === 'success') {
            var dataUsers = !!users.data ? users.data : {};
            var dataContacts = !!contacts.data ? contacts.data : {};

            if (!!dataUsers.result && !!dataContacts.result) {
              if (Object.values(dataContacts.result).length > 0) {
                return BX.ajax.runAction('sale.integration.scenarios.dealContactUpdates', {
                  data: {
                    id: dealId,
                    items: dataUsers.result,
                    contacts: dataContacts.result
                  }
                });
              } else {
                return BX.ajax.runAction('sale.integration.scenarios.dealContactAdds', {
                  data: {
                    id: dealId,
                    items: dataUsers.result
                  }
                });
              }
            }
          }

          throw new Error('dealContactAdds Error');
        }
      }, {
        key: "dealContactItemsGet",
        value: function dealContactItemsGet(dealId) {
          return BX.ajax.runAction('sale.integration.scenarios.dealContactItemsGet', {
            data: {
              id: dealId
            }
          });
        }
      }, {
        key: "dealUpdate",
        value: function dealUpdate(response) {
          if (!!response.status && response.status === 'success') {
            var data = !!response.data ? response.data : {};

            if (!!data.process && data.process.items.length > 0) {
              return BX.ajax.runAction('sale.integration.scenarios.dealupdatecontacts', {
                data: {
                  id: this.ownerId,
                  params: data.process.items
                }
              });
            }
          }

          throw new Error('dealUpdate Error');
        }
      }, {
        key: "nextBatch",
        value: function nextBatch(response) {
          if (!!response.status && response.status === 'success') {
            var data = !!response.data ? response.data : {};

            if (!!data.process && !!data.process.list && !!data.process.items && !!data.process.total && !!data.process.start) {
              if (Object.values(data.process.items).length > 0 && Object.values(data.process.list).length > 0) {
                this.progress(data.process.list, data.process.total, data.process.start);
                return Stepper.getFulfillPromise();
              }

              if (Object.values(data.process.items).length === 0 && Object.values(data.process.list).length > 0) {
                this.progress(data.process.list, data.process.total, data.process.start);
                return Stepper.getFulfillPromise();
              } else if (Object.values(data.process.list).length <= 0) {
                // finish process batch
                return Stepper.getRejectPromise();
              }
            }
          }

          throw new Error('nextBatch Error');
        }
      }], [{
        key: "progressBar",
        value: function progressBar(data) {
          if (!!data.progress) {
            BX.ajax.runAction('sale.integration.stepper.progressbar', {
              data: {
                value: data.progress
              }
            }).then(function (response) {
              return Stepper.render('progress', response.data);
            }, function () {
              throw new Error('ProgressBar failure!');
            });
          }
        }
      }, {
        key: "labelFinish",
        value: function labelFinish(response) {
          var data = !!response.data ? response.data : {};

          if (!!data.finish) {
            //BX.closeWait();
            BX.ajax.runAction('sale.integration.stepper.messageOK', {}).then(function (response) {
              Stepper.render('finish', response.data);

              if (Stepper.isSuccess) {
                Stepper.closeApplication();
              }
            }, function () {
              throw new Error('MessagebyType OK failure!');
            });
          }
        }
      }, {
        key: "messageBar",
        value: function messageBar(data) {
          if (!!data.error) {
            Stepper.isSuccess = false;
            BX.ajax.runAction('sale.integration.stepper.messagebytype', {
              data: {
                message: data.error,
                type: 'ERROR'
              }
            }).then(function (response) {
              var div = BX.create('DIV');
              div.innerHTML = response.data;
              BX('progress_error').appendChild(div);
            }, function () {
              throw new Error('MessagebyType ERROR failure!');
            });
          }
        }
      }, {
        key: "render",
        value: function render(element, result) {
          BX.adjust(BX(element), {
            html: result
          });
        }
      }, {
        key: "getFulfillPromise",
        value: function getFulfillPromise() {
          var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
          var promise = new BX.Promise();
          promise.fulfill(params);
          return promise;
        }
      }, {
        key: "getFulfillPromise_setTimeout",
        value: function getFulfillPromise_setTimeout() {
          var _this5 = this;

          var promise = new BX.Promise();
          setTimeout(function () {
            promise.fulfill(_this5);
          }, 2000);
          return promise;
        }
      }, {
        key: "getRejectPromise",
        value: function getRejectPromise() {
          var promise = new BX.Promise();
          promise.reject(this);
          return promise;
        }
      }, {
        key: "closeApplication",
        value: function closeApplication() {
          setTimeout(function () {
            BX24.closeApplication();
          }, 500);
        }
      }]);
      return Stepper;
    }();

    exports.Stepper = Stepper;

}((this.BX.Sale = this.BX.Sale || {})));
//# sourceMappingURL=b24integration.bundle.js.map

Youez - 2016 - github.com/yon3zu
LinuXploit