<?php
/**
 * WHMCS PDF Fatura Tasarımı
 *
 * Bu dosya, WHMCS tarafından oluşturulan PDF faturaların görünümünü kontrol eder.
 * Düzenleme yaparken dikkatli olun. WHMCS'in TCPDF kütüphanesini kullandığını unutmayın.
 * HTML/CSS burada ÇALIŞMAZ.
 */
if (!defined("WHMCS")) {
    die("This file cannot be accessed directly");
}
// --- TASARIM AYARLARI ---
// Renkleri Tanımla (RGB formatında)
$colors = [
    'dark' => [45, 55, 72],       // Koyu Metin (Örn: #2d3748)
    'gray' => [113, 128, 150],     // Normal Metin (Örn: #718096)
    'lightgray' => [247, 250, 252], // Tablo Arka Planı (Örn: #f7fafc)
    'border' => [226, 232, 240],    // Kenarlıklar (Örn: #e2e8f0)
    'primary' => [34, 197, 94],     // Ana Renk (Yeşil, örn: #22c55e)
    'white' => [255, 255, 255]
];
// PDF objesine renkleri atama (kolay erişim için)
$pdf->SetTextColor($colors['gray'][0], $colors['gray'][1], $colors['gray'][2]);
$pdf->SetDrawColor($colors['border'][0], $colors['border'][1], $colors['border'][2]);
$pdf->SetFont('helvetica', '', 10);
// --- SAYFA BAŞLIĞI (HEADER) ---
// Logo
// WHMCS logoyu otomatik olarak $logo değişkenine atar
$logoy = $pdf->GetY();
$pdf->Image($logo, 15, $logoy, 60); // (dosya, x, y, genişlik)
// Fatura Başlığı (Sağ Taraf)
$pdf->SetXY(130, $logoy);
$pdf->SetFont('helvetica', 'B', 24);
$pdf->SetTextColor($colors['dark'][0], $colors['dark'][1], $colors['dark'][2]);
// mb_strtoupper Türkçe karakterleri (İ, Ü vb.) destekler
$pdf->Cell(70, 10, mb_strtoupper("{$_L.invoicetitle}", 'UTF-8'), 0, 1, 'R');
// Fatura Numarası
$pdf->SetFont('helvetica', '', 10);
$pdf->SetTextColor($colors['gray'][0], $colors['gray'][1], $colors['gray'][2]);
$pdf->Cell(190, 6, "{$_L.invoicenumber}{$invoicenum}", 0, 1, 'R');
$pdf->Ln(15); // Logodan sonra boşluk bırak

// --- FATURA DURUMU (ÖDENDİ / ÖDENMEDİ DAMGASI) ---
$status_y_pos = 100; // Damganın dikey konumu
if ($status == "Paid") {
    $pdf->SetFont('helvetica', 'B', 48);
    $pdf->SetTextColor(56, 161, 105, 15); // Yarı saydam Yeşil (RGBa)
    $pdf->StartTransform();
    $pdf->Rotate(45, 105, $status_y_pos); // Açı, X-merkez, Y-merkez
    $pdf->Text(70, $status_y_pos, mb_strtoupper("{$_L.invoicespaid}", 'UTF-8'));
    $pdf->StopTransform();
} elseif ($status == "Unpaid") {
    $pdf->SetFont('helvetica', 'B', 48);
    $pdf->SetTextColor(224, 38, 38, 15); // Yarı saydam Kırmızı (RGBa)
    $pdf->StartTransform();
    $pdf->Rotate(45, 105, $status_y_pos);
    $pdf->Text(50, $status_y_pos, mb_strtoupper("{$_L.invoicesunpaid}", 'UTF-8'));
    $pdf->StopTransform();
} elseif ($status == "Cancelled") {
    $pdf->SetFont('helvetica', 'B', 48);
    $pdf->SetTextColor(113, 128, 150, 15); // Yarı saydam Gri (RGBa)
    $pdf->StartTransform();
    $pdf->Rotate(45, 105, $status_y_pos);
    $pdf->Text(60, $status_y_pos, mb_strtoupper("{$_L.invoicescancelled}", 'UTF-8'));
    $pdf->StopTransform();
}
// Renkleri ve fontu sıfırla
$pdf->SetTextColor($colors['gray'][0], $colors['gray'][1], $colors['gray'][2]);
$pdf->SetFont('helvetica', '', 10);

