const {
    style
} = require('./style')
const {
    HEADER
} = require('../global/header')


const validaciones = [
    //   'NOMBRE_EMPRESA',  
    //   'NOMBRE_SUCURSAL',
    //   'TITULO_ARCHIVO',

    //   'NUMERO_CLIENTE',
    //   'NUMERO_CREDITO',
    //   'NOMBRE_EJECUTIVO',
    //   'FECHA_ACTUALIZACION',

    //   'NOMBRE_CLIENTE',
    //   'NACIONALIDAD_CLIENTE',
    //   'ENTIDIAD_FEDERATIVA_NACIMIENTO_CLIENTE',
    //   'PAIS_NACIMIENTO_CLIENTE',
    //   'GENERO_CLIENTE',
    //   'GIRO_NEGOCIO_CLIENTE',
    //   'RFC_CLIENTE',
    //   'NUMERO_DE_TELEFONO_CLIENTE',
    //   'CORREO_ELECTRONICO',
    //   'SERIE_FIRMA_ELECTRONICA_CLIENTE',
    //   'CALLE_CLIENTE',
    //   'NUMERO_EXTERIOR',
    //   'NUMERO_INTERIOR',
    //   'CODIGO_POSTAL_CLIENTE',
    //   'PAIS_CLIENTE',
    //   'PREGUNTA_UNO_DATOS_MINIMOS_CLIENTE',
    //   'PREGUNTA_DOS_CAMBIOS_DOMICILIO_CLIENTE',
    //   'PREGUNTA_TRES_IDENTIFICACION_OFICIAL',
    //   'OBSERVACIONES_CLIENTE',
    //   'NOMBRE_COMPLETO_CLIENTE'
];

const pages_border = {
    border_left: 10,
    border_top: 0,
    border_right: 10,
    border_bottom: 0,
    header_height: 29,
    footer_height: 12,
};

const pagare = async(parametros, imagen, fuente) => {
    let bundle = parametros['bundle'];
    let empresa = parametros['empresa'];
    let acreditado = parametros['acreditado'];
    let cuestionario = parametros['cuestionario'];
    return `
    <!doctype html>
        <html>
        <head>
            <meta charset="utf-8">
            <title></title>
            <style>
                ` + await style(fuente) + `
            </style>
        </head>

        <body>
            <div id="pageHeader">
                <div align='center' style='height: 100%;'>
                    ` + HEADER("" + empresa.nombre, '' + empresa.sucursal.nombre, '' + parametros['documento_titulo'], '' + imagen) + `
                </div>
            </div>
            <div id="pageFooter">
                <div class='page_number'>
                    {{page}}/{{pages}}
                </div>
            </div>

            <div class="" valign="top">                
                <div class="nav-title-table mx">
                    <table style = "border-collapse: collapse; width: 100%;">                        
                        <tr>                        
                            <td colspan="2">
                                <span><b>${bundle.referencia_acreditado}: </b> ${acreditado.referencia_socio}</span><br><br>
                                <span><b>Fecha Registro: </b>${cuestionario.fecha}</span>
                            </td>                                   
                            <td width="50%" valign="top">
                                <!--<b>Nombre del Ejecutivo: </b>${parametros["EJECUTIVO_NOMBRE"]}</td>-->
                                <b>Nombre del Ejecutivo: </b>${cuestionario.ejecutivo_nombre}</td>                                
                            </td>        
                        </tr>                                            
                    </table>
                    
                    <br>
                    ${tipoPersona(acreditado)}
                    ${cuestionarioPreguntas(cuestionario)}


                        <table>
                            <tr class="py-none">
                                <td class="tablaborde  border text-center py-none" width="49%">
                                    <div>
                                        &nbsp;
                                        <p>&nbsp;</p>

                                        <hr width="70%">
                                        Nombre y Firma del Cliente
                                    </div>
                                </td>

                                <td class="tablaborde  border text-center py-none" width="49%">
                                    <div>
                                        &nbsp;
                                        <p>&nbsp;</p>

                                        <hr width="70%">
                                        Nombre y Firma del Ejecutivo
                                    </div>
                                </td>
                            </tr>
                        </table>
                    </div>

                </div>
            </div>
        </body>
    `;
};

