@extends('header_nuevo_generico')
@section('main')
<div class="container mt-5 pt-5">
    <h3 class="text-center my-4">Alta Masiva de Contrapartes</h3>
    <p>Consideraciones:</p>
    <small class="text-muted">El archivo cargado debe ser de tipo .txt</small><br>
    <small class="text-muted">Cada contraparte debe estar separado por un salto de linea y su identificacion debe ser si o si un TAX ID correspondiente al país.</small><br>
    <small class="text-muted">Cada contraparte debe tener los siguientes datos SEPARADOS POR COMAS, primero los datos obligatorios y luego los no obligatorios, respetando el orden de cada dato:</small><br><br>
    <small class="">OBLIGATORIOS: taxid de la contraparte</small><br>
    <small class="text-muted">NO OBLIGATORIOS: razon social/nombre de la contraparte, nombre de contacto, apellido de contacto, telefono de contacto, email de contacto, referencia, fecha (para límite de crédito o dependencia económica), moneda, monto</small><br><br>
    <small class="text-danger">Si faltara algún dato OBLIGATORIOS se salteará esa contraparte y seguirá con la siguiente que sí tenga los datos mínimos OBLIGATORIOS</small><br><br>
    <p>Ejemplo:</p>
    <ul>
        <li>20336165009 => <i>Sin datos No Obligatorios</i></li>
        <li>27948823131,ANLLY MARYOLY SALAZAR CASAS,ANLLY MARYOLY,SALAZAR CASAS,1158233148,anlly.salazar@fidelitas.com.ar,6664-agd6,2024-06-21,usd,1000 => <i>Con datos No Obligatorios</i></li>
    </ul>

    <form id="frmAltaMasiva">
        {{ csrf_field() }}
        <div class="row my-3">
            <div class="col-2">
                <label for="" class="form-label">Cliente</label>
                <select name="cliente" id="cliente" class="form-select">
                    <option value="0">Seleccione Cliente...</option>
                    @foreach ($clientes as $cli)
                    <option value="{{$cli->cliente}}">{{$cli->nombre_cliente}} (Cod. {{$cli->cli_codigo}})</option>
                    @endforeach
                </select>
            </div>
            <div class="col-2">
                <label for="" class="form-label">Familia</label>
                <select name="familia" id="familia" class="form-select">
                    <option value="">Seleccione familia...</option>
                </select>
            </div>
            <div class="col-2">
                <label for="pais" class="form-label">Pais</label>
                <select name="pais" id="pais" class="form-select">
                    <option value="0">Seleccione país...</option>
                    @foreach ( $country as $p ) 
                        <option value="{{$p->country_code}}">{{$p->country_name}}</option>
                    @endforeach
                </select>
            </div>
            <div class="col-4">
                <label for="file" class="form-label">Lista de altas</label>
                <input type="file" name="file" id="file" class="form-control" accept=".txt">
            </div>
        </div>
        <div class="row my-3 pt-3">
            <p class="text-muted">No Obligatorios</p>
            <div class="col-2">
                <label for="idioma" class="form-label">idioma</label>
                <select name="idioma" id="idioma" class="form-select">
                    <option value="spa" selected>Español</option>
                    <option value="eng">Inglés</option>
                    <option value="por">Portugués</option>
                </select>
            </div>
            <div class="col-2">
                <label for="solicitante" class="form-label">Solicitado por</label>
                <select name="solicitante" id="solicitante" class="form-select">
                    <option value="">Seleccione solicitante...</option>
                </select>
            </div>
            <div class="col-2">
                <label for="sector" class="form-label">Sector</label>
                <select name="sector" id="sector" class="form-select">
                    <option value="">Seleccione sector...</option>
                </select>
            </div>
        </div>
        <div class="row justify-content-end">
            <div class="col-2 text-end">
                <button type="button" class="btn btn-sm btn-fidelitas" id="alta_masiva">Alta Masiva</button>
            </div>
        </div>
        <div id="gestiones_clientes" class="d-none pt-5">
            <table id="tabla_gestiones" class="d-none table">
                <thead>
                    <th>Nombre</th>
                    <th>ID Gestion</th>
                    <th>CUIL</th>
                    <th>País</th>
                    <th>Fecha</th>
                    <th>Familia</th>
                    <th>Teléfono</th>
                    <th>Email</th>
                </thead>
                <tbody id="data_gestiones"></tbody>
            </table>
            <div id="gestiones_cargando" class="d-none text-center text-fidelitas pt-5"><div class="spinner-border" role="status"></div></div>
            <div id="sin_gestiones" class="d-none text-muted text-center pt-5">No registran búsquedas con los parámetros seleccionados</div>
        </div>
        <div id="error_alta" class="d-none text-danger text-center pt-5">No estan todos los parámetros seleccionados para realizar el Alta Masiva</div>
    </form>
