<?php

use yii\helpers\Html;
use yii\grid\GridView;
use yii\widgets\ActiveForm; // ¡IMPORTANTE!

/** @var yii\web\View $this */
/** @var app\models\Pedidos $pedido */
/** @var yii\data\ActiveDataProvider $dataProvider */

$this->title = 'Reporte de Precios para el Pedido: ' . $pedido->id;
$this->params['breadcrumbs'][] = ['label' => 'Pedidos', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="pedidos-ver-reporte">

    <!-- Se utiliza una tarjeta (card) para agrupar y estilizar mejor el contenido -->
    <div class="card shadow-sm mb-4">
        <div class="card-header bg-white border-bottom">
            <h1 class="card-title h3 mb-0 text-primary"><?= Html::encode($this->title) ?></h1>
        </div>
        <div class="card-body">
            <div class="row mb-4">
                <div class="col-md-6">
                    <p class="mb-1">
                        <span class="font-weight-bold">Cliente:</span> <?= Html::encode($pedido->cliente->nombre_razon_social) ?>
                    </p>
                </div>
                <div class="col-md-6 text-md-right">
                    <p class="mb-1 text-muted">
                        <span class="font-weight-bold">Fecha de Inicio:</span> <?= Yii::$app->formatter->asDatetime($pedido->fecha_inicio) ?>
                    </p>
                </div>
            </div>

            <!-- Estilo mejorado para el cuadro de información -->
            <div class="alert alert-info border-left-info" role="alert">
                <p class="mb-0"><i class="fas fa-info-circle mr-2"></i>A continuación se muestra el reporte de los 3 últimos precios. Al hacer click en el botón, el sistema generará **automáticamente** los documentos CLAC/TBS para **todos los ítems pendientes**.</p>
            </div>
            
            <?php 
            // INICIO DEL FORMULARIO para enviar la acción por POST
            $form = ActiveForm::begin([
                // Apunta a la acción 'generar-clac' con el ID del pedido.
                'action' => ['pedidos/generar-clac', 'pedido_id' => $pedido->id],
                'method' => 'post',
            ]); 
            ?>

            <div class="table-responsive">
                <?= GridView::widget([
                    'dataProvider' => $dataProvider,
                    'options' => ['class' => 'grid-view custom-grid-view'], // Clase para estilo personalizado
                    'tableOptions' => ['class' => 'table table-hover table-striped table-sm'], // Estilos de Bootstrap
                    'layout' => "{items}\n{pager}", // Quitamos summary para simplificar
                    'columns' => [
                        // LA COLUMNA DE CHECKBOXES SE HA ELIMINADO PARA EL PROCESO AUTOMÁTICO
                        
                        ['class' => 'yii\grid\SerialColumn'],

                        // COLUMNA DE TRAZABILIDAD (CLAC/TBS ASIGNADO)
                        [
                            'label' => 'Documento Asignado',
                            'value' => function ($model) {
                                $numero = $model->documento->numero_documento ?? 'PENDIENTE';
                                $clase = $numero === 'PENDIENTE' ? 'badge badge-warning' : 'badge badge-success';
                                return Html::tag('span', $numero, ['class' => $clase]);
                            },
                            'format' => 'raw',
                        ],
                        
                        [
                            'label' => 'Cód. Producto',
                        'attribute' => 'producto.codigo_producto', 
                        ],
                        [
                            'label' => 'Descripción',
                            'attribute' => 'producto.descripcion', 
                            'contentOptions' => ['style' => 'max-width: 250px; white-space: normal;'], // Mejorar la visualización de descripciones largas
                        ],
                        
                        // --- Precio 1 (El más reciente) ---
                        [
                            'label' => 'Precio 1',
                            'value' => function ($model) {
                                $precio = $model->precio_1;
                                if (empty($precio)) {
                                    return '<span class="text-danger">SIN DATO</span>';
                                }
                                return Yii::$app->formatter->asCurrency($precio);
                            },
                            'contentOptions' => ['style' => 'text-align: right; font-weight: bold;'], // Precio más reciente en negrita
                            'format' => 'raw',
                        ],
                    
                        [
                            'attribute' => 'orden_1',
                            'value' => function ($model) {
                                return $model->orden_1 ?? 'SIN DATO'; 
                            },
                        ],

                        // Columna para FECHA 1
                        [
                            'attribute' => 'fecha_1',
                            'label' => 'Fecha 1', 
                            'value' => function ($model) {
                                $fecha = $model->fecha_1;
                                if (empty($fecha)) {
                                    return 'SIN DATO';
                                }
                                return Yii::$app->formatter->asDate($fecha);
                            },
                        ],
                        // --- Precio 2 ---
                        [
                            'label' => 'Precio 2',
                            'value' => function ($model) {
                                $precio = $model->precio_2;
                                if (empty($precio)) {
                                    return 'SIN DATO';
                                }
                                return Yii::$app->formatter->asCurrency($precio);
                            },
                            'contentOptions' => ['style' => 'text-align: right;'],
                        ],
                    
                        [
                            'attribute' => 'orden_2',
                            'value' => function ($model) {
                                return $model->orden_2 ?? 'SIN DATO'; 
                            },
                        ],

                        [
                            'attribute' => 'fecha_2',
                            'label' => 'Fecha 2', 
                            'value' => function ($model) {
                                $fecha = $model->fecha_2;
                                if (empty($fecha)) {
                                    return 'SIN DATO';
                                }
                                return Yii::$app->formatter->asDate($fecha);
                            },
                        ],
                        // Precio 3
                        [
                            'label' => 'Precio 3',
                            'value' => function ($model) {
                                $precio = $model->precio_3;
                                if (empty($precio)) {
                                    return 'SIN DATO';
                                }
                                return Yii::$app->formatter->asCurrency($precio);
                            },
                            'contentOptions' => ['style' => 'text-align: right;'],
                        ],
                    
                        [
                            'attribute' => 'orden_3',
                            'value' => function ($model) {
                                return $model->orden_3 ?? 'SIN DATO'; 
                            },
                        ],

                        // Columna para FECHA 3
                        [
                            'attribute' => 'fecha_3',
                            'label' => 'Fecha 3',
                            'value' => function ($model) {
                                $fecha = $model->fecha_3;
                                if (empty($fecha)) {
                                    return 'SIN DATO';
                                }
                                return Yii::$app->formatter->asDate($fecha);
                            },
                        ],
                    ],
                ]); ?>
            </div>

            <hr class="my-4">
            
            <div class="form-group text-center">
                <?php 
                // Usa Html::submitButton para enviar el formulario. Se cambió el estilo a btn-primary
                echo Html::submitButton('Paso 3: Generar Documentos CLAC/TBS Automáticamente', [
                    'class' => 'btn btn-primary btn-lg shadow', // Nuevo estilo
                    'data' => [
                        'confirm' => '¿Está seguro de que desea generar los documentos CLAC/TBS para TODOS los ítems PENDIENTES? Se crearán grupos de 20 por documento.',
                    ],
                ]) 
                ?>
            </div>

            <?php ActiveForm::end(); // FIN DEL FORMULARIO ?>

        </div>
    </div> <!-- Fin de la card -->
</div>

<!-- Estilos CSS adicionales para mejorar la apariencia (asumiendo Bootstrap) -->
<style>
    .card {
        border-radius: 0.5rem;
        border: 1px solid #e0e0e0;
    }
    .card-header {
        border-bottom: 1px solid #e0e0e0 !important;
    }
    .text-primary {
        color: #007bff !important; /* Color azul de Bootstrap */
    }
    .font-weight-bold {
        font-weight: 600;
    }
    .badge {
        font-size: 85%;
        padding: .4em .6em;
    }
    .badge-warning {
        background-color: #ffc107;
        color: #343a40;
    }
    .badge-success {
        background-color: #28a745;
        color: #fff;
    }
    /* Estilo para el alert-info con borde lateral */
    .border-left-info {
        border-left: 5px solid #17a2b8;
    }
    .custom-grid-view th {
        background-color: #f8f9fa; /* Fondo gris claro para encabezados */
        border-bottom: 2px solid #dee2e6;
        vertical-align: middle;
    }
    .custom-grid-view td {
        vertical-align: middle;
    }
    .btn-primary.shadow {
        box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
        transition: all 0.15s ease;
    }
    .btn-primary.shadow:hover {
        box-shadow: 0 7px 14px rgba(50, 50, 93, 0.1), 0 3px 6px rgba(0, 0, 0, 0.08);
        transform: translateY(-1px);
    }
</style>