const tipoPersona = (acreditado) => {
    let type_persona = acreditado.tipo_persona;    
    if (type_persona == "F") {
        return generalFisica(acreditado);
    } else {
        return generalMoral(acreditado);
    }
}


const generalMoral = (acreditado) => {
    let domicilio = acreditado.domicilio;

    return `
        <table class="table">
            <tr>
                <td class=" jst-c border bg-dark text-white" colspan="4">
                    <span class="bold">DATOS MÍNIMOS DE IDENTIFICACIÓN</span>
                </td>
            </tr>
            <tr class="jst-c">
                <td class=" py-none  border"><b>RAZÓN SOCIAL</b></td>
                <td class="py-none" colspan="3">${acreditado.nombre}</td>
            </tr>

            <tr class="jst-c">
                <td class=" py-none  lrt-border"><b>RFC:</b></td>
                <td class=" py-none  ">${acreditado.rfc}</td>

                <td class=" py-none  lrt-border"><b>FECHA DE CONSTITUCIÓN</b></td>
                <td class=" py-none  lrt-border">${acreditado.fecha_nacimiento}</td>
            </tr>

            <tr class="jst-c">
                <td class=" py-none  lrt-border"><b>NACIONALIDAD:</b></td>
                <td class=" py-none  lrt-border">${acreditado.nombre_nacionalidad}</td>

                <td class=" py-none  border lrt-border"><b>FECHA ALTA EN EL SAT</b></td>
                <td class=" py-none   lrt-border">${acreditado.fecha_rfc}</td>
            </tr>
        </table>

        <table class="table">
            <tr>
                <td class=" py-none  ">
                    <b>TELÉFONO: </b>
                    <span>${acreditado.celular}</span>
                </td>
                <td class=" py-none  " colspan="2">
                    <b>CORREO ELECTRÓNICO: </b>
                    <span>${acreditado.email}</span>
                </td>
            </tr>

            <tr>
                <td class="py-none" colspan="2">
                    <b>OCUPACIÓN, PROFESIÓN, ACTIVIDAD O GIRO DEL NEGOCIO: </b>
                    <span class="jst-jf">${acreditado.laboral.giro_comercial}</span>
                </td>
            </tr>

            <tr>
                <td class="py-none" colspan="2">
                    <b>ORIGEN DE LOS RECURSOS: </b>
                    <span>${acreditado.socioeconomicos.origen_recurso}</span>
                </td>
            </tr>

            <tr>
                <td class=" py-none  ">
                    <b>FECHA DE RPC: </b>
                    <span>${acreditado.notarial.rpp_fecha}</span>
                </td>
                <td class=" py-none  ">
                    <b>LUGAR DE REGISTRO: </b>
                    <span>${acreditado.notarial.rpp_municipio}</span>
                </td>
            </tr>

            <tr>
                <td class=" py-none  " colspan="2">
                    <b> NÚM. DE SERIE DE FIRMA ELECTRÓNICA: </b>
                    <span> ${acreditado.numero_serie_fiel} </span>
                </td>

            </tr>

            <tr>
                <td class="py-none" colspan="2">
                    <b> ${domicilio.tipo_vialidad} Y NÚMERO: </b>
                    <span> ${domicilio.calle_numero} </span>
                </td>
            </tr>
            <tr>
                <td class="py-none" colspan="2">
                    <b>${domicilio.tipo_asentamiento} </b>
                    <span>${domicilio.colonia}</span>
                </td>
            </tr>
            <tr>
                <td class=" py-none  lrt-border" colspan="2">
                    <b>MUNICIPIO: </b>
                    <span class="">${domicilio.municipio_descripcion}</span>
                </td>
            </tr>
        </table>
        
        <table>
            <tr>
                <td class="py-none"><span><b>ESTADO: </b>${domicilio.entidad_descripcion}</span></td>
                <td class="py-none" width="200"><span><b>CÓDIGO POSTAL: </b>${domicilio.cp}</span></td>
                <td class="py-none"><span><b>PAÍS: </b>${domicilio.pais_descripcion}</span></td>
            </tr>

            <tr>
                <td class=" py-none  " colspan="3">
                    <b>ENTRE CALLES: </b>
                    <span> ${domicilio.entre_calles}</span>
                </td>
            </tr>
        </table>
        <br>
  `;
}