</div>
<!--  -->
<div id="modalConfirmarAltaMasiva" class="modal fade" data-bs-backdrop="static">
    <div class="modal-dialog modal-xl">
        <div class="modal-content">
            <div class="modal-header">
                <h3 class="modal-title" id="modal_title">Confirme Alta Masiva</h3>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-hidden="true"></button>
            </div>
            <div class="modal-body" id="modal_body">
                <div class="row justify-content-center">
                    <div class="col-10">

                        <p>Esta a punto de dar de alta masivamente las contrapartes abajo listadas, si está seguro que los datos están de manera correcta por favor confirme la acción y espere a que finalice. </p>
                        <p>Una vez creados no se puede deshacer la acción.</p>
                        <p>Cantidad de contrapartes: <span id="cantidad_contrap"></span> </p>
                        <div id="alta_masiva_cargando" class="d-none text-center text-fidelitas pt-5"><div class="spinner-border" role="status"></div></div>

                        <div id="alta_masiva_exito" class="d-none text-success text-center py-4">El Alta Masiva de contrapartes se realizó de manera correcta todos los registros. Recargando página...</div>
                        <div id="alta_masiva_error" class="d-none text-danger text-center py-4">Ocurrió un error en el proceso de Alta Masiva, espere unos segundos e intente cargar nuevamente...</div>

                        <div id="carga_parcial" class="d-none pt-5">
                            <hr>
                            <div>
                                No todas las contrapartes se cargaron correctamente porque alguno de los datos no son correctos, se pudieron dar de alta <b><span class="text-success" id="num_contrap_alta"></span> contrapartes</b> mientras que las siguientes <span class="text-danger" id="num_contrap_temp"></span> contrapartes no se pudieron cargar: <br><br>
                                
                                <div id="lista_contrap_no_cargadas">

                                </div> <br>
                                Por favor verifique los datos del archivo, corrijalos según las consideraciones dadas e intente nuevamente cargando el archivo modificado. Si se cargaron contrapartes recomendamos intentar descartar las contrapartes ya cargadas puesto que generaría reistros duplicados.
                            </div>
                        </div>
                        <div class="d-none" id="temporal">
                            Contrapartes de la familia que están en la lista de temporales que no fueron dados de alta:
                            <div id="lista_contrap_temp">

                            </div> <br>
                        </div>
                        <table id="tabla_contrap" class="d-none table">
                            <thead>
                                <th>Nombre Completo</th>
                                <th>ID</th>
                                <th>Teléfono</th>
                                <th>Mail</th>
                                <th>Fecha (Dep o LimCred)</th>
                                <th>Moneda</th>
                                <th>Monto</th>
                            </thead>
                            <tbody id="data_contrap"></tbody>
                        </table>
                        <div id="contrap_cargando" class="d-none text-center text-fidelitas pt-5"><div class="spinner-border" role="status"></div></div>
                        <div id="sin_contrap" class="d-none text-muted text-center pt-5">El archivo no contiene contrapartes válidas</div>
                    </div>
                    <div class="col-2 text-end">
                        <button type="button" class="btn btn-sm btn-fidelitas disabled" id="conf_alta_masiva">Confirmar Alta Masiva</button>
                        <button type="button" class="btn btn-sm btn-secondary mt-3 disabled" id="alta_masiva_temp">Alta Masiva de temp</button>
                    </div>
                    <div class="row justify-content-center pt-3">
                        <div class="col-12 text-center">
                            
                            <!-- <div id="carga_exitosa" class="d-none text-success text-center pt-5">Se cargaron correctamente todas las contrapartes. Redirigiendo...</div> -->

                        </div>

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

