<div class="accordion accordion-bordered mt-3" id="cabeceraFactura">

    <div class="card accordion-item active">
        <h2 class="accordion-header" id="headingFacturas">
            <button type="button" class="accordion-button" data-bs-toggle="collapse" data-bs-target="#accordionFacturaTip" aria-expanded="false" aria-controls="accordionFacturaTip">
                <h3><?= lang("Facturas.datosFactura") ?></h3>
            </button>
        </h2>

        <div id="accordionFacturaTip" class="accordion-collapse collapse show" data-bs-parent="#accordioFactura">
            <div class="accordion-body">

                <div class="row">
                    <h4><?= lang('Facturas.factura') . ': '?>  
                        <span style="color:<?=($facturaEntity->estado === 'borrador')?"red":"green"?>;"> <?= lang('Facturas.' . $facturaEntity->estado)?></span> 
                        <span class="factura-validada"> <?=  ($facturaEntity->estado != 'borrador')? " / ":""?></span>
                        <span id="estado_pago_text" class="factura-validada" style="color:<?=($facturaEntity->estado_pago === 'pendiente')?"red":"green"?>;<?=  ($facturaEntity->estado == 'borrador')? "display:none;":""?>"> <?= lang('Facturas.' . $facturaEntity->estado_pago)?></span>                      
                    </h4>        
                </div>
                <div class="row mb-2">

                    <div class="col-md-12 col-lg-2 px-4">
                        <?php if ($facturaEntity->estado === 'borrador') : ?>
                            <div class="mb-1">
                                <label for="id" class="form-label">
                                    <?= lang('Facturas.id') ?>
                                </label>
                                <input disabled id="id" name="id" tabindex="1" maxLength="11" class="form-control" value="<?= old('id', $facturaEntity->id) ?>" >
                            </div>
                        <?php else : ?>
                            <div class="mb-1">
                                <label for="id" class="form-label">
                                    <?= lang('Facturas.numeroFactura') ?>
                                </label>
                                <input disabled id="numero" name="numero" tabindex="1" maxLength="11" class="form-control" value="<?= old('numero', $facturaEntity->numero) ?>" >
                            </div>
                        <?php endif; ?>
                    </div>

                    <?php if(!(auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))) : ?>
                    <div class="col-md-12 col-lg-2 px-4">
                        <div class="mb-1">
                            <label for="serie_id" class="form-label">
                                <?= lang('Facturas.serieFacturacion') ?>
                            </label>
                            <select <?= ($facturaEntity->estado != 'borrador')?'disabled ':''?> id="serie_id" tabindex="2" name="serie_id" class="form-control select2bs2 update-cabecera" style="width: 100%;">
                                <option value="<?= old('serie_id', $facturaEntity->serie_id) ?>" selected><?= old('serie_nombre', $facturaEntity->serie_nombre) ?></option>
                            </select>
                        </div>
                    </div><!--//.mb-3 -->
                    


                    <div class="col-md-12 col-lg-2 px-4">
                        <div class="mb-1">
                            <label for="creditoAsegurado" class="form-label">
                                <?= lang('Facturas.creditoAsegurado') ?>
                            </label>
                            <select <?= ($facturaEntity->estado != 'borrador')?'disabled ':''?> id="creditoAsegurado" tabindex="3" name="creditoAsegurado" class="form-control select2bs2 update-cabecera" style="width: 100%;">
                                <option value="0" <?= ($facturaEntity->creditoAsegurado == 0)?'selected':'' ?>> <?= lang('Basic.global.no') ?> </option>
                                <option value="1" <?= ($facturaEntity->creditoAsegurado == 1)?'selected':'' ?>> <?= lang('Basic.global.yes') ?> </option>
                            </select>
                        </div>
                    </div><!--//.mb-3 -->
                    <?php endif; ?>


                    <div class="col-md-12 col-lg-2 px-4">                        
                        <div class="mb-1">
                            <label for="fecha_factura_at" class="form-label">
                                <?= lang('Facturas.fechaFactura') ?>
                            </label>
                            <input <?= ($facturaEntity->estado != 'borrador')?'disabled ':''?> type="text" value="" tabindex="4" id="fecha_factura_at" name="fecha_factura_at" tabindex="1" maxLength="11" class="form-control update-cabecera" value="<?= old('fecha_factura_at', $facturaEntity->fecha_factura_at) ?>" >
                        </div>
                    </div>


                    <?php if(!(auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))) : ?>
                    <div class="col-md-12 col-lg-4 px-4">
                        <div class="mb-1">
                            <label for="cliente_id" class="form-label">
                                <?= lang('Facturas.cliente') ?>
                                <div class="btn-group btn-group-sm">
                                    <a href="<?= route_to('editarCliente', $facturaEntity->cliente_id); ?>" target="_blank" ><i class="ti ti-file-search ti-sm btn-edit mx-2" data-id="${data.id}"></i></a>
                                </div>
                            </label>
                            <select <?= ($facturaEntity->estado != 'borrador')?'disabled ':''?> id="cliente_id" tabindex="5" name="cliente_id" class="form-control select2bs2  update-cabecera" style="width: 100%;">
                                <option value="<?= old('cliente_id', $facturaEntity->cliente_id) ?>" selected><?= old('cliente_alias', $facturaEntity->cliente_alias) ?></option>
                            </select>
                        </div>
                    </div><!--//.mb-3 -->
                    <?php endif; ?>
                    
                </div><!--//.row -->

                
                <div class="row mb-2">

                    <div <?= ($facturaEntity->serie_id == 7 || $facturaEntity->serie_id == 9 || $facturaEntity->factura_rectificada_id != null) ? "":"style='display:none;'" ?> class="col-md-12 col-lg-2 px-4 factura-R">
                        <div class="mb-1">
                            <label for="facturaR" class="form-label factura-R">
                                <?= ($facturaEntity->factura_rectificada_id != null) ? lang('Facturas.facturaRectificada') : lang('Facturas.facturaRectificativa') ?>:
                            </label>
                            <input <?= ($facturaEntity->estado!='borrador')? "disabled":"" ?> id="facturaR" name="<?= ($facturaEntity->factura_rectificada_id != null) ? 'factura_rectificada_id' : 'factura_rectificativa_id' ?>" tabindex="" maxLength="25" class="form-control update-cabecera factura-R" 
                                
                                <?php if($facturaEntity->factura_rectificada_id == null && $facturaEntity->factura_rectificativa_id == null): ?>
                                    value="" 
                                <?php else: ?>
                                    value="<?= ($facturaEntity->factura_rectificada_id != null) ? old('factura_rectificada_id', $facturaEntity->factura_rectificada_id): old('factura_rectificativa_id', $facturaEntity->factura_rectificativa_id)?>" 
                                <?php endif; ?>    
                            >
                        </div>
                    </div>
                    
                    <div id="div_cliente" class="col-md-12 col-lg-<?= ($facturaEntity->factura_rectificada_id != null || $facturaEntity->factura_rectificativa_id != null)?"4":"6" ?> px-4">
                        <div class="mb-1">
                            <label for="cliente_nombre" class="form-label">
                                <?= lang('Facturas.razonSocial') ?>
                            </label>
                            <input <?= ($facturaEntity->estado != 'borrador')?'disabled ':''?> id="cliente_nombre" name="cliente_nombre" tabindex="6" class="form-control update-cabecera" value="<?= old('cliente_nombre', $facturaEntity->cliente_nombre) ?>"></input>
                        </div>
                    </div>

                    <div class="col-md-12 col-lg-3 px-4">
                        <div class="mb-1">
                            <label for="cliente_cif" class="form-label">
                                <?= lang('Facturas.cif') ?>
                            </label>
                            <input <?= ($facturaEntity->estado != 'borrador')?'disabled ':''?> id="cliente_cif" name="cliente_cif" tabindex="7" class="form-control update-cabecera" value="<?= old('cliente_cif', $facturaEntity->cliente_cif) ?>"></input>
                        </div>
                    </div>

                    <div class="col-md-12 col-lg-3 px-4">
                        <div class="mb-1">
                            <label for="cliente_pais" class="form-label">
                                <?= lang('Facturas.pais') ?>
                            </label>
                            <input <?= ($facturaEntity->estado != 'borrador')?'disabled ':''?> id="cliente_pais" name="cliente_pais" tabindex="8" class="form-control update-cabecera" value="<?= old('cliente_pais', $facturaEntity->cliente_pais) ?>"></input>
                        </div>
                    </div>

                </div><!--//.row -->

                <div class="row mb-3">

                    <div class="col-md-12 col-lg-4 px-4">
                        <div class="mb-1">
                            <label for="cliente_direccion" class="form-label">
                                <?= lang('Facturas.direccion') ?>
                            </label>
                            <input <?= ($facturaEntity->estado != 'borrador')?'disabled ':''?> id="cliente_direccion" name="cliente_address" tabindex="6" class="form-control update-cabecera" value="<?= old('cliente_address', $facturaEntity->cliente_address) ?>"></input>
                        </div>
                    </div>

                    <div class="col-md-12 col-lg-2 px-4">
                        <div class="mb-1">
                            <label for="cliente_cp" class="form-label">
                                <?= lang('Facturas.cp') ?>
                            </label>
                            <input <?= ($facturaEntity->estado != 'borrador')?'disabled ':''?> id="cliente_cp" name="cliente_cp" tabindex="7" class="form-control update-cabecera" value="<?= old('cliente_cp', $facturaEntity->cliente_cp) ?>"></input>
                        </div>
                    </div>

                    <div class="col-md-12 col-lg-3 px-4">
                        <div class="mb-1">
                            <label for="cliente_ciudad" class="form-label">
                                <?= lang('Facturas.localidad') ?>
                            </label>
                            <input <?= ($facturaEntity->estado != 'borrador')?'disabled ':''?> id="cliente_ciudad" name="cliente_ciudad" tabindex="8" class="form-control update-cabecera" value="<?= old('cliente_ciudad', $facturaEntity->cliente_ciudad) ?>"></input>
                        </div>
                    </div>

                    <div class="col-md-12 col-lg-3 px-4">
                        <div class="mb-1">
                            <label for="cliente_provincia" class="form-label">
                                <?= lang('Facturas.provincia') ?>
                            </label>
                            <input <?= ($facturaEntity->estado != 'borrador')?'disabled ':''?> id="cliente_provincia" name="cliente_provincia" tabindex="8" class="form-control update-cabecera" value="<?= old('cliente_provincia', $facturaEntity->cliente_provincia) ?>"></input>
                        </div>
                    </div>

                </div><!--//.row -->

                <div class="row">

                    <div class="col-md-12 col-lg-12 px-4">
                        <div class="pt-4">

                            <?php if ($facturaEntity->estado === 'validada' && (auth()->user()->inGroup('beta') || auth()->user()->inGroup('admin'))) : ?>
                                <button  
                                        type="button"
                                        class="btn btn-label-danger float-start me-sm-3 me-1"
                                        name="editarValidada"
                                        id="editarValidada" >
                                    <span class="ti-xs ti ti-save me-1"></span>    
                                    <?= lang("Basic.global.edit") ?>
                                </button>
                            <?php endif; ?>

                            <?= anchor(
                                route_to("lineasToExcel", $facturaEntity->id),
                                '<span class="ti-xs ti ti-file-spreadsheet me-1"></span>' .
                                lang("Facturas.exportarLineas"),
                                [
                                    "class" => "btn btn-label-primary float-start me-sm-3 me-1",
                                ]
                            ) ?>

                            <?php if(!(auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))) : ?>
                            <button  
                                    type="button"
                                    class="btn btn-label-primary float-start me-sm-3 me-1"
                                    name="duplicar"
                                    id="duplicar" >
                                <span class="ti-xs ti ti-copy me-1"></span>    
                                <?= lang("Facturas.duplicar") ?>
                            </button>
                            <?php endif; ?>
                        </div>
                    </div>  

                </div>

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


