#!/usr/bin/env python3

# SCRIPT DE PARSEO DEL EXCEL DE HALLIBURTON

import sys
import re
import openpyxl
import json


# FUNCION QUE SE ENCARGA DE PARSEAR LA SECCION DE DATOS PESONALES
def parsear_datos_personales(seccion):
    data_all_documents = {}
    #
    for i in range(0,len(seccion)):
            seccion_str = str(seccion[i])
            if seccion_str.__contains__(':'):
                if seccion_str.__contains__('Nombre') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('nombre_DP') is None:
                        data_all_documents['nombre_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Apellido') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('apellido_DP') is None:
                        data_all_documents['apellido_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Dirección Residencial') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('direccion_DP') is None:
                        data_all_documents['direccion_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Barrio') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('barrio_DP') is None:
                        data_all_documents['barrio_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('House Number') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('nro_casa_DP') is None:
                        data_all_documents['nro_casa_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Country') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('pais_DP') is None:
                        data_all_documents['pais_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Provincia') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('provincia_DP') is None:
                        data_all_documents['provincia_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('City') and not seccion_str.__contains__('City of Birth') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('ciudad_DP') is None:
                        data_all_documents['ciudad_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Zip Code') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('codigo_postal_DP') is None:
                        data_all_documents['codigo_postal_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Teléfono') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('telefono_DP') is None:
                        data_all_documents['telefono_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Cell Phone') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('celular_DP') is None:
                        data_all_documents['celular_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('E-mail') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('email_DP') is None:
                        data_all_documents['email_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Birth Date') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('fecha_nacimiento_DP') is None:
                        if seccion[i+1] == 'Enero':
                            seccion[i+1] = '1'
                        elif seccion[i+1] == 'Febrero':
                            seccion[i+1] = '2'
                        elif seccion[i+1] == 'Marzo':
                            seccion[i+1] = '3'
                        elif seccion[i+1] == 'Abril':
                            seccion[i+1] = '4'
                        elif seccion[i+1] == 'Mayo':
                            seccion[i+1] = '5'
                        elif seccion[i+1] == 'Junio':
                            seccion[i+1] = '6'
                        elif seccion[i+1] == 'Julio':
                            seccion[i+1] = '7'
                        elif seccion[i+1] == 'Agosto':
                            seccion[i+1] = '8'
                        elif seccion[i+1] == 'Septiembre':
                            seccion[i+1] = '9'
                        elif seccion[i+1] == 'Octubre':
                            seccion[i+1] = '10'
                        elif seccion[i+1] == 'Noviembre':
                            seccion[i+1] = '11'
                        elif seccion[i+1] == 'Diciembre':
                            seccion[i+1] = '12'
                        data_all_documents['fecha_nacimiento_DP'] = str(seccion[i+2]) + '/' + str(seccion[i+1]) + '/' + str(seccion[i+3])
                    continue
                elif seccion_str.__contains__('Estado Civil') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('estado_civil_DP') is None:
                        data_all_documents['estado_civil_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Gender') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('genero_DP') is None:
                        data_all_documents['genero_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Nationality') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('nacionalidad_DP') is None:
                        data_all_documents['nacionalidad_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('City of Birth') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('ciudad_nacimiento_DP') is None:
                        data_all_documents['ciudad_nacimiento_DP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('2nd Nationality') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('segunda_nacionalidad_DP') is None:
                        data_all_documents['segunda_nacionalidad_DP'] = str(seccion[i+1])
                    continue
    #
    return data_all_documents
#---- FUNCION QUE PARSEA LAS SECCIONES INDIVIDUALMENTE
def parsear_seccion(documento,seccion):
    data_all_documents = {}
    #   
    if(documento == 'Datos_Personales' ):
        data_all_documents = parsear_datos_personales(seccion)
    elif( documento == 'Contacto_Emergencia' ):
        for i in range(0,len(seccion)):
            seccion_str = str(seccion[i])
            position = i+1

            if seccion_str.__contains__(':'):
                if seccion_str.__contains__('Full Name') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('nombre_completo_CE') is None:
                        data_all_documents['nombre_completo_CE'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Phone') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('telefono_CE') is None:
                        data_all_documents['telefono_CE'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Zip Code') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('codigo_postal_CE') is None:
                        data_all_documents['codigo_postal_CE'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Full Address') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('direccion_completa_CE') is None:
                        data_all_documents['direccion_completa_CE'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Relationship') and position < len(seccion) and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('parentesco_CE') is None:
                        data_all_documents['parentesco_CE'] = str(seccion[i+1])
                    continue
    elif( documento == 'Documentos_Personales' ):
        for i in range(0,len(seccion)):
            seccion_str = str(seccion[i])
            if seccion_str.__contains__(':'):
                if seccion_str.__contains__('DNI') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('dni_DOCP') is None:
                        data_all_documents['dni_DOCP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Passport No') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('num_pasaporte_DOCP') is None:
                        data_all_documents['num_pasaporte_DOCP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Drivers License') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('licencia_conducir_DOCP') is None:
                        data_all_documents['licencia_conducir_DOCP'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Category License') and not (str(seccion[i+1])).__contains__(':'):
                    if data_all_documents.get('categoria_licencia_DOCP') is None:
                        data_all_documents['categoria_licencia_DOCP'] = str(seccion[i+1])
                    continue
    elif( documento == 'Grupo_Familiar' ):
        cont_name = 0
        cont_fecha_nac = 0
        cont_nacionalidad = 0
        cont_parentesco = 0
        cont_dni = 0
        for i in range(0,len(seccion)):
            seccion_str = str(seccion[i])
            
            if seccion_str.__contains__(':'):
                if seccion_str.__contains__('Name') and not (str(seccion[i+1])).__contains__(':'):
                    # NOMBRE
                    cont_name += 1 
                    str_cont = str(cont_name)
                    #
                    if data_all_documents.get(str_cont) is None:
                        data_all_documents[str_cont] = {}
                    if data_all_documents[str_cont].get('nombre_GF_') is None:
                        data_all_documents[str_cont]['nombre_GF_'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Birth Date') and not (str(seccion[i+1])).__contains__(':'):
                    # FECHA DE NACIMIENTO
                    cont_fecha_nac += 1
                    str_cont = str(cont_fecha_nac)
                    #
                    if data_all_documents.get(str_cont) is None:
                        data_all_documents[str_cont] = {}
                    if data_all_documents[str_cont].get('fecha_nacimiento_GF_') is None:
                        if seccion[i+1] == 'Enero':
                            seccion[i+1] = '1'
                        elif seccion[i+1] == 'Febrero':
                            seccion[i+1] = '2'
                        elif seccion[i+1] == 'Marzo':
                            seccion[i+1] = '3'
                        elif seccion[i+1] == 'Abril':
                            seccion[i+1] = '4'
                        elif seccion[i+1] == 'Mayo':
                            seccion[i+1] = '5'
                        elif seccion[i+1] == 'Junio':
                            seccion[i+1] = '6'
                        elif seccion[i+1] == 'Julio':
                            seccion[i+1] = '7'
                        elif seccion[i+1] == 'Agosto':
                            seccion[i+1] = '8'
                        elif seccion[i+1] == 'Septiembre':
                            seccion[i+1] = '9'
                        elif seccion[i+1] == 'Octubre':
                            seccion[i+1] = '10'
                        elif seccion[i+1] == 'Noviembre':
                            seccion[i+1] = '11'
                        elif seccion[i+1] == 'Diciembre':
                            seccion[i+1] = '12'
                        data_all_documents[str_cont]['fecha_nacimiento_GF_'] = str(seccion[i+2]) + '/' + str(seccion[i+1]) + '/' + str(seccion[i+3])
                    continue
                elif seccion_str.__contains__('Nationality') and not (str(seccion[i+1])).__contains__(':'):
                    # NACIONALIDAD
                    cont_nacionalidad += 1
                    str_cont = str(cont_nacionalidad) 
                    #
                    if data_all_documents.get(str_cont) is None:
                        data_all_documents[str_cont] = {}
                    if data_all_documents[str_cont].get('nacionalidad_GF_') is None:
                        data_all_documents[str_cont]['nacionalidad_GF_'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Type of Relationship') and not (str(seccion[i+1])).__contains__(':'):
                    # RELATIVO
                    cont_parentesco += 1
                    str_cont = str(cont_parentesco)
                    #
                    if data_all_documents.get(str_cont) is None:
                        data_all_documents[str_cont] = {}
                    if data_all_documents[str_cont].get('parentesco_GF_') is None:
                        data_all_documents[str_cont]['parentesco_GF_'] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('DNI') and not (str(seccion[i+1])).__contains__(':'):
                    # DNI
                    cont_dni += 1
                    str_cont = str(cont_dni)
                    if data_all_documents.get(str_cont) is None:
                        data_all_documents[str_cont] = {}
                    if data_all_documents[str_cont].get('dni_GF_') is None:
                        data_all_documents[str_cont]['dni_GF_'] = str(seccion[i+1])
                    continue
        #
        data_all_documents['cant_reg'] = str(cont_name)
    elif( documento == 'Educacion' ):
        cont_ultimo_titulo = 0
        cont_fecha_finalizacion = 0
        cont_institucion = 0
        cont_pais = 0
        cont_city_estado = 0
        for i in range(0,len(seccion)):
            seccion_str = str(seccion[i])
            range_list = i + 1
            seccionSTR = 0
            if(range_list == len(seccion)):
                seccionSTR = seccion[i]
            else:
                seccionSTR = seccion[i+1]
            if seccion_str.__contains__(':'):
                if seccion_str.__contains__('Last Degree') and not (str(seccion[i+1])).__contains__(':'):
                    cont_ultimo_titulo += 1 
                    str_cont = str(cont_ultimo_titulo)
                    if data_all_documents.get('ultimo_titulo_ED_'+ str_cont) is None:
                        data_all_documents['ultimo_titulo_ED_'+ str_cont] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('End Date') and not (str(seccion[i+1])).__contains__(':'):
                    cont_fecha_finalizacion += 1
                    str_cont = str(cont_fecha_finalizacion)
                    if data_all_documents.get('fecha_finalizacion_ED_'+ str_cont) is None:
                        if seccion[i+1] == 'Enero':
                            seccion[i+1] = '1'
                        elif seccion[i+1] == 'Febrero':
                            seccion[i+1] = '2'
                        elif seccion[i+1] == 'Marzo':
                            seccion[i+1] = '3'
                        elif seccion[i+1] == 'Abril':
                            seccion[i+1] = '4'
                        elif seccion[i+1] == 'Mayo':
                            seccion[i+1] = '5'
                        elif seccion[i+1] == 'Junio':
                            seccion[i+1] = '6'
                        elif seccion[i+1] == 'Julio':
                            seccion[i+1] = '7'
                        elif seccion[i+1] == 'Agosto':
                            seccion[i+1] = '8'
                        elif seccion[i+1] == 'Septiembre':
                            seccion[i+1] = '9'
                        elif seccion[i+1] == 'Octubre':
                            seccion[i+1] = '10'
                        elif seccion[i+1] == 'Noviembre':
                            seccion[i+1] = '11'
                        elif seccion[i+1] == 'Diciembre':
                            seccion[i+1] = '12'
                        data_all_documents['fecha_finalizacion_ED_'+ str_cont] = str(seccion[i+2]) + '/' + str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Institute') and not (str(seccion[i+1])).__contains__(':'):
                    cont_institucion += 1
                    str_cont = str(cont_institucion) 
                    if data_all_documents.get('institucion_ED_'+ str_cont) is None:
                        data_all_documents['institucion_ED_'+ str_cont] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Country') and not (str(seccion[i+1])).__contains__(':'):
                    cont_pais += 1
                    str_cont = str(cont_pais)
                    if data_all_documents.get('pais_ED_'+ str_cont) is None:
                        data_all_documents['pais_ED_'+ str_cont] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Ciudad y Estado') and not (str(seccionSTR)).__contains__(':'):
                    cont_city_estado += 1
                    str_cont = str(cont_city_estado)
                    if data_all_documents.get('ciudad_ED_'+ str_cont) is None:
                        data_all_documents['ciudad_ED_'+ str_cont] = str(seccion[i+1])
                    continue
    elif( documento == 'Laboral' ):
        cont_empresa = 0
        cont_cargo = 0
        cont_sector_ind = 0
        cont_contact_ref = 0
        cont_direccion_lb = 0
        cont_pais_lb = 0
        cont_ciudad_lb = 0
        cont_fecha_start_lb = 0
        cont_fecha_end_lb = 0
        #
        laboral_lista = len(seccion)
        #
        for i in range(0,laboral_lista):
            seccion_str = str(seccion[i])
            range_list = i + 1
            seccionSTR = 0
            if(range_list == len(seccion)):
                seccionSTR = seccion[i]
            else:
                seccionSTR = seccion[i+1]
            if seccion_str.__contains__(':'):
                if seccion_str.__contains__('Company') and not (str(seccion[i+1])).__contains__(':'):
                    cont_empresa += 1
                    str_cont = str(cont_empresa)
                    if data_all_documents.get('empresa_LB_'+ str_cont) is None:
                        data_all_documents['empresa_LB_'+ str_cont] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Position') and not (str(seccion[i+1])).__contains__(':'):
                    cont_cargo += 1
                    str_cont = str(cont_cargo) 
                    if data_all_documents.get('cargo_LB_'+ str_cont) is None:
                        data_all_documents['cargo_LB_'+ str_cont] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Industry') and not (str(seccion[i+1])).__contains__(':'):
                    cont_sector_ind += 1
                    str_cont = str(cont_sector_ind)
                    if data_all_documents.get('sector_industrial_LB_'+ str_cont) is None:
                        data_all_documents['sector_industrial_LB_'+ str_cont] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Contact for References') and not (str(seccion[i+1])).__contains__(':'):
                    cont_contact_ref += 1
                    str_cont = str(cont_contact_ref)
                    if data_all_documents.get('contacto_referencia_LB_'+ str_cont) is None:
                        data_all_documents['contacto_referencia_LB_'+ str_cont] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Adress') and not (str(seccion[i+1])).__contains__(':'):
                    cont_direccion_lb += 1
                    str_cont = str(cont_direccion_lb)
                    if data_all_documents.get('direccion_LB_'+ str_cont) is None:
                        data_all_documents['direccion_LB_'+ str_cont] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Country') and not (str(seccion[i+1])).__contains__(':'):
                    cont_pais_lb += 1
                    str_cont = str(cont_pais_lb) 
                    if data_all_documents.get('pais_LB_'+ str_cont) is None:
                        data_all_documents['pais_LB_'+ str_cont] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('City and State') and not (str(seccion[i+1])).__contains__(':'):
                    cont_ciudad_lb += 1
                    str_cont = str(cont_ciudad_lb)
                    if data_all_documents.get('ciudad_estado_LB_'+ str_cont) is None:
                        data_all_documents['ciudad_estado_LB_'+ str_cont] = str(seccion[i+1])
                    continue
                elif seccion_str.__contains__('Start Date') and not (str(seccion[i+1])).__contains__(':'):
                    cont_fecha_start_lb += 1
                    str_cont = str(cont_fecha_start_lb)
                    if data_all_documents.get('fecha_inicio_LB_'+ str_cont) is None:
                        if seccion[i+1] == 'Enero':
                            seccion[i+1] = '1'
                        elif seccion[i+1] == 'Febrero':
                            seccion[i+1] = '2'
                        elif seccion[i+1] == 'Marzo':
                            seccion[i+1] = '3'
                        elif seccion[i+1] == 'Abril':
                            seccion[i+1] = '4'
                        elif seccion[i+1] == 'Mayo':
                            seccion[i+1] = '5'
                        elif seccion[i+1] == 'Junio':
                            seccion[i+1] = '6'
                        elif seccion[i+1] == 'Julio':
                            seccion[i+1] = '7'
                        elif seccion[i+1] == 'Agosto':
                            seccion[i+1] = '8'
                        elif seccion[i+1] == 'Septiembre':
                            seccion[i+1] = '9'
                        elif seccion[i+1] == 'Octubre':
                            seccion[i+1] = '10'
                        elif seccion[i+1] == 'Noviembre':
                            seccion[i+1] = '11'
                        elif seccion[i+1] == 'Diciembre':
                            seccion[i+1] = '12'
                        #
                        if (i+2) < laboral_lista:
                            data_all_documents['fecha_inicio_LB_'+ str_cont] = str(seccion[i+2])
                        if (i+1) < laboral_lista:
                            data_all_documents['fecha_inicio_LB_'+ str_cont] += '/' + str(seccion[i+1])
                        if (i+3) < laboral_lista:
                            data_all_documents['fecha_inicio_LB_'+ str_cont] += '/' + str(seccion[i+3])
                        #data_all_documents['fecha_inicio_LB_'+ str_cont] = str(seccion[i+2]) + '/' + str(seccion[i+1]) + '/' + str(seccion[i+3])
                        #
                    continue
                elif seccion_str.__contains__('End Date') and not (str(seccionSTR)).__contains__(':'):
                    cont_fecha_end_lb += 1
                    str_cont = str(cont_fecha_end_lb)
                    if data_all_documents.get('fecha_finalizacion_LB_'+ str_cont) is None:
                        if seccion[i+1] == 'Enero':
                            seccion[i+1] = '1'
                        elif seccion[i+1] == 'Febrero':
                            seccion[i+1] = '2'
                        elif seccion[i+1] == 'Marzo':
                            seccion[i+1] = '3'
                        elif seccion[i+1] == 'Abril':
                            seccion[i+1] = '4'
                        elif seccion[i+1] == 'Mayo':
                            seccion[i+1] = '5'
                        elif seccion[i+1] == 'Junio':
                            seccion[i+1] = '6'
                        elif seccion[i+1] == 'Julio':
                            seccion[i+1] = '7'
                        elif seccion[i+1] == 'Agosto':
                            seccion[i+1] = '8'
                        elif seccion[i+1] == 'Septiembre':
                            seccion[i+1] = '9'
                        elif seccion[i+1] == 'Octubre':
                            seccion[i+1] = '10'
                        elif seccion[i+1] == 'Noviembre':
                            seccion[i+1] = '11'
                        elif seccion[i+1] == 'Diciembre':
                            seccion[i+1] = '12'
                        else:
                            continue
                        # Se elegio para validar que la clave que se agregar ya existe
                        if (i+2) < laboral_lista:
                            data_all_documents['fecha_finalizacion_LB_'+ str_cont] = str(seccion[i+2])
                        if (i+1) < laboral_lista:
                            data_all_documents['fecha_finalizacion_LB_'+ str_cont] += '/' + str(seccion[i+1])
                        if (i+3) < laboral_lista:
                            data_all_documents['fecha_finalizacion_LB_'+ str_cont] += '/' + str(seccion[i+3])
                    continue
    # elif( documento == 'Laboral' ):
    #     cont_empresa = 0
    #     cont_cargo = 0
    #     cont_sector_ind = 0
    #     cont_contact_ref = 0
    #     cont_direccion_lb = 0
    #     cont_pais_lb = 0
    #     cont_ciudad_lb = 0
    #     cont_fecha_start_lb = 0
    #     cont_fecha_end_lb = 0
    #     for i in range(0,len(seccion)):
    #         seccion_str = str(seccion[i])
    #         if seccion_str.__contains__(':'):
    #             if seccion_str.__contains__('Company') and not (str(seccion[i+1])).__contains__(':'):
    #                 cont_empresa += 1
    #                 str_cont = str(cont_empresa)
    #                 if data_all_documents.get(str_cont) is None:
    #                     data_all_documents[str_cont] = {}
    #                 if data_all_documents[str_cont].get('empresa_LB_') is None:
    #                     data_all_documents[str_cont]['empresa_LB_'] = str(seccion[i+1])
    #                 continue
    #             elif seccion_str.__contains__('Position') and not (str(seccion[i+1])).__contains__(':'):
    #                 cont_cargo += 1
    #                 str_cont = str(cont_cargo) 
    #                 if data_all_documents.get(str_cont) is None:
    #                     data_all_documents[str_cont] = {}
    #                 if data_all_documents[str_cont].get('cargo_LB_') is None:
    #                     data_all_documents[str_cont]['cargo_LB_'] = str(seccion[i+1])
    #                 continue
    #             elif seccion_str.__contains__('Industry') and not (str(seccion[i+1])).__contains__(':'):
    #                 cont_sector_ind += 1
    #                 str_cont = str(cont_sector_ind)
    #                 if data_all_documents.get(str_cont) is None:
    #                     data_all_documents[str_cont] = {}
    #                 if data_all_documents[str_cont].get('sector_industrial_LB_') is None:
    #                     data_all_documents[str_cont]['sector_industrial_LB_'] = str(seccion[i+1])
    #                 continue
    #             elif seccion_str.__contains__('Contact for References') and not (str(seccion[i+1])).__contains__(':'):
    #                 cont_contact_ref += 1
    #                 str_cont = str(cont_contact_ref)
    #                 if data_all_documents.get(str_cont) is None:
    #                     data_all_documents[str_cont] = {}
    #                 if data_all_documents[str_cont].get('contacto_referencia_LB_') is None:
    #                     data_all_documents[str_cont]['contacto_referencia_LB_'] = str(seccion[i+1])
    #                 continue
    #             elif seccion_str.__contains__('Adress') and not (str(seccion[i+1])).__contains__(':'):
    #                 cont_direccion_lb += 1
    #                 str_cont = str(cont_direccion_lb)
    #                 if data_all_documents.get(str_cont) is None:
    #                     data_all_documents[str_cont] = {}
    #                 if data_all_documents[str_cont].get('direccion_LB_') is None:
    #                     data_all_documents[str_cont]['direccion_LB_'] = str(seccion[i+1])
    #                 continue
    #             elif seccion_str.__contains__('Country') and not (str(seccion[i+1])).__contains__(':'):
    #                 cont_pais_lb += 1
    #                 str_cont = str(cont_pais_lb) 
    #                 if data_all_documents.get(str_cont) is None:
    #                     data_all_documents[str_cont] = {}
    #                 if data_all_documents[str_cont].get('pais_LB_') is None:
    #                     data_all_documents[str_cont]['pais_LB_'] = str(seccion[i+1])
    #                 continue
    #             elif seccion_str.__contains__('City and State') and not (str(seccion[i+1])).__contains__(':'):
    #                 cont_ciudad_lb += 1
    #                 str_cont = str(cont_ciudad_lb)
    #                 if data_all_documents.get(str_cont) is None:
    #                     data_all_documents[str_cont] = {}
    #                 if data_all_documents[str_cont].get('ciudad_estado_LB_') is None:
    #                     data_all_documents[str_cont]['ciudad_estado_LB_'] = str(seccion[i+1])
    #                 continue
    #             elif seccion_str.__contains__('Start Date') and not (str(seccion[i+1])).__contains__(':'):
    #                 cont_fecha_start_lb += 1
    #                 str_cont = str(cont_fecha_start_lb)
    #                 if data_all_documents.get(str_cont) is None:
    #                     data_all_documents[str_cont] = {}
    #                 if data_all_documents[str_cont].get('fecha_inicio_LB_') is None:
    #                     data_all_documents[str_cont]['fecha_inicio_LB_'] = str(seccion[i+1])
    #                 continue
    #             elif seccion_str.__contains__('End Date') and not (str(seccion[i+1])).__contains__(':'):
    #                 cont_fecha_end_lb += 1
    #                 str_cont = str(cont_fecha_end_lb)
    #                 if data_all_documents.get(str_cont) is None:
    #                     data_all_documents[str_cont] = {}
    #                 if data_all_documents[str_cont].get('fecha_finalizacion_LB_') is None:
    #                     data_all_documents[str_cont]['fecha_finalizacion_LB_'] = str(seccion[i+1])
    #                 continue
    #     # 
    #     data_all_documents['cant_reg'] = str(cont_empresa)
    # return data_all_documents
    # return json.dumps(data_all_documents)
    return data_all_documents
#---- FUNCION QUE DEVUELVE LA SECCION DE DATOS PERSONALES
def parsear_secciones_excel(worksheet):
    exp_datos_personales = re.compile(r"^PERSONAL\s?DATA")
    exp_contacto_emergencia = re.compile(r"^EMERGENCY\s?CONTACT\s?INFORMATION")
    exp_documentos_personales = re.compile(r"^PERSONAL\s?DOCUMENTS")
    exp_grupo_familiar = re.compile(r"^FAMILY\s?DEPENDENT\s?INFORMATION")
    exp_educacion = re.compile(r"^EDUCATION")
    exp_laboral = re.compile(r"^PREVIOUS\s?EMPLOYMENT")
    exp_final = re.compile(r"^TO\sBE\sCOMPLETED\sBY\sHALLIBURTON")
    #
    datos_personales = []
    contacto_emergencia = []
    documentos_personales = []
    grupo_familiar = []
    educacion = []
    laboral = []
    #
    ind_start_datos_personales = 0
    ind_end_datos_personales = 0
    #
    ind_start_contacto_emergencia = 0
    ind_end_contacto_emergencia = 0
    #
    ind_start_documentos_personales = 0
    ind_end_documentos_personales = 0
    #
    ind_start_grupo_familiar = 0
    ind_end_grupo_familiar = 0
    #
    ind_start_educacion = 0
    ind_end_educacion = 0
    #
    ind_start_laboral = 0
    ind_end_laboral = 0
    #
    for i in range(0,worksheet.max_row):
        #
        for col in worksheet.iter_cols(1,worksheet.max_column):
            if col[i].value is not None:
                if  exp_datos_personales.match(str(col[i].value)) and ind_start_datos_personales == 0:
                    ind_start_datos_personales = 1
                if  exp_contacto_emergencia.match(str(col[i].value)) and ind_start_contacto_emergencia == 0:
                    ind_start_contacto_emergencia = 1
                if  exp_documentos_personales.match(str(col[i].value)) and ind_start_documentos_personales == 0:
                    ind_start_documentos_personales = 1
                if  exp_grupo_familiar.match(str(col[i].value)) and ind_start_grupo_familiar == 0:
                    ind_start_grupo_familiar = 1
                if  exp_educacion.match(str(col[i].value)) and ind_start_educacion == 0:
                    ind_start_educacion = 1
                if  exp_laboral.match(str(col[i].value)) and ind_start_laboral == 0:
                    ind_start_laboral = 1
                #
                if  exp_contacto_emergencia.match(str(col[i].value)) and ind_start_datos_personales == 1:
                    ind_end_datos_personales = 1
                    ind_start_datos_personales = 2
                    continue
                if  exp_documentos_personales.match(str(col[i].value)) and ind_start_contacto_emergencia == 1:
                    ind_end_contacto_emergencia += 1
                    ind_start_contacto_emergencia += 1
                    continue
                if  exp_grupo_familiar.match(str(col[i].value)) and ind_start_documentos_personales == 1:
                    ind_end_documentos_personales += 1
                    ind_start_documentos_personales += 1
                    continue
                if  exp_educacion.match(str(col[i].value)) and ind_start_grupo_familiar == 1:
                    ind_end_grupo_familiar += 1
                    ind_start_grupo_familiar += 1
                    continue
                if  exp_laboral.match(str(col[i].value)) and ind_start_educacion == 1:
                    ind_end_educacion += 1
                    ind_start_educacion += 1
                    continue
                if  exp_final.match(str(col[i].value)) and ind_start_laboral == 1:
                    ind_end_laboral += 1
                    ind_start_laboral += 1
                    continue
                #
                if ind_start_datos_personales == 1 and ind_end_datos_personales == 0:
                    datos_personales.append(col[i].value)
                if ind_start_contacto_emergencia == 1 and ind_end_contacto_emergencia == 0:
                    contacto_emergencia.append(col[i].value)
                if ind_start_documentos_personales == 1 and ind_end_documentos_personales == 0:
                    documentos_personales.append(col[i].value)
                if ind_start_grupo_familiar == 1 and ind_end_grupo_familiar == 0 :
                    grupo_familiar.append(col[i].value)
                if ind_start_educacion == 1 and ind_end_educacion == 0 :
                    educacion.append(col[i].value)
                if ind_start_laboral == 1 and ind_end_laboral == 0 :
                    laboral.append(col[i].value)
    #--
    result = {'Datos_Personales':datos_personales,'Contacto_Emergencia':contacto_emergencia,'Documentos_Personales':documentos_personales,'Grupo_Familiar':grupo_familiar,'Educacion':educacion,'Laboral':laboral}
    #--
    return result
#---
def main(argv):
    workbook = openpyxl.load_workbook(argv[1])
    worksheet = workbook.active
    #
    secciones = parsear_secciones_excel(worksheet)
    #
    respuesta = {}
    #
    for key,value in secciones.items():
        respuesta[key] = parsear_seccion(key,value)
    #
    print(json.dumps(respuesta))
#----
if __name__ == '__main__':
    main(sys.argv)
