<template>
  <div class="penyata-wrapper container">

    <!-- HEADER -->
    <div class="header-section">
      <div class="header-left">
        <div class="logo-wrapper">
          <img src="/images/logo-kopkb.jpeg" alt="KoPKB Logo" class="kopkb-logo" />
          <div>
            <h4 class="fw-bold mb-1">KOPERASI PERMODALAN KELANTAN BERHAD</h4>
            <p style="font-size:13px; line-height:1.3; margin:0;">
              Lot PT 448, Tingkat 1, Jalan Kuala Krai, Batu 3, Wakaf Che Yeh, 15150 Kota Bharu, Kelantan<br />
              Tel: 09-7414339 | Website: www.koppkb.com
            </p>
          </div>
        </div>
      </div>

      <div class="header-right">
        <div class="title-box">
          <h5>PENYATA AHLI</h5>
        </div>
        <h4 class="text-muted mt-2">2025</h4>
      </div>
    </div>

    <!-- <hr class="mt-3" /> -->

    <hr style="border: none; border-top: 1.5px solid #000; margin: 15px 0;">

    <!-- MEMBER INFO -->
    <div v-if="data.user.no_anggota" class="form-section two-column">
      <div class="form-group">
        <label class="form-label fw-semibold">Tarikh :</label>
        <span>26-02-2026</span>
      </div>

      <div class="form-group">
        <label class="form-label fw-semibold">No. Anggota:</label>
        <span>{{ data.user.no_anggota }}</span>
      </div>

      <div class="form-group">
        <label class="form-label fw-semibold">Nama:</label>
        <span>{{ data.user.name }}</span>
      </div>

      <div class="form-group">
        <label class="form-label fw-semibold">Pejabat / Syarikat:</label>
        <span>{{ data.user.unit }}</span>
      </div>
    </div>

    <!-- MAIN CONTENT -->
    <h5 class="mt-4"><strong><u>PENGESAHAN PENYATA BAKI AKAUN AHLI</u></strong></h5>
    <p>Adalah dimaklumkan kedudukan baki akaun tuan/puan pada <b>31/12/2025</b> dengan Koperasi Permodalan
      Kelantan Berhad adalah seperti berikut:</p>

    <!-- 2-COLUMN TABLE -->
    <table class="boxed-table mt-4">
      <tbody>
        <tr>
          <td>Saham</td>
          <td>-{{ formatNumber(data.user.saham) }}</td>
          <td>Pembiayaan Kecemasan</td>
          <td>{{ formatNumber(data.user.tergempar) }}</td>

        </tr>
        <tr>
          <td>Yuran</td>
          <td>-{{ formatNumber(data.user.yuran) }}</td>
          <td>Pembiayaan Pengguna</td>
          <td>{{ formatNumber(data.user.barangan) }}</td>

        </tr>
        <tr>
          <td>Pelaburan T1</td>
          <td>-{{ formatNumber(data.user.pelaburan) }}</td>
          <td>Pembiayaan Peribadi</td>
          <td>{{ formatNumber(data.user.peribadi) }}</td>
        </tr>
        <tr>
          <td>Pelaburan T2</td>
          <td>0.00</td>
          <td>Pembiayaan Berjamin Yuran</td>
          <td>{{ formatNumber(data.user.berjamin_yuran) }}</td>

        </tr>
        <tr>
          <td></td>
          <td></td>
          <td>Pembiayaan Takaful / Cukai Jalan</td>
          <td>{{ formatNumber(data.user.roadtax) }}</td>

        </tr>
        <tr>
          <td></td>
          <td></td>
          <td>Pembiayaan Pelaburan / Pelbagai</td>
          <td>{{ formatNumber(data.user.pelbagai) }}</td>
        </tr>
      </tbody>
    </table>

    <p class="mt-4">Sukacita dapat tuan/puan untuk mengesahkan baki tersebut dengan memasukkan No K/P anggota dan
      menekan butang SAHKAN
      untuk tujuan audit tahunan koperasi sebelum <b>12-03-2026</b>.</p>

    <p class="mt-4">Dimaklumkan juga bahawa sekiranya kami tidak menerima pengesahan tuan/puan ke atas penyata ini
      dalam tempoh <strong>14 hari</strong> daripada tarikh surat ini, maka ia dianggap tuan/puan bersetuju
      terhadap baki yang dipaparkan.</p>

    <p>Sekian, dimaklumkan.</p>

    <p class="italic-note">Surat ini dikeluarkan oleh komputer, tidak perlu ditandatangani.</p>

    <hr style="border: none; border-top: 1.5px solid #000; margin: 15px 0;">

    <!-- PERSETUJUAN AHLI -->
    <div class="text-center mt-4 mb-3">
      <div style="font-weight:700; font-size:18px;">
        PERSETUJUAN AHLI
      </div>
      <hr style="width:200px; margin:8px auto;">
    </div>

    <div style="margin-top:10px; line-height:1.8;">

      <div style="margin-bottom:8px;">
        <label style="cursor:pointer;">
          <input type="radio" name="persetujuan" value="Bersetuju" v-model="persetujuan"
            :disabled="data.user.status_penyata === 'DISAHKAN'" />
          <span style="margin-left:6px;">
            Saya <strong>MENGESAHKAN</strong> bahawa baki yang dipaparkan adalah BENAR dan TEPAT.
          </span>
        </label>
      </div>

      <div>
        <label style="cursor:pointer;">
          <input type="radio" name="persetujuan" value="Tidak Bersetuju" v-model="persetujuan"
            :disabled="data.user.status_penyata === 'DISAHKAN'" />
          <span style="margin-left:6px;">
            Saya <strong>TIDAK BERSETUJU</strong> dengan baki yang dipaparkan.
          </span>
        </label>
      </div>

      <div>
        <p>Jika tidak bersetuju, sila nyatakan jumlah yang betul di bawah:</p>
      </div>

    </div>

    <p class="text-center">
      <strong>
        <span v-if="data.user.status_penyata === 'DISAHKAN'" class="badge-disahkan">
          TELAH DISAHKAN
        </span>

        <span v-else-if="data.user.status_penyata === 'Tidak Bersetuju'" class="badge-tidak-setuju">
          Tidak Setuju
        </span>

        <span v-else>
          {{ persetujuan || 'Belum membuat pilihan' }}
        </span>
      </strong>
    </p>


    <!-- EDITABLE TABLE IF TIDAK BERSETUJU -->
    <table class="table table-sm no-lines text-center align-middle mt-2">
      <tbody>
        <tr>
          <td>Saham</td>
          <td>-<input type="number" class="keyin-input" v-model="data.user.saham" /></td>
          <td>Pembiayaan Kecemasan</td>
          <td><input type="number" class="keyin-input" v-model="data.user.tergempar" /></td>

        </tr>
        <tr>
          <td>Yuran</td>
          <td>-<input type="number" class="keyin-input" v-model="data.user.yuran" /></td>
          <td>Pembiayaan Pengguna</td>
          <td><input type="number" class="keyin-input" v-model="data.user.barangan" /></td>
        </tr>
        <tr>
          <td>Pelaburan T1</td>
          <td>-<input type="number" class="keyin-input" v-model="data.user.pelaburan" /></td>
          <td>Pembiayaan Peribadi</td>
          <td><input type="number" class="keyin-input" v-model="data.user.peribadi" /></td>
        </tr>
        <tr>
          <td>Pelaburan T2</td>
          <td>-<input type="number" class="keyin-input" v-model="data.user.pelaburanT2" /></td>
          <td>Pembiayaan Berjamin Yuran</td>
          <td><input type="number" class="keyin-input" v-model="data.user.berjamin_yuran" /></td>
        </tr>
        <tr>
          <td>Pembiayaan Takaful / Cukai Jalan</td>
          <td><input type="number" class="keyin-input" v-model="data.user.roadtax" /></td>
          <td>Pembiayaan Pelaburan / Pelbagai</td>
          <td><input type="text" class="keyin-input" v-model="data.user.pelbagai" /></td>
        </tr>
      </tbody>
    </table>

    <!-- TANDATANGAN & TARIKH -->
    <div class="signature-section">
      <div class="sign-column">
        <label class="form-label">No Kad Pengenalan:</label>
        <input type="number" class="keyin-line" v-model="nokp" />
      </div>
      <div class="sig-column">
        <label class="form-label">Tarikh:</label>
        <input type="date" class="keyin-line" v-model="tarikh" />
      </div>
    </div>

    <!-- BUTTONS -->
    <br>
    <div class="text-right mt-5 mb-3 no-print">
      <button class="btn btn-primary btn-effect" style="width:100px;" @click="SahkanPenyata"
        :disabled="data.user.status_penyata === 'DISAHKAN'">
        {{ data.user.status_penyata === 'DISAHKAN' ? 'Disahkan' : 'Sahkan' }}
      </button>

      <button class="btn btn-danger ms-2" @click="cetakPDF">Cetak PDF</button>
    </div>

    <hr style="border: none; border-top: 1.5px solid #000; margin: 15px 0;">

    <!-- NOTA PENTING -->
    <div class="mt-5">
      <p class="fw-bold mb-1">Nota Penting:</p>
      <ul class="mb-0">
        <li>Pengesahan ini adalah bagi tujuan Audit Tahunan KoPKB.</li>
        <li>Anggota hendaklah membuat pengesahan dalam tempoh 14 hari.</li>
        <li>Kegagalan memberi maklum balas dalam tempoh tersebut akan dianggap sebagai persetujuan terhadap baki yang
          dipaparkan.</li>
        <li>Semua rekod pengesahan adalah tertakluk kepada semakan juruaudit luar.</li>
      </ul>
    </div>

  </div>