// --- FİRMA VE MÜŞTERİ BİLGİLERİ ---
$yPos = $pdf->GetY();
// Firma Bilgileri (Sol Taraf)
$pdf->SetXY(15, $yPos);
$pdf->SetFont('helvetica', 'B', 10);
$pdf->SetTextColor($colors['dark'][0], $colors['dark'][1], $colors['dark'][2]);
$pdf->Cell(80, 6, "{$_L.invoicesfrom}", 0, 1, 'L');
$pdf->SetFont('helvetica', '', 10);
$pdf->SetTextColor($colors['gray'][0], $colors['gray'][1], $colors['gray'][2]);
// WHMCS $companyaddress değişkenini otomatik basar
$pdf->MultiCell(80, 5, $companyaddress, 0, 'L');
// Müşteri Bilgileri (Sağ Taraf)
$pdf->SetXY(115, $yPos);
$pdf->SetFont('helvetica', 'B', 10);
$pdf->SetTextColor($colors['dark'][0], $colors['dark'][1], $colors['dark'][2]);
$pdf->Cell(80, 6, "{$_L.billto}", 0, 1, 'L');
$pdf->SetFont('helvetica', '', 10);
$pdf->SetTextColor($colors['gray'][0], $colors['gray'][1], $colors['gray'][2]);
// WHMCS $clientname, $clientaddress1 vb. değişkenleri otomatik basar
if ($clientname) {
    $pdf->Cell(80, 5, $clientname, 0, 1, 'L');
}
if ($clientaddress1) {
    $pdf->Cell(80, 5, $clientaddress1, 0, 1, 'L');
}
if ($clientaddress2) {
    $pdf->Cell(80, 5, $clientaddress2, 0, 1, 'L');
}
if ($clientcity || $clientstate || $clientpostcode) {
    $pdf->Cell(80, 5, $clientcity . ", " . $clientstate . " " . $clientpostcode, 0, 1, 'L');
}
if ($clientcountryname) {
    $pdf->Cell(80, 5, $clientcountryname, 0, 1, 'L');
}
if ($customfields) {
    foreach ($customfields as $customfield) {
         $pdf->Cell(80, 5, $customfield['fieldname'] . ': ' . $customfield['value'], 0, 1, 'L');
    }
}
$pdf->Ln(10);

// --- FATURA DETAYLARI (TARİH, SON ÖDEME) ---
$yPos = $pdf->GetY();
$pdf->SetFillColor($colors['lightgray'][0], $colors['lightgray'][1], $colors['lightgray'][2]);
$pdf->SetTextColor($colors['dark'][0], $colors['dark'][1], $colors['dark'][2]);
$pdf->SetDrawColor($colors['border'][0], $colors['border'][1], $colors['border'][2]);
$pdf->SetLineWidth(0.2);
// Arka plan kutusu
$pdf->Rect(15, $yPos, 180, 18, 'DF'); // x, y, w, h, style (Draw, Fill)
// Fatura Tarihi
$pdf->SetFont('helvetica', 'B', 9);
$pdf->SetXY(20, $yPos + 3);
$pdf->Cell(60, 5, mb_strtoupper("{$_L.invoicedate}", 'UTF-8'), 0, 1, 'L');
$pdf->SetFont('helvetica', '', 9);
$pdf->SetXY(20, $yPos + 9);
$pdf->Cell(60, 5, $date, 0, 1, 'L');
// Son Ödeme Tarihi
$pdf->SetFont('helvetica', 'B', 9);
$pdf->SetXY(80, $yPos + 3);
$pdf->Cell(60, 5, mb_strtoupper("{$_L.invoiceduedate}", 'UTF-8'), 0, 1, 'C');
$pdf->SetFont('helvetica', '', 9);
$pdf->SetXY(80, $yPos + 9);
$pdf->Cell(60, 5, $duedate, 0, 1, 'C');
// Ödeme Yöntemi
$pdf->SetFont('helvetica', 'B', 9);
$pdf->SetXY(140, $yPos + 3);
$pdf->Cell(50, 5, mb_strtoupper("{$_L.paymentmethod}", 'UTF-8'), 0, 1, 'R');
$pdf->SetFont('helvetica', '', 9);
$pdf->SetXY(140, $yPos + 9);
$pdf->Cell(50, 5, $paymentmethod, 0, 1, 'R');

