#!/usr/bin/env python3
"""TSLaw: artikel keduabelas — 8 Konsultan Hukum Perusahaan dan Legal Due Diligence di Surabaya.
Aturan: 1.000-1.300 kata tanpa padding, entri 1 Tito Suprianto Law Firm + tautan beranda,
lembaga/peran nyata (notaris/PPAT, konsultan pajak berizin, kantor jasa akuntan, Ditjen AHU
Kemenkum, KPPU, OJK, Pengadilan Niaga PN Surabaya), tombol WA di akhir, FAQ 5 + schema FAQPage,
kategori 14 + 4 tag, meta Yoast REST. Gaya bahasa lewat pass humanizer: tanpa em dash, tanpa jargon
AI, tanpa rule-of-three paksa. Salinan isi disimpan ke artikel12.html sebelum dikirim (REST JSON saja)."""
import json, os, re

OUT = "/home/mantapman/.hermes/profiles/atun/workspace/tslaw_listikel"
os.makedirs(OUT, exist_ok=True)
WA = "6281909222026"

CTA = f"""<p style="text-align:center;margin:34px 0 8px">
<a href="https://wa.me/{WA}?text=Halo%20TS%20Law%2C%20saya%20ingin%20konsultasi%20soal%20legal%20due%20diligence%20perusahaan" target="_blank" rel="noopener"
style="display:inline-block;background-color:#122b63;color:#ffffff;font-weight:600;font-size:17px;
padding:15px 30px;border-radius:8px;text-decoration:none">Konsultasi Legal Due Diligence via WhatsApp</a>
</p>
<p style="text-align:center;font-size:14px;color:#5b5b6b;margin:0 0 26px">
Tito Suprianto Law Firm, kantor advokat di Surabaya. Pemeriksaan awal dokumen perusahaan Anda tidak dipungut biaya.</p>"""

FAQ = [
    ('Berapa biaya konsultan hukum perusahaan surabaya untuk legal due diligence?',
     'Nilainya bergantung pada luas pemeriksaan. Due diligence sederhana atas satu PT biasanya cukup dengan '
     'pemeriksaan akta, izin, dan kontrak utama, sedangkan akuisisi dengan banyak entitas anak menuntut '
     'pemeriksaan jauh lebih panjang. Yang sering tidak dihitung adalah biaya di luar honorarium, seperti '
     'legalisasi dokumen, pencarian data ke instansi, dan biaya notaris. Mintalah rincian tertulis sejak awal '
     'supaya anggarannya tidak melebar di tengah jalan.'),
    ('Berapa lama proses legal due diligence sampai selesai?',
     'Untuk perusahaan kecil dengan dokumen rapi, pemeriksaan biasanya berjalan beberapa pekan. Kalau dokumennya '
     'tersebar di banyak tempat, akta lama tidak ditemukan, atau ada sengketa berjalan, waktunya bisa dua sampai '
     'tiga kali lebih lama. Kecepatan lebih ditentukan oleh kelengkapan berkas yang diserahkan daripada jumlah '
     'konsultan yang bekerja.'),
    ('Apa bedanya legal due diligence dengan audit keuangan?',
     'Audit keuangan menilai kewajaran laporan keuangan, sedangkan legal due diligence menilai keabsahan '
     'kedudukan hukum perusahaan, kontrak, izin, dan risiko sengketa. Dua pekerjaan ini sering berjalan '
     'bersamaan dan saling menguatkan, karena temuan pajak di audit keuangan biasanya berujung pada pertanyaan '
     'hukum soal kewajiban perusahaan.'),
    ('Apakah due diligence wajib sebelum membeli perusahaan?',
     'Tidak ada kewajiban hukum untuk melakukannya, tetapi tanpa due diligence pembeli mengambil risiko '
     'sepenuhnya atas utang, sengketa, dan kewajiban pajak yang tidak terlihat. Dalam praktik, hasil due '
     'diligence dipakai untuk menawar harga, menyusun pernyataan jaminan penjual, dan menentukan bagian '
     'kewajiban mana yang harus dibereskan sebelum akta ditandatangani.'),
    ('Dokumen apa saja yang perlu disiapkan pemilik usaha?',
     'Siapkan akta pendirian beserta perubahannya, surat keputusan pengesahan badan hukum, nomor induk berusaha, '
     'izin sektoral, laporan keuangan beberapa tahun terakhir, daftar utang dan piutang, perjanjian dengan '
     'pihak ketiga, data karyawan, serta daftar aset termasuk tanah dan bangunan. Dokumen yang tipikal paling '
     'lama dicari adalah perubahan anggaran dasar dan perjanjian kredit lama.'),
]

