`;
svgCreator.$container.append(html);
this.floorTabs(i.floors);
},
floorTabs: function (data) {
var tabContainer = $('
', {class: 'sc_floor_tabs'}).appendTo(svgCreator.$container);
for (const [idx, i] of Object.entries(data)){
let tab = $('
', {class: 'sc_floor_tab', 'data-id': i.id}).appendTo(tabContainer)
.on('click', function (e) {
let curr = $(this);
let active = svgCreator.Block.config.active;
if (curr.hasClass(active)) return;
curr.siblings().removeClass(active);
curr.addClass(active);
svgCreator.Block.contentPanel(i);
});
if (idx == 0) {
tab.addClass(this.config.active);
this.contentPanel(i);
}
let name = $('
', {class: 'sc_floor_tab_name'}).html(i.name).appendTo(tab);
for (let st in svgCreator.statuses) {
if (!i.counter || !i.counter[st]) continue;
name.attr('data-status', st);
break;
}
$('
', {id: this.config.panelId}).appendTo(svgCreator.$container);
} else {
this.panel.html('');
}
this.contentPanelHead(data);
svgCreator.Svg.initialize(data);
this.contentPanelFoot(data);
},
contentPanelHead: function (floor) {
let html = `
${floor.name}
`;
if (floor.counter){
for (let i in svgCreator.statuses) {
html += `
${svgCreator.statuses[i]}`;
if (i !== 'rental') html += `: ${floor.counter[i] ? floor.counter[i] : 0}`;
html += '
';
}
}
html += `
`;
this.panel.append(html);
},
contentPanelFoot: function (floor) {
if (!svgCreator.data.manager) return;
let footer = $('
', {class: this.config.panelId + '_footer'}).appendTo(this.panel);
let btnContainer = $('
', {class: 'sc_buttons'}).appendTo(footer);
let result = $('
', {class: this.config.panelId + '_footer_result'}).appendTo(footer);
if (floor.rooms) this.floorTable(floor.rooms, result);
},
roomInfo: function (room) {
let id = this.config.roomId;
let html = `
`;
},
forms: function (html = '') {
svgCreator.Utils.scroll('#' + this.config.forms, '#' + svgCreator.popup.config.windowId);
$('#' + this.config.forms).html(html);
},
rentForm: function () {
let html = `
Арендовать
` + svgCreator.Sms.form(this.rentFormFull);
this.forms(html);
},
rentFormFull: function () {
let edo = '';
for (let i of svgCreator.data.edo_user){
edo += ``;
}
let html = `
Арендовать
Подтвержденный телефон для связи: ${svgCreator.Sms.data.phone}
`;
svgCreator.Actions.forms(html);
},
rentFormStatus: function (data, button, block) {
let blockInn = block.next();
let blockEdo = blockInn.next();
let blockLast = blockEdo.next();
let kppInp = blockInn.find('input[name=kpp]');
let innInp = blockInn.find('input[name=inn]');
this.checkInn = false;
switch (data.status){
case 'Юр.лицо':
blockInn.find('input').prop('disabled', false);
kppInp.prop('disabled', false);
innInp.data('length', 10);
kppInp.show();
break;
case 'ИП':
blockInn.find('input').prop('disabled', false);
kppInp.prop('disabled', true);
innInp.data('length', 12);
kppInp.hide();
break;
case 'Физ.лицо':
block.addClass('checked');
blockInn.find('input').prop('disabled', true);
blockInn.addClass('checked').removeClass('open');
blockEdo.addClass('checked').removeClass('open');
blockLast.addClass('open');
svgCreator.Utils.scroll(blockLast, '#' + svgCreator.popup.config.windowId);
this.checkInn = true;
return false;
break;
}
return true;
},
rentFormInnBefore: function (data, button, block) {
let length = block.find('input[name=inn]').data('length');
if (data.inn.length != length) return svgCreator.Message.error(`Длина поля ИНН должна быть равна ${length} символов`);
var callbacks = svgCreatorConfig.callbacksTemplate();
callbacks.response.success = function (response) {
svgCreator.Actions.rentFormInnAfter(response.data.result, block);
}
svgCreator.Request.add('action', 'getCompanyByDaData', data);
svgCreator.Request.toSystem(data, callbacks);
return true;
},
rentFormInnAfter: function (result, block) {
let html = '';
let blockSuccess = block.next().next();
let options = {
'name|short_with_opf': 'Наименование организации',
'inn': 'ИНН',
'kpp': 'КПП',
'ogrn': 'ОГРН',
'management|name': 'В лице',
'address|value': 'Юридический адрес',
'address|value': 'Фактический адрес',
'emails': 'Эл. почта',
};
if (result.length) {
html += '
';
let item = svgCreator.dadata = result[0].data;
for (let path in options){
let value = svgCreator.Utils.getValueByPath(path.split('|'), item);
if (value === null) continue;
html += `
${options[path]}${value}
`;
}
html += '
';
} else {
html += '
По указанному ИНН данные не найдены, возможно указан не корректный ИНН или КПП!
';
}
svgCreator.$body.find('#' + this.config.personData).html(html);
blockSuccess.removeClass('open');
block.closest('form').find('button.button-callback').remove();
blockSuccess.find('.sc_form-attention').hide();
blockSuccess.find('.sc_buttons').show();
this.checkInn = true;
},
rentFormSuccess: function (data, button, block) {
let d = data.rent_start.split('.');
let rent_start = new Date(d[2] + '/' + d[1] + '/' + d[0]);
console.log(rent_start);
rent_start.setHours(0, 0, 0, 0);
let date_future = new Date();
date_future.setDate(date_future.getDate() + 3);
date_future.setHours(0, 0, 0, 0);
if (date_future > rent_start) return svgCreator.Message.error(`Дата начала аренды должна быть не раньше 3х дней от текущей даты.`);
let success = button.data('success');
let submit = block.closest('form').find('button[type=submit]');
if (success === true) {
submit.prop('disabled', false);
return true;
}
submit.prop('disabled', true);
block.removeClass('checked');
submit.before('');
block.find('.sc_form-attention').show();
block.find('.sc_buttons').hide();
return false;
},
callSend: function () {
let data = svgCreator.Sms.data;
svgCreator.Request.addList({action: 'callBack', rooms: svgCreator.Svg.currentRoom}, data);
var callbacks = svgCreatorConfig.callbacksTemplate();
callbacks.response.success = function (response) {
svgCreator.Actions.forms('
Ваш запрос отправлен в службу аренды. В ближайшее время с Вами свяжутся.
');
}
svgCreator.Request.toSystem(data, callbacks);
},
callForm: function () {
let html = `
Заказать звонок
` + svgCreator.Sms.form(this.callSend);
this.forms(html);
},
initialize: function () {
if (this.initialized) return;
this.initialized = true;
svgCreator.$body.on('click', '#' + this.config.container + ' .button', function () {
svgCreator.Actions.forms();
let action = $(this).data('action');
if (!action || !svgCreator.Actions[action]) return;
this.current = action;
svgCreator.Actions[action]();
});
svgCreator.$body.on('click', '#' + this.config.formRent + ' span.button', function () {
let block = $(this).closest('.sc_form-block');
if (!block.length || !svgCreator.Form.validate(block)) return;
let action = block.data('action');
let result = action ? svgCreator.Actions[action](svgCreator.Utils.serializeBlockToObject(block), $(this), block) : true;
if (result) {
block.addClass('checked');
block.next().addClass('open');
svgCreator.Utils.scroll(block.next(), '#' + svgCreator.popup.config.windowId);
}
});
svgCreator.$body.on('submit', '#' + this.config.formRent, function (e) {
e.preventDefault();
if (!svgCreator.Actions.checkInn) return svgCreator.Message.error('Необходимо проверить введенный ИНН.');
svgCreator.Message.create('Данные формы получены. Дождитесь завершения отправки формы.');
let action = svgCreator.btn.val();
var callbacks = svgCreatorConfig.callbacksTemplate();
callbacks.response.success = function (response) {
svgCreator.Actions.forms('
Ваш запрос отправлен в службу аренды. В ближайшее время с Вами свяжутся.