Сейчас узнаем, какой подарок выпадет именно Вам
Крутите колесо
Ура, вы выиграли!
Ваш приз:
Годовой доступ
к видео на mo-ti -20%
по промокоду T19RAY
Промокод действителен 3 дня

Оформить доступ с промокодом
100
Как создать калькулятор бухгалтерских услуг по прайсу в Tilda
Сколько
Сколько это стоит?
Передавая бухгалтерию на аутсорсинг,
вы существенно экономите. Не тратите деньги на процесс- а покупаете результат. С аутсорсингом вы привлекаете на свою сторону команду специалистов, а не штатного бухгалтера. Мы сами платим за повышение квалификации, обновление программ, лицензии и оборудование. Бесконечные канцелярские расходы несем тоже мы.
Вы платите только за время, затраченное на ваш проект и столько, сколько операций осуществила ваша компания. Вы можете вводить мораторий на обслуживание, если временно не ведете деятельность и переходить с тарифа на тариф, чтобы получить еще большую выгоду.
Рассчитайте ориентировочную цену для понравившегося режима сотрудничества

Как создать калькулятор бухгалтерских услуг по прайсу в Tilda

1
Создали форму в ZeroBlock и задали ей класс uc-zeroformid
2
Добавили в форму калькулятора поля с именами и значениями:
- dropdown , name=nalog
УСН:Доходы=1
УСН:Доходы-расходы=1
ОСН=1
- dropdown , name=vid
Опт=1
Производство=1
Услуги=1
- dropdown , name=kol
До 50=1
До 100=1
Больше 100=1
-dropdown , name = mode
Всё сам=1
50 на 50=1
Мы сами=1
-Calculations field, name = result
Arithmetic expression = mode*nalog*vid*kol
3
Создали прайс в блоке CL46 по примеру и задали блоку класс uc-calc-price
4
Добавили код в блок другое Т123

Библиотека для примера
<script>
(function () {
    const zeroCalcBlock = document.querySelector('.uc-zeroformid');
    const priceTable = document.querySelector('.uc-calc-price');
    
    if(zeroCalcBlock&&priceTable){
        
        zeroCalcBlock.querySelector('div[data-elem-type="form"]').addEventListener('render', function() {
            calculate();
        });
            
        function calculate(){
            setTimeout(function() {
                
                const formElement = zeroCalcBlock.querySelector(`.tn-atom__form`);
                if (formElement) {

                    let isProgrammaticChange = false;
                    
                    formElement.addEventListener('change', function(event) {
                        if (isProgrammaticChange) {
                            isProgrammaticChange = false;
                            return;
                        }
                        
                        if (event.target.tagName === 'SELECT') {
                            getSetPrice();
                        };
                    });
                    
                    function getSetPrice(){
                        const nalog = zeroCalcBlock.querySelector('select[name="nalog"]').value.trim().toLowerCase();
                        const vid = zeroCalcBlock.querySelector('select[name="vid"]').value.trim().toLowerCase();
                        const kol = zeroCalcBlock.querySelector('select[name="kol"]').value.trim().toLowerCase();
                        const modeSelect = zeroCalcBlock.querySelector('select[name="mode"]');
                        const mode = modeSelect.selectedIndex;

                        const table = priceTable.querySelector('.t431__table');
                        const rows = table.querySelectorAll('.t431__tbody tr');
                            
                        let price = null;
                        for (const row of rows) {
                            const cells = row.querySelectorAll('.t431__td');
                            
                            if (cells[0].textContent.trim().toLowerCase() === nalog && 
                                cells[1].textContent.trim().toLowerCase() === vid && 
                                cells[2].textContent.trim().toLowerCase() === kol) {
                                
                                let priceColumn;
                                if (mode === 0) priceColumn = 3; // Всё сам
                                else if (mode === 1) priceColumn = 4; // 50 на 50
                                else if (mode === 2) priceColumn = 5; // Мы сами
                        
                                price = cells[priceColumn].textContent.trim();
                                break;
                            };
                        };
                                
                        if (price!=null) {
                            modeSelect.querySelector('option:checked').setAttribute('data-calc-value', price);
                            isProgrammaticChange = true;
                            modeSelect.dispatchEvent(new Event('change', { bubbles: true }));
                        };
                    };
                    
                    getSetPrice();
                    
                }; 
        
            }, 1500);
        };
            
    };
 
})();    

</script>
Made on
Tilda