Partners

PT MEDAN VACATIONS TRAVEL — Daftar Partner :root{–ink:#122425;–muted:#6c7a7a;–line:#dce7e5;–brand:#0b5d5a;–brand-dark:#074441;–paper:#fff;–canvas:#f3f7f6;–danger:#b42318;–shadow:0 14px 40px rgba(10,43,41,.09)}*{box-sizing:border-box}body{margin:0;color:var(–ink);background:var(–canvas);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,”Segoe UI”,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.topbar{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:13px clamp(20px,5vw,72px);background:var(–paper);border-bottom:1px solid var(–line)}.brand{display:flex;align-items:center;gap:12px;color:var(–ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:#fff;background:linear-gradient(135deg,var(–brand),#13807a);font-weight:800;letter-spacing:-1px;box-shadow:0 7px 16px rgba(11,93,90,.23)}.brand strong{display:block;font-size:15px;letter-spacing:.08em}.brand small{display:block;margin-top:1px;color:var(–muted);font-size:11px;letter-spacing:.04em}.top-actions{display:flex;align-items:center;gap:15px}.nav-link{color:var(–brand);font-size:13px;font-weight:750;text-decoration:none}.nav-link:hover{text-decoration:underline}.status{display:flex;align-items:center;gap:8px;color:var(–muted);font-size:13px}.status i{width:8px;height:8px;border-radius:50%;background:#20a879;box-shadow:0 0 0 4px #e2f5ed}main{max-width:1440px;margin:0 auto;padding:36px clamp(20px,5vw,72px) 60px}.intro{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:26px}.eyebrow{margin:0 0 7px;color:var(–brand);font-size:12px;font-weight:800;letter-spacing:.13em}h1{margin:0;font-size:clamp(27px,4vw,38px);letter-spacing:-.045em;line-height:1.12}.intro p{max-width:600px;margin:9px 0 0;color:var(–muted)}.today{padding:9px 13px;white-space:nowrap;border:1px solid var(–line);border-radius:10px;background:#fff;color:var(–muted);font-size:13px}.dashboard{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:26px}.stat{position:relative;min-height:122px;overflow:hidden;padding:20px;border:1px solid var(–line);border-radius:16px;background:#fff;box-shadow:0 3px 12px rgba(13,58,55,.025)}.stat:after{position:absolute;right:-26px;bottom:-35px;width:84px;height:84px;border-radius:50%;background:#e6f3f1;content:””}.stat:nth-child(2):after{background:#fff3df}.stat:nth-child(3):after{background:#eaf0ff}.stat-label,.stat-value,.stat-note{position:relative;z-index:1}.stat-label{color:var(–muted);font-size:13px;font-weight:650}.stat-value{margin-top:7px;font-size:35px;font-weight:780;letter-spacing:-.06em}.stat-note{color:var(–brand);font-size:12px;font-weight:700}.layout{display:grid;grid-template-columns:minmax(315px,.83fr) minmax(0,1.75fr);align-items:start;gap:24px}.card{border:1px solid var(–line);border-radius:17px;background:var(–paper);box-shadow:var(–shadow)}.form-card{position:sticky;top:18px;padding:25px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:21px}.card-head h2{margin:0;font-size:18px;letter-spacing:-.025em}.card-head span{padding:4px 9px;border-radius:99px;background:#e9f5f3;color:var(–brand);font-size:11px;font-weight:800}.form-grid{display:grid;gap:14px}.field{display:grid;gap:6px}.field label{color:#485756;font-size:12px;font-weight:750}.field input,.field select,.field textarea,.filter{width:100%;padding:10px 12px;outline:none;border:1px solid #cbdad7;border-radius:9px;color:var(–ink);background:#fff;transition:border .15s,box-shadow .15s}.field textarea{min-height:76px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.filter:focus{border-color:var(–brand);box-shadow:0 0 0 3px rgba(11,93,90,.12)}.required{color:var(–danger)}.manual-type[hidden]{display:none}.form-actions{display:flex;gap:10px;padding-top:4px}.btn{border:0;border-radius:9px;padding:10px 14px;font-weight:750;transition:transform .15s,background .15s,box-shadow .15s}.btn:hover{transform:translateY(-1px)}.btn-primary{flex:1;color:#fff;background:var(–brand);box-shadow:0 6px 14px rgba(11,93,90,.2)}.btn-primary:hover{background:var(–brand-dark)}.btn-secondary{color:#4d5a59;background:#edf3f2}.table-card{overflow:hidden}.table-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:21px 23px 16px;border-bottom:1px solid var(–line)}.table-top h2{margin:0;font-size:18px;letter-spacing:-.025em}.table-top small{color:var(–muted)}.search{display:flex;align-items:center;gap:7px;width:230px;padding:8px 10px;border:1px solid #cbdad7;border-radius:9px;color:var(–muted)}.search input{width:100%;padding:0;outline:none;border:0;background:transparent;font-size:13px}.filter-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 23px;border-bottom:1px solid var(–line);background:#fbfdfd}.filter-meta{color:var(–muted);font-size:12px}.filter{width:165px;padding:8px 10px;font-size:13px}.table-wrap{overflow-x:auto}.partner-table{width:100%;min-width:820px;border-collapse:collapse;text-align:left}.partner-table th{padding:12px 16px;color:#728080;background:#fff;font-size:11px;font-weight:800;letter-spacing:.055em;text-transform:uppercase;white-space:nowrap}.partner-table td{padding:15px 16px;border-top:1px solid #edf1f0;vertical-align:middle;font-size:13px}.partner-table tbody tr:hover{background:#fbfdfd}.num{color:var(–brand);font-weight:800}.partner-name{font-weight:750}.sub{display:block;max-width:170px;overflow:hidden;color:var(–muted);font-size:11.5px;white-space:nowrap;text-overflow:ellipsis}.tag{display:inline-flex;padding:4px 8px;border-radius:99px;color:#536260;background:#f0f5f4;font-size:11px;font-weight:750;white-space:nowrap}.tag.hotel{color:#0b5d5a;background:#e4f4f1}.tag.restaurant{color:#9b610e;background:#fff3df}.tag.other{color:#485b85;background:#eaf0ff}.actions{display:flex;gap:2px}.icon-btn{display:grid;width:29px;height:29px;place-items:center;border:0;border-radius:7px;color:#57706e;background:transparent}.icon-btn:hover{color:var(–brand);background:#e8f3f1}.icon-btn.delete:hover{color:var(–danger);background:#fff0ef}.empty{padding:50px 20px;color:var(–muted);text-align:center}.empty strong{display:block;margin-bottom:3px;color:#485756}.toast{position:fixed;z-index:9;right:22px;bottom:22px;display:flex;align-items:center;gap:9px;max-width:calc(100vw – 44px);padding:12px 15px;border:1px solid #bce7d8;border-radius:11px;color:#135e48;background:#effbf5;box-shadow:0 15px 30px rgba(18,47,40,.16);font-size:13px;font-weight:650;transform:translateY(90px);opacity:0;transition:.25s ease}.toast.show{transform:translateY(0);opacity:1}.toast i{display:grid;width:18px;height:18px;place-items:center;border-radius:50%;color:#fff;background:#1c9b72;font-size:12px;font-style:normal}@media(max-width:1050px){.layout{grid-template-columns:1fr}.form-card{position:static}.form-grid{grid-template-columns:repeat(2,1fr)}.form-grid .field:first-child,.form-grid .field:last-child{grid-column:1/-1}}@media(max-width:680px){.topbar{min-height:64px;padding:11px 18px}.status{display:none}.top-actions{gap:10px}main{padding:27px 16px 40px}.intro{align-items:start;flex-direction:column;gap:12px}.today{padding:7px 10px}.dashboard{gap:10px}.stat{min-height:105px;padding:15px;border-radius:13px}.stat-value{font-size:28px}.stat-note{display:none}.layout{gap:16px}.form-card{padding:19px}.form-grid{grid-template-columns:1fr}.form-grid .field:first-child,.form-grid .field:last-child{grid-column:auto}.table-top{align-items:start;flex-direction:column;padding:18px 18px 13px}.search{width:100%}.filter-row{padding:12px 18px}.partner-table th,.partner-table td{padding-left:13px;padding-right:13px}.nav-link{font-size:12px}} .brand-logo{width:48px;height:48px;object-fit:contain;border-radius:50%;background:#fff;flex:none}
PT MEDAN VACATIONS TRAVELPARTNER MANAGEMENT
← Daftar TamuBookingVoucher →Invoice
Data tersimpan di perangkat ini
DASHBOARD

Daftar Partner

Kelola data hotel, restaurant, dan partner lain yang mendukung perjalanan PT MEDAN VACATIONS TRAVEL.

Total Partner
0
Partner aktif tercatat
Hotel
0
Akomodasi partner
Restaurant
0
Kuliner partner

Data Partner

Data hotel, restaurant, dan partner lainnya.
Menampilkan 0 dataSemua jenis partnerHotelRestaurantLainnya
No.Nama PartnerJenisPIC & KontakAlamatAksi
✓Partner tersimpan
(()=>{ const KEY=’enos-tour-medan-partner-list-v1′; const sample=[ {id:’p1′,no:1,name:’Grand Mercure Medan’,category:’Hotel’,customType:”,pic:’Maya Sari’,phone:’+62 61 455 6999′,email:’sales@grandmercuremedan.com’,address:’Jl. Perintis Kemerdekaan No. 1, Medan’}, {id:’p2′,no:2,name:’Restoran Tip Top’,category:’Restaurant’,customType:”,pic:’Andi Wijaya’,phone:’+62 61 456 0282′,email:’info@tiptopmedan.com’,address:’Jl. Jend. Ahmad Yani No. 92, Medan’}, {id:’p3′,no:3,name:’Samosir Boat Service’,category:’Lainnya’,customType:’Transportasi’,pic:’Rudi Situmorang’,phone:’+62 812 6677 8899′,email:”,address:’Pelabuhan Ajibata, Toba’} ]; const importedPartners = [{“sourceNo”:1,”name”:”ARYADUTA HOTEL”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”(061) 4572999″,”email”:”reservation.medan@aryaduta.com”,”address”:”Medan”},{“sourceNo”:2,”name”:”ATSARI HOTEL PARAPAT”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”(0625) 41219″,”email”:””,”address”:”PARAPAT”},{“sourceNo”:3,”name”:”DANAU TOBA COTTAGE PARAPAT”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”0625 41172″,”email”:”marketinghdti_parapat@yahoo.com”,”address”:”PARAPAT”},{“sourceNo”:4,”name”:”ECOLODGE BUKIT LAWANG”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:””,”email”:””,”address”:”BUKIT LAWANG”},{“sourceNo”:5,”name”:”FAVE HOTEL MEDAN”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”061 8881 5929″,”email”:”medaninfo@favehotels.com”,”address”:”MEDAN”},{“sourceNo”:6,”name”:”Four Point Hotel”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”061 8050 1111″,”email”:””,”address”:”Medan”},{“sourceNo”:7,”name”:”Graha Helvetia Golf”,”category”:”Lainnya”,”customType”:”Golf”,”pic”:””,”phone”:””,”email”:””,”address”:”Medan”},{“sourceNo”:8,”name”:”GRAND ANTARES”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:””,”email”:””,”address”:”MEDAN”},{“sourceNo”:9,”name”:”Grand Central Premier”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:””,”email”:””,”address”:”Medan”},{“sourceNo”:10,”name”:”GRAND IMPRESSION”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:””,”email”:””,”address”:”MEDAN”},{“sourceNo”:11,”name”:”Grand Mercure Hotel”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:””,”email”:””,”address”:””},{“sourceNo”:12,”name”:”GRAND MUTIARA HOTEL BERASTAGI”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”+62 628 91311″,”email”:”info@grandmutiarahotel.com”,”address”:”Jl. Desa Peceren No.168, Sempajaya, Kec. Berastagi, Kabupaten Karo, Sumatera Utara 22156″},{“sourceNo”:13,”name”:”Green Garden Hotel Berastagi”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”061 6632 894″,”email”:””,”address”:”Jl. Peceran No.30 Berastagi, – Medan – Indonesia”},{“sourceNo”:14,”name”:”Hotel”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”Telepon”,”email”:”Email”,”address”:”Alamat”},{“sourceNo”:15,”name”:”Karibia Boutique Hotel”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”061 455 2933″,”email”:”reservation.medan@karibiaboutiquehotel.com”,”address”:”Medan”},{“sourceNo”:16,”name”:”Khas Hotel Parapat”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:””,”email”:””,”address”:”Parapat”},{“sourceNo”:17,”name”:”Labersa Hotel Samosir”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”‘+62811 6063 555″,”email”:”info@labersasamosir.com”,”address”:”Simarmata, Simanindo, Samosir Regency, North Sumatra 22395″},{“sourceNo”:18,”name”:”Mikie Holiday Resort”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”(0628) 91650″,”email”:”info@mikieholiday.com”,”address”:”Berastagi”},{“sourceNo”:19,”name”:”NIAGARA HOTEL PARAPAT”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”0614158887″,”email”:”mail@niagaralaketoba.com”,”address”:”PARAPAT”},{“sourceNo”:20,”name”:”Ompu Herti”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:””,”email”:””,”address”:”Balige”},{“sourceNo”:21,”name”:”Patra Comfort Parapat”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:””,”email”:””,”address”:”Jl. Pertamina Siuhan Danau Toba, Sibaganding, Girsang Sipangan Bolon, Simalungun – 21174″},{“sourceNo”:22,”name”:”Royal Sumatra Golf”,”category”:”Lainnya”,”customType”:”Golf”,”pic”:””,”phone”:””,”email”:””,”address”:”Medan”},{“sourceNo”:23,”name”:”Rudang Hotel Berastagi”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”0813-6199-9000″,”email”:”info@rudanghotelberastagi.com.”,”address”:”Berastagi”},{“sourceNo”:24,”name”:”SAMOSIR COTTAGE”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”+62 625 451170″,”email”:”info@samosircottages.com”,”address”:”SAMOSIR”},{“sourceNo”:25,”name”:”Samosir Villa Resort”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”0625 451350″,”email”:”info@samosirvillaresort.com”,”address”:”Jl. Lkr. Tuktuk No.Kelurahan, Tuktuk Siadong, Simanindo, Kabupaten Samosir, Sumatera Utara 22395″},{“sourceNo”:26,”name”:”SANTIKA PREMIERE DYANDRA”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:””,”email”:””,”address”:”MEDAN”},{“sourceNo”:27,”name”:”SIBAYAK HOTEL”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:””,”email”:””,”address”:”BERASTAGI”},{“sourceNo”:28,”name”:”Swiss Bell Inn Medan”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”+62 61 8881 5531″,”email”:””,”address”:”Jl. Surabaya No.88, Ps. Baru, Kec. Medan Kota, Kota Medan, Sumatera Utara 20212″},{“sourceNo”:29,”name”:”TAMAN SIMALEM RESORT”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”(061) 4577616″,”email”:”info@tamansimalem.com”,”address”:”TAMAN SIMALEM”},{“sourceNo”:30,”name”:”THE HILL HOTEL & RESORT SIBOLANGIT”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”061 4556108″,”email”:””,”address”:”SIBOLANGIT”},{“sourceNo”:31,”name”:”Villa Bali Dolat Berastagi”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:”+62 821-8087-6414″,”email”:”villabaliberastagi@gmail.com”,”address”:”Berastagi”},{“sourceNo”:32,”name”:”Sinabung Hill Hotel”,”category”:”Hotel”,”customType”:””,”pic”:””,”phone”:””,”email”:””,”address”:”Berastagi”}]; const $=id=>document.getElementById(id),form=$(‘partnerForm’),rows=$(‘partnerRows’),search=$(‘searchInput’),filter=$(‘categoryFilter’);let partners=load(); function load(){ let saved=null;try{saved=JSON.parse(localStorage.getItem(KEY))}catch{} const list=Array.isArray(saved)?saved:sample.map(p=>({…p})); const keyOf=value=>String(value||”).normalize(‘NFKC’).trim().replace(/\s+/g,’ ‘).toLocaleLowerCase(‘id’); let nextNo=Math.max(0,…list.map(p=>Number(p.no)||0))+1,changed=!Array.isArray(saved); importedPartners.forEach(source=>{ const key=keyOf(source.name);if(!key)return; const existing=list.find(p=>keyOf(p.name)===key); if(existing){ [‘category’,’customType’,’pic’,’phone’,’email’,’address’].forEach(field=>{ if(!String(existing[field]||”).trim()&&String(source[field]||”).trim()){existing[field]=source[field];changed=true} }); }else{ list.push({id:’xlsx-partner-‘+source.sourceNo,no:nextNo++,name:source.name,category:source.category,customType:source.customType,pic:source.pic,phone:source.phone,email:source.email,address:source.address}); changed=true; } }); if(changed){try{localStorage.setItem(KEY,JSON.stringify(list))}catch{}} return list; } function save(){localStorage.setItem(KEY,JSON.stringify(partners))} function esc(v){return String(v??”).replace(/[&”‘]/g,c=>({‘&’:’&’,”:’>’,'”‘:’"’,”‘”:’'’}[c]))} function toast(msg){$(‘toastText’).textContent=msg;$(‘toast’).classList.add(‘show’);clearTimeout(toast.timer);toast.timer=setTimeout(()=>$(‘toast’).classList.remove(‘show’),2900)} function actualType(p){return p.category===’Lainnya’?(p.customType||’Lainnya’):p.category} function syncType(){const isOther=$(‘category’).value===’Lainnya’;$(‘manualTypeWrap’).hidden=!isOther;$(‘manualType’).required=isOther;if(!isOther)$(‘manualType’).value=”} function selected(){const q=search.value.trim().toLowerCase(),c=filter.value;return partners.filter(p=>(!c||p.category===c)&&(!q||[p.no,p.name,p.category,p.customType,p.pic,p.phone,p.email,p.address].join(‘ ‘).toLowerCase().includes(q)))} function render(){const show=selected();$(‘totalPartners’).textContent=partners.length;$(‘totalHotels’).textContent=partners.filter(p=>p.category===’Hotel’).length;$(‘totalRestaurants’).textContent=partners.filter(p=>p.category===’Restaurant’).length;$(‘filterMeta’).textContent=`Menampilkan ${show.length} dari ${partners.length} partner`;rows.innerHTML=show.map(p=>`${String(p.no).padStart(3,’0′)}${esc(p.name)}${esc(p.email||’—’)}${esc(actualType(p))}${esc(p.pic||’—’)}${esc(p.phone||’Tidak ada nomor’)}${esc(p.address||’—’)}
`).join(”);$(’emptyState’).hidden=show.length!==0;document.querySelector(‘.table-wrap’).hidden=show.length===0} function reset(){form.reset();$(‘editingId’).value=”;$(‘category’).value=’Hotel’;syncType();$(‘formTitle’).textContent=’Tambah Partner’;$(‘formBadge’).textContent=’BARU’;$(‘submitBtn’).textContent=’Simpan Partner’;$(‘cancelBtn’).hidden=true} function edit(id){const p=partners.find(x=>x.id===id);if(!p)return;$(‘editingId’).value=p.id;$(‘partnerName’).value=p.name;$(‘category’).value=p.category;$(‘manualType’).value=p.customType||”;syncType();$(‘pic’).value=p.pic||”;$(‘phone’).value=p.phone||”;$(’email’).value=p.email||”;$(‘address’).value=p.address||”;$(‘formTitle’).textContent=’Edit Partner’;$(‘formBadge’).textContent=`NO. ${String(p.no).padStart(3,’0′)}`;$(‘submitBtn’).textContent=’Simpan Perubahan’;$(‘cancelBtn’).hidden=false;document.querySelector(‘.form-card’).scrollIntoView({behavior:’smooth’,block:’start’});$(‘partnerName’).focus()} form.addEventListener(‘submit’,e=>{e.preventDefault();if(!form.reportValidity())return;const data={name:$(‘partnerName’).value.trim(),category:$(‘category’).value,customType:$(‘manualType’).value.trim(),pic:$(‘pic’).value.trim(),phone:$(‘phone’).value.trim(),email:$(’email’).value.trim(),address:$(‘address’).value.trim()},id=$(‘editingId’).value;if(id){Object.assign(partners.find(p=>p.id===id),data);toast(‘Data partner berhasil diperbarui’)}else{partners.push({id:crypto.randomUUID?crypto.randomUUID():String(Date.now()),no:Math.max(0,…partners.map(p=>Number(p.no)||0))+1,…data});toast(‘Partner baru berhasil ditambahkan’)}save();render();reset()}); rows.addEventListener(‘click’,e=>{const b=e.target.closest(‘button[data-action]’);if(!b)return;const p=partners.find(x=>x.id===b.dataset.id);if(!p)return;if(b.dataset.action===’edit’)edit(p.id);else if(confirm(`Hapus data partner ${p.name}?`)){partners=partners.filter(x=>x.id!==p.id);save();render();if($(‘editingId’).value===p.id)reset();toast(‘Data partner telah dihapus’)}}); $(‘category’).addEventListener(‘change’,syncType);$(‘cancelBtn’).addEventListener(‘click’,reset);search.addEventListener(‘input’,render);filter.addEventListener(‘change’,render);$(‘today’).textContent=new Intl.DateTimeFormat(‘id-ID’,{weekday:’long’,day:’numeric’,month:’long’,year:’numeric’}).format(new Date());syncType();render(); })();

Travel Agents

Coordinate trusted travel agents, hotels, restaurants, and boat operators in one organized partner network.

Local Stays

Keep partner details and service information organized for smoother trip planning.

Guest Services

Manage bookings, vouchers, and invoices with your travel partners in one place.

Booking Support

Build clear working relationships with local providers supporting each guest’s journey.
Bookings, vouchers, and invoices stay organized, making every partnership smoother from arrival to checkout.
John Doe