const generalFisica = (acreditado) => {
    let domicilio = acreditado.domicilio;
    
    return `
        <table class="">
            <tr>
                <td class=" jst-c border bg-dark text-white margenesInternos" colspan="4">
                    <span class="bold">DATOS MÍNIMOS DE IDENTIFICACIÓN</span>
                </td>
            </tr>
            <tr class="border text-center">
                <td class="py-none" colspan="2"><b>PRIMER APELLIDO</b></td>
                <td class="py-none"><b>SEGUNDO APELLIDO</b></td>
                <td class="py-none"><b>NOMBRE(S)</b></td>
            </tr>
            <tr class="border text-center">
                <td class=" py-none border" colspan="2">
                    <span>${acreditado.apaterno}</span>
                </td>
                <td class=" py-none border" WIDTH="240">
                    <span>${acreditado.amaterno}</span>
                </td>
                <td class=" py-none border">
                    <span>${acreditado.nombre}</span>
                </td>
            </tr>
            <tr class="border text-center ">
                <td class=" py-none border"><b>GÉNERO</b></td>
                <td class=" py-none border"><b>EDAD</b></td>
                <td class=" py-none border"><b>NIVEL DE ESTUDIOS</b></td>
                <td class=" py-none border"><b>FECHA DE NACIMIENTO</b></td>
            </tr>
            <tr class="text-center">
                <td class=" py-none border">${acreditado.genero}</td>
                <td class=" py-none border">${acreditado.edad}</td>
                <td class=" py-none border">${acreditado.nivel_estudio_descripcion}</td>
                <td class=" py-none border">${acreditado.fecha_nacimiento}</td>
            </tr>

            <tr class="text-center ">
                <td class=" py-none border" colspan="2"><b>LUGAR DE NACIMIENTO</b></td>
                <td class=" py-none border"><b>ENTIDAD FEDERATIVA DE NACIMIENTO</b></td>
                <td class=" py-none border"><b>PAÍS DE NACIMIENTO</b></td>
            </tr>

            <tr class="text-center">
                <td class=" py-none border" colspan="2">${acreditado.lugar_nacimiento}</td>
                <td class=" py-none border">${acreditado.entidad_nacimiento_descripcion}</td>
                <td class=" py-none border">${acreditado.nombre_pais_nacimiento}</td>
            </tr>

            <tr class="text-center">
                <td class=" py-none border" colspan="2"><b>NACIONALIDAD</b></td>
                <td class=" py-none border"><b>ESTADO CIVIL</b></td>
                <td class=" py-none border"><b>RÉGIMEN CONYUGAL</b></td>
            </tr>

            <tr class="text-center">
                <td class=" py-none border" colspan="2">${acreditado.nombre_nacionalidad}</td>
                <td class=" py-none border">${acreditado.estado_civil_descripcion}</td>
                <td class=" py-none border">${acreditado.regimen_conyugal_descripcion}</td>
            </tr>

            <tr class=" text-center upper">
                <td class=" py-none border" colspan="2"><b>RFC</b></td>
                <td class=" py-none border"><b>CURP</b></td>
                <td class=" py-none border"><b>Correo Electronico</b></td>
            </tr>

            <tr class="text-center">
                <td class=" py-none lrt-border" colspan="2">${acreditado.rfc}</td>
                <td class=" py-none lrt-border">${acreditado.curp}</td>
                <td class=" py-none lrt-border">${acreditado.email}</td>
            </tr>

            
            ${seccionIdentificacionFiscal(acreditado)}

        <table class="">
            <tr>
                <td class="py-none border jst-izq" colspan="4"><b>OCUPACIÓN, PROFESIÓN, ACTIVIDAD O GIRO DEL NEGOCIO: </b></td>
            </tr>
            <tr>
                <td class="py-none jst-izq" colspan="4">${acreditado.laboral.ocupacion}</td>
            </tr>
        </table>

        <table>
        <br>
            <tr class="text-center">
                <td class="  border bg-dark text-white margenesInternos" colspan="5"><b>DOMICILIO ACTUAL</b></td>
            </tr>

            <tr class=" text-center upper">
                <td class=" py-none border" colspan=""><b>${domicilio.tipo_vialidad}</b></td>
                <td class=" py-none border" colspan=""><b>NÚMERO EXTERIOR</b></td>
                <td class=" py-none border" colspan=""><b>NÚMERO INTERIOR</b></td>
            </tr>

            <tr class="text-center">
                <td class=" py-none border" colspan="">${domicilio.calle}</td>
                <td class=" py-none border" colspan="">${domicilio.num_exterior}</td>
                <td class=" py-none border" colspan="">${domicilio.num_interior}</td>
            </tr>

            <tr class="text-center upper">
                <td class=" py-none border" colspan=""><b>${domicilio.tipo_asentamiento}</b></td>
                <td class=" py-none border" colspan=""><b>DELEGACIÓN O MUNICIPIO</b></td>
                <td class=" py-none border" colspan=""><b>ESTADO </b></td>
            </tr>

            <tr class="text-center">
                <td class=" py-none border" colspan="">${domicilio.colonia}</td>
                <td class=" py-none border" colspan="">${domicilio.municipio_descripcion}</td>
                <td class=" py-none border" colspan="">${domicilio.entidad_descripcion}</td>
            </tr>

            <tr>
                <td class=" py-none lrt-border" colspan="">
                    <span><b>CÓDIGO POSTAL: </b></span>
                    <span>${domicilio.cp}</span>
                </td>
                <td class=" py-none lrt-border" colspan="4">
                    <span><b>PÁIS: </b></span>
                    <span>${domicilio.pais_descripcion}</span>
                </td>
            </tr>

            <tr>
                <td class=" py-none lrt-border" colspan="7">
                    <span><b>ENTRE CALLES: </b></span>
                    <span>${domicilio.entre_calles}</span>
                </td>
            </tr>
            
            <tr>
                <td class=" py-none" colspan="6">
                    <span><b>TIEMPO RESIDIENDO EN LA VIVIENDA: </b></span>
                    <span>${domicilio.vive_desde_descripcion}</span>
                </td>
            </tr>
        </table>
  `;
}