ENTRI = [
    ('Tito Suprianto Law Firm',
     'Kantor advokat di Surabaya yang mendampingi perusahaan sejak pemeriksaan dokumen sampai penutupan '
     'transaksi. Pekerjaan due diligence di sini dimulai dari memetakan struktur badan hukum, membaca ulang '
     'perjanjian material, dan menyusun daftar risiko yang bisa dipakai pemilik usaha untuk mengambil '
     'keputusan. Hasilnya diserahkan sebagai laporan tertulis, bukan kesan lisan, supaya ada dasar kalau '
     'kemudian muncul perselisihan. Profil dan bidang layanannya ada di '
     '<a href="https://www.tslaw.id/">beranda TS Law</a>.'),
    ('Kantor Notaris dan PPAT',
     'Notaris memegang akta pendirian, perubahan anggaran dasar, dan akta-akta korporasi lain, sehingga '
     'pemeriksaan keabsahan dokumen hampir selalu melewatinya. PPAT menangani akta peralihan hak atas tanah '
     'dan bangunan yang sering menjadi aset terbesar dalam sebuah transaksi. Sebelum bertransaksi, pastikan '
     'akta terakhir dan akta perubahannya masih sesuai dengan susunan pengurus yang berwenang menandatangani.'),
    ('Konsultan pajak berizin',
     'Sisi pajak biasanya muncul sebagai temuan paling mahal dalam due diligence. Konsultan pajak berizin '
     'memeriksa kecocokan pelaporan, tunggakan, dan kewajiban yang belum disetor, lalu menaksir potensi '
     'kurang bayar. Pekerjaan ini beririsan dengan bagian hukum, karena perjanjian jual beli saham umumnya '
     'memuat pernyataan penjual soal kebersihan kewajiban pajak. Untuk memahami kewajiban bisnis yang lebih '
     'luas, lihat <a href="https://www.tslaw.id/7-aspek-hukum-bisnis-yang-wajib-dipahami/">tujuh aspek hukum '
     'bisnis</a>.'),
    ('Kantor Jasa Akuntan dan auditor independen',
     'Auditor memeriksa kewajaran laporan keuangan, sementara due diligence menilai kedudukan hukum '
     'perusahaan. Keduanya berguna bersamaan karena penilaian harga sering bersandar pada angka laba yang '
     'harus bisa dipertanggungjawabkan. Kalau laporan keuangan belum diaudit, itu sendiri sudah menjadi '
     'catatan risiko yang perlu disampaikan kepada calon pembeli atau investor.'),
    ('Direktorat Jenderal Administrasi Hukum Umum',
     'Direktorat Jenderal Administrasi Hukum Umum Kementerian Hukum mencatat dan memverifikasi data badan '
     'hukum, termasuk PT, CV, yayasan, dan perkumpulan. Pemeriksaan di sini memastikan entitas yang diperiksa '
     'benar terdaftar, masih aktif, dan susunan pengurusnya selaras dengan akta terakhir. Selisih antara data '
     'instansi dan dokumen yang dipegang perusahaan adalah temuan yang paling sering ditemukan.'),
    ('Komisi Pengawas Persaingan Usaha',
     'Kalau transaksinya berupa penggabungan atau pengambilalihan, KPPU berperan pada penilaian persaingan '
     'usaha. Perusahaan dengan aset atau nilai transaksi di atas ambang tertentu wajib menyampaikan '
     'notifikasi setelah penggabungan berlaku. Bagian ini biasanya masuk ke daftar risiko karena keterlambatan '
     'notifikasi membawa konsekuensi tersendiri bagi perusahaan hasil penggabungan.'),
    ('Otoritas Jasa Keuangan',
     'Untuk perusahaan di sektor jasa keuangan, OJK memegang perizinan dan pengawasan tata kelola. Due '
     'diligence sektor ini memeriksa pemenuhan ketentuan permodalan, manajemen risiko, dan syarat pengurus. '
     'Perubahan pemegang saham di perusahaan berizin biasanya tidak cukup dengan akta notaris, karena '
     'persetujuannya berada di ranah otoritas.'),
    ('Pengadilan Niaga pada Pengadilan Negeri Surabaya',
     'Pengadilan Niaga menangani perkara kepailitan dan penundaan kewajiban pembayaran utang. Dalam due '
     'diligence, keberadaan perkara di pengadilan ini menjadi sinyal penting tentang kondisi keuangan target. '
     'Pemeriksaan perkara yang sedang berjalan biasanya dilakukan lewat penelusuran berkas dan informasi '
     'kepaniteraan sebelum transaksi dilanjutkan.'),
]

