<?php
/**
 * OVP-Sponsorizare
 *
 * @package   OVPSPO_Sponsorizare
 * @author    Ovidiu Pantiru - OVP-Digital
 * @copyright 2024 Ovidiu Pantiru
 * @license   GPL-2.0+
 * @link      https://ovidiupantiru.ro
 */

if ( ! defined( 'ABSPATH' ) ) exit;

if ( ! class_exists('OVPSPO_Email177') ) {
class OVPSPO_Email177 {

    /**
     * Email principal catre contribuabil cu XML atasat si instructiuni SPV
     */
    public static function send_user_xml( $data, $xml_path = '', $pdf_path = '' ) {
        if ( empty($data['emailC']) ) return;

        $from  = OVPSPO_Settings::get( 'org_email_from', get_option('admin_email') );
        $fname = OVPSPO_Settings::get( 'org_email_from_name', OVPSPO_Settings::get('org_nume', get_bloginfo('name')) );
        $org   = OVPSPO_Settings::get( 'org_nume', get_bloginfo('name') );

        $subject = 'Formularul D177 generat – descarcă și încarcă în SPV';

        $body  = '<div style="font-family:Arial,sans-serif;max-width:680px;margin:0 auto;color:#1c2333">';
        $body .= '<div style="background:#0F408A;padding:20px 30px;border-radius:8px 8px 0 0">';
        $body .= '<h1 style="color:#fff;margin:0;font-size:20px">Formularul D177 a fost generat</h1>';
        $body .= '<p style="color:#b8d0f5;margin:4px 0 0;font-size:13px">Generat de ' . esc_html($org) . '</p>';
        $body .= '</div>';
        $body .= '<div style="background:#fff;border:1px solid #d0daea;border-top:none;padding:24px 30px">';
        $body .= '<p>Stimate contribuabil <strong>' . esc_html($data['denC']) . '</strong>,</p>';
        $body .= '<p>Fișierul XML D177 este atașat la acest email. Urmează pașii de mai jos:</p>';

        $body .= '<table width="100%" cellpadding="0" cellspacing="0">';
        $steps = array(
            array(
                'Descarcă fișierul XML atașat',
                'Salvează fișierul <strong>' . basename($xml_path) . '</strong> pe calculatorul tău'
            ),
            array(
                'Semnează electronic fișierul XML',
                'Aplică semnătura electronică calificată pe fișierul XML folosind software-ul furnizorului tău de certificat digital:<br>
                <ul style="margin:6px 0 0 16px;padding:0;font-size:12px;color:#5a6476">
                    <li><strong>Token fizic (USB):</strong> folosește aplicația certSIGN, DigiSign, Trans Sped sau alfaTRUST, sau Adobe Acrobat cu tokenul conectat</li>
                    <li><strong>Semnătură cloud:</strong> folosește aplicația furnizorului (ex. certSIGN Paperless, DigiSign Cloud) pentru a semna de pe orice dispozitiv</li>
                </ul>'
            ),
            array(
                'Depune XML-ul semnat în SPV',
                'Accesează <a href="https://www.anaf.ro/anaf/internet/RO/spv" style="color:#0F408A"><strong>e-anaf.ro → Spațiul Privat Virtual</strong></a>, autentifică-te cu certificatul digital, mergi la <em>Depunere declarații → D177</em> și încarcă fișierul XML semnat'
            ),
        );
        foreach ( $steps as $i => $step ) {
            $nr = $i + 1;
            $body .= '<tr><td width="44" valign="top" style="padding:8px 0">';
            $body .= '<div style="background:#0F408A;color:#fff;width:30px;height:30px;border-radius:50%;text-align:center;line-height:30px;font-weight:700">' . $nr . '</div>';
            $body .= '</td><td style="padding:8px 0 8px 12px">';
            $body .= '<strong>' . $step[0] . '</strong><br>';
            $body .= '<span style="color:#5a6476;font-size:13px">' . $step[1] . '</span>';
            $body .= '</td></tr>';
        }
        $body .= '</table>';

        $body .= '<div style="background:#fff3cd;border:1px solid #ffc107;padding:12px 16px;border-radius:6px;margin:16px 0;font-size:13px">';
        $body .= '⚠ <strong>' . esc_html($org) . ' nu depune</strong> formularul în numele dumneavoastră.';
        $body .= ' Depunerea la ANAF prin SPV este responsabilitatea societății.';
        $body .= '</div>';

        $body .= '<table width="100%" cellpadding="5" cellspacing="0" border="1" style="border-collapse:collapse;border-color:#d0daea;font-size:13px;margin-top:16px">';
        $body .= '<tr style="background:#f0f5ff"><td width="40%"><strong>Contribuabil</strong></td><td>' . esc_html($data['denC']) . '</td></tr>';
        $body .= '<tr><td><strong>CIF</strong></td><td>' . esc_html($data['cif']) . '</td></tr>';
        $body .= '<tr style="background:#f0f5ff"><td><strong>An fiscal</strong></td><td>' . esc_html($data['an']) . '</td></tr>';
        $body .= '<tr><td><strong>Sumă maximă</strong></td><td>' . number_format($data['sumaMax'], 0, ',', '.') . ' lei</td></tr>';
        $nr_bnf = count($data['beneficiari'] ?? array());
        $body .= '<tr style="background:#f0f5ff"><td><strong>Nr. beneficiari</strong></td><td>' . $nr_bnf . '</td></tr>';
        $body .= '</table>';

        $body .= '</div></div>';

        $headers      = array( 'Content-Type: text/html; charset=UTF-8', "From: $fname <$from>" );
        $attachments = array();
        if ( $xml_path && file_exists($xml_path) ) $attachments[] = $xml_path;
        if ( $pdf_path && file_exists($pdf_path) ) $attachments[] = $pdf_path;
        wp_mail( $data['emailC'], $subject, $body, $headers, $attachments );
    }

    /**
     * Notificare catre admin ONG
     */
    public static function send_admin( $data, $attachments = array() ) {
        $to    = OVPSPO_Settings::get( 'org_email_admin', get_option('admin_email') );
        $from  = OVPSPO_Settings::get( 'org_email_from', get_option('admin_email') );
        $fname = OVPSPO_Settings::get( 'org_email_from_name', get_bloginfo('name') );

        $subject = '[Notificare] Formular D177 nou – ' . ($data['denumire'] ?? $data['denC'] ?? '') . ' (CIF: ' . ($data['cif'] ?? '') . ')';

        $body  = '<div style="font-family:Arial,sans-serif;max-width:640px;margin:0 auto">';
        $body .= '<div style="background:#1a7a42;padding:16px 24px;border-radius:8px 8px 0 0">';
        $body .= '<h2 style="color:#fff;margin:0;font-size:18px">📋 Notificare — Formular D177 nou</h2>';
        $body .= '</div>';
        $body .= '<div style="background:#fff;border:1px solid #d0daea;border-top:none;padding:20px 24px">';
        $body .= '<p>Un nou formular D177 a fost completat.</p>';
        $body .= '<div style="background:#e8f5e9;border-left:4px solid #27ae60;padding:12px 16px;border-radius:4px;margin:16px 0;font-size:13px">';
        $body .= '✅ XML-ul D177 a fost generat și trimis contribuabilului. Contribuabilul îl va depune prin SPV.';
        $body .= '</div>';
        $body .= '<table width="100%" cellpadding="5" cellspacing="0" border="1" style="border-collapse:collapse;border-color:#d0daea;font-size:14px">';
        $body .= '<tr style="background:#f0f5ff"><td width="40%"><strong>Contribuabil</strong></td><td>' . esc_html($data['denumire'] ?? $data['denC'] ?? '') . '</td></tr>';
        $body .= '<tr><td><strong>CIF</strong></td><td>' . esc_html($data['cif'] ?? '') . '</td></tr>';
        $body .= '<tr style="background:#f0f5ff"><td><strong>Email</strong></td><td>' . esc_html($data['email'] ?? '') . '</td></tr>';
        $body .= '<tr><td><strong>An fiscal</strong></td><td>' . esc_html($data['an'] ?? '') . '</td></tr>';
        $body .= '<tr style="background:#f0f5ff"><td><strong>Sumă maximă</strong></td><td>' . number_format($data['suma_max'] ?? $data['sumaMax'] ?? 0, 0, ',', '.') . ' lei</td></tr>';
        $body .= '<tr><td><strong>Beneficiar principal</strong></td><td>' . esc_html($data['bnf_denumire'] ?? '') . '</td></tr>';
        $body .= '<tr style="background:#f0f5ff"><td><strong>Sumă beneficiar</strong></td><td>' . number_format($data['bnf_suma'] ?? 0, 0, ',', '.') . ' lei</td></tr>';
        $body .= '<tr><td><strong>Data completare</strong></td><td>' . current_time('d.m.Y H:i') . '</td></tr>';
        $body .= '</table>';
        $body .= '<p style="font-size:12px;color:#888;margin-top:16px">XML-ul este disponibil și în panoul WordPress → Formulare 177.</p>';
        $body .= '</div></div>';

        $headers = array( 'Content-Type: text/html; charset=UTF-8', "From: $fname <$from>" );
        wp_mail( $to, $subject, $body, $headers, $attachments );
    }
}
} // end class_exists
