File manager - Edit - /home/webtrixia/demohub.webtrixia.com/contracts.html
Back
<!DOCTYPE html> <html lang="bg"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Договори</title> <link href="https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;600;700&family=DM+Mono:wght@400;500&display=swap" rel="stylesheet"> <style> :root{ --dark:#0d0d14; --accent:#6c63ff; --accent2:#a78bfa; --green:#16a34a; --green-bg:#f0fdf4; --border:#e0ddf5; --text:#1a1a2e; --text2:#4a4a6a; --text3:#8888aa; --surface:#faf9ff; --amber:#d97706; } *{margin:0;padding:0;box-sizing:border-box} body{font-family:'Sora',sans-serif;background:#f0eefa;min-height:100vh;padding:30px 20px} /* SELECTOR PAGE */ .selector-page{max-width:900px;margin:0 auto} .selector-header{text-align:center;margin-bottom:36px} .selector-header img{height:38px;margin-bottom:16px} .selector-title{font-size:26px;font-weight:700;color:var(--text);margin-bottom:6px} .selector-sub{font-size:14px;color:var(--text3)} .contract-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px} .contract-type{background:#fff;border:2px solid var(--border);border-radius:16px;padding:24px 20px;cursor:pointer;transition:all .2s;text-align:center} .contract-type:hover{border-color:var(--accent);box-shadow:0 4px 24px rgba(108,99,255,.12)} .contract-type.selected{border-color:var(--accent);background:#f5f3ff} .ct-icon{font-size:32px;margin-bottom:12px} .ct-title{font-size:14px;font-weight:600;color:var(--text);margin-bottom:4px} .ct-desc{font-size:11px;color:var(--text3);line-height:1.5} .generate-btn{display:block;width:100%;max-width:300px;margin:0 auto;padding:14px;border-radius:12px;background:var(--accent);border:none;color:#fff;font-size:15px;font-weight:600;cursor:pointer;font-family:'Sora',sans-serif;transition:opacity .15s} .generate-btn:hover{opacity:.9} .generate-btn:disabled{opacity:.4;cursor:not-allowed} /* CONTRACT DOC PAGE */ .contract-doc-page{display:none;max-width:1180px;margin:0 auto} .toolbar{display:flex;gap:8px;justify-content:flex-end;margin-bottom:16px;flex-wrap:wrap} .tbtn{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;font-family:'Sora',sans-serif;font-size:12px;font-weight:500;transition:all .15s} .tbtn.primary{background:var(--accent);color:#fff} .tbtn.sec{background:#fff;color:var(--text2);border:1px solid var(--border)} .tbtn.back{background:#f5f3ff;color:var(--accent);border:1px solid var(--border)} .edit-banner{background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;padding:10px 16px;font-size:12px;color:#92400e;margin-bottom:14px;display:none;align-items:center;gap:8px} .edit-banner.show{display:flex} .contract-workspace{display:grid;grid-template-columns:320px minmax(0,860px);gap:18px;align-items:start} .contract-editor{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto;background:#fff;border:1px solid var(--border);border-radius:18px;padding:16px;box-shadow:0 4px 28px rgba(108,99,255,.09)} .editor-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:4px} .editor-hint{font-size:11px;line-height:1.5;color:var(--text3);margin-bottom:14px} .form-field{margin-bottom:12px} .form-field label{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:5px} .form-field input,.form-field textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:9px 10px;font:12px 'Sora',sans-serif;color:var(--text);background:#faf9ff;outline:none} .form-field textarea{min-height:72px;resize:vertical;line-height:1.45} .form-field input:focus,.form-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(108,99,255,.12);background:#fff} /* DOC STYLES */ .doc{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 4px 40px rgba(108,99,255,.1)} .doc-header{background:var(--dark);padding:36px 52px 30px;position:relative;overflow:hidden} .doc-header::before{content:'';position:absolute;top:-60px;right:-60px;width:220px;height:220px;border-radius:50%;background:rgba(108,99,255,.1)} .header-top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1} .logo-img{height:32px;filter:brightness(10)} .doc-type-block{text-align:right} .dt-label{font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:4px} .dt-title{font-size:22px;font-weight:700;color:#fff;letter-spacing:-.3px} .dt-num{font-size:11px;color:var(--accent2);margin-top:4px;font-family:'DM Mono',monospace} .header-bottom{margin-top:24px;position:relative;z-index:1} .header-parties{display:grid;grid-template-columns:1fr 1fr;gap:30px} .party-label{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:6px} .party-name{font-size:14px;font-weight:600;color:#fff;margin-bottom:2px} .party-detail{font-size:11px;color:rgba(255,255,255,.4);line-height:1.7} .party-divider{width:1px;background:rgba(255,255,255,.1);margin:0 10px} .doc-body{padding:0 52px} .contract-section{border-bottom:1px solid var(--border);padding:20px 0} .contract-section:last-of-type{border-bottom:none} .cs-num{font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;display:flex;align-items:center;gap:8px} .cs-num::before{content:'';width:3px;height:13px;background:var(--accent);border-radius:2px;flex-shrink:0} .cs-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:12px} .cs-body{font-size:13px;color:var(--text2);line-height:1.9} .cs-body p{margin-bottom:8px} .cs-body p:last-child{margin-bottom:0} .cs-body .art{padding-left:14px;border-left:2px solid var(--border);margin:6px 0} .cs-body ul{list-style:none;margin:6px 0} .cs-body ul li{padding:3px 0 3px 16px;position:relative} .cs-body ul li::before{content:'▸';position:absolute;left:0;color:var(--accent2);font-size:11px;top:4px} .editable-field{display:inline-block;border-bottom:1px dashed var(--accent2);min-width:100px;color:var(--text);font-weight:500} .sign-section{padding:20px 0 36px;display:grid;grid-template-columns:1fr 1fr;gap:40px} .sign-box{border-top:2px solid var(--border);padding-top:12px} .sign-label{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:3px} .sign-name{font-size:13px;font-weight:600;color:var(--text)} .sign-area{height:50px;border-bottom:1px dashed var(--border);margin:12px 0 8px} .sign-date-line{font-size:11px;color:var(--text3)} .doc-footer{background:var(--dark);padding:16px 52px;display:flex;justify-content:space-between;align-items:center} .footer-left{font-size:11px;color:rgba(255,255,255,.4)}.footer-left strong{color:rgba(255,255,255,.65)} .footer-right{font-size:10px;color:rgba(255,255,255,.3);text-align:right;line-height:1.8} [contenteditable="true"]{outline:none;border-radius:3px;transition:background .15s;cursor:text} [contenteditable="true"]:focus{background:rgba(108,99,255,.07);box-shadow:0 0 0 2px rgba(108,99,255,.2)} .edit-mode .editable-field{background:rgba(108,99,255,.04);border-bottom-color:var(--accent);cursor:text} /* ═══ PRINT ═══ */ @media print { @page { size: A4; margin: 15mm 15mm 20mm 15mm; } * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; } html, body { margin: 0 !important; padding: 0 !important; background: #fff !important; } .selector-page, .toolbar, .edit-banner, .contract-editor { display: none !important; } .contract-doc-page { display: block !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; } .contract-workspace { display: block !important; } .doc { border-radius: 0 !important; box-shadow: none !important; } .doc-header { background: #0d0d14 !important; padding: 20px 30px 16px !important; } .doc-header::before { display: none !important; } .dt-title { font-size: 18px !important; } .doc-body { padding: 0 30px !important; } .contract-section { padding: 12px 0 !important; } .cs-body { font-size: 12px !important; } .cs-body p { margin-bottom: 5px !important; } .sign-section { padding: 14px 0 20px !important; page-break-inside: avoid; } .sign-area { height: 35px !important; } .doc-footer { background: #0d0d14 !important; padding: 10px 30px !important; } [contenteditable] { border: none !important; background: transparent !important; } .editable-field { border-bottom: 1px solid #ccc !important; } h2 { page-break-after: avoid; } .contract-section { page-break-inside: avoid; } } @media(max-width:980px){.contract-workspace{grid-template-columns:1fr}.contract-editor{position:relative;top:auto;max-height:none}.toolbar{justify-content:flex-start}} </style> </head> <body> <!-- SELECTOR --> <div class="selector-page" id="selectorPage"> <div class="selector-header"> <div class="selector-title">Генерирай договор</div> <div class="selector-sub">Изберете вида договор, попълнете данните и принтирайте</div> </div> <div class="contract-grid" id="contractGrid"> <div class="contract-type" onclick="selectType('website')" id="ct-website"> <div class="ct-icon">🌐</div> <div class="ct-title">Договор за сайт</div> <div class="ct-desc">Изработка на уебсайт + опционална поддръжка</div> </div> <div class="contract-type" onclick="selectType('shop')" id="ct-shop"> <div class="ct-icon">🛒</div> <div class="ct-title">Договор за онлайн магазин</div> <div class="ct-desc">WooCommerce / E-commerce + поддръжка</div> </div> <div class="contract-type" onclick="selectType('marketing')" id="ct-marketing"> <div class="ct-icon">📱</div> <div class="ct-title">Договор за маркетинг</div> <div class="ct-desc">Соц. мрежи, Google Ads, SEO, рийлсове</div> </div> <div class="contract-type" onclick="selectType('maintenance')" id="ct-maintenance"> <div class="ct-icon">🔧</div> <div class="ct-title">Договор за ИТ поддръжка</div> <div class="ct-desc">Месечна поддръжка, хостинг, мониторинг</div> </div> <div class="contract-type" onclick="selectType('subcontractor')" id="ct-subcontractor"> <div class="ct-icon">🤝</div> <div class="ct-title">Договор за подизпълнител</div> <div class="ct-desc">Между изпълнител и външен партньор</div> </div> <div class="contract-type" onclick="selectType('complex')" id="ct-complex"> <div class="ct-icon">⭐</div> <div class="ct-title">Комплексен договор</div> <div class="ct-desc">Сайт/магазин + маркетинг + поддръжка</div> </div> </div> <button class="generate-btn" onclick="generateContract()" id="generateBtn" disabled>Избери вид договор →</button> </div> <!-- CONTRACT DOC --> <div class="contract-doc-page" id="contractDocPage"> <div class="toolbar"> <button class="tbtn back" onclick="goBack()">← Назад</button> <button class="tbtn sec" onclick="toggleEdit()" id="editBtn">✏️ Редактирай</button> <button class="tbtn sec" onclick="saveTemplate()">💾 Запази шаблон</button> <button class="tbtn sec" onclick="resetTemplate()">↺ Нулирай шаблон</button> <button class="tbtn sec" onclick="window.print()">🖨 Принтирай</button> <button class="tbtn primary" onclick="window.print()">⬇ PDF</button> </div> <div class="edit-banner" id="editBanner">✏️ Можеш да редактираш и директно в документа.</div> <div class="contract-workspace"> <aside class="contract-editor" id="contractEditor"> <div class="editor-title">Попълване на договор</div> <div class="editor-hint">Полетата тук попълват всички празни места в документа автоматично.</div> <div id="contractForm"></div> </aside> <div class="doc" id="contractDoc"></div> </div> </div> <script> let selectedType = null; let HUB_SECTOR = 'agency'; const months=['яну','фев','мар','апр','май','юни','юли','авг','сеп','окт','ное','дек']; function fmtDate(d){return d.getDate()+' '+months[d.getMonth()]+' '+d.getFullYear()+'г.'} const TODAY = fmtDate(new Date()); const YEAR = new Date().getFullYear(); function selectType(type) { selectedType = type; document.querySelectorAll('.contract-type').forEach(el => el.classList.remove('selected')); const el=document.getElementById('ct-'+type); if(el)el.classList.add('selected'); document.getElementById('generateBtn').disabled = false; document.getElementById('generateBtn').textContent = 'Генерирай договора →'; } function goBack() { document.getElementById('selectorPage').style.display = 'block'; document.getElementById('contractDocPage').style.display = 'none'; editMode = false; } let editMode = false; function toggleEdit() { editMode = !editMode; document.getElementById('editBanner').classList.toggle('show', editMode); document.getElementById('editBtn').textContent = editMode ? '✅ Готово' : '✏️ Редактирай'; const doc=document.getElementById('contractDoc'); doc.classList.toggle('edit-mode', editMode); doc.contentEditable = editMode ? 'true' : 'false'; document.querySelectorAll('[contenteditable], .editable-field').forEach(el => { el.contentEditable = editMode ? 'true' : 'false'; }); } function escHtml(s){return String(s==null?'':s).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"');} function escAttr(s){return escHtml(s).replace(/'/g,''');} function cssAttr(s){return String(s).replace(/\\/g,'\\\\').replace(/"/g,'\\"');} function f(label, def='______') { return `<span class="editable-field" data-label="${escAttr(label)}" contenteditable="false">${def}</span>`; } function setContractField(label,value){ document.querySelectorAll('#contractDoc .editable-field[data-label="'+cssAttr(label)+'"]').forEach(el=>{ el.textContent = value && value.trim() ? value : '______'; }); } function buildContractForm(){ const box=document.getElementById('contractForm'); if(!box)return; const fields=[...document.querySelectorAll('#contractDoc .editable-field[data-label]')]; const seen=new Map(); fields.forEach(el=>{ const label=el.dataset.label||'Поле'; const val=el.textContent.trim(); if(!seen.has(label))seen.set(label,val); }); if(!seen.size){ box.innerHTML='<div class="editor-hint">В този шаблон няма маркирани полета.</div>'; return; } const longLabels=/описание|обхват|дейности|стоки|услуга|пакет|маршрут|условия|материали|допълнително/i; box.innerHTML=[...seen.entries()].map(([label,value])=>{ const id='cf_'+Math.random().toString(36).slice(2); const tag=longLabels.test(label)?'textarea':'input'; const valueAttr=tag==='textarea'?'>'+escHtml(value)+'</textarea>':' value="'+escAttr(value)+'">'; return '<div class="form-field"><label for="'+id+'">'+escHtml(label)+'</label><'+tag+' id="'+id+'" data-contract-label="'+escAttr(label)+'"'+valueAttr+'</div>'; }).join(''); box.querySelectorAll('[data-contract-label]').forEach(input=>{ input.addEventListener('input',()=>setContractField(input.dataset.contractLabel,input.value)); }); } function contractHeader(title, num) { return ` <div class="doc-header"> <div class="header-top"> <div class="logo-img" style="filter:none;color:#fff;font-weight:700;font-size:14px">${f('Лого / фирма','________________')}</div> <div class="doc-type-block"> <div class="dt-label">Документ</div> <div class="dt-title">${title}</div> <div class="dt-num">№ ${f('Номер','ДОГ-'+YEAR+'-'+'___')}</div> </div> </div> <div class="header-bottom"> <div class="header-parties"> <div> <div class="party-label">Изпълнител</div> <div class="party-name">${f('Изпълнител','_________________________')}</div> <div class="party-detail">ЕИК: ${f('ЕИК изпълнител','_________')}<br>Email/тел.: ${f('Контакт изпълнител','_________________________')}<br>Представлявано от: ${f('Представляващ изпълнител','________________')}</div> </div> <div> <div class="party-label">Възложител</div> <div class="party-name" contenteditable="false">${f('Клиент','Клиент / Фирма ООД')}</div> <div class="party-detail" contenteditable="false">ЕИК: ${f('ЕИК клиент','_________')}<br>Email: ${f('Email клиент','______@_____.bg')}<br>Представлявано от: ${f('Представляващ клиент','______________')}</div> </div> </div> </div> </div> <div class="doc-body">`; } function contractFooter() { return ` <div class="sign-section"> <div class="sign-box"> <div class="sign-label">За ИЗПЪЛНИТЕЛЯ</div> <div class="sign-name">${f('Изпълнител','_________________________')}</div> <div class="sign-area"></div> <div class="sign-date-line">Дата: ${TODAY} Подпис и печат: _____________</div> </div> <div class="sign-box"> <div class="sign-label">За ВЪЗЛОЖИТЕЛЯ</div> <div class="sign-name" contenteditable="false">${f('Клиент','_________________________')}</div> <div class="sign-area"></div> <div class="sign-date-line">Дата: _______________ Подпис и печат: _____________</div> </div> </div> </div><!-- /doc-body --> <div class="doc-footer"> <div class="footer-left"><strong>${f('Фирма','_________________________')}</strong></div> <div class="footer-right">${f('Контакт','_________________________')}</div> </div>`; } function sectorIntro(role='Изпълнител') { return `<div class="contract-section" style="padding-top:24px"> <div style="font-size:13px;color:var(--text2);line-height:1.8;background:#f5f3ff;padding:14px 18px;border-radius:10px;border-left:3px solid var(--accent)"> Сключен днес, <strong>${TODAY}</strong>, между <strong>${f(role,'_________________________')}</strong> и <strong contenteditable="false">${f('Клиент','_________________________')}</strong>. </div> </div>`; } function universalContract(title, subject, serviceItems, extra='') { return contractHeader(title, 'ДОГ') + sectorIntro('Изпълнител') + ` <div class="contract-section"> <div class="cs-num">Чл. 1</div><div class="cs-title">ПРЕДМЕТ</div> <div class="cs-body"><p>${subject}</p><ul>${serviceItems.map(x=>'<li>'+x+'</li>').join('')}</ul></div> </div> <div class="contract-section"> <div class="cs-num">Чл. 2</div><div class="cs-title">СРОК И ОРГАНИЗАЦИЯ</div> <div class="cs-body"> <p>2.1. Договорът влиза в сила от <strong>${TODAY}</strong> и се изпълнява за срок ${f('Срок','__________')}.</p> <p>2.2. Възложителят предоставя навреме необходимите документи, достъпи, информация и съдействие.</p> <p>2.3. Промени извън първоначалния обхват се описват писмено и се заплащат отделно.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 3</div><div class="cs-title">ЦЕНА И ПЛАЩАНЕ</div> <div class="cs-body"> <p>3.1. Възнаграждението е <strong>${f('Сума','__________')}</strong> ${f('Валута','лв./EUR')}, без/с ДДС според регистрацията на изпълнителя.</p> <p>3.2. Плащане: ${f('Плащане','аванс ____%, остатък при приемане / месечна такса до __ число')}.</p> <p>3.3. При забавено плащане изпълнението може да бъде временно спряно до уреждане на задължението.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 4</div><div class="cs-title">ОТГОВОРНОСТ И ПОВЕРИТЕЛНОСТ</div> <div class="cs-body"> <p>4.1. Страните пазят търговска, лична, медицинска, счетоводна или друга поверителна информация, получена във връзка с договора.</p> <p>4.2. Изпълнителят отговаря за качествено изпълнение в рамките на договорения обхват, но не носи отговорност за действия на трети лица или непредоставени данни.</p> <p>4.3. Личните данни се обработват само за целите на договора и според приложимото законодателство.</p> <p>4.4. Приемането се извършва с протокол, имейл потвърждение или друг писмен запис: ${f('Приемане','протокол / имейл / друг начин')}.</p> <p>4.5. Гаранционен срок или срок за рекламации: ${f('Гаранция / рекламации','__________')}.</p> </div> </div> ${extra} <div class="contract-section"> <div class="cs-num">Чл. 5</div><div class="cs-title">Комуникация, документи и промени</div> <div class="cs-body"> <p>5.1. Официална комуникация: ${f('Официален контакт','имейл / адрес / система')}.</p> <p>5.2. Необходими приложения: ${f('Приложения','оферта, спецификация, график, протокол')}.</p> <p>5.3. Всички промени в обхвата, цената или срока се потвърждават писмено.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 6</div><div class="cs-title">ПРЕКРАТЯВАНЕ И ЗАКЛЮЧИТЕЛНИ РАЗПОРЕДБИ</div> <div class="cs-body"> <p>6.1. Договорът може да бъде прекратен по взаимно съгласие или с писмено предизвестие от ${f('Предизвестие','30 дни')}.</p> <p>6.2. За неуредените въпроси се прилага действащото законодателство на Република България.</p> <p>6.3. Договорът е съставен в два еднакви екземпляра — по един за всяка страна.</p> </div> </div>` + contractFooter(); } const SECTOR_CARDS = { medical:[ ['medical_service','⚕️','Договор за медицинска услуга','Прегледи, процедури, пакетно обслужване'], ['medical_subscription','📅','Абонамент за клиника','Периодично обслужване и профилактика'], ['medical_privacy','🔐','Поверителност и лични данни','GDPR/медицинска информация'] ], logistics:[ ['transport','🚚','Договор за транспорт','Курсове, товари, маршрути, отговорности'], ['warehouse','📦','Договор за склад','Съхранение, приемане и предаване'], ['fleet_service','🧾','Пътни листове и автопарк','Автомобили, гориво, отчетност'] ], construction:[ ['construction_work','🏗️','Договор за СМР','Строително-монтажни работи'], ['renovation','🧱','Ремонт / монтаж','Материали, етапи, приемане'], ['subcontractor_build','🤝','Подизпълнител','Външен екип или майстор'] ], retail:[ ['supply','🛍️','Договор за доставка','Стоки, количества, срокове'], ['retail_service','🏬','Обслужване на магазин','Поддръжка, наличности, процеси'], ['sale_terms','📄','Общи търговски условия','Плащане, връщане, гаранции'] ], restaurant:[ ['restaurant_supply','🍽️','Договор с доставчик','Храни, напитки, доставки'], ['event_catering','🥂','Кетъринг / събитие','Меню, дата, брой гости'], ['staff_service','👥','Персонал / обслужване','Смени, отговорности, заплащане'] ], accounting:[ ['accounting_service','🧮','Счетоводно обслужване','Месечно счетоводство и отчети'], ['payroll','👤','ТРЗ и заплати','Персонал, ведомости, декларации'], ['tax_consult','📊','Данъчна консултация','Справки, анализи, становища'] ], legal:[ ['legal_service','⚖️','Правно обслужване','Консултации и документи'], ['court_representation','🏛️','Процесуално представителство','Дело, съд, пълномощия'], ['legal_subscription','📚','Абонаментно правно обслужване','Месечен пакет услуги'] ] }; const SECTOR_CONTRACTS = { medical_service:()=>universalContract('ДОГОВОР ЗА МЕДИЦИНСКА УСЛУГА','Изпълнителят предоставя медицинска/здравна услуга при спазване на професионалните стандарти и правилата за информирано съгласие.',['Вид услуга: '+f('Услуга','преглед / процедура / пакет'),'Място на изпълнение: '+f('Адрес','________________'),'Пациент/клиент: '+f('Пациент','________________'),'Информирано съгласие и поверителност на медицинската информация']), medical_subscription:()=>universalContract('ДОГОВОР ЗА АБОНАМЕНТНО МЕДИЦИНСКО ОБСЛУЖВАНЕ','Изпълнителят предоставя периодични профилактични или консултативни услуги.',['Пакет услуги: '+f('Пакет','________________'),'Брой посещения/консултации: '+f('Брой','____'),'График и записване на часове','Отчетност и медицинска документация']), medical_privacy:()=>universalContract('СПОРАЗУМЕНИЕ ЗА ПОВЕРИТЕЛНОСТ И ЛИЧНИ ДАННИ','Страните уреждат правилата за защита на лични и чувствителни данни.',['Категории данни: '+f('Данни','лични / здравни / финансови'),'Основание и срок на обработване','Достъп само от упълномощени лица','Мерки за сигурност и уведомяване при инцидент']), transport:()=>universalContract('ДОГОВОР ЗА ТРАНСПОРТНА УСЛУГА','Изпълнителят извършва транспорт на товари/пратки по договорени маршрути.',['Маршрут: '+f('Маршрут','от ______ до ______'),'Вид товар: '+f('Товар','________________'),'Срок за доставка: '+f('Срок','________'),'Отговорност при повреда, липса или забавяне']), warehouse:()=>universalContract('ДОГОВОР ЗА СКЛАДОВО ОБСЛУЖВАНЕ','Изпълнителят приема, съхранява и предава стоки по заявка на Възложителя.',['Складова площ/условия: '+f('Условия','________________'),'Приемо-предавателни протоколи','Отчетност за наличности','Отговорност при липси и повреди']), fleet_service:()=>universalContract('ДОГОВОР ЗА ОБСЛУЖВАНЕ НА АВТОПАРК И ПЪТНИ ЛИСТОВЕ','Страните уреждат отчетност, маршрути и разходи за автомобили.',['Автомобили: '+f('Автомобили','рег. номера ______'),'Пътни листове и километраж','Гориво, разходи и лимити','Периодични отчети']), construction_work:()=>universalContract('ДОГОВОР ЗА СТРОИТЕЛНО-МОНТАЖНИ РАБОТИ','Изпълнителят извършва СМР по обект на Възложителя.',['Обект: '+f('Обект','________________'),'Вид работи: '+f('СМР','________________'),'Материали: '+f('Материали','от изпълнителя / възложителя'),'Етапи, приемане и гаранционен срок']), renovation:()=>universalContract('ДОГОВОР ЗА РЕМОНТ И МОНТАЖ','Изпълнителят извършва ремонтни/монтажни дейности.',['Помещение/обект: '+f('Обект','________________'),'Дейности и материали','Срок по етапи','Приемо-предавателен протокол']), subcontractor_build:()=>universalContract('ДОГОВОР С ПОДИЗПЪЛНИТЕЛ','Подизпълнителят извършва конкретна част от възложен проект.',['Основен проект: '+f('Проект','________________'),'Обхват на подизпълнителя','Срокове и координация','Отговорност за качество и безопасност']), supply:()=>universalContract('ДОГОВОР ЗА ДОСТАВКА НА СТОКИ','Доставчикът доставя стоки при договорени количества, цени и срокове.',['Вид стоки: '+f('Стоки','________________'),'Количество и единични цени','Срок и място на доставка','Рекламации, връщане и гаранции']), retail_service:()=>universalContract('ДОГОВОР ЗА ОБСЛУЖВАНЕ НА МАГАЗИН','Изпълнителят подпомага оперативни процеси в търговски обект.',['Обект: '+f('Магазин','________________'),'Процеси: наличности, каса, доставки','Отчетност и справки','Достъп до системи и поверителност']), sale_terms:()=>universalContract('ОБЩИ ТЪРГОВСКИ УСЛОВИЯ','Документът урежда продажби, плащания, доставки и рекламации.',['Начини на плащане','Доставка и получаване','Връщане и рекламации','Гаранции и отговорност']), restaurant_supply:()=>universalContract('ДОГОВОР С ДОСТАВЧИК ЗА ЗАВЕДЕНИЕ','Доставчикът предоставя храни, напитки или консумативи за обекта.',['Вид продукти: '+f('Продукти','________________'),'График на доставки','Качество, срок на годност и температурен режим','Рекламации при несъответствие']), event_catering:()=>universalContract('ДОГОВОР ЗА КЕТЪРИНГ / СЪБИТИЕ','Изпълнителят организира кетъринг или обслужване за събитие.',['Дата и място: '+f('Събитие','________________'),'Брой гости: '+f('Гости','____'),'Меню и напитки','Аванс, анулации и промени']), staff_service:()=>universalContract('ДОГОВОР ЗА ПЕРСОНАЛ И ОБСЛУЖВАНЕ','Изпълнителят предоставя персонал или услуга по обслужване.',['Позиции и брой хора','График и смени','Отговорности и униформа','Отчетност на работно време']), accounting_service:()=>universalContract('ДОГОВОР ЗА СЧЕТОВОДНО ОБСЛУЖВАНЕ','Изпълнителят извършва счетоводно обслужване и подаване на документи.',['Месечно счетоводство','ДДС дневници и декларации','Годишно приключване: '+f('Включено','да / не'),'Срокове за предоставяне на документи']), payroll:()=>universalContract('ДОГОВОР ЗА ТРЗ И ЗАПЛАТИ','Изпълнителят обработва заплати, осигуровки и кадрови документи.',['Брой служители: '+f('Брой','____'),'Ведомости и фишове','Декларации към институции','Данни от работодателя и срокове']), tax_consult:()=>universalContract('ДОГОВОР ЗА ДАНЪЧНА КОНСУЛТАЦИЯ','Изпълнителят предоставя становище, анализ или консултация.',['Тема на консултацията: '+f('Тема','________________'),'Необходими документи','Срок за становище','Ограничение на отговорността според предоставените данни']), legal_service:()=>universalContract('ДОГОВОР ЗА ПРАВНО ОБСЛУЖВАНЕ','Изпълнителят предоставя правни консултации и подготовка на документи.',['Обхват: '+f('Обхват','консултации / договори / проверки'),'Срок за подготовка на документи','Поверителност и адвокатска тайна','Такси и държавни разноски отделно']), court_representation:()=>universalContract('ДОГОВОР ЗА ПРОЦЕСУАЛНО ПРЕДСТАВИТЕЛСТВО','Изпълнителят представлява Възложителя пред съд/институция.',['Дело/преписка: '+f('№','________________'),'Инстанция/орган: '+f('Орган','________________'),'Пълномощно и документи','Разноски, такси и хонорар']), legal_subscription:()=>universalContract('ДОГОВОР ЗА АБОНАМЕНТНО ПРАВНО ОБСЛУЖВАНЕ','Изпълнителят предоставя месечен пакет правни услуги.',['Месечен пакет часове: '+f('Часове','____'),'Консултации и преглед на документи','Спешни задачи и извънредни услуги','Месечен отчет']) }; function commonSections(serviceDesc) { return ` <div class="contract-section"> <div class="cs-num">Чл. 1</div> <div class="cs-title">ПРЕДМЕТ НА ДОГОВОРА</div> <div class="cs-body"> <p>Изпълнителят се задължава да извърши за Възложителя следните услуги:</p> ${serviceDesc} <p>срещу заплащане на уговореното в настоящия договор възнаграждение.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 2</div> <div class="cs-title">СРОК НА ИЗПЪЛНЕНИЕ</div> <div class="cs-body"> <p>2.1. Изпълнителят се задължава да изпълни поръчката в срок до <strong contenteditable="false">${f('Срок','30 (тридесет)')}</strong> работни дни от датата на подписване на настоящия договор и получаване на авансовото плащане.</p> <p>2.2. Срокът се счита за спазен при предаване на готовия продукт за одобрение от Възложителя.</p> <p>2.3. При забавяне от страна на Възложителя (непредоставяне на материали, съдържание, достъпи), срокът се удължава с периода на забавяне.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 3</div> <div class="cs-title">ЦЕНА И НАЧИН НА ПЛАЩАНЕ</div> <div class="cs-body"> <p>3.1. Възложителят заплаща на Изпълнителя възнаграждение в размер на <strong contenteditable="false">${f('Сума','€ _____ (_____ евро)')}</strong>, без включено ДДС.</p> <p>3.2. Плащането се извършва по следния график:</p> <ul> <li><strong>50% (аванс/капаро)</strong> — при подписване на договора: ${f('Аванс','€ _____')}</li> <li><strong>50% (финален транш)</strong> — при предаване на готовия проект: ${f('Финал','€ _____')}</li> </ul> <p>3.3. Плащането се извършва по банков път по сметка на Изпълнителя: IBAN ${f('IBAN','BG__ ____ ____ __ ______ __')}</p> <p>3.4. Фактура се издава в рамките на 5 (пет) работни дни след получаване на плащането.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 4</div> <div class="cs-title">ПРАВА И ЗАДЪЛЖЕНИЯ НА ИЗПЪЛНИТЕЛЯ</div> <div class="cs-body"> <ul> <li>Да изпълни поръчката в срок и в съответствие с уговорените изисквания.</li> <li>Да предостави до <strong contenteditable="false">${f('Ревизии','3 (три)')}</strong> безплатни корекции в рамките на проекта.</li> <li>Да поддържа поверителност на информацията, получена от Възложителя.</li> <li>Да информира Възложителя при отклонения от первоначалния план или при необходимост от промяна на срока.</li> </ul> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 5</div> <div class="cs-title">ПРАВА И ЗАДЪЛЖЕНИЯ НА ВЪЗЛОЖИТЕЛЯ</div> <div class="cs-body"> <ul> <li>Да предоставя своевременно необходимите материали, съдържание и достъпи.</li> <li>Да потвърждава или отхвърля с мотивирано становище в срок до <strong>5 (пет)</strong> работни дни.</li> <li>Да заплаща уговореното възнаграждение в срок.</li> <li>Да не разпространява или използва частични резултати преди финалното плащане.</li> </ul> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 6</div> <div class="cs-title">ИНТЕЛЕКТУАЛНА СОБСТВЕНОСТ</div> <div class="cs-body"> <p>6.1. След извършване на пълното плащане, Възложителят придобива правото на ползване на изработения продукт.</p> <p>6.2. Изпълнителят запазва правото да включва проекта в своето портфолио, освен ако Възложителят изрично е поискал конфиденциалност.</p> <p>6.3. Всички използвани лицензирани шрифтове, изображения и плъгини остават собственост на съответните им притежатели.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 7</div> <div class="cs-title">ОТГОВОРНОСТ И ГАРАНЦИЯ</div> <div class="cs-body"> <p>7.1. Изпълнителят предоставя гаранционен период от <strong contenteditable="false">${f('Гаранция','30 (тридесет)')}</strong> календарни дни след предаването на проекта, в рамките на който безплатно отстранява бъгове, причинени от разработката.</p> <p>7.2. Гаранцията не покрива повреди, причинени от: промени направени от Възложителя или трети лица, хакерски атаки, сривове на хостинг или действия на непреодолима сила.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 8</div> <div class="cs-title">ПРЕКРАТЯВАНЕ НА ДОГОВОРА</div> <div class="cs-body"> <p>8.1. Договорът може да се прекрати по взаимно съгласие на страните, оформено в писмен вид.</p> <p>8.2. При отказ от Възложителя след стартиране на работата, авансът не се връща.</p> <p>8.3. При неизпълнение от страна на Изпълнителя, той дължи връщане на авансовото плащане.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 9</div> <div class="cs-title">ЗАКЛЮЧИТЕЛНИ РАЗПОРЕДБИ</div> <div class="cs-body"> <p>9.1. Настоящият договор е съставен в два еднакви екземпляра — по един за всяка от страните.</p> <p>9.2. За неуредените в договора въпроси се прилага действащото законодателство на Република България.</p> <p>9.3. Всички спорове се решават по взаимно съгласие, а при невъзможност — по съдебен ред в компетентния съд в гр. ${f('Град','_________')}.</p> <p>9.4. Договорът влиза в сила от датата на подписването му и получаване на авансовото плащане.</p> </div> </div>`; } const CONTRACTS = { website: () => contractHeader('ДОГОВОР ЗА ИЗРАБОТКА НА УЕБСАЙТ', 'WT-ДОГ') + ` <div class="contract-section" style="padding-top:24px"> <div style="font-size:13px;color:var(--text2);line-height:1.8;background:#f5f3ff;padding:14px 18px;border-radius:10px;border-left:3px solid var(--accent)"> Сключен днес, <strong>${TODAY}</strong>, между <strong>УЕБТРИКСИА ЕООД</strong> (Изпълнител) и <strong contenteditable="false">${f('Клиент','_________________________')}</strong> (Възложител). </div> </div> ${commonSections(` <ul> <li>Разработка на уебсайт на базата на ${f('Платформа','WordPress')} с уникален дизайн</li> <li>Адаптивност за всички устройства (mobile, tablet, desktop)</li> <li>Интеграция на до ${f('Страници','__ (___)')} страници съдържание</li> <li>SEO оптимизация и регистрация в търсачките (Google, Bing)</li> <li>SSL сертификат и базова сигурност</li> <li>Обучение за работа с административния панел</li> <li contenteditable="false">${f('Допълнителна функционалност','___________________________')}</li> </ul>`)} <div class="contract-section"> <div class="cs-num">Чл. 10</div> <div class="cs-title">ПОДДРЪЖКА (НЕЗАДЪЛЖИТЕЛНО)</div> <div class="cs-body"> <p>При желание на Възложителя, след предаване на сайта може да бъде сключен отделен Договор за ИТ поддръжка на стойност <strong contenteditable="false">${f('Поддръжка','€ __ / месец')}</strong>, включващ: актуализации, бекъпи, мониторинг и отстраняване на нередности.</p> </div> </div>` + contractFooter(), shop: () => contractHeader('ДОГОВОР ЗА ИЗРАБОТКА НА ОНЛАЙН МАГАЗИН', 'WT-ДОГ') + ` <div class="contract-section" style="padding-top:24px"> <div style="font-size:13px;color:var(--text2);line-height:1.8;background:#f5f3ff;padding:14px 18px;border-radius:10px;border-left:3px solid var(--accent)"> Сключен днес, <strong>${TODAY}</strong>, между <strong>УЕБТРИКСИА ЕООД</strong> (Изпълнител) и <strong contenteditable="false">${f('Клиент','_________________________')}</strong> (Възложител). </div> </div> ${commonSections(` <ul> <li>Изработка на онлайн магазин на базата на ${f('Платформа','WooCommerce / WordPress')}</li> <li>Уникален дизайн, адаптивен за всички устройства</li> <li>Качване и настройка на до ${f('Продукти','__ (_____)')} продукта</li> <li>Интеграция с платежни системи: ${f('Плащане','наложен платеж, банков превод, карта')}</li> <li>Интеграция с куриерски фирми за генериране на товарителници</li> <li>Категории, филтри, разширено търсене</li> <li>SEO оптимизация и регистрация в Google</li> <li>Обучение за управление на магазина</li> <li contenteditable="false">${f('Допълнително','___________________________')}</li> </ul>`)} <div class="contract-section"> <div class="cs-num">Чл. 10</div> <div class="cs-title">ХОСТИНГ И ПОДДРЪЖКА</div> <div class="cs-body"> <p>10.1. Хостингът на магазина е: ${f('Хостинг','□ предоставен от Изпълнителя □ предоставен от Възложителя')}.</p> <p>10.2. При желание на Възложителя се сключва отделен Договор за ИТ поддръжка на стойност <strong contenteditable="false">${f('Поддръжка','€ __ / месец')}</strong>.</p> </div> </div>` + contractFooter(), marketing: () => contractHeader('ДОГОВОР ЗА МАРКЕТИНГ УСЛУГИ', 'WT-ДОГ') + ` <div class="contract-section" style="padding-top:24px"> <div style="font-size:13px;color:var(--text2);line-height:1.8;background:#f5f3ff;padding:14px 18px;border-radius:10px;border-left:3px solid var(--accent)"> Сключен днес, <strong>${TODAY}</strong>, между <strong>УЕБТРИКСИА ЕООД</strong> (Изпълнител) и <strong contenteditable="false">${f('Клиент','_________________________')}</strong> (Възложител). </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 1</div> <div class="cs-title">ПРЕДМЕТ НА ДОГОВОРА</div> <div class="cs-body"> <p>Изпълнителят се задължава да предоставя следните маркетинг услуги:</p> <ul> <li contenteditable="false">□ Управление на Facebook / Instagram акаунти</li> <li contenteditable="false">□ Google Ads кампании и оптимизация</li> <li contenteditable="false">□ Дневни сторита и постове</li> <li contenteditable="false">□ Заснемане на видео рийлсове в обекта</li> <li contenteditable="false">□ Седмични брошури (A4/A5, PDF + дигитален)</li> <li contenteditable="false">□ Viber канал — настройка и управление</li> <li contenteditable="false">□ Организиране на томболи и игри</li> <li contenteditable="false">□ Месечен отчет за резултатите</li> <li contenteditable="false">${f('Допълнителна услуга','___________________________')}</li> </ul> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 2</div> <div class="cs-title">СРОК НА ДОГОВОРА</div> <div class="cs-body"> <p>2.1. Договорът се сключва за минимален срок от <strong contenteditable="false">${f('Срок','6 (шест)')}</strong> месеца, считано от <strong>${TODAY}</strong>.</p> <p>2.2. След изтичане на минималния срок, договорът се подновява автоматично за следващ месец, ако не е прекратен.</p> <p>2.3. Прекратяването изисква писмено уведомление минимум <strong>30 (тридесет)</strong> дни предварително.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 3</div> <div class="cs-title">ЦЕНА И ПЛАЩАНЕ</div> <div class="cs-body"> <p>3.1. Месечната такса за услугите е <strong contenteditable="false">${f('Цена','€ _____ (_____ евро)')}</strong>, с включено ДДС.</p> <p>3.2. Плащането се извършва до <strong>5-то число</strong> на текущия месец по банков път.</p> <p>3.3. При забавяне на плащане над 10 дни, Изпълнителят може да преустанови услугите до получаване на дължимата сума.</p> <p>3.4. Рекламните бюджети (Google Ads, Facebook Ads) се поемат и плащат отделно от Възложителя.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 4</div> <div class="cs-title">ПРАВА И ЗАДЪЛЖЕНИЯ</div> <div class="cs-body"> <ul> <li>Изпълнителят предоставя месечен отчет до 5-то число на следващия месец.</li> <li>Съдържанието се съгласува с Възложителя преди публикуване.</li> <li>Възложителят предоставя достъп до профилите и необходимите материали.</li> <li>Изпълнителят не носи отговорност за резултатите от платените реклами при недостатъчен бюджет.</li> </ul> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 5 — 8</div> <div class="cs-title">ПОВЕРИТЕЛНОСТ, ПРЕКРАТЯВАНЕ И ЗАКЛЮЧИТЕЛНИ РАЗПОРЕДБИ</div> <div class="cs-body"> <p>5.1. Страните се задължават да пазят поверителност на търговската информация.</p> <p>6.1. Договорът се прекратява с 30-дневно писмено предизвестие след изтичане на минималния срок.</p> <p>7.1. При форсмажорни обстоятелства, страните не носят отговорност за неизпълнение.</p> <p>8.1. Договорът е съставен в два екземпляра. За неуредените въпроси се прилага законодателството на РБ.</p> </div> </div>` + contractFooter(), maintenance: () => contractHeader('ДОГОВОР ЗА ИТ ПОДДРЪЖКА', 'WT-ДОГ') + ` <div class="contract-section" style="padding-top:24px"> <div style="font-size:13px;color:var(--text2);line-height:1.8;background:#f5f3ff;padding:14px 18px;border-radius:10px;border-left:3px solid var(--accent)"> Сключен днес, <strong>${TODAY}</strong>, между <strong>УЕБТРИКСИА ЕООД</strong> (Изпълнител) и <strong contenteditable="false">${f('Клиент','_________________________')}</strong> (Възложител). </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 1</div><div class="cs-title">ПРЕДМЕТ</div> <div class="cs-body"><p>Изпълнителят предоставя следните услуги по поддръжка на уебсайт/платформа на адрес: <strong contenteditable="false">${f('Домейн','___________________')}</strong></p> <ul> <li>7/24 мониторинг на платформата и сайта</li> <li>Отстраняване на нередности и технически проблеми</li> <li>Актуализиране на системата (CMS, плъгини, теми) — веднъж седмично</li> <li>Ежедневен автоматичен бекъп на базата данни и файловете</li> <li>Сканиране за злонамерен достъп — веднъж седмично</li> <li>Смяна на банери и текстово съдържание — до ${f('Промени','_ (_____)')} промени месечно</li> <li contenteditable="false">${f('Допълнително','___________________________')}</li> </ul> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 2</div><div class="cs-title">СРОК</div> <div class="cs-body"> <p>2.1. Договорът е безсрочен и влиза в сила от <strong>${TODAY}</strong>.</p> <p>2.2. Прекратява се с писмено уведомление минимум <strong>30 (тридесет)</strong> дни предварително.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 3</div><div class="cs-title">ЦЕНА И ПЛАЩАНЕ</div> <div class="cs-body"> <p>3.1. Месечната такса е <strong contenteditable="false">${f('Цена','€ _____ (_____ евро)')}</strong>, с включено ДДС.</p> <p>3.2. Плащането се извършва до <strong>5-то число</strong> на текущия месец по банков път.</p> <p>3.3. Хостингът е: ${f('Хостинг','□ включен в таксата □ отделно заплащан от Възложителя')}.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 4 — 7</div><div class="cs-title">ОТГОВОРНОСТ, ПОВЕРИТЕЛНОСТ, ПРЕКРАТЯВАНЕ, ЗАКЛЮЧИТЕЛНО</div> <div class="cs-body"> <p>4.1. Изпълнителят не носи отговорност за щети, причинени от атаки, хостинг сривове или трети лица.</p> <p>4.2. Страните пазят поверителност на достъпите и техническата информация.</p> <p>5.1. Договорът може да бъде прекратен по взаимно съгласие или с 30-дневно предизвестие.</p> <p>6.1. Договорът е съставен в два екземпляра. За неуредените въпроси се прилага законодателството на РБ.</p> </div> </div>` + contractFooter(), subcontractor: () => contractHeader('ДОГОВОР ЗА ПОДИЗПЪЛНЕНИЕ', 'WT-ПОД') + ` <div class="contract-section" style="padding-top:24px"> <div style="font-size:13px;color:var(--text2);line-height:1.8;background:#fff3cd;padding:14px 18px;border-radius:10px;border-left:3px solid var(--amber)"> Сключен днес, <strong>${TODAY}</strong>, между <strong>УЕБТРИКСИА ЕООД</strong> (Главен изпълнител) и <strong contenteditable="false">${f('Подизпълнител','_________________________')}</strong> (Подизпълнител). </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 1</div><div class="cs-title">ПРЕДМЕТ</div> <div class="cs-body"> <p>Главният изпълнител възлага на Подизпълнителя следните дейности:</p> <ul> <li contenteditable="false">${f('Услуга 1','_______________________________________')}</li> <li contenteditable="false">${f('Услуга 2','_______________________________________')}</li> <li contenteditable="false">${f('Услуга 3','_______________________________________')}</li> </ul> <p>в рамките на проект: <strong contenteditable="false">${f('Проект','_______________________________')}</strong></p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 2</div><div class="cs-title">СРОК</div> <div class="cs-body"> <p>2.1. Срок на изпълнение: <strong contenteditable="false">${f('Срок','__ (_____)')}</strong> работни дни от подписването.</p> <p>2.2. При забавяне, Подизпълнителят уведомява незабавно.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 3</div><div class="cs-title">ВЪЗНАГРАЖДЕНИЕ</div> <div class="cs-body"> <p>3.1. Възнаграждението е <strong contenteditable="false">${f('Сума','€ _____ (_____ евро)')}</strong>.</p> <p>3.2. Плащане: ${f('График плащане','□ еднократно при предаване □ 50% аванс + 50% при предаване')}.</p> <p>3.3. Подизпълнителят издава фактура/разписка за получената сума.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 4</div><div class="cs-title">ПОВЕРИТЕЛНОСТ И НКА</div> <div class="cs-body"> <p>4.1. Подизпълнителят се задължава да пази поверителност относно клиентите, проектите и търговската информация на УЕБТРИКСИА ЕООД.</p> <p>4.2. Подизпълнителят не контактува директно с клиентите на УЕБТРИКСИА ЕООД без изрично разрешение.</p> <p>4.3. Забраната е в сила за период от <strong>24 (двадесет и четири)</strong> месеца след прекратяване на сътрудничеството.</p> </div> </div> <div class="contract-section"> <div class="cs-num">Чл. 5</div><div class="cs-title">ИНТЕЛЕКТУАЛНА СОБСТВЕНОСТ И ПРЕДАВАНЕ</div> <div class="cs-body"> <p>5.1. Всички резултати от работата са собственост на УЕБТРИКСИА ЕООД след пълното плащане.</p> <p>5.2. Подизпълнителят предава работата заедно с всички изходни файлове, достъпи и документация.</p> <p>5.3. Договорът е съставен в два екземпляра. За неуредените въпроси се прилага законодателството на РБ.</p> </div> </div>` + contractFooter(), complex: () => contractHeader('КОМПЛЕКСЕН ДОГОВОР', 'WT-ДОГ') + ` <div class="contract-section" style="padding-top:24px"> <div style="font-size:13px;color:var(--text2);line-height:1.8;background:#f5f3ff;padding:14px 18px;border-radius:10px;border-left:3px solid var(--accent)"> Сключен днес, <strong>${TODAY}</strong>, между <strong>УЕБТРИКСИА ЕООД</strong> (Изпълнител) и <strong contenteditable="false">${f('Клиент','_________________________')}</strong> (Възложител). </div> </div> ${commonSections(` <p><strong>I. Изработка:</strong></p> <ul> <li>${f('Тип сайт','□ Уебсайт □ Онлайн магазин')} на базата на ${f('Платформа','WordPress / WooCommerce')}</li> <li>Уникален дизайн, адаптивен за всички устройства</li> <li>SEO оптимизация и регистрация в Google</li> </ul> <p style="margin-top:8px"><strong>II. Маркетинг (месечно):</strong></p> <ul> <li contenteditable="false">□ Управление на социални мрежи</li> <li contenteditable="false">□ Google Ads / Facebook Ads</li> <li contenteditable="false">□ Видео рийлсове и съдържание</li> </ul> <p style="margin-top:8px"><strong>III. Поддръжка (месечно):</strong></p> <ul> <li>7/24 мониторинг, актуализации, бекъпи, сигурност</li> </ul>`)} <div class="contract-section"> <div class="cs-num">Допълнителни условия</div> <div class="cs-title">МЕСЕЧНИ УСЛУГИ</div> <div class="cs-body"> <p>Еднократното плащане за изработката е <strong contenteditable="false">${f('Изработка','€ _____ (_____ евро)')}</strong>, без ДДС.</p> <p>Месечната такса за маркетинг и поддръжка е <strong contenteditable="false">${f('Месечно','€ _____ (_____ евро)')}</strong>, с ДДС, платима до 5-то число.</p> <p>Минимален срок за месечните услуги: <strong contenteditable="false">${f('Срок','6 (шест)')}</strong> месеца.</p> </div> </div>` + contractFooter() }; const AGENCY_CARDS=[ ['website','🌐','Договор за сайт','Изработка на уебсайт + опционална поддръжка'], ['shop','🛒','Договор за онлайн магазин','WooCommerce / E-commerce + поддръжка'], ['marketing','📱','Договор за маркетинг','Соц. мрежи, Google Ads, SEO, рийлсове'], ['maintenance','🔧','Договор за ИТ поддръжка','Месечна поддръжка, хостинг, мониторинг'], ['subcontractor','🤝','Договор за подизпълнител','Между изпълнител и външен партньор'], ['complex','⭐','Комплексен договор','Сайт/магазин + маркетинг + поддръжка'] ]; function contractCardsForSector(){ return SECTOR_CARDS[HUB_SECTOR] || AGENCY_CARDS; } function renderContractCards(){ const cards=contractCardsForSector(); selectedType=null; document.getElementById('generateBtn').disabled=true; document.getElementById('generateBtn').textContent='Избери вид договор →'; document.getElementById('contractGrid').innerHTML=cards.map(c=> '<div class="contract-type" onclick="selectType(\''+c[0]+'\')" id="ct-'+c[0]+'">'+ '<div class="ct-icon">'+c[1]+'</div><div class="ct-title">'+c[2]+'</div><div class="ct-desc">'+c[3]+'</div></div>' ).join(''); } function cleanContractHtml(html){ return html .replace(/УЕБТРИКСИА ЕООД/g, f('Изпълнител','_________________________')) .replace(/Хакан Осман/g, f('Представляващ','________________')) .replace(/office@webtrixia\.com · \+359 88 888 8888/g, f('Контакт','_________________________')) .replace(/webtrixia\.com/g, f('Сайт','________________')) .replace(/Webtrixia/g, f('Фирма','________________')); } function templateKey(){ return selectedType?'wt_contract_template_'+HUB_SECTOR+'_'+selectedType:''; } function saveTemplate(){ if(!selectedType)return; localStorage.setItem(templateKey(), document.getElementById('contractDoc').innerHTML); alert('Шаблонът е запазен.'); } function resetTemplate(){ if(!selectedType)return; if(!confirm('Нулирай запазения шаблон за този вид договор?'))return; localStorage.removeItem(templateKey()); generateContract(); } function generateContract() { if (!selectedType) return; const saved = localStorage.getItem(templateKey()); const builder = SECTOR_CONTRACTS[selectedType] || CONTRACTS[selectedType]; if(!builder){alert('Липсва шаблон за този договор.');return;} const html = cleanContractHtml(saved || builder()); document.getElementById('contractDoc').innerHTML = html; document.getElementById('selectorPage').style.display = 'none'; document.getElementById('contractDocPage').style.display = 'block'; buildContractForm(); editMode = false; window.scrollTo(0,0); } var API=(function(){ var base=window.location.origin+window.location.pathname.replace(/contracts\.html$/,'').replace(/\/$/,''); return base+'/api.php'; })(); async function moduleGuard(key,label){ try{ await syncLicenseFromMaster(); var r=await fetch(API+'?action=branding_settings',{credentials:'same-origin'}); var j=await r.json(); var d=j&&j.ok?j.data:null; if(d&&d.hub_type)HUB_SECTOR=d.hub_type; if(d && (d.license_state==='locked'||d.license_state==='invalid')){ document.body.innerHTML='<div style="max-width:480px;margin:80px auto;text-align:center;font-family:sans-serif;color:#4a4a6a"><div style="font-size:40px;margin-bottom:12px">🔒</div><h2>Хъбът е заключен</h2><p style="margin-top:8px;font-size:13px">'+(d.license_message||'Лицензът не е активен.')+'</p></div>'; return false; } if(d && d.modules_enabled && d.modules_enabled.hasOwnProperty(key) && !d.modules_enabled[key]){ document.body.innerHTML='<div style="max-width:480px;margin:80px auto;text-align:center;font-family:sans-serif;color:#4a4a6a"><div style="font-size:40px;margin-bottom:12px">🔒</div><h2>'+label+' е изключен</h2><p style="margin-top:8px;font-size:13px">Този модул е изключен за тази инсталация. Свържи се с администратора.</p><a href="index.html" style="display:inline-block;margin-top:16px;color:#6c63ff">← Обратно към Hub</a></div>'; return false; } }catch(e){} return true; } async function syncLicenseFromMaster(){ try{ var cRes=await fetch(API+'?action=license_client_config',{credentials:'same-origin'}); var cJson=await cRes.json(); var cfg=cJson&&cJson.ok?cJson.data:null; if(!cfg||!cfg.verify_url)return; var rr=await fetch(cfg.verify_url,{cache:'no-store',mode:'cors'}); var payload=await rr.json(); if(payload&&payload.state){ await fetch(API+'?action=license_sync',{method:'POST',headers:{'Content-Type':'application/json'},credentials:'same-origin',body:JSON.stringify({payload:payload})}); } }catch(e){} } moduleGuard('contracts','Договорите').then(function(ok){ if(ok) renderContractCards(); }); </script> </body> </html>
| ver. 1.4 |
Github
|
.
| PHP 8.2.31 | Generation time: 0 |
proxy
|
phpinfo
|
Settings