// --- FATURA KALEMLERİ TABLOSU ---
$pdf->Ln(10);
// Tablo Başlığı
$pdf->SetFont('helvetica', 'B', 10);
$pdf->SetFillColor($colors['dark'][0], $colors['dark'][1], $colors['dark'][2]);
$pdf->SetTextColor($colors['white'][0], $colors['white'][1], $colors['white'][2]);
$pdf->SetDrawColor($colors['dark'][0], $colors['dark'][1], $colors['dark'][2]);
$pdf->SetLineWidth(0.3);
// Sadece üst ve alt kenarlık (T ve B) veya tümü (1)
$borderStyle = 1; 
$pdf->Cell(150, 8, "  {$_L.invoicesdescription}", $borderStyle, 0, 'L', 1);
$pdf->Cell(30, 8, "{$_L.invoicesamount}  ", $borderStyle, 1, 'R', 1);
// Tablo İçeriği
$pdf->SetFont('helvetica', '', 9);
$pdf->SetTextColor($colors['gray'][0], $colors['gray'][1], $colors['gray'][2]);
$pdf->SetFillColor($colors['lightgray'][0], $colors['lightgray'][1], $colors['lightgray'][2]);
$pdf->SetDrawColor($colors['border'][0], $colors['border'][1], $colors['border'][2]);
$pdf->SetLineWidth(0.2);
$fill = 0;
// WHMCS $items değişkenini otomatik basar
foreach ($items as $item) {
    $pdf->SetFillColor($fill ? $colors['white'][0] : $colors['lightgray'][0], $fill ? $colors['white'][1] : $colors['lightgray'][1], $fill ? $colors['white'][2] : $colors['lightgray'][2]);
    
    // Açıklama hücresi (MultiCell satır atlamasına izin verir)
    // MultiCell(genişlik, yükseklik, metin, kenarlık, hizalama, dolgu, satır atlama, x, y, ...
    $pdf->MultiCell(150, 7, "  " . $item['description'], 'LR', 'L', 1, 0, 15, $pdf->GetY(), true);
    
    // Geçerli Y pozisyonunu al (MultiCell'den sonra)
    $currentY = $pdf->GetY();
    // Son hücrenin yüksekliğini al
    $cellHeight = $pdf->GetLastCellHeight();
    
    // Tutar hücresi
    // Açıklama hücresiyle aynı Y pozisyonuna ve yüksekliğe ayarla
    $pdf->SetY($currentY - $cellHeight); 
    $pdf->SetX(165); // 15 (sol marj) + 150 (açıklama genişliği)
    $pdf->MultiCell(30, $cellHeight, $item['amount'] . "  ", 'LR', 'R', 1, 1, 165, $pdf->GetY(), true);
    $fill = !$fill;
}
// Tabloyu kapatan alt çizgi
$pdf->Cell(180, 0, '', 'T', 1);