<?=$this->section('additionalInlineJs') ?>

$("#fecha_factura_at").flatpickr({
    defaultDate: <?= $facturaEntity->fecha_factura_at_text ? "'".$facturaEntity->fecha_factura_at_text."'" : 'null' ?>,
    dateFormat: "d/m/Y",
    locale: {
        firstDayOfWeek: 1,
        weekdays: {
          shorthand: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sa'],
          longhand: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],         
        }, 
        months: {
          shorthand: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Оct', 'Nov', 'Dic'],
          longhand: ['Enero', 'Febreo', 'Мarzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
        },
      },
    onChange: function(selectedDates, dateStr, instance) {
        <?php if ($facturaEntity->estado == 'borrador'): ?>
            updateDate('fecha_entrega_at', dateStr);
        <?php endif; ?>
    }
});


function updateDate(elementId, dateStr) {
    var id = <?=$facturaEntity->id ?>;
    
    data = {
        <?= csrf_token() ?? "token" ?>: <?= csrf_token() ?>v,
    };
    var parts = dateStr.split('/');
    var newFormat = parts[2] + '-' + parts[1] + '-' + parts[0]; // Asume dateStr en formato d/m/Y.

    data[elementId] = newFormat;

    var url = '<?= route_to('actualizarFactura', ':id') ?>'; 
    url = url.replace(':id', id );

    $.ajax({
        url: url,
        type: 'POST',
        data: data,
        success: function(response){
            
            if('error' in response){
                
            }
        }
    });
}