</template>

<script>
import axios from 'axios';

export default {
  name: "PenyataView",
  data() {
    return {
      tarikh: new Date().toISOString().substring(0, 10),
      persetujuan: "",
      nokp: "",
      data: { user: {} },
      loading: false
    };
  },
  mounted() {
    const noAnggota = this.$route.params.no_anggota;
    if (noAnggota) this.getPenyata(noAnggota);
  },
  methods: {
    async getPenyata(id) {
      this.loading = true;
      try {
        const res = await axios.get(`/api/v1/penyata/${id}`);
        this.data = res.data;
      } catch (err) {
        console.error(err);
        alert("Gagal ambil data penyata");
      } finally {
        this.loading = false;
      }
    },
    cetakPDF() {
      const noAnggota = this.$route.params.no_anggota;
      if (noAnggota) window.open(`/api/v1/penyata/${noAnggota}/pdf`, '_blank');
    },
    async SahkanPenyata() {
      const noAnggota = this.$route.params.no_anggota;
      if (!this.persetujuan) { alert("Sila pilih Bersetuju atau Tidak Bersetuju"); return; }
      if (!this.nokp) { alert("Sila isi No Kad Pengenalan"); return; }
      if (!confirm("Adakah anda pasti untuk mengesahkan penyata ini?")) return;
      try {
        await axios.post(`/api/v1/penyata/${noAnggota}/sahkan`, {
          persetujuan: this.persetujuan,
          nokp: this.nokp,
          tarikh: this.tarikh
        });
        alert("Penyata berjaya DISAHKAN");
        this.cetakPDF();
        this.$router.push({ name: 'lamanUtama' });
      } catch (err) {
        console.error(err);
        alert("Gagal sahkan penyata");
      }
    },
    formatNumber(value) {
      return Number(value || 0).toLocaleString('en-US', {
        minimumFractionDigits: 2,
        maximumFractionDigits: 2
      })
    }
  }
};
</script>