@section('funcionesJS')
<script language="javascript" type="text/javascript">
    $(document).ready(function() {
        $('#frmAltaMasiva')[0].reset();
        // $('#familia').empty();
        $('#tipo_informe').empty();
        $('#data_gestiones').empty();
        $(document).on('change',"#cliente",function(e){
            e.preventDefault();
            $.ajax({
                method: "POST",
                url: "/data-familias-cliente", 
                data: $('#frmAltaMasiva').serialize(), 
                beforeSend: function(){
                    $('#familia').empty();
                    $('#data_gestiones').empty();
                },
                success: function(familias){
                    $('#familia').html('<option value="">Seleccione familia...</option>');
                    for ( fam of familias) {
                        $('#familia').append('<option value="'+fam.familia+'" data-pais="'+fam.country_code+'">'+fam.nombre_familia+'</option>');

                    }
                },
                error: function(err){ 
                    mensaje('Error en la Busqueda');  
                }
            });
            $.ajax({
                method:'post',
                url:'/blue/servicios-contratados-contrapartes/reports-solicitantes-informe',
                data:{'_token':$('#frmAltaMasiva [name="_token"]').val(), 'cliente':$(this).val()},
                success: function(resp){
                    $('#solicitante').html('<option value="">Seleccione solicitante...</option>');
                    solicitantes = JSON.parse(resp);
                    for ( sol of solicitantes) {
                        $('#solicitante').append('<option value="'+sol.user_id+'">'+sol.first_name+' '+sol.last_name+'</option>');
                    }
                }
            })
            $.ajax({
                method:'post',
                url:'/data-sector-cliente',
                data:{'_token':$('#frmAltaMasiva [name="_token"]').val(), 'cliente':$(this).val()},
                success: function(sectores){
                    $('#sector').html('<option value="">Seleccione sector...</option>');
                    for ( sec of sectores) {
                        $('#sector').append('<option value="'+sec.idReg+'">'+sec.nombre_largo+' - '+sec.country_code+'</option>');
                    }
                }
            })
        });

        $(document).on('change','#familia',function(e){
            e.preventDefault();
            for (opt of $(this)[0].options) {
                if (opt.selected) {
                    $('#pais').val(opt.getAttribute('data-pais'));
                }
            }
        })

        $(document).on('change','#file',function(e){
            e.preventDefault();
            let formulario = new FormData(document.getElementById('frmAltaMasiva'));
            $.ajax({
                method: 'POST',
                url: '/guardar-archivo-alta-masiva',
                cache: false,
                processData: false,
                contentType: false,
                data: formulario,
                dataType: 'json',
                beforeSend: function(){
                    $('#data_contrap').empty();
                    $('#contrap_cargando').removeClass('d-none');
                    $('#tabla_contrap').addClass('d-none');
                    $('#lista_contrap_temp').empty();
                    $('#temporal').addClass('d-none');
                },
                success: function(contrapartes){
                    $('#contrap_cargando').addClass('d-none');
                    if (contrapartes[0].length > 0) {
                        $('#cantidad_contrap').html(contrapartes[0].length)
                        for (contrap of contrapartes[0]) {
                            contrap.tel = (contrap.tel != null) ? contrap.tel : '';
                            contrap.mail = (contrap.mail != null) ? contrap.mail : '';
                            contrap.fecha_dep_limcred = (contrap.fecha_dep_limcred != null) ? contrap.fecha_dep_limcred : '';
                            contrap.moneda = (contrap.moneda != null) ? contrap.moneda : '';
                            contrap.monto = (contrap.monto != null) ? contrap.monto : '';
                            let row = '<tr>';
                            row += '<td>'+contrap.razon_social+'</td>';
                            row += '<td>'+contrap.taxid+'</td>';
                            row += '<td>'+contrap.tel+'</td>';
                            row += '<td>'+contrap.mail+'</td>';
                            row += '<td>'+contrap.fecha_dep_limcred+'</td>';
                            row += '<td>'+contrap.moneda+'</td>';
                            row += '<td>'+contrap.monto+'</td>';
                            row += '</tr>';
                            $('#data_contrap').append(row);
                        }

                        $('#tabla_contrap').removeClass('d-none');
                        $('#conf_alta_masiva').removeClass('disabled');

                    } else {
                        $('#sin_contrap').removeClass('d-none');
                    }
                    if (contrapartes[1].length > 0) {
                        $('#temporal').removeClass('d-none');
                        let row = '<ul class="text-danger">';
                        for (let i = 0; i < contrapartes[1].length; i++) {
                            row += '<li>'+contrapartes[1][i].razon_social+' - '+contrapartes[1][i].taxid+' - '+contrapartes[1][i].pais_taxid+'</li>';
                        }
                        row += '</ul>';
                        $('#lista_contrap_temp').html(row);
                        // $('#carga_parcial').removeClass('d-none');
                        $('#alta_masiva_temp').removeClass('disabled');
                    }
                }
            })
        })

        $(document).on('click',"#alta_masiva",function(e){
            $('#error_alta').addClass('d-none');
            $('#alta_masiva_exito').addClass('d-none');
            $('#sin_contrap').addClass('d-none');
            $('#carga_parcial').addClass('d-none');
            $('#alta_masiva_error').addClass('d-none');
            $('#alta_masiva_temp').addClass('disabled');
            if ($('#cliente').val() != 0 && $('#familia').val() != 0 && $('#file')[0].files.length > 0 ) {
                // $('#cantidad_informes').html($('#frmAltaMasiva [name="gestiones[]"]').length);

                // $('#alta_masiva_temp').addClass('d-none');
                $('#modalConfirmarAltaMasiva').modal('show');
                $('#alta_masiva_exito').addClass('d-none');
                $('#sin_contrap').addClass('d-none');
                $('#carga_parcial').addClass('d-none');
                
            } else {
                $('#error_alta').removeClass('d-none');
                setTimeout(() => {
                $('#error_alta').addClass('d-none');
                    
                }, 3500);
            }
        });
        $('#conf_alta_masiva').on('click',function(){
            let formulario = new FormData(document.getElementById('frmAltaMasiva'));
            $.ajax({
                method: 'POST',
                url: '/alta-masiva-contrap',
                cache: false,
                processData: false,
                contentType: false,
                data: formulario,
                dataType: 'json',
                beforeSend: function(){
                    $('#alta_masiva_exito').addClass('d-none');
                    $('#sin_contrap').addClass('d-none');
                    $('#carga_parcial').addClass('d-none');
                    $('#alta_masiva_cargando').removeClass('d-none');
                    $('#alta_masiva_error').addClass('d-none');
                    $(this).addClass('disabled');
                },
                success: function(resp){
                    $('#alta_masiva_temp').removeClass('d-none');
                    $('#conf_alta_masiva').addClass('disabled');
                    $('#alta_masiva_cargando').addClass('d-none');
                    if (resp.length > 0) {
                        if (resp[0].total_procesado == 0 && resp[0].total_no_procesado == 0) {
                            $('#alta_masiva_exito').removeClass('d-none');
                            $('#frmAltaMasiva')[0].reset();
                            setTimeout(() => {
                                // window.location.replace('/');
                                $('#modalConfirmarAltaMasiva').modal('hide');
                            }, 3000);
                        } else {
                            $('#num_contrap_alta').html(resp[0].total_procesado);
                            $('#num_contrap_temp').html(resp[0].total_no_procesado);
                            let row = '<ul class="text-danger">';
                            for (let i = 1; i < resp.length; i++) {
                                row += '<li>'+resp[i].taxid+' - '+resp[i].razon_social+' - '+resp[i].pais_taxid+'</li>';
                            }
                            row += '</ul>';
                            $('#lista_contrap_no_cargadas').html(row);
                            $('#carga_parcial').removeClass('d-none');
                            $('#alta_masiva_temp').removeClass('disabled');

                        }
                    // if (resp[0].total_procesado != undefined) {
                    } else {
                        $('#alta_masiva_error').removeClass('d-none');
                        $('#frmAltaMasiva')[0].reset();
                        setTimeout(() => {
                            // window.location.replace('/');
                            $('#modalConfirmarAltaMasiva').modal('hide');
                        }, 5000);
                    }
                }
            });
        });
        $('#alta_masiva_temp').on('click',function(e){
            e.preventDefault();
            $.ajax({
                method:'post',
                url:'/ejecutar-alta-masiva-temp',
                data:{ _token: $('#frmAltaMasiva [name="_token"]').val(), cliente: $('#frmAltaMasiva [name="cliente"]').val(), familia:$('#frmAltaMasiva [name="familia"]').val() },
                success: function(resp){

                    if (resp.length > 0) {
                    // if (resp[0].total_procesado != undefined) {
                        $('#num_contrap_alta').html(resp[0].total_procesado);
                        let row = '<ul class="text-danger">';
                        for (let i = 0; i < resp.length; i++) {
                            if (i == 0) {
                                continue;
                            } else {
                                row += '<li>'+resp[i].taxid+' - '+resp[i].razon_social+'</li>';
                            }
                        }
                        row += '</ul>';
                        $('#lista_contrap_no_cargadas').html(row);
                        $('#carga_parcial').removeClass('d-none');
                    } else {
                        $('#alta_masiva_exito').removeClass('d-none');
                        $('#frmAltaMasiva')[0].reset();
                        setTimeout(() => {
                            // window.location.replace('/');
                            $('#modalConfirmarAltaMasiva').modal('hide');
                        }, 3000);
                    }
                }
            })
        })
        
	}); 
</script>
@endsection