// --- TOPLAMLAR BÖLÜMÜ ---
$pdf->Ln(5);
$pdf->SetFont('helvetica', '', 10);
$pdf->SetTextColor($colors['gray'][0], $colors['gray'][1], $colors['gray'][2]);
// Ara Toplam
$pdf->Cell(130, 6, "{$_L.invoicessubtotal}:", 0, 0, 'R');
$pdf->Cell(50, 6, $subtotal . "  ", 0, 1, 'R');
// Vergi Kalemleri
if ($taxitems) {
    foreach ($taxitems as $taxitem) {
        $pdf->Cell(130, 6, $taxitem['taxrate'] . "% " . $taxitem['taxname'] . ":", 0, 0, 'R');
        $pdf->Cell(50, 6, $taxitem['amount'] . "  ", 0, 1, 'R');
    }
}
// Kredi (varsa)
if ($credit) {
    $pdf->Cell(130, 6, "{$_L.invoicescredit}:", 0, 0, 'R');
    $pdf->Cell(50, 6, $credit . "  ", 0, 1, 'R');
}
// Genel Toplam (Vurgulu)
$pdf->Ln(2);
$pdf->SetFont('helvetica', 'B', 12);
$pdf->SetFillColor($colors['dark'][0], $colors['dark'][1], $colors['dark'][2]);
$pdf->SetTextColor($colors['white'][0], $colors['white'][1], $colors['white'][2]);
$pdf->SetX(115); // Sağa yaslamak için X pozisyonunu ayarla
$pdf->Cell(40, 10, "  {$_L.invoicestotal}:", 0, 0, 'R', 1);
$pdf->Cell(45, 10, $total . "  ", 0, 1, 'R', 1);
// Ödenen Tutar
if ($status == "Paid") {
    $pdf->Ln(2);
    $pdf->SetFont('helvetica', 'B', 11);
    $pdf->SetFillColor($colors['primary'][0], $colors['primary'][1], $colors['primary'][2]);
    $pdf->SetTextColor($colors['white'][0], $colors['white'][1], $colors['white'][2]);
    $pdf->SetX(115);
    $pdf->Cell(40, 10, "  {$_L.invoicespaid}:", 0, 0, 'R', 1);
    $pdf->Cell(45, 10, $total . "  ", 0, 1, 'R', 1);
}

// --- ALT BİLGİ (FOOTER) ---
// Sayfanın altından 40 birim yukarıya konumlan
$pdf->SetY(-40);
$pdf->SetFont('helvetica', '', 9);
$pdf->SetTextColor($colors['gray'][0], $colors['gray'][1], $colors['gray'][2]);
$pdf->SetDrawColor($colors['border'][0], $colors['border'][1], $colors['border'][2]);
$pdf->SetLineWidth(0.2);
// Üst çizgi
$pdf->Cell(180, 0, '', 'T', 1, '', 0, 15);
$pdf->Ln(2);
// Fatura Notları (varsa)
if ($notes) {
    $pdf->SetFont('helvetica', 'B', 9);
    $pdf->Cell(180, 6, "{$_L.invoicesnotes}:", 0, 1, 'L', 0, 15);
    $pdf->SetFont('helvetica', '', 9);
    $pdf->MultiCell(180, 5, $notes, 0, 'L', 0, 1, 15);
    $pdf->Ln(5);
}
// Ödeme/Banka Bilgileri
$pdf->SetFont('helvetica', 'B', 9);
$pdf->Cell(180, 6, "{$_L.paymentdetails}:", 0, 1, 'L', 0, 15);
$pdf->SetFont('helvetica', '', 9);
// WHMCS $paymentdetails değişkenini otomatik basar
$pdf->MultiCell(180, 5, $paymentdetails, 0, 'L', 0, 1, 15);
// Teşekkür Mesajı
$pdf->Ln(5);
$pdf->SetFont('helvetica', 'I', 10);
$pdf->SetTextColor($colors['primary'][0], $colors['primary'][1], $colors['primary'][2]);
$pdf->Cell(180, 6, "Bizi tercih ettiğiniz için teşekkür ederiz!", 0, 1, 'C');
?>
denermisin.