(function(bannerClassName) { const sendEvent = (token, action) => { const value = 'Branding ' + token + ' – ' + action; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } else { console.log('GA send: ' + value); } }; const oneBeforePageChange = (callback) => { if (typeof Air === 'object') { const ajaxify = Air.import('module.ajaxify'); ajaxify.one('Before page changed', () => { try { if (callback) { callback(); } } catch (error) { console.log(error); } }); } }; const onLinkClick = (e) => { const link = e.target; const href = link.getAttribute('href'); sendEvent(href, 'Click'); link.removeEventListener('click', onLinkClick); }; const branding = document.querySelector(bannerClassName); if (!branding) { return; } const links = branding.querySelectorAll('a'); for (let i = 0; i < links.length; i += 1) { const isVisible = getComputedStyle(links[i]).display !== 'none'; const href = links[i].getAttribute('href'); if (isVisible) { sendEvent(href, 'Show'); } links[i].addEventListener('click', onLinkClick); } oneBeforePageChange(() => { for (let i = 0; i < links.length; i += 1) { links[i].removeEventListener('click', onLinkClick); } }); })('.entry-native-branding');

Заказчик требует развернутый отчет после мероприятия, что делать?

В данном случае проблемы может быть две:

  • Договор составлен, все подписано и обговорено: перечень работ, часы, даты, условия. Но заказчик просит отразить в отчете другие данные. Возможно, у компании появилось финансирование на другие даты или им необходимо закрыть отчет, но это тонкости, в которые я не вмешиваюсь.
  • Мероприятие прошло, все хорошо, но потом заказчик запросил отчет, о котором ранее не договаривались, следовательно, исполнитель не зафиксировал часы работ, тайминг, условия оказания услуг и другие данные.

Есть ли однозначное решение?

Как не странно, но решений тоже два:

1. Можно пойти на уступки и проявить лояльность к заказчику, в этом нет ничего критичного. Если нужно указать другие данные, я укажу и согласую. Однако, если вы переживаете, то можно составить дополнительное соглашение к договору.

Например, если мероприятие прошло раньше или позже указанных в договоре дат, то дополнительное соглашение с указанием новых дат снимает с вас все претензии с юридической стороны.

2. В своих договорах я прописываю все услуги и данные, например: какое мероприятие, в какие даты, какой результат планируется. Следовательно, когда мы согласовываем договор, то содержание и программу услуг тоже. Вдобавок, до заключения договора, я всегда оговариваю форму отчета и включаю это в договор. Это дает возможность, заблаговременно понимать какую именно информацию нужно подготовить к завершению работы.

Как на практике?

Однажды я составляла рамочный договор на год, в котором был указан фиксированный бюджет, план работы и перечень различных услуг, которыми заказчик может воспользоваться или не воспользоваться. Мы его подписали и начали вести работы, в один момент заказчик попросил провести тренинг, которого нет в перечне услуг. Тренинг, конечно, провели, но как указать его в отчете не понятно. В таком случае бухгалтерия не примет документы и не даст финансирование.

Как я вышла из ситуации:

В договоре указан перечень тренингов с фиксированной ценой и там же прописаны часовые ставки (коуч-часы). Внеплановый тренинг провели на 150 тысяч и, чтобы у бухгалтерии не было вопросов, я записала его, как коуч-часы.

Тут главное то, что при этом обе стороны остались довольны: я получила деньги, а заказчик тренинг, который он запрашивал.

Что можно попробовать еще?

Как один из вариантов, расскажите заказчику о программе, в которую можно заносить все детали исполнения услуг и фиксировать отчет. Так как данную информацию могут запросить в любой момент, сделать это будет в разы легче.

Отчет легко выгружается, и вы можете сверять и следить за данными в любой период времени. Однажды я сотрудничала с компанией, которая использовала для этого программу Toggl.

(function(bannerClassName) { const sendEvent = (token, action) => { const value = 'Branding ' + token + ' – ' + action; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } else { console.log('GA send: ' + value); } }; const oneBeforePageChange = (callback) => { if (typeof Air === 'object') { const ajaxify = Air.import('module.ajaxify'); ajaxify.one('Before page changed', () => { try { if (callback) { callback(); } } catch (error) { console.log(error); } }); } }; const onLinkClick = (e) => { const link = e.target; const href = link.getAttribute('href'); sendEvent(href, 'Click'); link.removeEventListener('click', onLinkClick); }; const branding = document.querySelector(bannerClassName); if (!branding) { return; } const links = branding.querySelectorAll('a'); for (let i = 0; i < links.length; i += 1) { const isVisible = getComputedStyle(links[i]).display !== 'none'; const href = links[i].getAttribute('href'); if (isVisible) { sendEvent(href, 'Show'); } links[i].addEventListener('click', onLinkClick); } oneBeforePageChange(() => { for (let i = 0; i < links.length; i += 1) { links[i].removeEventListener('click', onLinkClick); } }); })('.entry-article-footer');
0
2 комментария
Khabib96

норм расценки, чо

Ответить
Развернуть ветку
Arnil Feran

Действительно, что же делать-то. Может быть развёрнутый отчет? 

Ответить
Развернуть ветку
-1 комментариев
Раскрывать всегда
null