<?php include 'header.php'; ?>

<div class="content-wrapper">

  <section class="content-header">
    <h1>
      LAPORAN LABA RUGI
      <small>Profit and Loss Statement</small>
    </h1>
    <ol class="breadcrumb">
      <li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
      <li class="active">Laporan Laba Rugi</li>
    </ol>
  </section>

  <section class="content">
    <div class="row">
      <section class="col-lg-12">
        <div class="box box-info">
          <div class="box-header">
            <h3 class="box-title">Filter Laporan Laba Rugi</h3>
          </div>
          <div class="box-body">
            <form method="get" action="">
              <div class="row">
                <div class="col-md-4">
                  <div class="form-group">
                    <label>Periode</label>
                    <select name="periode" class="form-control" required="required">
                      <option value="">- Pilih Periode -</option>
                      <option value="bulan" <?php if(isset($_GET['periode']) && $_GET['periode'] == 'bulan') echo 'selected'; ?>>Bulan Ini</option>
                      <option value="tahun" <?php if(isset($_GET['periode']) && $_GET['periode'] == 'tahun') echo 'selected'; ?>>Tahun Ini</option>
                      <option value="custom" <?php if(isset($_GET['periode']) && $_GET['periode'] == 'custom') echo 'selected'; ?>>Periode Kustom</option>
                    </select>
                  </div>
                </div>

                <div class="col-md-4" id="tanggal_dari_div" style="<?php if(!isset($_GET['periode']) || $_GET['periode'] != 'custom') echo 'display:none;'; ?>">
                  <div class="form-group">
                    <label>Dari Tanggal</label>
                    <input autocomplete="off" type="text" value="<?php if(isset($_GET['tanggal_dari'])){echo $_GET['tanggal_dari'];}else{echo "";} ?>" name="tanggal_dari" class="form-control datepicker2" placeholder="Dari Tanggal">
                  </div>
                </div>

                <div class="col-md-4" id="tanggal_sampai_div" style="<?php if(!isset($_GET['periode']) || $_GET['periode'] != 'custom') echo 'display:none;'; ?>">
                  <div class="form-group">
                    <label>Sampai Tanggal</label>
                    <input autocomplete="off" type="text" value="<?php if(isset($_GET['tanggal_sampai'])){echo $_GET['tanggal_sampai'];}else{echo "";} ?>" name="tanggal_sampai" class="form-control datepicker2" placeholder="Sampai Tanggal">
                  </div>
                </div>

                <div class="col-md-4">
                  <div class="form-group">
                    <br/>
                    <input type="submit" value="TAMPILKAN LAPORAN" class="btn btn-success btn-block">
                  </div>
                </div>
              </div>
            </form>
          </div>
        </div>

        <div class="box box-info">
          <div class="box-header">
            <h3 class="box-title">Laporan Laba Rugi</h3>
          </div>
          <div class="box-body">

            <?php 
            if(isset($_GET['periode'])){
              $periode = $_GET['periode'];
              
              // Tentukan tanggal berdasarkan periode
              if($periode == 'bulan'){
                $tgl_dari = date('Y-m-01');
                $tgl_sampai = date('Y-m-t');
                $periode_text = "Bulan " . date('F Y');
              }elseif($periode == 'tahun'){
                $tgl_dari = date('Y-01-01');
                $tgl_sampai = date('Y-12-31');
                $periode_text = "Tahun " . date('Y');
              }elseif($periode == 'custom'){
                if(isset($_GET['tanggal_dari']) && isset($_GET['tanggal_sampai'])){
                  $tgl_dari = $_GET['tanggal_dari'];
                  $tgl_sampai = $_GET['tanggal_sampai'];
                  $periode_text = date('d F Y', strtotime($tgl_dari)) . " - " . date('d F Y', strtotime($tgl_sampai));
                }else{
                  echo '<div class="alert alert-danger">Silahkan pilih tanggal untuk periode kustom.</div>';
                  exit;
                }
              }else{
                echo '<div class="alert alert-danger">Periode tidak valid.</div>';
                exit;
              }
              ?>

              <div class="row">
                <div class="col-lg-12">
                  <table class="table table-bordered">
                    <tr>
                      <th width="20%">PERIODE LAPORAN</th>
                      <th width="1%">:</th>
                      <td><strong><?php echo $periode_text; ?></strong></td>
                    </tr>
                    <tr>
                      <th>TANGGAL LAPORAN</th>
                      <th>:</th>
                      <td><?php echo date('d F Y'); ?></td>
                    </tr>
                  </table>
                  
                </div>
              </div>

              <a href="laporan_labarugi_print.php?periode=<?php echo $periode ?>&tanggal_dari=<?php echo isset($tgl_dari) ? $tgl_dari : '' ?>&tanggal_sampai=<?php echo isset($tgl_sampai) ? $tgl_sampai : '' ?>" target="_blank" class="btn btn-danger"><i class="fa fa-print"></i> &nbsp PRINT LAPORAN</a>
              <br>
              <br>

              <div class="table-responsive">
                <table class="table table-bordered" style="font-size: 14px;">
                  <thead>
                    <tr style="background-color: #f4f4f4;">
                      <th width="60%" style="padding: 10px;">KETERANGAN</th>
                      <th width="40%" class="text-right" style="padding: 10px;">JUMLAH (Rp)</th>
                    </tr>
                  </thead>
                  <tbody>
                    <?php 
                    include '../koneksi.php';
                    
                    // ========== BAGIAN PENDAPATAN ==========
                    ?>
                    <tr style="background-color: #e8f5e9;">
                      <td colspan="2" style="padding: 10px; font-weight: bold; font-size: 16px;">
                        <i class="fa fa-arrow-up"></i> PENDAPATAN
                      </td>
                    </tr>
                    
                    <?php
                    $total_pendapatan = 0;
                    
                    // Ambil semua kategori pemasukan
                    $kategori_pemasukan = mysqli_query($koneksi, "
                      SELECT k.kategori_id, k.kategori, 
                             COALESCE(SUM(t.transaksi_nominal), 0) as total
                      FROM kategori k
                      LEFT JOIN transaksi t ON k.kategori_id = t.transaksi_kategori 
                        AND (t.transaksi_jenis = 'Pemasukan' OR t.transaksi_jenis = 'pemasukan')
                        AND DATE(t.transaksi_tanggal) >= '$tgl_dari'
                        AND DATE(t.transaksi_tanggal) <= '$tgl_sampai'
                      GROUP BY k.kategori_id, k.kategori
                      HAVING total > 0
                      ORDER BY k.kategori ASC
                    ");
                    
                    $ada_pendapatan = false;
                    while($kp = mysqli_fetch_array($kategori_pemasukan)){
                      if($kp['total'] > 0){
                        $ada_pendapatan = true;
                        $total_pendapatan += $kp['total'];
                        ?>
                        <tr>
                          <td style="padding: 8px; padding-left: 30px;"><?php echo $kp['kategori']; ?></td>
                          <td class="text-right" style="padding: 8px;"><?php echo number_format($kp['total'], 0, ',', '.'); ?></td>
                        </tr>
                        <?php
                      }
                    }
                    
                    if(!$ada_pendapatan){
                      ?>
                      <tr>
                        <td style="padding: 8px; padding-left: 30px; color: #999;">Tidak ada pendapatan</td>
                        <td class="text-right" style="padding: 8px; color: #999;">0</td>
                      </tr>
                      <?php
                    }
                    ?>
                    
                    <tr style="background-color: #c8e6c9; font-weight: bold;">
                      <td style="padding: 10px; padding-left: 20px;">TOTAL PENDAPATAN</td>
                      <td class="text-right" style="padding: 10px;"><?php echo number_format($total_pendapatan, 0, ',', '.'); ?></td>
                    </tr>
                    
                    <?php
                    // ========== BAGIAN BEBAN ==========
                    ?>
                    <tr style="background-color: #ffebee;">
                      <td colspan="2" style="padding: 10px; font-weight: bold; font-size: 16px; margin-top: 20px;">
                        <i class="fa fa-arrow-down"></i> BEBAN
                      </td>
                    </tr>
                    
                    <?php
                    $total_beban = 0;
                    
                    // Ambil semua kategori pengeluaran
                    $kategori_pengeluaran = mysqli_query($koneksi, "
                      SELECT k.kategori_id, k.kategori, 
                             COALESCE(SUM(t.transaksi_nominal), 0) as total
                      FROM kategori k
                      LEFT JOIN transaksi t ON k.kategori_id = t.transaksi_kategori 
                        AND (t.transaksi_jenis = 'Pengeluaran' OR t.transaksi_jenis = 'pengeluaran')
                        AND DATE(t.transaksi_tanggal) >= '$tgl_dari'
                        AND DATE(t.transaksi_tanggal) <= '$tgl_sampai'
                      GROUP BY k.kategori_id, k.kategori
                      HAVING total > 0
                      ORDER BY k.kategori ASC
                    ");
                    
                    $ada_beban = false;
                    while($kb = mysqli_fetch_array($kategori_pengeluaran)){
                      if($kb['total'] > 0){
                        $ada_beban = true;
                        $total_beban += $kb['total'];
                        ?>
                        <tr>
                          <td style="padding: 8px; padding-left: 30px;"><?php echo $kb['kategori']; ?></td>
                          <td class="text-right" style="padding: 8px;"><?php echo number_format($kb['total'], 0, ',', '.'); ?></td>
                        </tr>
                        <?php
                      }
                    }
                    
                    if(!$ada_beban){
                      ?>
                      <tr>
                        <td style="padding: 8px; padding-left: 30px; color: #999;">Tidak ada beban</td>
                        <td class="text-right" style="padding: 8px; color: #999;">0</td>
                      </tr>
                      <?php
                    }
                    ?>
                    
                    <tr style="background-color: #ffcdd2; font-weight: bold;">
                      <td style="padding: 10px; padding-left: 20px;">TOTAL BEBAN</td>
                      <td class="text-right" style="padding: 10px;"><?php echo number_format($total_beban, 0, ',', '.'); ?></td>
                    </tr>
                    
                    <?php
                    // ========== BAGIAN LABA/RUGI BERSIH ==========
                    $laba_rugi = $total_pendapatan - $total_beban;
                    $bg_color = $laba_rugi >= 0 ? '#e1f5fe' : '#fff3e0';
                    $text_color = $laba_rugi >= 0 ? '#0277bd' : '#e65100';
                    $label = $laba_rugi >= 0 ? 'LABA BERSIH' : 'RUGI BERSIH';
                    ?>
                    
                    <tr style="background-color: <?php echo $bg_color; ?>; font-weight: bold; font-size: 16px; border-top: 3px solid #333;">
                      <td style="padding: 15px; padding-left: 20px; color: <?php echo $text_color; ?>;">
                        <?php echo $label; ?>
                      </td>
                      <td class="text-right" style="padding: 15px; color: <?php echo $text_color; ?>; font-size: 18px;">
                        <?php echo number_format(abs($laba_rugi), 0, ',', '.'); ?>
                      </td>
                    </tr>
                    
                  </tbody>
                </table>
              </div>

              <div class="row" style="margin-top: 30px;">
                <div class="col-md-6">
                  <div class="alert alert-info">
                    <h4><i class="icon fa fa-info-circle"></i> Keterangan:</h4>
                    <ul>
                      <li><strong>Pendapatan:</strong> Semua transaksi pemasukan dalam periode yang dipilih</li>
                      <li><strong>Beban:</strong> Semua transaksi pengeluaran dalam periode yang dipilih</li>
                      <li><strong>Laba/Rugi Bersih:</strong> Selisih antara total pendapatan dan total beban</li>
                    </ul>
                  </div>
                </div>
                <div class="col-md-6">
                  <div class="alert <?php echo $laba_rugi >= 0 ? 'alert-success' : 'alert-warning'; ?>">
                    <h4>
                      <i class="icon fa fa-<?php echo $laba_rugi >= 0 ? 'check-circle' : 'exclamation-triangle'; ?>"></i> 
                      Status Keuangan:
                    </h4>
                    <p style="font-size: 16px; margin: 0;">
                      <?php 
                      if($laba_rugi > 0){
                        echo "Periode ini menghasilkan <strong>Laba Bersih</strong> sebesar <strong>Rp. " . number_format($laba_rugi, 0, ',', '.') . "</strong>";
                      }elseif($laba_rugi < 0){
                        echo "Periode ini mengalami <strong>Rugi Bersih</strong> sebesar <strong>Rp. " . number_format(abs($laba_rugi), 0, ',', '.') . "</strong>";
                      }else{
                        echo "Periode ini <strong>Break Even</strong> (tidak laba tidak rugi)";
                      }
                      ?>
                    </p>
                  </div>
                </div>
              </div>

              <?php 
            }else{
              ?>
              <div class="alert alert-info text-center">
                Silahkan pilih periode laporan terlebih dahulu.
              </div>
              <?php
            }
            ?>

          </div>
        </div>
      </section>
    </div>
  </section>

</div>

<script>
  // Tampilkan/sembunyikan input tanggal berdasarkan pilihan periode
  document.querySelector('select[name="periode"]').addEventListener('change', function(){
    var periode = this.value;
    var tanggalDariDiv = document.getElementById('tanggal_dari_div');
    var tanggalSampaiDiv = document.getElementById('tanggal_sampai_div');
    
    if(periode == 'custom'){
      tanggalDariDiv.style.display = 'block';
      tanggalSampaiDiv.style.display = 'block';
      document.querySelector('input[name="tanggal_dari"]').setAttribute('required', 'required');
      document.querySelector('input[name="tanggal_sampai"]').setAttribute('required', 'required');
    }else{
      tanggalDariDiv.style.display = 'none';
      tanggalSampaiDiv.style.display = 'none';
      document.querySelector('input[name="tanggal_dari"]').removeAttribute('required');
      document.querySelector('input[name="tanggal_sampai"]').removeAttribute('required');
    }
  });
</script>

<?php include 'footer.php'; ?>