<style scoped>
/* ------------------ GENERAL ------------------ */
.penyata-wrapper {
  max-width: 800px;
  margin: 0 auto;
  font-family: Arial, sans-serif;
}

.header-section {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  align-items: center;
  gap: 20px;
}

.logo-wrapper {
  display: flex;
  align-items: flex-start;
  gap: 15px;
}

.kopkb-logo {
  width: 80px;
  height: auto;
}

.header-right {
  text-align: right;
}

.title-box {
  background: #000;
  color: #fff;
  padding: 8px 15px;
  display: inline-block;
  border-radius: 4px;
  text-align: center;
}

.form-section.two-column {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: 30px;
  row-gap: 15px;
  margin-bottom: 20px;
  max-width: 780px;
  margin: 0 auto;
}

.form-control-sm {
  border: none;
  border-bottom: 1px solid #666;
  border-radius: 0;
  width: 100%;
  outline: none;
  padding: 4px;
}

.boxed-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 4px;
}

.boxed-table td {
  border: 1px inset #000;
  padding: 6px 8px;
  font-size: 13px;
  background: #fafafa;
  vertical-align: middle;
}

.no-lines td {
  border: none !important;
  padding: 4px 6px;
  font-size: 13px;
  text-align: left;
  vertical-align: middle;
}

.keyin-input,
.keyin-line {
  border: none;
  border-bottom: 1px solid #000;
  background: transparent;
  padding: 2px 4px;
  font-size: 12px;
  text-align: right;
  width: 90%;
}

.keyin-input:focus,
.keyin-line:focus {
  border-bottom: 1px solid #007bff;
}

.signature-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 40px;
  row-gap: 15px;
  width: 100%;
  max-width: 780px;
  margin: 20px auto 0;
}

.btn-effect {
  transition: 0.3s ease;
}

.btn-effect:hover {
  transform: scale(1.05);
  box-shadow: 0 0 10px rgba(8, 8, 8, 0.818);
}

.italic-note {
  font-style: italic;
}

.badge-disahkan {
  background: #28a745;
  color: #fff;
  padding: 6px 14px;
  border-radius: 20px;
  font-weight: 600;
  letter-spacing: 0.3px;
}

/* .badge-tidak-setuju{
  background: #a72828;
  color: #fff;
  padding: 6px 14px;
  border-radius: 20px;
  font-weight: 600;
  letter-spacing: 0.3px;
} */

@media(max-width:768px) {
  .header-section {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .header-right {
    text-align: center;
    margin-top: 10px;
  }

  .logo-wrapper {
    justify-content: center;
  }

  .signature-section {
    grid-template-columns: 1fr;
  }
}

@media print {
  .no-print {
    display: none !important;
  }

  body {
    font-size: 12px;
    line-height: 1.3;
  }

  table,
  .penyata-wrapper {
    page-break-inside: avoid;
  }
}
</style>
