HAPPY SOLUTION · 실무도구

계약 전 협의사항 정리표

협의 중에는 기록만 합니다. 정리는 협의가 끝난 뒤 합니다.

Enter로 추가 · 여러 줄 붙여넣으면 줄마다 바로 추가
분류 선택 · 기타
기본 정보 · 필요한 것만 입력

고객 전달에 필요한 최소한의 정보만 입력해주세요. 상대방 정보는 고객용 파일에 포함하지 않습니다.

협의사항

계약서 또는 특약에 반영할 사항 · 선택

문구를 자동으로 만들거나 법률판단을 하지 않습니다.

고객 전달 전 확인

최종 보관은 작성본 파일 저장을 기준으로 합니다. 입력 내용은 서버로 전송되지 않습니다.

작성본 저장은 내부 메모를 포함한 중개사용 파일입니다. 고객에게는 ‘고객용 HTML 저장’ 또는 PDF를 전달해주세요.
저장한 HTML 파일은 기기에 저장한 뒤 브라우저로 열어주세요. 일부 메신저 미리보기에서는 기능이 동작하지 않을 수 있습니다.
PDF 저장 / 인쇄를 누른 뒤 인쇄 화면에서 ‘PDF로 저장’을 선택해주세요.

본 문서는 계약 전 협의내용을 정리하기 위한 업무보조자료입니다.
실제 계약내용은 최종 계약서 및 특약사항을 기준으로 확인해주세요.

';} // The customer export is built separately from publicData; no broker state or hidden private DOM is copied. $('saveBroker').addEventListener('click',()=>{download(brokerHtml(),'협의사항_중개사용_'+dateName()+'.html');dirty=false;status('중개사용 작성본을 저장했습니다. 고객에게는 고객용 파일을 전달해주세요.');});$('saveCustomer').addEventListener('click',()=>{download(customerHtml(),'협의사항_'+dateName()+'.html');status('고객용 파일을 저장했습니다. 중개사용 기록은 별도로 작성본 저장해주세요.');});$('viewCustomer').addEventListener('click',()=>setMode(true));$('backToEditor').addEventListener('click',()=>setMode(false));$('backToQuick').addEventListener('click',()=>{$('quickPanel').scrollIntoView({block:'start',behavior:'auto'});$('quickInput').focus({preventScroll:true});}); function print(){renderCustomer();window.print();hsToolAction('pdf');}['printFile','printCustomer'].forEach(id=>$(id).addEventListener('click',print));window.addEventListener('beforeprint',renderCustomer); $('contractMemo').value=state.memo;$('contractMemo').addEventListener('input',()=>{state.memo=$('contractMemo').value;changed();});$('memoIncluded').checked=state.memoIncluded;$('memoIncluded').addEventListener('change',()=>{state.memoIncluded=$('memoIncluded').checked;changed();}); function preflight(){const box=$('preflightChecks');box.replaceChildren();['협의중 항목 확인','최종 협의내용 확인','고객용 제외항목 확인','날짜 / 주소 확인','계약서 반영이 필요한 사항 확인'].forEach(text=>{const label=el('label',undefined,'check'),check=el('input');check.type='checkbox';label.append(check,el('span',text));box.append(label);});} let pendingDraft=null;try{$('autosave').checked=localStorage.getItem(PREF_KEY)==='1';const raw=localStorage.getItem(draftKey());if(raw){const parsed=JSON.parse(raw);pendingDraft=normalize(parsed);if(pendingDraft){pendingDraft.quickDraft=typeof parsed.quickDraft==='string'?parsed.quickDraft:'';$('draftNotice').hidden=false;}}}catch{$('storageHelp').textContent='이 브라우저에서는 임시 저장을 사용할 수 없습니다. 작성본 파일을 저장해주세요.';} $('autosave').addEventListener('change',()=>{try{localStorage.setItem(PREF_KEY,$('autosave').checked?'1':'0');if(!$('autosave').checked)localStorage.removeItem(draftKey());}catch{}if($('autosave').checked)changed();else $('storageHelp').textContent='임시 자동저장은 꺼져 있습니다. 최종 보관은 작성본 파일 저장을 기준으로 합니다.';}); $('restoreDraft').addEventListener('click',()=>{if(!pendingDraft)return;if(meaningful()&&!confirm('현재 기록을 임시 기록으로 바꿀까요?'))return;state=pendingDraft;$('quickInput').value=state.quickDraft||'';$('contractMemo').value=state.memo;$('memoIncluded').checked=state.memoIncluded;filter='전체';renderBasic();renderCards();$('draftNotice').hidden=true;dirty=true;status('임시 기록을 불러왔습니다.');});$('discardDraft').addEventListener('click',()=>{if(!confirm('이 브라우저의 임시 기록을 지울까요?'))return;try{localStorage.removeItem(draftKey());}catch{}pendingDraft=null;$('draftNotice').hidden=true;status('임시 기록을 지웠습니다. 현재 화면 내용은 그대로입니다.');}); $('newDocument').addEventListener('click',()=>{if(meaningful()&&!confirm('새 문서를 시작할까요? 현재 기록은 먼저 작성본으로 저장해주세요.'))return;try{localStorage.removeItem(draftKey());}catch{}state=fresh(uid());category='기타';filter='전체';dirty=false;pendingDraft=null;$('quickInput').value='';$('contractMemo').value='';$('memoIncluded').checked=false;$('draftNotice').hidden=true;renderCategories();renderBasic();renderCards();preflight();$('basicPanel').open=false;hsToolAction('new-work');status('새 문서를 시작했습니다.');$('quickPanel').scrollIntoView({block:'start'});$('quickInput').focus({preventScroll:true});}); window.addEventListener('beforeunload',event=>{if(dirty&&meaningful()){event.preventDefault();event.returnValue='';}});window.addEventListener('pagehide',()=>{downloadUrls.forEach(url=>URL.revokeObjectURL(url));downloadUrls=[];}); renderCategories();renderBasic();renderCards();preflight();if(embedded&&typeof embedded.quickDraft==='string')$('quickInput').value=embedded.quickDraft; })();