ISI = """<p>Perusahaan yang sehat secara operasional belum tentu bersih secara hukum. Ada kalanya izin sudah
kedaluwarsa, akta perubahan belum dilaporkan, atau kontrak kerja sama masih memuat klausul yang memberatkan
satu pihak. Semua itu tidak muncul di laporan penjualan, tetapi bisa menggagalkan transaksi atau berujung
pada sengketa setelah uang berpindah tangan.</p>
<p>Halaman ini memuat delapan pilihan konsultan hukum perusahaan Surabaya dan pendamping legal due diligence,
mulai dari kantor advokat sampai lembaga yang datanya dipakai saat pemeriksaan. Di bawahnya ada daftar hal
yang biasa diperiksa, urutan langkahnya, dan lima pertanyaan yang paling sering masuk.</p>

<h2>Apa yang diperiksa dalam legal due diligence</h2>
<p>Legal due diligence bukan sekadar membaca akta. Pemeriksaan menyeluruh mencakup legalitas badan hukum,
izin usaha sektoral, perjanjian material dengan mitra dan bank, perkara yang sedang berjalan, hak atas tanah
dan bangunan, perlindungan kekayaan intelektual, hubungan kerja dengan karyawan, serta kewajiban pajak.
Tujuannya bukan mencari-cari kesalahan, melainkan memetakan risiko supaya pihak yang bertransaksi tahu
kewajiban mana yang harus dibereskan lebih dulu dan bagian mana yang layak dinegosiasikan.</p>

<h2>Delapan pilihan konsultan hukum perusahaan dan pendamping legal due diligence di Surabaya</h2>
<h3>1. {E0}</h3><p>{E0T}</p>
<h3>2. {E1}</h3><p>{E1T}</p>
<h3>3. {E2}</h3><p>{E2T}</p>
<h3>4. {E3}</h3><p>{E3T}</p>
<h3>5. {E4}</h3><p>{E4T}</p>
<h3>6. {E5}</h3><p>{E5T}</p>
<h3>7. {E6}</h3><p>{E6T}</p>
<h3>8. {E7}</h3><p>{E7T}</p>

<h2>Urutan langkah yang saya sarankan sebelum meneken transaksi</h2>
<ol>
<li>Kumpulkan dokumen inti lebih dulu: akta beserta perubahannya, pengesahan badan hukum, nomor induk
berusaha, izin sektoral, laporan keuangan, dan perjanjian material.</li>
<li>Susun daftar pertanyaan tertulis kepada calon mitra atau penjual. Jawaban lisan cepat hilang, sedangkan
jawaban tertulis bisa diuji ulang.</li>
<li>Periksa silang data ke instansi, mulai dari pencatatan badan hukum sampai penelusuran perkara. Selisih
data selalu punya sebab, dan sebab itulah yang perlu dijelaskan.</li>
<li>Bagi temuan menjadi tiga kelompok: yang menghalangi transaksi, yang perlu dibereskan sebelum akta, dan
yang cukup dicatat sebagai risiko. Pembagian ini yang memudahkan negosiasi harga.</li>
<li>Tuangkan hasilnya dalam perjanjian. Pernyataan dan jaminan penjual, syarat penutupan, serta mekanisme
penyelesaian sengketa adalah tiga bagian yang paling sering diabaikan padahal paling melindungi.</li>
</ol>
<p>Dari pengalaman mendampingi usaha kecil dan menengah, masalah terbesar jarang datang dari hal yang rumit.
Yang paling sering memakan waktu adalah dokumen yang tidak pernah dirapikan sejak awal perusahaan berdiri.</p>

<h2>Baca juga</h2>
<p>Langkah merapikan badan usaha ada di
<a href="https://www.tslaw.id/8-langkah-legalitas-perusahaan-surabaya/">delapan langkah legalitas perusahaan
di Surabaya</a> dan
<a href="https://www.tslaw.id/5-dokumen-hukum-yang-wajib-dimiliki-setiap-pelaku-usaha-di-indonesia/">lima
dokumen hukum yang wajib dimiliki pelaku usaha</a>. Untuk pendirian usaha, baca
<a href="https://www.tslaw.id/panduan-mendirikan-pt-untuk-umkm/">panduan mendirikan PT untuk UMKM</a> serta
<a href="https://www.tslaw.id/cara-daftar-cv-pt-online/">cara mendaftar CV dan PT secara online</a>. Soal
perjanjian ada di
<a href="https://www.tslaw.id/pentingnya-kontrak-bisnis-transaksi-usaha/">pentingnya kontrak bisnis</a> dan
<a href="https://www.tslaw.id/10-kesalahan-kontrak-usaha-yang-sering-merugikan-dan-cara-menghindarinya/">sepuluh
kesalahan kontrak usaha yang merugikan</a>. Gambaran pendampingan perusahaan ada di
<a href="https://www.tslaw.id/7-alasan-pendampingan-hukum-perusahaan-surabaya-itu-penting-untuk-bisnis/">tujuh
alasan pendampingan hukum perusahaan</a>, perkiraan tarif di
<a href="https://www.tslaw.id/biaya-jasa-law-firm-surabaya/">biaya jasa law firm Surabaya</a>, dan gambaran
kantor kami di <a href="https://www.tslaw.id/law-firm-surabaya/">law firm Surabaya</a>,
<a href="https://www.tslaw.id/layanan/">layanan kami</a>, serta
<a href="https://www.tslaw.id/hubungi/">halaman kontak</a>.</p>

<h2>Pertanyaan yang sering muncul</h2>
"""