const es_valido = (arreglo) => {
    if (arreglo == undefined || arreglo.length === 0 || (arreglo.length === 1 && Object.entries(arreglo[0]).length === 0)) {
        return false;
    }
    return true;
}

const cuestionarioPreguntas = (cuestionario) => {
    let cuestionario_respuestas = `
    <div class="content">                                    
    <table class="">
        <tr>
            <th class="border bg-dark text-white margenesInternos" colspan="3">
                SEGUIMIENTO A LA ACTUALIZACIÓN DE DATOS DEL CLIENTE
            </th>
        </tr>
    </table>

    <div class="col-max my">
        <div class="col-max">
            1. ¿Hubo cambios en los datos mínimos de identificación del Cliente? ${cuestionario.actualizacion_datos_cliente}

    `;
    if (tipoRespuesta(cuestionario.actualizacion_datos_cliente)) {
        cuestionario_respuestas += `
        <br>Menciones cuáles: ${cuestionario.actualizacion_datos_cliente_observaciones}
        `;

    }

    cuestionario_respuestas += `
  
                   </div>
               </div>                                                  
                   <div class="col-max my">
                       <div class="col-max">
                           2. ¿El Cliente cambió de domicilio? ${cuestionario.actualizacion_domicilio}
    
    `;

    if (tipoRespuesta(cuestionario.actualizacion_domicilio)) {
        cuestionario_respuestas += `
        <br>En caso de ser así, solicitar el comprobante de
        domicilio actual, con una vigencia no menor a tres meses.
        <br>${cuestionario.actualizacion_domicilio_observaciones}
        `;

    }

    cuestionario_respuestas += `
    </div>
    </div>
   
    <div class="col-max my">
        <div class="col-max">
            3. ¿La identificación oficial se encuentra vigente? ${cuestionario.actualizacion_identificacion_oficial}
    
    `;

    if (!tipoRespuesta(cuestionario.actualizacion_identificacion_oficial)) {
        cuestionario_respuestas += `
        <br> En caso de indicar que NO, solicitarla
        nuevamente.
        <br>
        ${cuestionario.actualizacion_identificacion_oficial_observaciones}
        `;

    }
    cuestionario_respuestas += `
    </div>
             </div>
             
    
               <div class="content ">                                    
                   <table class="table border saltodePag">
                       <tr>
                           <th class="bg-dark text-white margenesInternos">ESPACIO A SER LLENADO POR LA ENTIDAD</th>
                       </tr>
                       <tr>
                           <td class="border">
                               <span class="bold">Observaciones:
                               ${cuestionario.observaciones}
                               </span>
                           </td>
                       </tr>
                   </table>
    
    `;
    return cuestionario_respuestas;
}