$('#serie_id').select2({
    allowClear: false,
    minimumResultsForSearch: -1,
    ajax: {
        url: '<?= route_to("menuItemsOfSeriesFacturas") ?>',
        type: 'post',
        dataType: 'json',

        data: function(params) {
            return {
                id: 'id',
                text: 'nombre',
                searchTerm: params.term,
                <?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
            };
        },
        delay: 60,
        processResults: function(response) {
            yeniden(response.<?= csrf_token() ?>);
            return {
                results: response.menu
            };
        },
        cache: true
    }
});

$('#cliente_id').select2({
    allowClear: false,
    ajax: {
        url: '<?= route_to("menuItemsOfClientes") ?>',
        type: 'post',
        dataType: 'json',

        data: function(params) {
            return {
                id: 'id',
                text: 'alias',
                searchTerm: params.term,
                <?= csrf_token() ?? "token" ?> : <?= csrf_token() ?>v
            };
        },
        delay: 60,
        processResults: function(response) {
            yeniden(response.<?= csrf_token() ?>);
            return {
                results: response.menu
            };
        },
        cache: true
    }
});


$('#editarValidada').on('click', function(){

    $('.update-cabecera').prop('disabled', false);    
});


$('#duplicar').on('click', function() {
    var id = <?=$facturaEntity->id ?>;
    var url = '<?= route_to('duplicarFactura', ':id') ?>'; 
    url = url.replace(':id', id );
    $.ajax({
        url: url,
        type: 'POST',
        data: {
            <?= csrf_token() ?? "token" ?>: <?= csrf_token() ?>v,
        },
        success: function(response){
            if('error' in response){
                
            } else {
                var url = '<?= route_to('editarFactura', ':id') ?>';
                url = url.replace(':id', response.id);

                window.location.href = url;
            }
        }
    });
});


$(".update-cabecera").on("change", function(){

    if($(this).attr('id') == 'serie_id'){
        var id = $(this).val();
        if(id == 7 || id == 9){
            // se muestra el campo de factura rectificada que tiene como clase factura-R
            $('.factura-R').show();
            $('#div_cliente').removeClass('col-lg-6').addClass('col-lg-4');
        } else {
            // se oculta el campo de factura rectificada
            $('.factura-R').hide();
            $('#div_cliente').removeClass('col-lg-4').addClass('col-lg-6');
        }
    }
    
    $.ajax({
        url: '<?= route_to('updateCabecera', $facturaEntity->id) ?>',
        type: 'POST',
        data: {
            <?= csrf_token() ?? "token" ?>: <?= csrf_token() ?>v,
            name: this.name,
            value: $(this).val()
        },
        success: function(response){
            if('error' in response){
                
            }
        }
    });
});

<?=$this->endSection() ?>