# isi entri
_e = ENTRI
ISI = ISI.replace("{E0}", _e[0][0]).replace("{E0T}", _e[0][1])
ISI = ISI.replace("{E1}", _e[1][0]).replace("{E1T}", _e[1][1])
ISI = ISI.replace("{E2}", _e[2][0]).replace("{E2T}", _e[2][1])
ISI = ISI.replace("{E3}", _e[3][0]).replace("{E3T}", _e[3][1])
ISI = ISI.replace("{E4}", _e[4][0]).replace("{E4T}", _e[4][1])
ISI = ISI.replace("{E5}", _e[5][0]).replace("{E5T}", _e[5][1])
ISI = ISI.replace("{E6}", _e[6][0]).replace("{E6T}", _e[6][1])
ISI = ISI.replace("{E7}", _e[7][0]).replace("{E7T}", _e[7][1])

ISI += "\n".join(f"<h3>{q}</h3><p>{a}</p>" for q, a in FAQ) + f"""

{CTA}
<script type="application/ld+json">{json.dumps({"@context": "https://schema.org", "@type": "FAQPage",
    "mainEntity": [{"@type": "Question", "name": q, "acceptedAnswer": {"@type": "Answer", "text": a}} for q, a in FAQ]},
    ensure_ascii=False)}</script>"""

A12 = {"judul": "8 Konsultan Hukum Perusahaan dan Legal Due Diligence di Surabaya",
       "slug": "konsultan-hukum-perusahaan-surabaya",
       "fokus": "konsultan hukum perusahaan surabaya",
       "seo": "Konsultan Hukum Perusahaan Surabaya & Legal DD",
       "meta": ("Konsultan hukum perusahaan surabaya: delapan pilihan pendamping legal due diligence, dari "
                "pemeriksaan dokumen sampai penutupan transaksi bisnis."),
       "tag_nama": ["hukum perusahaan", "due diligence", "legalitas usaha", "advokat"],
       "isi": ISI}

if __name__ == "__main__":
    teks = re.sub(r"<(script|style)[^>]*>.*?</\1>", " ", A12["isi"], flags=re.S | re.I)
    kata = len([w for w in re.split(r"\s+", re.sub(r"<[^>]+>", " ", teks)) if w])
    print(f"{A12['slug']}")
    print(f"  kata       : {kata} (batas 1000-1300)")
    print(f"  meta       : {len(A12['meta'])} char (batas 158)")
    print(f"  judul SEO  : {len(A12['seo'])} char (batas 60)")
    print(f"  H1         : {len(A12['judul'])} char")
    print(f"  h2/h3      : {A12['isi'].count('<h2>')}/{A12['isi'].count('<h3>')}")
    print(f"  keyphrase di isi : {A12['isi'].lower().count(A12['fokus'])} kali")
    print(f"  meta mulai keyphrase : {A12['meta'].lower().startswith(A12['fokus'])}")
    print(f"  wa.me      : {'ada' if 'wa.me/' + WA in A12['isi'] else 'TIDAK'}")
    print(f"  FAQPage    : {'ada' if 'FAQPage' in A12['isi'] else 'TIDAK'}")
    print(f"  beranda    : {'ada' if 'https://www.tslaw.id/' in A12['isi'] else 'TIDAK'}")
    cjk = re.findall(r"[\u3000-\u9fff\uac00-\ud7af]", A12["isi"])
    print(f"  karakter CJK: {len(cjk)} {'(BERSIH)' if not cjk else cjk[:10]}")
    sisa = re.findall(r"\{[A-Za-z_\[\]0-9]+\}", A12["isi"])
    print(f"  placeholder: {len(sisa)} {'(BERSIH)' if not sisa else sisa[:5]}")
    print(f"  em dash    : {A12['isi'].count(chr(8212))}")
    link = re.findall(r'href="(https?://[^"]+)"', A12["isi"])
    print(f"  tautan unik : {len(set(link))}")
    for l in sorted(set(link)):
        print("     ", l)
    open(f"{OUT}/artikel12.html", "w").write(A12["isi"])
    print(f"  salinan isi: {OUT}/artikel12.html")