const tipoRespuesta = (respuesta) => {
    if (respuesta == "SI") {
        return true;
    }
    return false;
}
const seccionIdentificacionFiscal = (acreditado) => {
    return `
        <tr class="text-center upper">
            <td class="py-chico border" colspan="2"><b>NÚM. IDENTIFICACIÓN FISCA</b>L</td>
            <td class="py-chico border" ><b>NÚM. SERIE DE FIRMA ELECTRÓNICA</b></td>
            <td class="py-chico border" ><b>TELÉFONO DE CASA: </b></td>
        </tr>
        <tr class="text-center">
            <td class="py-chico lrt-border" colspan="2">${acreditado.numero_identificacion_fiscal}</td>
            <td class="py-chico lrt-border" >${acreditado.numero_serie_fiel}</td>
            <td class="py-chico lrt-border" >${acreditado.telefono_casa}</td>
        </tr>
        <tr class="text-center upper">
            <td class="py-chico " colspan="2"><b>ORIGEN DE LOS RECURSOS: </b>
            <td class="py-chico " ><b>NÚM. DEPENDIENTES ECONOMICOS: </b>
            <td class="py-chico border" ><b>CELULAR</b></td>
        </tr>

        <tr class="text-center">
            
            <td class="py-chico " colspan="2">${acreditado.socioeconomicos.origen_recurso}</td>
            <td class="py-chico " >${acreditado.num_dependientes}</td>
            <td class="py-chico lrt-border" >${acreditado.celular}</td>
        </tr>
        <tr class="text-center upper">
            <td class="py-chico border" colspan="2"><b>TIPO IDENTIFICACION</b></td>
            <td class="py-chico border" ><b>FOLIO IDENTIFICACIÓN</b></td>
            <td class="py-chico " ><b>CLAVE DE ELECTOR</b></td>
        </tr>
        <tr class="text-center">
            <td class="py-chico " colspan="2">${acreditado.tipo_identificacion_descripcion}</td>
            <td class="py-chico " >${acreditado.folio_identificacion}</td>
            <td class="py-chico " >${acreditado.clave_elector}</td>
        </tr>
    `;
}

module.exports = {
    pagare,
    validaciones,
    pages_border,
};